You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shenyu.apache.org by xi...@apache.org on 2023/05/04 12:55:51 UTC

[shenyu-helm-chart] branch main updated: chore: add helm test && refactor labels && add pod probes (#31)

This is an automated email from the ASF dual-hosted git repository.

xiaoyu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shenyu-helm-chart.git


The following commit(s) were added to refs/heads/main by this push:
     new c6161f9  chore: add helm test && refactor labels && add pod probes (#31)
c6161f9 is described below

commit c6161f98878486115ff88860008a53ac3e9efc81
Author: Bird <af...@gmail.com>
AuthorDate: Thu May 4 20:55:45 2023 +0800

    chore: add helm test && refactor labels && add pod probes (#31)
    
    Signed-off-by: Bird <af...@gmail.com>
---
 charts/shenyu/Chart.yaml                           |  2 +-
 charts/shenyu/templates/ConfigMap.yaml             |  5 +---
 charts/shenyu/templates/_helpers.tpl               | 21 +++++++++++++++++
 .../shenyu/templates/shenyu-admin-deployment.yaml  | 27 ++++++++++++++--------
 charts/shenyu/templates/shenyu-admin-hpa.yaml      |  7 ++----
 charts/shenyu/templates/shenyu-admin-ingress.yaml  |  5 +---
 charts/shenyu/templates/shenyu-admin-svc.yaml      |  8 ++-----
 .../templates/shenyu-bootstrap-deployment.yaml     | 25 ++++++++++++--------
 charts/shenyu/templates/shenyu-bootstrap-hpa.yaml  |  7 ++----
 .../shenyu/templates/shenyu-bootstrap-ingress.yaml |  5 +---
 charts/shenyu/templates/shenyu-bootstrap-svc.yaml  |  8 ++-----
 charts/shenyu/templates/tests/test-connection.yaml | 19 +++++++++++++++
 charts/shenyu/values.yaml                          |  4 +++-
 13 files changed, 87 insertions(+), 56 deletions(-)

diff --git a/charts/shenyu/Chart.yaml b/charts/shenyu/Chart.yaml
index 64b3dc3..bd26a43 100644
--- a/charts/shenyu/Chart.yaml
+++ b/charts/shenyu/Chart.yaml
@@ -2,7 +2,7 @@ apiVersion: v2
 name: shenyu
 description: Helm Chart for deploying Apache ShenYu in Kubernetes
 type: application
-version: 0.6.1
+version: 0.6.2
 appVersion: "2.5.1"
 icon: https://shenyu.apache.org/img/logo.png
 maintainers:
diff --git a/charts/shenyu/templates/ConfigMap.yaml b/charts/shenyu/templates/ConfigMap.yaml
index cfcc946..5867e36 100644
--- a/charts/shenyu/templates/ConfigMap.yaml
+++ b/charts/shenyu/templates/ConfigMap.yaml
@@ -4,10 +4,7 @@ metadata:
   namespace: {{.Release.Namespace}}
   name: {{ template "common.names.fullname" . }}-configmap
   labels:
-    "app.kubernetes.io/name": '{{ template "common.names.name" . }}'
-    "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-    "app.kubernetes.io/component": "shenyu-configmap"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "common.labels.standard" . | nindent 4 }}
 data:
   application-bootstrap.yml: |-
     {{- /* Put the whole application-bootstrap.yml here*/}}
diff --git a/charts/shenyu/templates/_helpers.tpl b/charts/shenyu/templates/_helpers.tpl
index 6a9e01e..4e61e8b 100644
--- a/charts/shenyu/templates/_helpers.tpl
+++ b/charts/shenyu/templates/_helpers.tpl
@@ -31,3 +31,24 @@
     {{- end }}
 {{- end }}
 {{- end -}}
+
+
+{{- define "shenyu.admin.labels" -}}
+{{ include "common.labels.standard" . }}
+app.kubernetes.io/component: shenyu-admin
+{{- end -}}
+
+{{- define "shenyu.admin.selectorLabels" -}}
+{{ include "common.labels.matchLabels" . }}
+app.kubernetes.io/component: shenyu-admin
+{{- end -}}
+
+{{- define "shenyu.bootstrap.labels" -}}
+{{ include "common.labels.standard" . }}
+app.kubernetes.io/component: shenyu-bootstrap
+{{- end -}}
+
+{{- define "shenyu.bootstrap.selectorLabels" -}}
+{{ include "common.labels.matchLabels" . }}
+app.kubernetes.io/component: shenyu-bootstrap
+{{- end -}}
diff --git a/charts/shenyu/templates/shenyu-admin-deployment.yaml b/charts/shenyu/templates/shenyu-admin-deployment.yaml
index 63807ec..e35c88f 100644
--- a/charts/shenyu/templates/shenyu-admin-deployment.yaml
+++ b/charts/shenyu/templates/shenyu-admin-deployment.yaml
@@ -5,23 +5,16 @@ metadata:
   namespace: {{ .Release.Namespace }}
   name: {{ template "common.names.fullname" . }}-admin
   labels:
-    "app.kubernetes.io/name": '{{ template "common.names.name" . }}-admin'
-    "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-    "app.kubernetes.io/component": "shenyu-admin"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.admin.labels" . | nindent 4 }}
 spec:
   selector:
     matchLabels:
-      "app.kubernetes.io/component": "shenyu-admin"
-      "app.kubernetes.io/instance": "{{ .Release.Name }}"
+      {{- include "shenyu.admin.selectorLabels" . | nindent 6 }}
   replicas: {{ .Values.admin.replicas }}
   template:
     metadata:
       labels:
-        "app.kubernetes.io/name": '{{ template "common.names.name" . }}-admin'
-        "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-        "app.kubernetes.io/component": "shenyu-admin"
-        "app.kubernetes.io/instance": "{{ .Release.Name }}"
+        {{- include "shenyu.admin.labels" . | nindent 8 }}
     spec:
       {{/* check if database type is valid */}}
       {{- $dataSourceTypeValid := has .Values.dataSource.active (list "h2" "mysql" "pg" "oracle") -}}
@@ -93,6 +86,20 @@ spec:
               value: {{ .Values.admin.javaOpts | quote }}
           resources:
             {{- toYaml .Values.admin.resources | nindent 12 }}
+          readinessProbe:
+            httpGet:
+              # todo change it to /actuator/health/readiness when shenyu-admin support it
+              path: /actuator/health
+              port: 9095
+            periodSeconds: 5
+            failureThreshold: 12
+          livenessProbe:
+            httpGet:
+              # todo change it to /actuator/health/liveness when shenyu-admin support it
+              path: /actuator/health
+              port: 9095
+            periodSeconds: 5
+            failureThreshold: 12
           volumeMounts:
           - name: shenyu-admin-config
             mountPath: /opt/shenyu-admin/conf/application.yml
diff --git a/charts/shenyu/templates/shenyu-admin-hpa.yaml b/charts/shenyu/templates/shenyu-admin-hpa.yaml
index 2538063..2bdbb95 100644
--- a/charts/shenyu/templates/shenyu-admin-hpa.yaml
+++ b/charts/shenyu/templates/shenyu-admin-hpa.yaml
@@ -5,10 +5,7 @@ metadata:
   namespace: {{ .Release.Namespace }}
   name: {{ template "common.names.fullname" . }}-admin
   labels:
-    "app.kubernetes.io/name": '{{ template "common.names.name" . }}-admin'
-    "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-    "app.kubernetes.io/component": "shenyu-admin"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.admin.labels" . | nindent 4 }}
 spec:
   scaleTargetRef:
     apiVersion: apps/v1
