Skip to content

Instantly share code, notes, and snippets.

@etenzy
Last active June 3, 2025 09:03
Show Gist options
  • Save etenzy/2f87495e6e1bdce2f933b1c5383b26ff to your computer and use it in GitHub Desktop.
Save etenzy/2f87495e6e1bdce2f933b1c5383b26ff to your computer and use it in GitHub Desktop.
install flux from helm using a job
---
apiVersion: v1
kind: Namespace
metadata:
name: flux-system
labels:
kubernetes.io/metadata.name: flux-system
name: flux-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/managed-by: Helm
annotations:
meta.helm.sh/release-name: flux
meta.helm.sh/release-namespace: flux-system
name: helm-controller
namespace: flux-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/managed-by: Helm
annotations:
meta.helm.sh/release-name: flux
meta.helm.sh/release-namespace: flux-system
name: cluster-reconciler
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: helm-controller
namespace: flux-system
---
apiVersion: v1
kind: ConfigMap
metadata:
name: flux-installer-values
namespace: flux-system
data:
values.yaml: |-
logLevel: debug
---
apiVersion: batch/v1
kind: Job
metadata:
name: flux-installer
namespace: flux-system
spec:
completions: 1
ttlSecondsAfterFinished: 60
template:
spec:
tolerations:
- operator: "Exists"
effect: "NoSchedule"
containers:
- name: helm
image: alpine/k8s:1.32.3
volumeMounts:
- name: values
mountPath: /tmp
command: ["helm"]
args:
- --namespace=flux-system
- --repo=https://fluxcd-community.github.io/helm-charts
- upgrade
- --install
- flux
- flux2
- --version=2.15.0
- --values=/tmp/values.yaml
volumes:
- name: values
configMap:
name: flux-installer-values
restartPolicy: Never
serviceAccountName: helm-controller
backoffLimit: 0
---
apiVersion: batch/v1
kind: Job
metadata:
name: flux-installer-cleanup
namespace: flux-system
spec:
completions: 1
ttlSecondsAfterFinished: 60
template:
spec:
tolerations:
- operator: "Exists"
effect: "NoSchedule"
containers:
- name: kubectl
image: alpine/k8s:1.32.3
command: ["/bin/sh", "-c"]
args:
- >-
sleep 5 &&
kubectl -n flux-system wait --for=condition=complete --timeout=300s job/flux-installer &&
kubectl -n flux-system delete configmap flux-installer-values
restartPolicy: Never
serviceAccountName: helm-controller
backoffLimit: 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment