59 Commits

Author SHA1 Message Date
Serge Logvinov
41fb283b51 chore: release v1.8.0
Prepare release v1.8.0

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
v1.8.0
2024-09-24 15:46:13 +03:00
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
31c9b5b199 docs: split readme file
Update installation instructions.
Add controllers explanations.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-08-05 14:58:28 +03:00
Serge Logvinov
122019a142 chore: bump deps
Update:
   kubernetes
   COSI runtime 0.5.5

Add stale issues action.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-08-05 14:33:02 +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
Marcel Richter
7dac5b8d20 fix: set priorityClassName
priorityClassName was missing in deployment.yaml

Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
2024-06-07 10:43:30 +02: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
c0988a3cff docs: add config documentation
Update documentation.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-05-08 14:41:32 +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
db305e7f51 chore: release v1.6.0
Release v1.6.0

Features:
* DualStack NodeIPs support

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
v1.6.0
2024-04-21 08:57:41 +03:00
Serge Logvinov
27aa781d17 chore: bump deps
Update:
  Github Actions deps
  Talos 1.6.7
  COSI runtime 0.4.1

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-04-16 07:50:14 +03:00
Serge Logvinov
9d65a90e9f chore: bump deps
Update:
  Go to 1.22
  K8s to 0.29.3
  Github Actions deps
  Talos 1.6.6

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-03-19 10:14:32 +02: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
670ead78bd feat: deploy without cni
Run TalosCCM Deployment Without CNI Readines.
When the useDaemonSet parameter is set to true, CCM will use the node IP to access Kubernetes and Talos API.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-02-05 11:27:32 +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
Brian Kanya
3c9d805e68 fix: prepend v for image
Resolves #96

Co-authored-by: Brian Kanya <briankanya@gmail.com>
Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2024-02-04 18:40:15 +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
eff652f311 chore: bump deps
Update:
  K8s to 0.28.3
  Github Actions deps
  Talos 1.5.5

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-11-15 23:31:09 +02:00
Serge Logvinov
214cc87c55 chore: bump deps
Update k8s to 0.28.2
Github Actions deps.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-09-20 09:29:43 +03:00
Serge Logvinov
5a1eaf7d29 chore: bump deps
Update k8s to 0.27.4

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-08-08 21:40:19 +03:00
Serge Logvinov
fe5a0b142f chore: bump github actions deps
Update actions/checkout, actions/setup-go.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-08-08 08:07:31 +03:00
Serge Logvinov
562e7384f7 feat: sign images
Helm chart and image signed by Cosign.
Now you can verify that images were built GitHub Actions.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-08-08 07:59:49 +03:00
Serge Logvinov
75a8e44b13 chore: release v1.4.0
Release v1.4.0

Features:
* node CSR approval
* spot node label

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
v1.4.0
2023-05-29 19:03:48 +03: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
e44f5bcedc chore: bump deps
Update k8s to 0.27.2

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-05-27 11:31:38 +03:00
Serge Logvinov
3dcea648b0 docs: edge deploy with csr
Update readme.
Add copy past kubectl command tox deploy latest stable version.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-05-11 20:43:18 +03:00
Serge Logvinov
bba5b6a74b docs: update helm readme
Update helm chart documentation.
Add edge image deployment.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-05-08 17:13:52 +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
11e77e8f83 feat: build latest version
Build and push the latest edge version to the registry.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-04-06 17:36:22 +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
86818165f5 feat: daemonset deployment
Deploy CCM as DaemonSet.
In this case CCM will use local node to connect to the Talos api.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-03-13 20:36:39 +02:00
Serge Logvinov
5a4413f353 chore: bump deps
Update golang to 1.20.2 and bump deps.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-03-13 20:19:26 +02: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
9e1b15e7c6 chore: bump deps
Bump deps

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2023-02-12 12:19:46 +02:00
Serge Logvinov
d3d613bb21 fix: helm chart namespace
Add the namespace to all helm-chart resources.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2022-12-23 00:07:45 +02:00
Serge Logvinov
e89660d03b chore: release v1.3.0
Prepare release v1.3.0

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
v1.3.0
2022-12-20 11:29:06 +02:00