O Openshift possui integração nativa com o Jenkins, o que nos permite criar pipelines de forma simples.
Com o objetivo é utilizar o pipeline, devemos desabilitar o deploy automático nas configurações do DeploymentConfig
.
Para isso, precisamos criar um BuildConfig.
Crie um arquivo chamado jenkins-pipeline.groovy
dentro do seu repositório do github. Para isso, siga o procedimento, já demonstrado nos labs anteriores, de criação do novo arquivo pela Web Console do Github. O conteúdo do arquivo segue abaixo:
node('maven') {
stage('build') {
echo 'building app :)'
openshiftBuild(buildConfig: 'workshop-ocp', showBuildLogs: 'true')
}
stage('verify') {
echo 'dummy verification....'
}
stage('deploy') {
input 'Manual Approval'
openshiftDeploy(deploymentConfig: 'workshop-ocp')
}
stage('promoting to QA') {
echo 'fake stage...'
sleep 5
}
}
No final, seu repositório deve estar conforme imagem abaixo:
Você também pode fazer essa passo pela linha de comando do git.
Antes de continuar, precisamos fazer push para o repositório do github:
git add .
git commit -m "criado jenkinsfile"
git push origin master
Pela console, clique em Add to Project > Import YAML / JSON
e cole o conteúdo abaixo:
AVISO: Repare que existe um campo que deve ser alterado com o nome do usuário do github.
kind: "BuildConfig"
apiVersion: "v1"
metadata:
name: "workshop-pipeline"
annotations:
pipeline.alpha.openshift.io/uses: '[{"name": "workshop-ocp", "kind": "DeploymentConfig"}]'
spec:
source:
type: "Git"
git:
uri: "http://github.com/<seu-usuario-do-github>/workshop-ocp.git"
strategy:
type: "JenkinsPipeline"
jenkinsPipelineStrategy:
jenkinsfilePath: "jenkins-pipeline.groovy"
No Openshift 3.7 siga os passos a seguir:
Depois cole o conteúdo do arquivo e altere o nome do usuário do github.
Clique em Create
Observe que logo ao fim da execução deste passo, o Jenkins (master/slave) será provisionado automaticamente no projeto em questão.
No menu lateral esquerdo, selecione a opção Builds
> Pipelines
e selecione a opção Start pipeline
Depois clique em Start pipeline
Você pode visualizar o log por meio da opção:
Quando você clicar no log, ele te pedirá para logar usando suas credenciais do Openshift.
Aceite as permissões
Quando seu pipeline estiver executando, ele ficará semelhante a imagem abaixo:
Depois de ter finalizado o seu pipeline, limpe seu ambiente rodando o comando:
oc delete all -l app=jenkins-persistent && oc delete bc workshop-pipeline
https://docs.openshift.com/container-platform/3.6/install_config/configuring_pipeline_execution.html
https://docs.openshift.com/container-platform/3.6/using_images/other_images/jenkins.html