apisix-ingress-controller icon indicating copy to clipboard operation
apisix-ingress-controller copied to clipboard

feature request: add protos resources

Open fracek opened this issue 2 years ago • 3 comments

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

fracek avatar Jan 31 '23 12:01 fracek

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?

tao12345666333 avatar Feb 01 '23 07:02 tao12345666333

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.

fracek avatar Feb 02 '23 17:02 fracek

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.

tao12345666333 avatar Feb 10 '23 02:02 tao12345666333