3
0

k3sDeploy.groovy 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. def applyConfigMapEnv(Object SERVICE, Object K3S, String configMapPath='projdir/configmap-env') {
  2. configmap_env_name = "${SERVICE.name}${SERVICE.version}-env"
  3. configmap_env = 'coresvc-configmap-env.yaml'
  4. sh "/k3s/kubectl create configmap ${configmap_env_name} --dry-run=client --from-env-file=${configMapPath} -o yaml > ${configmap_env}"
  5. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_env}"
  6. }
  7. def applyConfigMap(Object SERVICE, Object K3S, String configMapPath = './configmap/') {
  8. configmap_name = "${SERVICE.name}${SERVICE.version}-config"
  9. configmap_file = "${SERVICE.name}-configmap.yaml"
  10. sh "/k3s/kubectl create configmap ${configmap_name} --dry-run=client --from-file=${configMapPath} -o yaml > ${configmap_file}"
  11. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f ${configmap_file}"
  12. }
  13. def applyDeployment(Object SERVICE, Object K3S, Object DOCKER,
  14. String release, String COMMIT_SHA, String base_branch, String args) {
  15. // NO configmap_file
  16. sh """cat > deployment.yml<<EOF
  17. apiVersion: apps/v1
  18. kind: Deployment
  19. metadata:
  20. name: ${SERVICE.name}${SERVICE.version}
  21. namespace: default
  22. spec:
  23. selector:
  24. matchLabels:
  25. app: ${SERVICE.name}${SERVICE.version}
  26. release: ${release}
  27. template:
  28. metadata:
  29. labels:
  30. app: ${SERVICE.name}${SERVICE.version}
  31. release: ${release}
  32. annotations:
  33. commit-sha: "${COMMIT_SHA}"
  34. spec:
  35. imagePullSecrets:
  36. - name: ${K3S.pull_secretId}
  37. containers:
  38. - name: ${SERVICE.name}${SERVICE.version}
  39. image: ${DOCKER.registry}/${DOCKER.image}:${base_branch}-${env.BUILD_NUMBER}
  40. command: ["java"]
  41. args: ${args}
  42. resources:
  43. limits:
  44. cpu: ${K3S.cpu_limits}
  45. requests:
  46. cpu: ${K3S.cpu_requests}
  47. readinessProbe:
  48. httpGet:
  49. path: ${SERVICE.health}
  50. port: 80
  51. initialDelaySeconds: 15
  52. periodSeconds: 30
  53. failureThreshold: 3
  54. ports:
  55. - name: http
  56. containerPort: 80
  57. envFrom:
  58. - configMapRef:
  59. name: ${configmap_env_name}
  60. EOF
  61. """
  62. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f deployment.yml"
  63. }
  64. def applyDeploymentWithConfig(Object SERVICE, Object K3S, Object DOCKER,
  65. String release, String COMMIT_SHA, String base_branch, String args) {
  66. // else NEED to import configmap_file
  67. sh """cat > deployment.yml<<EOF
  68. apiVersion: apps/v1
  69. kind: Deployment
  70. metadata:
  71. name: ${SERVICE.name}${SERVICE.version}
  72. namespace: default
  73. spec:
  74. selector:
  75. matchLabels:
  76. app: ${SERVICE.name}${SERVICE.version}
  77. release: ${release}
  78. template:
  79. metadata:
  80. labels:
  81. app: ${SERVICE.name}${SERVICE.version}
  82. release: ${release}
  83. annotations:
  84. commit-sha: "${COMMIT_SHA}"
  85. spec:
  86. imagePullSecrets:
  87. - name: ${K3S.pull_secretId}
  88. containers:
  89. - name: ${SERVICE.name}${SERVICE.version}
  90. image: ${DOCKER.registry}/${DOCKER.image}:${base_branch}-${env.BUILD_NUMBER}
  91. command: ["java"]
  92. args: ${args}
  93. resources:
  94. limits:
  95. cpu: ${K3S.cpu_limits}
  96. requests:
  97. cpu: ${K3S.cpu_requests}
  98. readinessProbe:
  99. httpGet:
  100. path: /health
  101. port: 80
  102. initialDelaySeconds: 15
  103. periodSeconds: 30
  104. failureThreshold: 3
  105. ports:
  106. - name: http
  107. containerPort: 80
  108. envFrom:
  109. - configMapRef:
  110. name: ${configmap_env_name}
  111. volumeMounts:
  112. - name: config-volume
  113. mountPath: /app/configs
  114. volumes:
  115. - name: config-volume
  116. configMap:
  117. name: ${configmap_name}
  118. EOF
  119. """
  120. sh "/k3s/kubectl --kubeconfig ${env.WORKSPACE}/${K3S.kubeconfig} apply -f deployment.yml"
  121. }
  122. return this