Skip to content

v0.3.2

Compare
Choose a tag to compare
@talos-bot talos-bot released this 17 Sep 19:44
v0.3.2
32e91a2

Sidero 0.3.2 (2021-09-17)

Welcome to the v0.3.2 release of Sidero!

Please try out the release binaries and report any issues at
https://github.com/talos-systems/sidero/issues.

ServerClass any and Environment default

Sidero now creates ServerClass any which matches all servers.

Environment default is created which will supply Talos release that Sidero was built with, as well as default kernel flags.

Application Renaming

The layout of this repository, as well as the naming of the two apps that make up Sidero have changed.
In an effort to give better clarity to users, there are two apps:

  • caps-controller-manager: Responsible for all things related to the Cluster API infrastructur provider
  • sidero-controller-manager: Responsible for all things related to Sidero's bare metal integrations.

It should also be noted that container image names, as well as the kustomize code has been edited to match.

Boot from Disk Methods

If the server is configured to PXE boot by default, it might hit the Sidero iPXE server after Talos install, so Sidero has to force the
server to boot from disk.

Sidero 0.2 supports default method via iPXE exit command, but this command doesn't always work
(details).

Sidero 0.3 adds support for two additional methods:

  • http-404 force HTTP 404 response from iPXE server
  • ipxe-sanboot uses sanboot command to boot from the first disk

Variable SIDERO_CONTROLLER_MANAGER_BOOT_FROM_DISK_METHOD controls this setting.

Install and Upgrade Variables

Some aspects of Sidero installation can now be controlled via environment variables or clusterctl variables.

IPMI Discovery and Automatic Setup

Sidero agent by default discovers BMC (IPMI) endpoint when it first runs on the server and provisions user for Sidero automatically.
This feature enables completely automated server and IPMI discovery on the agent boot.
Variable SIDERO_CONTROLLER_MANAGER_AUTO_BMC_SETUP can be used to disable this feature during install or upgrade of Sidero.

Additionally Sidero supports storing IMPI credentials in Kubernetes secrets referencing them from the Server object.

iPXE script

iPXE image delivered by Sidero (either ipxe.efi or undionly.kpxe) now contains embedded iPXE script to access Sidero iPXE server.
This change allows to simplify DHCP server setup to return only iPXE image without any additional ifs.

Label Selector support in ServerClass

ServerClasses now support Kubernetes label selectors: Servers can be selected based on their labels.

metal-controller-manager External Ports Change

Component metal-metadata-server was merged into metal-controller-manager, and three separate HTTP endpoints were merged into one endpoint on port :8081:

  • iPXE server (which used to be on port 8081)
  • internal gRPC server (Sidero agent uses it to talk back to Sidero service), previously was 50001
  • metadata server endpoint (used to be separate deployment and service, docs used port 9091)

Support for arm64

All components are now capable of running on arm64, including Rasberry Pi 4.

Sidero can provision amd64 and arm64 nodes from any platform.
Only UEFI boot is supported for arm64.

Note: Upstream CAPI includes kube-rbac-proxy component which is not compatible with arm64 at the moment of this writing.
A workaround is to patch the deployment to bump the kube-rbac-proxy image from v0.4.1 to v0.8.0.

Contributors

  • Andrey Smirnov
  • Spencer Smith
  • Alexey Palazhchenko
  • Artem Chernyshev
  • Andrew Rynhard
  • Andrey Smirnov
  • Brandon Nason
  • Kevin Hellemun
  • Matt Zahorik
  • Spencer Smith
  • bzub

Changes

