Skip to content

Commit b221c86

Browse files
authored
Add support for k0s 1.33 (#2664)
* Add support for k0s 1.33 * f * f
1 parent e5a354b commit b221c86

File tree

11 files changed

+138
-49
lines changed

11 files changed

+138
-49
lines changed

Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ ADMIN_CONSOLE_CHART_REPO_OVERRIDE =
1010
ADMIN_CONSOLE_IMAGE_OVERRIDE =
1111
ADMIN_CONSOLE_MIGRATIONS_IMAGE_OVERRIDE =
1212
ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE =
13-
K0S_VERSION = v1.32.7+k0s.0
14-
K0S_GO_VERSION = v1.32.7+k0s.0
15-
PREVIOUS_K0S_VERSION ?= v1.31.11+k0s.0
16-
PREVIOUS_K0S_GO_VERSION ?= v1.31.11+k0s.0
13+
K0S_VERSION = v1.33.3+k0s.0
14+
K0S_GO_VERSION = v1.33.3+k0s.0
15+
PREVIOUS_K0S_VERSION ?= v1.32.7+k0s.0
16+
PREVIOUS_K0S_GO_VERSION ?= v1.32.7+k0s.0
1717
K0S_BINARY_SOURCE_OVERRIDE =
1818
TROUBLESHOOT_VERSION = v0.121.2
1919

cmd/buildtools/k0s.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -150,20 +150,15 @@ func getK0sVersion() (*semver.Version, error) {
150150
}
151151

152152
func getCalicoTag(opts addonComponentOptions) (string, error) {
153-
calicoVersion := getCalicoVersion(opts)
154-
constraints := mustParseSemverConstraints(latestPatchConstraint(calicoVersion))
153+
// TODO: Revert this check once securebuild 3.29.4 have been purged or made official
154+
if opts.upstreamVersion.Major() == 3 && opts.upstreamVersion.Minor() == 29 {
155+
return "v3.29.3", nil
156+
}
157+
158+
constraints := mustParseSemverConstraints(latestPatchConstraint(opts.upstreamVersion))
155159
tag, err := GetGreatestGitHubTag(opts.ctx, "projectcalico", "calico", constraints)
156160
if err != nil {
157161
return "", fmt.Errorf("failed to get calico release: %w", err)
158162
}
159163
return tag, nil
160164
}
161-
162-
func getCalicoVersion(opts addonComponentOptions) *semver.Version {
163-
// k0s versions prior to 1.31 use calico versions < 3.28,
164-
// but securebuild doesn't have versions prior to 3.28
165-
if opts.k0sVersion.LessThan(semver.MustParse("1.31")) {
166-
return semver.MustParse("3.28.0")
167-
}
168-
return opts.upstreamVersion
169-
}

cmd/installer/cli/join.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"syscall"
1010

1111
"github.com/AlecAivazis/survey/v2/terminal"
12-
k0sv1beta1 "github.com/k0sproject/k0s/pkg/apis/k0s/v1beta1"
1312
"github.com/replicatedhq/embedded-cluster/cmd/installer/goods"
1413
ecv1beta1 "github.com/replicatedhq/embedded-cluster/kinds/apis/v1beta1"
1514
"github.com/replicatedhq/embedded-cluster/kinds/types/join"
@@ -548,12 +547,11 @@ func applyJoinConfigurationOverrides(jcmd *join.JoinCommandResponse) error {
548547
}
549548

550549
func getFirstDefinedProfile() (string, error) {
551-
k0scfg, err := os.Open(runtimeconfig.K0sConfigPath)
550+
k0scfgBytes, err := os.ReadFile(runtimeconfig.K0sConfigPath)
552551
if err != nil {
553-
return "", fmt.Errorf("unable to open k0s config: %w", err)
552+
return "", fmt.Errorf("unable to read k0s config: %w", err)
554553
}
555-
defer k0scfg.Close()
556-
cfg, err := k0sv1beta1.ConfigFromReader(k0scfg)
554+
cfg, err := helpers.K0sConfigFromBytes(k0scfgBytes)
557555
if err != nil {
558556
return "", fmt.Errorf("unable to parse k0s config: %w", err)
559557
}

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ require (
2727
github.com/gorilla/mux v1.8.1
2828
github.com/gosimple/slug v1.15.0
2929
github.com/jedib0t/go-pretty/v6 v6.6.8
30-
github.com/k0sproject/k0s v1.32.8-0.20250721135808-006eb13a92bf
30+
github.com/k0sproject/k0s v1.33.4-0.20250721121212-4615902bc8c4
3131
github.com/ohler55/ojg v1.26.8
3232
github.com/onsi/ginkgo/v2 v2.23.4
3333
github.com/onsi/gomega v1.38.0
@@ -141,6 +141,7 @@ require (
141141
github.com/docker/docker-credential-helpers v0.9.3 // indirect
142142
github.com/docker/go-connections v0.5.0 // indirect
143143
github.com/docker/go-metrics v0.0.1 // indirect
144+
github.com/dustin/go-humanize v1.0.1 // indirect
144145
github.com/ebitengine/purego v0.8.4 // indirect
145146
github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect
146147
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
@@ -190,7 +191,7 @@ require (
190191
github.com/jmespath/go-jmespath v0.4.1-0.20220621161143-b0104c826a24 // indirect
191192
github.com/jmoiron/sqlx v1.4.0 // indirect
192193
github.com/k0sproject/dig v0.4.0 // indirect
193-
github.com/k0sproject/version v0.6.0 // indirect
194+
github.com/k0sproject/version v0.7.0 // indirect
194195
github.com/klauspost/compress v1.18.0 // indirect
195196
github.com/klauspost/pgzip v1.2.6 // indirect
196197
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
@@ -232,7 +233,6 @@ require (
232233
github.com/prometheus/client_model v0.6.2 // indirect
233234
github.com/prometheus/common v0.62.0 // indirect
234235
github.com/prometheus/procfs v0.15.1 // indirect
235-
github.com/rogpeppe/go-internal v1.14.1 // indirect
236236
github.com/rubenv/sql-migrate v1.8.0 // indirect
237237
github.com/sagikazarmark/locafero v0.9.0 // indirect
238238
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
@@ -300,7 +300,7 @@ require (
300300
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
301301
k8s.io/apiserver v0.33.3 // indirect
302302
k8s.io/component-base v0.33.3 // indirect
303-
k8s.io/kubelet v0.33.2 // indirect
303+
k8s.io/kubelet v0.33.3 // indirect
304304
k8s.io/metrics v0.33.3 // indirect
305305
oras.land/oras-go v1.2.6 // indirect
306306
periph.io/x/host/v3 v3.8.5 // indirect

go.sum

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -874,6 +874,8 @@ github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 h1:UhxFibDNY/bfvqU
874874
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
875875
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
876876
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
877+
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
878+
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
877879
github.com/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw=
878880
github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
879881
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
@@ -1223,10 +1225,10 @@ github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+
12231225
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
12241226
github.com/k0sproject/dig v0.4.0 h1:yBxFUUxNXAMGBg6b7c6ypxdx/o3RmhoI5v5ABOw5tn0=
12251227
github.com/k0sproject/dig v0.4.0/go.mod h1:rlZ7N7ZEcB4Fi96TPXkZ4dqyAiDWOGLapyL9YpZ7Qz4=
1226-
github.com/k0sproject/k0s v1.32.8-0.20250721135808-006eb13a92bf h1:SMMHKN8DGoieDgu5IaVWTV9mU310F0sz92Ar3UtpxkQ=
1227-
github.com/k0sproject/k0s v1.32.8-0.20250721135808-006eb13a92bf/go.mod h1:k/XY3WciqZwbC0LM3e+YxfC9Hg6JvwRMOP5Kd0kDLYM=
1228-
github.com/k0sproject/version v0.6.0 h1:Wi8wu9j+H36+okIQA47o/YHbzNpKeIYj8IjGdJOdqsI=
1229-
github.com/k0sproject/version v0.6.0/go.mod h1:5/7Js62gDCLBP6mEs0mUcYEEkYneM5qXDKN/hyFlQTM=
1228+
github.com/k0sproject/k0s v1.33.4-0.20250721121212-4615902bc8c4 h1:Xj6IwJ9Xyf/eefwGVQnNr22/aC7t2PJ5BH5MNnROE6A=
1229+
github.com/k0sproject/k0s v1.33.4-0.20250721121212-4615902bc8c4/go.mod h1:ZZoTRuEVpxAokPb4t35P1O27iq+QYxvtSqRx6dzc82k=
1230+
github.com/k0sproject/version v0.7.0 h1:pWp60UaA7N9g/wKUz1HN6heFW1M6ioWHEo8glHYlq00=
1231+
github.com/k0sproject/version v0.7.0/go.mod h1:iNV3O8blndsQhxZ8zACfpQhrLDlrTvDlCzx+vgCFtSI=
12301232
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
12311233
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
12321234
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
@@ -2459,8 +2461,8 @@ k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUy
24592461
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8=
24602462
k8s.io/kubectl v0.33.3 h1:r/phHvH1iU7gO/l7tTjQk2K01ER7/OAJi8uFHHyWSac=
24612463
k8s.io/kubectl v0.33.3/go.mod h1:euj2bG56L6kUGOE/ckZbCoudPwuj4Kud7BR0GzyNiT0=
2462-
k8s.io/kubelet v0.33.2 h1:wxEau5/563oJb3j3KfrCKlNWWx35YlSgDLOYUBCQ0pg=
2463-
k8s.io/kubelet v0.33.2/go.mod h1:way8VCDTUMiX1HTOvJv7M3xS/xNysJI6qh7TOqMe5KM=
2464+
k8s.io/kubelet v0.33.3 h1:Cvy8+7Lq9saZds2ib7YBXbKvkMMJu3f5mzucmhSIJno=
2465+
k8s.io/kubelet v0.33.3/go.mod h1:Q1Cfr6VQq1m9v9XsE/mDmhTxPdN6NPU6Ug0e6mAqi58=
24642466
k8s.io/metrics v0.33.3 h1:9CcqBz15JZfISqwca33gdHS8I6XfsK1vA8WUdEnG70g=
24652467
k8s.io/metrics v0.33.3/go.mod h1:Aw+cdg4AYHw0HvUY+lCyq40FOO84awrqvJRTw0cmXDs=
24662468
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=

kinds/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.24.4
55
require (
66
github.com/google/uuid v1.6.0
77
github.com/k0sproject/dig v0.4.0
8-
github.com/k0sproject/k0s v1.32.8-0.20250721135808-006eb13a92bf
8+
github.com/k0sproject/k0s v1.33.4-0.20250721121212-4615902bc8c4
99
github.com/stretchr/testify v1.10.0
1010
gopkg.in/yaml.v2 v2.4.0
1111
gopkg.in/yaml.v3 v3.0.1
@@ -36,7 +36,7 @@ require (
3636
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
3737
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
3838
github.com/sirupsen/logrus v1.9.3 // indirect
39-
github.com/vishvananda/netlink v1.3.1-0.20250206174618-62fb240731fa // indirect
39+
github.com/vishvananda/netlink v1.3.1 // indirect
4040
github.com/vishvananda/netns v0.0.5 // indirect
4141
github.com/x448/float16 v0.8.4 // indirect
4242
go.yaml.in/yaml/v2 v2.4.2 // indirect

kinds/go.sum

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
3434
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
3535
github.com/k0sproject/dig v0.4.0 h1:yBxFUUxNXAMGBg6b7c6ypxdx/o3RmhoI5v5ABOw5tn0=
3636
github.com/k0sproject/dig v0.4.0/go.mod h1:rlZ7N7ZEcB4Fi96TPXkZ4dqyAiDWOGLapyL9YpZ7Qz4=
37-
github.com/k0sproject/k0s v1.32.8-0.20250721135808-006eb13a92bf h1:SMMHKN8DGoieDgu5IaVWTV9mU310F0sz92Ar3UtpxkQ=
38-
github.com/k0sproject/k0s v1.32.8-0.20250721135808-006eb13a92bf/go.mod h1:k/XY3WciqZwbC0LM3e+YxfC9Hg6JvwRMOP5Kd0kDLYM=
37+
github.com/k0sproject/k0s v1.33.4-0.20250721121212-4615902bc8c4 h1:Xj6IwJ9Xyf/eefwGVQnNr22/aC7t2PJ5BH5MNnROE6A=
38+
github.com/k0sproject/k0s v1.33.4-0.20250721121212-4615902bc8c4/go.mod h1:ZZoTRuEVpxAokPb4t35P1O27iq+QYxvtSqRx6dzc82k=
3939
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
4040
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
4141
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
@@ -62,8 +62,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
6262
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
6363
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
6464
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
65-
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
66-
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
65+
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
66+
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
6767
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ=
6868
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
6969
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
@@ -75,9 +75,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
7575
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
7676
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
7777
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
78-
github.com/vishvananda/netlink v1.3.1-0.20250206174618-62fb240731fa h1:iAhToRwOrdk+pKzclvLM7nKZhsg8f7dVrgkFccDUbUw=
79-
github.com/vishvananda/netlink v1.3.1-0.20250206174618-62fb240731fa/go.mod h1:i6NetklAujEcC6fK0JPjT8qSwWyO0HLn4UKG+hGqeJs=
80-
github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM=
78+
github.com/vishvananda/netlink v1.3.1 h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW6bV0=
79+
github.com/vishvananda/netlink v1.3.1/go.mod h1:ARtKouGSTGchR8aMwmkzC0qiNPrrWO5JS/XMVl45+b4=
8180
github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY=
8281
github.com/vishvananda/netns v0.0.5/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM=
8382
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=

pkg/config/static/metadata.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@ images:
99
calico-cni:
1010
repo: proxy.replicated.com/anonymous/registry.replicated.com/library/calico-cni
1111
tag:
12-
amd64: v3.29.3-amd64@sha256:9d051903680b28c8975e9be22576eb27db508ea21a3662377f490b41ca5df153
13-
arm64: v3.29.3-arm64@sha256:b867f0c417d148511e04a17e21979b585cd311a99783ad77cb1b0178db72009f
12+
amd64: v3.29.3-amd64@sha256:d7a0bb0b9dcef31a42b4e0cf8159b6ccaca4d3dd37b88121c8d5c4831060d1fe
13+
arm64: v3.29.3-arm64@sha256:25f4c995c2245f80df7a635cc3332b530c575d1aeae033cf3d41467d20309df5
1414
calico-kube-controllers:
1515
repo: proxy.replicated.com/anonymous/registry.replicated.com/library/calico-kube-controllers
1616
tag:
17-
amd64: v3.29.3-amd64@sha256:9214e9fe7b3cfdf9cf12b7696bf589b0516933118c7505f793491487a7afa6b6
18-
arm64: v3.29.3-arm64@sha256:e47422b5ccc5f840e2995f6390d97c6a40da8fe1ee83e93e8635171b0212af2c
17+
amd64: v3.29.3-amd64@sha256:56d65b3def059e8aa81e3b4b745173f1ec5ee49d4bdaeb541935f4d1571051c8
18+
arm64: v3.29.3-arm64@sha256:5c94fb442aeab303ebf36be48c28f307a6b208ca368a9e38c9199bf6c3ff24d9
1919
calico-node:
2020
repo: proxy.replicated.com/anonymous/registry.replicated.com/library/calico-node
2121
tag:
22-
amd64: v3.29.3-amd64@sha256:940a32296be9cdf61bb4c1b8805b3cf24b6b15c85bcbb329b451a4a1af1591ce
23-
arm64: v3.29.3-arm64@sha256:b5408bbbe15487400c4528fe94d0e7aa09ee4e29c28692ed30c4bce5f8688f02
22+
amd64: v3.29.3-amd64@sha256:73206543fed49fd2f8996f2ab67a1f20bef2a61664fd7dd197d3985b6ae4f898
23+
arm64: v3.29.3-arm64@sha256:07b3517bf4e33258fc50e6dd8634a44d0b07431efd0e6a0377b51012418ede06
2424
coredns:
2525
repo: proxy.replicated.com/anonymous/replicated/ec-coredns
2626
tag:
@@ -34,8 +34,8 @@ images:
3434
kube-proxy:
3535
repo: proxy.replicated.com/anonymous/registry.k8s.io/kube-proxy
3636
tag:
37-
amd64: v1.32.7-amd64@sha256:920bf8822c57fa47c712f3e504105809108aca2a9cdcdea16d63146710079075
38-
arm64: v1.32.7-arm64@sha256:644305c11e8e5f3d91c585ec66c047e3a0c60ba2bf802106412a42f378a33f4e
37+
amd64: v1.33.4-amd64@sha256:4692caa875868999924edf272a9017f7530a4030e3b1be6de9151ffa3a59a1df
38+
arm64: v1.33.4-arm64@sha256:08613ce7dca6fa00a230048286b96e731459a173defb6569f8abd5052bbf01ce
3939
metrics-server:
4040
repo: proxy.replicated.com/anonymous/replicated/ec-metrics-server
4141
tag:
@@ -44,5 +44,5 @@ images:
4444
pause:
4545
repo: proxy.replicated.com/anonymous/registry.k8s.io/pause
4646
tag:
47-
amd64: 3.9-amd64@sha256:8d4106c88ec0bd28001e34c975d65175d994072d65341f62a8ab0754b0fafe10
48-
arm64: 3.9-arm64@sha256:3ec98b8452dc8ae265a6917dfb81587ac78849e520d5dbba6de524851d20eca6
47+
amd64: 3.10.1-amd64@sha256:e5b941ef8f71de54dc3a13398226c269ba217d06650a21bd3afcf9d890cf1f41
48+
arm64: 3.10.1-arm64@sha256:e9c466420bcaeede00f46ecfa0ca8cd854c549f2f13330e2723173d88f2de70f

pkg/helpers/k0s.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,18 @@ func NetworkSpecFromK0sConfig(k0sCfg *k0sv1beta1.ClusterConfig) ecv1beta1.Networ
104104

105105
return network
106106
}
107+
108+
// This code was copied from the k0s project to maintain backwards compatibility with versions < 1.33
109+
// https://github.com/k0sproject/k0s/blob/4615902bc8c4fbbb8f150371f8f60818458479c9/pkg/apis/k0s/v1beta1/clusterconfig_types.go#L264-L278
110+
func K0sConfigFromBytes(yml []byte) (*k0sv1beta1.ClusterConfig, error) {
111+
c := k0sv1beta1.DefaultClusterConfig()
112+
merged := c.DeepCopy()
113+
err := YamlUnmarshalStrictIgnoringFields(yml, merged, "interval", "podSecurityPolicy")
114+
if err != nil {
115+
return nil, err
116+
}
117+
if merged.Spec == nil {
118+
merged.Spec = c.Spec
119+
}
120+
return merged, nil
121+
}

pkg/helpers/k0syaml.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package helpers
2+
3+
import (
4+
"fmt"
5+
"strings"
6+
7+
"sigs.k8s.io/yaml"
8+
)
9+
10+
// var fieldNamePattern = regexp.MustCompile("field ([^ ]+)")
11+
12+
// YamlUnmarshalStrictIgnoringFields does UnmarshalStrict but ignores type errors for given fields
13+
// From https://github.com/k0sproject/k0s/blob/v1.33.3%2Bk0s.0/internal/pkg/strictyaml/strictyaml.go
14+
func YamlUnmarshalStrictIgnoringFields(in []byte, out interface{}, ignore ...string) (err error) {
15+
err = yaml.UnmarshalStrict(in, &out)
16+
if err != nil {
17+
// parse errors for unknown field errors
18+
for _, field := range ignore {
19+
unknownFieldErr := fmt.Sprintf("unknown field \"%s\"", field)
20+
if strings.Contains(err.Error(), unknownFieldErr) {
21+
// reset err on unknown masked fields
22+
err = nil
23+
}
24+
}
25+
// we have some other error
26+
return err
27+
}
28+
return nil
29+
}

0 commit comments

Comments
 (0)