Overview
Argo CD natively supports Helm, Jsonnet, and Kustomize. For other config management tools or unsupported features, you can create Config Management Plugins (CMPs). The repo server delegates manifest building to plugins when configured correctly.Plugin Installation
Sidecar Architecture
Plugins run as sidecars to the repo-server, providing isolation and flexibility.1
Write Plugin Configuration
Create a
ConfigManagementPlugin manifest:While this looks like a Kubernetes object, it’s not a custom resource—it just follows Kubernetes-style conventions.
2
Place Configuration in Sidecar
The plugin config must be at Option 2: Mount from ConfigMap
/home/argocd/cmp-server/config/plugin.yaml.Option 1: Bake into Image3
Register Plugin Sidecar
Patch argocd-repo-server deployment:
Plugin Configuration
Discovery Rules
Plugins use discovery rules to match Applications:- fileName (glob)
- find.glob (nested)
- find.command
If discovery config is omitted, the plugin won’t match any Application automatically but can still be invoked explicitly by name.
Generate Command
Thegenerate command must print valid Kubernetes YAML or JSON to stdout:
Init Command
Runs before generate, useful for setup:Parameters
Define UI parameters for your plugin:Environment Variables
Plugin commands have access to:System Environment Variables
System Environment Variables
Variables from the sidecar container environment.
Standard Build Variables
Standard Build Variables
ARGOCD_APP_NAME- Application nameARGOCD_APP_NAMESPACE- Application namespaceARGOCD_APP_REVISION- Git revisionARGOCD_APP_SOURCE_REPO_URL- Repository URLARGOCD_APP_SOURCE_PATH- Path in repositoryKUBE_VERSION- Target Kubernetes versionKUBE_API_VERSIONS- Available API versions
Application Environment Variables
Application Environment Variables
User-supplied variables (prefixed with Available as
ARGOCD_ENV_):$ARGOCD_ENV_FOOApplication Parameters
Application Parameters
Available as JSON in Results in:
ARGOCD_APP_PARAMETERS and as individual env vars:PARAM_VALUES_FILES_0=values-dev.yamlPARAM_IMAGE_TAG=v1.2.3
Using Plugins in Applications
Auto-Discovery
Explicit Plugin Name
Advanced Configuration
Preserve File Mode
Provide Git Credentials
ASKPASS method through a socket shared between containers.
Timeout Configuration
CMP commands respect timeouts:server.repo.server.timeout.secondsin argocd-cmd-params-cm (default: 60s)ARGOCD_EXEC_TIMEOUTon CMP sidecar (default: 90s)ARGOCD_EXEC_FATAL_TIMEOUTfor forceful termination
Debugging
1
Enable Debug Logging
Set
--loglevel=info on the sidecar to see stderr output:2
Check Sidecar Status
3
View Logs
4
Hard Refresh
CMP errors are cached in Redis. Always do a “Hard Refresh” in the UI when testing.
Common Errors
Common Errors
Example Plugins
Check out the example plugins repository for:- Helm with custom value injection
- Kustomize with additional transformations
- Custom templating engines
- Multi-tool pipelines
Migration from argocd-cm
1
Convert ConfigMap Entry
Transform your plugin config to the new format (see examples above).
2
Add Discovery Rules
Add discovery rules or update Application manifests with explicit plugin names.
3
Verify Tool Access
Ensure your sidecar image includes all tools your plugin needs.
4
Test and Deploy
Test with a few Applications before migrating all of them.
Next Steps
Custom Health Checks
Add health checks for custom resources
Resource Actions
Define custom actions for resources
UI Extensions
Extend the web interface
Example Plugins
View plugin examples