gitops-workflow – skill Agent & Tự động hóa cho agent AI
Hướng dẫn đầy đủ triển khai quy trình GitOps với ArgoCD và Flux để tự động triển khai Kubernetes.
Cài skill gitops-workflow bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/gitops-workflow-5f483.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /gitops-workflow – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/gitops-workflow-5f483.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $gitops-workflow – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/gitops-workflow-5f483.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /gitops-workflow – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/gitops-workflow-5f483.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /gitops-workflow – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
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.
Skill liên quan
- global-chat-agent-discovery – Khám phá và so sánh MCP server và AI agent bằng thư mục đa giao thức và MCP server của…
- gmail-automation – Tích hợp Gmail nhẹ với xác thực OAuth độc lập. Không cần MCP server.
- go-playwright – Năng lực chuyên gia để tự động hóa trình duyệt mạnh mẽ, kín đáo và hiệu quả bằng…
- go-rod-master – Hướng dẫn toàn diện về tự động hóa trình duyệt và thu thập dữ liệu web với go-rod…
- goal-loop – Soạn thảo và giải thích các prompt goal-loop bền bỉ cho công việc agent chạy dài, với…
- google-calendar-automation – Lập kế hoạch và thực hiện các quy trình Google Calendar đã được ủy quyền qua tích hợp đã…
- google-docs-automation – Đọc và chỉnh sửa Google Docs qua connector đã xác thực hoặc tích hợp API đã được rà…
- google-drive-automation – Tích hợp Google Drive nhẹ với xác thực OAuth độc lập. Không cần MCP server. Toàn quyền…