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: