@@ -194,30 +194,51 @@ func resolveConfigBaseURL(cr sfv1.SoftwareFactory) string {
194
194
return ""
195
195
}
196
196
197
- func GetUserDefinedConnections (cr * sfv1.SoftwareFactory ) []string {
197
+ func GetUserDefinedConnections (cr * sfv1.SoftwareFactory ) ( []string , error ) {
198
198
var conns []string
199
199
for _ , conn := range cr .Spec .Zuul .GerritConns {
200
+ if conn .Name == "opendev.org" && conn .Hostname != "review.opendev.org" {
201
+ return conns , errors .New ("opendev.org gerrit connection must be for review.opendev.org" )
202
+ }
200
203
conns = append (conns , conn .Name )
201
204
}
202
205
for _ , conn := range cr .Spec .Zuul .GitHubConns {
206
+ if conn .Name == "opendev.org" {
207
+ return conns , errors .New ("opendev.org must be a gerrit or git connection" )
208
+ }
203
209
conns = append (conns , conn .Name )
204
210
}
205
211
for _ , conn := range cr .Spec .Zuul .GitLabConns {
212
+ if conn .Name == "opendev.org" {
213
+ return conns , errors .New ("opendev.org must be a gerrit or git connection" )
214
+ }
206
215
conns = append (conns , conn .Name )
207
216
}
208
217
for _ , conn := range cr .Spec .Zuul .GitConns {
218
+ if conn .Name == "opendev.org" && conn .Baseurl != "https://opendev.org" {
219
+ return conns , errors .New ("opendev.org git connection must be for https://opendev.org" )
220
+ }
209
221
conns = append (conns , conn .Name )
210
222
}
211
223
for _ , conn := range cr .Spec .Zuul .PagureConns {
224
+ if conn .Name == "opendev.org" {
225
+ return conns , errors .New ("opendev.org must be a gerrit or git connection" )
226
+ }
212
227
conns = append (conns , conn .Name )
213
228
}
214
229
for _ , conn := range cr .Spec .Zuul .ElasticSearchConns {
230
+ if conn .Name == "opendev.org" {
231
+ return conns , errors .New ("opendev.org must be a gerrit or git connection" )
232
+ }
215
233
conns = append (conns , conn .Name )
216
234
}
217
235
for _ , conn := range cr .Spec .Zuul .SMTPConns {
236
+ if conn .Name == "opendev.org" {
237
+ return conns , errors .New ("opendev.org must be a gerrit or git connection" )
238
+ }
218
239
conns = append (conns , conn .Name )
219
240
}
220
- return conns
241
+ return conns , nil
221
242
}
222
243
223
244
func (r * SFController ) IsCodesearchEnabled () bool {
@@ -495,7 +516,11 @@ func HasDuplicate(conns []string) string {
495
516
func (r * SoftwareFactoryReconciler ) mkSFController (
496
517
ctx context.Context , ns string , owner client.Object , cr sfv1.SoftwareFactory ,
497
518
standalone bool ) SFController {
498
- conns := GetUserDefinedConnections (& cr )
519
+ conns , err := GetUserDefinedConnections (& cr )
520
+ if err != nil {
521
+ ctrl .Log .Error (err , "Invalid Zuul connections" )
522
+ os .Exit (1 )
523
+ }
499
524
if dup := HasDuplicate (conns ); dup != "" {
500
525
fmt .Fprintf (os .Stderr , "Duplicate zuul connection: %s" , dup )
501
526
os .Exit (1 )
0 commit comments