abalage opened a new issue, #395: URL: https://github.com/apache/apisix-helm-chart/issues/395
Hello, I am using 2.15.0 from helm chart 0.11.2. I configure customPlugins according to the sample from [values.yaml](https://github.com/apache/apisix-helm-chart/blob/b2f13ac7d8309174fcbb528cba244724b9f1d22f/charts/apisix/values.yaml#L287). The content of the custom plugin does not matter. The `name` key is an empty string in the example above. However its value is used for concatenation when the [plugins: list is evaluated](https://github.com/apache/apisix-helm-chart/blob/b2f13ac7d8309174fcbb528cba244724b9f1d22f/charts/apisix/templates/configmap.yaml#L277). It creates a plugins list like this one below. Note the extra `-` character in plugins: definition. ``` etcd: host: # it's possible to define multiple etcd hosts addresses of the same etcd cluster. - "http://apisix-etcd.foobar.svc.cluster.local:2379/" prefix: "/apisix" # apisix configurations prefix timeout: 30 # 30 seconds plugins: # plugin list - add-custom-headers - jwt-as-bearer - cors - authz-keycloak - proxy-rewrite - redirect - prometheus - serverless-post-function - stream_plugins: - mqtt-proxy ``` It has several consequences like manifesting errors in apisix. ``` 2022/11/15 14:02:33 [warn] 46#46: *2 [lua] json.lua:94: failed to encode: Cannot serialise table: table key must be a number or string force: nil, context: init_worker_by_lua* 2022/11/15 14:02:33 [warn] 46#46: *2 [lua] json.lua:94: failed to encode: Cannot serialise table: table key must be a number or string force: nil, context: init_worker_by_lua* 2022/11/15 14:02:33 [warn] 46#46: *2 [lua] plugin.lua:194: load(): new plugins: , context: init_worker_by_lua* ... 2022/11/15 14:02:33 [error] 46#46: init_worker_by_lua error: /usr/local/apisix/apisix/plugin.lua:109: attempt to concatenate local 'name' (a table value) stack traceback: /usr/local/apisix/apisix/plugin.lua:109: in function 'load_plugin' /usr/local/apisix/apisix/plugin.lua:213: in function 'load' /usr/local/apisix/apisix/plugin.lua:332: in function 'load' /usr/local/apisix/apisix/plugin.lua:681: in function 'init_worker' /usr/local/apisix/apisix/init.lua:138: in function 'http_init_worker' init_worker_by_lua:2: in main chunk ``` And also causes ingress controller to fail: ``` 3397 2022-11-15T20:13:29+08:00>--^[[31merror^[[0m>---apisix/pluginconfig.go:164>-failed to create pluginConfig: unexpected status code 400; error message: {"error_msg":"unknown plugin [cors]"} 3399 2022-11-15T20:13:29+08:00>--^[[33mwarn^[[0m>ingress/apisix_pluginconfig.go:261>-sync ApisixPluginConfig failed, will retry>-{"object": {"Type":1,"Object":{"Key":"foo/example-apc","OldObject":null,"GroupV ersion":"apisix.apache.org/v2"},"OldObject":null,"Tombstone":null}, "error": "1 error occurred:\n\t* unexpected status code 400; error message: {\"error_msg\":\"unknown plugin [cors]\"}\n\n\n"} 3400 2022-11-15T20:13:29+08:00>--^[[31merror^[[0m>---ingress/status.go:336>--unsupported resource record: &{{ } {example-apc bar 4c33e65b-f7a9-4673-9c26-782f7d54fde6 67056101 %!s(int64=1) 2022-11-15 20:05:2 4 +0800 HKT <nil> %!s(*int64=<nil>) map[] map[] [] [] [{OpenAPI-Generator Update apisix.apache.org/v2 2022-11-15 20:05:24 +0800 HKT FieldsV1 {"f:spec":{".":{},"f:plugins":{}}} }]} {[{-- removed content --} {cors %!s(bool=true) map[allow_origins:http://localhost:4200]}]} {[]}} ``` Manually removing the extra dash character from configMap representing config.yml makes it work. I tried to give a name to the customPlugin instead of leaving empty but it caused another error. ``` 2022/11/16 14:14:11 [error] 44#44: *3 [lua] plugin.lua:118: load_plugin(): failed to load plugin [foobar] err: module 'apisix.plugins.foobar' not found: no field package.preload['apisix.plugins.foobar'] no file '/usr/local/custom/apisix/plugins/foobar.lua' no file '/usr/local/apisix//deps/share/lua/5.1/apisix/plugins/foobar.lua' no file '/usr/local/apisix//deps/share/lua/5.1/apisix/plugins/foobar/init.lua' no file '/usr/local/apisix/apisix/plugins/foobar.lua' no file '/usr/local/apisix/apisix/plugins/foobar/init.lua' no file '/usr/local/openresty/site/lualib/apisix/plugins/foobar.ljbc' no file '/usr/local/openresty/site/lualib/apisix/plugins/foobar/init.ljbc' no file '/usr/local/openresty/lualib/apisix/plugins/foobar.ljbc' no file '/usr/local/openresty/lualib/apisix/plugins/foobar/init.ljbc' no file '/usr/local/openresty/site/lualib/apisix/plugins/foobar.lua' no file '/usr/local/openresty/site/lualib/apisix/plugins/foobar/init.lua' no file '/usr/local/openresty/lualib/apisix/plugins/foobar.lua' no file '/usr/local/openresty/lualib/apisix/plugins/foobar/init.lua' no file './apisix/plugins/foobar.lua' no file '/usr/local/openresty/luajit/share/luajit-2.1.0-beta3/apisix/plugins/foobar.lua' no file '/usr/local/share/lua/5.1/apisix/plugins/foobar.lua' no file '/usr/local/share/lua/5.1/apisix/plugins/foobar/init.lua' no file '/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/foobar.lua' no file '/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/foobar/init.lua' no file './apisix/plugins/foobar.lua' no file '/usr/local/openresty/luajit/share/luajit-2.1.0-beta3/apisix/plugins/foobar.lua' no file '/usr/local/share/lua/5.1/apisix/plugins/foobar.lua' no file '/usr/local/share/lua/5.1/apisix/plugins/foobar/init.lua' no file '/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/foobar.lua' no file '/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/foobar/init.lua' no file '/usr/local/openresty/site/lualib/apisix/plugins/foobar.ljbc' no file '/usr/local/openresty/site/lualib/apisix/plugins/foobar/init.ljbc' no file '/usr/local/openresty/lualib/apisix/plugins/foobar.ljbc' no file '/usr/local/openresty/lualib/apisix/plugins/foobar/init.ljbc' no file '/usr/local/openresty/site/lualib/apisix/plugins/foobar.lua' no file '/usr/local/openresty/site/lualib/apisix/plugins/foobar/init.lua' no file '/usr/local/openresty/lualib/apisix/plugins/foobar.lua' no file '/usr/local/openresty/lualib/apisix/plugins/foobar/init.lua' no file './apisix/plugins/foobar.lua' no file '/usr/local/openresty/luajit/share/luajit-2.1.0-beta3/apisix/plugins/foobar.lua' no file '/usr/local/share/lua/5.1/apisix/plugins/foobar.lua' no file '/usr/local/share/lua/5.1/apisix/plugins/foobar/init.lua' no file '/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/foobar.lua' no file '/usr/local/openresty/luajit/share/lua/5.1/apisix/plugins/foobar/init.lua' no file '/usr/local/apisix//deps/lib64/lua/5.1/apisix/plugins/foobar.so' no file '/usr/local/apisix//deps/lib/lua/5.1/apisix/plugins/foobar.so' no file '/usr/local/openresty/site/lualib/apisix/plugins/foobar.so' no file '/usr/local/openresty/lualib/apisix/plugins/foobar.so' no file './apisix/plugins/foobar.so' no file '/usr/local/lib/lua/5.1/apisix/plugins/foobar.so' no file '/usr/local/openresty/luajit/lib/lua/5.1/apisix/plugins/foobar.so' no file '/usr/local/lib/lua/5.1/loadall.so' no file './apisix/plugins/foobar.so' no file '/usr/local/lib/lua/5.1/apisix/plugins/foobar.so' no file '/usr/local/openresty/luajit/lib/lua/5.1/apisix/plugins/foobar.so' no file '/usr/local/lib/lua/5.1/loadall.so' no file '/usr/local/apisix//deps/lib64/lua/5.1/apisix.so' no file '/usr/local/apisix//deps/lib/lua/5.1/apisix.so' no file '/usr/local/openresty/site/lualib/apisix.so' no file '/usr/local/openresty/lualib/apisix.so' no file './apisix.so' no file '/usr/local/lib/lua/5.1/apisix.so' no file '/usr/local/openresty/luajit/lib/lua/5.1/apisix.so' no file '/usr/local/lib/lua/5.1/loadall.so' no file './apis ``` The only viable workaround at the moment is manually editing the provisioned configmap. Should you have any questions please let me know. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
