Config Management Plugins (CMPs) allow you to use custom config management tools beyond Argo CD’s native support for Helm, Kustomize, and Jsonnet.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/argoproj/argo-cd/llms.txt
Use this file to discover all available pages before exploring further.
When to Use Plugins
Use a Config Management Plugin when:- You need a config management tool not natively supported by Argo CD
- Argo CD’s native tool support lacks a feature you need
- You want to customize manifest generation beyond standard tools
Plugin Architecture
Plugins run as sidecars to theargocd-repo-server component. When configured, the repo server delegates manifest generation to the plugin.
Installing a Plugin
1. Write the Plugin Configuration
Create aConfigManagementPlugin manifest:
Unique name for the plugin within the Argo CD instance
Plugin version. If specified, use
<name>-<version> in Application specOptional command to initialize the source directory before generation
Command to generate Kubernetes manifests. Must output valid YAML or JSON to stdout.
Discovery rules to automatically match Applications to this plugin
2. Place Configuration in Sidecar
The plugin config must be at/home/argocd/cmp-server/config/plugin.yaml.
Option A: ConfigMap
3. Register Plugin Sidecar
Add sidecar toargocd-repo-server:
Critical Requirements:
- Use
/var/run/argocd/argocd-cmp-serveras entrypoint - Run as user 999
- Plugin config at
/home/argocd/cmp-server/config/plugin.yaml - Separate tmp volume from repo-server (security)
Discovery Configuration
Plugins can automatically match Applications using discovery rules:File Name Pattern
Glob Pattern (with nested directories)
Command-Based Discovery
Only one discovery method should be specified. Evaluated in order:
fileName, find.glob, find.command.Using a Plugin with an Application
Auto-Discovery
Let the plugin match based on discovery rules:Explicit Plugin Name
Specify the plugin explicitly:Environment Variables
Plugin commands have access to:1. Standard Build Environment
ARGOCD_APP_NAMEARGOCD_APP_NAMESPACEARGOCD_APP_REVISIONARGOCD_APP_SOURCE_REPO_URLARGOCD_APP_SOURCE_PATHARGOCD_APP_SOURCE_TARGET_REVISIONKUBE_VERSIONKUBE_API_VERSIONS
2. Custom Environment Variables
3. Parameters
- JSON in
ARGOCD_APP_PARAMETERS - Individual env vars:
PARAM_VALUES_FILES_0=values-dev.yaml
Parameter Announcements
Inform the UI about available parameters:Advanced Configuration
Preserve File Mode
Provide Git Credentials
Timeouts
Configure timeouts to prevent long-running commands:Debugging Plugins
Plugin Performance
Exclude unnecessary files from being sent to the plugin:Example Plugins
Check out official example plugins for:- Custom templating tools
- External secret management
- Custom Helm wrappers
- Integration with other GitOps tools
Security Best Practices
Audit Plugin Code
Review all plugin code before installation. Plugins have significant system access.
Minimal Images
Use minimal base images with only required tools to reduce attack surface.
Input Sanitization
Always sanitize and escape user input in plugin commands.
Separate Volumes
Use separate tmp volumes for each plugin to prevent path traversal attacks.