Flux Bootstrap
Ziel
Dieses Dokument beschreibt die initiale Installation von FluxCD mittels Flux Operator sowie die Anbindung eines Git-Repositories an einen Cluster.
Voraussetzungen
-
Kubernetes Cluster verfügbar
-
Kubectl konfiguriert
-
Helm installiert
-
Repository vorhanden
-
GPG-Schlüssel für SOPS vorhanden
Variablen
export GITHUB_TOKEN=FIXME
export KEY_FP=78F9A6BF5A56051C803F55A80C55F3BC10960BBA
export CLUSTER_NAME=FIXME
Installation des Flux Operators
helm install flux-operator \
oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator \
--namespace flux-system \
--create-namespace
Erstellung der FluxInstance
apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
name: flux
namespace: flux-system
annotations:
fluxcd.controlplane.io/reconcileEvery: "1h"
fluxcd.controlplane.io/reconcileTimeout: "5m"
spec:
distribution:
version: "2.x"
registry: "ghcr.io/fluxcd"
artifact: "oci://ghcr.io/controlplaneio-fluxcd/flux-operator-manifests"
components:
- source-controller
- kustomize-controller
- helm-controller
- notification-controller
- image-reflector-controller
- image-automation-controller
- source-watcher
cluster:
type: kubernetes
multitenant: false
networkPolicy: true
domain: cluster.local
sync:
kind: GitRepository
url: https://codeberg.org/tamay/fluxcd.git
ref: refs/heads/main
path: clusters/$CLUSTER_NAME
pullSecret: flux-system
Git Credentials
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: flux-system
namespace: flux-system
type: Opaque
data:
password: $(printf $GITHUB_TOKEN | base64 -w0)
username: Z2l0
EOF