apiVersion: v1 kind: Service metadata: name: {{ include "jellyfin.fullname" . }} labels: {{- include "jellyfin.labels" . | nindent 4 }} {{- with .Values.service.labels }} {{- toYaml . | nindent 4 }} {{- end }} {{- with .Values.service.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: {{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }} type: ClusterIP {{- with .Values.service.clusterIP }} clusterIP: {{ . }} {{- end }} {{- else if eq .Values.service.type "LoadBalancer" }} type: LoadBalancer {{- with .Values.service.loadBalancerIP }} loadBalancerIP: {{ . }} {{- end }} {{- with .Values.service.loadBalancerClass }} loadBalancerClass: {{ . }} {{- end }} {{- with .Values.service.loadBalancerSourceRanges }} loadBalancerSourceRanges: {{- toYaml . | nindent 4 }} {{- end }} {{- else }} type: {{ .Values.service.type }} {{- end }} {{- if .Values.service.ipFamilyPolicy }} ipFamilyPolicy: {{ .Values.service.ipFamilyPolicy }} {{- end }} {{- if .Values.service.ipFamilies }} ipFamilies: {{- toYaml .Values.service.ipFamilies | nindent 4 }} {{- end }} {{- with .Values.service.externalIPs }} externalIPs: {{- toYaml . | nindent 4 }} {{- end }} {{- with .Values.service.externalTrafficPolicy }} externalTrafficPolicy: {{ . }} {{- end }} ports: - name: {{ .Values.service.portName | default "http" }} port: {{ .Values.service.port }} protocol: TCP targetPort: http {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} nodePort: {{ .Values.service.nodePort }} {{- end }} selector: {{- include "jellyfin.selectorLabels" . | nindent 4 }}