k3sUtil.groovy 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. def applyConfigMapEnv(Object SERVICE, Object K3S, String configMapPath='projdir/configmap-env.ini', String defaultNS='default') {
  2. println "applying k3s configmap environment from ${configMapPath}"
  3. configmap_env_name = "${SERVICE.name}${SERVICE.version}-env"
  4. configmap_env = "${SERVICE.name}${SERVICE.version}-env.yaml"
  5. sh "/k3s/kubectl create configmap ${configmap_env_name} --dry-run=client --from-env-file=${configMapPath} -o yaml > ${configmap_env}"
  6. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_env} -n ${defaultNS}"
  7. return configmap_env_name
  8. }
  9. def applyCanaryConfigMapEnv(Object SERVICE, Object K3S, String version,
  10. String configMapPath='projdir/configmap-env.ini', String defaultNS='default') {
  11. println "applying k3s configmap environment from ${configMapPath}"
  12. def configmap_env_name = "${SERVICE.name}${SERVICE.version}-${version}-env"
  13. def configmap_env = "${SERVICE.name}${SERVICE.version}-${version}-env.yaml"
  14. println "create configmap ${configmap_env_name} > ${configmap_env}"
  15. sh "/k3s/kubectl create configmap ${configmap_env_name} --dry-run=client --from-env-file=${configMapPath} -o yaml > ${configmap_env}"
  16. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_env} -n ${defaultNS}"
  17. print "return configmap_env_name: ${configmap_env_name}"
  18. return configmap_env_name
  19. }
  20. def applyConfigMapConfig(Object SERVICE, Object K3S, String configMapPath = './configmap/', String defaultNS='default') {
  21. println "applying k3s configmap config from ${configMapPath}"
  22. configmap_name = "${SERVICE.name}${SERVICE.version}-config"
  23. configmap_file = "${SERVICE.name}-configmap.yaml"
  24. sh "/k3s/kubectl create configmap ${configmap_name} --dry-run=client --from-file=${configMapPath} -o yaml > ${configmap_file}"
  25. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_file} -n ${defaultNS}"
  26. return configmap_name
  27. }
  28. def applyCanaryConfigMapConfig(Object SERVICE, Object K3S, String version,
  29. String configMapPath = './configmap/', String defaultNS='default') {
  30. println "applying k3s configmap config from ${configMapPath}"
  31. configmap_name = "${SERVICE.name}${SERVICE.version}-${version}-config"
  32. configmap_file = "${SERVICE.name}-${version}-configmap.yaml"
  33. sh "/k3s/kubectl create configmap ${configmap_name} --dry-run=client --from-file=${configMapPath} -o yaml > ${configmap_file}"
  34. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_file} -n ${defaultNS}"
  35. return configmap_name
  36. }
  37. def generateDeployment(Map kvs, String template="deployment.yaml") {
  38. if (!fileExists(template)) {
  39. println "skip generating deployment.yaml, file ${template} not exists"
  40. return
  41. }
  42. println "generating k8s deployment... replace Key/Value in file: ${template}."
  43. kvs.each {
  44. def key, val ->
  45. value = val
  46. .replace('/', '\\/')
  47. .replace('"', '\\"')
  48. sh "sed -i \"s/${key}/${value}/g\" ${template}"
  49. }
  50. }
  51. def generateCanaryDeployment(Map kvs, String version, String template="deployment.yaml") {
  52. /**
  53. * 从$template生成deployment-${version}.yaml
  54. */
  55. if (!fileExists(template)) {
  56. println "skip generating deployment.yaml, file ${template} not exists"
  57. return
  58. }
  59. def outputFile = "deployment-${version}.yaml"
  60. println "generating k8s deployment(${version}) from ${template} -> ${outputFile}"
  61. sh "cp ${template} ${outputFile}"
  62. println "generating k8s deployment(${version})... replace Key/Value in file: ${template}."
  63. kvs.each {
  64. def key, val ->
  65. value = val
  66. .replace('/', '\\/')
  67. .replace('"', '\\"')
  68. sh "sed -i \"s/${key}/${value}/g\" ${outputFile}"
  69. }
  70. return outputFile
  71. }
  72. def generateService(Map kvs, String template="service.yaml") {
  73. if (!fileExists(template)) {
  74. println "skip generating service.yaml, file ${template} not exists"
  75. return
  76. }
  77. println "generating k8s service.yaml... replace Key/Value in file: ${template}."
  78. kvs.each {
  79. def key, val ->
  80. print(val)
  81. value = val
  82. .replace('/', '\\/')
  83. .replace('"', '\\"')
  84. sh "sed -i \"s/${key}/${value}/g\" ${template}"
  85. }
  86. }
  87. def generateCanaryService(Map kvs, String version, String template="service.yaml") {
  88. /**
  89. * 从$template生成service-${version}.yaml
  90. */
  91. if (!fileExists(template)) {
  92. println "skip generating service.yaml, file ${template} not exists"
  93. return
  94. }
  95. def outputFile = "service-${version}.yaml"
  96. sh "cp ${template} ${outputFile}"
  97. println "generating k8s service-${version}.yaml... replace Key/Value in file: ${template}."
  98. kvs.each {
  99. def key, val ->
  100. print(val)
  101. value = val
  102. .replace('/', '\\/')
  103. .replace('"', '\\"')
  104. sh "sed -i \"s/${key}/${value}/g\" ${outputFile}"
  105. }
  106. return outputFile
  107. }
  108. def applyDeployment(Object K3S, String deployment="deployment.yaml") {
  109. if (!fileExists(deployment)) {
  110. println "ignore, file ${deployment} not exists"
  111. return
  112. }
  113. println "applying k8s deployment file: ${deployment} ..."
  114. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${deployment}"
  115. }
  116. def applyService(K3S, String service="service.yaml") {
  117. if (!fileExists(service)) {
  118. println "ignore, file ${service} not exists"
  119. return
  120. }
  121. println "applying k8s deployment file: ${service} ..."
  122. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${service}"
  123. }
  124. return this