Highlights
- Tested with Kubernetes v1.31 & cloud-provider-vsphere v1.31
- Based on Cluster API v1.8
- Bumped to controller-runtime v0.18, k8s.io/* v0.30, controller-gen v0.15
- Bumped to Go 1.22
supervisor mode:
- Significantly improved unit and e2e test coverage (#2995)
- VirtualMachine namingStrategy (#3099)
- Now uses vm-operator v1alpha2 APIs (#3029, #3104)
- Dropped ProviderServiceAccount ConfigMap and deprecated ProviderServiceAccountFinalizer (#3009)
- Support for namespace-scoped Zones (#3146)
govmomi mode:
- Support for vGPU (#3025)
- Removed the keep alive feature (#2984)
- Use sha256 thumbprint in tests (#3076) (using sha1 thumbprint is now deprecated)
Changes since v1.10
📈 Overview
- 142 new commits merged
- 13 feature additions ✨
- 5 bugs fixed 🐛
✨ New Features
- Add Namespace Scoped Zone Discovery and Watch (#3146)
- Add validating and mutating webhook for supervisor mode (#2651)
- Bump CAPI to v1.8.0 (#3151)
- Bump CAPI to v1.8.0-beta.0 (#3107)
- Bump CAPI to v1.8.1 and CPI to v1.31.0 (#3155)
- Bump Cluster API to v1.8.0-rc.1 (#3142)
- Bump CPI to v1.31.0-beta.0 (#3108)
- Bump e2e tests to kubernetes v1.31.0 (#3154)
- Implement VirtualMachine namingStrategy (#3099)
- Test/e2e: use vSphere projects from Boskos (#3034)
- VGPU implementation (#3025)
- VGPU implementation - follow-ups (#3101)
- Vm-operator: migrate to v1alpha2 (#3029)
🐛 Bug Fixes
- Config: drop the deprecated --enable-keep-alive flag from the template (#2947)
- Drop caBundle from CRDs to support Kubernetes 1.31 (#3131)
- Fix unit tests, improve debuggability (#3126)
- Run only one manager with webhooks for supervisor tests (#3021)
- Vmoperator: fix nil pointer when reconciling VM (#3112)
🌱 Others
- Add
Go
directive check asMakefile
target (#3004) - Add release-1.11 to GitHub actions (#3110)
- Bump CAPI to v1.7.0 (#2911)
- Bump CAPI to v1.7.1 (#2940)
- Bump CAPI to v1.8.0-rc.0 (#3127)
- Bump CPI to v1.31.0-rc.1 (#3144)
- Bump Go to 1.21.11 (#3041)
- Bump Kubernetes images to v1.30.0 (#2918)
- Bump Kubernetes version in tests to 1.31.0-rc.1 (#3138)
- Bump sigs.k8s.io/cluster-api to v1.8.0-beta.1 (#3119)
- Bump to CAPI main (v1.8.0 pre alpha) (#3033)
- Bump to Go 1.22.5 (#3090)
- Bump to golangci-lint v1.59.0 (#3062)
- Bump vm-operator to v1.8.6 (#2914)
- Bump vSphere CPI to v1.30.0 (#2923)
- Cleanup janitor (#3057)
- Cloudbuild: bump images to match capi (#3051)
- Controllers: add unit test coverage for esxi host label on supervisor (#3085)
- Controllers: fix ProviderServiceAccount tests to create objects on-demand (#2983)
- Drop integration tests (#2919)
- Drop pre-load of cert-manager images in E2E tests (#3060)
- Drop redundant e2e tests (#2996)
- Drop test coverage for release-1.6 and update README.md (#2958)
- Drop WCP fault domains feature gate (#3118)
- E2e: introduce and use KUBERNETES_VERSION_MANAGEMENT variable which builds kindest/node image on demand (#3137)
- Fill up supervisor e2e test - ClusterClass changes (#3011)
- Fill up supervisor e2e test - ClusterClass rollouts (#3023)
- Fill up supervisor e2e test - clusterctl upgrades using ClusterClass (#3024)
- Fix flake where VSphereFailureDomain still exists from previous test (#3123)
- Flavorgen: Bump CSI to v3.3.0 (#3088)
- Flavorgen: enforce VSPHERE_USERNAME and VSPHERE_PASSWORD variables to be set as string in templates (#3028)
- Generate vm-operator YAML instead of downloading it from GCS (#2931)
- Github: adjust weekly actions to also test release-1.10 (#2903)
- Hack/e2e don't add binary files to artifacts and also censor base64 encoded values (#2989)
- Hack: remove references to GCR_KEY_FILE (#2990)
- Improve checking if guest cluster client works in unit tests (#3136)
- Improve vm operator target + use config/wcp (#2932)
- Makefile: add hack/tools to go test (#3063)
- Makefile: adjust prowjob-gen for upstream job removal (#3143)
- Makefile: drop OVERRIDES_DIR and dependent make targets (#3052)
- Optimize dependabot config (#2979)
- Packaging: write kubeadm script log for ignition (#3149)
- Prepare main for development of release v1.11 (#2950)
- Push manifests for main & release-.* (#2949)
- Remove keep alive feature (#2984)
- Retry CRD detection during startup (#2917)
- Set terminationMessagePolicy to FallbackToLogsOnError for all managers (#2988)
- Store nightly manifests in k8s-staging-capi-vsphere (#2930)
- Supervisor: drop ProviderServiceAccount ConfigMap and deprecate ProviderServiceAccountFinalizer (#3009)
- Surface more conditions about VirtualMachine pre-prequisites (#3104)
- Sync dependabot config with core CAPI (#3066)
- Templates: add a script to run prekubeadmcommands in order of files defined in /etc/pre-kubeadm-scripts (#2906)
- Test OwnerReferences and Finalizers for Supervisor (#3059)
- Test VirtualMachine pre-requisites only before creation (#3105)
- Test: add coverage to find issues running on the next kubernetes release as management cluster (#3139)
- Test: allow retries creating vcsim (#3096)
- Test: bump core-CAPI v1.8.0-beta.0 to nightly image build (#3113)
- Test: Bump CPI to v1.31.0-rc.0 (#3129)
- Test: dump resources before ValidateResourceVersionStable test (#3120)
- Test: enable vcsim for clusterclass rollout test (#3117)
- Test: enable vcsim to run clusterctl upgrade e2e tests (#3109)
- Test: ensure we can collect machine logs (#3145)
- Test: fix collector for machines not having an IP in status and change ignition ssh user to capv (#3010)
- Test: fix wording in vsphere.yaml comment, always use bootstrapClusterProxy to get vCenterSimulator (#3097)
- Test: implement check for all pods running (#3089)
- Test: implement cluster upgrade with Runtime SDK (#3069)
- Test: migrate to vm-operator v1alpha2 (#3032)
- Test: use a daemonset and kubectl exec to provide images to remote clusters (#2955)
- Test: use rolloutStrategy to speed up K8s-Upgrade tests to not hit rollout timeout (#3061)
- Test: wait for nodes being ready before testing resource versions being stable (#3114)
- Testutil: fix import name for fake client library (#3147)
- Update Makefile doc about nightly manifests (#2939)
- Use absolute paths for folder and resourcePool (#3035)
- Use kind for clusterctl upgrade tests (#3050)
- Use release markers in e2e config to fetch lastest releases (#2895)
- Use setup-envtest from CR main (05/2024) to use envtest binaries from CT releases (#3016)
- Use sha256 thumbprint in tests (#3076)
- Use vm operator v1.8.6 for supervisor e2e testing (#2894)
- Vcsim: implement cluster proxy to allow more e2e tests to be compatible to vcsim (#3072)
📖 Additionally, there have been 5 contributions to our documentation and book. (#2928, #2951, #2959, #2999, #3157)
Dependencies
Added
- github.com/dvyukov/go-fuzz: 6a8e9d1
- github.com/fxamacker/cbor/v2: v2.6.0
- github.com/go-task/slim-sprig/v3: v3.0.0
- github.com/x448/float16: v0.8.4
- go4.org/netipx: fdeea32
- golang.org/x/exp/typeparams: 732eee0
- k8s.io/gengo/v2: 51d4e06
Changed
- cloud.google.com/go/compute/metadata: v0.2.3 → v0.3.0
- cloud.google.com/go/compute: v1.23.0 → v1.23.3
- cloud.google.com/go: v0.54.0 → v0.26.0
- github.com/BurntSushi/toml: v0.3.1 → v1.2.1
- github.com/PuerkitoBio/purell: v1.1.1 → v1.0.0
- github.com/PuerkitoBio/urlesc: de5bf2a → 5bd2802
- github.com/adrg/xdg: v0.4.0 → v0.5.0
- github.com/asaskevich/govalidator: a9d515a → f61b66f
- github.com/chzyer/readline: 2972be2 → v1.5.1
- github.com/cncf/xds/go: e9ce688 → 0fa0005
- github.com/coredns/corefile-migration: v1.0.21 → v1.0.23
- github.com/cpuguy83/go-md2man/v2: v2.0.3 → v2.0.4
- github.com/creack/pty: v1.1.11 → v1.1.9
- github.com/distribution/reference: v0.5.0 → v0.6.0
- github.com/elazarl/goproxy: 947c36d → c4fc265
- github.com/emicklei/go-restful/v3: v3.11.0 → v3.12.1
- github.com/emicklei/go-restful: v2.9.5+incompatible → ff4f55a
- github.com/envoyproxy/go-control-plane: v0.11.1 → v0.12.0
- github.com/envoyproxy/protoc-gen-validate: v1.0.2 → v1.0.4
- github.com/fatih/color: v1.16.0 → v1.17.0
- github.com/ghodss/yaml: v1.0.0 → 73d445a
- github.com/go-logr/logr: v1.4.1 → v1.4.2
- github.com/go-openapi/spec: v0.19.5 → 6aced65
- github.com/golang/glog: v1.1.2 → v1.2.0
- github.com/golang/mock: v1.4.1 → v1.1.1
- github.com/google/cel-go: v0.17.7 → v0.17.8
- github.com/google/pprof: 4bb14d4 → 813a5fb
- github.com/googleapis/gnostic: v0.5.5 → 0c51083
- github.com/hashicorp/golang-lru: v0.5.4 → v0.5.1
- github.com/ianlancetaylor/demangle: 28f6c0f → bd984b5
- github.com/kr/pty: v1.1.5 → v1.1.1
- github.com/onsi/ginkgo/v2: v2.17.1 → v2.20.0
- github.com/onsi/ginkgo: v1.16.4 → v1.10.1
- github.com/onsi/gomega: v1.32.0 → v1.34.1
- github.com/pelletier/go-toml/v2: v2.1.0 → v2.2.2
- github.com/prometheus/client_model: v0.5.0 → v0.6.0
- github.com/spf13/cobra: v1.8.0 → v1.8.1
- github.com/spf13/viper: v1.18.2 → v1.19.0
- github.com/vmware/govmomi: v0.37.1 → v0.39.0
- go.etcd.io/etcd/api/v3: v3.5.13 → v3.5.15
- go.etcd.io/etcd/client/pkg/v3: v3.5.13 → v3.5.15
- go.etcd.io/etcd/client/v3: v3.5.13 → v3.5.15
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.46.0 → v0.42.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.46.0 → v0.49.0
- go.opentelemetry.io/otel/metric: v1.20.0 → v1.24.0
- go.opentelemetry.io/otel/trace: v1.20.0 → v1.24.0
- go.opentelemetry.io/otel: v1.20.0 → v1.24.0
- go.uber.org/zap: v1.26.0 → v1.27.0
- golang.org/x/crypto: v0.22.0 → v0.26.0
- golang.org/x/exp: 9212866 → 8a7402a
- golang.org/x/lint: 738671d → d0100b6
- golang.org/x/mod: v0.17.0 → v0.20.0
- golang.org/x/net: v0.24.0 → v0.28.0
- golang.org/x/oauth2: v0.18.0 → v0.21.0
- golang.org/x/sync: v0.7.0 → v0.8.0
- golang.org/x/sys: v0.19.0 → v0.23.0
- golang.org/x/telemetry: f48c80b → bda5523
- golang.org/x/term: v0.19.0 → v0.23.0
- golang.org/x/text: v0.14.0 → v0.17.0
- golang.org/x/tools: v0.20.0 → v0.24.0
- google.golang.org/appengine: v1.6.7 → v1.6.8
- google.golang.org/genproto/googleapis/api: bbf56f3 → a219d84
- google.golang.org/genproto/googleapis/rpc: 83a465c → 6e1732d
- google.golang.org/genproto: bbf56f3 → ef43131
- google.golang.org/grpc: v1.59.0 → v1.62.2
- google.golang.org/protobuf: v1.33.0 → v1.34.1
- honnef.co/go/tools: v0.0.1-2020.1.3 → v0.4.5
- k8s.io/api: v0.29.3 → v0.30.3
- k8s.io/apiextensions-apiserver: v0.29.3 → v0.30.3
- k8s.io/apimachinery: v0.29.3 → v0.30.3
- k8s.io/apiserver: v0.29.3 → v0.30.3
- k8s.io/cli-runtime: v0.29.3 → v0.30.3
- k8s.io/client-go: v0.29.3 → v0.30.3
- k8s.io/cluster-bootstrap: v0.29.3 → v0.30.3
- k8s.io/code-generator: v0.29.3 → v0.30.3
- k8s.io/component-base: v0.29.3 → v0.30.3
- k8s.io/component-helpers: v0.29.3 → v0.30.3
- k8s.io/gengo: 9cce18d → 485abfe
- k8s.io/klog/v2: v2.110.1 → v2.120.1
- k8s.io/kms: v0.29.3 → v0.30.3
- k8s.io/kube-openapi: 2dd684a → 70dd376
- k8s.io/kubectl: v0.29.3 → v0.30.3
- k8s.io/metrics: v0.29.3 → v0.30.3
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.28.0 → v0.30.0
- sigs.k8s.io/cluster-api: v1.7.1 → v1.8.1
- sigs.k8s.io/controller-runtime: v0.17.3 → v0.18.5
- sigs.k8s.io/kustomize/api: v0.17.1 → v0.17.3
- sigs.k8s.io/kustomize/kyaml: v0.17.0 → v0.17.2
Removed
- cloud.google.com/go/bigquery: v1.4.0
- cloud.google.com/go/datastore: v1.1.0
- cloud.google.com/go/firestore: v1.1.0
- cloud.google.com/go/pubsub: v1.2.0
- cloud.google.com/go/storage: v1.6.0
- dmitri.shuralyov.com/gpu/mtl: 666a987
- github.com/Azure/go-autorest/autorest/adal: v0.9.5
- github.com/Azure/go-autorest/autorest/date: v0.3.0
- github.com/Azure/go-autorest/autorest/mocks: v0.4.1
- github.com/Azure/go-autorest/autorest: v0.11.12
- github.com/Azure/go-autorest/logger: v0.2.0
- github.com/Azure/go-autorest/tracing: v0.6.0
- github.com/Azure/go-autorest: v14.2.0+incompatible
- github.com/BurntSushi/xgb: 27f1227
- github.com/OneOfOne/xxhash: v1.2.2
- github.com/alecthomas/template: fb15b89
- github.com/armon/circbuf: bbbad09
- github.com/armon/go-metrics: f0300d1
- github.com/armon/go-radix: 7fddfc3
- github.com/bgentry/speakeasy: v0.1.0
- github.com/bketelsen/crypt: 5cbc8cc
- github.com/cespare/xxhash: v1.1.0
- github.com/cockroachdb/datadriven: 80d97fb
- github.com/coreos/bbolt: v1.3.2
- github.com/coreos/etcd: v3.3.13+incompatible
- github.com/coreos/pkg: 399ea9e
- github.com/dgrijalva/jwt-go: v3.2.0+incompatible
- github.com/dgryski/go-sip13: e10d5fe
- github.com/docopt/docopt-go: ee0de3b
- github.com/flynn/go-shlex: 3f9db97
- github.com/form3tech-oss/jwt-go: v3.2.2+incompatible
- github.com/go-gl/glfw/v3.3/glfw: 6f7a984
- github.com/go-gl/glfw: e6da0ac
- github.com/go-kit/kit: v0.9.0
- github.com/go-stack/stack: v1.8.0
- github.com/google/martian: v2.1.0+incompatible
- github.com/google/renameio: v0.1.0
- github.com/googleapis/gax-go/v2: v2.0.5
- github.com/gopherjs/gopherjs: 0766667
- github.com/hashicorp/consul/api: v1.1.0
- github.com/hashicorp/consul/sdk: v0.1.1
- github.com/hashicorp/errwrap: v1.0.0
- github.com/hashicorp/go-cleanhttp: v0.5.1
- github.com/hashicorp/go-immutable-radix: v1.0.0
- github.com/hashicorp/go-msgpack: v0.5.3
- github.com/hashicorp/go-multierror: v1.0.0
- github.com/hashicorp/go-rootcerts: v1.0.0
- github.com/hashicorp/go-sockaddr: v1.0.0
- github.com/hashicorp/go-syslog: v1.0.0
- github.com/hashicorp/go-uuid: v1.0.1
- github.com/hashicorp/go.net: v0.0.1
- github.com/hashicorp/logutils: v1.0.0
- github.com/hashicorp/mdns: v1.0.0
- github.com/hashicorp/memberlist: v0.1.3
- github.com/hashicorp/serf: v0.8.2
- github.com/jstemmer/go-junit-report: v0.9.1
- github.com/jtolds/gls: v4.20.0+incompatible
- github.com/konsorten/go-windows-terminal-sequences: v1.0.3
- github.com/kr/logfmt: b84e30a
- github.com/miekg/dns: v1.0.14
- github.com/mitchellh/cli: v1.0.0
- github.com/mitchellh/go-homedir: v1.1.0
- github.com/mitchellh/go-testing-interface: v1.0.0
- github.com/mitchellh/gox: v0.4.0
- github.com/mitchellh/iochan: v1.0.0
- github.com/niemeyer/pretty: a10e7ca
- github.com/nxadm/tail: v1.4.8
- github.com/oklog/ulid: v1.3.1
- github.com/pascaldekloe/goe: 57f6aae
- github.com/pelletier/go-toml: v1.2.0
- github.com/posener/complete: v1.1.1
- github.com/prometheus/tsdb: v0.7.1
- github.com/ryanuber/columnize: 9b3edd6
- github.com/sean-/seed: e2103e2
- github.com/shurcooL/sanitized_anchor_name: v1.0.0
- github.com/smartystreets/assertions: b2de0cb
- github.com/smartystreets/goconvey: v1.6.4
- github.com/spaolacci/murmur3: f09979e
- github.com/spf13/jwalterweatherman: v1.0.0
- github.com/urfave/cli: v1.20.0
- github.com/vmware-tanzu/vm-operator/external/tanzu-topology: de75746
- go.etcd.io/etcd: dd1b699
- go.opencensus.io: v0.22.3
- go.uber.org/atomic: v1.10.0
- golang.org/x/image: cff245a
- golang.org/x/mobile: d2bd2a2
- google.golang.org/api: v0.20.0
- gopkg.in/alecthomas/kingpin.v2: v2.2.6
- gopkg.in/cheggaaa/pb.v1: v1.0.25
- gopkg.in/errgo.v2: v2.1.0
- gopkg.in/resty.v1: v1.12.0
- gotest.tools/v3: v3.0.3
- rsc.io/binaryregexp: v0.2.0
- rsc.io/quote/v3: v3.1.0
- rsc.io/sampler: v1.3.0
Thanks to all our contributors! 😊