49 lines
2.0 KiB
YAML
49 lines
2.0 KiB
YAML
---
|
|
# 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}}
|