Skip to content

bug: Configuration errors due to environment variables sharing prefixes #11239

Description

@ilya-tishonok

Current Behavior

When running Apache APISIX in standalone mode, there seems to be an issue with the environment variable substitution mechanism where variables with a common prefix are not correctly recognized. This results in the wrong values being used for certain configuration settings.

For example for configuration (apisix.yaml):

organizations_server:
  keepalive_pool: ${{ORGANIZATIONS_SERVER_KEEPALIVE_POOL}}
  keepalive_timeout: ${{ORGANIZATIONS_SERVER_KEEPALIVE_TIMEOUT}}
  keepalive: ${{ORGANIZATIONS_SERVER_KEEPALIVE}}

and envs:
ORGANIZATIONS_SERVER_KEEPALIVE_POOL=60000
ORGANIZATIONS_SERVER_KEEPALIVE_TIMEOUT=10000
ORGANIZATIONS_SERVER_KEEPALIVE=wrong_value

values for keepalive_pool and keepalive_timeout are incorrectly populated with the value of ORGANIZATIONS_SERVER_KEEPALIVE (i.e., wrong_value).

Expected Behavior

Configuration values should be correctly populated according to their corresponding environment variables based on unique, fully matched variable names.

Error Logs

image

Steps to Reproduce

  1. Ensure basic config.yaml and apisix.yaml configurations are set up for APISIX in standalone mode.
  2. Modify the configuration to reference environment variables that share the same prefix but are intended for different settings. For example, include references to TEST_ENV_CORRECT and TEST_ENV in the configuration as follows:
example_config:
  correct_value: ${{TEST_ENV_CORRECT}}
  base_value: ${{TEST_ENV}}
  1. Set the environment variables to different values:
    TEST_ENV_CORRECT=expected_value
    TEST_ENV=base_value
  2. Start APISIX.

Environment

  • Docker image: apache/apisix:3.8.0-debian

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status
    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions