32 Commits

Author SHA1 Message Date
Laura Brehm
7bcc16b050
chore: address wsl_v5 linter checks
Mostly, add empty newlines.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2025-12-02 11:54:28 +01:00
Andrey Smirnov
37843417f9
feat: update Talos and CAPI to 1.10
Fix compatibility issues, adapt to changes in Talos and Cluster API.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-04-24 16:12:19 +04:00
Andrey Smirnov
de84f7e542
feat: update to Talos 1.9.0
Fix number of small issues around CAPI 1.9.0, add more CP tests.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-20 00:15:46 +04:00
Andrey Smirnov
b8daa0cd2c
feat: update dependencies for Talos 1.9.0-beta.0
Some restructuring due to udevd -> system-udevd switch.

Mostly minor bumps.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-05 20:52:49 +04:00
Andrey Smirnov
b6fe15df7e
feat: update for Talos 1.8
Bump CAPI, fix other issues.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-09-11 19:19:29 +04:00
Andrey Smirnov
5f9acdf564
feat: update to Talos 1.7.0-beta.1
Bump everything, update CAPI to v1.7.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-04-18 15:46:09 +04:00
Andrey Smirnov
30d077fb50
fix: set a default controller runtime log
See https://github.com/siderolabs/cluster-api-bootstrap-provider-talos/issues/185

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-01-22 22:21:51 +04:00
Andrey Smirnov
01981eb1c6
feat: update Talos to 1.6.0
Also update CAPI to 1.6.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-12-15 17:59:33 +04:00
Victor Seva
7880ee21b7
feat: update kube-rbac-proxy to support arm64
fixes #1180

Signed-off-by: Victor Seva <linuxmaniac@torreviejawireless.org>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-14 18:44:14 +04:00
Andrey Smirnov
baaece89a6
feat: update for Talos 1.5.0
Bump CAPI, controller-runtime, Talos dependencies, Kubernetes.

Fix some compatibility issues, but should be no functional changes.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-22 15:20:43 +04:00
Gerard de Leeuw
ef65ff05a9
chore: add v0.6.x to metadata, fix metrics service
Part of #1070

Signed-off-by: Gerard de Leeuw <gdeleeuw@leeuwit.nl>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-04-07 13:45:52 +04:00
Andrey Smirnov
9121a3b7d5
chore: bump dependencies
CAPI, controller-runtime, Talos, etc.

Fix linting issues.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-04-05 16:27:41 +04:00
Andrey Smirnov
fbcd02a45d
feat: update for Talos 1.3.0
Rename to siderolabs, bump dependencies, controller-runtime, get rid of
netaddr, new SideroLink API, etc.

Use bootstrap cluster with a control plane + worker to avoid nasty
restarts when host-mode SideroLink IP pops up.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-16 16:35:30 +04:00
Andrey Smirnov
08cac998b1
feat: update base Talos to 1.1.1
This fixes a problem with loading config which contains new 1.1.x
fields.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-07-22 18:22:33 +04:00
Andrey Smirnov
c29d4645d9
feat: make MetalMachineTemplate immutable
This allows proper upgrades by replacing the `MetalMachineTemplate`.

If the `MetalMachineTemployment` is mutated, the changes are not rolled
out automatically.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-04-18 22:31:22 +03:00
Andrey Smirnov
7c7a377857
feat: add extended hardware information to Server and ServerClass CRDs
This is final part of #735, previous part in #823.

This imports all remaining changes with some fixups minus the webhook
changes.

This change adds detailed hardware information to the Server CRD.
Hardware info is extracted by the agent from SMBIOS.
The ServerClass CRD is also updated so more precise qualifiers can be used.

Co-authored-by: Gerard de Leeuw <gdeleeuw@leeuwit.nl>
Signed-off-by: Gerard de Leeuw <gdeleeuw@leeuwit.nl>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-04-15 20:43:07 +03:00
Andrey Smirnov
e4bb4165e9
feat: restructure HW information in Server resources (v1alpha2)
This is basically subset of PR #735 with only CRD changes without actual
code changes to use new CRDs. As storage version is v1alpha2, every
access goes twice via conversion webhooks (for better test coverage).

Other parts of #735 will be incorporated in a follow-up PR, I decided to
split things up for easier review.

Example:

```bash
$ kubectl get servers.v1alpha1.metal.sidero.dev 49fd7c2d-1ba4-4157-8cc0-3f7212f119f0 -o yaml
...
  cpu:
    manufacturer: QEMU
    version: pc-q35-6.0
  hostname: pxe-3
  managementApi:
    endpoint: 172.25.0.1:39565
  system:
    family: Unknown
    manufacturer: QEMU
    productName: Standard PC (Q35 + ICH9, 2009)
    serialNumber: Unknown
    skuNumber: Unknown
    version: pc-q35-6.0
$ kubectl get servers.v1alpha2.metal.sidero.dev 49fd7c2d-1ba4-4157-8cc0-3f7212f119f0 -o yaml
...
  hardware:
    compute:
      processors:
      - manufacturer: QEMU
        productName: pc-q35-6.0
    system:
      family: Unknown
      manufacturer: QEMU
      productName: Standard PC (Q35 + ICH9, 2009)
      serialNumber: Unknown
      skuNumber: Unknown
      version: pc-q35-6.0
```

We can make more changes to v1alpha2 resources in follow-up PRs.

