我正在尝试为 kuberenetes 从属代理构建一个共享库。我正在遵循詹金斯共享库结构。任何人请帮助我设置这个库。
我的src/com/k8s/PodTemplatesLib.groovy如下:
package com.k8s
class PodTemplatesLib implements Serializable {
def steps
def PodTemplatesLib(steps) {this.steps = steps}
public void mavenTemplate(body) {
podTemplate(
yaml: libraryResource('KubernetesPod.yaml'),
cloud: 'K8Cluster',
label: 'eks-dev-slaves'
) {
body.call()
}
}
}
我对应的Jenkinsfile在vars\K8sAgentLib.groovy下
@Library('k8sagent') _
import com.k8s.PodTemplatesLib
def call(body){
def k8s_helper = new PodTemplatesLib(this)
def pipelineParams= [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = pipelineParams
body()
my_node="eks-dev-slaves"
k8s_helper.mavenTemplate {
node(my_node) {
container('k8client') {
sh '''
echo K8S_CONTAINER_ENV_VAR = ${CONTAINER_ENV_VAR}
kubectl version --short
kubectl get ns --kubeconfig=/app/config
'''
}
}
}
}
通过上述配置,kubernetes Slave 不会创建也不会调用。这里的任何专家都可以帮助我编写库结构来调用代理。