set default-list set default-script set quiet set script-interpreter := ['bash', '-euo', 'pipefail'] set shell := ['bash', '-euo', 'pipefail', '-c'] [doc('Apply local Flux Kustomization')] apply-ks ns ks: just kube render-local-ks "{{ ns }}" "{{ ks }}" | kubectl apply --server-side --force-conflicts --field-manager=kustomize-controller -f - [doc('Browse a PVC')] browse-pvc ns claim: kubectl browse-pvc -n {{ ns }} -i mirror.gcr.io/alpine:latest {{ claim }} [doc('Delete local Flux Kustomization')] delete-ks ns ks: just kube render-local-ks "{{ ns }}" "{{ ks }}" | kubectl delete -f - [doc('Open a shell on a node')] node-shell node: kubectl debug node/{{ node }} -n default -it --image="mirror.gcr.io/alpine:latest" --profile sysadmin kubectl delete pod -n default -l app.kubernetes.io/managed-by=kubectl-debug [doc('Prune pods in Failed, Pending, or Succeeded state')] prune-pods: for phase in successful; do kubectl delete jobs --all-namespaces --field-selector status."$phase"=1 --ignore-not-found=true done for phase in Failed Pending Succeeded; do kubectl delete pods -A --field-selector status.phase="$phase" --ignore-not-found=true done [arg('resource', pattern='hr|ks|gitrepo|ocirepo|es')] [doc('Sync a resource')] sync resource: kubectl get {{ resource }} --no-headers -A | while read -r ns name _; do kubectl -n "$ns" annotate --field-manager flux-client-side-apply --overwrite {{ resource }} "$name" \ "force-sync=$(date +%s)" \ "reconcile.fluxcd.io/requestedAt=$(date +%s)" \ "reconcile.fluxcd.io/forceAt=$(date +%s)" done [doc('View a secret')] view-secret ns secret: kubectl view-secret -n {{ ns }} {{ secret }} [private] render-local-ks ns ks: flate build ks --namespace "{{ ns }}" --output yaml "{{ ks }}"