Files
jenkins-shared-lib/vars/getPodTemplate.groovy
Aleksandr Vodyanov 8e511650ea [DO-1681] update image version (!73)
Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech>
Reviewed-on: https://git.avroid.tech/DevOps/jenkins-shared-lib/pulls/73
Reviewed-by: Rustam Tagaev <rustam.tagaev@avroid.team>
Reviewed-by: Ilya Zaharenkov <ilya.zaharenkov@avroid.team>
2025-03-12 13:29:11 +03:00

298 lines
6.9 KiB
Groovy

def call(String podTemplateName) {
Object alpineTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: linux
image: ${env.JENKINS_DOCKER_REGISTRY}/docker-hub-proxy/library/alpine:3.18.5
command:
- sleep
args:
- 99d
resources:
limits:
cpu: 100m
memory: 64Mi
requests:
cpu: 100m
memory: 64Mi
"""
Object tavroAuroraV4Template = """
apiVersion: v1
kind: Pod
metadata:
annotations:
container.apparmor.security.beta.kubernetes.io/aurora: unconfined
spec:
containers:
- name: aurora
image: ${env.JENKINS_DOCKER_REGISTRY}/tavro/tavro-build-aurora:4.0.2.249-3
securityContext:
runAsUser: 1000
runAsGroup: 1000
capabilities:
add:
- SYS_ADMIN
tty: true
resources:
limits:
cpu: 15
memory: 128Gi
requests:
cpu: 15
memory: 32Gi
volumeMounts:
- mountPath: ${global.AURORA_CUSTOM_WORKSPACE} # Because home path removed within chroot
name: "workspace-volume"
ttyEnabled: true
imagePullSecrets:
- name: ${env.JENKINS_K8S_HARBOR_SECRET}
"""
Object tavroAuroraV5Template = """
apiVersion: v1
kind: Pod
metadata:
annotations:
container.apparmor.security.beta.kubernetes.io/aurora: unconfined
spec:
containers:
- name: aurora
image: ${env.JENKINS_DOCKER_REGISTRY}/tavro/tavro-build-aurora:5.1.3.85-1
securityContext:
runAsUser: 1000
runAsGroup: 1000
capabilities:
add:
- SYS_ADMIN
tty: true
resources:
limits:
cpu: 15
memory: 32Gi
requests:
cpu: 15
memory: 32Gi
volumeMounts:
- mountPath: ${global.AURORA_CUSTOM_WORKSPACE} # Because home path removed within chroot
name: "workspace-volume"
ttyEnabled: true
imagePullSecrets:
- name: ${env.JENKINS_K8S_HARBOR_SECRET}
"""
Object containerLinuxTemplate = """
apiVersion: v1
kind: Pod
metadata:
annotations:
container.apparmor.security.beta.kubernetes.io/linux: unconfined
seccomp.security.alpha.kubernetes.io/linux: unconfined
spec:
containers:
- name: linux
securityContext:
runAsUser: 1000
runAsGroup: 1000
capabilities:
add:
- SYS_ADMIN
image: ${env.JENKINS_DOCKER_REGISTRY}/container/container-build-linux:1.3
command:
- sleep
args:
- 99d
resources:
limits:
cpu: 30
memory: 256Gi
requests:
cpu: 30
memory: 64Gi
imagePullSecrets:
- name: ${env.JENKINS_K8S_HARBOR_SECRET}
"""
Object sonarCubeScannerTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: sonar-scanner
image: ${env.JENKINS_DOCKER_REGISTRY}/docker-hub-proxy/sonarsource/sonar-scanner-cli:5.0.1
command: ["bash"]
securityContext:
runAsUser: 1000
runAsGroup: 1000
tty: true
resources:
limits:
cpu: 7
memory: 16Gi
requests:
cpu: 7
memory: 16Gi
ttyEnabled: true
volumeMounts:
- mountPath: ${global.AURORA_CUSTOM_WORKSPACE} # Because home path removed within chroot
name: "workspace-volume"
"""
Object tavroLinuxTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: linux
image: ${env.JENKINS_DOCKER_REGISTRY}/tavro/tavro-build-linux:1.4-qt5.6
securityContext:
runAsUser: 1000
runAsGroup: 1000
command:
- sleep
args:
- 99d
resources:
limits:
cpu: 15
memory: 32Gi
requests:
cpu: 15
memory: 32Gi
imagePullSecrets:
- name: ${env.JENKINS_K8S_HARBOR_SECRET}
"""
Object tavroLinuxTemplateQT_5_15 = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: linux
image: ${env.JENKINS_DOCKER_REGISTRY}/tavro/tavro-build-linux:1.6
securityContext:
runAsUser: 1000
runAsGroup: 1000
command:
- sleep
args:
- 99d
resources:
limits:
cpu: 15
memory: 32Gi
requests:
cpu: 15
memory: 32Gi
imagePullSecrets:
- name: ${env.JENKINS_K8S_HARBOR_SECRET}
"""
Object avroliteLinuxTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: linux
image: ${env.JENKINS_DOCKER_REGISTRY}/webengine/webengine-build-linux:1.6
securityContext:
runAsUser: 1000
runAsGroup: 1000
command:
- sleep
args:
- 99d
resources:
limits:
cpu: 15
memory: 32Gi
requests:
cpu: 15
memory: 32Gi
imagePullSecrets:
- name: ${env.JENKINS_K8S_HARBOR_SECRET}
"""
Object flatpakTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: linux
image: ${env.JENKINS_DOCKER_REGISTRY}/all/all-build-flatpak:org-kde-5.15-23.08
securityContext:
privileged: true
runAsUser: 1000
runAsGroup: 1000
command:
- sleep
args:
- 99d
resources:
limits:
cpu: 15
memory: 32Gi
requests:
cpu: 15
memory: 32Gi
imagePullSecrets:
- name: ${env.JENKINS_K8S_HARBOR_SECRET}
"""
Object pythonBuildTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: python-build
image: ${env.JENKINS_DOCKER_REGISTRY}/devops/python-build:3.12.6
tty: true
securityContext:
privileged: true
runAsUser: 1000
runAsGroup: 1000
command:
- /bin/bash
resources:
limits:
cpu: 300m
memory: 1024Mi
requests:
cpu: 300m
memory: 512Mi
imagePullPolicy: Always
imagePullSecrets:
- name: ${env.JENKINS_K8S_HARBOR_SECRET}
"""
switch (podTemplateName) {
case 'alpine':
return alpineTemplate
case 'tavroAuroraV4':
return tavroAuroraV4Template
case 'tavroAuroraV5':
return tavroAuroraV5Template
case 'containerAurora':
return containerAuroraTemplate
case 'containerAuroraTest':
return containerAuroraTestTemplate
case 'containerLinux':
return containerLinuxTemplate
case "sonarCubeScanner":
return sonarCubeScannerTemplate
case 'tavroLinux':
return tavroLinuxTemplate
case 'tavroLinux_qt_5_15':
return tavroLinuxTemplateQT_5_15
case 'avroliteLinux':
return avroliteLinuxTemplate
case 'flatpak':
return flatpakTemplate
case 'pythonBuild':
return pythonBuildTemplate
}
}