sigs.k8s.io/cluster-api@v1.7.1/docs/book/src/developer/providers/migrations/v1.0-to-v1.1.md (about) 1 # Cluster API v1.0 compared to v1.1 2 3 This document provides an overview over relevant changes between ClusterAPI v1.0 and v1.1 for 4 maintainer of other providers and consumers of our Go API. 5 6 ## Minimum Go version 7 8 * The Go version used by Cluster API is now Go 1.17+ 9 10 ## Dependencies 11 12 **Note**: Only the most relevant dependencies are listed, `k8s.io/` and `ginkgo`/`gomega` dependencies 13 are kept in sync with the versions used by `sigs.k8s.io/controller-runtime`. 14 15 - sigs.k8s.io/controller-runtime: v0.10.x => v0.11.x 16 - k8s.io/*: v0.22.x => v0.23.x (derived from controller-runtime) 17 - github.com/go-logr/logr: v0.4.0 => v1.2.0 (derived from controller-runtime) 18 - k8s.io/klog/v2: v2.9.0 => v2.30.0 (derived from controller-runtime) 19 - sigs.k8s.io/controller-tools: v0.7.x => v0.8.x 20 - sigs.k8s.io/kind: v0.11.x => v0.11.x 21 22 ## Changes by Kind 23 24 ### Deprecation 25 26 * The Cluster and ClusterClass webhooks have been moved to the `webhooks` package. Thus, the following methods on `Cluster` and `ClusterClass` 27 in `api/v1beta1` are deprecated: `SetupWebhookWithManager`, `Default`, `ValidateCreate`, `ValidateUpdate` and `ValidateDelete`. 28 * The `third_party/kubernetes-drain` package is deprecated, as we're now using `k8s.io/kubectl/pkg/drain` instead ([PR](https://github.com/kubernetes-sigs/cluster-api/pull/5440)). 29 * `util/version.CompareWithBuildIdentifiers` has been deprecated, please use `util/version.Compare(a, b, WithBuildTags())` instead. 30 * The functions `annotations.HasPausedAnnotation` and `annotations.HasSkipRemediationAnnotation` have been deprecated, please use 31 `annotations.HasPaused` and `annotations.HasSkipRemediation` respectively instead. 32 33 ### Removals 34 35 * `KCPUpgradeSpec` has been removed. Please use `ClusterUpgradeConformanceSpec` instead. 36 37 ### API Change 38 39 * Some controllers have been moved to internal to reduce their API surface. We now only 40 surface what is necessary, e.g. the reconciler and the `SetupWithManager` func: 41 * [bootstrap/kubeadm/controllers](https://github.com/kubernetes-sigs/cluster-api/pull/5493) 42 * controllers [part1](https://github.com/kubernetes-sigs/cluster-api/pull/5899) [part2](https://github.com/kubernetes-sigs/cluster-api/pull/5913) [part3](https://github.com/kubernetes-sigs/cluster-api/pull/5917) 43 * [controlplane/kubeadm/controllers](https://github.com/kubernetes-sigs/cluster-api/pull/5929) 44 * [exp/addons/controllers](https://github.com/kubernetes-sigs/cluster-api/pull/5639) 45 * [test/infrastructure/docker/controllers](https://github.com/kubernetes-sigs/cluster-api/pull/5595) 46 * [test/infrastructure/docker/exp/controllers](https://github.com/kubernetes-sigs/cluster-api/pull/5690) 47 * [exp/controllers](https://github.com/kubernetes-sigs/cluster-api/pull/5651) 48 49 * Following packages have been moved to internal 50 * [/test/infrastructure/docker/cloudinit](https://github.com/kubernetes-sigs/cluster-api/pull/5795) 51 * [/test/infrastructure/docker/docker](https://github.com/kubernetes-sigs/cluster-api/pull/5795) 52 * [/test/infrastructure/docker/third_party](https://github.com/kubernetes-sigs/cluster-api/pull/5795) 53 * [/test/infrastructure/docker/exp/docker](https://github.com/kubernetes-sigs/cluster-api/pull/5795) 54 55 ### Other 56 57 * ClusterClass: 58 * `clusterctl` is now able to handle cluster templates with ClusterClasses ([PR](https://github.com/kubernetes-sigs/cluster-api/pull/5351)). 59 Please check out the corresponding documentation in [clusterctl provider contract](../../../clusterctl/provider-contract.md#clusterclass-definitions) 60 If you have any further questions about writing ClusterClasses, please let us know. 61 * e2e tests: 62 * `QuickStartSpec` is now able to test clusters using ClusterClass. Please see this [PR](https://github.com/kubernetes-sigs/cluster-api/pull/5423) for an example on how to use it. 63 * `SelfHostedSpec` is now able to test clusters using ClusterClass. Please see this [PR](https://github.com/kubernetes-sigs/cluster-api/pull/5600) for an example on how to use it. 64 * Test framework provides better logging in case of failures when creating the bootstrap kind cluster; in order to 65 fully exploit this feature, it is required to pass the `LogFolder` parameter when calling `CreateKindBootstrapClusterAndLoadImages`. Please see this [PR](https://github.com/kubernetes-sigs/cluster-api/pull/5910) for an example on how to use it. 66 * The `gci` linter has been enabled to enforce consistent imports. As usual, feel free to take a look at our linter config, but of course it's not mandatory to adopt it. 67 * The Tilt dev setup has been extended with: 68 * [an option to deploy Grafana, Loki and Promtail](https://github.com/kubernetes-sigs/cluster-api/pull/5336) 69 * [options to ease debugging of controllers (delve, profiler, metrics)](https://github.com/kubernetes-sigs/cluster-api/pull/5485)