@@ -29,4 +26,4 @@ spec:
         name: memory
         targetAverageUtilization: {{ .Values.admin.autoscaling.targetMemoryUtilizationPercentage }}
     {{- end }}
-{{- end }}
\ No newline at end of file
+{{- end }}
diff --git a/charts/shenyu/templates/shenyu-admin-ingress.yaml b/charts/shenyu/templates/shenyu-admin-ingress.yaml
index 4eaff00..2b71fed 100644
--- a/charts/shenyu/templates/shenyu-admin-ingress.yaml
+++ b/charts/shenyu/templates/shenyu-admin-ingress.yaml
@@ -17,10 +17,7 @@ kind: Ingress
 metadata:
   name: {{ $fullName }}-admin
   labels:
-    "app.kubernetes.io/name": '{{ template "common.names.name" . }}-admin'
-    "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-    "app.kubernetes.io/component": "shenyu-admin"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.admin.labels" . | nindent 4 }}
   {{- with .Values.admin.ingress.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
diff --git a/charts/shenyu/templates/shenyu-admin-svc.yaml b/charts/shenyu/templates/shenyu-admin-svc.yaml
index 06ced5e..6392d6a 100644
--- a/charts/shenyu/templates/shenyu-admin-svc.yaml
+++ b/charts/shenyu/templates/shenyu-admin-svc.yaml
@@ -6,14 +6,10 @@ metadata:
   namespace: {{ .Release.Namespace }}
   name: {{ template "common.names.fullname" . }}-admin
   labels:
-    "app.kubernetes.io/name": '{{ template "common.names.name" . }}-admin'
-    "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-    "app.kubernetes.io/component": "shenyu-admin"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.admin.labels" . | nindent 4 }}
 spec:
   selector:
