ARGOCD:如何在部署多个应用后仅触发一次post-sync-hook?
创始人
2024-09-13 03:30:55
0

可以通过创建一个名为“hook-controller”的Kubernetes CronJob来解决此问题。该CronJob会在指定的时间间隔内运行一个脚本,该脚本将检查所有应用是否已同步并且是否已触发post-sync-hook,如果没有,则触发该钩子。

以下是实现此解决方案的代码示例:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hook-controller
spec:
  schedule: "*/5 * * * *" # 每5分钟运行一次
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hook-controller
            image: alpine:latest
            command: [ "/bin/sh", "-c", "if [[ $(kubectl get applications -o jsonpath='{range .items[*]}{@.status.sync.status}|{end}' | grep -c Synced) -eq $(kubectl get applications -o jsonpath='{range .items[*]}{@.status.sync.status}|{end}' | wc -w) && $(kubectl get events --field-selector involvedObject.kind=Application | grep -c PostSyncHook) -eq $(kubectl get applications -o jsonpath='{range .items[*]}{@.status.operationState.finishedAt}|{end}' | grep -c -v null) ]]; then echo 'Triggering PostSyncHook' && argocd app sync  --force; fi" ]
          restartPolicy: OnFailure

上述代码将创建名为“hook-controller”的CronJob,该作业将每5分钟运行一次。在作业运行时,它将检查所有应用程序的同步状态和post-sync-hook状态。如果所有应用程序都已同步并且已触发post-sync-hook,则该脚本将触发名为的应用程序的post-sync-hook。

请注意,上述示例仅针对名为的应用程序触发post-sync

相关内容

热门资讯

透视安卓版!爱玩联盟app辅助... 透视安卓版!爱玩联盟app辅助,德普之星辅助软件(辅助挂)详细开挂辅助下载这是一款可以让一直输的玩家...
透视玄学!小程序蜀山四川免费辅... 透视玄学!小程序蜀山四川免费辅助器,德普之星透视辅助(辅助挂)详细开挂辅助软件;无需打开直接搜索微信...
透明了解!邯郸胡乐修改器,we... 透明了解!邯郸胡乐修改器,wepoker数据分析工具(辅助挂)详细开挂辅助下载;无需打开直接搜索打开...
透视最新!永胜联盟辅助器,po... 透视最新!永胜联盟辅助器,pokemmo手机脚本(辅助挂)详细开挂辅助平台这是一款可以让一直输的玩家...
透明教学!小程序广东雀神智能插... 您好:小程序广东雀神智能插件安装下载这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发...
透明总结!wepoker黑侠辅... wepoker黑侠辅助器开挂教程视频分享装挂详细步骤在当今的网络游戏中,wepoker黑侠辅助器作为...
透视app!打两圈绝对有辅助,... wepoker免费透视脚本开挂教程视频分享装挂详细步骤在当今的网络游戏中,wepoker免费透视脚本...
透视软件!pokemmo手机脚... 透视软件!pokemmo手机脚本,hhpoker有后台操作吗(辅助挂)详细开挂辅助软件;无需打开直接...
透视真的!阿拉斗牌辅助,德普之... 透视真的!阿拉斗牌辅助,德普之星透视免费(辅助挂)详细开挂辅助脚本1、下载安装好德普之星透视免费,进...
透视app!wepoker私人... 透视app!wepoker私人局可以透视,hhpoker真能买到挂吗(辅助挂)详细开挂辅助脚本;打开...