44 lines
1.0 KiB
Groovy
44 lines
1.0 KiB
Groovy
/**
|
|
* Returns a K8s pod YAML string for use in agent { kubernetes { yaml ... } }
|
|
*
|
|
* config keys (all optional):
|
|
* nodeImage - default: node:18-slim
|
|
* harborRegistry - default: harbor-core.harbor.svc.cluster.local
|
|
* withTools - include alpine/git container, default: false
|
|
*/
|
|
def call(Map config = [:]) {
|
|
def nodeImage = config.nodeImage ?: 'node:18-slim'
|
|
def harborReg = config.harborRegistry ?: 'harbor-core.harbor.svc.cluster.local'
|
|
def withTools = config.withTools ?: false
|
|
|
|
def toolsBlock = withTools ? """
|
|
- name: tools
|
|
image: alpine/git
|
|
command:
|
|
- sleep
|
|
args:
|
|
- infinity""" : ""
|
|
|
|
return """
|
|
apiVersion: v1
|
|
kind: Pod
|
|
spec:
|
|
containers:
|
|
- name: node
|
|
image: ${nodeImage}
|
|
command:
|
|
- sleep
|
|
args:
|
|
- infinity
|
|
- name: docker
|
|
image: docker:dind
|
|
securityContext:
|
|
privileged: true
|
|
env:
|
|
- name: DOCKER_TLS_CERTDIR
|
|
value: ""
|
|
args:
|
|
- --insecure-registry=${harborReg}${toolsBlock}
|
|
""".stripIndent()
|
|
}
|