-    "app.kubernetes.io/component": "shenyu-admin"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.admin.selectorLabels" . | nindent 4 }}
   type: NodePort
   ports:
     - protocol: TCP
diff --git a/charts/shenyu/templates/shenyu-bootstrap-deployment.yaml b/charts/shenyu/templates/shenyu-bootstrap-deployment.yaml
index 28d9412..c402123 100644
--- a/charts/shenyu/templates/shenyu-bootstrap-deployment.yaml
+++ b/charts/shenyu/templates/shenyu-bootstrap-deployment.yaml
@@ -6,23 +6,16 @@ metadata:
   namespace: {{ .Release.Namespace }}
   name: {{ template "common.names.fullname" . }}-bootstrap
   labels:
-    "app.kubernetes.io/name": '{{ template "common.names.name" . }}-bootstrap'
-    "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-    "app.kubernetes.io/component": "shenyu-bootstrap"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.bootstrap.labels" . | nindent 4 }}
 spec:
   selector:
     matchLabels:
-      "app.kubernetes.io/component": "shenyu-bootstrap"
-      "app.kubernetes.io/instance": "{{ .Release.Name }}"
+      {{- include "shenyu.bootstrap.selectorLabels" . | nindent 6 }}
   replicas: {{ .Values.bootstrap.replicas }}
   template:
     metadata:
       labels:
-        "app.kubernetes.io/name": '{{ template "common.names.name" . }}-bootstrap'
-        "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-        "app.kubernetes.io/component": "shenyu-bootstrap"
-        "app.kubernetes.io/instance": "{{ .Release.Name }}"
+        {{- include "shenyu.bootstrap.labels" . | nindent 8 }}
     spec:
       volumes:
         - name: shenyu-bootstrap-config
@@ -43,6 +36,18 @@ spec:
               value: {{ .Values.bootstrap.javaOpts | quote }}
           resources:
             {{- toYaml .Values.bootstrap.resources | nindent 12 }}
+          readinessProbe:
+            httpGet:
+              path: /actuator/health/readiness
+              port: 9195
+            periodSeconds: 5
+            failureThreshold: 12
+          livenessProbe:
+            httpGet:
+              path: /actuator/health/liveness
+              port: 9195
+            periodSeconds: 5
+            failureThreshold: 12
           volumeMounts:
             - name: shenyu-bootstrap-config
               mountPath: /opt/shenyu-bootstrap/conf/application.yml
diff --git a/charts/shenyu/templates/shenyu-bootstrap-hpa.yaml b/charts/shenyu/templates/shenyu-bootstrap-hpa.yaml
index 174bdde..6f6a887 100644
--- a/charts/shenyu/templates/shenyu-bootstrap-hpa.yaml
+++ b/charts/shenyu/templates/shenyu-bootstrap-hpa.yaml
@@ -5,10 +5,7 @@ metadata:
   namespace: {{ .Release.Namespace }}
   name: {{ template "common.names.fullname" . }}-bootstrap
   labels:
