I would like to use standard yaml anchors ans aliases to not repeat myself too much in the config.
The only reference to anchors i found is https://github.com/apache/apisix/issues/10468
Example:
include/variables.yaml:
variables:
common_methods: &common_methods
- GET
- POST
- PUT
- DELETE
...
apisix.yaml:
include include/variables.yaml
routes:
-
uri: /inbound/api/*
name: API Route
methods: *common_methods
service_id: 'service_api'
upstream_id: 'upstream_api'
labels:
API_VERSION: '1'
api_name: api
api_type: inbound
status: 1
This config will result in this error:
[error] 34#34: *3 [lua] config_yaml.lua:210: failed to check item data of [routes] err:property "methods" validation failed: wrong type: expected array, got string ,val: {"priority":0,"labels":{"api_type":"inbound","API_VERSION":"1","api_name":"api"},"name":"API Route","uri":"/inbound/api/*","upstream_id":"upstream_api","methods":"*common_methods","service_id":"service_api","status":1}, context: init_worker_by_lua*
I also tried:
include include/variables.yaml
routes:
-
uri: /inbound/api/*
name: API Route
methods:
<<: *common_methods
service_id: 'service_api'
upstream_id: 'upstream_api'
labels:
API_VERSION: '1'
api_name: api
api_type: inbound
status: 1
which results in:
[error] 35#35: *1 [lua] config_yaml.lua:210: failed to check item data of [routes] err:property "methods" validation failed: wrong type: expected array, got table ,val: {"priority":0,"service_id":"service_api","status":1,"name":"API Route","methods":{"<<":"*common_methods"},"uri":"/inbound/api/*","upstream_id":"upstream_api","labels":{"API_VERSION":"1","api_name":"api","api_type":"inbound"}}, context: init_worker_by_lua*
Any ideas? Thank you!
Environment
Using the official docker image from DockerHub: apache/apisix:3.9.1-debian
APISIX version (run apisix version): 3.9.1
Operating system (run uname -a): Linux 3a2a54d2c5fc 6.1.41-63.114.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Aug 1 20:47:25 UTC 2023 x86_64 GNU/Linux
Description
I would like to use standard yaml anchors ans aliases to not repeat myself too much in the config. The only reference to anchors i found is https://github.com/apache/apisix/issues/10468
Example:
include/variables.yaml
:apisix.yaml
:This config will result in this error:
I also tried:
which results in:
Any ideas? Thank you!
Environment
Using the official docker image from DockerHub: apache/apisix:3.9.1-debian
apisix version
): 3.9.1uname -a
): Linux 3a2a54d2c5fc 6.1.41-63.114.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Aug 1 20:47:25 UTC 2023 x86_64 GNU/Linuxopenresty -V
ornginx -V
): nginx version: openresty/1.25.3.1 built by gcc 10.2.1 20210110 (Debian 10.2.1-6) built with OpenSSL 3.2.0 23 Nov 2023 TLS SNI support enabled configure arguments: --prefix=/usr/local/openresty/nginx --with-cc-opt='-O2 -DAPISIX_RUNTIME_VER=1.2.0 -DNGX_GRPC_CLI_ENGINE_PATH=/usr/local/openresty/libgrpc_engine.so -DNGX_HTTP_GRPC_CLI_ENGINE_PATH=/usr/local/openresty/libgrpc_engine.so -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl3/include' --add-module=../ngx_devel_kit-0.3.3 --add-module=../echo-nginx-module-0.63 --add-module=../xss-nginx-module-0.06 --add-module=../ngx_coolkit-0.2 --add-module=../set-misc-nginx-module-0.33 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.09 --add-module=../srcache-nginx-module-0.33 --add-module=../ngx_lua-0.10.26 --add-module=../ngx_lua_upstream-0.07 --add-module=../headers-more-nginx-module-0.37 --add-module=../array-var-nginx-module-0.06 --add-module=../memc-nginx-module-0.20 --add-module=../redis2-nginx-module-0.15 --add-module=../redis-nginx-module-0.3.9 --add-module=../ngx_stream_lua-0.0.14 --with-ld-opt='-Wl,-rpath,/usr/local/openresty/luajit/lib -Wl,-rpath,/usr/local/openresty/wasmtime-c-api/lib -L/usr/local/openresty/zlib/lib -L/usr/local/openresty/pcre/lib -L/usr/local/openresty/openssl3/lib -Wl,-rpath,/usr/local/openresty/zlib/lib:/usr/local/openresty/pcre/lib:/usr/local/openresty/openssl3/lib' --add-module=/tmp/tmp.EQbG5FbABp/openresty-1.25.3.1/../mod_dubbo-1.0.2 --add-module=/tmp/tmp.EQbG5FbABp/openresty-1.25.3.1/../ngx_multi_upstream_module-1.2.0 --add-module=/tmp/tmp.EQbG5FbABp/openresty-1.25.3.1/../apisix-nginx-module-1.16.0 --add-module=/tmp/tmp.EQbG5FbABp/openresty-1.25.3.1/../apisix-nginx-module-1.16.0/src/stream --add-module=/tmp/tmp.EQbG5FbABp/openresty-1.25.3.1/../apisix-nginx-module-1.16.0/src/meta --add-module=/tmp/tmp.EQbG5FbABp/openresty-1.25.3.1/../wasm-nginx-module-0.7.0 --add-module=/tmp/tmp.EQbG5FbABp/openresty-1.25.3.1/../lua-var-nginx-module-v0.5.3 --add-module=/tmp/tmp.EQbG5FbABp/openresty-1.25.3.1/../grpc-client-nginx-module-v0.5.0 --add-module=/tmp/tmp.EQbG5FbABp/openresty-1.25.3.1/../lua-resty-events-0.2.0 --with-poll_module --with-pcre-jit --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_v2_module --with-http_v3_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_auth_request_module --with-http_secure_link_module --with-http_random_index_module --with-http_gzip_static_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-threads --with-compat --with-stream --without-pcre2 --with-http_ssl_module