@@ -146,12 +146,12 @@ func runClusterAdd(ctx context.Context, opts *ClusterAddOptions) error {
146
146
return fmt .Errorf ("failed getting server for context \" %s\" : %w" , opts .kubeContext , err )
147
147
}
148
148
149
- csdpToken := cfConfig .GetCurrentContext ().Token
150
- k , nameSuffix := createAddClusterKustomization (ingressUrl , opts .clusterName , server , csdpToken , * runtime .RuntimeVersion )
149
+ log .G (ctx ).Info ("Building \" add-cluster\" manifests" )
151
150
152
- manifests , err := kustutil .BuildKustomization (k )
151
+ csdpToken := cfConfig .GetCurrentContext ().Token
152
+ manifests , nameSuffix , err := createAddClusterManifests (ingressUrl , opts .clusterName , server , csdpToken , * runtime .RuntimeVersion )
153
153
if err != nil {
154
- return fmt .Errorf ("failed building kustomization : %w" , err )
154
+ return fmt .Errorf ("failed getting add-cluster resources : %w" , err )
155
155
}
156
156
157
157
if opts .dryRun {
@@ -164,7 +164,9 @@ func runClusterAdd(ctx context.Context, opts *ClusterAddOptions) error {
164
164
return fmt .Errorf ("failed applying manifests to cluster: %w" , err )
165
165
}
166
166
167
- return kubeutil .WaitForJob (ctx , opts .kubeFactory , "kube-system" , fmt .Sprintf ("%s%s" , store .Get ().AddClusterJobName , nameSuffix ))
167
+ jobName := strings .TrimSuffix (store .Get ().AddClusterJobName , "-" ) + nameSuffix
168
+
169
+ return kubeutil .WaitForJob (ctx , opts .kubeFactory , "kube-system" , jobName )
168
170
}
169
171
170
172
func setClusterName (ctx context.Context , opts * ClusterAddOptions ) error {
@@ -204,7 +206,7 @@ func sanitizeClusterName(name string) string {
204
206
205
207
name = strings .ToLower (name )
206
208
name = invalidDNSNameChars .ReplaceAllString (name , "-" )
207
- // saving space for 2 chars in case a cluster with the sanitized name already exists
209
+ // saving space for 2 chars in case a cluster with the sanitized name already exists
208
210
if len (name ) > (maxDNSNameLength - 2 ) {
209
211
name = name [:(maxDNSNameLength - 2 )]
210
212
}
@@ -217,7 +219,7 @@ func ensureNoClusterNameDuplicates(ctx context.Context, name string, runtimeName
217
219
if err != nil {
218
220
return "" , fmt .Errorf ("failed to get clusters list: %w" , err )
219
221
}
220
-
222
+
221
223
suffix := getSuffixToClusterName (clusters , name , name , 0 )
222
224
if suffix != 0 {
223
225
return fmt .Sprintf ("%s-%d" , name , suffix ), nil
@@ -239,11 +241,11 @@ func getSuffixToClusterName(clusters []model.Cluster, name string, tempName stri
239
241
return counter
240
242
}
241
243
242
- func createAddClusterKustomization (ingressUrl , contextName , server , csdpToken , version string ) (* kusttypes. Kustomization , string ) {
244
+ func createAddClusterManifests (ingressUrl , contextName , server , csdpToken , version string ) ([] byte , string , error ) {
243
245
nameSuffix := getClusterResourcesNameSuffix ()
244
246
resourceUrl := store .AddClusterDefURL
245
- if strings .HasPrefix (resourceUrl , "http" ) {
246
- resourceUrl = fmt .Sprintf ("%s?ref=v %s" , resourceUrl , version )
247
+ if strings .HasPrefix (resourceUrl , "http" ) && ! strings . Contains ( resourceUrl , "?ref=" ) {
248
+ resourceUrl = fmt .Sprintf ("%s?ref=%s" , resourceUrl , version )
247
249
}
248
250
249
251
k := & kusttypes.Kustomization {
@@ -284,7 +286,23 @@ func createAddClusterKustomization(ingressUrl, contextName, server, csdpToken, v
284
286
}
285
287
k .FixKustomizationPostUnmarshalling ()
286
288
util .Die (k .FixKustomizationPreMarshalling ())
287
- return k , nameSuffix
289
+
290
+ manifests , err := kustutil .BuildKustomization (k )
291
+ if err != nil {
292
+ // go to fallback add-cluster manifests
293
+ // remove this once all manifests has been moved official-csdp repo.
294
+ // once we are sure no one will be looking for those manifests in cli-v2 we can remove this.
295
+ fallbackResourceUrl := fmt .Sprintf ("%s?ref=v%s" , store .FallbackAddClusterDefURL , version )
296
+ k .Resources [0 ] = fallbackResourceUrl
297
+ log .G ().Warnf ("Failed to get \" add-cluster\" manifests from %s, using fallback of %s" , resourceUrl , fallbackResourceUrl )
298
+
299
+ manifests , err = kustutil .BuildKustomization (k )
300
+ if err != nil {
301
+ return nil , "" , fmt .Errorf ("failed to build kustomization: %w" , err )
302
+ }
303
+ }
304
+
305
+ return manifests , nameSuffix , nil
288
306
}
289
307
290
308
func getClusterResourcesNameSuffix () string {
0 commit comments