-    "app.kubernetes.io/name": '{{ template "common.names.name" . }}-bootstrap'
-    "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-    "app.kubernetes.io/component": "shenyu-bootstrap"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.bootstrap.labels" . | nindent 4 }}
 spec:
   scaleTargetRef:
     apiVersion: apps/v1
@@ -29,4 +26,4 @@ spec:
         name: memory
         targetAverageUtilization: {{ .Values.bootstrap.autoscaling.targetMemoryUtilizationPercentage }}
     {{- end }}
-{{- end }}
\ No newline at end of file
+{{- end }}
diff --git a/charts/shenyu/templates/shenyu-bootstrap-ingress.yaml b/charts/shenyu/templates/shenyu-bootstrap-ingress.yaml
index 46169df..bb29782 100644
--- a/charts/shenyu/templates/shenyu-bootstrap-ingress.yaml
+++ b/charts/shenyu/templates/shenyu-bootstrap-ingress.yaml
@@ -17,10 +17,7 @@ kind: Ingress
 metadata:
   name: {{ $fullName }}-bootstrap
   labels:
-    "app.kubernetes.io/name": '{{ template "common.names.name" . }}-bootstrap'
-    "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-    "app.kubernetes.io/component": "shenyu-bootstrap"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.bootstrap.labels" . | nindent 4 }}
   {{- with .Values.bootstrap.ingress.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
diff --git a/charts/shenyu/templates/shenyu-bootstrap-svc.yaml b/charts/shenyu/templates/shenyu-bootstrap-svc.yaml
index 4bef437..bf6ff33 100644
--- a/charts/shenyu/templates/shenyu-bootstrap-svc.yaml
+++ b/charts/shenyu/templates/shenyu-bootstrap-svc.yaml
@@ -6,14 +6,10 @@ metadata:
   namespace: {{ .Release.Namespace }}
   name: {{ template "common.names.fullname" . }}-bootstrap
   labels:
-    "app.kubernetes.io/name": '{{ template "common.names.name" .}}-bootstrap'
-    "app.kubernetes.io/managed-by": "{{ .Release.Service }}"
-    "app.kubernetes.io/component": "shenyu-bootstrap"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.bootstrap.labels" . | nindent 4 }}
 spec:
   selector:
-    "app.kubernetes.io/component": "shenyu-bootstrap"
-    "app.kubernetes.io/instance": "{{ .Release.Name }}"
+    {{- include "shenyu.bootstrap.selectorLabels" . | nindent 4 }}
   type: NodePort
   ports:
     - protocol: TCP
diff --git a/charts/shenyu/templates/tests/test-connection.yaml b/charts/shenyu/templates/tests/test-connection.yaml
new file mode 100644
index 0000000..1650a76
--- /dev/null
+++ b/charts/shenyu/templates/tests/test-connection.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Pod
+metadata:
+  name: "{{ template "common.names.fullname" .}}-test-connection"
+  labels:
+    {{- include "common.labels.standard" . | nindent 4 }}
+  annotations:
+    "helm.sh/hook": test
+spec:
+  containers:
+    - name: wget
+      image: busybox
+      command: ['sh', '-c']
+      args:
+       - |
+         wget -q -O - '{{ include "common.names.fullname" . }}-admin:{{ .Values.admin.service.port }}/actuator/health'
+         wget -q -O - '{{ include "common.names.fullname" . }}-bootstrap:{{ .Values.bootstrap.service.port }}/actuator/health'
+         # TODO add more tests, such as shenyu test scripts
+  restartPolicy: Never
diff --git a/charts/shenyu/values.yaml b/charts/shenyu/values.yaml
index a128001..2116016 100644
--- a/charts/shenyu/values.yaml
+++ b/charts/shenyu/values.yaml
@@ -357,9 +357,11 @@ applicationConfig:
           - /fallback/hystrix
           - /fallback/resilience4j
       health:
-        enabled: false
+        enabled: true
         paths:
           - /actuator/health
+          - /actuator/health/readiness
+          - /actuator/health/liveness
           - /health_check
       extPlugin:
         path: