mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 08:18:18 +00:00
fix(helm): add LoadBalancer service type support (#3049)
The service template only handled ClusterIP and NodePort via if/else-if branches. When service.type=LoadBalancer was set, no branch matched and the type field was omitted from the rendered Service, causing Kubernetes to silently default to ClusterIP. Add the missing LoadBalancer branch with support for: - loadBalancerIP: request a specific IP (e.g. Cilium LB-IPAM, MetalLB) - loadBalancerClass: select a specific LB implementation - loadBalancerSourceRanges: restrict client source IPs This is particularly useful for bare-metal / on-prem clusters using software load balancers (Cilium LB-IPAM, MetalLB, kube-vip) where a stable routable IP is preferable to an Ingress for S3 clients. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: houseme <housemecn@gmail.com> Co-authored-by: 安正超 <anzhengchao@gmail.com> Co-authored-by: cxymds <Cxymds@qq.com> Co-authored-by: majinghe <42570491+majinghe@users.noreply.github.com>
This commit is contained in:
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
name: rustfs
|
||||
description: RustFS helm chart to deploy RustFS on kubernetes cluster.
|
||||
type: application
|
||||
version: "0.4.0"
|
||||
version: "0.4.1"
|
||||
appVersion: "1.0.0-beta.4"
|
||||
home: https://rustfs.com
|
||||
icon: https://media.sys.truenas.net/apps/rustfs/icons/icon.svg
|
||||
|
||||
@@ -51,6 +51,18 @@ spec:
|
||||
sessionAffinityConfig:
|
||||
clientIP:
|
||||
timeoutSeconds: 10800
|
||||
{{- else if eq $serviceType "LoadBalancer" }}
|
||||
type: LoadBalancer
|
||||
{{- with .Values.service.loadBalancerIP }}
|
||||
loadBalancerIP: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.service.loadBalancerClass }}
|
||||
loadBalancerClass: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.service.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: endpoint
|
||||
|
||||
@@ -176,6 +176,10 @@ service:
|
||||
traefik.ingress.kubernetes.io/service.sticky.cookie.samesite: none
|
||||
traefik.ingress.kubernetes.io/service.sticky.cookie.secure: "true"
|
||||
type: ClusterIP
|
||||
# LoadBalancer-specific fields (only used when type=LoadBalancer)
|
||||
loadBalancerIP: "" # Request a specific IP from the load balancer (e.g. for Cilium LB-IPAM or MetalLB)
|
||||
loadBalancerClass: "" # Specify a load balancer implementation (e.g. "io.cilium/bgp", "metallb")
|
||||
loadBalancerSourceRanges: [] # Restrict client IPs (e.g. ["10.0.0.0/8"])
|
||||
endpoint:
|
||||
port: 9000
|
||||
nodePort: 32000
|
||||
|
||||
Reference in New Issue
Block a user