ArgoCD GitOps Integration
When your application is managed by Argo CD, you need to prevent Argo CD from reporting OutOfSync when Argo Rollouts dynamically updates Rollout status fields at runtime. See Onboarding and workloadRef Migration for related workflows.
Prerequisites
| Component | Status |
|---|---|
| Argo CD | Installed and managing your application |
| Argo Rollouts | Installed in cluster |
| Argo Rollout MCP Server | Running (Docker recommended) |
| Onboarded Rollout | Onboarded and optionally managed by Argo CD |
Environment Setup
Verify Argo CD Application
argocd app get hello-world # or your app name
argocd app list
Start MCP Server (Docker — recommended)
docker run --rm -it \
-p 8768:8768 \
-v ~/.kube:/app/.kube:ro \
-e K8S_KUBECONFIG=/app/.kube/config \
talkopsai/argo-rollout-mcp-server:latest
What Gets Ignored
The tool generates ignoreDifferences for runtime fields that Argo Rollouts mutates:
| Resource | Paths Ignored | Purpose |
|---|---|---|
| TraefikService | /spec/weighted/services | Weight changes during canary steps |
| Rollout | /status | Phase, replica counts, conditions |
| Rollout | /spec/strategy/canary/trafficRouting, /spec/strategy/blueGreen/trafficRouting | MCP-patched trafficRouting (optional) |
| AnalysisRun | /status | Analysis run status |
| Deployment | /spec/replicas | workloadRef only: Rollout scale-down of referenced Deployment |
Standard Rollout Workflow
Generate ignoreDifferences for a standard canary or blue-green rollout.
| Step | Action | Prompt / Tool |
|---|---|---|
| 1 | Generate | "Generate ArgoCD ignoreDifferences for hello-world in default, including rollout status, analysis runs, and Traefik service." |
| 2 | Or use tool | generate_argocd_ignore_differences(include_traefik_service=True, include_rollout_status=True, include_analysis_run=True) |
| 3 | Copy output | Copy ignore_differences_yaml from response |
| 4 | Add to Application | Paste into Application.spec.ignoreDifferences |
| 5 | Sync | argocd app sync hello-world or sync via UI |
workloadRef Workflow
When using workloadRef migration, Argo CD may revert the Rollout's scale-down of the referenced Deployment.
| Step | Action | Prompt / Tool |
|---|---|---|
| 1 | Generate | "Generate ArgoCD ignoreDifferences for hello-world in default with include_deployment_replicas for workloadRef." |
| 2 | Or use tool | generate_argocd_ignore_differences(include_deployment_replicas=True, deployment_name="hello-world") |
| 3 | Add to Application | Paste output into Application.spec.ignoreDifferences |
trafficRouting Workflow (Argo CD / Helm–Managed Rollout)
When the Rollout is managed by Argo CD or Helm and you patch trafficRouting via MCP, sync may revert it.
| Step | Action | Prompt / Tool |
|---|---|---|
| 1 | Generate | Use tool with include_rollout_traffic_routing=True |
| 2 | Or use tool | generate_argocd_ignore_differences(include_rollout_traffic_routing=True) |
| 3 | Add to Application | Paste output into Application.spec.ignoreDifferences |
Verify Sync Status Workflow
| Step | Action | Prompt / Tool |
|---|---|---|
| 1 | Check sync | argocd app get hello-world or Argo CD UI |
| 2 | Trigger rollout | "Deploy hello-world:v2 to the hello-world rollout in default." |
| 3 | Verify no OutOfSync | Argo CD should not show OutOfSync from Rollout status or TraefikService weights |
Natural Language Prompts
Copy-paste these prompts into your MCP client (Cursor, Claude, etc.).
Standard Rollout
"Generate the ArgoCD ignoreDifferences configuration for hello-world in default — include Rollout status and AnalysisRun fields."
"Generate ignoreDifferences for hello-world in default with include_traefik_service — so Argo CD doesn't revert when Argo Rollouts updates TraefikService weights."
"Create the ArgoCD ignoreDifferences snippet for hello-world in default — include Rollout status, AnalysisRun, and TraefikService if using external traffic routing."
workloadRef
"Generate ArgoCD ignoreDifferences for hello-world in default with include_deployment_replicas for workloadRef — so Argo CD doesn't revert the Rollout's scale-down of the referenced Deployment."
Full Options
"Generate ignoreDifferences YAML for my ArgoCD app hello-world in default to prevent OutOfSync when Argo Rollouts updates status at runtime. Include rollout status, AnalysisRun, TraefikService, and deployment replicas for workloadRef."
Quick Reference: Tool → Prompt Mapping
| Tool | Example Prompt |
|---|---|
generate_argocd_ignore_differences | "Generate ArgoCD ignoreDifferences for hello-world in default, including rollout status, analysis runs, and Traefik service." |
generate_argocd_ignore_differences (workloadRef) | "Generate ArgoCD ignoreDifferences for hello-world in default with include_deployment_replicas for workloadRef." |
generate_argocd_ignore_differences (trafficRouting) | Use include_rollout_traffic_routing=True when Rollout is Argo CD/Helm-managed and trafficRouting is MCP-patched |
Tool Parameters
| Parameter | Default | Description |
|---|---|---|
include_traefik_service | true | Include TraefikService weight paths |
include_rollout_status | true | Include Rollout status paths |
include_rollout_traffic_routing | false | Include trafficRouting so MCP patches persist |
include_analysis_run | false | Include AnalysisRun status paths |
include_deployment_replicas | false | workloadRef: Ignore Deployment spec.replicas |
deployment_name | (optional) | Scopes Deployment ignore when include_deployment_replicas=True |
traefik_api_group | "traefik.io" | Use traefik.containo.us for Traefik v2 |
Troubleshooting
| Issue | Check |
|---|---|
| Argo CD still OutOfSync | Ensure ignoreDifferences is in Application.spec, not a separate resource. Verify paths match your resources. |
| TraefikService weights reverted | Add include_traefik_service=True. For Traefik v2, use traefik_api_group="traefik.containo.us". |
| trafficRouting patch reverted on sync | Add include_rollout_traffic_routing=True. Or add trafficRouting to your Helm chart/Argo CD source. |
| Deployment replicas reverted (workloadRef) | Add include_deployment_replicas=True and deployment_name="hello-world". |
| Wrong API group for Traefik | Traefik v3: traefik.io. Traefik v2: traefik.containo.us. |
Next Steps
- Onboarding — Deployment to Rollout migration
- workloadRef Migration — For Argo CD–managed apps
- Zero-Downtime Migration — Full migration under Argo CD
- Tools —
generate_argocd_ignore_differences - Examples — Quick reference and prompts