{{- if .Values.allInOne.enabled }} apiVersion: v1 kind: Service metadata: name: {{ include "seaweedfs.componentName" (list . "all-in-one") }} namespace: {{ .Release.Namespace }} labels: app.kubernetes.io/name: {{ template "seaweedfs.name" . }} helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: seaweedfs-all-in-one {{- if .Values.allInOne.service.annotations }} annotations: {{- toYaml .Values.allInOne.service.annotations | nindent 4 }} {{- end }} spec: {{- $serviceType := .Values.allInOne.service.type | default "ClusterIP" }} {{- $nodePorts := dict }} {{- if or (eq $serviceType "NodePort") (eq $serviceType "LoadBalancer") }} {{- $nodePorts = .Values.allInOne.service.nodePorts | default dict }} {{- end }} type: {{ $serviceType }} {{- include "seaweedfs.service.loadBalancerFields" .Values.allInOne.service }} internalTrafficPolicy: {{ .Values.allInOne.service.internalTrafficPolicy | default "Cluster" }} {{- if and (semverCompare ">=1.31-0" .Capabilities.KubeVersion.GitVersion) .Values.allInOne.s3.trafficDistribution }} trafficDistribution: {{ include "seaweedfs.trafficDistribution" (dict "value" .Values.allInOne.s3.trafficDistribution "Capabilities" .Capabilities) }} {{- end }} ports: # Master ports - name: "swfs-master" port: {{ .Values.master.port }} targetPort: {{ .Values.master.port }} {{- if $nodePorts.master }} nodePort: {{ $nodePorts.master }} {{- end }} protocol: TCP - name: "swfs-master-grpc" port: {{ .Values.master.grpcPort }} targetPort: {{ .Values.master.grpcPort }} {{- if $nodePorts.masterGrpc }} nodePort: {{ $nodePorts.masterGrpc }} {{- end }} protocol: TCP # Volume ports - name: "swfs-volume" port: {{ .Values.volume.port }} targetPort: {{ .Values.volume.port }} {{- if $nodePorts.volume }} nodePort: {{ $nodePorts.volume }} {{- end }} protocol: TCP - name: "swfs-volume-grpc" port: {{ .Values.volume.grpcPort }} targetPort: {{ .Values.volume.grpcPort }} {{- if $nodePorts.volumeGrpc }} nodePort: {{ $nodePorts.volumeGrpc }} {{- end }} protocol: TCP # Filer ports - name: "swfs-filer" port: {{ .Values.filer.port }} targetPort: {{ .Values.filer.port }} {{- if $nodePorts.filer }} nodePort: {{ $nodePorts.filer }} {{- end }} protocol: TCP - name: "swfs-filer-grpc" port: {{ .Values.filer.grpcPort }} targetPort: {{ .Values.filer.grpcPort }} {{- if $nodePorts.filerGrpc }} nodePort: {{ $nodePorts.filerGrpc }} {{- end }} protocol: TCP # S3 ports (if enabled) {{- if .Values.allInOne.s3.enabled }} - name: "swfs-s3" port: {{ .Values.allInOne.s3.port | default .Values.s3.port }} targetPort: {{ .Values.allInOne.s3.port | default .Values.s3.port }} {{- if $nodePorts.s3 }} nodePort: {{ $nodePorts.s3 }} {{- end }} protocol: TCP {{- $httpsPort := .Values.allInOne.s3.httpsPort | default .Values.s3.httpsPort }} {{- if $httpsPort }} - name: "swfs-s3-tls" port: {{ $httpsPort }} targetPort: {{ $httpsPort }} {{- if $nodePorts.s3Https }} nodePort: {{ $nodePorts.s3Https }} {{- end }} protocol: TCP {{- end }} {{- end }} # SFTP ports (if enabled) {{- if .Values.allInOne.sftp.enabled }} - name: "swfs-sftp" port: {{ .Values.allInOne.sftp.port | default .Values.sftp.port }} targetPort: {{ .Values.allInOne.sftp.port | default .Values.sftp.port }} {{- if $nodePorts.sftp }} nodePort: {{ $nodePorts.sftp }} {{- end }} protocol: TCP {{- end }} # Server metrics port (single metrics endpoint for all services) {{- if .Values.allInOne.metricsPort }} - name: "server-metrics" port: {{ .Values.allInOne.metricsPort }} targetPort: {{ .Values.allInOne.metricsPort }} {{- if $nodePorts.metrics }} nodePort: {{ $nodePorts.metrics }} {{- end }} protocol: TCP {{- end }} selector: app.kubernetes.io/name: {{ template "seaweedfs.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: seaweedfs-all-in-one {{- end }}