Skip to content

Conversation

@ssc806
Copy link

@ssc806 ssc806 commented Dec 26, 2025

This PR adds configuration options to support the API-driven standalone deployment mode for the APISIX Ingress Controller.

Motivation

When deploying APISIX and the Ingress Controller in separate pods (but without etcd), the Ingress Controller needs to know the address and credentials of the APISIX Admin API to push configurations. The current chart does not expose a way to configure the apisix block in the controller's config.yaml or inject environment variables into the adc sidecar container (which handles the communication in standalone mode).

Changes

  1. ConfigMap: Added support for rendering an apisix block in config.yaml from .Values.config.apisix. This allows setting base_url and admin_key.
  2. Deployment: Added support for iterating over .Values.deployment.adcContainer.env to inject custom environment variables (like APISIX_BASE_URL and APISIX_API_KEY) into the adc-server container.

Example Usage (values.yaml)

config:
  provider:
    type: apisix-standalone
  apisix:
    base_url: http://apisix-admin:9180/apisix/admin
    admin_key: edd1c9f034335f136f87ad84b625c8f1

deployment:
  adcContainer:
    env:
      - name: APISIX_BASE_URL
        value: http://apisix-admin:9180/apisix/admin
      - name: APISIX_API_KEY
        value: edd1c9f034335f136f87ad84b625c8f1

1. Allow injecting environment variables into adc-server container via .Values.deployment.adcContainer.env
2. Allow configuring apisix base_url and admin_key via .Values.config.apisix in ConfigMap
This enables running the ingress controller in API-driven standalone mode where it needs to push config to a remote APISIX.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant