Custom plugin K8s problem

we write a new plugin , it is run well in vm .
we deploy kong and kong ingress control in k8s
we can find the plugin(available_on_server) when we call admin api(http://apigw-in.uat.homecreditcfc.cn:8001/)
And then we create an api with this plugin in service, we deploy it to k8s and could be detected
we could no find it in admin api
http://apigw-in.uat.homecreditcfc.cn:8001/services/serviceid/plugins

ingress-control display this log(2020/10/21 02:28:23 [warn] 22#0: *61289 [kong] plugins.lua:126 DEPRECATED: /plugins/schema/:name endpoint is deprecated, please use /schemas/plugins/:name instead., client: 172.30.29.1, server: kong_admin, request: “GET /plugins/schema/weight-url-param-rewrite HTTP/1.1”, host: “kong-admin:8444”
172.30.29.1 - - [21/Oct/2020:02:28:23 +0000] “GET /plugins/schema/weight-url-param-rewrite HTTP/1.1” 404 56 “-” “Go-http-client/1.1”)

Could you kindly point out the problem?

Our yaml is as follows

apiVersion: configuration.konghq.com/v1
config:
query_string:
- weight: 10
param: param=A
- weight: 90
param: param=B
kind: KongPlugin
metadata:
name: kongplugin-75f2ce47-228c-4661-a4fb-653cbfeccf94-technical-tool-1-1603267901777
namespace: technical-tool
plugin: weight-url-param-rewrite

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: technical-tool
name: ingress-route-test1-technical-tool-1-1603267909413
annotations:
konghq.com/override: kongingress-route-test1-technical-tool-1-1603267906535
kubernetes.io/ingress.class: kong-uat-internal
spec:
rules:
- host: apim-mockservice.uat.homecreditcfc.cn
http:
paths:
- backend:
servicePort: 80
serviceName: service-service-test-weight-technical-tool-1-1603267901776
path: /
tls:
- hosts:
- apim-mockservice.uat.homecreditcfc.cn
secretName: homecreditcfc-cert

apiVersion: configuration.konghq.com/v1
kind: KongIngress
metadata:
name: kongingress-service-test-weight-technical-tool-1-1603267904333
namespace: technical-tool
proxy:
path: /
protocol: http
connect_timeout: 60000
retries: 5
read_timeout: 60000
write_timeout: 60000
upstream:
hash_on: none
hash_fallback: none
slots: 1000

apiVersion: configuration.konghq.com/v1
kind: KongIngress
metadata:
name: kongingress-route-test1-technical-tool-1-1603267906535
namespace: technical-tool
route:
methods: []
regex_priority: 0
strip_path: true
preserve_host: false
protocols:
- http
- https

apiVersion: v1
kind: Service
metadata:
name: service-service-test-weight-technical-tool-1-1603267901776
namespace: technical-tool
annotations:
konghq.com/override: kongingress-service-test-weight-technical-tool-1-1603267904333
konghq.com/plugins: kongplugin-75f2ce47-228c-4661-a4fb-653cbfeccf94-technical-tool-1-1603267901777
labels:
app: service-service-test-weight-technical-tool-1-1603267901776
spec:
selector:
app: mockservice-test-service-api-a
type: ClusterIP
ports:
- protocol: TCP
port: 80
name: default
targetPort: 8080

Which versions of Kong and the ingress controller are you using? Are they compatible? That deprecation warning probably shouldn’t appear if they are, though ultimately it’s a warning, not an error.

How did you make the custom plugin available in the Kong containers running in Kubernetes? If you don’t see the custom plugin when hitting the root admin API endpoint of the Kong instance running in Kubernetes, it’s not actually available there.

Since the base image won’t include it, you’ll need to add it somehow before you can instruct the controller to apply it. Typically, that means:

Either option is valid, and it’s essentially up to personal preference which you use. The one exception is that you will likely need a custom image if your plugin needs to install additional libraries not present in the base image: there are some limitations with ConfigMap mounts that mean it will usually be much easier to install the plugin and its dependencies into a custom image using LuaRocks.


© 2019 Kong Inc.    Terms  •  Privacy  •  FAQ