Sidero 0.3.0-alpha.1 (2021-05-20)
Welcome to the v0.3.0-alpha.1 release of Sidero!
This is a pre-release of Sidero
Please try out the release binaries and report any issues at https://github.com/talos-systems/sidero/issues.
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.
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 serveripxe-sanboot
usessanboot
command to boot from the first disk
Variable SIDERO_CONTROLLER_MANAGER_BOOT_FROM_DISK_METHOD
controls this setting.
Some aspects of Sidero installation can now be controlled via environment variables or clusterctl
variables.
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 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 if
s.
ServerClasses now support Kubernetes label selectors: Servers can be selected based on their labels.
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)
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 witharm64
at the moment of this writing. A workaround is to patch the deployment to bump thekube-rbac-proxy
image from v0.4.1 to v0.8.0.
- Andrey Smirnov
- Alexey Palazhchenko
- Spencer Smith
- Artem Chernyshev
- Andrew Rynhard
- Brandon Nason
- Matt Zahorik
- bzub
45 commits
d51fda5
release(v0.3.0-alpha.1): prepare releasedcc3fde
feat: add label selector to serverclass3caa6f5
chore: fix markdown lintinga792890
feat: provide several options to force boot from disk via iPXE1e8096e
docs: add Mermaidc240381
feat: bump default Talos version to v0.10.20a50888
docs: move to standardized template4a1183b
feat: ship Environment "default"2e8c1ed
chore: fix a few linter warnings6bcf9a8
chore: bump dependencies via dependabot4c0b3de
docs: clarify docs around endpoints and metadata server990263a
feat: merge Sidero HTTP endpoints under a single port5266a76
chore: reduce bootstrap node resources in Sfyra7f3b4b8
fix: remove kube-rbac-proxybfa3cd9
chore: re-sign the .drone.yml filecf383ab
chore: use release-tool to generate release notes056f8c2
release(v0.3.0-alpha.0): prepare releaseca75eb4
fix: back down resource requests3a6c5b9
chore: parse "boolean" variables148e228
chore: bump dependenciesdb28ed3
chore: allow building with debug handlers2cdde00
test: fix the Environment args to support UEFI bootd15a960
chore: add golangci-lint configurationb3afd17
feat: ship ServerClass "any"94ff33b
feat: enable auto-setup of BMC52647f9
docs: fix install disk name in the examples44eaa7d
feat: inject iPXE script into the iPXE binaries1659b96
docs: fix typofb04b24
chore: fixmake help
commandf8bc9b1
test: add missing empty testsb17f370
test: port improvements from Talosc43f9ec
test: run unit tests on CI, skip broken45cb973
chore: document Makefile target8e12ab9
chore: disable dependabot rebases4267ed7
chore: update dependecies4aae477
chore: add dependabot config1e33dcd
feat: pull the Sidero configuration asclusterctl
variables23c75e4
docs: add guide for upgradesc9aca48
docs: fix the docs around CONTROL_PLANE_ENDPOINT37e4ab7
fix: remove erroneous wg.Add in environment controller74d9bf9
feat: add an option to reference IPMI creds via the secret refs0613b8f
feat: pull in new version of go-smbios for UUID endiannes fixf6ca6e8
feat: build Sidero for amd64 and arm64, support arm64 in the agent8960225
chore: improve build systema20fcf9
docs: create v0.2 docs and add note about specifying TALOS_VERSION
16 commits
d51fda5
release(v0.3.0-alpha.1): prepare releasedcc3fde
feat: add label selector to serverclass3caa6f5
chore: fix markdown lintinga792890
feat: provide several options to force boot from disk via iPXE1e8096e
docs: add Mermaidc240381
feat: bump default Talos version to v0.10.20a50888
docs: move to standardized template4a1183b
feat: ship Environment "default"2e8c1ed
chore: fix a few linter warnings6bcf9a8
chore: bump dependencies via dependabot4c0b3de
docs: clarify docs around endpoints and metadata server990263a
feat: merge Sidero HTTP endpoints under a single port5266a76
chore: reduce bootstrap node resources in Sfyra7f3b4b8
fix: remove kube-rbac-proxybfa3cd9
chore: re-sign the .drone.yml filecf383ab
chore: use release-tool to generate release notes
4 commits
3 commits
9 commits
1d830a2
fix: revert mark the EFI partition in PMBR as bootablebec914f
fix: mark the EFI partition in PMBR as bootable776b37d
feat: add options to probe disk by various sysblock parametersbb3ad73
fix: align partition start to physical sector size8f976c2
feat: replace exec.Command with go-cmd module1cf7f25
fix: properly handle no child processes error from cmd.Wait04a9851
feat: implement luks encryption providerb0375e4
feat: add an option to open block device with exclusive flock5a1c7f7
refactor: add devname into gpt.Partition, refactor probe package
4 commits
2 commits
3 commits
3 commits
- 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.2
- github.com/onsi/gomega v1.10.1 -> v1.12.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-alpha.12
- github.com/talos-systems/cluster-api-control-plane-provider-talos v0.1.0-alpha.11 -> v0.1.0-alpha.12
- 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 -> 8d73bc5999b4
- go.uber.org/zap v1.14.1 -> v1.16.0
- golang.org/x/mod v0.4.0 new
- golang.org/x/net 0714010a04ed new
- golang.org/x/sync 67f06af15bc9 -> 036812b2e83c
- golang.org/x/sys 489259a85091 -> 0981d6026fa6
- golang.org/x/tools 2dba1e4ea05c new
- google.golang.org/grpc v1.36.0 -> v1.37.1
- google.golang.org/protobuf v1.26.0 new
Previous release can be found at v0.2.0
v0.3.0-alpha.0 (2021-05-13)
- parse "boolean" variables
- bump dependencies
- allow building with debug handlers
- add golangci-lint configuration
- fix
make help
command - document Makefile target
- disable dependabot rebases
- update dependecies
- add dependabot config
- improve build system
- fix install disk name in the examples
- fix typo
- add guide for upgrades
- fix the docs around CONTROL_PLANE_ENDPOINT
- create v0.2 docs and add note about specifying TALOS_VERSION
- ship ServerClass "any"
- enable auto-setup of BMC
- inject iPXE script into the iPXE binaries
- pull the Sidero configuration as
clusterctl
variables - add an option to reference IPMI creds via the secret refs
- pull in new version of go-smbios for UUID endiannes fix
- build Sidero for amd64 and arm64, support arm64 in the agent
- back down resource requests
- remove erroneous wg.Add in environment controller
- fix the Environment args to support UEFI boot
- add missing empty tests
- port improvements from Talos
- run unit tests on CI, skip broken
v0.2.0 (2021-04-09)
- v0.2.0: prepare release
v0.2.0-beta.0 (2021-04-08)
- use common 'setup-ci' function
- add support for DNS resolution in the agent
- break the potential endless reconcile loop of ServerClasses
- don't marshal the machine configuration via machinery package
- v0.2.0-beta.0: prepare release
- drop installer image from the server patch
v0.2.0-alpha.1 (2021-04-06)
v0.2.0-alpha.0 (2021-04-06)
- update bootstrapping guide
- setup google analytics
- add IPMI info, fix links, update environment
- add note on installation disk
- fix typo on Server Classes page
- describe the command to install talosctl in the bootstrap guide
- update Talos and machinery to 0.9.1
- update sidero to use newer talos
- serve assets from TFTP folder in IPXE HTTP server
- bump talos to 0.8.0 release
- log retry errors
- add kubernetes version to cluster template
- prevent server orphaning
- v0.2.0-alpha.0: prepare release
- enable control plane scale down test
v0.1.0 (2021-01-15)
- prevent server orphaning
- v0.1.0: prepare release
- fix test flakiness on workers scale down test
v0.1.0-beta.0 (2020-12-23)
- bump versions of packages used in the build
- fix analytics
- bump google analytics plugin
- update local Sfyra docs
- improve docs on metadata and environments
- add flow charts for PXE and installation
- add CRD documentation
- clarify cluster template environment variables
- clarify process of fetching talosconfig
- bump Talos to 0.8.0-beta.0
- send heartbeat from agent while wipe is in progress
- align default subnets with Talos
- overwrite kernel args from --extra-agent-kernel-args
- v0.1.0-beta.0: prepare release
- add simulated power management failures in testing mode
- add a test to deploy and destroy workload cluster
v0.1.0-alpha.12 (2020-12-02)
- rework binding between Servers and MetalMachines
- v0.1.0-alpha.12: prepare release
v0.1.0-alpha.11 (2020-11-30)
- fix typo in asset URLs
- fix patching example
- bump resource limits for the sidero pods
- add timeout to retry wipe IPMI commands (PXE + powercycle)
- unify power management under ServerController
- remove dependency on talos Go module
- v0.1.0-alpha.11: prepare release
v0.1.0-alpha.10 (2020-11-17)
- bump Talos package dependency to 0.7-beta.1
- boot servers via PXE only once by default
- allow for extra kernel args in agent environment
- add power status to servers
- don't power off the server in discovery agent
- make "insecure-wipe" default, use new fast wipe method
- add info log when no servers in serverclass
- use GetDisks from blockdevice library
- add ErrNoServersInServerClass
- v0.1.0-alpha.10: prepare release
v0.1.0-alpha.9 (2020-11-10)
- update pkgs
- ignore missing partition error
- v0.1.0-alpha.9: prepare release
v0.1.0-alpha.8 (2020-11-07)
- fix docker login
- move to ghcr.io
- fix typos in bootstrap guides
- update bootstrap docs links
- add note around server acceptance
- add option for insecure wipe
- v0.1.0-alpha.8: prepare release
v0.1.0-alpha.7 (2020-10-31)
- update site URL and add robots.txt
- add a metadata section
- expand server acceptance doc
- add non-UEFI clause to PXE example
- add links between concepts and configuration sections
- add chicken and egg note to overview
- add support for versioned docs
- wipe disks concurrently in the agent
- log error with error log
- wipe disk fully in the agent
- v0.1.0-alpha.7: prepare release
v0.1.0-alpha.6 (2020-10-21)
- add support for control plane port
- v0.1.0-alpha.6: prepare release
v0.1.0-alpha.5 (2020-10-21)
- update talos version
- update CAPI providers
- don't reset read only disks
- v0.1.0-alpha.5: prepare release
v0.1.0-alpha.4 (2020-10-19)
- fix formatting
- add server acceptance note
- support config patches at the serverclass level
- discover server IPs on registration, emit server events
- add hostname to the server spec
- use APIReader in server controller to avoid caching issues
- proper event patching, powercycle vs. poweron
- handle agent errors gracefully
- use efiboot option
- v0.1.0-alpha.4: prepare release
- pull in the new version of go-loadbalancer
- check if servers are reset on acceptance
- add flags for modifying workload cluster installer image
- bump Talos to 0.7.0-alpha.6 for Sfyra
- enable verbose logs for CLI version of loadbalancer
v0.1.0-alpha.3 (2020-10-09)
- refactor
reconcile
method inenvironment_controller.go
- introduce RequeueAfter in metalcluster controller
- remove talos dependency from metadata server
- update Sfyra for the new Talos release
- support server acceptance
- power down servers !InUse && IsClean
- ensure servers are clean
- set servers as dirty by default
- add ipmitool to metal-controller-manager
- exit when port conflicts happen
- delete machine instead of metalmachine in reset test
- handle conflicts on server update
- break apart metadata server code
- split 'sfyra' CLI into multiple subcommands
- v0.1.0-alpha.3: prepare release
- add scale test
- bump talos for halt & healh check fixes
- apply talos.shutdown=halt kernel argument
- break serverclass creation into function and allow dummy servers
- fix patching for sidero-controller-manager
- provide list of expected control plane/worker nodes
- extract
capi.Cluster
implementation - use dedicated config for the sfyra tests
- fix nil pointer panic
v0.1.0-alpha.2 (2020-09-28)
- update reference to internal registry
- merge Sfyra into Sidero repository
- add additional logging for metadata server
- update namespace to caps-system
- update Sfyra docs
- add a post-pivot/create first workload cluster guide
- add note about templated cluster manifest
- add full bootstrapping guide
- add reset functionality
- allow qualifers to be partially equal
- support environment ref at server and server class level
- add serverclass as an owner to servers if needed
- close file in TFTP handler
- use proper context in metadata server
- ensure proper checking of "in-use" status when fetching metadata
- address panic in PartialEqual
- revert "update namespace to caps-system"
- update labels and labelselectors for each app
- move to update instead of patching server inuse
- extract common ManagmentClient interface, add HTTP API
- v0.1.0-alpha.2: prepare release
- add reset test
v0.1.0-alpha.1 (2020-08-25)
- expire server discovery requests
- iterate on docs
- fetch hostname if available
- ensure servers always get patched
- move
internal/app
toapp
so that we can expose API
- v0.1.0-alpha.1: prepare release
- update drone file for tagged releases
- rename cluster api provider to match capi norms
- add move label to metal controller manager CRDs
- update drone pipeline type
- address confrom errors
- enable drone builds
- format generated files
- address linter errors
- use sidero-system namespace
- use 'sidero' instead of 'arges' and 'metal'
- migrate projects
- add website
- address markdown lint errors
- start sidero docs
- add cluster-template for sidero
- ensure servers only get picked once
- ensure we don't clobber extraargs
- update manifests
- update kustomize configs
- set asset download context timeout to 5 minutes
- patch the release images
- refactor kustomization to fix releases
- remove stray reference to capi namespace.yaml
- v0.1.0-alpha.0: prepare release