refactor: feat #7441 Migration to kube #10

Merged
guillermo merged 2 commits from 7441-migrationToKube into master 2024-05-28 05:10:50 +00:00
2 changed files with 28 additions and 25 deletions

47
Jenkinsfile vendored
View File

@ -4,48 +4,51 @@ pipeline {
agent any agent any
environment { environment {
PROJECT_NAME = 'printnatura' PROJECT_NAME = 'printnatura'
STACK_NAME = "${env.PROJECT_NAME}"
} }
stages { stages {
stage('Checkout') { stage('Setup') {
steps { steps {
setEnv() echo "NODE_NAME: ${env.NODE_NAME}"
echo "WORKSPACE: ${env.WORKSPACE}"
} }
} }
stage('Container') { stage('Build') {
when { when {
anyOf { branch 'master'
branch 'test'
branch 'master'
}
} }
environment { environment {
CREDS = credentials('docker-registry') CREDENTIALS = credentials('docker-registry')
} }
steps { steps {
sh 'docker login --username $CREDS_USR --password $CREDS_PSW $REGISTRY' script {
sh 'docker-compose build --build-arg BUILD_ID=$BUILD_ID --parallel' def packageJson = readJSON file: 'package.json'
sh 'docker-compose push' env.VERSION = packageJson.version
}
dockerBuild()
} }
} }
stage('Deploy') { stage('Deploy') {
when { when {
anyOf { branch 'master'
guillermo marked this conversation as resolved Outdated
Outdated
Review

Hacer push también de la imagen etiquetada con la versión.

Desplegar la nueva imagen en Kubernetes, utilizar como ejemplo la stage Deploy del Jenkinsfile del proyecto vn-autoconfig.

Referencias:

Hacer _push_ también de la imagen etiquetada con la versión. Desplegar la nueva imagen en Kubernetes, utilizar como ejemplo la _stage_ `Deploy` del _Jenkinsfile_ del proyecto `vn-autoconfig`. Referencias: - https://gitea.verdnatura.es/verdnatura/vn-autoconfig/src/branch/master/Jenkinsfile#L30 - https://redmine.verdnatura.es/issues/7442
branch 'test'
branch 'master'
}
}
environment {
DOCKER_HOST = "${env.SWARM_HOST}"
CUPS = credentials('printnatura')
} }
steps { steps {
sh "docker stack deploy --with-registry-auth --compose-file docker-compose.yml ${env.STACK_NAME}" script {
def packageJson = readJSON file: 'package.json'
env.VERSION = packageJson.version
}
withKubeConfig([
serverUrl: "$KUBERNETES_API",
credentialsId: 'kubernetes',
namespace: 'printnatura'
]) {
sh 'kubectl set image deployment/printnatura printnatura=registry.verdnatura.es/printnatura:$VERSION'
}
} }
} }
} }
post { post {
unsuccessful { always {
setEnv()
sendEmail() sendEmail()
} }
} }

View File

@ -1,7 +1,7 @@
version: '3.7' version: '3.7'
services: services:
main: main:
image: registry.verdnatura.es/printnatura:latest image: registry.verdnatura.es/printnatura:${VERSION:?}
build: build:
context: . context: .
dockerfile: Dockerfile dockerfile: Dockerfile
@ -26,7 +26,7 @@ services:
configs: configs:
config: config:
external: true external: true
name: printnatura_config name: printnatura-config
cups: cups:
external: true external: true
name: printnatura_cups name: printnatura-cups