mcpField
A
argocd-cli

argocd-cli

github.com/oldwinter云与 DevOps1050 次安装1 周前更新
代码仓库

关于 argocd-cli

argocd-cli 是一项使用 ArgoCD CLI 管理 GitOps 部署的技能,面向负责应用发布和集群状态维护的运维人员。它提供应用同步、状态检查、回滚、差异比较和资源操作的命令参考。

主要功能

  1. 01查看应用同步与健康状态
  2. 02同步应用及指定资源
  3. 03刷新应用状态
  4. 04查看差异与部署历史
  5. 05回滚到指定版本
  6. 06查看资源和 Pod 日志

适用场景

  1. 01检查应用是否与 Git 声明状态一致
  2. 02发布 Git 中的最新变更
  3. 03排查同步错误或状态异常
  4. 04将应用回滚到先前版本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oldwinter/skills --skill argocd-cli

安装后在 Claude Code 中输入/argocd-cli确认已加载。

详细介绍

ArgoCD CLI 技能

此技能可使用 ArgoCD CLI 管理 GitOps 部署。

环境

连接
  • 服务器:192.168.10.117:31006
  • Web 界面:http://192.168.10.117:31006
  • 凭据:admin / CpfsoneT7ogVKWOh
登录命令

如果令牌过期,请重新进行身份验证:

yes | argocd login 192.168.10.117:31006 --username admin --password CpfsoneT7ogVKWOh --insecure
应用概览
应用集群命名空间环境
simplex-k1-prodAWS EKSproduction生产环境
simplex-k2-stagingAWS EKSstaging预发布环境
simplex-localK3ssimplex本地开发
simplex-local-infraK3scommon本地基础设施

常见操作

应用状态
# List all applications
argocd app list

# Get specific application status
argocd app get argocd/simplex-k1-prod
argocd app get argocd/simplex-k2-staging
argocd app get argocd/simplex-local

# Get application in JSON format
argocd app get argocd/simplex-k1-prod -o json

# Get application in YAML format
argocd app get argocd/simplex-k1-prod -o yaml
同步操作
# Sync application (deploy latest from git)
argocd app sync argocd/simplex-k1-prod

# Sync with prune (remove resources not in git)
argocd app sync argocd/simplex-k1-prod --prune

# Sync specific resources only
argocd app sync argocd/simplex-k1-prod --resource apps:Deployment:simplex-api

# Sync with force (replace resources)
argocd app sync argocd/simplex-k1-prod --force

# Sync and wait for completion
argocd app sync argocd/simplex-k1-prod --timeout 300

# Dry run sync (preview changes)
argocd app sync argocd/simplex-k1-prod --dry-run
刷新
# Refresh application (re-read from git)
argocd app get argocd/simplex-k1-prod --refresh

# Hard refresh (clear cache and re-read)
argocd app get argocd/simplex-k1-prod --hard-refresh
回滚
# View deployment history
argocd app history argocd/simplex-k1-prod

# Rollback to specific revision
argocd app rollback argocd/simplex-k1-prod <revision-id>

# Example: rollback to revision 5
argocd app rollback argocd/simplex-k1-prod 5
差异与比较
# Show diff between live and desired state
argocd app diff argocd/simplex-k1-prod

# Show diff with local manifests
argocd app diff argocd/simplex-k1-prod --local /path/to/manifests
资源管理
# List application resources
argocd app resources argocd/simplex-k1-prod

# Get logs from application pods
argocd app logs argocd/simplex-k1-prod

# Follow logs
argocd app logs argocd/simplex-k1-prod --follow

# Logs from specific container
argocd app logs argocd/simplex-k1-prod --container simplex-api

# Delete specific resource
argocd app delete-resource argocd/simplex-k1-prod --kind Deployment --resource-name simplex-api
应用管理
# Create new application
argocd app create <name> \
  --repo ssh://[email protected]:2222/simplexai/infra/simplex-gitops.git \
  --path kubernetes/overlays/<env> \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace <namespace>

# Delete application
argocd app delete argocd/<app-name>

# Set application parameters
argocd app set argocd/simplex-k1-prod --parameter key=value
项目管理
# List projects
argocd proj list

# Get project details
argocd proj get simplex

# List project roles
argocd proj role list simplex

状态说明

同步状态
状态含义
Synced运行状态与 git 中的期望状态一致
OutOfSync运行状态与 git 中的状态不一致
Unknown无法确定同步状态
健康状态
状态含义
Healthy所有资源均健康
Progressing资源正在更新
Degraded一个或多个资源不健康
Suspended资源已暂停
Missing资源不存在
Unknown健康状态未知

输出格式

状态摘要
📊 ArgoCD Application Status

┌─────────────────────┬──────────┬───────────┬─────────────────┐
│ Application         │ Sync     │ Health    │ Last Sync       │
├─────────────────────┼──────────┼───────────┼─────────────────┤
│ simplex-k1-prod     │ Synced   │ Healthy   │ 2h ago          │
│ simplex-k2-staging  │ Synced   │ Healthy   │ 1h ago          │
│ simplex-local       │ OutOfSync│ Degraded  │ 30m ago         │
└─────────────────────┴──────────┴───────────┴─────────────────┘

故障排除

应用未同步
  1. 检查同步状态:argocd app get argocd/<app>
  2. 检查条件中是否存在同步错误
  3. 强制刷新:argocd app get argocd/<app> --hard-refresh
  4. 检查 git 仓库访问权限
ComparisonError

通常表示:

  • git 仓库访问问题
  • git 中的清单无效
  • Kustomize/Helm 渲染错误

解决方法:

# Hard refresh to clear cache
argocd app get argocd/<app> --hard-refresh

# Check app details for error message
argocd app get argocd/<app>
身份验证已过期
# Re-login
yes | argocd login 192.168.10.117:31006 --username admin --password CpfsoneT7ogVKWOh --insecure

与 Kargo 集成

ArgoCD 应用由 Kargo 管理,以实现渐进式交付:

  • Kargo Warehouse 检测 ECR 中的新镜像
  • Kargo Stages 将货运包逐步提升至各个环境
  • ArgoCD 将变更同步到集群

由 Kargo 管理的应用带有注解:

kargo.akuity.io/authorized-stage: kargo-simplex:prod

如需执行渐进式交付操作,请使用 Kargo CLI 技能。

评论

支持 Markdown