You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用kubectl命令在ArgoCD中执行硬刷新以获取新密钥?

使用kubectl触发ArgoCD应用硬刷新(适配AVP密钥更新)

方法1:通过Patch应用触发强制刷新

直接给ArgoCD应用添加临时annotation,触发重新渲染与同步,AVP会在此过程中拉取最新密钥:

# 替换<your-app-name>和<your-argocd-namespace>为实际值
kubectl patch app <your-app-name> -n <your-argocd-namespace> \
  -p '{"metadata":{"annotations":{"argocd.argoproj.io/refresh":"hard"}}}' \
  --type merge

这个annotation会被ArgoCD控制器识别并执行硬刷新(重新拉取仓库、渲染模板、同步集群),完成后控制器会自动移除该annotation。

方法2:创建SyncOperation触发带刷新的同步

通过直接创建同步操作资源,明确指定硬刷新参数:

# 替换<your-app-name>和<your-argocd-namespace>为实际值
kubectl apply -f - <<EOF
apiVersion: argoproj.io/v1alpha1
kind: SyncOperation
metadata:
  generateName: <your-app-name>-sync-
  namespace: <your-argocd-namespace>
spec:
  appName: <your-app-name>
  syncStrategy:
    hook: {}
  refresh: hard # 启用硬刷新拉取最新密钥
  prune: false # 根据需求调整是否启用资源修剪
  dryRun: false # 设为true可执行测试同步,不实际变更集群
EOF

方法3:配置触发器实现流水线触发刷新

给应用添加annotation触发器,流水线只需更新指定annotation即可触发刷新:

  1. 先给应用配置触发器:
kubectl patch app <your-app-name> -n <your-argocd-namespace> \
  -p '{"spec":{"triggers":[{"type":"Annotation","annotation":{"key":"ci.pipeline/refresh","value":"true"}}]}}' \
  --type merge
  1. 流水线中执行以下命令触发刷新(用时间戳确保每次annotation值唯一):
kubectl annotate app <your-app-name> -n <your-argocd-namespace> \
  ci.pipeline/refresh=$(date +%s) --overwrite

注意事项

  • 确保CI系统的kubectl账号拥有ArgoCD命名空间下applications.argoproj.io资源的patch/create权限
  • 硬刷新会重新拉取代码仓库内容,若仓库有代码变更也会同步,需确认符合业务预期
  • 若应用开启自动同步,硬刷新后会自动同步到集群;手动同步模式需配合同步操作执行

内容的提问来源于stack exchange,提问作者xc7621

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 18:05:53