@raishin/vanguard-frontier-agentic 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +231 -113
- package/agents/AGENTS.md +263 -21
- package/agents/argocd/README.md +46 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/AGENT.md +55 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/claude-code.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/codex.toml +29 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/copilot.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/cursor.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/gemini.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/kiro-ide.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/metadata.json +31 -0
- package/agents/argocd/argocd-gitops-review-agent/AGENT.md +55 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/codex.toml +32 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/metadata.json +30 -0
- package/agents/aws/aws-live-deployment-guarded-operator-agent/metadata.json +10 -1
- package/agents/aws/aws-live-ecs-rollout-guard-agent/metadata.json +10 -1
- package/agents/aws/aws-live-iac-change-guard-agent/metadata.json +10 -1
- package/agents/aws/aws-live-pipeline-approval-operator-agent/metadata.json +10 -1
- package/agents/aws/aws-live-serverless-release-guard-agent/metadata.json +10 -1
- package/agents/aws/aws-private-ca-issuer-review-agent/AGENT.md +53 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/claude-code.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/codex.toml +27 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/copilot.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/cursor.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/gemini.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/kiro-ide.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/metadata.json +37 -0
- package/agents/azure/README.md +45 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/AGENT.md +53 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/claude-code.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/codex.toml +27 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/copilot.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/cursor.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/gemini.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/kiro-ide.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/metadata.json +36 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/metadata.json +10 -1
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/metadata.json +10 -1
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/metadata.json +10 -1
- package/agents/azure/azure-live-cost-budget-action-guard-agent/metadata.json +10 -1
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/AGENT.md +59 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/codex.toml +34 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/copilot.agent.md +55 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/cursor.agent.md +44 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/gemini.agent.md +43 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/metadata.json +37 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/metadata.json +10 -1
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/metadata.json +11 -2
- package/agents/backstage/README.md +36 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/AGENT.md +54 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/claude-code.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/codex.toml +31 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/copilot.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/cursor.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/gemini.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/kiro-ide.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/metadata.json +30 -0
- package/agents/cert-manager/README.md +46 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/AGENT.md +55 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/claude-code.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/codex.toml +29 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/copilot.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/cursor.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/gemini.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/kiro-ide.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/metadata.json +31 -0
- package/agents/cilium/README.md +46 -0
- package/agents/cilium/cilium-network-policy-review-agent/AGENT.md +55 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/codex.toml +32 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/metadata.json +37 -0
- package/agents/falco/README.md +36 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/AGENT.md +49 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/claude-code.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/codex.toml +31 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/copilot.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/cursor.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/gemini.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/kiro-ide.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/metadata.json +31 -0
- package/agents/finops/README.md +27 -0
- package/agents/finops/finops-cloud-price-advisor-agent/metadata.json +10 -1
- package/agents/fluxcd/README.md +39 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/AGENT.md +55 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/codex.toml +32 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/metadata.json +31 -0
- package/agents/istio/README.md +46 -0
- package/agents/istio/istio-ambient-mesh-review-agent/AGENT.md +55 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/codex.toml +32 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/metadata.json +30 -0
- package/agents/kubernetes/README.md +143 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/AGENT.md +49 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/claude-code.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/codex.toml +31 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/copilot.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/cursor.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/gemini.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/kiro-ide.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/metadata.json +31 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/AGENT.md +56 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/claude-code.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/codex.toml +34 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/copilot.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/cursor.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/gemini.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/kiro-ide.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/metadata.json +31 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/codex.toml +33 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/copilot.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/cursor.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/gemini.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/codex.toml +33 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/copilot.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/cursor.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/gemini.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/codex.toml +33 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/copilot.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/cursor.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/gemini.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/codex.toml +33 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/copilot.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/cursor.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/gemini.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/codex.toml +34 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/copilot.agent.md +55 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/cursor.agent.md +44 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/gemini.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/AGENT.md +62 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/claude-code.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/codex.toml +35 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/copilot.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/cursor.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/gemini.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/kiro-ide.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/metadata.json +37 -0
- package/agents/kubernetes/kubernetes-maestro-agent/AGENT.md +55 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/codex.toml +34 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/copilot.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/cursor.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/gemini.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/metadata.json +40 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/AGENT.md +54 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/claude-code.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/codex.toml +27 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/copilot.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/cursor.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/gemini.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/kiro-ide.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/metadata.json +38 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/AGENT.md +55 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/claude-code.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/codex.toml +29 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/copilot.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/cursor.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/gemini.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/kiro-ide.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/metadata.json +37 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/AGENT.md +55 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/codex.toml +32 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/copilot.agent.md +51 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/cursor.agent.md +40 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/gemini.agent.md +39 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/AGENT.md +55 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/claude-code.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/codex.toml +29 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/copilot.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/cursor.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/gemini.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/kiro-ide.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/metadata.json +37 -0
- package/agents/kyverno/README.md +46 -0
- package/agents/kyverno/kyverno-policy-review-agent/AGENT.md +55 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/codex.toml +32 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/metadata.json +30 -0
- package/agents/oci/README.md +45 -0
- package/agents/oci/oci-certificates-issuer-review-agent/AGENT.md +53 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/claude-code.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/codex.toml +27 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/copilot.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/cursor.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/gemini.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/kiro-ide.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/metadata.json +36 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/metadata.json +11 -2
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/metadata.json +11 -2
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/metadata.json +10 -1
- package/agents/oci/oci-live-network-security-rule-guard-agent/AGENT.md +59 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/codex.toml +34 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/copilot.agent.md +55 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/cursor.agent.md +44 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/gemini.agent.md +43 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/metadata.json +37 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/metadata.json +11 -2
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/metadata.json +10 -1
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/metadata.json +10 -1
- package/agents/opentelemetry/README.md +37 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/AGENT.md +55 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/codex.toml +32 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/metadata.json +37 -0
- package/agents/prometheus/README.md +36 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/AGENT.md +48 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/claude-code.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/codex.toml +31 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/copilot.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/cursor.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/gemini.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/kiro-ide.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/metadata.json +31 -0
- package/agents/sigstore/README.md +38 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/AGENT.md +55 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/claude-code.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/codex.toml +29 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/copilot.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/cursor.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/gemini.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/kiro-ide.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/metadata.json +31 -0
- package/agents/terraform/README.md +29 -0
- package/agents/terraform/terraform-reviewer/harnesses/claude-code.agent.md +29 -0
- package/agents/terraform/terraform-reviewer/harnesses/codex.toml +29 -0
- package/agents/terraform/terraform-reviewer/harnesses/copilot.agent.md +42 -0
- package/agents/terraform/terraform-reviewer/harnesses/cursor.agent.md +31 -0
- package/agents/terraform/terraform-reviewer/harnesses/gemini.agent.md +30 -0
- package/agents/terraform/terraform-reviewer/harnesses/kiro-cli.agent.json +5 -0
- package/agents/terraform/terraform-reviewer/harnesses/kiro-ide.agent.md +29 -0
- package/agents/terraform/terraform-reviewer/metadata.json +10 -1
- package/agents/velero/README.md +41 -0
- package/assets/logos/vanguard-frontier-agentic-logo.png +0 -0
- package/catalog/agents.json +1452 -634
- package/catalog/install-roles.json +455 -0
- package/catalog/skill-manifest.json +757 -3
- package/catalog/skills.json +1298 -528
- package/package.json +11 -1
- package/scripts/export-marketplace-agents.mjs +100 -9
- package/scripts/update-catalog-new-agents.py +88 -0
- package/skills/argocd/README.md +30 -0
- package/skills/argocd/argo-rollouts-progressive-delivery-review/SKILL.md +40 -0
- package/skills/argocd/argo-rollouts-progressive-delivery-review/metadata.json +22 -0
- package/skills/argocd/argo-rollouts-progressive-delivery-review/references/workflow-and-output.md +248 -0
- package/skills/argocd/argocd-gitops-review/SKILL.md +43 -0
- package/skills/argocd/argocd-gitops-review/metadata.json +30 -0
- package/skills/argocd/argocd-gitops-review/references/mcp-and-evidence.md +53 -0
- package/skills/argocd/argocd-gitops-review/references/official-sources.md +32 -0
- package/skills/argocd/argocd-gitops-review/references/workflow-and-output.md +120 -0
- package/skills/aws/README.md +3 -1
- package/skills/aws/aws-maestro/references/workflow-and-output.md +2 -0
- package/skills/aws/aws-private-ca-issuer-review/SKILL.md +39 -0
- package/skills/aws/aws-private-ca-issuer-review/metadata.json +21 -0
- package/skills/aws/aws-private-ca-issuer-review/references/official-sources.md +22 -0
- package/skills/aws/aws-private-ca-issuer-review/references/safety-checklist.md +30 -0
- package/skills/aws/aws-private-ca-issuer-review/references/workflow-and-output.md +214 -0
- package/skills/azure/README.md +3 -1
- package/skills/azure/azure-keyvault-certificate-issuer-review/SKILL.md +37 -0
- package/skills/azure/azure-keyvault-certificate-issuer-review/metadata.json +20 -0
- package/skills/azure/azure-keyvault-certificate-issuer-review/references/workflow-and-output.md +190 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/SKILL.md +56 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/metadata.json +28 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/references/official-sources.md +21 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/references/permission-model.md +70 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/references/preflight-commands.md +69 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/references/rollback-playbook.md +51 -0
- package/skills/backstage/backstage-scaffolder-template-review/SKILL.md +39 -0
- package/skills/backstage/backstage-scaffolder-template-review/metadata.json +21 -0
- package/skills/backstage/backstage-scaffolder-template-review/references/workflow-and-output.md +179 -0
- package/skills/cert-manager/cert-manager-issuer-trust-review/SKILL.md +40 -0
- package/skills/cert-manager/cert-manager-issuer-trust-review/metadata.json +22 -0
- package/skills/cert-manager/cert-manager-issuer-trust-review/references/workflow-and-output.md +222 -0
- package/skills/cilium/README.md +30 -0
- package/skills/cilium/cilium-network-policy-review/SKILL.md +43 -0
- package/skills/cilium/cilium-network-policy-review/metadata.json +30 -0
- package/skills/cilium/cilium-network-policy-review/references/mcp-and-evidence.md +52 -0
- package/skills/cilium/cilium-network-policy-review/references/official-sources.md +30 -0
- package/skills/cilium/cilium-network-policy-review/references/workflow-and-output.md +130 -0
- package/skills/falco/falco-runtime-threat-rules-review/SKILL.md +37 -0
- package/skills/falco/falco-runtime-threat-rules-review/metadata.json +22 -0
- package/skills/falco/falco-runtime-threat-rules-review/references/workflow-and-output.md +249 -0
- package/skills/finops/README.md +30 -0
- package/skills/fluxcd/fluxcd-kustomization-helmrelease-review/SKILL.md +40 -0
- package/skills/fluxcd/fluxcd-kustomization-helmrelease-review/metadata.json +22 -0
- package/skills/fluxcd/fluxcd-kustomization-helmrelease-review/references/workflow-and-output.md +243 -0
- package/skills/istio/README.md +28 -0
- package/skills/istio/istio-ambient-mesh-review/SKILL.md +43 -0
- package/skills/istio/istio-ambient-mesh-review/metadata.json +30 -0
- package/skills/istio/istio-ambient-mesh-review/references/mcp-and-evidence.md +59 -0
- package/skills/istio/istio-ambient-mesh-review/references/official-sources.md +32 -0
- package/skills/istio/istio-ambient-mesh-review/references/workflow-and-output.md +128 -0
- package/skills/kubernetes/README.md +30 -0
- package/skills/kubernetes/external-secrets-operator-review/SKILL.md +37 -0
- package/skills/kubernetes/external-secrets-operator-review/metadata.json +22 -0
- package/skills/kubernetes/external-secrets-operator-review/references/workflow-and-output.md +280 -0
- package/skills/kubernetes/kubecost-chargeback-allocation-review/SKILL.md +40 -0
- package/skills/kubernetes/kubecost-chargeback-allocation-review/metadata.json +22 -0
- package/skills/kubernetes/kubecost-chargeback-allocation-review/references/workflow-and-output.md +215 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/SKILL.md +57 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/metadata.json +27 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/references/official-sources.md +18 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/references/permission-model.md +78 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/references/preflight-commands.md +81 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/references/rollback-playbook.md +61 -0
- package/skills/kubernetes/kubernetes-maestro/SKILL.md +45 -0
- package/skills/kubernetes/kubernetes-maestro/metadata.json +24 -0
- package/skills/kubernetes/kubernetes-maestro/references/safety-checklist.md +78 -0
- package/skills/kubernetes/kubernetes-maestro/references/workflow-and-output.md +206 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/SKILL.md +43 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/metadata.json +28 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/references/mcp-and-evidence.md +49 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/references/official-sources.md +26 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/references/workflow-and-output.md +129 -0
- package/skills/kubernetes/kubernetes-pod-spec-review/SKILL.md +38 -0
- package/skills/kubernetes/kubernetes-pod-spec-review/metadata.json +22 -0
- package/skills/kubernetes/kubernetes-pod-spec-review/references/workflow-and-output.md +229 -0
- package/skills/kubernetes/kubernetes-rbac-review/SKILL.md +38 -0
- package/skills/kubernetes/kubernetes-rbac-review/metadata.json +27 -0
- package/skills/kubernetes/kubernetes-rbac-review/references/mcp-and-evidence.md +34 -0
- package/skills/kubernetes/kubernetes-rbac-review/references/official-sources.md +22 -0
- package/skills/kubernetes/kubernetes-rbac-review/references/workflow-and-output.md +44 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/SKILL.md +43 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/metadata.json +29 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/references/mcp-and-evidence.md +57 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/references/official-sources.md +47 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/references/workflow-and-output.md +166 -0
- package/skills/kyverno/README.md +30 -0
- package/skills/kyverno/kyverno-policy-review/SKILL.md +43 -0
- package/skills/kyverno/kyverno-policy-review/metadata.json +30 -0
- package/skills/kyverno/kyverno-policy-review/references/mcp-and-evidence.md +49 -0
- package/skills/kyverno/kyverno-policy-review/references/official-sources.md +31 -0
- package/skills/kyverno/kyverno-policy-review/references/workflow-and-output.md +106 -0
- package/skills/oci/README.md +63 -0
- package/skills/oci/oci-certificates-issuer-review/SKILL.md +37 -0
- package/skills/oci/oci-certificates-issuer-review/metadata.json +20 -0
- package/skills/oci/oci-certificates-issuer-review/references/workflow-and-output.md +207 -0
- package/skills/oci/oci-live-network-security-rule-guard/SKILL.md +57 -0
- package/skills/oci/oci-live-network-security-rule-guard/metadata.json +28 -0
- package/skills/oci/oci-live-network-security-rule-guard/references/official-sources.md +21 -0
- package/skills/oci/oci-live-network-security-rule-guard/references/permission-model.md +65 -0
- package/skills/oci/oci-live-network-security-rule-guard/references/preflight-commands.md +69 -0
- package/skills/oci/oci-live-network-security-rule-guard/references/rollback-playbook.md +79 -0
- package/skills/opentelemetry/README.md +31 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/SKILL.md +44 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/metadata.json +30 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/references/mcp-and-evidence.md +49 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/references/official-sources.md +31 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/references/workflow-and-output.md +155 -0
- package/skills/prometheus/prometheus-alerting-cardinality-review/SKILL.md +38 -0
- package/skills/prometheus/prometheus-alerting-cardinality-review/metadata.json +22 -0
- package/skills/prometheus/prometheus-alerting-cardinality-review/references/workflow-and-output.md +221 -0
- package/skills/sigstore/sigstore-cosign-supply-chain-review/SKILL.md +39 -0
- package/skills/sigstore/sigstore-cosign-supply-chain-review/metadata.json +22 -0
- package/skills/sigstore/sigstore-cosign-supply-chain-review/references/workflow-and-output.md +196 -0
- package/skills/terraform/README.md +29 -0
- package/skills/velero/velero-backup-restore-guard/SKILL.md +41 -0
- package/skills/velero/velero-backup-restore-guard/metadata.json +21 -0
- package/skills/velero/velero-backup-restore-guard/references/safety-checklist.md +40 -0
- package/skills/velero/velero-backup-restore-guard/references/workflow-and-output.md +202 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: argocd-gitops-review
|
|
3
|
+
description: Use this skill for Argo CD GitOps review across Application, AppProject, ApplicationSet, sync windows, RBAC, sync impersonation, and Argo CD Agent multi-cluster topologies. Trigger when the user asks whether an Argo CD configuration is safe for production, whether automated sync should be enabled, whether prune+selfHeal is appropriate, whether AppProject scope is too wide, or how to enforce least-privilege sync identity.
|
|
4
|
+
metadata:
|
|
5
|
+
author: "github: Raishin"
|
|
6
|
+
version: "0.1.0"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Argo CD GitOps Review
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Review Argo CD `Application`, `AppProject`, `ApplicationSet`, sync windows, RBAC, and the central `argocd-cm` / `argocd-rbac-cm` configuration against blast radius, drift handling, and least-privilege sync identity. Argo CD's controller defaults to cluster-admin permissions on every destination cluster — the security posture lives in `AppProject` boundaries, sync impersonation, and explicit RBAC, not in the controller defaults.
|
|
14
|
+
|
|
15
|
+
## Lean operating rules
|
|
16
|
+
|
|
17
|
+
- Prefer live cluster evidence (`kubectl get applications,appprojects,applicationsets -n argocd -o yaml` plus the `argocd-cm` and `argocd-rbac-cm` ConfigMaps) when the active client exposes it; otherwise fall back to official Argo CD documentation and sanitized YAML from the user.
|
|
18
|
+
- Separate confirmed facts from inference. If sync history, current health, or RBAC binding state was not queried, say so.
|
|
19
|
+
- Treat `application.sync.impersonation.enabled: false` (default) in production as a critical finding — every sync runs as the controller's cluster-admin ServiceAccount.
|
|
20
|
+
- Treat `AppProject` with `sourceRepos: ['*']` and `destinations: ['*']` as a wide-blast-radius finding — any commit in any repo can deploy anywhere.
|
|
21
|
+
- Treat `automated.prune: true` + `automated.selfHeal: true` on production Applications as critical without an explicit allowlist of authorized Git refs and a tested rollback runbook — Git divergence becomes irreversible deletion.
|
|
22
|
+
- Challenge `ApplicationSet` generators that include unbounded clusters (`clusters: {}`) or label selectors with no exclusion — one mis-labeled cluster joins the rollout.
|
|
23
|
+
- Challenge `syncOptions: ['Replace=true']` and `syncOptions: ['ServerSideApply=false']` on stateful resources — Replace deletes-then-creates, breaking PVC bindings.
|
|
24
|
+
- Keep the answer scoped, reversible, least-privilege, and explicit about blockers or unknowns.
|
|
25
|
+
|
|
26
|
+
## References
|
|
27
|
+
|
|
28
|
+
Load these only when needed:
|
|
29
|
+
|
|
30
|
+
- [Evidence path and tooling](references/mcp-and-evidence.md) — use when choosing live cluster evidence, confirming Argo CD install state and version, or switching to documentation mode.
|
|
31
|
+
- [Workflow and output contract](references/workflow-and-output.md) — use when executing the full review, applying stress checks on Application / AppProject / ApplicationSet, or formatting the final answer.
|
|
32
|
+
- [Official sources](references/official-sources.md) — use when you need the detailed Argo CD documentation list, RBAC syntax, and grounded insights from the project.
|
|
33
|
+
|
|
34
|
+
## Response minimum
|
|
35
|
+
|
|
36
|
+
Return, at minimum:
|
|
37
|
+
|
|
38
|
+
- the scoped target (`Application`, `AppProject`, `ApplicationSet`, or `argocd-rbac-cm` policy) and evidence level,
|
|
39
|
+
- the sync identity (controller default cluster-admin, impersonated ServiceAccount, or `destinationServiceAccount`),
|
|
40
|
+
- the blast radius assessment (`sourceRepos`, `destinations`, `clusterResourceWhitelist`, `namespaceResourceBlacklist`),
|
|
41
|
+
- the drift handling posture (`automated`, `prune`, `selfHeal`, `syncWindows`),
|
|
42
|
+
- the safest next actions and rollback plan,
|
|
43
|
+
- the assumptions or blockers that prevent stronger conclusions.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "argocd-gitops-review",
|
|
3
|
+
"name": "Argo CD GitOps Review",
|
|
4
|
+
"type": "skill",
|
|
5
|
+
"provider": "argocd",
|
|
6
|
+
"harnesses": [
|
|
7
|
+
"codex",
|
|
8
|
+
"claude-code",
|
|
9
|
+
"cursor",
|
|
10
|
+
"gemini",
|
|
11
|
+
"kiro",
|
|
12
|
+
"other"
|
|
13
|
+
],
|
|
14
|
+
"summary": "Review Argo CD Application, AppProject, ApplicationSet, sync windows, RBAC, sync impersonation, and Argo CD Agent multi-cluster topologies for blast radius, drift handling, and least-privilege sync identity.",
|
|
15
|
+
"source_type": "original",
|
|
16
|
+
"official_docs": [
|
|
17
|
+
"https://argo-cd.readthedocs.io/en/stable/",
|
|
18
|
+
"https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/",
|
|
19
|
+
"https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/",
|
|
20
|
+
"https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/",
|
|
21
|
+
"https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/",
|
|
22
|
+
"https://argo-cd.readthedocs.io/en/stable/proposals/decouple-application-sync-user-using-impersonation/",
|
|
23
|
+
"https://argo-cd.readthedocs.io/en/stable/operator-manual/argocd-cm-yaml/"
|
|
24
|
+
],
|
|
25
|
+
"security_notes": "Sync impersonation is disabled by default — controller runs as cluster-admin on every destination. AppProject sourceRepos and destinations wildcards remove blast-radius bounds. Automated prune+selfHeal on Git divergence is irreversible. ApplicationSet unbounded cluster generators auto-onboard misconfigured clusters.",
|
|
26
|
+
"last_verified": "2026-05-01",
|
|
27
|
+
"path": "skills/argocd/argocd-gitops-review",
|
|
28
|
+
"author": "github: Raishin",
|
|
29
|
+
"version": "0.1.0"
|
|
30
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Evidence Path and Tooling
|
|
2
|
+
|
|
3
|
+
## Evidence path
|
|
4
|
+
|
|
5
|
+
1. Prefer live cluster evidence when a Kubernetes MCP server, `kubectl`, or the `argocd` CLI is available against the Argo CD control-plane cluster.
|
|
6
|
+
2. Fall back to official Argo CD documentation (argo-cd.readthedocs.io) and the upstream argo-cd GitHub repository when live inspection is unavailable.
|
|
7
|
+
3. Ask only for sanitized `Application` / `AppProject` / `ApplicationSet` YAML, the redacted `argocd-cm` and `argocd-rbac-cm` ConfigMaps, and `argocd app history` output when current-state proof matters.
|
|
8
|
+
4. Label conclusions as `live evidence`, `documentation-based`, `sanitized user evidence`, or `inference`.
|
|
9
|
+
|
|
10
|
+
## Useful live-evidence commands
|
|
11
|
+
|
|
12
|
+
```shell
|
|
13
|
+
# All Applications, AppProjects, and ApplicationSets in the argocd namespace
|
|
14
|
+
kubectl -n argocd get applications,appprojects,applicationsets -o yaml
|
|
15
|
+
|
|
16
|
+
# Detailed Application status (sync, health, lastSyncRevision)
|
|
17
|
+
kubectl -n argocd get application <app-name> -o yaml
|
|
18
|
+
argocd app get <app-name>
|
|
19
|
+
argocd app history <app-name>
|
|
20
|
+
|
|
21
|
+
# Argo CD configuration (the global config knobs)
|
|
22
|
+
kubectl -n argocd get configmap argocd-cm -o yaml
|
|
23
|
+
kubectl -n argocd get configmap argocd-rbac-cm -o yaml
|
|
24
|
+
kubectl -n argocd get configmap argocd-cmd-params-cm -o yaml
|
|
25
|
+
|
|
26
|
+
# RBAC effective policy
|
|
27
|
+
argocd account list
|
|
28
|
+
argocd account get-user-info <user>
|
|
29
|
+
|
|
30
|
+
# Cluster registrations (every destination cluster has its own Secret)
|
|
31
|
+
kubectl -n argocd get secrets -l argocd.argoproj.io/secret-type=cluster -o yaml
|
|
32
|
+
|
|
33
|
+
# Sync windows on an AppProject
|
|
34
|
+
kubectl -n argocd get appproject <project> -o jsonpath='{.spec.syncWindows}'
|
|
35
|
+
|
|
36
|
+
# Argo CD Agent (hub-and-spoke deployments)
|
|
37
|
+
kubectl -n argocd get agents -o yaml
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Argo CD install state to confirm before review
|
|
41
|
+
|
|
42
|
+
- Argo CD version (`kubectl -n argocd get deploy argocd-server -o jsonpath='{.spec.template.spec.containers[0].image}'`) — sync impersonation, RBAC granular actions, and ApplicationSet RollingSync arrived in different versions.
|
|
43
|
+
- `application.sync.impersonation.enabled` in `argocd-cm` — `false` (default) means every sync runs as the controller's ServiceAccount on every destination.
|
|
44
|
+
- `application.sync.requireOverridePrivilegeForRevisionSync` in `argocd-cm` — `true` requires explicit override permission for ad-hoc revision syncs.
|
|
45
|
+
- `webhook.maxPayloadSizeMB` in `argocd-cm` — large Helm value files may exceed the default.
|
|
46
|
+
- Whether Argo CD Agent (argocd-agent) is in use for hub-and-spoke multi-cluster — different security model.
|
|
47
|
+
- Whether Argo CD Autopilot manages Argo CD itself via GitOps — change review must include the Autopilot repo.
|
|
48
|
+
|
|
49
|
+
## Sanitization rules
|
|
50
|
+
|
|
51
|
+
- Never request kubeconfig contents, cluster Secret contents, repository SSH keys, or webhook signing secrets in chat.
|
|
52
|
+
- Replace identifiable cluster URLs and namespaces with placeholders unless the user provides them and confirms it is safe to use them.
|
|
53
|
+
- Do not print Git repository tokens, OCI registry tokens, or Helm OCI credentials.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Official Sources
|
|
2
|
+
|
|
3
|
+
Load these only when needed:
|
|
4
|
+
|
|
5
|
+
- [Argo CD documentation home](https://argo-cd.readthedocs.io/en/stable/) — use as the entry point for any Argo CD authoring, install, or operator-side question.
|
|
6
|
+
- [Declarative setup](https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/) — use for `Application`, `AppProject`, cluster Secret, repository Secret, and ConfigMap structure.
|
|
7
|
+
- [argocd-cm reference](https://argo-cd.readthedocs.io/en/stable/operator-manual/argocd-cm-yaml/) — use for global controller knobs including `application.sync.impersonation.enabled`, `application.sync.requireOverridePrivilegeForRevisionSync`, and `webhook.maxPayloadSizeMB`.
|
|
8
|
+
- [Auto-sync](https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/) — use for `automated`, `prune`, `selfHeal` semantics and operational guidance.
|
|
9
|
+
- [Sync Options](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/) — use for `Replace`, `Force`, `ServerSideApply`, `PruneLast`, `CreateNamespace`, `Validate=false`, `RespectIgnoreDifferences`.
|
|
10
|
+
- [Sync Windows](https://argo-cd.readthedocs.io/en/stable/user-guide/sync_windows/) — use for deploy-freeze enforcement at the AppProject level.
|
|
11
|
+
- [ApplicationSet Generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators/) — use for `list`, `cluster`, `git`, `matrix`, `merge`, `pullRequest`, `scmProvider` generator semantics.
|
|
12
|
+
- [ApplicationSet Progressive Syncs (RollingSync)](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Progressive-Syncs/) — use for staged ApplicationSet rollouts.
|
|
13
|
+
- [Argo CD RBAC](https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/) — use for `policy.csv` syntax, default role, group bindings, and granular action permissions.
|
|
14
|
+
- [Sync impersonation proposal](https://argo-cd.readthedocs.io/en/stable/proposals/decouple-application-sync-user-using-impersonation/) — use for the AppProject `destinationServiceAccounts` field and the least-privilege sync identity model.
|
|
15
|
+
- [Argo CD upgrading guide](https://argo-cd.readthedocs.io/en/stable/operator-manual/upgrading/) — use when version-specific RBAC actions or API fields matter.
|
|
16
|
+
- [Argo CD User Management](https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/) — use for SSO via OIDC / SAML / Dex and group claims.
|
|
17
|
+
- [Argo CD Webhook](https://argo-cd.readthedocs.io/en/stable/operator-manual/webhook/) — use for repository webhook setup and signature verification.
|
|
18
|
+
- [Argo CD Agent](https://github.com/argoproj-labs/argocd-agent) — use for hub-and-spoke multi-cluster topologies replacing direct cluster registrations.
|
|
19
|
+
- [Argo CD Autopilot](https://github.com/argoproj-labs/argocd-autopilot) — use when Argo CD itself is managed via GitOps.
|
|
20
|
+
|
|
21
|
+
## Grounded insights worth carrying into the skill
|
|
22
|
+
|
|
23
|
+
- The Argo CD controller defaults to running as cluster-admin on every destination cluster. The `application.sync.impersonation.enabled` flag in `argocd-cm` is the switch that activates per-Application ServiceAccount impersonation via `destinationServiceAccounts` on the AppProject.
|
|
24
|
+
- `AppProject` boundaries are the only enforced isolation between teams sharing one Argo CD instance. Wildcards in `sourceRepos`, `destinations`, `clusterResourceWhitelist`, or empty `namespaceResourceBlacklist` collapse the boundary.
|
|
25
|
+
- `automated.selfHeal: true` combined with `automated.prune: true` means a Git revert (or Git outage that exposes a stale ref) deletes prod resources. There is no built-in confirmation step.
|
|
26
|
+
- ApplicationSet's `cluster` generator with an empty selector auto-onboards every newly registered cluster. This is the most-cited blast-radius mode in Argo CD post-incident reviews.
|
|
27
|
+
- ApplicationSet RollingSync intentionally forces auto-sync **disabled** on generated Applications (the controller logs warnings if any have auto-sync enabled). RollingSync drives sync via OutOfSync detection, not auto-sync.
|
|
28
|
+
- The `Replace=true` sync option is destructive on `StatefulSet`, `Service`, `PersistentVolumeClaim`, and any resource with finalizers. Argo CD's default three-way merge (or server-side apply on newer versions) is safer.
|
|
29
|
+
- Argo CD RBAC granular actions (e.g., `action/apps/Deployment/restart`, `action/argoproj.io/Rollout/abort`) shipped in v2.8+. Older policies that don't list these still work but won't grant the action — operators may discover gaps after upgrade.
|
|
30
|
+
- The `requireOverridePrivilegeForRevisionSync: true` flag in `argocd-cm` requires explicit `override` permission to sync to a non-tracked revision (e.g., a branch instead of HEAD of the configured target). This blocks easy ad-hoc syncs that bypass Git review.
|
|
31
|
+
- Argo CD Autopilot's bootstrap repo manages Argo CD itself — changes to that repo can disable RBAC, weaken AppProject scopes, or rotate the admin password. Treat the Autopilot repo as a tier-0 control surface.
|
|
32
|
+
- The Argo CD Agent (argocd-agent) introduces a hub-and-spoke topology where the central Argo CD installation does not hold cluster credentials for spoke clusters; agents connect outbound. Different threat model from the classic direct-cluster registration.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Workflow and Output Contract
|
|
2
|
+
|
|
3
|
+
## Workflow
|
|
4
|
+
|
|
5
|
+
### Step 1 — Identify the target and the surrounding AppProject
|
|
6
|
+
|
|
7
|
+
1. Confirm the kind: `Application`, `AppProject`, `ApplicationSet`, or a global ConfigMap (`argocd-cm`, `argocd-rbac-cm`).
|
|
8
|
+
2. For an `Application`, locate the `spec.project` reference and review the `AppProject` first — the AppProject defines the boundary the Application operates within.
|
|
9
|
+
3. For an `AppProject`, list every `Application` referencing it (`kubectl -n argocd get applications -o jsonpath='{range .items[?(@.spec.project=="<project>")]}{.metadata.name}{"\n"}{end}'`).
|
|
10
|
+
4. For an `ApplicationSet`, identify the generator type (`list`, `cluster`, `git`, `matrix`, `merge`, `pullRequest`, `scmProvider`) and the `spec.template`.
|
|
11
|
+
|
|
12
|
+
### Step 2 — Audit the AppProject blast radius
|
|
13
|
+
|
|
14
|
+
The AppProject defines four boundary surfaces. Each is a potential blast-radius finding:
|
|
15
|
+
|
|
16
|
+
1. **`sourceRepos`** — the Git or Helm repos this project may pull from. `['*']` means any repo. Recommended: explicit list.
|
|
17
|
+
2. **`destinations`** — the (cluster, namespace) tuples this project may deploy to. `[{server: '*', namespace: '*'}]` means anywhere. Recommended: explicit cluster URLs and namespace allowlist (or `namespace: 'team-*'` for multi-tenant patterns).
|
|
18
|
+
3. **`clusterResourceWhitelist`** — cluster-scoped resources this project may manage. Empty or `['*/*']` means any cluster-scoped resource (including ClusterRoleBindings, Namespaces). Recommended: empty for application projects; explicit list for platform projects.
|
|
19
|
+
4. **`namespaceResourceBlacklist`** — namespace-scoped resources this project may NOT manage. Recommended: include `[{group: 'rbac.authorization.k8s.io', kind: '*'}]` for application projects to prevent applications from binding their own RBAC.
|
|
20
|
+
|
|
21
|
+
Reference: [AppProject in declarative setup](https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/).
|
|
22
|
+
|
|
23
|
+
### Step 3 — Audit sync identity (the most under-reviewed control)
|
|
24
|
+
|
|
25
|
+
Three sync identity modes exist; pick one and verify:
|
|
26
|
+
|
|
27
|
+
1. **Controller default** — Argo CD controller's ServiceAccount on the destination cluster. Default is broad (cluster-admin in many installs). **Critical finding** if production Applications use this without an audit trail of what the controller can do.
|
|
28
|
+
2. **Sync impersonation** (preferred for least privilege) — `application.sync.impersonation.enabled: true` in `argocd-cm` plus `destinationServiceAccounts` on the AppProject. Each Application syncs as a per-namespace ServiceAccount with scoped RBAC. See the [sync impersonation proposal](https://argo-cd.readthedocs.io/en/stable/proposals/decouple-application-sync-user-using-impersonation/).
|
|
29
|
+
3. **Cluster credentials** (legacy multi-cluster) — Argo CD has its own bearer token for each registered cluster. Rotate regularly.
|
|
30
|
+
|
|
31
|
+
Stress-tests:
|
|
32
|
+
|
|
33
|
+
- An Application with `spec.destination.namespace: kube-system` plus controller-default identity = sync runs as cluster-admin in kube-system.
|
|
34
|
+
- An AppProject with `destinationServiceAccounts` listing `defaultServiceAccount: 'default'` = effectively no impersonation; the default SA is always present.
|
|
35
|
+
|
|
36
|
+
### Step 4 — Audit the drift-handling posture
|
|
37
|
+
|
|
38
|
+
`spec.syncPolicy.automated` controls whether Argo CD reconciles drift. Three flags govern blast radius:
|
|
39
|
+
|
|
40
|
+
1. **`automated: {}` (auto-sync)** — every Git commit triggers a sync. Production-safe only with `syncWindows` and a tested CI gate.
|
|
41
|
+
2. **`automated.prune: true`** — resources removed from Git are deleted from the cluster. **Critical** without a rollback runbook: a misconfigured commit deletes prod resources.
|
|
42
|
+
3. **`automated.selfHeal: true`** — manual cluster changes are reverted on the next sync. Combined with `prune`, divergence becomes a hard reset to Git state.
|
|
43
|
+
|
|
44
|
+
Stress-tests:
|
|
45
|
+
|
|
46
|
+
- `automated.prune: true` on a `StatefulSet` Application = deletion cascades to PVCs (if `persistentVolumeClaimRetentionPolicy.whenDeleted: Delete`). Data loss path.
|
|
47
|
+
- `automated.selfHeal: true` on an Application managing CRDs from a third-party operator = the operator's runtime status updates may be reverted as drift.
|
|
48
|
+
- `automated` with no `syncWindow` covering deploy-freeze periods = a freeze window can be bypassed by a Git commit.
|
|
49
|
+
|
|
50
|
+
Reference: [Auto-Sync](https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/) and [Sync Windows](https://argo-cd.readthedocs.io/en/stable/user-guide/sync_windows/).
|
|
51
|
+
|
|
52
|
+
### Step 5 — Audit `syncOptions` for stateful or sensitive resources
|
|
53
|
+
|
|
54
|
+
`spec.syncPolicy.syncOptions` overrides default sync behavior. Flag these as findings:
|
|
55
|
+
|
|
56
|
+
- **`Replace=true`** — Argo CD deletes the resource and recreates it instead of patching. For `StatefulSet`, `PersistentVolume`, `PersistentVolumeClaim`, `Service` (ClusterIP rotation), `ConfigMap` consumed by hot-reload — this is data loss or downtime.
|
|
57
|
+
- **`Force=true`** — passes `--force` to `kubectl apply`. Disables conflict detection.
|
|
58
|
+
- **`ServerSideApply=false`** when Argo CD's default is server-side apply on newer versions — falls back to client-side three-way merge, which can re-introduce drift loops.
|
|
59
|
+
- **`PruneLast=true`** missing on Applications that delete resources — pruning happens before resource creation, briefly leaving the namespace in an unhealthy state.
|
|
60
|
+
- **`CreateNamespace=true`** with no namespace finalizer or RBAC scope — creates namespaces outside AppProject `destinations`.
|
|
61
|
+
|
|
62
|
+
### Step 6 — Audit `ApplicationSet` generators
|
|
63
|
+
|
|
64
|
+
ApplicationSet generators expand into multiple Applications. Risk surface depends on generator type:
|
|
65
|
+
|
|
66
|
+
- **`list` generator** — explicit list of clusters/parameters. Lowest risk.
|
|
67
|
+
- **`cluster` generator** — generates an Application for every registered cluster matching a label selector. **Critical** when the selector is empty (`{}`) or matches all clusters — a new cluster automatically receives the workload before review.
|
|
68
|
+
- **`git` generator** — generates an Application for every directory or file pattern in a Git repo. Risk: a malicious or accidental commit adds a new directory and triggers a new Application.
|
|
69
|
+
- **`matrix` and `merge` generators** — combine other generators. Risk multiplies.
|
|
70
|
+
- **`pullRequest` generator** — generates Applications for open PRs. Risk: any PR can trigger an ephemeral deployment with the PR's manifests.
|
|
71
|
+
- **`scmProvider` generator** — generates Applications for every repo in an org. Risk: org-wide auto-onboarding.
|
|
72
|
+
|
|
73
|
+
Reference: [ApplicationSet Generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators/) and [Progressive Syncs (RollingSync)](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Progressive-Syncs/).
|
|
74
|
+
|
|
75
|
+
Stress-tests:
|
|
76
|
+
|
|
77
|
+
- ApplicationSet with `cluster` generator + no selector + auto-sync = every cluster auto-onboarded in seconds.
|
|
78
|
+
- ApplicationSet with `pullRequest` generator + no namespace isolation = PRs deploy to shared namespaces.
|
|
79
|
+
- ApplicationSet with `goTemplate: true` and unsanitized template inputs = template injection if PR titles are templated into manifests.
|
|
80
|
+
|
|
81
|
+
### Step 7 — Audit `argocd-rbac-cm` policy
|
|
82
|
+
|
|
83
|
+
The Argo CD RBAC ConfigMap (`argocd-rbac-cm`) defines who can do what in the Argo CD UI/CLI/API. Check:
|
|
84
|
+
|
|
85
|
+
1. The default role (`policy.default`) — `role:readonly` is safe; `role:admin` is wrong.
|
|
86
|
+
2. Specific actions on resources — newer Argo CD versions ship granular actions like `action/apps/Deployment/restart` or `action/argoproj.io/Rollout/abort`. Each granted action should map to a real on-call runbook.
|
|
87
|
+
3. RBAC subject scopes — `g, <group>, role:admin` on broad SSO groups is a finding.
|
|
88
|
+
|
|
89
|
+
Reference: [Argo CD RBAC](https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/).
|
|
90
|
+
|
|
91
|
+
### Step 8 — Multi-cluster (Argo CD Agent) topology
|
|
92
|
+
|
|
93
|
+
If Argo CD Agent is in use:
|
|
94
|
+
|
|
95
|
+
- The control plane stores `Application` specs; each spoke runs an agent that pulls assigned Applications.
|
|
96
|
+
- Each agent has its own credentials and authentication path — verify rotation cadence.
|
|
97
|
+
- Network path from spoke to hub must be authenticated and encrypted.
|
|
98
|
+
|
|
99
|
+
Reference: [argocd-agent](https://github.com/argoproj-labs/argocd-agent).
|
|
100
|
+
|
|
101
|
+
## Output
|
|
102
|
+
|
|
103
|
+
Return:
|
|
104
|
+
|
|
105
|
+
- **target**: `Application`, `AppProject`, `ApplicationSet`, or RBAC ConfigMap, with the project boundary,
|
|
106
|
+
- **evidence level**: `live evidence` / `documentation-based` / `sanitized user evidence` / `inference`,
|
|
107
|
+
- **sync identity**: controller default vs impersonated SA vs cluster credential, with judgment on least privilege,
|
|
108
|
+
- **blast radius**: `sourceRepos`, `destinations`, `clusterResourceWhitelist`, `namespaceResourceBlacklist` audit,
|
|
109
|
+
- **drift posture**: `automated.prune`, `automated.selfHeal`, sync windows, syncOptions concerns,
|
|
110
|
+
- **risk findings** (with severity: high / medium / low) — covering sync identity, blast radius, drift, ApplicationSet generators, RBAC,
|
|
111
|
+
- **safest next actions** with sample manifest changes,
|
|
112
|
+
- **rollback plan**: how to revert auto-sync, disable selfHeal, narrow AppProject scope without breaking running Applications,
|
|
113
|
+
- **assumptions and missing facts**.
|
|
114
|
+
|
|
115
|
+
## Security notes
|
|
116
|
+
|
|
117
|
+
- Never recommend `automated.prune: true` + `automated.selfHeal: true` on production Applications without a tested rollback runbook.
|
|
118
|
+
- Never recommend `AppProject` with `sourceRepos: ['*']` and `destinations: ['*']` for application projects. Platform projects may need this; document the justification.
|
|
119
|
+
- Never recommend disabling sync impersonation as a default in production after it has been enabled.
|
|
120
|
+
- Never request or print Argo CD admin tokens, repo SSH keys, or destination cluster bearer tokens.
|
package/skills/aws/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# AWS Skills
|
|
2
2
|
|
|
3
|
-
<
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="../../assets/logos/cloud/aws/aws-cdnlogo.png" alt="AWS logo" width="140" />
|
|
5
|
+
</p>
|
|
4
6
|
|
|
5
7
|
|
|
6
8
|
This folder contains AWS-focused skills curated for this marketplace.
|
|
@@ -10,6 +10,7 @@ Use this reference when classifying a task or selecting the right specialist(s).
|
|
|
10
10
|
| `compute` | EC2, ECS, Fargate, EKS, Lambda, serverless, container, pod, fleet, autoscaling, AMI, launch template, capacity reservation, spot, deployment rollout, hotfix |
|
|
11
11
|
| `data` | RDS, Aurora, DynamoDB, S3, database, query performance, data modeling, index, backup, data perimeter, bucket policy, data protection, restore |
|
|
12
12
|
| `security-iam` | IAM, policy, role, permission, SCP, KMS, key rotation, secrets, Secrets Manager, posture, GuardDuty, SecurityHub, compliance, evidence, Bedrock security |
|
|
13
|
+
| `pki` | ACM PCA, AWS Private CA, aws-privateca-issuer, AWSPCAIssuer, AWSPCAClusterIssuer, certificate template ARN, CRL distribution, CRL S3, IRSA cert-manager, cross-account PCA, RAM-shared CA, SubordinateCACertificate, private certificate authority |
|
|
13
14
|
| `cost` | cost, spend, billing, anomaly, savings plan, reserved instance, rightsizing, waste, budget |
|
|
14
15
|
| `devops-cicd` | pipeline, CI/CD, CodePipeline, CodeBuild, GitHub Actions, IaC, CloudFormation, Terraform, CDK, patch, release engineer, deploy, rollback |
|
|
15
16
|
| `operations` | observability, CloudWatch, X-Ray, incident, alert, runbook, triage, ticket, escalation, change impact, briefing, daily ops, non-destructive automation |
|
|
@@ -61,6 +62,7 @@ Use this reference when classifying a task or selecting the right specialist(s).
|
|
|
61
62
|
| `aws-kms-secrets-lifecycle-steward-agent` | security-iam | Managing KMS key lifecycle, rotation policies, or Secrets Manager secret health |
|
|
62
63
|
| `aws-security-posture-hardening-agent` | security-iam | Hardening AWS account posture: GuardDuty, SecurityHub, Config rules, and remediation |
|
|
63
64
|
| `aws-compliance-evidence-mapper-agent` | security-iam | Mapping AWS controls to compliance frameworks (SOC 2, PCI, HIPAA, NIST) and gathering evidence |
|
|
65
|
+
| `aws-private-ca-issuer-review-agent` | pki | Reviewing AWS ACM Private CA issuer config for cert-manager: CA hierarchy, template ARN scope, IRSA permissions, CRL reachability, and cross-account RAM-shared CA |
|
|
64
66
|
|
|
65
67
|
### Cost
|
|
66
68
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aws-private-ca-issuer-review
|
|
3
|
+
description: Use this skill when reviewing AWS ACM Private CA (Private Certificate Authority) issuer configurations for cert-manager. Trigger on any request to audit AWSPCAIssuer, AWSPCAClusterIssuer, IRSA policy for cert-manager, certificate template ARNs, CRL configuration, or cross-account PCA usage.
|
|
4
|
+
metadata:
|
|
5
|
+
author: "github: Raishin"
|
|
6
|
+
version: "0.1.0"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# AWS Private CA Issuer Review
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Review AWS ACM Private Certificate Authority configurations used by the cert-manager `aws-privateca-issuer` plugin. Identify CA hierarchy misconfigurations, overly permissive certificate templates, excessive IRSA permissions, unsafe validity periods, CRL reachability gaps, and cross-account PCA setup risks.
|
|
14
|
+
|
|
15
|
+
## Lean operating rules
|
|
16
|
+
|
|
17
|
+
- Flag any `AWSPCAIssuer` referencing a ROOT CA ARN directly as CRITICAL — only a SUBORDINATE CA should be active for cert-manager issuance.
|
|
18
|
+
- Check `spec.template.arn`: flag any SubordinateCACertificate template as CRITICAL (allows cert-manager to mint sub-CAs). Correct template is `EndEntityCertificate/V1`.
|
|
19
|
+
- Review IRSA role policy: required actions are `acm-pca:IssueCertificate`, `acm-pca:GetCertificate`, `acm-pca:DescribeCertificateAuthority`. Flag `acm-pca:DeleteCertificateAuthority` or `acm-pca:CreateCertificateAuthority` as HIGH.
|
|
20
|
+
- Review `spec.duration` in Certificate resources; flag durations > 365d for workload certs as MEDIUM; best practice is <= 90d.
|
|
21
|
+
- Check CRL S3 bucket reachability from within the VPC; flag unreachable CRL distribution points as HIGH (revocation disabled).
|
|
22
|
+
- For cross-account PCA (RAM-shared CA): verify minimum issuance-only permissions in the security account.
|
|
23
|
+
- Label all claims as live evidence, documentation-based, or inference.
|
|
24
|
+
|
|
25
|
+
## References
|
|
26
|
+
|
|
27
|
+
Load these only when needed:
|
|
28
|
+
|
|
29
|
+
- [Workflow and output contract](references/workflow-and-output.md)
|
|
30
|
+
- [Safety checklist](references/safety-checklist.md)
|
|
31
|
+
- [Official sources](references/official-sources.md)
|
|
32
|
+
|
|
33
|
+
## Response minimum
|
|
34
|
+
|
|
35
|
+
- Severity-labeled findings list (CRITICAL / HIGH / MEDIUM / LOW)
|
|
36
|
+
- Evidence source for each finding
|
|
37
|
+
- Specific resource name or field path
|
|
38
|
+
- Recommended remediation with example policy or YAML snippet
|
|
39
|
+
- Overall PKI trust posture verdict
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "aws-private-ca-issuer-review",
|
|
3
|
+
"name": "AWS Private CA Issuer Review",
|
|
4
|
+
"type": "skill",
|
|
5
|
+
"provider": "aws",
|
|
6
|
+
"harnesses": ["codex", "claude-code", "cursor", "gemini", "kiro", "other"],
|
|
7
|
+
"summary": "Review AWS ACM Private Certificate Authority issuer configurations for cert-manager, covering CA hierarchy safety, certificate template ARN scope, IRSA permissions minimization, validity period alignment, CRL reachability, and cross-account PCA usage patterns.",
|
|
8
|
+
"source_type": "original",
|
|
9
|
+
"official_docs": [
|
|
10
|
+
"https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html",
|
|
11
|
+
"https://github.com/cert-manager/aws-privateca-issuer",
|
|
12
|
+
"https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html",
|
|
13
|
+
"https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html",
|
|
14
|
+
"https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html"
|
|
15
|
+
],
|
|
16
|
+
"security_notes": "Using a Root CA ARN in AWSPCAIssuer exposes the root of trust directly to cert-manager. A SubordinateCACertificate template allows cert-manager to issue intermediate CAs, enabling an attacker with cert-manager IRSA access to create a shadow CA trusted by the entire corporate PKI. IRSA role must exclude acm-pca:DeleteCertificateAuthority and acm-pca:CreateCertificateAuthority.",
|
|
17
|
+
"last_verified": "2026-05-02",
|
|
18
|
+
"path": "skills/aws/aws-private-ca-issuer-review",
|
|
19
|
+
"author": "github: Raishin",
|
|
20
|
+
"version": "0.1.0"
|
|
21
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Official sources
|
|
2
|
+
|
|
3
|
+
Use this reference only when you need source grounding for AWS Private CA behavior or the detailed source list.
|
|
4
|
+
|
|
5
|
+
## AWS documentation
|
|
6
|
+
|
|
7
|
+
Use these as starting points, not as proof of the user's live AWS state:
|
|
8
|
+
- https://docs.aws.amazon.com/privateca/latest/userguide/
|
|
9
|
+
- https://docs.aws.amazon.com/privateca/latest/userguide/CT-CreateCertificate.html
|
|
10
|
+
- https://docs.aws.amazon.com/privateca/latest/userguide/PcaIssueCert.html
|
|
11
|
+
- https://docs.aws.amazon.com/privateca/latest/userguide/CT-IssueCertificate.html
|
|
12
|
+
- https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html
|
|
13
|
+
- https://github.com/cert-manager/aws-privateca-issuer
|
|
14
|
+
|
|
15
|
+
## cert-manager AWS PCA issuer plugin
|
|
16
|
+
|
|
17
|
+
- https://cert-manager.io/docs/configuration/issuers/
|
|
18
|
+
- https://github.com/cert-manager/aws-privateca-issuer/blob/main/pkg/api/v1beta1/types.go
|
|
19
|
+
|
|
20
|
+
## Grounding rule
|
|
21
|
+
|
|
22
|
+
Official documentation explains AWS service behavior. It does not prove the user's current PCA hierarchy, IRSA trust policy, CRL reachability, RAM share scope, or live cert-manager configuration. Prefer live AWS MCP/CLI evidence or sanitized user-provided YAML for current-state claims.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Safety checklist
|
|
2
|
+
|
|
3
|
+
Use this reference before any recommendations on cert-manager PKI configuration, IRSA policy changes, CA hierarchy decisions, or CRL distribution point design.
|
|
4
|
+
|
|
5
|
+
## Non-negotiables
|
|
6
|
+
|
|
7
|
+
- Never ask users to paste secrets, access keys, private keys, CA passwords, or PKCS#12 bundles into chat.
|
|
8
|
+
- Prefer official AWS MCP tools or sanitized `kubectl get` / `aws acm-pca` CLI output for current-state evidence. Label the evidence level.
|
|
9
|
+
- Do not invent CA ARNs, certificate template ARNs, IRSA role ARNs, or RAM resource share IDs.
|
|
10
|
+
- Require explicit platform-team sign-off before any change that modifies a CA hierarchy, revokes a CA, or deletes a PCA CRL S3 bucket.
|
|
11
|
+
- Keep IRSA permissions scoped to the minimum: `acm-pca:IssueCertificate`, `acm-pca:GetCertificate`, `acm-pca:DescribeCertificateAuthority`.
|
|
12
|
+
|
|
13
|
+
## PKI attack vector: required awareness
|
|
14
|
+
|
|
15
|
+
cert-manager with an `AWSPCAClusterIssuer` that has `acm-pca:IssueCertificate` via IRSA can issue certificates for any DNS name trusted by your internal PKI. A compromised cert-manager pod is equivalent to a compromised subordinate CA. Always review:
|
|
16
|
+
- Which namespaces can request from this ClusterIssuer (CertificateRequestPolicy coverage)
|
|
17
|
+
- Whether the CA certificate template allows sub-CA issuance (SubordinateCACertificate templates are CRITICAL)
|
|
18
|
+
- Whether the certificate SAN validation enforces DNS name scope
|
|
19
|
+
|
|
20
|
+
## Stress checks
|
|
21
|
+
|
|
22
|
+
- Which workloads trust this CA chain — blast radius of CA compromise?
|
|
23
|
+
- Can cert-manager request certificates for arbitrary SANs without CertificateRequestPolicy guard?
|
|
24
|
+
- Is the CA ROOT or SUBORDINATE? (ROOT issuance is CRITICAL)
|
|
25
|
+
- Is the CRL S3 bucket reachable from all pods that verify TLS using this CA?
|
|
26
|
+
- Is cross-account RAM share scoped to specific organizational units?
|
|
27
|
+
|
|
28
|
+
## Evidence labels
|
|
29
|
+
|
|
30
|
+
Use `live evidence`, `repo evidence`, `user-provided evidence`, `documentation-based`, or `inference`. Documentation alone never proves the user's live AWS state.
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# Workflow and Output Contract
|
|
2
|
+
|
|
3
|
+
## Review Workflow
|
|
4
|
+
|
|
5
|
+
### Step 1 — Identify the issuer resource type
|
|
6
|
+
|
|
7
|
+
Determine whether the configuration uses `AWSPCAIssuer` (namespace-scoped) or `AWSPCAClusterIssuer` (cluster-scoped):
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
kubectl get awspcaissuer -A
|
|
11
|
+
kubectl get awspcaclusterissuer
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Retrieve the issuer spec:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
kubectl get awspcaissuer <name> -n <namespace> -o yaml
|
|
18
|
+
kubectl get awspcaclusterissuer <name> -o yaml
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Key fields to extract:
|
|
22
|
+
- `spec.arn` — the CA ARN (must be a SUBORDINATE CA, not ROOT)
|
|
23
|
+
- `spec.region` — AWS region of the CA
|
|
24
|
+
- `spec.signingAlgorithm` — signing algorithm
|
|
25
|
+
- `spec.template.arn` — certificate template ARN (controls what types of certs can be issued)
|
|
26
|
+
|
|
27
|
+
### Step 2 — Validate CA ARN type
|
|
28
|
+
|
|
29
|
+
Use the AWS CLI to confirm the CA type:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
aws acm-pca describe-certificate-authority \
|
|
33
|
+
--certificate-authority-arn <arn> \
|
|
34
|
+
--query 'CertificateAuthority.Type' \
|
|
35
|
+
--output text
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Expected output: `SUBORDINATE`
|
|
39
|
+
|
|
40
|
+
If output is `ROOT` — this is a CRITICAL finding. cert-manager is directly wired to the root of trust.
|
|
41
|
+
|
|
42
|
+
Also check CA status:
|
|
43
|
+
```bash
|
|
44
|
+
aws acm-pca describe-certificate-authority \
|
|
45
|
+
--certificate-authority-arn <arn> \
|
|
46
|
+
--query 'CertificateAuthority.Status' \
|
|
47
|
+
--output text
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Expected: `ACTIVE`. If `DISABLED` or `DELETED`, the issuer will fail silently until the CA is restored.
|
|
51
|
+
|
|
52
|
+
### Step 3 — Validate certificate template ARN
|
|
53
|
+
|
|
54
|
+
The template ARN controls what type of certificate ACM PCA will issue. Common template ARNs:
|
|
55
|
+
|
|
56
|
+
| Template ARN Suffix | Purpose | Risk |
|
|
57
|
+
|---------------------|---------|------|
|
|
58
|
+
| `EndEntityCertificate/V1` | Standard workload cert | Safe — correct choice |
|
|
59
|
+
| `EndEntityClientAuthCertificate/V1` | Client auth cert | Safe for mTLS |
|
|
60
|
+
| `SubordinateCACertificate_PathLen0/V1` | Subordinate CA cert | CRITICAL — allows sub-CA issuance |
|
|
61
|
+
| `SubordinateCACertificate_PathLen1/V1` | Subordinate CA with chain | CRITICAL |
|
|
62
|
+
| `RootCACertificate/V1` | Root CA cert | CRITICAL |
|
|
63
|
+
|
|
64
|
+
Full ARN format:
|
|
65
|
+
```
|
|
66
|
+
arn:aws:acm-pca:::template/EndEntityCertificate/V1
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
If no template is specified in the issuer, PCA defaults to `EndEntityCertificate/V1` — verify this assumption against the actual ACM PCA issuance policy.
|
|
70
|
+
|
|
71
|
+
### Step 4 — Review IRSA IAM role policy
|
|
72
|
+
|
|
73
|
+
Retrieve the IAM role attached to the cert-manager ServiceAccount:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
kubectl get serviceaccount cert-manager -n cert-manager -o jsonpath='{.metadata.annotations.eks\.amazonaws\.com/role-arn}'
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Retrieve and review the role policy:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
aws iam list-role-policies --role-name <role-name>
|
|
83
|
+
aws iam get-role-policy --role-name <role-name> --policy-name <policy-name>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Minimum required IAM policy:
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"Version": "2012-10-17",
|
|
91
|
+
"Statement": [
|
|
92
|
+
{
|
|
93
|
+
"Effect": "Allow",
|
|
94
|
+
"Action": [
|
|
95
|
+
"acm-pca:IssueCertificate",
|
|
96
|
+
"acm-pca:GetCertificate",
|
|
97
|
+
"acm-pca:DescribeCertificateAuthority"
|
|
98
|
+
],
|
|
99
|
+
"Resource": "arn:aws:acm-pca:<region>:<account>:certificate-authority/<ca-id>"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Flag as HIGH if the policy includes any of:**
|
|
106
|
+
- `acm-pca:DeleteCertificateAuthority`
|
|
107
|
+
- `acm-pca:CreateCertificateAuthority`
|
|
108
|
+
- `acm-pca:UpdateCertificateAuthority`
|
|
109
|
+
- `acm-pca:RestoreCertificateAuthority`
|
|
110
|
+
- `acm-pca:*` (wildcard)
|
|
111
|
+
- Resource set to `*` instead of scoped CA ARN
|
|
112
|
+
|
|
113
|
+
### Step 5 — Review Certificate validity periods
|
|
114
|
+
|
|
115
|
+
List all cert-manager Certificate resources and their durations:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
kubectl get certificate -A -o custom-columns=\
|
|
119
|
+
NAMESPACE:.metadata.namespace,\
|
|
120
|
+
NAME:.metadata.name,\
|
|
121
|
+
DURATION:.spec.duration,\
|
|
122
|
+
RENEW_BEFORE:.spec.renewBefore,\
|
|
123
|
+
ISSUER:.spec.issuerRef.name
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Validity guidelines:
|
|
127
|
+
- Workload certs: <= 90d (best practice), <= 365d (acceptable)
|
|
128
|
+
- Internal service mesh mTLS: <= 24h (optimal)
|
|
129
|
+
- Long-lived infrastructure certs: <= 2y (acceptable with documented justification)
|
|
130
|
+
|
|
131
|
+
Note: ACM PCA silently caps certificate validity at the CA's own remaining validity. A cert with `duration: 87600h` (10 years) issued by a CA expiring in 2 years will be capped at 2 years without error. Always verify the CA's own expiration date:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
aws acm-pca describe-certificate-authority \
|
|
135
|
+
--certificate-authority-arn <arn> \
|
|
136
|
+
--query 'CertificateAuthority.NotAfter' \
|
|
137
|
+
--output text
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Step 6 — Review CRL configuration and reachability
|
|
141
|
+
|
|
142
|
+
Check the CRL configuration on the CA:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
aws acm-pca describe-certificate-authority \
|
|
146
|
+
--certificate-authority-arn <arn> \
|
|
147
|
+
--query 'CertificateAuthority.RevocationConfiguration'
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Verify the CRL S3 bucket name from the output. Then check reachability from within the VPC:
|
|
151
|
+
|
|
152
|
+
- Does the VPC have an S3 Gateway VPC endpoint for the CRL bucket's region?
|
|
153
|
+
- Is the CRL S3 bucket policy allowing access from the VPC?
|
|
154
|
+
- Is the CRL distribution point URL embedded in issued certs accessible?
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Check for S3 gateway VPC endpoint
|
|
158
|
+
aws ec2 describe-vpc-endpoints \
|
|
159
|
+
--filters "Name=service-name,Values=com.amazonaws.<region>.s3" \
|
|
160
|
+
"Name=vpc-id,Values=<vpc-id>"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
If the CRL S3 bucket requires a VPC endpoint and none exists, revocation checking is effectively disabled (most TLS clients soft-fail on CRL/OCSP unreachability).
|
|
164
|
+
|
|
165
|
+
### Step 7 — Cross-account PCA review (if applicable)
|
|
166
|
+
|
|
167
|
+
Identify if the CA ARN belongs to a different AWS account than the EKS cluster:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# Extract account ID from CA ARN
|
|
171
|
+
echo "arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<id>"
|
|
172
|
+
# Compare with current account
|
|
173
|
+
aws sts get-caller-identity --query Account --output text
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
For cross-account configurations:
|
|
177
|
+
|
|
178
|
+
1. Verify the RAM share exists in the security account:
|
|
179
|
+
```bash
|
|
180
|
+
aws ram list-resources --resource-owner SELF --resource-type acm-pca:CertificateAuthority
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
2. Verify the workload-account IRSA role trust policy references the correct EKS OIDC provider.
|
|
184
|
+
|
|
185
|
+
3. Confirm the cross-account IAM permissions follow least-privilege (issuance only, not management).
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Output Format
|
|
190
|
+
|
|
191
|
+
### Finding: `<short title>`
|
|
192
|
+
|
|
193
|
+
| Field | Value |
|
|
194
|
+
|-------|-------|
|
|
195
|
+
| Severity | CRITICAL / HIGH / MEDIUM / LOW |
|
|
196
|
+
| Resource | AWSPCAIssuer name, CA ARN, IAM role, or cert name |
|
|
197
|
+
| Evidence | documentation-based / live evidence / inference |
|
|
198
|
+
| Description | What is wrong and why it matters for PKI trust |
|
|
199
|
+
| Remediation | IAM policy snippet, ARN change, or configuration fix |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
### Overall PKI Trust Posture
|
|
204
|
+
|
|
205
|
+
| Category | Status |
|
|
206
|
+
|----------|--------|
|
|
207
|
+
| CA hierarchy (subordinate only) | PASS / FAIL |
|
|
208
|
+
| Certificate template scope | PASS / FAIL |
|
|
209
|
+
| IRSA permissions (least-privilege) | PASS / FAIL |
|
|
210
|
+
| Certificate validity periods | PASS / FAIL |
|
|
211
|
+
| CRL reachability | PASS / FAIL |
|
|
212
|
+
| Cross-account configuration | PASS / N/A / FAIL |
|
|
213
|
+
|
|
214
|
+
**Verdict:** TRUSTED / UNTRUSTED / CONDITIONAL (list conditions)
|