Развертывание определенного тегового изображения в openshift - PullRequest
0 голосов
/ 29 ноября 2018

Привет, я работаю над 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} .I amработает над механизмом отката в конвейере, где я хочу развернуть конкретный образ номера сборки в среде разработки.предположим, если мой номер сборки jenkins равен 14, а я хочу развернуть 10, то как я могу развернуть определенный теговый образ в dev.В изображениях openshift я вижу все помеченные изображения в диапазоне от 1 до 14. Теперь я хочу развернуть определенное помеченное изображение в dev.Возможно ли это?

1 Ответ

0 голосов
/ 04 декабря 2018

Что вы можете сделать, это заменить DeploymentConfig другой версией образа, который вы развертываете (: последняя).Вы можете сделать это в веб-консоли с EDIT развертывания и выбрать другой тег: из потока изображений jboss.

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

oc patch dc --patch = '{"spec": {"template": {"spec": {"Containers":[{"name": "", "image": "image-name: tag"}]}}}} '

...