diff --git a/charts/onechart/templates/service.yaml b/charts/onechart/templates/service.yaml index f8da0b3..e319b31 100644 --- a/charts/onechart/templates/service.yaml +++ b/charts/onechart/templates/service.yaml @@ -6,7 +6,13 @@ metadata: labels: {{- include "helm-chart.labels" . | nindent 4 }} spec: - type: {{ if .Values.nodePortEnabled }}NodePort{{ else }}ClusterIP{{ end }} + type: {{ if .Values.nodePortEnabled }}NodePort{{ else if .Values.loadbalancerEnabled }}LoadBalancer{{ else }}ClusterIP{{ end }} + {{- if .Values.stickySessions }} + sessionAffinityConfig: + clientIP: + timeoutSeconds: 10800 + externalTrafficPolicy: Local + {{- end }} ports: {{- if not .Values.ports }} - port: {{ if .Values.svcPort }}{{ .Values.svcPort }}{{ else }}{{ .Values.containerPort }}{{ end }} diff --git a/charts/onechart/tests/service_sticky_test.yaml b/charts/onechart/tests/service_sticky_test.yaml new file mode 100644 index 0000000..4167f9b --- /dev/null +++ b/charts/onechart/tests/service_sticky_test.yaml @@ -0,0 +1,11 @@ +suite: test deployment +templates: + - service.yaml +tests: + - it: Should set NodePort if flag enabled + set: + stickySessions: true + asserts: + - equal: + path: spec.externalTrafficPolicy + value: Local diff --git a/charts/onechart/tests/service_type_test.yaml b/charts/onechart/tests/service_type_test.yaml index 58a0851..04423c0 100644 --- a/charts/onechart/tests/service_type_test.yaml +++ b/charts/onechart/tests/service_type_test.yaml @@ -14,3 +14,10 @@ tests: - equal: path: spec.type value: NodePort + - it: Should set LoadBalancer if flag enabled + set: + loadbalancerEnabled: true + asserts: + - equal: + path: spec.type + value: LoadBalancer