From ef3b5f7efaf940a0c1590c1c7e86723d55a5b0ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yal=C4=B1n=20Do=C4=9Fu=20=C5=9Eahin?= <103506681+yalindogusahin@users.noreply.github.com> Date: Wed, 4 Feb 2026 21:00:59 +0100 Subject: [PATCH] helm/add iceberg rest catalog ingress for s3 (#8205) * helm: add Iceberg REST catalog support to S3 service * helm: add Iceberg REST catalog support to S3 service * add ingress for iceberg catalog endpoint * helm: conditionally render ingressClassName in s3-iceberg-ingress.yaml * helm: refactor s3-iceberg-ingress.yaml to use named template for paths * helm: remove unused $serviceName variable in s3-iceberg-ingress.yaml --------- Co-authored-by: yalin.sahin Co-authored-by: Chris Lu --- .../templates/s3/s3-iceberg-ingress.yaml | 61 +++++++++++++++++++ k8s/charts/seaweedfs/values.yaml | 9 +++ 2 files changed, 70 insertions(+) create mode 100644 k8s/charts/seaweedfs/templates/s3/s3-iceberg-ingress.yaml diff --git a/k8s/charts/seaweedfs/templates/s3/s3-iceberg-ingress.yaml b/k8s/charts/seaweedfs/templates/s3/s3-iceberg-ingress.yaml new file mode 100644 index 000000000..5a760d7e9 --- /dev/null +++ b/k8s/charts/seaweedfs/templates/s3/s3-iceberg-ingress.yaml @@ -0,0 +1,61 @@ +{{- define "seaweedfs.s3.iceberg.ingress.paths" -}} +paths: +- path: {{ .Values.s3.icebergIngress.path | quote }} + pathType: {{ .Values.s3.icebergIngress.pathType | quote }} + backend: + {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} + service: + name: {{ include "seaweedfs.componentName" (list . "s3") }} + port: + number: {{ .Values.s3.icebergPort }} + {{- else }} + serviceName: {{ include "seaweedfs.componentName" (list . "s3") }} + servicePort: {{ .Values.s3.icebergPort }} + {{- end }} +{{- end -}} +{{- if and .Values.s3.enabled .Values.s3.icebergPort .Values.s3.icebergIngress.enabled }} +{{- $hosts := list }} +{{- if kindIs "slice" .Values.s3.icebergIngress.host }} + {{- $hosts = .Values.s3.icebergIngress.host }} +{{- else if .Values.s3.icebergIngress.host }} + {{- $hosts = list .Values.s3.icebergIngress.host }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }} +apiVersion: networking.k8s.io/v1beta1 +{{- else }} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: ingress-{{ include "seaweedfs.fullname" . }}-s3-iceberg + namespace: {{ .Release.Namespace }} + {{- with .Values.s3.icebergIngress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} + 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: s3-iceberg +spec: + {{- if .Values.s3.icebergIngress.className }} + ingressClassName: {{ .Values.s3.icebergIngress.className | quote }} + {{- end }} + tls: + {{ .Values.s3.icebergIngress.tls | default list | toYaml | nindent 6}} + rules: +{{- if $hosts }} +{{- range $host := $hosts }} + - host: {{ $host | quote }} + http: + {{- include "seaweedfs.s3.iceberg.ingress.paths" $ | nindent 6 }} +{{- end }} +{{- else }} + - http: + {{- include "seaweedfs.s3.iceberg.ingress.paths" . | nindent 4 }} +{{- end }} +{{- end }} diff --git a/k8s/charts/seaweedfs/values.yaml b/k8s/charts/seaweedfs/values.yaml index f7a05ce17..7e6c9b41b 100644 --- a/k8s/charts/seaweedfs/values.yaml +++ b/k8s/charts/seaweedfs/values.yaml @@ -1053,6 +1053,15 @@ s3: annotations: {} tls: [] + icebergIngress: + enabled: false + className: "" + host: "seaweedfs-iceberg.cluster.local" + path: "/" + pathType: Prefix + annotations: {} + tls: [] + sftp: enabled: false imageOverride: null