Seamlessly migrate your Helm releases to FluxCD GitOps-managed HelmReleases. Extract, convert, and deploy with confidence.
Transition from traditional Helm deployments to FluxCD with automated tooling
Extracts all Helm releases and converts them to FluxCD HelmRelease format automatically.
Generates output following FluxCD's recommended directory structure with Kustomizations.
Uses Claude AI to find official Helm chart repositories when not detected from FluxCD.
Export manifests and compare deployments before/after changes for validation.
Get up and running in minutes with simple commands
git clone https://github.com/starburst997/helm-to-flux cd helm-to-flux chmod +x *.sh
# Basic usage ./convert.sh ingress-nginx ingress-nginx # With cluster and output directory ./convert.sh --cluster production --output-dir my-gitops ingress-nginx ingress-nginx
# Discover and convert all Helm releases across all namespaces ./all.sh # Specify cluster name for production ./all.sh --cluster production --output-dir my-gitops
# Export current state ./export-all.sh export-before # Make changes to your cluster... # Export new state and compare ./export-all.sh export-after ./compare-exports.sh export-before export-after
FluxCD-compatible directory layout following GitOps best practices
clusters/ ├── my_cluster/ # Cluster-specific Kustomizations │ ├── infrastructure/ │ │ ├── ingress-nginx.yaml # Kustomization │ │ └── cert-manager.yaml │ └── apps/ │ ├── myapp.yaml │ └── another-app.yaml └── resources/ └── my_cluster/ ├── infrastructure/ │ ├── ingress-nginx/ │ │ └── helm.yaml # HelmRepo + HelmRelease │ └── cert-manager/ │ └── helm.yaml └── apps/ ├── myapp/ │ └── helm.yaml └── another-app/ └── helm.yaml
Complete options for all scripts
Recommended approach for a seamless transition
Run the migration in a dev cluster first using
./all.sh --cluster dev
Inspect Kustomizations and HelmReleases before committing to ensure correctness.
Migrate one release at a time in production using
./convert.sh
Add generated files to your GitOps repository and push to trigger FluxCD reconciliation.
Run flux get kustomizations and
flux get helmreleases -A to verify success.
Once verified, remove original Helm releases with
helm uninstall
Required tools for running the migrator
helm
Helm CLI
kubectl
Kubernetes CLI
jq
JSON processor
yq
YAML processor
claudeoptional
AI repository detection