From a5af5e4b09f8450b73b825d95e49b75b045cb47b Mon Sep 17 00:00:00 2001 From: Artem Chernyshev Date: Mon, 29 Nov 2021 14:58:20 +0300 Subject: [PATCH] release(v0.4.0-beta.0): prepare release This is the official v0.4.0-beta.0 release. Signed-off-by: Artem Chernyshev --- CHANGELOG.md | 93 +++++++++++++++++++ README.md | 85 ++--------------- ...e.cluster.x-k8s.io_taloscontrolplanes.yaml | 2 +- hack/release.toml | 10 +- 4 files changed, 111 insertions(+), 79 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a6c9d78..111ff99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,96 @@ +## [CAPI Control Plane Provider Talos 0.4.0-beta.0](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/releases/tag/v0.4.0-beta.0) (2021-11-29) + +Welcome to the v0.4.0-beta.0 release of CAPI Control Plane Provider Talos! +*This is a pre-release of CAPI Control Plane Provider Talos* + + + +Please try out the release binaries and report any issues at +https://github.com/talos-systems/cluster-api-control-plane-provider-talos/issues. + +### `init` nodes deprecation + +Starting from this release CACPPT no longer relies on init nodes to bootstrap the cluster. +Instead, it is now issues bootstrap and keeps bootstrap status information in the `TalosControlPlane` resource. +Bootstrap state can also be retrieved from the conditions. + + +### CAPI v1beta1 + +This release of CACPPT brings compatibility with CAPI v1beta1. + + +### Contributors + +* Artem Chernyshev +* Andrey Smirnov +* Spencer Smith + +### Changes +
5 commits +

+ +* [`a24dad3`](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/commit/a24dad3328d52a3744f685ddde913d66dd17b176) fix: do not allow scaling down controlplane to zero +* [`8a73e6a`](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/commit/8a73e6a26e52151b1dd4604c4d0737036f119c30) feat: get rid of init nodes and use bootstrap API to setup cluster +* [`205f4be`](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/commit/205f4be2057b3ea81c4dcf47004db6864ff31801) release(v0.4.0-alpha.0): prepare release +* [`b8db449`](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/commit/b8db4492d55f910e8a7d2a3b69ab08740963683e) fix: properly pick talos client configuration +* [`61fb582`](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/commit/61fb5826391e4434b64619f0590683f7fa7b82b6) feat: support clusterapi v1beta1 +

+
+ +### Changes since v0.4.0-alpha.0 +
2 commits +

+ +* [`a24dad3`](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/commit/a24dad3328d52a3744f685ddde913d66dd17b176) fix: do not allow scaling down controlplane to zero +* [`8a73e6a`](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/commit/8a73e6a26e52151b1dd4604c4d0737036f119c30) feat: get rid of init nodes and use bootstrap API to setup cluster +

+
+ +### Changes from talos-systems/capi-utils +
6 commits +

