Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech> Reviewed-on: https://git.avroid.tech/DevOps/jenkins-shared-lib/pulls/54
354 lines
8.2 KiB
Groovy
354 lines
8.2 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 jsNativeBuildTemplate = """
|
|
apiVersion: v1
|
|
kind: Pod
|
|
spec:
|
|
containers:
|
|
- name: linux
|
|
image: ${env.JENKINS_DOCKER_REGISTRY}/formal-models/jsn-build-linux:1.0
|
|
command:
|
|
- sleep
|
|
args:
|
|
- 99d
|
|
resources:
|
|
limits:
|
|
cpu: 30
|
|
memory: 128Gi
|
|
requests:
|
|
cpu: 30
|
|
memory: 128Gi
|
|
imagePullSecrets:
|
|
- name: ${env.JENKINS_K8S_HARBOR_SECRET}
|
|
"""
|
|
|
|
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-2
|
|
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.0.0.60-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 containerAuroraTemplate = """
|
|
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
annotations:
|
|
container.apparmor.security.beta.kubernetes.io/aurora: unconfined
|
|
spec:
|
|
containers:
|
|
- name: aurora
|
|
image: ${env.JENKINS_DOCKER_REGISTRY}/container/container-build-aurora:5.1.3.85-1
|
|
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 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.2
|
|
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.4
|
|
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.5
|
|
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
|
|
case 'jsNative':
|
|
return jsNativeBuildTemplate
|
|
}
|
|
}
|