Production-grade platform engineering handbook — Kubernetes, Terraform, Flux CD, GitHub Actions, AWS, and more.
67
84%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Flux has removed deprecated API versions in two waves. Running any v1beta1 or v1beta2 resource in a post-removal cluster will cause reconciliation failures.
v1beta1 removalsAll v1beta1 versions across every toolkit were removed:
| API group | Removed version |
|---|---|
source.toolkit.fluxcd.io | v1beta1 (GitRepository, HelmRepository, HelmChart, Bucket, OCIRepository) |
kustomize.toolkit.fluxcd.io | v1beta1 (Kustomization) |
helm.toolkit.fluxcd.io | v1beta1 (HelmRelease) |
image.toolkit.fluxcd.io | v1beta1 (ImageRepository, ImagePolicy, ImageUpdateAutomation) |
notification.toolkit.fluxcd.io | v1beta1 (Provider, Alert, Receiver) |
v1beta2 removalsAll v1beta2 versions were removed:
| API group | Removed version |
|---|---|
source.toolkit.fluxcd.io | v1beta2 (GitRepository, HelmRepository, HelmChart, Bucket, OCIRepository) |
kustomize.toolkit.fluxcd.io | v1beta2 (Kustomization) |
helm.toolkit.fluxcd.io | v1beta2 (HelmRelease) |
notification.toolkit.fluxcd.io | v1beta2 (Provider, Alert) |
| Kind | Current apiVersion |
|---|---|
| GitRepository, OCIRepository, HelmRepository, HelmChart, Bucket | source.toolkit.fluxcd.io/v1 |
| Kustomization | kustomize.toolkit.fluxcd.io/v1 |
| HelmRelease | helm.toolkit.fluxcd.io/v2 |
| Provider, Alert | notification.toolkit.fluxcd.io/v1beta3 |
| Receiver | notification.toolkit.fluxcd.io/v1 |
| ImageRepository, ImagePolicy, ImageUpdateAutomation | image.toolkit.fluxcd.io/v1beta2 (for non-gitless) |
| FluxInstance, ResourceSet, ResourceSetInputProvider | fluxcd.controlplane.io/v1 |
# Preview all files that need updating (dry-run — no changes written)
flux migrate -f . --dry-run
# Or use the official audit script from fluxcd/agent-skills
git clone --depth=1 https://github.com/fluxcd/agent-skills.git /tmp/flux-agent-skills
bash /tmp/flux-agent-skills/skills/gitops-repo-audit/scripts/check-deprecated.sh -d .flux migrate --dry-run exits 1 if deprecated versions are found. Use in CI to block merges.
Use when managing Flux via flux bootstrap.
# Clone your GitOps repo
git clone https://github.com/my-org/fleet-manifests.git
cd fleet-manifests
# Rewrite deprecated apiVersions in all YAML files
flux migrate -f .
# Review the diff
git diff
# Commit and push
git add -A
git commit -m "chore: migrate Flux APIs to v2.8+ versions"
git push
# Trigger reconciliation
flux reconcile ks flux-system --with-source# Update resources already stored in etcd
# Safe to run multiple times — idempotent
flux migrate
# For a specific cluster context
flux migrate --context my-cluster --kubeconfig ~/.kube/config# Re-run your original bootstrap command with the new version
flux bootstrap github \
--owner=my-org \
--repository=fleet-manifests \
--branch=main \
--path=clusters/production
# Verify
flux checkUse when managing Flux via FluxInstance.
helm upgrade flux-operator oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator \
--namespace flux-system \
--version ">=0.43.0"Same as CLI Step 1 — run flux migrate -f . in your GitOps repo, commit, push.
apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
name: flux
namespace: flux-system
spec:
distribution:
version: "2.8.x" # or "2.x" to track latestThe Flux Operator automatically handles in-cluster API migrations when the version target is updated.
# Validate all manifests against current Flux OpenAPI schemas
git clone --depth=1 https://github.com/fluxcd/agent-skills.git /tmp/flux-agent-skills
bash /tmp/flux-agent-skills/skills/gitops-repo-audit/scripts/validate.sh -d .
# Check Flux component health
flux check
# Check all sources and kustomizations
flux get all -AAdd to your GitHub Actions workflow:
- name: Check for deprecated Flux APIs
run: |
flux migrate -f . --dry-run
if [ $? -ne 0 ]; then
echo "Deprecated Flux API versions found — run 'flux migrate -f .' to fix"
exit 1
fi| Symptom | Cause | Fix |
|---|---|---|
no matches for kind "HelmRelease" in version "helm.toolkit.fluxcd.io/v2beta2" | YAML not migrated | Run flux migrate -f . |
Resources stuck after flux migrate | Cached schema in kubeconfig | Run rm -rf ~/.kube/cache |
flux check shows outdated components | Components not upgraded | Re-run bootstrap or update FluxInstance version |
flux migrate shows no changes but errors persist | In-cluster resources not migrated | Run flux migrate (without -f .) to update etcd |
.claude-plugin
.github
commands
docs
examples
agent-self-improve
argocd
awesome-docs
aws
cloudfront
functions
lambda-edge
functions
azure
compliance
conventional-commits
datadog
llm-observability
demo
documentation
dora
dynatrace
fluxcd
github-actions
composite-actions
configure-cloud
db-migrate
docker-build-push
k8s-deploy
notify-slack
pr-comment
release-tag
security-scan
setup-env
setup-terraform
terraform-plan
helm
web-service
templates
kubernetes
kyverno
mcp
observability
openshift
pr-review
ownership
runtime-security
supply-chain
terraform
references
scripts
skills
platform-skills
tests