@@ -191,6 +191,32 @@ func resolveConfigBaseURL(cr sfv1.SoftwareFactory) string {
191191 return ""
192192}
193193
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+
194220func (r * SFController ) IsCodesearchEnabled () bool {
195221 return r .cr .Spec .Codesearch .Enabled == nil || * r .cr .Spec .Codesearch .Enabled
196222}
@@ -406,9 +432,27 @@ func CheckOpenShift() bool {
406432 return openshiftUser
407433}
408434
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+
409444func (r * SoftwareFactoryReconciler ) mkSFController (
410445 ctx context.Context , ns string , owner client.Object , cr sfv1.SoftwareFactory ,
411446 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+ }
412456 return SFController {
413457 SFUtilContext : SFUtilContext {
414458 Client : r .Client ,
0 commit comments