+ +* [`e8c3bf9`](https://github.com/talos-systems/capi-utils/commit/e8c3bf93e75fd46232ed6ac7df2cc7d0ad3cc8b3) feat: pass through an option to wait for providers to be set up +* [`144451c`](https://github.com/talos-systems/capi-utils/commit/144451cdef39bf6aed0cf1395ff69f9ce0496243) feat: switch to CAPI v1beta1 +* [`151aac2`](https://github.com/talos-systems/capi-utils/commit/151aac243655ecf5ac82fde99db1d11795f4c14c) fix: properly define calico version +* [`658f48a`](https://github.com/talos-systems/capi-utils/commit/658f48a2034f991278ba7eeebccb3519dc1ee30a) feat: support getting cluster template files by http urls +* [`e0cadf5`](https://github.com/talos-systems/capi-utils/commit/e0cadf51e3dec7f7af7acfc533233365e01860a1) feat: add method to fetch a k8s client +* [`b018ea2`](https://github.com/talos-systems/capi-utils/commit/b018ea29c13a09ae2fdb2a071c5b7c8bd626bb50) feat: add ability to pass custom `Proxy` implementation in clusterapi +

+
+ +### Changes from talos-systems/cluster-api-bootstrap-provider-talos +
8 commits +

+ +* [`6d27c57`](https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/commit/6d27c57584b99ac9aab5313191c701ccd780bc5d) release(v0.5.0): prepare release +* [`f6dc0a3`](https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/commit/f6dc0a3372dba82306a4abc9b2a064f1e337421c) fix: regenerate manifests +* [`2a4115f`](https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/commit/2a4115f1211a20e5058a7b0430c4dc4081acfcfe) release(v0.5.0-alpha.0): prepare release +* [`d124c07`](https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/commit/d124c072c9db8d402b353a73646d2d197bae76a4) docs: update README with usage and compatibility matrix +* [`20792f3`](https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/commit/20792f345b7ff3c8ffa9d65c9ca8dcab1932f49e) feat: generate talosconfig as a secret with proper endpoints +* [`abd206f`](https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/commit/abd206fd8a98f5478f8ffd0f8686e32be3b7defe) feat: update to CAPI v1.0.x contract (v1beta1) +* [`b7faf9e`](https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/commit/b7faf9e730b7c9f50ffa94be194ddcf908708a2c) feat: update Talos machinery to 0.13.0 +* [`04742b9`](https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/commit/04742b96bf757413c88d0f15bee91679644f0337) feat: import fixes/updates from kubeadm bootstrap provider +

+
+ +### Dependency Changes + +* **github.com/onsi/gomega** v1.15.0 -> v1.16.0 +* **github.com/talos-systems/capi-utils** b2f8f83d3df6 -> e8c3bf93e75f +* **github.com/talos-systems/cluster-api-bootstrap-provider-talos** v0.4.0-alpha.0 -> v0.5.0 +* **google.golang.org/grpc** v1.40.0 -> v1.41.0 +* **k8s.io/api** v0.22.1 -> v0.22.2 +* **k8s.io/apimachinery** v0.22.1 -> v0.22.2 +* **k8s.io/apiserver** v0.22.1 -> v0.22.2 +* **k8s.io/client-go** v0.22.1 -> v0.22.2 +* **k8s.io/utils** bdf08cb9a70a -> cb0fa318a74b +* **sigs.k8s.io/cluster-api** v0.4.3 -> v1.0.0 +* **sigs.k8s.io/controller-runtime** v0.9.7 -> v0.10.2 + +Previous release can be found at [v0.3.1](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/releases/tag/v0.3.1) + ## [CAPI Control Plane Provider Talos 0.4.0-alpha.0](https://github.com/talos-systems/cluster-api-control-plane-provider-talos/releases/tag/v0.4.0-alpha.0) (2021-11-10) Welcome to the v0.4.0-alpha.0 release of CAPI Control Plane Provider Talos! diff --git a/README.md b/README.md index 5d6aae3..597cd5a 100644 --- a/README.md +++ b/README.md @@ -42,20 +42,11 @@ This provider's versions are compatible with the following versions of Talos: ## Building and Installing -This control plane provider can be installed with clusterctl. -Add the following to your clusterctl.yaml: - -```yaml -providers: - - name: "talos" - url: "https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/releases/latest/bootstrap-components.yaml" - type: "BootstrapProvider" - - name: "talos" - url: "https://github.com/rsmitty/cluster-api-control-plane-provider-talos/releases/latest/controlplane-components.yaml" - type: "ControlPlaneProvider" -``` +This control plane provider can be installed with clusterctl: -You can then install with `clusterctl init --control-plane "talos" --bootstrap "talos" ...`. +```bash +clusterctl init -c talos -b talos +``` This project can be built simply by running `make release` from the root directory. Doing so will create a file called `_out/control-plane-components.yaml`. @@ -67,68 +58,8 @@ You will need at least the upstream CAPI components, the Talos bootstrap provide ## Usage -CACPPT supports a single API type, a TalosControlPlane. -You can create YAML definitions of a TalosControlPlane and `kubectl apply` them as part of a larger CAPI cluster deployment. -Below is a bare-minimum example. - -A basic config: - -```yaml -apiVersion: controlplane.cluster.x-k8s.io/v1alpha3 -kind: TalosControlPlane -metadata: - name: talos-cp -spec: - version: v1.18.1 - replicas: 1 - infrastructureTemplate: - kind: MetalMachineTemplate - apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3 - name: talos-cp - controlPlaneConfig: - init: - generateType: init - controlplane: - generateType: controlplane -``` - -Note you must provide an infrastructure template for your control plane. -See your infrastructure provider for how to craft that. - -Note the generateType mentioned above. -This is a required value in the spec for both init and controlplane nodes. -For a no-frills control plane config, you can simply specify `controlplane` depending on each config section. -When creating a TalosControlPlane this way, you can then retrieve the talosconfig file that allows for osctl interaction with your nodes by doing something like `kubectl get talosconfig -o yaml talos-cp-xxxx -o jsonpath='{.status.talosConfig}'` after creation. - -If you wish to do something more complex, we allow for the ability to supply an entire Talos config file to the resource. -This can be done by setting the generateType to `none` and specifying a `data` field. -This config file can be generated with `talosctl config generate` and the edited to supply the various options you may desire. -This full config is blindly copied from the `data` section of the spec and presented under `.status.controlPlaneData` so that the upstream CAPI controllers can see it and make use. - -An example of a more complex config: - -```yaml -apiVersion: control-plane.cluster.x-k8s.io/v1alpha2 -kind: TalosControlPlane -metadata: - name: talos-0 - labels: - cluster.x-k8s.io/cluster-name: talos -spec: - controlPlaneConfig: - init: - generateType: none - data: | - version: v1alpha1 - machine: - type: init - token: xxxxxx - ... - ... - ... - ... - ... -``` +You can use recommended [Cluster API templates](https://github.com/talos-systems/cluster-api-templates) provided by Sidero Labs. +It contains templates for `AWS` and `GCP`, which are verified by the integration tests. -Note that specifying the full config above removes the ability for our control plane provider to generate a talosconfig for use. -As such, you should keep track of the talosconfig that's generated when running `talosctl config generate`. +If you are going to use this provider as part of Sidero management plane, please refer to [Sidero Docs](https://www.sidero.dev/docs/v0.4/getting-started/install-clusterapi/) +on how to install and configure it. diff --git a/config/crd/bases/controlplane.cluster.x-k8s.io_taloscontrolplanes.yaml b/config/crd/bases/controlplane.cluster.x-k8s.io_taloscontrolplanes.yaml index 8dd3506..5838747 100644 --- a/config/crd/bases/controlplane.cluster.x-k8s.io_taloscontrolplanes.yaml +++ b/config/crd/bases/controlplane.cluster.x-k8s.io_taloscontrolplanes.yaml @@ -158,7 +158,7 @@ spec: description: TalosControlPlaneStatus defines the observed state of TalosControlPlane properties: bootstrapped: - description: Bootstrapped denotes wheither any nodes recieved bootstrap request which is required to start etcd and Kubernetes components in Talos. + description: Bootstrapped denotes whether any nodes received bootstrap request which is required to start etcd and Kubernetes components in Talos. type: boolean conditions: description: Conditions defines current service state of the KubeadmControlPlane. diff --git a/hack/release.toml b/hack/release.toml index 1b90ae1..958fd81 100644 --- a/hack/release.toml +++ b/hack/release.toml @@ -6,7 +6,7 @@ github_repo = "talos-systems/cluster-api-control-plane-provider-talos" match_deps = "^github.com/(talos-systems/[a-zA-Z0-9-]+)$" # previous release -previous = "v0.3.0" +previous = "v0.3.1" pre_release = true @@ -19,4 +19,12 @@ preface = """\ title = "CAPI v1beta1" description = """\ This release of CACPPT brings compatibility with CAPI v1beta1. +""" + + [notes.bootstrap] + title = "`init` nodes deprecation" + description = """\ +Starting from this release CACPPT no longer relies on init nodes to bootstrap the cluster. +Instead, it is now issues bootstrap and keeps bootstrap status information in the `TalosControlPlane` resource. +Bootstrap state can also be retrieved from the conditions. """