Как получить полный CI / CD в openshift? - PullRequest
0 голосов
/ 09 ноября 2018

Я знаю, что это возможно при использовании Jenkins внутри Openshift, но при использовании чистых образов сборки кажется, что полный CI / CD, похоже, отсутствует.

Нашим идеальным сценарием для каждого перехода в ветку «master» будет:

  • сборка приложения
  • запустить юнит-тесты
  • уведомить команду, если не удалось построить
  • развернуть образ
  • уведомить, если не удалось запустить

Простая настройка сборки Openshift включает только полужирный элементы.

Можем ли мы иметь полный CI / CD внутри Openshift? Или мы должны делать проверки снаружи? Также, насколько мне известно, в Openshift все еще отсутствуют уведомления о сбоях.

1 Ответ

0 голосов
/ 10 ноября 2018

Лично я думаю, что вам лучше использовать OpenShift Pipeline Jebkins Plugin для вашего использования.Он может быть реализован вашим собственным CI/CD различными способами, так что это просто пример.Возможно, вам придется пробовать и получать ошибки при поиске собственных CI/CD конфигураций.

Например, простое описание сборки и развертывания с использованием OpenShift Pipeline Jenkins Plugin.Для получения более подробной информации см. здесь . После отправки уведомления о результатах задания настраивается с помощью Очистка и уведомления .

apiVersion: v1
kind: BuildConfig
metadata:
  labels:
    name: your-pipeline
  name: your-pipeline
spec:
  runPolicy: Serial
  strategy:
    jenkinsPipelineStrategy:
      jenkinsfile: |-
        node(''){
          stage('some unit tests') {
            sh 'git clone https://github.com/yourproject/yourrepo'
            sh 'python -m unittest tests/unittest_start_and_result_mailing.py'
          }
          stage('Build using your-yourconfig'){
              openshiftBuild(namespace: 'your-project', bldCfg: 'your-buildconfig', showBuildLogs: 'true')
          }
          stage('Deployment using your-deploymentconfig'){
              openshiftDeploy(namespace: 'your-project', depCfg: 'your-deploymentconfig')
          }
          stage('Verify Deployment status'){
              openshiftVerifyDeployment(namespace: 'your-project', depCfg: 'your-deploymentconfig', verifyReplicaCount: 'true')
          }
        }
        post {
          always {
            echo 'One way or another, I have finished'
            deleteDir() /* clean up our workspace */
          }
          success {
            echo 'I succeeeded!'
          }
          unstable {
            echo 'I am unstable :/'
          }
          failure {
            echo 'I failed :('
          }
          changed {
            echo 'Things were different before...'
          }
        }
    type: JenkinsPipeline
  triggers:
  - github:
      secret: gitsecret
    type: GitHub
  - generic:
      secret: genericsecret
    type: Generic

Надеюсь, это поможет вам.

...