Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package k0sctl for openSUSE:Factory checked in at 2024-09-16 17:41:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/k0sctl (Old) and /work/SRC/openSUSE:Factory/.k0sctl.new.29891 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "k0sctl" Mon Sep 16 17:41:50 2024 rev:6 rq:1201140 version:0.19.0 Changes: -------- --- /work/SRC/openSUSE:Factory/k0sctl/k0sctl.changes 2024-07-09 20:05:51.836794070 +0200 +++ /work/SRC/openSUSE:Factory/.k0sctl.new.29891/k0sctl.changes 2024-09-16 17:42:31.923708417 +0200 @@ -1,0 +2,20 @@ +Sat Sep 14 13:59:57 UTC 2024 - [email protected] + +- Update to version 0.19.0: + * Fix links in README (#764) + * Bump golang.org/x/text from 0.17.0 to 0.18.0 (#761) + * Lint + * Reinstall already installed k0s to reconfigure installFlags + * Use the correct field in custom binary version check (#759) + * Bump github.com/k0sproject/rig from 0.18.6 to 0.18.7 (#757) + * Relax version checking when using a custom K0sBinaryPath (#745) + * Bump github.com/creasty/defaults from 1.7.0 to 1.8.0 (#754) + * Bump k8s.io/client-go from 0.30.3 to 0.31.0 (#753) + * Bump github.com/urfave/cli/v2 from 2.27.3 to 2.27.4 (#751) + * Bump github.com/adrg/xdg from 0.4.0 to 0.5.0 (#738) + * Bump github.com/k0sproject/rig from 0.18.4 to 0.18.6 (#750) + * Use amd64 instead of x64 in binary filenames (#746) + * Bump github.com/urfave/cli/v2 from 2.27.2 to 2.27.3 + * Bump k8s.io/client-go from 0.30.2 to 0.30.3 + +------------------------------------------------------------------- Old: ---- k0sctl-0.18.1.obscpio New: ---- k0sctl-0.19.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ k0sctl.spec ++++++ --- /var/tmp/diff_new_pack.VJKMqY/_old 2024-09-16 17:42:34.019795062 +0200 +++ /var/tmp/diff_new_pack.VJKMqY/_new 2024-09-16 17:42:34.035795723 +0200 @@ -20,7 +20,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: k0sctl -Version: 0.18.1 +Version: 0.19.0 Release: 0 Summary: A bootstrapping and management tool for k0s clusters License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.VJKMqY/_old 2024-09-16 17:42:34.255804818 +0200 +++ /var/tmp/diff_new_pack.VJKMqY/_new 2024-09-16 17:42:34.283805975 +0200 @@ -2,19 +2,21 @@ <service name="obs_scm" mode="manual"> <param name="url">https://github.com/k0sproject/k0sctl.git</param> <param name="scm">git</param> - <param name="revision">v0.18.1</param> + <param name="revision">v0.19.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> </service> <service name="set_version" mode="manual"> </service> - <service name="tar" mode="buildtime"/> + <service name="go_modules" mode="manual"> + </service> + <!-- services below are running at buildtime --> + <service name="tar" mode="buildtime"> + </service> <service name="recompress" mode="buildtime"> <param name="file">*.tar</param> <param name="compression">gz</param> </service> - <service name="go_modules" mode="manual"> - </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.VJKMqY/_old 2024-09-16 17:42:34.435812259 +0200 +++ /var/tmp/diff_new_pack.VJKMqY/_new 2024-09-16 17:42:34.463813416 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/k0sproject/k0sctl.git</param> - <param name="changesrevision">53248d6dd0f8635e3e41fa51c116748f5eb246c7</param></service></servicedata> + <param name="changesrevision">9246ddc823198b572b51fb19bdf5effee4721a9d</param></service></servicedata> (No newline at EOF) ++++++ k0sctl-0.18.1.obscpio -> k0sctl-0.19.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/.github/actions/smoke-test-cache/action.yaml new/k0sctl-0.19.0/.github/actions/smoke-test-cache/action.yaml --- old/k0sctl-0.18.1/.github/actions/smoke-test-cache/action.yaml 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/.github/actions/smoke-test-cache/action.yaml 2024-09-11 08:57:50.000000000 +0200 @@ -1,4 +1,5 @@ name: Smoke test cache steps +description: Cache smoke test binaries runs: using: composite steps: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/.github/workflows/smoke.yml new/k0sctl-0.19.0/.github/workflows/smoke.yml --- old/k0sctl-0.18.1/.github/workflows/smoke.yml 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/.github/workflows/smoke.yml 2024-09-11 08:57:50.000000000 +0200 @@ -262,6 +262,25 @@ env: LINUX_IMAGE: ${{ matrix.image }} run: make smoke-controller-swap + + smoke-reinstall: + strategy: + matrix: + image: + - quay.io/k0sproject/bootloose-alpine3.18 + - quay.io/k0sproject/bootloose-ubuntu20.04 + + name: Reinstall (modify install flags) + needs: build + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/smoke-test-cache + - name: Run smoke tests + env: + LINUX_IMAGE: ${{ matrix.image }} + run: make smoke-reinstall smoke-init: name: Init sub-command smoke test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/Makefile new/k0sctl-0.19.0/Makefile --- old/k0sctl-0.18.1/Makefile 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/Makefile 2024-09-11 08:57:50.000000000 +0200 @@ -14,8 +14,8 @@ k0sctl: $(GO_SRCS) go build $(BUILD_FLAGS) -o k0sctl main.go -bin/k0sctl-linux-x64: $(GO_SRCS) - GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o bin/k0sctl-linux-x64 main.go +bin/k0sctl-linux-amd64: $(GO_SRCS) + GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o bin/k0sctl-linux-amd64 main.go bin/k0sctl-linux-arm64: $(GO_SRCS) GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o bin/k0sctl-linux-arm64 main.go @@ -23,16 +23,16 @@ bin/k0sctl-linux-arm: $(GO_SRCS) GOOS=linux GOARCH=arm CGO_ENABLED=0 go build $(BUILD_FLAGS) -o bin/k0sctl-linux-arm main.go -bin/k0sctl-win-x64.exe: $(GO_SRCS) - GOOS=windows GOARCH=amd64 go build $(BUILD_FLAGS) -o bin/k0sctl-win-x64.exe main.go +bin/k0sctl-win-amd64.exe: $(GO_SRCS) + GOOS=windows GOARCH=amd64 go build $(BUILD_FLAGS) -o bin/k0sctl-win-amd64.exe main.go -bin/k0sctl-darwin-x64: $(GO_SRCS) - GOOS=darwin GOARCH=amd64 go build $(BUILD_FLAGS) -o bin/k0sctl-darwin-x64 main.go +bin/k0sctl-darwin-amd64: $(GO_SRCS) + GOOS=darwin GOARCH=amd64 go build $(BUILD_FLAGS) -o bin/k0sctl-darwin-amd64 main.go bin/k0sctl-darwin-arm64: $(GO_SRCS) GOOS=darwin GOARCH=arm64 go build $(BUILD_FLAGS) -o bin/k0sctl-darwin-arm64 main.go -bins := k0sctl-linux-x64 k0sctl-linux-arm64 k0sctl-linux-arm k0sctl-win-x64.exe k0sctl-darwin-x64 k0sctl-darwin-arm64 +bins := k0sctl-linux-amd64 k0sctl-linux-arm64 k0sctl-linux-arm k0sctl-win-amd64.exe k0sctl-darwin-amd64 k0sctl-darwin-arm64 bin/checksums.txt: $(addprefix bin/,$(bins)) sha256sum -b $(addprefix bin/,$(bins)) | sed 's/bin\///' > $@ @@ -51,7 +51,7 @@ clean: rm -rf bin/ k0sctl -smoketests := smoke-basic smoke-basic-rootless smoke-files smoke-upgrade smoke-reset smoke-os-override smoke-init smoke-backup-restore smoke-dynamic smoke-basic-openssh smoke-dryrun smoke-downloadurl smoke-controller-swap +smoketests := smoke-basic smoke-basic-rootless smoke-files smoke-upgrade smoke-reset smoke-os-override smoke-init smoke-backup-restore smoke-dynamic smoke-basic-openssh smoke-dryrun smoke-downloadurl smoke-controller-swap smoke-reinstall .PHONY: $(smoketests) $(smoketests): k0sctl $(MAKE) -C smoke-test $@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/README.md new/k0sctl-0.19.0/README.md --- old/k0sctl-0.18.1/README.md 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/README.md 2024-09-11 08:57:50.000000000 +0200 @@ -108,12 +108,7 @@ ## Development status -K0sctl is ready for use and in continuous development. It is still at a stage where maintaining backwards compatibility is not a high priority goal. - -Missing major features include at least: - -* The released binaries have not been signed -* The configuration specification and command-line interface options are still evolving +K0sctl is ready for use and in continuous development. ## Usage @@ -153,7 +148,7 @@ ### `k0sctl backup & restore` -Takes a [backup](https://docs.k0sproject.io/main/backup/) of the cluster control plane state into the current working directory. +Takes a [backup](https://docs.k0sproject.io/stable/backup/) of the cluster control plane state into the current working directory. The files are currently named with a running (unix epoch) timestamp, e.g. `k0s_backup_1623220591.tar.gz`. @@ -250,7 +245,7 @@ ###### `spec` <mapping> (required) -The main object definition, see [below](#configuration-spec) +The main object definition, see [below](#spec-fields) ###### `metadata` <mapping> (optional) @@ -288,7 +283,7 @@ One of: - `controller` - a controller host - `controller+worker` - a controller host that will also run workloads -- `single` - a [single-node cluster](https://docs.k0sproject.io/main/k0s-single-node/) host, the configuration can only contain one host +- `single` - a [single-node cluster](https://docs.k0sproject.io/stable/k0s-single-node/) host, the configuration can only contain one host - `worker` - a worker host ###### `spec.hosts[*].noTaints` <boolean> (optional) (default: `false`) @@ -592,11 +587,11 @@ See also: -* [k0s Dynamic Configuration](https://docs.k0sproject.io/main/dynamic-configuration/) +* [k0s Dynamic Configuration](https://docs.k0sproject.io/stable/dynamic-configuration/) ##### `spec.k0s.config` <mapping> (optional) (default: auto-generated) -Embedded k0s cluster configuration. See [k0s configuration documentation](https://docs.k0sproject.io/main/configuration/) for details. +Embedded k0s cluster configuration. See [k0s configuration documentation](https://docs.k0sproject.io/stable/configuration/) for details. When left out, the output of `k0s config create` will be used. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/action/apply.go new/k0sctl-0.19.0/action/apply.go --- old/k0sctl-0.18.1/action/apply.go 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/action/apply.go 2024-09-11 08:57:50.000000000 +0200 @@ -75,6 +75,7 @@ &phase.InstallWorkers{}, &phase.UpgradeControllers{}, &phase.UpgradeWorkers{NoDrain: a.NoDrain}, + &phase.Reinstall{}, &phase.ResetWorkers{NoDrain: a.NoDrain}, &phase.ResetControllers{NoDrain: a.NoDrain}, &phase.RunHooks{Stage: "after", Action: "apply"}, @@ -108,7 +109,7 @@ duration := time.Since(start).Truncate(time.Second) text := fmt.Sprintf("==> Finished in %s", duration) - log.Infof(phase.Colorize.Green(text).String()) + log.Info(phase.Colorize.Green(text).String()) for _, host := range a.Manager.Config.Spec.Hosts { if host.Reset { @@ -141,8 +142,8 @@ cmd.WriteString(a.ConfigPath) } - log.Infof("Tip: To access the cluster you can now fetch the admin kubeconfig using:") - log.Infof(" " + phase.Colorize.Cyan(cmd.String()).String()) + log.Info("Tip: To access the cluster you can now fetch the admin kubeconfig using:") + log.Info(" " + phase.Colorize.Cyan(cmd.String()).String()) } return nil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/action/backup.go new/k0sctl-0.19.0/action/backup.go --- old/k0sctl-0.18.1/action/backup.go 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/action/backup.go 2024-09-11 08:57:50.000000000 +0200 @@ -44,6 +44,6 @@ duration := time.Since(start).Truncate(time.Second) text := fmt.Sprintf("==> Finished in %s", duration) - log.Infof(phase.Colorize.Green(text).String()) + log.Info(phase.Colorize.Green(text).String()) return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/action/reset.go new/k0sctl-0.19.0/action/reset.go --- old/k0sctl-0.18.1/action/reset.go 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/action/reset.go 2024-09-11 08:57:50.000000000 +0200 @@ -78,7 +78,7 @@ duration := time.Since(start).Truncate(time.Second) text := fmt.Sprintf("==> Finished in %s", duration) - log.Infof(phase.Colorize.Green(text).String()) + log.Info(phase.Colorize.Green(text).String()) return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/go.mod new/k0sctl-0.19.0/go.mod --- old/k0sctl-0.18.1/go.mod 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/go.mod 2024-09-11 08:57:50.000000000 +0200 @@ -9,30 +9,30 @@ github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect github.com/ChrisTrenkamp/goxpath v0.0.0-20210404020558-97928f7e12b6 // indirect github.com/a8m/envsubst v1.4.2 - github.com/adrg/xdg v0.4.0 + github.com/adrg/xdg v0.5.0 github.com/bmatcuk/doublestar/v4 v4.6.1 - github.com/creasty/defaults v1.7.0 + github.com/creasty/defaults v1.8.0 github.com/denisbrodbeck/machineid v1.0.1 github.com/gofrs/uuid v4.4.0+incompatible // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/k0sproject/dig v0.2.0 - github.com/k0sproject/rig v0.18.4 + github.com/k0sproject/rig v0.18.7 github.com/logrusorgru/aurora v2.0.3+incompatible github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 // indirect - github.com/masterzen/winrm v0.0.0-20231227165926-e811dad5ac77 // indirect + github.com/masterzen/winrm v0.0.0-20240702205601-3fad6e106085 // indirect github.com/mattn/go-isatty v0.0.20 github.com/segmentio/analytics-go v3.1.0+incompatible github.com/segmentio/backo-go v1.1.0 // indirect github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 github.com/sirupsen/logrus v1.9.3 github.com/stretchr/testify v1.9.0 - github.com/urfave/cli/v2 v2.27.2 + github.com/urfave/cli/v2 v2.27.4 github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c // indirect - golang.org/x/crypto v0.24.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect - golang.org/x/text v0.16.0 + golang.org/x/crypto v0.26.0 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/sys v0.23.0 // indirect + golang.org/x/term v0.23.0 // indirect + golang.org/x/text v0.18.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -43,7 +43,7 @@ github.com/jellydator/validation v1.1.0 github.com/k0sproject/version v0.6.0 github.com/sergi/go-diff v1.3.1 - k8s.io/client-go v0.30.2 + k8s.io/client-go v0.31.0 ) require ( @@ -53,8 +53,9 @@ github.com/bodgit/ntlmssp v0.0.0-20240506230425-31973bb52d9b // indirect github.com/bodgit/windows v1.0.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/davidmz/go-pageant v1.0.2 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.4 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-playground/locales v0.14.1 // indirect @@ -81,19 +82,19 @@ github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tidwall/transform v0.0.0-20201103190739-32f242e2dbde // indirect + github.com/x448/float16 v0.8.4 // indirect github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/time v0.5.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.30.2 // indirect + k8s.io/apimachinery v0.31.0 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/go.sum new/k0sctl-0.19.0/go.sum --- old/k0sctl-0.18.1/go.sum 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/go.sum 2024-09-11 08:57:50.000000000 +0200 @@ -12,8 +12,8 @@ github.com/a8m/envsubst v1.4.2/go.mod h1:MVUTQNGQ3tsjOOtKCNd+fl8RzhsXcDvvAEzkhGtlsbY= github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8= github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= -github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls= -github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E= +github.com/adrg/xdg v0.5.0 h1:dDaZvhMXatArP1NPHhnfaQUqWBLBsmx1h1HXQdMoFCY= +github.com/adrg/xdg v0.5.0/go.mod h1:dDdY4M4DF9Rjy4kHPeNL+ilVF+p2lK8IdM9/rTSGcI4= github.com/alessio/shellescape v1.4.2 h1:MHPfaU+ddJ0/bYWpgIeUnQUqKrlJ1S7BfEYPM4uEoM0= github.com/alessio/shellescape v1.4.2/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= @@ -32,17 +32,20 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI= github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -github.com/creasty/defaults v1.7.0 h1:eNdqZvc5B509z18lD8yc212CAqJNvfT1Jq6L8WowdBA= -github.com/creasty/defaults v1.7.0/go.mod h1:iGzKe6pbEHnpMPtfDXZEr0NVxWnPTjb1bbDy08fPzYM= +github.com/creasty/defaults v1.8.0 h1:z27FJxCAa0JKt3utc0sCImAEb+spPucmKoOdLHvHYKk= +github.com/creasty/defaults v1.8.0/go.mod h1:iGzKe6pbEHnpMPtfDXZEr0NVxWnPTjb1bbDy08fPzYM= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0= github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= github.com/denisbrodbeck/machineid v1.0.1 h1:geKr9qtkB876mXguW2X6TU4ZynleN6ezuMSRhl4D7AQ= github.com/denisbrodbeck/machineid v1.0.1/go.mod h1:dJUwb7PTidGDeYyUBmXZ2GphQBbjJCrnectwCyxcUSI= github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.4 h1:QjV6pZ7/XZ7ryI2KuyeEDE8wnh7fHP9YnQy+R0LnH8I= github.com/gabriel-vasile/mimetype v1.4.4/go.mod h1:JwLei5XPtWdGiMFB5Pjle1oEeoSeEuJfJE+TtfvdB/s= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -51,8 +54,8 @@ github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -75,8 +78,8 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= @@ -112,8 +115,8 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/k0sproject/dig v0.2.0 h1:cNxEIl96g9kqSMfPSZLhpnZ0P8bWXKv08nxvsMHop5w= github.com/k0sproject/dig v0.2.0/go.mod h1:rBcqaQlJpcKdt2x/OE/lPvhGU50u/e95CSm5g/r4s78= -github.com/k0sproject/rig v0.18.4 h1:HwMqZZJeEZrtzUZuo2KUlIk6hU2ojHF2ibLJFUQ2xYo= -github.com/k0sproject/rig v0.18.4/go.mod h1:MS3VVTFlOUBDnjiVZbwNuyxJF81uQZ73R9ExKlTuBdY= +github.com/k0sproject/rig v0.18.7 h1:MFLTVmhj+lGcCHbemwoWorlCD26CwzxhKckec+lGgdc= +github.com/k0sproject/rig v0.18.7/go.mod h1:FS9xKO2a4hco2XthIcXnYBozKSLr/V3tlP+fWi7OVyE= github.com/k0sproject/version v0.6.0 h1:Wi8wu9j+H36+okIQA47o/YHbzNpKeIYj8IjGdJOdqsI= github.com/k0sproject/version v0.6.0/go.mod h1:5/7Js62gDCLBP6mEs0mUcYEEkYneM5qXDKN/hyFlQTM= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= @@ -137,8 +140,8 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 h1:2ZKn+w/BJeL43sCxI2jhPLRv73oVVOjEKZjKkflyqxg= github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc= -github.com/masterzen/winrm v0.0.0-20231227165926-e811dad5ac77 h1:psY7rHKhnfqjTEgkleIYpF1vVxVfYsUYFTO/cL5Z6xM= -github.com/masterzen/winrm v0.0.0-20231227165926-e811dad5ac77/go.mod h1:otHfftEJdo9JWGoq9GcJRaeNLp/uhqNq8JOk5lL+8Ks= +github.com/masterzen/winrm v0.0.0-20240702205601-3fad6e106085 h1:PiQLLKX4vMYlJImDzJYtQScF2BbQ0GAjPIHCDqzHHHs= +github.com/masterzen/winrm v0.0.0-20240702205601-3fad6e106085/go.mod h1:JajVhkiG2bYSNYYPYuWG7WZHr42CTjMTcCjfInRNCqc= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -160,10 +163,11 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/segmentio/analytics-go v3.1.0+incompatible h1:IyiOfUgQFVHvsykKKbdI7ZsH374uv3/DfZUo9+G0Z80= @@ -192,8 +196,10 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/transform v0.0.0-20201103190739-32f242e2dbde h1:AMNpJRc7P+GTwVbl8DkK2I9I8BBUzNiHuH/tlxrpan0= github.com/tidwall/transform v0.0.0-20201103190739-32f242e2dbde/go.mod h1:MvrEmduDUz4ST5pGZ7CABCnOU5f3ZiOAZzT6b1A6nX8= -github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= -github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= +github.com/urfave/cli/v2 v2.27.4 h1:o1owoI+02Eb+K107p27wEX9Bb8eqIoZCfLXloLUSWJ8= +github.com/urfave/cli/v2 v2.27.4/go.mod h1:m4QzxcD2qpra4z7WhzEGn74WZLViBnMpb1ToCAKdGRQ= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c h1:3lbZUMbMiGUW/LMkfsEABsc5zNT9+b1CvsJx47JzJ8g= @@ -207,8 +213,8 @@ golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -221,8 +227,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -235,27 +241,26 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -281,18 +286,18 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.30.2 h1:+ZhRj+28QT4UOH+BKznu4CBgPWgkXO7XAvMcMl0qKvI= -k8s.io/api v0.30.2/go.mod h1:ULg5g9JvOev2dG0u2hig4Z7tQ2hHIuS+m8MNZ+X6EmI= -k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= -k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/client-go v0.30.2 h1:sBIVJdojUNPDU/jObC+18tXWcTJVcwyqS9diGdWHk50= -k8s.io/client-go v0.30.2/go.mod h1:JglKSWULm9xlJLx4KCkfLLQ7XwtlbflV6uFFSHTMgVs= +k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo= +k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE= +k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc= +k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8= +k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= -k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/phase/gather_k0s_facts.go new/k0sctl-0.19.0/phase/gather_k0s_facts.go --- old/k0sctl-0.18.1/phase/gather_k0s_facts.go 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/phase/gather_k0s_facts.go 2024-09-11 08:57:50.000000000 +0200 @@ -74,6 +74,7 @@ return err } p.leader = p.Config.Spec.K0sLeader() + p.leader.Metadata.IsK0sLeader = true if id, err := p.Config.Spec.K0s.GetClusterID(p.leader); err == nil { p.Config.Spec.K0s.Metadata.ClusterID = id @@ -271,9 +272,14 @@ h.Metadata.NeedsUpgrade = p.needsUpgrade(h) + if len(status.Args) > 2 { + // status.Args contains the binary path and the role as the first two elements, which we can ignore here. + h.Metadata.K0sStatusArgs = status.Args[2:] + } + log.Infof("%s: is running k0s %s version %s", h, h.Role, h.Metadata.K0sRunningVersion) if h.IsController() { - for _, a := range status.Args { + for _, a := range h.Metadata.K0sStatusArgs { if strings.HasPrefix(a, "--enable-dynamic-config") && !strings.HasSuffix(a, "false") { if !p.Config.Spec.K0s.DynamicConfig { log.Warnf("%s: controller has dynamic config enabled, but spec.k0s.dynamicConfig was not set in configuration, proceeding in dynamic config mode", h) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/phase/install_controllers.go new/k0sctl-0.19.0/phase/install_controllers.go --- old/k0sctl-0.18.1/phase/install_controllers.go 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/phase/install_controllers.go 2024-09-11 08:57:50.000000000 +0200 @@ -77,7 +77,6 @@ log.Warnf("%s: failed to invalidate worker join token: %v", p.leader, err) } _ = p.Wet(h, "overwrite k0s join token file", func() error { - if err := h.Configurer.WriteFile(h, h.K0sJoinTokenPath(), "# overwritten by k0sctl after join\n", "0600"); err != nil { log.Warnf("%s: failed to overwrite the join token file at %s", h, h.K0sJoinTokenPath()) } @@ -105,7 +104,6 @@ } return nil }) - if err != nil { return err } @@ -162,6 +160,7 @@ return err } h.Metadata.K0sInstalled = true + h.Metadata.K0sRunningVersion = p.Config.Spec.K0s.Version if p.IsWet() { if len(h.Environment) > 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/phase/reinstall.go new/k0sctl-0.19.0/phase/reinstall.go --- old/k0sctl-0.18.1/phase/reinstall.go 1970-01-01 01:00:00.000000000 +0100 +++ new/k0sctl-0.19.0/phase/reinstall.go 2024-09-11 08:57:50.000000000 +0200 @@ -0,0 +1,137 @@ +package phase + +import ( + "context" + "fmt" + "math" + "strings" + "time" + + "github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1" + "github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster" + "github.com/k0sproject/k0sctl/pkg/node" + "github.com/k0sproject/k0sctl/pkg/retry" + "github.com/k0sproject/rig/exec" + log "github.com/sirupsen/logrus" +) + +type Reinstall struct { + GenericPhase + hosts cluster.Hosts +} + +// Title for the phase +func (p *Reinstall) Title() string { + return "Reinstall" +} + +// Prepare the phase +func (p *Reinstall) Prepare(config *v1beta1.Cluster) error { + p.Config = config + p.hosts = p.Config.Spec.Hosts.Filter(func(h *cluster.Host) bool { + return !h.Metadata.K0sInstalled && h.Metadata.K0sRunningVersion != nil && !h.Reset && h.FlagsChanged() + }) + + return nil +} + +// ShouldRun is true when there are hosts that needs to be reinstalled +func (p *Reinstall) ShouldRun() bool { + return cluster.K0sForceFlagSince.Check(p.Config.Spec.K0s.Version) && len(p.hosts) > 0 +} + +// Run the phase +func (p *Reinstall) Run() error { + if !cluster.K0sForceFlagSince.Check(p.Config.Spec.K0s.Version) { + log.Warnf("k0s version %s does not support install --force flag, installFlags won't be reconfigured", p.Config.Spec.K0s.Version) + return nil + } + controllers := p.hosts.Controllers() + if len(controllers) > 0 { + log.Infof("Reinstalling %d controllers sequentially", len(controllers)) + err := controllers.Each(func(h *cluster.Host) error { + return p.reinstall(h) + }) + if err != nil { + return err + } + } + + workers := p.hosts.Workers() + if len(workers) == 0 { + return nil + } + + concurrentReinstalls := int(math.Floor(float64(len(p.hosts)) * 0.10)) + if concurrentReinstalls == 0 { + concurrentReinstalls = 1 + } + + log.Infof("Reinstalling max %d workers in parallel", concurrentReinstalls) + + return p.hosts.BatchedParallelEach(concurrentReinstalls, p.reinstall) +} + +func (p *Reinstall) reinstall(h *cluster.Host) error { + if p.Config.Spec.K0s.DynamicConfig && h.Role != "worker" { + h.InstallFlags.AddOrReplace("--enable-dynamic-config") + } + + h.InstallFlags.AddOrReplace("--force") + + cmd, err := h.K0sInstallCommand() + if err != nil { + return err + } + log.Infof("%s: reinstalling k0s", h) + err = p.Wet(h, fmt.Sprintf("reinstall k0s using `%s", strings.ReplaceAll(cmd, h.Configurer.K0sBinaryPath(), "k0s")), func() error { + if err := h.Exec(cmd, exec.Sudo(h)); err != nil { + return fmt.Errorf("failed to reinstall k0s: %w", err) + } + return nil + }) + if err != nil { + return err + } + + err = p.Wet(h, "restart k0s service", func() error { + if err := h.Configurer.RestartService(h, h.K0sServiceName()); err != nil { + return fmt.Errorf("failed to restart k0s: %w", err) + } + log.Infof("%s: waiting for the k0s service to start", h) + if err := retry.Timeout(context.TODO(), retry.DefaultTimeout, node.ServiceRunningFunc(h, h.K0sServiceName())); err != nil { + return fmt.Errorf("k0s did not restart: %w", err) + } + return nil + }) + if err != nil { + return fmt.Errorf("restart after reinstall: %w", err) + } + + if h != p.Config.Spec.K0sLeader() { + return nil + } + + if NoWait || !p.IsWet() { + log.Warnf("%s: skipping scheduler and system pod checks because --no-wait given", h) + return nil + } + + log.Infof("%s: waiting for the scheduler to become ready", h) + if err := retry.Timeout(context.TODO(), retry.DefaultTimeout, node.ScheduledEventsAfterFunc(h, time.Now())); err != nil { + if !Force { + return fmt.Errorf("failed to observe scheduling events after api start-up, you can ignore this check by using --force: %w", err) + } + log.Warnf("%s: failed to observe scheduling events after api start-up: %s", h, err) + } + + log.Infof("%s: waiting for system pods to become ready", h) + if err := retry.Timeout(context.TODO(), retry.DefaultTimeout, node.SystemPodsRunningFunc(h)); err != nil { + if !Force { + return fmt.Errorf("all system pods not running after api start-up, you can ignore this check by using --force: %w", err) + } + log.Warnf("%s: failed to observe system pods running after api start-up: %s", h, err) + } + + return nil +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/phase/upgrade_controllers.go new/k0sctl-0.19.0/phase/upgrade_controllers.go --- old/k0sctl-0.18.1/phase/upgrade_controllers.go 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/phase/upgrade_controllers.go 2024-09-11 08:57:50.000000000 +0200 @@ -9,6 +9,7 @@ "github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster" "github.com/k0sproject/k0sctl/pkg/node" "github.com/k0sproject/k0sctl/pkg/retry" + "github.com/k0sproject/rig/exec" log "github.com/sirupsen/logrus" ) @@ -95,6 +96,27 @@ } } + err = p.Wet(h, "reinstall k0s service", func() error { + if p.Config.Spec.K0s.DynamicConfig { + h.InstallFlags.AddOrReplace("--enable-dynamic-config") + } + + h.InstallFlags.AddOrReplace("--force") + + cmd, err := h.K0sInstallCommand() + if err != nil { + return err + } + if err := h.Exec(cmd, exec.Sudo(h)); err != nil { + return fmt.Errorf("failed to reinstall k0s: %w", err) + } + return nil + }) + if err != nil { + return err + } + h.Metadata.K0sInstalled = true + log.Debugf("%s: restart service", h) err = p.Wet(h, "start k0s service with the new binary", func() error { if err := h.Configurer.StartService(h, h.K0sServiceName()); err != nil { @@ -119,6 +141,8 @@ return fmt.Errorf("kube api did not become ready: %w", err) } } + + h.Metadata.K0sRunningVersion = p.Config.Spec.K0s.Version } leader := p.Config.Spec.K0sLeader() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/phase/upgrade_workers.go new/k0sctl-0.19.0/phase/upgrade_workers.go --- old/k0sctl-0.18.1/phase/upgrade_workers.go 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/phase/upgrade_workers.go 2024-09-11 08:57:50.000000000 +0200 @@ -9,6 +9,7 @@ "github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster" "github.com/k0sproject/k0sctl/pkg/node" "github.com/k0sproject/k0sctl/pkg/retry" + "github.com/k0sproject/rig/exec" log "github.com/sirupsen/logrus" ) @@ -182,6 +183,23 @@ } } + err = p.Wet(h, "reinstall k0s service", func() error { + h.InstallFlags.AddOrReplace("--force") + + cmd, err := h.K0sInstallCommand() + if err != nil { + return err + } + if err := h.Exec(cmd, exec.Sudo(h)); err != nil { + return fmt.Errorf("failed to reinstall k0s: %w", err) + } + return nil + }) + if err != nil { + return err + } + h.Metadata.K0sInstalled = true + log.Debugf("%s: restart service", h) err = p.Wet(h, "restart k0s service", func() error { if err := h.Configurer.StartService(h, h.K0sServiceName()); err != nil { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/phase/validate_hosts.go new/k0sctl-0.19.0/phase/validate_hosts.go --- old/k0sctl-0.18.1/phase/validate_hosts.go 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/phase/validate_hosts.go 2024-09-11 08:57:50.000000000 +0200 @@ -4,6 +4,7 @@ "fmt" "github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster" + log "github.com/sirupsen/logrus" ) // ValidateHosts performs remote OS detection @@ -48,6 +49,7 @@ return p.parallelDo( p.Config.Spec.Hosts, + p.warnK0sBinaryPath, p.validateUniqueHostname, p.validateUniqueMachineID, p.validateUniquePrivateAddress, @@ -55,6 +57,14 @@ ) } +func (p *ValidateHosts) warnK0sBinaryPath(h *cluster.Host) error { + if h.K0sBinaryPath != "" { + log.Warnf("%s: k0s binary path is set to %q, version checking for the host is disabled. The k0s version for other hosts is %s.", h, h.K0sBinaryPath, p.Config.Spec.K0s.Version) + } + + return nil +} + func (p *ValidateHosts) validateUniqueHostname(h *cluster.Host) error { if p.hncount[h.Metadata.Hostname] > 1 { return fmt.Errorf("hostname is not unique: %s", h.Metadata.Hostname) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/host.go new/k0sctl-0.19.0/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/host.go --- old/k0sctl-0.18.1/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/host.go 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/host.go 2024-09-11 08:57:50.000000000 +0200 @@ -6,6 +6,7 @@ gos "os" gopath "path" "regexp" + "sort" "strconv" "strings" "time" @@ -23,7 +24,7 @@ log "github.com/sirupsen/logrus" ) -var k0sForceFlagSince = version.MustConstraint(">= v1.27.4+k0s.0") +var K0sForceFlagSince = version.MustConstraint(">= v1.27.4+k0s.0") // Host contains all the needed details to work with hosts type Host struct { @@ -183,6 +184,7 @@ K0sNewConfig string K0sJoinToken string K0sJoinTokenID string + K0sStatusArgs []string Arch string IsK0sLeader bool Hostname string @@ -334,7 +336,7 @@ } } - if flags.Include("--force") && h.Metadata.K0sBinaryVersion != nil && !k0sForceFlagSince.Check(h.Metadata.K0sBinaryVersion) { + if flags.Include("--force") && h.Metadata.K0sBinaryVersion != nil && !K0sForceFlagSince.Check(h.Metadata.K0sBinaryVersion) { log.Warnf("%s: k0s version %s does not support the --force flag, ignoring it", h, h.Metadata.K0sBinaryVersion) flags.Delete("--force") } @@ -399,7 +401,8 @@ if err != nil { return fmt.Errorf("failed to get updated k0s binary version: %w", err) } - if !version.Equal(updatedVersion) { + // verify the installed version matches the expected version, unless a custom k0sbinarypath is used + if h.K0sBinaryPath == "" && !version.Equal(updatedVersion) { return fmt.Errorf("updated k0s binary version is %s not %s", updatedVersion, version) } @@ -568,3 +571,121 @@ } return builder.String() } + +var flagParseRe = regexp.MustCompile(`--?([\w\-]+)(?:[=\s](\S+))?`) + +// FlagsChanged returns true when the flags have changed by comparing the host.Metadata.K0sStatusArgs to what host.InstallFlags would produce +func (h *Host) FlagsChanged() bool { + var formattedFlags []string + + cmd, err := h.K0sInstallCommand() + if err != nil { + log.Warnf("%s: could not get install command: %s", h, err) + return false + } + flags, err := shellSplit(cmd) + if err != nil { + log.Warnf("%s: could not split install command: %s", h, err) + return false + } + if len(flags) < 4 { + // ["k0s", "install", <role>, <flags..>] + log.Debugf("%s: no installFlags", h) + return false + } + flags = flags[3:] // discard the first 3 elements + + // format the flags the same way as spf13/cobra does in k0s + for i := 0; i < len(flags); i++ { + flag := flags[i] + var key string + var value string + match := flagParseRe.FindStringSubmatch(flag) + if len(match) < 2 { + log.Warnf("%s: could not parse flag: %s", h, flag) + continue + } + + key = match[1] + + if len(match) > 2 && len(match[2]) > 0 { + value = match[2] + } else if len(flags) > i+1 && !strings.HasPrefix(flags[i+1], "-") { + value = flags[i+1] + i++ + } else { + value = "true" + } + if s, err := strconv.Unquote(value); err == nil { + value = s + } + formattedFlags = append(formattedFlags, fmt.Sprintf("--%s=%s", key, value)) + } + + k0sArgs := h.Metadata.K0sStatusArgs + if len(k0sArgs) != len(formattedFlags) { + log.Debugf("%s: installFlags seem to have changed because of different length: %d %v vs %d %v", h, len(k0sArgs), k0sArgs, len(formattedFlags), formattedFlags) + return true + } + sort.Strings(formattedFlags) + sort.Strings(k0sArgs) + for i := range formattedFlags { + if formattedFlags[i] != k0sArgs[i] { + log.Debugf("%s: installFlags seem to have changed because of different flags: %v vs %v", h, formattedFlags, k0sArgs) + return true + } + } + + log.Debugf("%s: installFlags have not changed", h) + + return false +} + +// Split splits the input string respecting shell-like quoted segments -- borrowed from rig v2 until migration +func shellSplit(input string) ([]string, error) { //nolint:cyclop + var segments []string + + currentSegment := &strings.Builder{} + + var inDoubleQuotes, inSingleQuotes, isEscaped bool + + for i := range len(input) { + currentChar := input[i] + + if isEscaped { + currentSegment.WriteByte(currentChar) + isEscaped = false + continue + } + + switch { + case currentChar == '\\' && !inSingleQuotes: + isEscaped = true + case currentChar == '"' && !inSingleQuotes: + inDoubleQuotes = !inDoubleQuotes + case currentChar == '\'' && !inDoubleQuotes: + inSingleQuotes = !inSingleQuotes + case currentChar == ' ' && !inDoubleQuotes && !inSingleQuotes: + // Space outside quotes; delimiter for a new segment + segments = append(segments, currentSegment.String()) + currentSegment.Reset() + default: + currentSegment.WriteByte(currentChar) + } + } + + if inDoubleQuotes || inSingleQuotes { + return nil, fmt.Errorf("split `%q`: mismatched quotes", input) + } + + if isEscaped { + return nil, fmt.Errorf("split `%q`: trailing backslash", input) + } + + // Add the last segment if present + if currentSegment.Len() > 0 { + segments = append(segments, currentSegment.String()) + } + + return segments, nil +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/smoke-test/Makefile new/k0sctl-0.19.0/smoke-test/Makefile --- old/k0sctl-0.18.1/smoke-test/Makefile 2024-06-28 12:11:27.000000000 +0200 +++ new/k0sctl-0.19.0/smoke-test/Makefile 2024-09-11 08:57:50.000000000 +0200 @@ -31,6 +31,9 @@ smoke-dynamic: $(bootloose) id_rsa_k0s k0sctl ./smoke-dynamic.sh +smoke-reinstall: $(bootloose) id_rsa_k0s k0sctl + ./smoke-reinstall.sh + smoke-files: $(bootloose) id_rsa_k0s k0sctl ./smoke-files.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/smoke-test/k0sctl-installflags.yaml.tpl new/k0sctl-0.19.0/smoke-test/k0sctl-installflags.yaml.tpl --- old/k0sctl-0.18.1/smoke-test/k0sctl-installflags.yaml.tpl 1970-01-01 01:00:00.000000000 +0100 +++ new/k0sctl-0.19.0/smoke-test/k0sctl-installflags.yaml.tpl 2024-09-11 08:57:50.000000000 +0200 @@ -0,0 +1,26 @@ +apiVersion: k0sctl.k0sproject.io/v1beta1 +kind: cluster +spec: + hosts: + - role: controller + uploadBinary: true + installFlags: + - "${K0S_CONTROLLER_FLAG}" + ssh: + address: "127.0.0.1" + port: 9022 + keyPath: ./id_rsa_k0s + - role: worker + uploadBinary: true + installFlags: + - "${K0S_WORKER_FLAG}" + ssh: + address: "127.0.0.1" + port: 9023 + keyPath: ./id_rsa_k0s + k0s: + version: "${K0S_VERSION}" + config: + spec: + telemetry: + enabled: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.18.1/smoke-test/smoke-reinstall.sh new/k0sctl-0.19.0/smoke-test/smoke-reinstall.sh --- old/k0sctl-0.18.1/smoke-test/smoke-reinstall.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/k0sctl-0.19.0/smoke-test/smoke-reinstall.sh 2024-09-11 08:57:50.000000000 +0200 @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +K0SCTL_CONFIG="k0sctl-installflags.yaml" + +export K0S_CONTROLLER_FLAG="--labels=smoke-stage=1" +export K0S_WORKER_FLAG="--labels=smoke-stage=1" +envsubst < "k0sctl-installflags.yaml.tpl" > "${K0SCTL_CONFIG}" + +set -e + +. ./smoke.common.sh +trap cleanup EXIT + +deleteCluster +createCluster + +remoteCommand() { + local userhost="$1" + shift + echo "* Running command on ${userhost}: $*" + bootloose ssh "${userhost}" -- "$*" +} + +echo "Installing ${K0S_VERSION}" +../k0sctl apply --config "${K0SCTL_CONFIG}" --debug +remoteCommand "root@manager0" "k0s status -o json | grep -q -- ${K0S_CONTROLLER_FLAG}" +remoteCommand "root@worker0" "k0s status -o json | grep -q -- ${K0S_WORKER_FLAG}" + +export K0S_CONTROLLER_FLAG="--labels=smoke-stage=2" +export K0S_WORKER_FLAG="--labels=smoke-stage=2" +envsubst < "k0sctl-installflags.yaml.tpl" > "${K0SCTL_CONFIG}" + +echo "Re-applying ${K0S_VERSION} with modified installFlags" +../k0sctl apply --config "${K0SCTL_CONFIG}" --debug +remoteCommand "root@manager0" "k0s status -o json | grep -q -- ${K0S_CONTROLLER_FLAG}" +remoteCommand "root@worker0" "k0s status -o json | grep -q -- ${K0S_WORKER_FLAG}" ++++++ k0sctl.obsinfo ++++++ --- /var/tmp/diff_new_pack.VJKMqY/_old 2024-09-16 17:42:35.191843510 +0200 +++ /var/tmp/diff_new_pack.VJKMqY/_new 2024-09-16 17:42:35.219844668 +0200 @@ -1,5 +1,5 @@ name: k0sctl -version: 0.18.1 -mtime: 1719569487 -commit: 53248d6dd0f8635e3e41fa51c116748f5eb246c7 +version: 0.19.0 +mtime: 1726037870 +commit: 9246ddc823198b572b51fb19bdf5effee4721a9d ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/k0sctl/vendor.tar.gz /work/SRC/openSUSE:Factory/.k0sctl.new.29891/vendor.tar.gz differ: char 5, line 1
