@@ -191,6 +191,32 @@ func resolveConfigBaseURL(cr sfv1.SoftwareFactory) string {
191
191
return ""
192
192
}
193
193
194
+ func GetUserDefinedConnections (cr * sfv1.SoftwareFactory ) []string {
195
+ var conns []string
196
+ for _ , conn := range cr .Spec .Zuul .GerritConns {
197
+ conns = append (conns , conn .Name )
198
+ }
199
+ for _ , conn := range cr .Spec .Zuul .GitHubConns {
200
+ conns = append (conns , conn .Name )
201
+ }
202
+ for _ , conn := range cr .Spec .Zuul .GitLabConns {
203
+ conns = append (conns , conn .Name )
204
+ }
205
+ for _ , conn := range cr .Spec .Zuul .GitConns {
206
+ conns = append (conns , conn .Name )
207
+ }
208
+ for _ , conn := range cr .Spec .Zuul .PagureConns {
209
+ conns = append (conns , conn .Name )
210
+ }
211
+ for _ , conn := range cr .Spec .Zuul .ElasticSearchConns {
212
+ conns = append (conns , conn .Name )
213
+ }
214
+ for _ , conn := range cr .Spec .Zuul .SMTPConns {
215
+ conns = append (conns , conn .Name )
216
+ }
217
+ return conns
218
+ }
219
+
194
220
func (r * SFController ) IsCodesearchEnabled () bool {
195
221
return r .cr .Spec .Codesearch .Enabled == nil || * r .cr .Spec .Codesearch .Enabled
196
222
}
@@ -406,9 +432,27 @@ func CheckOpenShift() bool {
406
432
return openshiftUser
407
433
}
408
434
435
+ func HasDuplicate (conns []string ) string {
436
+ for i , conn := range conns {
437
+ if slices .Contains (conns [i + 1 :], conn ) {
438
+ return conn
439
+ }
440
+ }
441
+ return ""
442
+ }
443
+
409
444
func (r * SoftwareFactoryReconciler ) mkSFController (
410
445
ctx context.Context , ns string , owner client.Object , cr sfv1.SoftwareFactory ,
411
446
standalone bool ) SFController {
447
+ conns := GetUserDefinedConnections (& cr )
448
+ if dup := HasDuplicate (conns ); dup != "" {
449
+ fmt .Fprintf (os .Stderr , "Duplicate zuul connection: %s" , dup )
450
+ os .Exit (1 )
451
+ }
452
+ if slices .Contains (conns , "git-server" ) {
453
+ fmt .Fprintf (os .Stderr , "The git-server connection name is reserved, please rename it" )
454
+ os .Exit (1 )
455
+ }
412
456
return SFController {
413
457
SFUtilContext : SFUtilContext {
414
458
Client : r .Client ,
0 commit comments