Skip to main content
Version: 3.18.0

API Declarative CLI (ADC)

API Declarative CLI (ADC) manages Apache APISIX configuration from local YAML or JSON files.

For installation instructions, command usage, configuration format, OpenAPI conversion, and additional reference material, see the ADC documentation. To compare ADC with the other APISIX management options, see Management Options.

caution

The ADC backend for APISIX is experimental. Review the backend limitations below and inspect adc diff output before every synchronization.

Manage Configuration as Code​

Use ADC when Apache APISIX configuration should be managed as code instead of through individual Admin API calls. ADC works with local declarative files that describe the desired gateway state, then compares those files with the running gateway before changes are applied.

This workflow helps teams:

  • Review and audit gateway configuration changes through version control.
  • Promote the same configuration across environments.
  • Preview create, update, and delete operations before syncing.
  • Export existing gateway configuration as a baseline for future changes.

ADC is well suited for APISIX deployments that run outside Kubernetes or for teams that manage gateway configuration through CI/CD pipelines.

How ADC Works with Apache APISIX​

ADC connects to Apache APISIX through the Admin API and applies declarative configuration to the gateway. This lets teams manage routes, services, upstreams, consumers, plugins, and other gateway resources through files instead of manual API requests.

Before applying changes, ADC can check local files, ask the backend to validate resources, and show the difference between the local desired state and the running gateway. This makes configuration changes easier to review before they reach APISIX.

APISIX Backend Limitations​

ADC normalizes APISIX resources into its service-oriented model. Dump output might not preserve the original resource shape, and backend-populated defaults can cause repeated differences. Review the current APISIX backend limitations before adoption.

Reconciliation Scope and Ownership​

adc sync can delete in-scope remote resources that are absent from the local files. Run adc diff and review the generated diff.yaml before synchronizing. See the ADC workflow and label selector guides for current scoping behavior.

By default, ADC adds or overwrites the managed-by: adc label in the local configuration before diff, validate, and sync. The first comparison of existing resources can therefore show label-only updates. This label identifies ADC-managed resources but does not limit reconciliation scope. Use --no-managed-by-label when the managed-by label must remain unchanged.

For details beyond Apache APISIX connection setup, refer to the ADC documentation.