Skip to content

Commit c2ce6ec

Browse files
Merge pull request 'feat(azure/upgrade) : added cluster upgrade command support for Azure' (#133) from azure/upgrade into main
Reviewed-on: https://gitea.obmondo.com/EnableIT/kubeaid-bootstrap-script/pulls/133
2 parents 2b58ca4 + 4430a59 commit c2ce6ec

File tree

13 files changed

+200
-72
lines changed

13 files changed

+200
-72
lines changed

cmd/cluster/upgrade/aws.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ import (
1111
var AWSCmd = &cobra.Command{
1212
Use: "aws",
1313

14-
Short: "Trigger Kubernetes version upgrade of the provisioned AWS based cluster",
14+
Short: "Trigger Kubernetes version upgrade for the provisioned AWS based cluster",
1515

1616
Run: func(cmd *cobra.Command, args []string) {
1717
core.UpgradeCluster(cmd.Context(), skipPRFlow, core.UpgradeClusterArgs{
1818
NewKubernetesVersion: kubernetesVersion,
1919

20-
CloudSpecificUpdates: aws.MachineTemplateUpdates{
20+
CloudSpecificUpdates: aws.AWSMachineTemplateUpdates{
2121
AMIID: newAMIID,
2222
},
2323
})

cmd/cluster/upgrade/azure.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package upgrade
2+
3+
import (
4+
"github.com/spf13/cobra"
5+
6+
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/cloud/azure"
7+
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/constants"
8+
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/core"
9+
)
10+
11+
var AzureCmd = &cobra.Command{
12+
Use: "azure",
13+
14+
Short: "Trigger Kubernetes version upgrade for the provisioned Azure based cluster",
15+
16+
Run: func(cmd *cobra.Command, args []string) {
17+
core.UpgradeCluster(cmd.Context(), skipPRFlow, core.UpgradeClusterArgs{
18+
NewKubernetesVersion: kubernetesVersion,
19+
20+
CloudSpecificUpdates: azure.AzureMachineTemplateUpdates{
21+
ImageID: newImageID,
22+
},
23+
})
24+
},
25+
}
26+
27+
var newImageID string
28+
29+
func init() {
30+
// Flags.
31+
32+
AzureCmd.PersistentFlags().
33+
StringVar(&newImageID, constants.FlagNameImageID, "", "ID of the image which supports the new Kubernetes version")
34+
}

go.mod

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ require (
4242
k8s.io/kubernetes v1.33.1
4343
sigs.k8s.io/cluster-api v1.9.6
4444
sigs.k8s.io/cluster-api-provider-aws/v2 v2.8.2
45+
sigs.k8s.io/cluster-api-provider-azure v1.19.4
4546
sigs.k8s.io/controller-runtime v0.20.4
4647
)
4748

@@ -50,6 +51,7 @@ require (
5051
dario.cat/mergo v1.0.2 // indirect
5152
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect
5253
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect
54+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 // indirect
5355
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
5456
github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect
5557
github.com/BurntSushi/toml v1.5.0 // indirect
@@ -63,6 +65,7 @@ require (
6365
github.com/argoproj/gitops-engine v0.7.1-0.20250328191959-6d3cf122b03f // indirect
6466
github.com/argoproj/pkg v0.13.7-0.20230626144333-d56162821bd1 // indirect
6567
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
68+
github.com/asaskevich/govalidator/v11 v11.0.2-0.20250122183457-e11347878e23 // indirect
6669
github.com/aws/aws-sdk-go v1.55.7 // indirect
6770
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect
6871
github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect
@@ -265,6 +268,7 @@ require (
265268
go.uber.org/multierr v1.11.0 // indirect
266269
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
267270
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect
271+
golang.org/x/mod v0.24.0 // indirect
268272
golang.org/x/net v0.40.0 // indirect
269273
golang.org/x/oauth2 v0.30.0 // indirect
270274
golang.org/x/sync v0.14.0 // indirect

go.sum

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
cel.dev/expr v0.20.0 h1:OunBvVCfvpWlt4dN7zg3FM6TDkzOePe1+foGJ9AXeeI=
2+
cel.dev/expr v0.20.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
13
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
24
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
35
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
@@ -9,6 +11,7 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
911
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
1012
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk=
1113
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
14+
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU=
1215
github.com/Azure/azure-sdk-for-go/profile/p20200901 v0.1.1 h1:V+jvbKRDe7XkRpBJWz/U1kz9W3I6WVJG/vxbU479Gek=
1316
github.com/Azure/azure-sdk-for-go/profile/p20200901 v0.1.1/go.mod h1:Qxz7WFkQPWufw8kAxZnjN8O9zCDm5FMWL2o0AFFgp/g=
1417
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U=
@@ -21,6 +24,10 @@ github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8U
2124
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA=
2225
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/authorization/armauthorization/v2 v2.2.0 h1:Hp+EScFOu9HeCbeW8WU2yQPJd4gGwhMgKxWe+G6jNzw=
2326
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/authorization/armauthorization/v2 v2.2.0/go.mod h1:/pz8dyNQe+Ey3yBp/XuYz7oqX8YDNWVpPB0hH3XWfbc=
27+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4=
28+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I=
29+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do=
30+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0/go.mod h1:LRr2FzBTQlONPPa5HREE5+RjSCTXl7BwOvYOaWTqCaI=
2431
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v3 v3.1.0 h1:2qsIIvxVT+uE6yrNldntJKlLRgxGbZ85kgtz5SNBhMw=
2532
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v3 v3.1.0/go.mod h1:AW8VEadnhw9xox+VaVd9sP7NjzOAnaZBLRH6Tq3cJ38=
2633
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi v1.2.0 h1:z4YeiSXxnUI+PqB46Yj6MZA3nwb1CcJIkEMDrzUd8Cs=
@@ -31,6 +38,8 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.8.0
3138
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.8.0/go.mod h1:DWAciXemNf++PQJLeXUB4HHH5OpsAh12HZnu2wXE1jA=
3239
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.1 h1:lhZdRq7TIx0GJQvSyX2Si406vrYsov2FXGp/RnSEtcs=
3340
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.1/go.mod h1:8cl44BDmi+effbARHMQjgOKA2AYvcohNm7KEt42mSV8=
41+
github.com/Azure/azure-service-operator/v2 v2.11.0 h1:YOSYBKdBqUMh2uGx1wrf5QTSC76NCLA6O8u9ZktA6Ck=
42+
github.com/Azure/azure-service-operator/v2 v2.11.0/go.mod h1:HxzKA61dKVQDusxCMOswxU4zX+vNb91E42jNDZjG6d4=
3443
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg=
3544
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
3645
github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
@@ -78,6 +87,8 @@ github.com/alicebob/miniredis/v2 v2.33.0/go.mod h1:MhP4a3EU7aENRi9aO+tHfTBZicLqQ
7887
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
7988
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
8089
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
90+
github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ=
91+
github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw=
8192
github.com/argoproj/argo-cd/v2 v2.14.11 h1:vkw8Ib/fOGsWD7HSUw8+5yXbXPYkGIJqs0wA2h9MX2s=
8293
github.com/argoproj/argo-cd/v2 v2.14.11/go.mod h1:WG5c709ApToZks7KZrIW2IqaN3vSxrwIQ7ojR5o04jw=
8394
github.com/argoproj/gitops-engine v0.7.1-0.20250328191959-6d3cf122b03f h1:T18BJdtZF/HWdkyCqcNI6kQ3SbIomn6g+AZtZtvQUjE=
@@ -88,6 +99,8 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd
8899
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
89100
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
90101
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
102+
github.com/asaskevich/govalidator/v11 v11.0.2-0.20250122183457-e11347878e23 h1:I+Cy77zrFmVWIHOZaxiNV4L7w9xuVux9LMqAblGzvdE=
103+
github.com/asaskevich/govalidator/v11 v11.0.2-0.20250122183457-e11347878e23/go.mod h1:S7DsXubvw3xBC8rSI+qmzcTNw7xEND0ojHPqglh/whY=
91104
github.com/aws/aws-sdk-go v1.44.289/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
92105
github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE=
93106
github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
@@ -132,6 +145,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjK
132145
github.com/aws/smithy-go v1.22.3 h1:Z//5NuZCSW6R4PhQ93hShNbyBbn8BWCmCVCt+Q8Io5k=
133146
github.com/aws/smithy-go v1.22.3/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
134147
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
148+
github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o=
149+
github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
135150
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
136151
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
137152
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -399,6 +414,8 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z
399414
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
400415
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
401416
github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
417+
github.com/google/cel-go v0.24.1 h1:jsBCtxG8mM5wiUJDSGUqU0K7Mtr3w7Eyv00rw4DiZxI=
418+
github.com/google/cel-go v0.24.1/go.mod h1:Hdf9TqOaTNSFQA1ybQaRqATVoK7m/zcf7IMhGXP5zI8=
402419
github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw=
403420
github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw=
404421
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
@@ -467,7 +484,7 @@ github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISH
467484
github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk=
468485
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
469486
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
470-
github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
487+
github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
471488
github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw=
472489
github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU=
473490
github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4=
@@ -485,6 +502,8 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2
485502
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
486503
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
487504
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
505+
github.com/jellydator/ttlcache/v3 v3.3.0 h1:BdoC9cE81qXfrxeb9eoJi9dWrdhSuwXMAnHTbnBm4Wc=
506+
github.com/jellydator/ttlcache/v3 v3.3.0/go.mod h1:bj2/e0l4jRnQdrnSTaGTsh4GSXvMjQcy41i7th0GVGw=
488507
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
489508
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
490509
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
@@ -727,6 +746,8 @@ github.com/sagikazarmark/locafero v0.9.0 h1:GbgQGNtTrEmddYDSAH9QLRyfAHY12md+8YFT
727746
github.com/sagikazarmark/locafero v0.9.0/go.mod h1:UBUyz37V+EdMS3hDF3QWIiVr/2dPrx49OMO0Bn0hJqk=
728747
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
729748
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
749+
github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc=
750+
github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU=
730751
github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU=
731752
github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U=
732753
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
@@ -764,6 +785,8 @@ github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
764785
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
765786
github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4=
766787
github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4=
788+
github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs=
789+
github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo=
767790
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
768791
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
769792
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
@@ -841,8 +864,8 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 h1:m639+
841864
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo=
842865
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0 h1:wpMfgF8E1rkrT1Z6meFh1NDtownE9Ii3n3X2GJYjsaU=
843866
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0/go.mod h1:wAy0T/dUbs468uOlkT31xjvqQgEVXv58BRFWEgn5v/0=
844-
go.opentelemetry.io/otel/exporters/prometheus v0.44.0 h1:08qeJgaPC0YEBu2PQMbqU3rogTlyzpjhCI2b58Yn00w=
845-
go.opentelemetry.io/otel/exporters/prometheus v0.44.0/go.mod h1:ERL2uIeBtg4TxZdojHUwzZfIFlUIjZtxubT5p4h1Gjg=
867+
go.opentelemetry.io/otel/exporters/prometheus v0.57.0 h1:AHh/lAP1BHrY5gBwk8ncc25FXWm/gmmY3BX258z5nuk=
868+
go.opentelemetry.io/otel/exporters/prometheus v0.57.0/go.mod h1:QpFWz1QxqevfjwzYdbMb4Y1NnlJvqSGwyuU0B4iuc9c=
846869
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0 h1:dEZWPjVN22urgYCza3PXRUGEyCB++y1sAqm6guWFesk=
847870
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0/go.mod h1:sTt30Evb7hJB/gEk27qLb1+l9n4Tb8HvHkR0Wx3S6CU=
848871
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 h1:VhlEQAPp9R1ktYfrPk5SOryw1e9LDDTZCbIPFrho0ec=
@@ -1175,6 +1198,8 @@ sigs.k8s.io/cluster-api v1.9.6 h1:2jZ434qC0bzrPQzmRDm4/b0PZWVMnOocoCjsAonQN5Q=
11751198
sigs.k8s.io/cluster-api v1.9.6/go.mod h1:DyqyZ4jRvKGKewDRn1Q4OCHaVjsdTogymbO6mrgHEDI=
11761199
sigs.k8s.io/cluster-api-provider-aws/v2 v2.8.2 h1:1RKzXkpnONouxBLxVa1xUtpYRfpG+Ek+9uT56WKyN4k=
11771200
sigs.k8s.io/cluster-api-provider-aws/v2 v2.8.2/go.mod h1:ubZXYyieYt+I4jQFJ47J9Hq4W3zPernTWXlIfIZnB3Y=
1201+
sigs.k8s.io/cluster-api-provider-azure v1.19.4 h1:lqbyaDLKywr5BsUeP7DCoC0ubDLNVGKXVVxJ1lTPghw=
1202+
sigs.k8s.io/cluster-api-provider-azure v1.19.4/go.mod h1:vgIOjI5i9W+yxCUNJx0Bu/jvBzFVNkfV/xUt4uX/oL0=
11781203
sigs.k8s.io/controller-runtime v0.19.6 h1:fuq53qTLQ7aJTA7aNsklNnu7eQtSFqJUomOyM+phPLk=
11791204
sigs.k8s.io/controller-runtime v0.19.6/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
11801205
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=

pkg/cloud/aws/aws.go

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@ package aws
22

33
import (
44
"context"
5-
"fmt"
65

76
awsSDKGoV2Config "github.com/aws/aws-sdk-go-v2/config"
87
"github.com/aws/aws-sdk-go-v2/service/ec2"
98
"github.com/aws/aws-sdk-go-v2/service/iam"
109
"github.com/aws/aws-sdk-go-v2/service/s3"
1110

1211
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/cloud"
13-
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/utils"
1412
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/utils/assert"
1513
)
1614

@@ -33,23 +31,3 @@ func NewAWSCloudProvider() cloud.CloudProvider {
3331
ec2Client: ec2.NewFromConfig(awsSDKConfig),
3432
}
3533
}
36-
37-
func (*AWS) UpdateCapiClusterValuesFileWithCloudSpecificDetails(ctx context.Context,
38-
capiClusterValuesFilePath string,
39-
_updates any,
40-
) {
41-
updates, ok := _updates.(MachineTemplateUpdates)
42-
assert.Assert(ctx, ok, "Wrong type of MachineTemplateUpdates object passed")
43-
44-
// Update the Control Plane AMI ID.
45-
_ = utils.ExecuteCommandOrDie(fmt.Sprintf(
46-
"yq -i -y '(.aws.controlPlane.ami.id) = \"%s\"' %s",
47-
updates.AMIID, capiClusterValuesFilePath,
48-
))
49-
50-
// Update AMI ID in each node-group definition.
51-
_ = utils.ExecuteCommandOrDie(fmt.Sprintf(
52-
"yq -i -y '(.aws.nodeGroups[].ami.id) = \"%s\"' %s",
53-
updates.AMIID, capiClusterValuesFilePath,
54-
))
55-
}

pkg/cloud/aws/update_machine_template.go renamed to pkg/cloud/aws/cluster_upgrade.go

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,20 @@ import (
1010
"sigs.k8s.io/controller-runtime/pkg/client"
1111

1212
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/config"
13+
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/utils"
1314
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/utils/assert"
1415
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/utils/kubernetes"
1516
)
1617

17-
type MachineTemplateUpdates struct {
18+
type AWSMachineTemplateUpdates struct {
1819
AMIID string
1920
}
2021

21-
func (*AWS) UpdateMachineTemplate(ctx context.Context, clusterClient client.Client, _updates any) {
22-
updates, ok := _updates.(MachineTemplateUpdates)
22+
func (*AWS) UpdateMachineTemplate(ctx context.Context, clusterClient client.Client, updates any) {
23+
parsedUpdates, ok := updates.(AWSMachineTemplateUpdates)
2324
assert.Assert(ctx, ok, "Wrong type of MachineTemplateUpdates object passed")
2425

25-
// Get the AWSMachineTemplate resource referred by KubeadmControlPlane resource.
26+
// Get the AWSMachineTemplate currently being referred by the KubeadmControlPlane.
2627
awsMachineTemplate := &capaV1Beta2.AWSMachineTemplate{
2728
ObjectMeta: v1.ObjectMeta{
2829
Name: fmt.Sprintf("%s-control-plane", config.ParsedGeneralConfig.Cluster.Name),
@@ -47,11 +48,31 @@ func (*AWS) UpdateMachineTemplate(ctx context.Context, clusterClient client.Clie
4748
"Deleted the current AWSMachineTemplate resource used by the KubeadmControlPlane resource",
4849
)
4950

50-
// Recreate the AWSMachineTemplate.
51-
awsMachineTemplate.Spec.Template.Spec.AMI = capaV1Beta2.AMIReference{
52-
ID: &updates.AMIID,
53-
}
51+
// Recreate the updated AWSMachineTemplate.
52+
53+
awsMachineTemplate.Spec.Template.Spec.AMI.ID = &parsedUpdates.AMIID
5454
awsMachineTemplate.ResourceVersion = ""
55+
5556
err = clusterClient.Create(ctx, awsMachineTemplate, &client.CreateOptions{})
5657
assert.AssertErrNil(ctx, err, "Failed recreating the AWSMachineTemplate")
5758
}
59+
60+
func (*AWS) UpdateCapiClusterValuesFileWithCloudSpecificDetails(ctx context.Context,
61+
capiClusterValuesFilePath string,
62+
updates any,
63+
) {
64+
parsedUpdates, ok := updates.(AWSMachineTemplateUpdates)
65+
assert.Assert(ctx, ok, "Wrong type of MachineTemplateUpdates object passed")
66+
67+
// Update AMI ID for the Control Plane.
68+
_ = utils.ExecuteCommandOrDie(fmt.Sprintf(
69+
"yq -i -y '(.aws.controlPlane.ami.id) = \"%s\"' %s",
70+
parsedUpdates.AMIID, capiClusterValuesFilePath,
71+
))
72+
73+
// Update AMI ID in each node-group definition.
74+
_ = utils.ExecuteCommandOrDie(fmt.Sprintf(
75+
"yq -i -y '(.aws.nodeGroups[].ami.id) = \"%s\"' %s",
76+
parsedUpdates.AMIID, capiClusterValuesFilePath,
77+
))
78+
}

pkg/cloud/azure/azure.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/authorization/armauthorization/v2"
1111
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi"
1212
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage"
13-
"sigs.k8s.io/controller-runtime/pkg/client"
1413

1514
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/cloud"
1615
"github.com/Obmondo/kubeaid-bootstrap-script/pkg/config"
@@ -85,18 +84,3 @@ func NewAzureCloudProvider() cloud.CloudProvider {
8584
storageClientFactory,
8685
}
8786
}
88-
89-
func (a *Azure) UpdateCapiClusterValuesFileWithCloudSpecificDetails(ctx context.Context,
90-
capiClusterValuesFilePath string,
91-
_updates any,
92-
) {
93-
panic("unimplemented")
94-
}
95-
96-
func (a *Azure) UpdateMachineTemplate(
97-
ctx context.Context,
98-
clusterClient client.Client,
99-
_updates any,
100-
) {
101-
panic("unimplemented")
102-
}

0 commit comments

Comments
 (0)