关于 argocd-cli
argocd-cli 是一项使用 ArgoCD CLI 管理 GitOps 部署的技能,面向负责应用发布和集群状态维护的运维人员。它提供应用同步、状态检查、回滚、差异比较和资源操作的命令参考。
主要功能
- 01查看应用同步与健康状态
- 02同步应用及指定资源
- 03刷新应用状态
- 04查看差异与部署历史
- 05回滚到指定版本
- 06查看资源和 Pod 日志
适用场景
- 01检查应用是否与 Git 声明状态一致
- 02发布 Git 中的最新变更
- 03排查同步错误或状态异常
- 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-prod | AWS EKS | production | 生产环境 |
simplex-k2-staging | AWS EKS | staging | 预发布环境 |
simplex-local | K3s | simplex | 本地开发 |
simplex-local-infra | K3s | common | 本地基础设施 |
常见操作
应用状态
# 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 │
└─────────────────────┴──────────┴───────────┴─────────────────┘
故障排除
应用未同步
- 检查同步状态:
argocd app get argocd/<app> - 检查条件中是否存在同步错误
- 强制刷新:
argocd app get argocd/<app> --hard-refresh - 检查 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