66 commits

  • 32e91a2 release(v0.3.2): prepare release
  • b340cee fix: shutdown sidero-controller-manager when any component fails
  • 3eb7b28 release(v0.3.1): prepare release
  • 3a83663 fix: update sidero IPMI user to work properly on idrac
  • 0fc255e fix: update Sfyra to install CAPI v0.3
  • 654a1d0 release(v0.3.0): prepare release
  • ef86bb0 chore: update to latest stable talos providers
  • 9463b47 fix: make sure components of agent environment are of proper arch
  • 20a7622 feat: update default Talos version to v0.10.3
  • f2099d9 release(v0.3.0-beta.0): prepare release
  • 864ec57 docs: add doc for using rpi4 as server
  • a563284 chore: bump dependencies via dependabot
  • 6821dd2 feat: update paths of apps
  • 5bfcb9d chore: remove parsebool script
  • e558d18 feat: always return BMC IP if found
  • efd300b chore: add support for WITH_RACE
  • 2f8ad47 docs: fix duplicate titles in documentation
  • 56ca87c chore: bump dependencies via dependabot
  • 3ab1fad fix: make server class qualifiers and selectors optional
  • 72a22a9 chore: check for dirtiness of the source tree
  • ceca560 chore: fix generated CRDs
  • 99c3cd3 release(v0.3.0-alpha.1): prepare release
  • dcc3fde feat: add label selector to serverclass
  • 3caa6f5 chore: fix markdown linting
  • a792890 feat: provide several options to force boot from disk via iPXE
  • 1e8096e docs: add Mermaid
  • c240381 feat: bump default Talos version to v0.10.2
  • 0a50888 docs: move to standardized template
  • 4a1183b feat: ship Environment "default"
  • 2e8c1ed chore: fix a few linter warnings
  • 6bcf9a8 chore: bump dependencies via dependabot
  • 4c0b3de docs: clarify docs around endpoints and metadata server
  • 990263a feat: merge Sidero HTTP endpoints under a single port
  • 5266a76 chore: reduce bootstrap node resources in Sfyra
  • 7f3b4b8 fix: remove kube-rbac-proxy
  • bfa3cd9 chore: re-sign the .drone.yml file
  • cf383ab chore: use release-tool to generate release notes
  • 056f8c2 release(v0.3.0-alpha.0): prepare release
  • ca75eb4 fix: back down resource requests
  • 3a6c5b9 chore: parse "boolean" variables
  • 148e228 chore: bump dependencies
  • db28ed3 chore: allow building with debug handlers
  • 2cdde00 test: fix the Environment args to support UEFI boot
  • d15a960 chore: add golangci-lint configuration
  • b3afd17 feat: ship ServerClass "any"
  • 94ff33b feat: enable auto-setup of BMC
  • 52647f9 docs: fix install disk name in the examples
  • 44eaa7d feat: inject iPXE script into the iPXE binaries
  • 1659b96 docs: fix typo
  • fb04b24 chore: fix make help command
  • f8bc9b1 test: add missing empty tests
  • b17f370 test: port improvements from Talos
  • c43f9ec test: run unit tests on CI, skip broken
  • 45cb973 chore: document Makefile target
  • 8e12ab9 chore: disable dependabot rebases
  • 4267ed7 chore: update dependecies
  • 4aae477 chore: add dependabot config
  • 1e33dcd feat: pull the Sidero configuration as clusterctl variables
  • 23c75e4 docs: add guide for upgrades
  • c9aca48 docs: fix the docs around CONTROL_PLANE_ENDPOINT
  • 37e4ab7 fix: remove erroneous wg.Add in environment controller
  • 74d9bf9 feat: add an option to reference IPMI creds via the secret refs
  • 0613b8f feat: pull in new version of go-smbios for UUID endiannes fix
  • f6ca6e8 feat: build Sidero for amd64 and arm64, support arm64 in the agent
  • 8960225 chore: improve build system
  • a20fcf9 docs: create v0.2 docs and add note about specifying TALOS_VERSION

Changes since v0.3.1

2 commits

  • 32e91a2 release(v0.3.2): prepare release
  • b340cee fix: shutdown sidero-controller-manager when any component fails

Changes from talos-systems/cluster-api-bootstrap-provider-talos

8 commits

  • d9a6554 release(v0.2.0): prepare release
  • b4c09ee release(v0.2.0-beta.0): prepare release
  • 1eb9529 chore: update machinery to latest stable
  • 884c4f0 fix: remove unused kube-rbac-proxy, protect metrics-addr
  • 63b7459 release(v0.2.0-alpha.12): prepare release
  • f59baf5 fix: back down resource requests
  • 92f42c4 fix: ensure secrets are deleted when cluster is dropped
  • 2487307 chore: rework build, move to ghcr.io, build for arm64/amd64

