gitops-workflow – skill DevOps & Hạ tầng cho agent AI
Triển khai quy trình GitOps với ArgoCD và Flux để triển khai Kubernetes tự động, khai báo, với đối chiếu liên tục. Dùng khi áp dụng thực hành GitOps, tự động hóa triển khai Kubernetes, hoặc thiết lập quản lý hạ tầng khai báo.
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-f8606.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-f8606.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-f8606.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-f8606.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.
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 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
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/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
# 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
The example uses Homebrew. For other systems, follow the
[official Flux installation guide](https://fluxcd.io/flux/installation/).
# Install the Flux CLI with Homebrew
brew install fluxcd/tap/flux
flux check --pre
# 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
argocd app sync my-app --pruneOut of sync status:
argocd app diff my-app
argocd app sync my-app --forceRelated Skills
k8s-manifest-generator- For creating manifestshelm-chart-scaffolding- For packaging applications
Skill liên quan
- ci-cd-pipeline-builder – Tạo pipeline CI/CD thực tế từ tín hiệu stack của dự án được phát hiện — sinh cấu hình…
- auri-core – Auri: trợ lý giọng nói thông minh (Alexa + mô hình Claude đã cấu hình và xác minh). Tầm…
- hunt-k8s – Săn lỗ hổng Kubernetes & Docker — truy cập ẩn danh qua API, exec kubelet 10250…
- aws-agentic-ai – Chuyên gia toàn diện về AWS Bedrock AgentCore để triển khai và quản lý AI agent ở quy mô…
- grafana-dashboards – Tạo và quản lý dashboard Grafana production để trực quan hóa theo thời gian thực các…
- cloud-security – Dùng khi đánh giá hạ tầng cloud về cấu hình sai bảo mật, đường leo thang đặc quyền IAM…
- cmmc-readiness – Dùng khi nhà thầu hoặc nhà thầu phụ quốc phòng chuẩn bị cho đợt tự đánh giá CMMC 2.0…
- cmmc-readiness – Dùng khi nhà thầu hoặc nhà thầu phụ quốc phòng chuẩn bị cho đợt tự đánh giá CMMC 2.0…