feature request: add protos resources
Issue description
I'd like to use the grpc-transcode plugin, which requires to specify a proto_id. This id is obtained by uploading a protobuf definition through the admin api.
I believe it makes sense to have a ApisixProto resource to decoratively upload a protobuf, without interacting with the api directly. Uploading the proto becomes the controller responsibility.
Environment
- your apisix-ingress-controller version (output of apisix-ingress-controller version --long):
Version: 1.6.0
Git SHA: no-git-module
Go Version: go1.19.4
Building OS/Arch: linux/amd64
Running OS/Arch: linux/amd64
- your Kubernetes cluster version (output of kubectl version):
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"archive", BuildDate:"1980-01-01T00:00:00Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.3", GitCommit:"434bfd82814af038ad94d62ebe59b133fcb50506", GitTreeState:"clean", BuildDate:"2022-10-25T19:35:11Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"}
- if you run apisix-ingress-controller in Bare-metal environment, also show your OS version (uname -a):
Minimal test code / Steps to reproduce
NA
Actual result
NA
Error log
NA
Expected result
No response
Thanks.
I'm wondering if we're really going to add a resource?
Compared with other resources such as ApisixRoute/ApisixUpstream, proto is less frequently used.
Maybe we can add a special logic to allow referencing via ConfigMap?
I wonder the same because the obvious place to add it is in ApisixPluginConfig, but I can't think how to have a configMapRef in there for it.
Processing logic specific to this plugin can be added.
If grpc-transcode plug-in is found, search for configMap according to its configuration and perform related processing.
Currently, it can be temporarily resolved by calling the Admin API directly.