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]

Reply via email to