Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
eebc3bf
Draft initial implementation
simu Jun 18, 2026
c070890
Make privnet name a valid K8s name
simu Jun 18, 2026
caad8f9
Set `spec.version=params.kubernetesVersion` in TalosControlPlane cust…
simu Jun 18, 2026
14c6104
add comment re cloudscale creds secret name
simu Jun 18, 2026
d793f40
Fix controlplane patch merge
simu Jun 18, 2026
5a15dbf
Set MachineDeployment `spec.version=kubernetesVersion`
simu Jun 18, 2026
8d69bc6
Deploy cilium via ClusterResourceSet
simu Jun 23, 2026
430dda5
Refactor component to generate unique names for manifests with immuta…
simu Jun 23, 2026
80b3cde
Adjust Talos machineconfig to deploy Cilium via `ClusterResourceSet` …
simu Jun 23, 2026
5c2dc5e
Update TalosControlPlane api version to v1beta1
simu Jun 23, 2026
ac3dd81
Propagate `controlPlane.count` to `TalosControlPlane`
simu Jun 25, 2026
7a8d86c
Add parameter to set API URL as extra Talos API server cert SAN
simu Jun 26, 2026
45ae76c
Add talosconfig patch todo
simu Jun 26, 2026
45d2c3c
CAPI provider canonical Kubernetes version format is prefixed with `v`
simu Jul 2, 2026
fb1596b
Set Talos `MachineConfig` `install.wipe=true` by default
simu Jul 2, 2026
6b39fe8
Give users more control over TalosControlPlane config
simu Jul 3, 2026
3d63edf
Add parameter `strategicPatches` to apply custom patches to all nodes
simu Jul 3, 2026
9fb9e29
Set `machine.install.image` on all nodes
simu Jul 3, 2026
6f03adf
Configure ArgoCD to ignore changes to `spec.replicas` of MachineDeplo…
simu Jul 3, 2026
58f491b
Make MachineDeployment deletion order configurable
simu Jul 3, 2026
588e0f0
Update component to make parameter `talosVersion` less misleading
simu Jul 6, 2026
f301c81
Add logic to render and configure a K8s API server `AuthenticationCon…
simu Aug 3, 2026
8a44d78
Remove machinedeployment `spec.selector`
simu Aug 12, 2026
49f9e9a
Enable server-side apply in ArgoCD app
simu Aug 12, 2026
8c94468
Enable kubelet server certificate rotation
simu Aug 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 66 additions & 1 deletion class/defaults.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,70 @@
parameters:
talos_capi_cluster_cloudscale:
=_metadata:
multi_instance: true
multi_tenant: true
namespace: syn-talos-capi-cluster-cloudscale
namespace: syn-cluster-api

clusterName: ${cluster:name}

# TODO(sg): how will updates work with CAPI?
# IMPORTANT: this is only used for ensuring CAPI renders a suitable
# MachineConfig and isn't used to define the cluster's actual Talos
# version (at least when using the OpenStack raw image from the image
# factory).
talosVersion: '1.13'
# NOTE(sg): this is the well-known default schematic UUID
talosSchematicUUID: 376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba
kubernetesVersion: 'v1.36.1'
apiURL: ""

cni: cilium

cloudscale:
# TODO(sg): document this
customImageSlug: talos-v${talos_capi_cluster_cloudscale:talosVersion}-37656798
# TODO(sg): decide on default sizing
privateNetwork:
# TODO(sg): does this need to match the privnet name on cloudscale?
name: privnet-${talos_capi_cluster_cloudscale:clusterName}
uuid: TO_BE_REPLACED
region: ${facts:region}

controlPlane:
count: 1
flavor: plus-16-4
rootVolumeSize: 50

workerGroups:
worker:
count: 1
flavor: plus-16-4
rootVolumeSize: 50

cluster:
spec:
clusterNetwork:
pods:
cidrBlocks:
- 10.128.0.0/14
services:
cidrBlocks:
- 172.30.0.0/16
serviceDomain: cluster.local

cloudscaleCluster:
spec:
region: ${talos_capi_cluster_cloudscale:cloudscale:region}
credentialsRef:
# TODO(sg): figure out the real default name here.
name: cloudscale-credentials

talosControlPlane:
metadata: {}
spec: {}
strategicPatches: {}

talosStrategicPatches: {}

kubernetesApiServer:
authenticationConfigurationJWT: {}
18 changes: 17 additions & 1 deletion component/app.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,23 @@ local inv = kap.inventory();
local params = inv.parameters.talos_capi_cluster_cloudscale;
local argocd = import 'lib/argocd.libjsonnet';

local app = argocd.App('talos-capi-cluster-cloudscale', params.namespace);
local app = argocd.App('talos-capi-cluster-cloudscale', params.namespace) {
spec+: {
ignoreDifferences+: [
{
group: 'cluster.x-k8s.io',
kind: 'MachineDeployment',
jsonPointers: [ '/spec/replicas' ],
},
],
syncPolicy+: {
syncOptions+: [
'RespectIgnoreDifferences=true',
'ServerSideApply=true',
],
},
},
};

local appPath =
local project = std.get(std.get(app, 'spec', {}), 'project', 'syn');
Expand Down
Loading
Loading