Changes from talos-systems/cluster-api-control-plane-provider-talos

13 commits

  • dc76b9f release(v0.1.0): prepare release
  • b787fd8 chore: update bootstrap provider to stable release
  • cefb2fc release(v0.1.0-beta.0): prepare release
  • fb0257d feat: audit and remove etcd members if machines no longer exist
  • 182f656 chore: breakout common functions
  • f7191a0 chore: remove duplicate imports
  • d7f4618 fix: protect metrics-addr by default
  • 7b963e1 release(v0.1.0-alpha.13): prepare release
  • 4bba1c9 fix: back down resource requests
  • 430fcda chore: rework build, move to ghcr.io, build for arm64/amd64
  • 579303c release(v0.1.0-alpha.12): prepare release
  • e0c38b3 fix: update resources for deployment
  • fe29dfd fix: use Talos API client correctly (wrapped version)

Changes from talos-systems/go-blockdevice

9 commits

  • 1d830a2 fix: revert mark the EFI partition in PMBR as bootable
  • bec914f fix: mark the EFI partition in PMBR as bootable
  • 776b37d feat: add options to probe disk by various sysblock parameters
  • bb3ad73 fix: align partition start to physical sector size
  • 8f976c2 feat: replace exec.Command with go-cmd module
  • 1cf7f25 fix: properly handle no child processes error from cmd.Wait
  • 04a9851 feat: implement luks encryption provider
  • b0375e4 feat: add an option to open block device with exclusive flock
  • 5a1c7f7 refactor: add devname into gpt.Partition, refactor probe package

Changes from talos-systems/go-debug

4 commits

Changes from talos-systems/go-kmsg

2 commits

Changes from talos-systems/go-procfs

2 commits

  • 8cbc42d feat: provide an option to overwrite some args in AppendAll
  • 24d06a9 refactor: remove talos kernel default args

Changes from talos-systems/go-retry

3 commits

  • 7885e16 feat: add ExpectedErrorf
  • 3d83f61 feat: deprecate UnexpectedError
  • b9dc1a9 feat: add support for context.Context in Retry

Changes from talos-systems/go-smbios

3 commits

  • d3a32be fix: return UUID in middle endian only on SMBIOS >= 2.6
  • fb425d4 feat: add memory device
  • 0bb4f96 feat: add physical memory array

Dependency Changes

  • github.com/go-logr/logr ee2de8da5be6 -> v0.4.0
  • github.com/hashicorp/go-multierror v1.1.0 -> v1.1.1
  • github.com/onsi/ginkgo v1.15.0 -> v1.16.3
  • github.com/onsi/gomega v1.10.1 -> v1.13.0
  • github.com/stretchr/testify v1.7.0 new
  • github.com/talos-systems/cluster-api-bootstrap-provider-talos v0.2.0-alpha.11 -> v0.2.0
  • github.com/talos-systems/cluster-api-control-plane-provider-talos v0.1.0-alpha.11 -> v0.1.0
  • github.com/talos-systems/go-blockdevice f2728a581972 -> 1d830a25f64f
  • github.com/talos-systems/go-debug v0.2.0 new
  • github.com/talos-systems/go-kmsg v0.1.0 new
  • github.com/talos-systems/go-procfs a82654edcec1 -> 8cbc42d3dc24
  • github.com/talos-systems/go-retry v0.2.0 -> v0.3.0
  • github.com/talos-systems/go-smbios 80196199691e -> d3a32bea731a
  • github.com/talos-systems/talos/pkg/machinery 1d8e9674a91b -> 828772cec9a3
  • golang.org/x/net 0714010a04ed new
  • golang.org/x/sync 67f06af15bc9 -> 036812b2e83c
  • golang.org/x/sys 489259a85091 -> 0981d6026fa6
  • google.golang.org/grpc v1.36.0 -> v1.38.0
  • google.golang.org/protobuf v1.26.0 new

Previous release can be found at v0.2.0