@@ -94,6 +94,8 @@ func main() {
94
94
var printImages string
95
95
var printCalicoCRDs string
96
96
var printEnterpriseCRDs string
97
+ var userDefinedProviderInput string
98
+
97
99
var sgSetup bool
98
100
var manageCRDs bool
99
101
var preDelete bool
@@ -117,6 +119,8 @@ func main() {
117
119
"Operator should manage the projectcalico.org and operator.tigera.io CRDs." )
118
120
flag .BoolVar (& preDelete , "pre-delete" , false ,
119
121
"Run helm pre-deletion hook logic, then exit." )
122
+ flag .StringVar (& userDefinedProviderInput , "cluster-type" , "" ,
123
+ "Use the given cluster type instead of using auto discovery. Valid values are EKS, GKE, AKS, RKE2, OpenShift, DockerEnterprise" )
120
124
121
125
opts := zap.Options {}
122
126
opts .BindFlags (flag .CommandLine )
@@ -169,6 +173,28 @@ func main() {
169
173
}
170
174
}
171
175
176
+ userDefinedProvider := v1 .ProviderNone
177
+ if userDefinedProviderInput != "" {
178
+ switch strings .ToLower (userDefinedProviderInput ) {
179
+ case "eks" :
180
+ userDefinedProvider = v1 .ProviderEKS
181
+ case "gke" :
182
+ userDefinedProvider = v1 .ProviderGKE
183
+ case "aks" :
184
+ userDefinedProvider = v1 .ProviderAKS
185
+ case "rke2" :
186
+ userDefinedProvider = v1 .ProviderRKE2
187
+ case "openshift" :
188
+ userDefinedProvider = v1 .ProviderOpenShift
189
+ case "dockerenterprise" :
190
+ userDefinedProvider = v1 .ProviderDockerEE
191
+ default :
192
+ fmt .Println ("Invalid option for --cluster-type flag " , userDefinedProviderInput , ". Valid values are EKS, GKE, AKS, RKE2, OpenShift, DockerEnterprise" )
193
+ os .Exit (1 )
194
+ }
195
+
196
+ }
197
+
172
198
printVersion ()
173
199
174
200
ctx , cancel := context .WithCancel (context .Background ())
@@ -342,13 +368,19 @@ func main() {
342
368
os .Exit (1 )
343
369
}
344
370
345
- // Attempt to auto discover the provider
346
- provider , err := utils .AutoDiscoverProvider (ctx , clientset )
347
- if err != nil {
348
- setupLog .Error (err , "Auto discovery of Provider failed" )
349
- os .Exit (1 )
371
+ var provider v1.Provider
372
+ if userDefinedProvider == v1 .ProviderNone {
373
+ // Attempt to auto discover the provider
374
+ provider , err = utils .AutoDiscoverProvider (ctx , clientset )
375
+ if err != nil {
376
+ setupLog .Error (err , "Auto discovery of Provider failed" )
377
+ os .Exit (1 )
378
+ }
379
+ setupLog .WithValues ("provider" , provider ).Info ("Checking type of cluster" )
380
+ } else {
381
+ provider = userDefinedProvider
382
+ setupLog .WithValues ("provider" , provider ).Info ("Using user defined cluster type" )
350
383
}
351
- setupLog .WithValues ("provider" , provider ).Info ("Checking type of cluster" )
352
384
353
385
// Determine if we're running in single or multi-tenant mode.
354
386
multiTenant , err := utils .MultiTenant (ctx , clientset )
0 commit comments