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 <[email protected]> Co-authored-by: houseme <[email protected]> Co-authored-by: 安正超 <[email protected]> Co-authored-by: cxymds <[email protected]> Co-authored-by: majinghe <[email protected]>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
houseme
安正超
cxymds
majinghe
parent
f53eb4ad44
commit
11e97951fd
@@ -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