@@ -29,6 +29,28 @@ Usage:
2929{{- $mechanism -}}
3030{{- end -}}
3131
32+ {{/*
33+ Returns the ZooKeeper SASL authentication mechanism value.
34+ Allowed mechanism values: '', 'plain'
35+ Usage:
36+ include "fluss.security.zookeeper.sasl.mechanism" .
37+ */ }}
38+ {{- define " fluss.security.zookeeper.sasl.mechanism" -}}
39+ {{- $sasl := .Values.security.zookeeper.sasl | default (dict) -}}
40+ {{- $mechanism := lower (default " " $sasl .mechanism ) -}}
41+ {{- $mechanism -}}
42+ {{- end -}}
43+
44+ {{/*
45+ Returns true if ZooKeeper SASL authentication is enabled (mechanism is non-empty).
46+ Usage:
47+ include "fluss.security.zookeeper.sasl.enabled" .
48+ */ }}
49+ {{- define " fluss.security.zookeeper.sasl.enabled" -}}
50+ {{- $mechanism := include " fluss.security.zookeeper.sasl.mechanism" . -}}
51+ {{- if ne $mechanism " " -}}true{{- end -}}
52+ {{- end -}}
53+
3254{{/*
3355Returns true if any of the listeners uses SASL based authentication mechanism ('plain' for now).
3456Usage:
@@ -117,6 +139,56 @@ Usage:
117139{{- end -}}
118140{{- end -}}
119141
142+ {{/*
143+ Validates that ZooKeeper SASL mechanism is valid.
144+ Returns an error message if invalid, empty string otherwise.
145+ Usage:
146+ include "fluss.security.zookeeper.sasl.validateMechanism" .
147+ */ }}
148+ {{- define " fluss.security.zookeeper.sasl.validateMechanism" -}}
149+ {{- $allowedMechanisms := list " " " plain" -}}
150+ {{- $mechanism := include " fluss.security.zookeeper.sasl.mechanism" . -}}
151+ {{- if not (has $mechanism $allowedMechanisms ) -}}
152+ {{- print " security.zookeeper.sasl.mechanism must be empty or: plain" -}}
153+ {{- end -}}
154+ {{- end -}}
155+
156+ {{/*
157+ Validates that ZooKeeper SASL loginModuleClass is not empty when ZK SASL is enabled.
158+ Returns an error message if invalid, empty string otherwise.
159+ Usage:
160+ include "fluss.security.zookeeper.sasl.validateLoginModuleClass" .
161+ */ }}
162+ {{- define " fluss.security.zookeeper.sasl.validateLoginModuleClass" -}}
163+ {{- if and (include " fluss.security.zookeeper.sasl.enabled" . ) (not .Values.security.zookeeper.sasl.plain.loginModuleClass ) -}}
164+ {{- print " security.zookeeper.sasl.plain.loginModuleClass must not be empty when security.zookeeper.sasl.mechanism is plain" -}}
165+ {{- end -}}
166+ {{- end -}}
167+
168+ {{/*
169+ Validates that ZooKeeper SASL username is not empty when ZK SASL is enabled.
170+ Returns an error message if invalid, empty string otherwise.
171+ Usage:
172+ include "fluss.security.zookeeper.sasl.validateUsername" .
173+ */ }}
174+ {{- define " fluss.security.zookeeper.sasl.validateUsername" -}}
175+ {{- if and (include " fluss.security.zookeeper.sasl.enabled" . ) (not .Values.security.zookeeper.sasl.plain.username ) -}}
176+ {{- print " security.zookeeper.sasl.plain.username must not be empty when security.zookeeper.sasl.mechanism is plain" -}}
177+ {{- end -}}
178+ {{- end -}}
179+
180+ {{/*
181+ Validates that ZooKeeper SASL password is not empty when ZK SASL is enabled.
182+ Returns an error message if invalid, empty string otherwise.
183+ Usage:
184+ include "fluss.security.zookeeper.sasl.validatePassword" .
185+ */ }}
186+ {{- define " fluss.security.zookeeper.sasl.validatePassword" -}}
187+ {{- if and (include " fluss.security.zookeeper.sasl.enabled" . ) (not .Values.security.zookeeper.sasl.plain.password ) -}}
188+ {{- print " security.zookeeper.sasl.plain.password must not be empty when security.zookeeper.sasl.mechanism is plain" -}}
189+ {{- end -}}
190+ {{- end -}}
191+
120192{{/*
121193Returns the default internal SASL username based on the release name.
122194Usage:
@@ -153,6 +225,17 @@ Usage:
153225{{- .Values.security.internal.sasl.plain.password | default (include " fluss.security.sasl.plain.internal.defaultPassword" . ) -}}
154226{{- end -}}
155227
228+ {{/*
229+ Returns true if JAAS configuration is required, either by listeners using SASL protocol or ZooKeeper SASL enablement.
230+ Usage:
231+ include "fluss.security.jaas.required" .
232+ */ }}
233+ {{- define " fluss.security.jaas.required" -}}
234+ {{- if or (include " fluss.security.sasl.enabled" . ) (include " fluss.security.zookeeper.sasl.enabled" . ) -}}
235+ {{- true -}}
236+ {{- end -}}
237+ {{- end -}}
238+
156239{{/*
157240Returns a warning if the internal SASL user is using auto-generated credentials.
158241Usage:
@@ -179,6 +262,10 @@ Usage:
179262{{- $errMessages := list -}}
180263{{- $errMessages = append $errMessages (include " fluss.security.sasl.validateMechanisms" . ) -}}
181264{{- $errMessages = append $errMessages (include " fluss.security.sasl.validateClientPlainUsers" . ) -}}
265+ {{- $errMessages = append $errMessages (include " fluss.security.zookeeper.sasl.validateMechanism" . ) -}}
266+ {{- $errMessages = append $errMessages (include " fluss.security.zookeeper.sasl.validateLoginModuleClass" . ) -}}
267+ {{- $errMessages = append $errMessages (include " fluss.security.zookeeper.sasl.validateUsername" . ) -}}
268+ {{- $errMessages = append $errMessages (include " fluss.security.zookeeper.sasl.validatePassword" . ) -}}
182269
183270{{- $errMessages = without $errMessages " " -}}
184271{{- $errMessage := join " \n " $errMessages -}}
@@ -202,8 +289,8 @@ Usage:
202289{{/*
203290Returns the SASL JAAS config name.
204291Usage:
205- include "fluss.security.sasl .configName" .
292+ include "fluss.security.jaas .configName" .
206293*/ }}
207- {{- define " fluss.security.sasl .configName" -}}
294+ {{- define " fluss.security.jaas .configName" -}}
208295{{ include " fluss.fullname" . }}-sasl-jaas-config
209296{{- end -}}
0 commit comments