apiVersion: v1 kind: Service metadata: name: {{ include "caddy.fullname" . }} labels: {{- include "caddy.labels" . | nindent 4 }} {{- with .Values.service.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: type: {{ .Values.service.type }} {{- with .Values.service.externalTrafficPolicy }} externalTrafficPolicy: {{ . }} {{- end }} {{- if eq .Values.service.type "LoadBalancer" }} {{- with .Values.service.loadBalancerIP }} loadBalancerIP: {{ . }} {{- end }} {{- with .Values.service.loadBalancerSourceRanges }} loadBalancerSourceRanges: {{ toYaml . | nindent 4 }} {{- end }} {{- end }} ports: - name: http port: {{ .Values.service.port }} {{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) .Values.service.nodePort }} nodePort: {{ .Values.service.nodePort }} {{- end }} targetPort: http protocol: TCP {{- if semverCompare ">=1.20-0" .Capabilities.KubeVersion.GitVersion }} appProtocol: http {{- end }} selector: {{- include "caddy.selectorLabels" . | nindent 4 }}