From 2574eec1cd864bfda2031a398d3c1e85433b26db Mon Sep 17 00:00:00 2001 From: Caleb Lloyd Date: Mon, 12 Jun 2023 20:23:46 -0400 Subject: [PATCH] [helm nats 1.x] config.serverNamePrefix option Signed-off-by: Caleb Lloyd --- helm/charts/nats/Chart.yaml | 2 +- helm/charts/nats/files/config/config.yaml | 2 +- .../stateful-set/beta2-mount-fix-container.yaml | 16 ---------------- .../nats/files/stateful-set/nats-container.yaml | 2 ++ helm/charts/nats/test/chart_test.go | 1 + helm/charts/nats/test/config_test.go | 9 ++++++--- helm/charts/nats/test/defaults_test.go | 4 ++++ helm/charts/nats/values.yaml | 4 ++++ 8 files changed, 19 insertions(+), 21 deletions(-) delete mode 100644 helm/charts/nats/files/stateful-set/beta2-mount-fix-container.yaml diff --git a/helm/charts/nats/Chart.yaml b/helm/charts/nats/Chart.yaml index 6b4163ae..ea245cc9 100644 --- a/helm/charts/nats/Chart.yaml +++ b/helm/charts/nats/Chart.yaml @@ -6,7 +6,7 @@ keywords: - nats - messaging - cncf -version: 1.0.0-beta.5 +version: 1.0.0-beta.6 home: http://github.com/nats-io/k8s maintainers: - email: info@nats.io diff --git a/helm/charts/nats/files/config/config.yaml b/helm/charts/nats/files/config/config.yaml index 3cf3e7eb..a6ce3e1e 100644 --- a/helm/charts/nats/files/config/config.yaml +++ b/helm/charts/nats/files/config/config.yaml @@ -1,7 +1,7 @@ {{- $pidFile := ternary "/var/run/nats/nats.pid" "/var/run/nats.pid" .Values.reloader.enabled }} {{- with .Values.config }} -server_name: << $POD_NAME >> +server_name: << $SERVER_NAME >> lame_duck_grace_period: 10s lame_duck_duration: 30s pid_file: {{ $pidFile }} diff --git a/helm/charts/nats/files/stateful-set/beta2-mount-fix-container.yaml b/helm/charts/nats/files/stateful-set/beta2-mount-fix-container.yaml deleted file mode 100644 index 8c2c2b7d..00000000 --- a/helm/charts/nats/files/stateful-set/beta2-mount-fix-container.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: beta2-mount-fix -{{ include "nats.image" (merge (pick $.Values "global") .Values.natsBox.container.image) }} - -command: -- sh -- -ec -- | - cd {{ .Values.config.jetstream.fileStore.dir | quote }} - mkdir -p jetstream - find . -maxdepth 1 -mindepth 1 -not -name 'lost+found' -not -name 'jetstream' -exec mv {} jetstream \; - -volumeMounts: -{{- with .Values.config.jetstream.fileStore }} -- name: {{ .pvc.name }} - mountPath: {{ .dir | quote }} -{{- end }} diff --git a/helm/charts/nats/files/stateful-set/nats-container.yaml b/helm/charts/nats/files/stateful-set/nats-container.yaml index a0bbc03e..ea6301c3 100644 --- a/helm/charts/nats/files/stateful-set/nats-container.yaml +++ b/helm/charts/nats/files/stateful-set/nats-container.yaml @@ -20,6 +20,8 @@ env: valueFrom: fieldRef: fieldPath: metadata.name +- name: SERVER_NAME + value: {{ printf "%s$(POD_NAME)" .Values.config.serverNamePrefix | quote }} {{- with .Values.container.env }} {{- include "nats.env" . }} {{- end }} diff --git a/helm/charts/nats/test/chart_test.go b/helm/charts/nats/test/chart_test.go index 14a0acf2..68d02b63 100644 --- a/helm/charts/nats/test/chart_test.go +++ b/helm/charts/nats/test/chart_test.go @@ -202,6 +202,7 @@ func HelmRender(t *testing.T, test *Test) *Resources { } _ = os.Setenv("POD_NAME", "nats-0") + _ = os.Setenv("SERVER_NAME", "nats-0") resources.Conf.Value, err = conf.ParseFile(filepath.Join(confDir, "nats.conf")) require.NoError(t, err) resources.Conf.HasValue = true diff --git a/helm/charts/nats/test/config_test.go b/helm/charts/nats/test/config_test.go index d40653fa..d0eed4d8 100644 --- a/helm/charts/nats/test/config_test.go +++ b/helm/charts/nats/test/config_test.go @@ -150,6 +150,7 @@ config: pvc: size: 5Gi storageClassName: gp3 + serverNamePrefix: test_ ` expected := DefaultResources(t, test) @@ -211,8 +212,10 @@ config: }, } - vm := expected.StatefulSet.Value.Spec.Template.Spec.Containers[0].VolumeMounts - expected.StatefulSet.Value.Spec.Template.Spec.Containers[0].VolumeMounts = append(vm, corev1.VolumeMount{ + ctr := &expected.StatefulSet.Value.Spec.Template.Spec.Containers[0] + ctr.Env[1].Value = "test_$(POD_NAME)" + + ctr.VolumeMounts = append(ctr.VolumeMounts, corev1.VolumeMount{ MountPath: "/mnt", Name: test.FullName + "-js", }, corev1.VolumeMount{ @@ -220,7 +223,7 @@ config: Name: test.FullName + "-resolver", }) - expected.StatefulSet.Value.Spec.Template.Spec.Containers[0].Ports = []corev1.ContainerPort{ + ctr.Ports = []corev1.ContainerPort{ { Name: "nats", ContainerPort: 4222, diff --git a/helm/charts/nats/test/defaults_test.go b/helm/charts/nats/test/defaults_test.go index cdc6689f..899b1ea6 100644 --- a/helm/charts/nats/test/defaults_test.go +++ b/helm/charts/nats/test/defaults_test.go @@ -407,6 +407,10 @@ exec sh -ec "$0" }, }, }, + { + Name: "SERVER_NAME", + Value: "$(POD_NAME)", + }, }, Image: dd.NatsImage, Lifecycle: &corev1.Lifecycle{ diff --git a/helm/charts/nats/values.yaml b/helm/charts/nats/values.yaml index e9a12f02..d77bd2a4 100644 --- a/helm/charts/nats/values.yaml +++ b/helm/charts/nats/values.yaml @@ -233,6 +233,10 @@ config: merge: {} patch: [] + # adds a prefix to the server name, which defaults to the pod name + # helpful for ensuring server name is unique in a super cluster + serverNamePrefix: "" + # merge or patch the nats config # https://docs.nats.io/running-a-nats-service/configuration # following special rules apply