63
63
}
64
64
65
65
helmReleaseGVR = schema.GroupVersionResource {
66
+ Group : "helm.toolkit.fluxcd.io" ,
67
+ Version : "v2" ,
68
+ Resource : "helmreleases" ,
69
+ }
70
+
71
+ helmReleaseGVRV2beta2 = schema.GroupVersionResource {
66
72
Group : "helm.toolkit.fluxcd.io" ,
67
73
Version : "v2beta2" ,
68
74
Resource : "helmreleases" ,
@@ -75,12 +81,24 @@ var (
75
81
}
76
82
77
83
helmRepositoryGVR = schema.GroupVersionResource {
84
+ Group : "source.toolkit.fluxcd.io" ,
85
+ Version : "v1" ,
86
+ Resource : "helmrepositories" ,
87
+ }
88
+
89
+ helmRepositoryGVRv1beta2 = schema.GroupVersionResource {
78
90
Group : "source.toolkit.fluxcd.io" ,
79
91
Version : "v1beta2" ,
80
92
Resource : "helmrepositories" ,
81
93
}
82
94
83
95
helmChartGVR = schema.GroupVersionResource {
96
+ Group : "source.toolkit.fluxcd.io" ,
97
+ Version : "v1" ,
98
+ Resource : "helmcharts" ,
99
+ }
100
+
101
+ helmChartGVRv1beta2 = schema.GroupVersionResource {
84
102
Group : "source.toolkit.fluxcd.io" ,
85
103
Version : "v1beta2" ,
86
104
Resource : "helmcharts" ,
@@ -284,14 +302,24 @@ func helmReleases(dc *dynamic.DynamicClient) ([]helmv2beta2.HelmRelease, error)
284
302
List (context .TODO (), metav1.ListOptions {})
285
303
if err != nil {
286
304
if strings .Contains (err .Error (), "the server could not find the requested resource" ) {
287
- // let's try the deprecated v2beta1
288
- helmReleases , err = dc .Resource (helmReleaseGVRV2beta1 ).
305
+ // let's try the deprecated v2beta2
306
+ helmReleases , err = dc .Resource (helmReleaseGVRV2beta2 ).
289
307
Namespace ("" ).
290
308
List (context .TODO (), metav1.ListOptions {})
291
309
if err != nil {
292
310
if strings .Contains (err .Error (), "the server could not find the requested resource" ) {
293
- // helm-controller is not mandatory, ignore error
294
- return releases , nil
311
+ // let's try the deprecated v2beta1
312
+ helmReleases , err = dc .Resource (helmReleaseGVRV2beta1 ).
313
+ Namespace ("" ).
314
+ List (context .TODO (), metav1.ListOptions {})
315
+ if err != nil {
316
+ if strings .Contains (err .Error (), "the server could not find the requested resource" ) {
317
+ // helm-controller is not mandatory, ignore error
318
+ return releases , nil
319
+ } else {
320
+ return nil , err
321
+ }
322
+ }
295
323
} else {
296
324
return nil , err
297
325
}
@@ -405,7 +433,12 @@ func State(c *kubernetes.Clientset, dc *dynamic.DynamicClient) (*FluxState, erro
405
433
Namespace ("" ).
406
434
List (context .TODO (), metav1.ListOptions {})
407
435
if err != nil {
408
- return nil , err
436
+ if strings .Contains (err .Error (), "the server could not find the requested resource" ) {
437
+ // tofu-controller is not mandatory, ignore error
438
+ tfResources = & unstructured.UnstructuredList {}
439
+ } else {
440
+ return nil , err
441
+ }
409
442
}
410
443
for _ , t := range tfResources .Items {
411
444
unstructured := t .UnstructuredContent ()
@@ -449,43 +482,28 @@ func State(c *kubernetes.Clientset, dc *dynamic.DynamicClient) (*FluxState, erro
449
482
fluxState .Kustomizations = append (fluxState .Kustomizations , kustomization )
450
483
}
451
484
452
- helmReleases , err := dc .Resource (helmReleaseGVR ).
485
+ helmReleases , err := helmReleases (dc )
486
+ if err != nil {
487
+ return nil , err
488
+ }
489
+ fluxState .HelmReleases = helmReleases
490
+
491
+ helmRepositories , err := dc .Resource (helmRepositoryGVR ).
453
492
Namespace ("" ).
454
493
List (context .TODO (), metav1.ListOptions {})
455
494
if err != nil {
456
495
if strings .Contains (err .Error (), "the server could not find the requested resource" ) {
457
- // let's try the deprecated v2beta1
458
- helmReleases , err = dc .Resource (helmReleaseGVRV2beta1 ).
496
+ // let's try the deprecated v1beta2
497
+ helmRepositories , err = dc .Resource (helmRepositoryGVRv1beta2 ).
459
498
Namespace ("" ).
460
499
List (context .TODO (), metav1.ListOptions {})
461
500
if err != nil {
462
- if ! strings .Contains (err .Error (), "the server could not find the requested resource" ) {
463
- return nil , err
464
- } else {
465
- // helm-controller is not mandatory, ignore error
466
- helmReleases = & unstructured.UnstructuredList {}
467
- }
501
+ return nil , err
468
502
}
469
503
} else {
470
504
return nil , err
471
505
}
472
506
}
473
- for _ , h := range helmReleases .Items {
474
- unstructured := h .UnstructuredContent ()
475
- var helmRelease helmv2beta2.HelmRelease
476
- err = runtime .DefaultUnstructuredConverter .FromUnstructured (unstructured , & helmRelease )
477
- if err != nil {
478
- return nil , err
479
- }
480
- fluxState .HelmReleases = append (fluxState .HelmReleases , helmRelease )
481
- }
482
-
483
- helmRepositories , err := dc .Resource (helmRepositoryGVR ).
484
- Namespace ("" ).
485
- List (context .TODO (), metav1.ListOptions {})
486
- if err != nil {
487
- return nil , err
488
- }
489
507
for _ , h := range helmRepositories .Items {
490
508
unstructured := h .UnstructuredContent ()
491
509
var helmRepository sourcev1beta2.HelmRepository
@@ -500,7 +518,17 @@ func State(c *kubernetes.Clientset, dc *dynamic.DynamicClient) (*FluxState, erro
500
518
Namespace ("" ).
501
519
List (context .TODO (), metav1.ListOptions {})
502
520
if err != nil {
503
- return nil , err
521
+ if strings .Contains (err .Error (), "the server could not find the requested resource" ) {
522
+ // let's try the deprecated v1beta2
523
+ helmCharts , err = dc .Resource (helmChartGVRv1beta2 ).
524
+ Namespace ("" ).
525
+ List (context .TODO (), metav1.ListOptions {})
526
+ if err != nil {
527
+ return nil , err
528
+ }
529
+ } else {
530
+ return nil , err
531
+ }
504
532
}
505
533
for _ , h := range helmCharts .Items {
506
534
unstructured := h .UnstructuredContent ()
0 commit comments