npx skills add https://github.com/wshobson/agents --skill gitops-workflowHow Gitops Workflow fits into a Paperclip company.
Gitops Workflow drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.
Pre-configured AI company — 18 agents, 18 skills, one-time purchase.
SKILL.md289 linesExpandCollapse
---name: gitops-workflowdescription: Implement GitOps workflows with ArgoCD and Flux for automated, declarative Kubernetes deployments with continuous reconciliation. Use when implementing GitOps practices, automating Kubernetes deployments, or setting up declarative infrastructure management.--- # 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. ## When to Use This Skill - 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 ## OpenGitOps Principles 1. **Declarative** - Entire system described declaratively2. **Versioned and Immutable** - Desired state stored in Git3. **Pulled Automatically** - Software agents pull desired state4. **Continuously Reconciled** - Agents reconcile actual vs desired state ## ArgoCD Setup ### 1. Installation ```bash# Create namespacekubectl create namespace argocd # Install ArgoCDkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml # Get admin passwordkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d``` **Reference:** 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 ```yaml# argocd/applications/my-app.yamlapiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: my-app namespace: argocdspec: 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=true``` ### 4. App of Apps Pattern ```yamlapiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: applications namespace: argocdspec: 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 ```bash# Install Flux CLIcurl -s https://fluxcd.io/install.sh | sudo bash # Bootstrap Fluxflux bootstrap github \ --owner=org \ --repository=gitops-repo \ --branch=main \ --path=clusters/production \ --personal``` ### 2. Create GitRepository ```yamlapiVersion: source.toolkit.fluxcd.io/v1kind: GitRepositorymetadata: name: my-app namespace: flux-systemspec: interval: 1m url: https://github.com/org/my-app ref: branch: main``` ### 3. Create Kustomization ```yamlapiVersion: kustomize.toolkit.fluxcd.io/v1kind: Kustomizationmetadata: name: my-app namespace: flux-systemspec: interval: 5m path: ./deploy prune: true sourceRef: kind: GitRepository name: my-app``` ## Sync Policies ### Auto-Sync Configuration **ArgoCD:** ```yamlsyncPolicy: automated: prune: true # Delete resources not in Git selfHeal: true # Reconcile manual changes allowEmpty: false retry: limit: 5 backoff: duration: 5s factor: 2 maxDuration: 3m``` **Flux:** ```yamlspec: interval: 1m prune: true wait: true timeout: 5m``` **Reference:** See `references/sync-policies.md` ## Progressive Delivery ### Canary Deployment with ArgoCD Rollouts ```yamlapiVersion: argoproj.io/v1alpha1kind: Rolloutmetadata: name: my-appspec: replicas: 5 strategy: canary: steps: - setWeight: 20 - pause: { duration: 1m } - setWeight: 50 - pause: { duration: 2m } - setWeight: 100``` ### Blue-Green Deployment ```yamlstrategy: blueGreen: activeService: my-app previewService: my-app-preview autoPromotionEnabled: false``` ## Secret Management ### External Secrets Operator ```yamlapiVersion: external-secrets.io/v1beta1kind: ExternalSecretmetadata: name: db-credentialsspec: refreshInterval: 1h secretStoreRef: name: aws-secrets-manager kind: SecretStore target: name: db-credentials data: - secretKey: password remoteRef: key: prod/db/password``` ### Sealed Secrets ```bash# Encrypt secretkubeseal --format yaml < secret.yaml > sealed-secret.yaml # Commit sealed-secret.yaml to Git``` ## Best Practices 1. **Use separate repos or branches** for different environments2. **Implement RBAC** for Git repositories3. **Enable notifications** for sync failures4. **Use health checks** for custom resources5. **Implement approval gates** for production6. **Keep secrets out of Git** (use External Secrets)7. **Use App of Apps pattern** for organization8. **Tag releases** for easy rollback9. **Monitor sync status** with alerts10. **Test changes** in staging first ## Troubleshooting **Sync failures:** ```bashargocd app get my-appargocd app sync my-app --prune``` **Out of sync status:** ```bashargocd app diff my-appargocd app sync my-app --force``` ## Related Skills - `k8s-manifest-generator` - For creating manifests- `helm-chart-scaffolding` - For packaging applicationsAccessibility Compliance
This walks you through implementing proper WCAG 2.2 compliance with real code patterns for screen readers, keyboard navigation, and mobile accessibility. It cov
Airflow Dag Patterns
If you're building data pipelines with Airflow, this skill gives you production-ready DAG patterns that actually work in the real world. It covers TaskFlow API
Angular Migration
Migrating from AngularJS to Angular is notoriously painful, and this skill tackles the practical stuff that makes or breaks these projects. It covers hybrid app