apiVersion: argoproj.io/v1alpha1 kind: AnalysisTemplate metadata: name: prod-health-check namespace: infra spec: metrics: - name: pod-health successCondition: result == "healthy" provider: job: spec: template: spec: serviceAccountName: kargo-verifier containers: - name: check image: alpine/k8s:1.35.1 command: [sh, -c] args: - | set -e echo "Checking pod health..." cm=$(kubectl get pods -n cert-manager --no-headers 2>/dev/null | grep -c Running || echo 0) echo "cert-manager running pods: $cm" ar=$(kubectl get pods -n argo-rollouts --no-headers 2>/dev/null | grep -c Running || echo 0) echo "argo-rollouts running pods: $ar" gt=$(kubectl get pods -n gitea --no-headers 2>/dev/null | grep -c Running || echo 0) echo "gitea running pods: $gt" if [ "$cm" -ge 1 ] && [ "$ar" -ge 1 ] && [ "$gt" -ge 1 ]; then echo "healthy" else echo "unhealthy" exit 1 fi restartPolicy: Never backoffLimit: 2