Files
homelab-jenkins-shared-libs/vars/homelabK8sAgent.groovy
2026-04-26 13:43:49 +07:00

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()
}