gitops-workflow – Agents & Automation skill for AI agents
Complete guide to implementing GitOps workflows with ArgoCD and Flux for automated Kubernetes deployments.
Install the gitops-workflow skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/gitops-workflow-5f483.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /gitops-workflow – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/gitops-workflow-5f483.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $gitops-workflow – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/gitops-workflow-5f483.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /gitops-workflow – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/gitops-workflow-5f483.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /gitops-workflow – then describe the task you want done.
SKILL.md content
GitOps Workflow
Complete guide to implementing GitOps workflows with ArgoCD and Flux for automated Kubernetes deployments.
Purpose
Implement declarative, Git-based continuous delivery for Kubernetes using ArgoCD or Flux CD, following OpenGitOps principles.
Use this skill when
- Set up GitOps for Kubernetes clusters
- Automate application deployments from Git
- Implement progressive delivery strategies
- Manage multi-cluster deployments
- Configure automated sync policies
- Set up secret management in GitOps
Do not use this skill when
- You need a one-off manual deployment
- You cannot manage cluster access or repo permissions
- You are not deploying to Kubernetes
Instructions
1. Define repo layout and desired-state conventions.
2. Review an immutable, version-pinned ArgoCD or Flux installation and connect only authorized clusters.
3. Configure sync policies, environments, and promotion flow.
4. Validate rollbacks and secret handling.
Safety
- Avoid auto-sync to production without approvals.
- Keep secrets out of Git and use sealed or external secret managers.
- Confirm kube context, namespace, affected resources and rollback before writes. Review downloaded manifests inertly and pin the reviewed commit/digest; never apply mutable remote YAML directly. Auto-sync, prune and force can delete/recreate resources. The snippets are separate illustrations, not a command sequence to execute in production.
OpenGitOps Principles
1. Declarative - Entire system described declaratively
2. Versioned and Immutable - Desired state stored in Git
3. Pulled Automatically - Software agents pull desired state
4. Continuously Reconciled - Agents reconcile actual vs desired state
ArgoCD Setup
1. Installation
# Create namespace
kubectl create namespace argocd
# Install ArgoCD
# Obtain the selected release manifest, review its complete content, then apply
# the reviewed local file to the authorized context:
kubectl apply -n argocd -f ./reviewed-argocd-install.yaml
# Get admin password
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -dReference: See references/argocd-setup.md for detailed setup
2. Repository Structure
gitops-repo/
├── apps/
│ ├── production/
│ │ ├── app1/
│ │ │ ├── kustomization.yaml
│ │ │ └── deployment.yaml
│ │ └── app2/
│ └── staging/
├── infrastructure/
│ ├── ingress-nginx/
│ ├── cert-manager/
│ └── monitoring/
└── argocd/
├── applications/
└── projects/3. Create Application
The following auto-sync/prune configuration is for an authorized non-production example. For production, omit automated sync until approval and promotion controls are established.
# argocd/applications/my-app.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/org/gitops-repo
targetRevision: main
path: apps/production/my-app
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true4. App of Apps Pattern
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: applications
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/org/gitops-repo
targetRevision: main
path: argocd/applications
destination:
server: https://kubernetes.default.svc
namespace: argocd
syncPolicy:
automated: {}Flux CD Setup
1. Installation
# Install Flux CLI
brew install fluxcd/tap/flux
# Alternative: download the official installer, inspect it, then execute it
tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT
curl -fsSLo "$tmpdir/flux-install.sh" https://fluxcd.io/install.sh
cat "$tmpdir/flux-install.sh" # review the full installer before sudo
sudo bash "$tmpdir/flux-install.sh"
# Bootstrap Flux
flux bootstrap github \
--owner=org \
--repository=gitops-repo \
--branch=main \
--path=clusters/production \
--personal2. Create GitRepository
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: my-app
namespace: flux-system
spec:
interval: 1m
url: https://github.com/org/my-app
ref:
branch: main3. Create Kustomization
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: my-app
namespace: flux-system
spec:
interval: 5m
path: ./deploy
prune: true
sourceRef:
kind: GitRepository
name: my-appSync Policies
Auto-Sync Configuration
ArgoCD:
syncPolicy:
automated:
prune: true # Delete resources not in Git
selfHeal: true # Reconcile manual changes
allowEmpty: false
retry:
limit: 5
backoff:
duration: 5s
factor: 2
maxDuration: 3mFlux:
spec:
interval: 1m
prune: true
wait: true
timeout: 5mReference: See references/sync-policies.md
Progressive Delivery
Canary Deployment with ArgoCD Rollouts
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: my-app
spec:
replicas: 5
strategy:
canary:
steps:
- setWeight: 20
- pause: {duration: 1m}
- setWeight: 50
- pause: {duration: 2m}
- setWeight: 100Blue-Green Deployment
strategy:
blueGreen:
activeService: my-app
previewService: my-app-preview
autoPromotionEnabled: falseSecret Management
External Secrets Operator
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: db-credentials
spec:
refreshInterval: 1h
secretStoreRef:
name: aws-secrets-manager
kind: SecretStore
target:
name: db-credentials
data:
- secretKey: password
remoteRef:
key: prod/db/passwordSealed Secrets
# Encrypt secret
kubeseal --format yaml < secret.yaml > sealed-secret.yaml
# Commit sealed-secret.yaml to GitBest Practices
1. Use separate repos or branches for different environments
2. Implement RBAC for Git repositories
3. Enable notifications for sync failures
4. Use health checks for custom resources
5. Implement approval gates for production
6. Keep secrets out of Git (use External Secrets)
7. Use App of Apps pattern for organization
8. Tag releases for easy rollback
9. Monitor sync status with alerts
10. Test changes in staging first
Troubleshooting
Sync failures:
argocd app get my-app
# Inspect diff/health first; pruning is a separately authorized deletion action.Out of sync status:
argocd app diff my-app
# Force/replacement sync is not a routine fix; inspect the cause and disruption first.Related Skills
k8s-manifest-generator- For creating manifestshelm-chart-scaffolding- For packaging applications
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Related skills
- global-chat-agent-discovery – Discover and compare MCP servers and AI agents using Global Chat's cross-protocol…
- gmail-automation – Lightweight Gmail integration with standalone OAuth authentication. No MCP server…
- go-playwright – Expert capability for robust, stealthy, and efficient browser automation using…
- go-rod-master – Comprehensive guide for browser automation and web scraping with go-rod (Chrome DevTools…
- goal-loop – Draft and explain persistent goal-loop prompts for long-running agent work with clear…
- google-calendar-automation – Plan and perform authorized Google Calendar workflows through an existing authenticated…
- google-docs-automation – Read and edit Google Docs through an available authenticated connector or reviewed API…
- google-drive-automation – Lightweight Google Drive integration with standalone OAuth authentication. No MCP server…