@@ -216,6 +216,7 @@ func (r *ClusterAddonReconciler) Reconcile(ctx context.Context, req reconcile.Re
216
216
in := & templateAndApplyClusterAddonInput {
217
217
clusterAddonChartPath : releaseAsset .ClusterAddonChartPath (),
218
218
clusterAddonValuesPath : releaseAsset .ClusterAddonValuesPath (),
219
+ kubernetesVersion : releaseAsset .Meta .Versions .Kubernetes ,
219
220
clusterAddon : clusterAddon ,
220
221
cluster : cluster ,
221
222
restConfig : restConfig ,
@@ -323,6 +324,7 @@ func (r *ClusterAddonReconciler) Reconcile(ctx context.Context, req reconcile.Re
323
324
// src - /tmp/cluster-stacks/docker-ferrol-1-27-v1/docker-ferrol-1-27-cluster-addon-v1.tgz
324
325
// dst - /tmp/cluster-stacks/docker-ferrol-1-27-v1/docker-ferrol-1-27-cluster-addon-v1/
325
326
in .oldDestinationClusterAddonChartDir = strings .TrimSuffix (oldRelease .ClusterAddonChartPath (), ".tgz" )
327
+ in .oldKubernetesVersion = oldRelease .Meta .Versions .Kubernetes
326
328
327
329
if err := unTarContent (oldRelease .ClusterAddonChartPath (), in .oldDestinationClusterAddonChartDir ); err != nil {
328
330
return reconcile.Result {}, fmt .Errorf ("failed to untar old cluster stack cluster addon chart: %q: %w" , oldRelease .ClusterAddonChartPath (), err )
@@ -512,7 +514,7 @@ func (r *ClusterAddonReconciler) getNewReleaseObjects(ctx context.Context, in *t
512
514
}
513
515
}
514
516
515
- helmTemplate , err := helmTemplateClusterAddon (filepath .Join (in .newDestinationClusterAddonChartDir , stage .Name ), newBuildTemplate )
517
+ helmTemplate , err := helmTemplateClusterAddon (filepath .Join (in .newDestinationClusterAddonChartDir , stage .Name ), newBuildTemplate , in . kubernetesVersion )
516
518
if err != nil {
517
519
return nil , fmt .Errorf ("failed to template new helm chart of the latest cluster stack: %w" , err )
518
520
}
@@ -551,7 +553,7 @@ func (r *ClusterAddonReconciler) getOldReleaseObjects(ctx context.Context, in *t
551
553
return nil , fmt .Errorf ("failed to build template from the old cluster stack cluster addon values: %w" , err )
552
554
}
553
555
554
- helmTemplate , err := helmTemplateClusterAddon (oldRelease .ClusterAddonChartPath (), buildTemplate )
556
+ helmTemplate , err := helmTemplateClusterAddon (oldRelease .ClusterAddonChartPath (), buildTemplate , oldRelease . Meta . Versions . Kubernetes )
555
557
if err != nil {
556
558
return nil , fmt .Errorf ("failed to template helm chart: %w" , err )
557
559
}
@@ -588,7 +590,7 @@ func (r *ClusterAddonReconciler) getOldReleaseObjects(ctx context.Context, in *t
588
590
}
589
591
}
590
592
591
- helmTemplate , err := helmTemplateClusterAddon (filepath .Join (in .oldDestinationClusterAddonChartDir , stage .Name ), newBuildTemplate )
593
+ helmTemplate , err := helmTemplateClusterAddon (filepath .Join (in .oldDestinationClusterAddonChartDir , stage .Name ), newBuildTemplate , oldRelease . Meta . Versions . Kubernetes )
592
594
if err != nil {
593
595
return nil , fmt .Errorf ("failed to template new helm chart: %w" , err )
594
596
}
@@ -664,6 +666,8 @@ type templateAndApplyClusterAddonInput struct {
664
666
// clusteraddon.yaml
665
667
clusterAddonConfigPath string
666
668
clusterAddon * csov1alpha1.ClusterAddon
669
+ kubernetesVersion string
670
+ oldKubernetesVersion string
667
671
cluster * clusterv1.Cluster
668
672
restConfig * rest.Config
669
673
addonStagesInput
@@ -727,7 +731,7 @@ func (r *ClusterAddonReconciler) templateAndApplyClusterAddonHelmChart(ctx conte
727
731
return false , fmt .Errorf ("failed to build template from cluster addon values: %w" , err )
728
732
}
729
733
730
- helmTemplate , err := helmTemplateClusterAddon (clusterAddonChart , buildTemplate )
734
+ helmTemplate , err := helmTemplateClusterAddon (clusterAddonChart , buildTemplate , in . kubernetesVersion )
731
735
if err != nil {
732
736
return false , fmt .Errorf ("failed to template helm chart: %w" , err )
733
737
}
@@ -1017,7 +1021,7 @@ func (r *ClusterAddonReconciler) templateNewClusterStackAddonHelmChart(ctx conte
1017
1021
return true , nil , nil , nil
1018
1022
}
1019
1023
1020
- oldHelmTemplate , err = helmTemplateClusterAddon (oldClusterStackSubDirPath , oldBuildTemplate )
1024
+ oldHelmTemplate , err = helmTemplateClusterAddon (oldClusterStackSubDirPath , oldBuildTemplate , in . oldKubernetesVersion )
1021
1025
if err != nil {
1022
1026
conditions .MarkFalse (
1023
1027
in .clusterAddon ,
@@ -1061,7 +1065,7 @@ func (r *ClusterAddonReconciler) templateNewClusterStackAddonHelmChart(ctx conte
1061
1065
}
1062
1066
}
1063
1067
1064
- newHelmTemplate , err = helmTemplateClusterAddon (newClusterStackSubDirPath , newBuildTemplate )
1068
+ newHelmTemplate , err = helmTemplateClusterAddon (newClusterStackSubDirPath , newBuildTemplate , in . kubernetesVersion )
1065
1069
if err != nil {
1066
1070
conditions .MarkFalse (
1067
1071
in .clusterAddon ,
@@ -1088,7 +1092,7 @@ func helmTemplateNewClusterStack(in *templateAndApplyClusterAddonInput, name str
1088
1092
var buildTemplate []byte
1089
1093
1090
1094
newClusterStackSubDirPath := filepath .Join (in .newDestinationClusterAddonChartDir , name )
1091
- newHelmTemplate , err := helmTemplateClusterAddon (newClusterStackSubDirPath , buildTemplate )
1095
+ newHelmTemplate , err := helmTemplateClusterAddon (newClusterStackSubDirPath , buildTemplate , in . kubernetesVersion )
1092
1096
if err != nil {
1093
1097
return nil , fmt .Errorf ("failed to template new helm chart: %w" , err )
1094
1098
}
@@ -1231,15 +1235,15 @@ func buildTemplateFromClusterAddonValues(ctx context.Context, addonValuePath str
1231
1235
// Then it returns the path of the generated yaml file.
1232
1236
// Example: helm template /tmp/downloads/cluster-stacks/myprovider-myclusterstack-1-26-v2/myprovider-myclusterstack-1-26-v2.tgz
1233
1237
// The return yaml file path will be /tmp/downloads/cluster-stacks/myprovider-myclusterstack-1-26-v2/myprovider-myclusterstack-1-26-v2.tgz.yaml.
1234
- func helmTemplateClusterAddon (chartPath string , helmTemplate []byte ) ([]byte , error ) {
1238
+ func helmTemplateClusterAddon (chartPath string , helmTemplate []byte , kubernetesVersion string ) ([]byte , error ) {
1235
1239
helmCommand := "helm"
1236
1240
helmArgs := []string {"template" , "--include-crds" }
1237
1241
1238
1242
input := bytes .NewBuffer (helmTemplate )
1239
1243
1240
1244
var cmdOutput bytes.Buffer
1241
1245
1242
- helmArgs = append (helmArgs , "cluster-addon" , filepath .Base (chartPath ), "--namespace" , clusterAddonNamespace , "-f" , "-" )
1246
+ helmArgs = append (helmArgs , "--kube-version" , kubernetesVersion , " cluster-addon" , filepath .Base (chartPath ), "--namespace" , clusterAddonNamespace , "-f" , "-" )
1243
1247
helmTemplateCmd := exec .Command (helmCommand , helmArgs ... )
1244
1248
helmTemplateCmd .Stderr = os .Stderr
1245
1249
helmTemplateCmd .Dir = filepath .Dir (chartPath )
0 commit comments