--- # yaml-language-server: $schema=https://taskfile.dev/schema.json version: '3' vars: CLUSTER_SECRET_SOPS_FILE: '{{.KUBERNETES_DIR}}/flux/vars/cluster-secrets.sops.yaml' CLUSTER_SETTINGS_FILE: '{{.KUBERNETES_DIR}}/flux/vars/cluster-settings.yaml' GITHUB_DEPLOY_KEY_FILE: '{{.KUBERNETES_DIR}}/bootstrap/flux/github-deploy-key.sops.yaml' tasks: bootstrap: desc: Bootstrap Flux into a Kubernetes cluster cmds: - kubectl apply --server-side --kustomize {{.KUBERNETES_DIR}}/bootstrap/flux - | if ! kubectl --namespace flux-system get secret sops-age >/dev/null 2>&1; then cat {{.SOPS_AGE_KEY_FILE}} | kubectl --namespace flux-system create secret generic sops-age --from-file=age.agekey=/dev/stdin else echo "sops-age secret already exists, skipping creation." fi - sops --decrypt {{.CLUSTER_SECRET_SOPS_FILE}} | kubectl apply --server-side --filename - - kubectl apply --server-side --filename {{.CLUSTER_SETTINGS_FILE}} - kubectl apply --server-side --kustomize {{.KUBERNETES_DIR}}/flux/config preconditions: - msg: Missing kubeconfig sh: test -f {{.KUBECONFIG}} - msg: Missing Sops Age key file sh: test -f {{.SOPS_AGE_KEY_FILE}} reconcile: desc: Force update Flux to pull in changes from your Git repository cmd: flux reconcile --namespace flux-system kustomization cluster --with-source preconditions: - msg: Missing kubeconfig sh: test -f {{.KUBECONFIG}} github-deploy-key: cmds: - kubectl create namespace flux-system --dry-run=client -o yaml | kubectl apply --filename - - sops --decrypt {{.GITHUB_DEPLOY_KEY_FILE}} | kubectl apply --server-side --filename - preconditions: - msg: Missing kubeconfig sh: test -f {{.KUBECONFIG}} - msg: Missing Sops Age key file sh: test -f {{.SOPS_AGE_KEY_FILE}} - msg: Missing Github deploy key file sh: test -f {{.GITHUB_DEPLOY_KEY_FILE}}