Co-authored-by: Gerard de Leeuw <gdeleeuw@leeuwit.nl>
Signed-off-by: Gerard de Leeuw <gdeleeuw@leeuwit.nl>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-04-14 20:25:55 +03:00
Andrey Smirnov
061ee8e57d
refactor: remove pre-ServerBinding leftovers, use remote cached clients
This PR has two major changes:

* retire the code which supported seamless migration from
pre-ServerBinding era to ServerBindings: creating `ServerBinding` on the
fly from the `MetalMachine` and `Server`; as there's no migration path
from pre-ServerBinding Sidero to the new version, it's time to drop it
* instead of creating workload cluster Kubernetes client each time, use
CAPI standard class to cache the client; the problem with "leaking"
clients is that HTTP/2 clients are almost never gc'ed, so they stay in
memory keeping an open connection with keepalives going both ways, so
caching lowers the load both on the controller and the control plane
endpoint

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-04-12 22:35:46 +03:00
Artem Chernyshev
511ddfc082
feat: enable webhooks in sidero-controller-manager
Based on https://github.com/siderolabs/sidero/pull/794, but instead of
using a dedicated controller for all webhooks keep all of them in each
own controller.

Additionally, implement validation webhooks for `Server` resource, which
validates that `bootFromDiskMethod` and `configPatches` are using proper
values.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2022-04-08 16:19:22 +03:00
Gerard de Leeuw
15f67308f0
chore: use consistent naming for imports
Imports should be consistently named so future changes are more readable and easier to understand.

Signed-off-by: Gerard de Leeuw <gdeleeuw@leeuwit.nl>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-31 17:14:17 +03:00
Andrey Smirnov
2a475db79e
feat: update to Talos 1.0
Update compatibility matrix, etc.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-30 18:14:25 +03:00
Noel Georgi
4d116038e0
chore: bump cert-manager to v1
Bump cert-manager to `v1`

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-02-21 13:40:29 +05:30
Andrey Smirnov
e44f350d08
fix: use controller-runtime standard healthz endpoints
Fixes #717

`caps-controller-manager` has proper webhook support, so use that for
readiness/liveness checks (standard CAPI way).

`sidero-controller-manager` doesn't have webhooks (we should fix it
eventually!), so using iPXE check

Also:

* bump Talos to 0.14.1
* use Talos provided default arguments for the agent environment (as
agent is running Talos kernel, it makes sense).

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-01 23:23:13 +03:00
Artem Chernyshev
b30fbe4317
feat: set server PXEBooted condition only after Talos gets installed
Now `PXEBooted` condition is derived from `TalosInstalled` condition of
the linked `ServerBinding`.
This makes the node to use `pxe` boot until Talos installation succeeds.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2022-01-17 16:43:52 +03:00
Artem Chernyshev
fe41335457
feat: introduce new conditions in the metalmachine
- `TalosConfigLoaded` is set to false when the config load has failed.
- `TalosConfigValidated` is set to false when the config validation
fails on the node.
- `TalosInstalled` is set to true/false when talos installer finishes.

All conditions are set by the adapter on the `ServerBinding`, then
copied to the `MetalMachine`.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2021-12-29 15:42:08 +03:00
Artem Chernyshev
6454dee29c
feat: populate addresses and hostname in ServerBindings
Get addresses from the events coming into events sink container.

Add v1beta1 support.
Update `metalmachine_controller` to set providerID earlier and add
ProviderSet condition to be set after the cluster nodes actually get
patched with the provider ID as well.

The condition is required to trigger reconcile on CAPI `machines`,
otherwise it never picks `Node` ready condition.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2021-12-27 14:55:18 +03:00
Noel Georgi
025ff047d0
feat: additional printer colums
Add additional printer columns

Signed-off-by: Noel Georgi <git@frezbo.dev>
2021-12-14 21:49:04 +05:30
Andrey Smirnov
ab291034e5
feat: implement SideroLink
Fixes #615

This implements the SideroLink integration on Sidero side. This feature
requires Talos 0.14 from master as of right now.

SideroLink status is stored in `ServerBinding` resource for each server.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-11-25 22:06:51 +03:00
Artem Chernyshev
af646a7170
chore: bump Go deps, tools, pkgs, alpine versions
Resolves: #596, resolves: #595, resolves: #594,
resolves: #593, resolves: #588, resolves: #587,
resolves: #584, resolves: #581, resolves: #580,
resolves: #577, resolves: #576, resolves: #557

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2021-10-12 21:13:08 +03:00
Gerard de Leeuw
bb52e71861
feat: support CAPI v1alpha4
This PR will add all of the changes necessary for supporting CAPI v1alpha4 resources.

Signed-off-by: Gerard de Leeuw <gdeleeuw@leeuwit.nl>
Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2021-10-08 23:09:26 +03:00
Andrey Smirnov
90e7804640 chore: bump dependencies in go.mod
This also bumps cluster-api version to the latest 0.3 release.

Closes #476 #484 #486 #487 #490 #491 #492 #493

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-07-06 13:51:10 -07:00
Spencer Smith
6821dd2c0a feat: update paths of apps
This PR updates the naming of the two apps that make up sidero for
consistency. It also updates things like the Makefile, Dockerfile, and
kustomize to make sure image names are the same as these app names.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2021-05-26 10:36:02 -07:00