def applyConfigMapEnv(Object SERVICE, Object K3S, String configMapPath='projdir/configmap-env.ini', String defaultNS='default') { println "applying k3s configmap environment from ${configMapPath}" configmap_env_name = "${SERVICE.name}${SERVICE.version}-env" configmap_env = "${SERVICE.name}${SERVICE.version}-env.yaml" sh "/k3s/kubectl create configmap ${configmap_env_name} --dry-run=client --from-env-file=${configMapPath} -o yaml > ${configmap_env}" sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_env} -n ${defaultNS}" return configmap_env_name } def applyCanaryConfigMapEnv(Object SERVICE, Object K3S, String version, String configMapPath='projdir/configmap-env.ini', String defaultNS='default') { println "applying k3s configmap environment from ${configMapPath}" def configmap_env_name = "${SERVICE.name}${SERVICE.version}-${version}-env" def configmap_env = "${SERVICE.name}${SERVICE.version}-${version}-env.yaml" println "create configmap ${configmap_env_name} > ${configmap_env}" sh "/k3s/kubectl create configmap ${configmap_env_name} --dry-run=client --from-env-file=${configMapPath} -o yaml > ${configmap_env}" sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_env} -n ${defaultNS}" print "return configmap_env_name: ${configmap_env_name}" return configmap_env_name } def applyConfigMapConfig(Object SERVICE, Object K3S, String configMapPath = './configmap/', String defaultNS='default') { println "applying k3s configmap config from ${configMapPath}" configmap_name = "${SERVICE.name}${SERVICE.version}-config" configmap_file = "${SERVICE.name}-configmap.yaml" sh "/k3s/kubectl create configmap ${configmap_name} --dry-run=client --from-file=${configMapPath} -o yaml > ${configmap_file}" sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_file} -n ${defaultNS}" return configmap_name } def applyCanaryConfigMapConfig(Object SERVICE, Object K3S, String version, String configMapPath = './configmap/', String defaultNS='default') { println "applying k3s configmap config from ${configMapPath}" configmap_name = "${SERVICE.name}${SERVICE.version}-${version}-config" configmap_file = "${SERVICE.name}-${version}-configmap.yaml" sh "/k3s/kubectl create configmap ${configmap_name} --dry-run=client --from-file=${configMapPath} -o yaml > ${configmap_file}" sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_file} -n ${defaultNS}" return configmap_name } def generateDeployment(Map kvs, String template="deployment.yaml") { if (!fileExists(template)) { println "skip generating deployment.yaml, file ${template} not exists" return } println "generating k8s deployment... replace Key/Value in file: ${template}." kvs.each { def key, val -> value = val .replace('/', '\\/') .replace('"', '\\"') sh "sed -i \"s/${key}/${value}/g\" ${template}" } } def generateCanaryDeployment(Map kvs, String version, String template="deployment.yaml") { /** * 从$template生成deployment-${version}.yaml */ if (!fileExists(template)) { println "skip generating deployment.yaml, file ${template} not exists" return } def outputFile = "deployment-${version}.yaml" println "generating k8s deployment(${version}) from ${template} -> ${outputFile}" sh "cp ${template} ${outputFile}" println "generating k8s deployment(${version})... replace Key/Value in file: ${template}." kvs.each { def key, val -> value = val .replace('/', '\\/') .replace('"', '\\"') sh "sed -i \"s/${key}/${value}/g\" ${outputFile}" } return outputFile } def generateService(Map kvs, String template="service.yaml") { if (!fileExists(template)) { println "skip generating service.yaml, file ${template} not exists" return } println "generating k8s service.yaml... replace Key/Value in file: ${template}." kvs.each { def key, val -> print(val) value = val .replace('/', '\\/') .replace('"', '\\"') sh "sed -i \"s/${key}/${value}/g\" ${template}" } } def generateCanaryService(Map kvs, String version, String template="service.yaml") { /** * 从$template生成service-${version}.yaml */ if (!fileExists(template)) { println "skip generating service.yaml, file ${template} not exists" return } def outputFile = "service-${version}.yaml" sh "cp ${template} ${outputFile}" println "generating k8s service-${version}.yaml... replace Key/Value in file: ${template}." kvs.each { def key, val -> print(val) value = val .replace('/', '\\/') .replace('"', '\\"') sh "sed -i \"s/${key}/${value}/g\" ${outputFile}" } return outputFile } def applyDeployment(Object K3S, String deployment="deployment.yaml", String defaultNS='default') { if (!fileExists(deployment)) { println "ignore, file ${deployment} not exists" return } println "applying k8s deployment file: ${deployment} ..." sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${deployment} -n ${defaultNS}" } def applyService(K3S, String service="service.yaml", String defaultNS='default') { if (!fileExists(service)) { println "ignore, file ${service} not exists" return } println "applying k8s deployment file: ${service} ..." sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${service} -n ${defaultNS}" } return this