Browse Source

helm: make s3/filer ingress work for both normal and all-in-one modes

Modified s3-ingress.yaml and filer-ingress.yaml to dynamically select
the service name based on deployment mode:
- Normal mode: points to seaweedfs-s3 / seaweedfs-filer services
- All-in-one mode: points to seaweedfs-all-in-one service

This eliminates the need for separate all-in-one ingress templates.
Users can now use the standard s3.ingress and filer.ingress settings
for both deployment modes.
pull/7639/head
chrislu 5 days ago
parent
commit
5f155d901a
  1. 13
      k8s/charts/seaweedfs/templates/filer/filer-ingress.yaml
  2. 16
      k8s/charts/seaweedfs/templates/s3/s3-ingress.yaml
  3. 5
      k8s/charts/seaweedfs/values.yaml

13
k8s/charts/seaweedfs/templates/filer/filer-ingress.yaml

@ -1,5 +1,8 @@
{{- if .Values.filer.enabled }}
{{- if .Values.filer.ingress.enabled }}
{{- /* Filer ingress works for both normal mode (filer.enabled) and all-in-one mode (allInOne.enabled) */}}
{{- $filerEnabled := or .Values.filer.enabled .Values.allInOne.enabled }}
{{- if and $filerEnabled .Values.filer.ingress.enabled }}
{{- /* Determine service name based on deployment mode */}}
{{- $serviceName := ternary (printf "%s-all-in-one" (include "seaweedfs.name" .)) (printf "%s-filer" (include "seaweedfs.name" .)) .Values.allInOne.enabled }}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }} {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }}
@ -33,16 +36,14 @@ spec:
backend: backend:
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
service: service:
name: {{ template "seaweedfs.name" . }}-filer
name: {{ $serviceName }}
port: port:
number: {{ .Values.filer.port }} number: {{ .Values.filer.port }}
#name:
{{- else }} {{- else }}
serviceName: {{ template "seaweedfs.name" . }}-filer
serviceName: {{ $serviceName }}
servicePort: {{ .Values.filer.port }} servicePort: {{ .Values.filer.port }}
{{- end }} {{- end }}
{{- if .Values.filer.ingress.host }} {{- if .Values.filer.ingress.host }}
host: {{ .Values.filer.ingress.host }} host: {{ .Values.filer.ingress.host }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }}

16
k8s/charts/seaweedfs/templates/s3/s3-ingress.yaml

@ -1,4 +1,9 @@
{{- if .Values.s3.ingress.enabled }}
{{- /* S3 ingress works for both normal mode (filer.s3.enabled) and all-in-one mode (allInOne.s3.enabled) */}}
{{- $s3Enabled := or (and .Values.filer.s3.enabled (not .Values.allInOne.enabled)) (and .Values.allInOne.enabled .Values.allInOne.s3.enabled) }}
{{- if and $s3Enabled .Values.s3.ingress.enabled }}
{{- /* Determine service name based on deployment mode */}}
{{- $serviceName := ternary (printf "%s-all-in-one" (include "seaweedfs.name" .)) (printf "%s-s3" (include "seaweedfs.name" .)) .Values.allInOne.enabled }}
{{- $s3Port := .Values.allInOne.s3.port | default .Values.s3.port }}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }} {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }}
@ -32,13 +37,12 @@ spec:
backend: backend:
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
service: service:
name: {{ template "seaweedfs.name" . }}-s3
name: {{ $serviceName }}
port: port:
number: {{ .Values.s3.port }}
#name:
number: {{ $s3Port }}
{{- else }} {{- else }}
serviceName: {{ template "seaweedfs.name" . }}-s3
servicePort: {{ .Values.s3.port }}
serviceName: {{ $serviceName }}
servicePort: {{ $s3Port }}
{{- end }} {{- end }}
{{- if .Values.s3.ingress.host }} {{- if .Values.s3.ingress.host }}
host: {{ .Values.s3.ingress.host | quote }} host: {{ .Values.s3.ingress.host | quote }}

5
k8s/charts/seaweedfs/values.yaml

@ -1173,6 +1173,11 @@ allInOne:
type: ClusterIP # Service type (ClusterIP, NodePort, LoadBalancer) type: ClusterIP # Service type (ClusterIP, NodePort, LoadBalancer)
internalTrafficPolicy: Cluster # Internal traffic policy internalTrafficPolicy: Cluster # Internal traffic policy
# Note: For ingress in all-in-one mode, use the standard s3.ingress and
# filer.ingress settings. The templates automatically detect all-in-one mode
# and point to the correct service (seaweedfs-all-in-one instead of
# seaweedfs-s3 or seaweedfs-filer).
# Storage configuration # Storage configuration
data: data:
type: "emptyDir" # Options: "hostPath", "persistentVolumeClaim", "emptyDir", "existingClaim" type: "emptyDir" # Options: "hostPath", "persistentVolumeClaim", "emptyDir", "existingClaim"

Loading…
Cancel
Save