Skip to content

Commit d94a95e

Browse files
feat: Add headless service (#68)
Signed-off-by: Marc-AntoineRaymond <[email protected]>
1 parent 19aa6a7 commit d94a95e

File tree

5 files changed

+44
-1
lines changed

5 files changed

+44
-1
lines changed

charts/zot/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ appVersion: v2.1.5
33
description: A Helm chart for Kubernetes
44
name: zot
55
type: application
6-
version: 0.1.74
6+
version: 0.1.75
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{{- if and .Values.serviceHeadless .Values.serviceHeadless.enabled .Values.persistence -}}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ include "zot.fullname" . }}-headless
6+
namespace: {{ .Values.namespace | default .Release.Namespace }}
7+
labels:
8+
{{- include "zot.labels" . | nindent 4 }}
9+
{{- with .Values.serviceHeadless.annotations }}
10+
annotations:
11+
{{ toYaml . | indent 4 }}
12+
{{- end }}
13+
spec:
14+
type: ClusterIP
15+
clusterIP: None
16+
ports:
17+
- port: {{ .Values.serviceHeadless.port }}
18+
targetPort: zot
19+
protocol: TCP
20+
name: zot
21+
selector:
22+
{{- include "zot.selectorLabels" . | nindent 4 }}
23+
{{- end -}}

charts/zot/templates/statefulset.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ metadata:
1111
{{- toYaml . | nindent 4 }}
1212
{{- end }}
1313
spec:
14+
{{- if and .Values.serviceHeadless .Values.serviceHeadless.enabled }}
15+
serviceName: {{ include "zot.fullname" . }}-headless
16+
{{- end }}
1417
replicas: {{ .Values.replicaCount }}
1518
selector:
1619
matchLabels:

charts/zot/unittests/statefulset_test.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,13 @@ tests:
9494
- equal:
9595
path: spec.volumeClaimTemplates[0].metadata.name
9696
value: custom-pvc-pvc
97+
98+
- it: should have an headless service when enabled
99+
set:
100+
persistence: true
101+
serviceHeadless:
102+
enabled: true
103+
asserts:
104+
- matchRegex:
105+
path: spec.serviceName
106+
pattern: .*-headless$

charts/zot/values.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ serviceAccount:
1717
# The name of the service account to use.
1818
# If not set and create is true, a name is generated using the fullname template
1919
name: ""
20+
serviceHeadless:
21+
# Enable headless service, only for statefulset
22+
enabled: false
23+
# Headless service port
24+
port: 5000
25+
# Annotations to add to the headless service
26+
annotations: {}
2027
service:
2128
type: NodePort
2229
port: 5000

0 commit comments

Comments
 (0)