2026-01-10 05:01:17 -03:00
|
|
|
pipeline {
|
|
|
|
|
agent {
|
|
|
|
|
kubernetes {
|
|
|
|
|
yaml """
|
|
|
|
|
apiVersion: v1
|
|
|
|
|
kind: Pod
|
|
|
|
|
spec:
|
|
|
|
|
restartPolicy: Never
|
|
|
|
|
serviceAccountName: jenkins
|
|
|
|
|
nodeSelector:
|
|
|
|
|
hardware: rpi5
|
|
|
|
|
node-role.kubernetes.io/worker: "true"
|
|
|
|
|
containers:
|
|
|
|
|
- name: git
|
|
|
|
|
image: alpine/git:2.47.1
|
|
|
|
|
command:
|
|
|
|
|
- cat
|
|
|
|
|
tty: true
|
|
|
|
|
- name: kaniko
|
2026-01-10 05:22:27 -03:00
|
|
|
image: gcr.io/kaniko-project/executor:v1.23.2-debug
|
2026-01-10 05:01:17 -03:00
|
|
|
command:
|
|
|
|
|
- /busybox/cat
|
|
|
|
|
tty: true
|
|
|
|
|
resources:
|
|
|
|
|
requests:
|
|
|
|
|
cpu: "500m"
|
|
|
|
|
memory: "1Gi"
|
|
|
|
|
limits:
|
|
|
|
|
cpu: "1500m"
|
|
|
|
|
memory: "2Gi"
|
|
|
|
|
"""
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
parameters {
|
|
|
|
|
string(name: 'HARBOR_REPO', defaultValue: 'registry.bstein.dev/monitoring/data-prepper', description: 'Docker repository for Data Prepper')
|
|
|
|
|
string(name: 'IMAGE_TAG', defaultValue: '2.8.0', description: 'Image tag to publish')
|
|
|
|
|
booleanParam(name: 'PUSH_LATEST', defaultValue: true, description: 'Also push the latest tag')
|
|
|
|
|
}
|
|
|
|
|
stages {
|
|
|
|
|
stage('Checkout') {
|
|
|
|
|
steps {
|
|
|
|
|
container('git') {
|
|
|
|
|
checkout scm
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
stage('Build & Push') {
|
|
|
|
|
steps {
|
|
|
|
|
container('kaniko') {
|
|
|
|
|
withCredentials([usernamePassword(credentialsId: 'harbor-robot', usernameVariable: 'HARBOR_USERNAME', passwordVariable: 'HARBOR_PASSWORD')]) {
|
|
|
|
|
sh '''
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
mkdir -p /kaniko/.docker
|
|
|
|
|
ref_host="$(echo "${HARBOR_REPO}" | cut -d/ -f1)"
|
|
|
|
|
auth="$(printf "%s:%s" "${HARBOR_USERNAME}" "${HARBOR_PASSWORD}" | base64 | tr -d '\\n')"
|
|
|
|
|
cat > /kaniko/.docker/config.json <<EOF
|
|
|
|
|
{
|
|
|
|
|
"auths": {
|
|
|
|
|
"${ref_host}": {
|
|
|
|
|
"auth": "${auth}"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
EOF
|
|
|
|
|
dest_args="--destination ${HARBOR_REPO}:${IMAGE_TAG}"
|
|
|
|
|
if [ "${PUSH_LATEST}" = "true" ]; then
|
|
|
|
|
dest_args="${dest_args} --destination ${HARBOR_REPO}:latest"
|
|
|
|
|
fi
|
|
|
|
|
/kaniko/executor \
|
|
|
|
|
--context "${WORKSPACE}" \
|
|
|
|
|
--dockerfile "${WORKSPACE}/dockerfiles/Dockerfile.data-prepper" \
|
|
|
|
|
--verbosity info \
|
|
|
|
|
${dest_args}
|
|
|
|
|
'''
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|