如何根据现有复制控制器部署或进行滚动更新?

时间:2019-07-01 11:50:50

标签: docker kubernetes yaml

e

我在docker中有多个阶段。我同时使用滚动更新和部署。当前,如果未部署任何内容,则必须手动进行部署,每次更新时,滚动更新将自行运行。

我想使一切自动化。我想写一些条件检查 现有复制控制器,然后运行滚动更新,否则运行部署。我试图在部署或部署更新中都将if语句放入脚本中。

- >
  if rancher --debug kubectl rollout status deployment $CI_PROJECT_NAME; then
      exit 0
  fi 

不幸的是我得到了错误:

  

错误:作业失败(系统故障):机密   禁止“ runner-yx1bv22m-project-122-concurrent-0vrbdb”:已超出   配额:default-467s2,已请求:secrets = 1,已使用:secrets = 20,受限:   secrets = 20

据我了解,我无法同时运行两个作业。 根据当前部署状态,哪种方法可以实现部署或滚动更新?

1 个答案:

答案 0 :(得分:0)

enter image description here

基本上,我放弃了第二份工作。我现在可以完成所有工作。

  script:
    other scripts
    - CHECK_DEPLOYMENT=$(rancher --debug kubectl --insecure-skip-tls-verify get deployments -n $CI_PROJECT_NAME-$CI_COMMIT_REF_SLUG | grep $CI_PROJECT_NAME | awk '{print $1}')
    - >
      if [ "$CHECK_DEPLOYMENT" == "$CI_PROJECT_NAME" ]; then
        do rollup script
      else
        do deploy script
      fi

部署或汇总都是通过添加单个if语句完成的。根据部署情况,它会汇总还是部署。