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
-
Flux Git Repository vorhanden
-
Age Schlüssel vorhanden
Variablen
export GIT_USERNAME=git
export GIT_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
Git Zugangsdaten
kubectl create secret generic flux-system \
--namespace flux-system \
--from-literal=username=${GIT_USERNAME} \
--from-literal=password=${GIT_TOKEN}
Age Schlüssel
cat ~/.config/sops/age/keys.txt |
kubectl create secret generic sops-age \
--namespace=flux-system \
--from-file=age.agekey=/dev/stdin
Erstellung der FluxInstance
cat << EOF | kubectl create -f -
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.9.x"
registry: "ghcr.io/fluxcd"
components:
- source-controller
- kustomize-controller
- helm-controller
cluster:
type: kubernetes
size: small
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
EOF