Развертывание определенного изображения с тегами в openshift

Привет, я работаю над Openshift 3.9. Ниже приведен фрагмент кода конвейера Дженкинса.

     stage('Build Image') {
        openshift.withCluster() {
            openshift.withProject(env.DEV_PROJECT) {
                        def bcSelector = openshift.selector("bc", "jboss")
                        def bcExists = bcSelector.exists()
                   if (!bcExists) { 
                    openshift.newBuild("--name=jboss", "--image-stream=jboss-eap70-openshift:1.5", "--binary=true") 
                   } else {echo "The specified image already exists"}                       
            }}
   }    
      stage('Build Image with app') {
        sh "rm -rf oc-build && mkdir -p oc-build/deployments"
        sh "cp /var/lib/jenkins/jobs/devpipeline/jobs/devpipeline-tasks-pipeline/workspace/target/hello-1.0.war oc-build/deployments/ROOT.war"                                
           openshift.withCluster() {
             openshift.withProject(env.DEV_PROJECT) {
               openshift.selector("bc", "jboss").startBuild("--from-dir=oc-build", "--wait=true")
             }
           }
      }
      stage('deploy to Dev') {
                              openshift.withCluster() {
          openshift.withProject(env.DEV_PROJECT) {
            if (openshift.selector('dc', 'jboss').exists()) {
              openshift.selector('dc', 'jboss').delete()
              openshift.selector('svc', 'jboss').delete()
              openshift.selector('route', 'jboss').delete()
            }

            def app = openshift.newApp("jboss:latest")
            app.narrow("svc").expose();
            def dc = openshift.selector("dc", "jboss")
           openshift.tag("${env.DEV_PROJECT}/jboss:latest", "${env.DEV_PROJECT}/jboss:${build_number}")
         }
    }
   }

На Build этапе iam принимает контейнер jboss. На этапе Build Image with app я беру файл войны, который был построен, и создаю образ jboss с файлом войны. В deploy to dev я развертываю образ приложения в dev и помечаю образ номером сборки jenkins ${env.DEV_PROJECT}/jboss:${build_number}. Я работаю над механизмом отката в конвейер, в котором я хочу развернуть образ с определенным номером сборки в среде разработки. Предположим, что если мой номер сборки jenkins 14, и я хочу развернуть 10, то как я могу развернуть конкретное помеченное изображение в dev. В изображениях openshift я вижу все изображения с тегами от 1 до 14. Теперь я хочу развернуть конкретное изображение с тегами в dev. Является ли это возможным?


person sudhir    schedule 29.11.2018    source источник


Ответы (1)


Что вы можете сделать, так это изменить DeploymentConfig другой версией образа, который вы развертываете (: latest). Вы можете сделать это в веб-консоли с помощью ИЗМЕНИТЬ развертывание и выбрать другой тег: из потока изображений jboss.

Или с помощью команды oc patch, чтобы изменить DC

oc patch dc --patch = '{"spec": {"template": {"spec": {"контейнеры": [{"name": "", "image": "image-name: tag"}] }}}} '

person jr00n    schedule 04.12.2018