26 Commits

Author SHA1 Message Date
Serge Logvinov
8350f49123 chore: bump deps
Update talos deps to 1.8.0

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-09-24 09:41:56 +03:00
Serge Logvinov
01145da4f4 docs: update deploy documentation
Add example of deployment.
Clean up unused params.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-08-29 13:48:57 +03:00
Serge Logvinov
09a5b9e24d refactor: csr approval controller
Move CSR Approval to separate controller.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-08-28 17:12:08 +03:00
Serge Logvinov
326fc53c84 feat: gcp spot instances
Remove node kubernetes resource on spot node eviction event.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-07-11 14:45:01 +03:00
Serge Logvinov
e1a0e0e5a4 feat: node ipam controller
Add node IPAM controller.

It supports two modes:
* RangeAllocator - classic mode (kubernetes does the same)
* CloudAllocator - Talos is responsible for setting PodCIDRs

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-07-05 11:27:03 +03:00
Serge Logvinov
3b20bb0d45 refactor: contextual logging
Migrate to contextual logging.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-06-18 16:41:31 +03:00
Serge Logvinov
3a4ae03854 feat: prefer permanent ipv6
In ipDiscovery() we prefer permanent ipv6 addresses over temporary ones.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-06-17 09:31:31 +03:00
Serge Logvinov
53034c8151 chore: clean flag
Since the introduction of transformation rules, this logic is no longer necessary.
The skipForeignNode flag was undocumented before, making its removal straightforward.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-05-16 14:53:29 +03:00
Serge Logvinov
9dde8aa331 fix: empty terms
We crush if terms is empty.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-05-13 13:50:22 +03:00
Serge Logvinov
749a01d538 fix: make possible mutate provider-id
We should allow changing the Provider ID string in CCM.
And add label key/value validation.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-05-09 10:08:42 +03:00
Serge Logvinov
386958d6af feat: transformer functions
Add functions to template executer.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-05-08 13:58:11 +03:00
Serge Logvinov
0e8728c11d feat: expose metrics
Expose API call metrics and node CSR approve statistics.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-05-06 10:48:29 +03:00
Serge Logvinov
0faf0ae2b4 fix: refresh talos token
Due to the failover process, we also need to refresh the Talos token.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-05-06 08:47:54 +03:00
Serge Logvinov
85e2022f1e feat: node transformer feature flags
Introduce feature flags:
* PublicIPDiscovery enables the Cloud Controller Manager (CCM) to identify global/public IPs on the node.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-05-06 08:42:29 +03:00
Serge Logvinov
22e398449c feat: node transformer
Node transformer allows you to add extra labels/annotations and modify platform metadata.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-05-03 00:11:26 +03:00
Serge Logvinov
9403bc592a fix: refresh talos tls certs
Addressing the short lifetime of Talos certificates by implementing a routine for regular recreation of the Talos client.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-02-05 18:30:21 +02:00
Serge Logvinov
b4e136b781 feat: support CloudDualStackNodeIPs
Talos CCM now supports the `CloudDualStackNodeIPs` feature gate. This feature
allows the user(cloud) to specify a list of IPv4 and IPv6 addresses for each node in
the cluster. https://github.com/kubernetes/kubernetes/pull/120275

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-02-05 16:53:02 +02:00
Serge Logvinov
33faa60ccb chore: bump deps
Update:
  K8s to 0.29.1
  Github Actions deps
  Talos 1.6.4

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-02-05 10:51:04 +02:00
Serge Logvinov
5d41626e75 fix: azure providerID
Set resourceGroup name to low case.
It helps azure-node-autoscaller to find the node.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-11-16 09:54:11 +02:00
Serge Logvinov
b3d55f0810 test: add basic tests
Tests:
* cloud-config
* helper funcs

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-05-29 12:23:40 +03:00
Serge Logvinov
5d65b1d694 fix: csr keyusage check
DeepEqual sees different in unsorted slices.
We will check allowed keyUsage options,
and makes chore that it has two important flags.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-05-08 10:23:49 +03:00
Serge Logvinov
2b53c2b9e7 feat: add node certificate approval
TalosCCM now can verify node CSR, and approve it if it OK.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-04-21 12:03:07 +03:00
Serge Logvinov
7a039d9f13 fix: node spec ip
Always update the node IPs.
Network ip/hostname can change after node eviction (spot instance).

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-04-06 16:26:56 +03:00
Serge Logvinov
8583f5959f chore: bump deps
Update golang to 1.20.3 and bump deps.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-04-05 22:34:32 +03:00
Serge Logvinov
c80d5520ae feat: label spot instanses
Set label `node.cloudprovider.kubernetes.io/lifecycle=spot` to spot instance.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-03-11 20:35:01 +02:00
Serge Logvinov
345c59f4e9 feat: init ccm
* Add base function of CCM
* Helm-chart deployment

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2022-11-18 07:49:54 +02:00