argocd-helm-migration

Migrate duplicated per-environment ArgoCD Helm charts into a single chart with values overlays.

Updated Apr 15, 2026
One-click install
npx skills add https://github.com/shoshoavi/agentic_worflows --skill argocd-helm-migration-shoshoavi
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: argocd-helm-migration
Source: https://github.com/shoshoavi/agentic_worflows/tree/main/cursor/skills/argocd-helm-migration
Command: npx skills add https://github.com/shoshoavi/agentic_worflows --skill argocd-helm-migration-shoshoavi

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Teams maintaining separate staging and production Helm chart directories suffer from template drift, duplicated maintenance, inconsistent secret naming, and hidden YAML bugs. This Skill consolidates those per-environment charts into one shared chart with environment-specific values overlays managed by ArgoCD ApplicationSets. ## Core Features & Use Cases - Audit and Diff Workflow: Compare staging and production templates and values to document drift, unique templates, and YAML bugs before migrating. - Single-Chart Restructuring: Build a base values.yaml with shared defaults, create values-stg.yaml and values-prod.yaml overlays containing only differences, and deduplicate templates with conditional resources. - ArgoCD ApplicationSet Generation: Produce per-environment ApplicationSets wired to the ArgoCD Vault Plugin with correct HELM_ARGS layering so overlays override base values. - Use Case: A Slackbot service has two drifted Helm charts with mismatched secret names and a broken production deployment template. Use this Skill to merge them into one chart, standardize secrets via AVP, fix the YAML bug, and generate staging and production ApplicationSets. ## Quick Start Migrate my old per-environment ArgoCD Helm charts in the staging and production directories into a single chart with values overlays and generate the ApplicationSets.

Frequently Asked Questions about argocd-helm-migration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate per-environment Helm charts to a single chart?▼

Audit both environments with diff to find drift, extract shared defaults into a base values.yaml, create values-stg.yaml and values-prod.yaml overlays containing only differences, and merge templates using conditionals for env-specific resources. Validate with helm lint and helm template for each environment.

How do ArgoCD ApplicationSets pass multiple Helm values files?▼

ApplicationSets pass values files through the HELM_ARGS environment variable of the argocd-vault-plugin, for example -f values.yaml -f values-prod.yaml. Helm merges left to right, so the environment overlay listed last overrides the base values.

What goes in base values.yaml versus environment overlays?▼

Base values.yaml holds shared defaults like image repository, resource limits, probes, and security contexts, with empty placeholders for env-specific fields. Overlays contain only what differs per environment, such as cluster.environment, aws.region, image tag, and vaultPath.

How does ArgoCD Vault Plugin handle Kubernetes secrets in Helm?▼

The chart defines a Secret with an avp.kubernetes.io/path annotation pointing to a Vault path from values, and uses stringData with lowercase_snake_case placeholder keys. AVP replaces the placeholder tokens with real Vault values at deploy time.

Why should the image tag not be in base values.yaml?▼

Keeping app.tag out of base values prevents accidentally deploying a wrong or default version to an environment. Each environment overlay sets its own tag explicitly, making version promotion deliberate and auditable.

When is the single-chart pattern not a good fit?▼

The single-chart pattern fits when environments share the same resource structure and differ mainly in configuration values. If environments require fundamentally different architectures or template logic, maintaining separate charts may be clearer than heavy conditional branching.