[DO-1378] add_new_pod (#49)

add couple pod templates and one method for jenkins class

Co-authored-by: Rustam Tagaev <rustam.tagaev@avroid.tech>
Reviewed-on: https://git.avroid.tech/DevOps/jenkins-shared-lib/pulls/49
Reviewed-by: Stanislav Gabenov <stanislav.gabenov@avroid.team>
Reviewed-by: Denis Patrakeev <denis.patrakeev@avroid.team>
Co-authored-by: Rustam Tagaev <rustam.tagaev@avroid.team>
Co-committed-by: Rustam Tagaev <rustam.tagaev@avroid.team>
This commit is contained in:
Rustam Tagaev
2024-12-09 13:38:16 +03:00
committed by Denis Patrakeev
parent b2e5b5e12f
commit 79a8b725ce
2 changed files with 76 additions and 0 deletions

View File

@@ -31,4 +31,13 @@ class Jenkins implements Serializable {
}
}
}
/**
* Get current username who run build
* @param script Script - jenkins context
* @return String - username
*/
static String GetCurrentBuildUser(Map args = [:]){
return args.script.currentBuild.getBuildCauses()[0].userId
}
}

View File

@@ -159,4 +159,71 @@ class PodTemplates implements Serializable {
}
}
public void helm(imageVersion='3.16.3', body) {
this.script.podTemplate(
serviceAccount: 'jenkins-deploy',
containers: [
this.script.containerTemplate(
alwaysPullImage: true,
name: 'helm',
image: "${registry}/docker-hub-proxy/alpine/helm:${imageVersion}",
envVars: [
this.script.containerEnvVar(key: 'HOME', value: '/home/jenkins'),
],
ttyEnabled: true,
command: "cat",
resourceRequestCpu: '100m',
resourceLimitCpu: '100m',
resourceRequestMemory: '256Mi',
resourceLimitMemory: '256Mi',
workingDir: '/jenkins',
),
],
instanceCap: 1,
showRawYaml: false,
volumes: [
this.script.emptyDirVolume(memory: false, mountPath: '/tmp'),
],
workspaceVolume: this.script.emptyDirWorkspaceVolume(false),
)
{
body.call()
}
}
public void kubectl(imageVersion='1.31.3', body) {
this.script.podTemplate(
serviceAccount: 'jenkins-deploy',
runAsUser: "0",
containers: [
this.script.containerTemplate(
alwaysPullImage: true,
name: 'kubectl',
image: "${registry}/docker-hub-proxy/bitnami/kubectl:${imageVersion}",
envVars: [
this.script.containerEnvVar(key: 'HOME', value: '/home/jenkins'),
],
ttyEnabled: true,
command: "cat",
resourceRequestCpu: '100m',
resourceLimitCpu: '100m',
resourceRequestMemory: '256Mi',
resourceLimitMemory: '256Mi',
workingDir: '/jenkins',
),
],
instanceCap: 1,
showRawYaml: false,
volumes: [
this.script.emptyDirVolume(memory: false, mountPath: '/tmp'),
],
workspaceVolume: this.script.emptyDirWorkspaceVolume(false),
)
{
body.call()
}
}
}