Skip to content

Commit

Permalink
release(v0.4.0-beta.0): prepare release
Browse files Browse the repository at this point in the history
This is the official v0.4.0-beta.0 release.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
  • Loading branch information
Unix4ever committed Nov 29, 2021
1 parent 80b24a0 commit a5af5e4
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 79 deletions.
93 changes: 93 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
<details><summary>5 commits</summary>
<p>

* [`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
</p>
</details>

### Changes since v0.4.0-alpha.0
<details><summary>2 commits</summary>
<p>

* [`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
</p>
</details>

### Changes from talos-systems/capi-utils
<details><summary>6 commits</summary>
<p>

* [`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
</p>
</details>

### Changes from talos-systems/cluster-api-bootstrap-provider-talos
<details><summary>8 commits</summary>
<p>

* [`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
</p>
</details>

### 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!
Expand Down
85 changes: 8 additions & 77 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
Expand All @@ -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.
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
10 changes: 9 additions & 1 deletion hack/release.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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.
"""

0 comments on commit a5af5e4

Please sign in to comment.