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.
"""