Conversation
|
|
The stack.yaml is a merge of csctl and versions.yaml |
Replace the previous build system (csctl, Makefile, Python scripts, Go release notes) with a streamlined set of bash scripts and a justfile. New tooling: - hack/build.sh: build + publish + --install-cso flag with next-steps output - hack/update.sh: unified version/addon updater with image-manager maintenance - hack/generate-resources.sh: ClusterStack + Cluster YAML generator with .release/ auto-detection - hack/generate-image-manifests.sh: ORC and image-manager format generator - hack/show-matrix.sh: version/addon matrix display with --markdown flag - justfile: task runner with dev, install-cso, generate-*, matrix recipes - Containerfile + flake.nix: reproducible tooling environment Removed: - hack/ensure-*.sh, hack/generate_version.py, hack/kind-dev.sh - hack/generate_openstack_image_manager_yaml.sh - hack/tools/release/notes.go Assisted-by: Claude Code Signed-off-by: Jan Schoone <jan.schoone@uhurutec.com>
…ries
Reorganize all cluster stacks into self-contained per-minor-version directories:
providers/<provider>/<stack>/1-XX/
stack.yaml # metadata: provider, name, k8s version, addon pins
cluster-class/ # Helm chart producing ClusterClass
cluster-addon/ # Helm chart with CNI, CCM, CSI, metrics-server
node-images/ # image build definitions (OpenStack only)
Each directory is fully independent -- no inheritance or sharing between
minor versions. This supports different CAPI API versions (v1beta1 for 1-32,
v1beta2 for 1-35) and version-specific addon pins (CCM 2.34.x for K8s 1.34).
Stacks created:
- openstack/scs: 1-32 (v1beta1, snake_case), 1-33 (v1beta1, camelCase),
1-34 (copy of 1-33), 1-35 (v1beta2, unified variables)
- docker/scs: 1-32 through 1-35
Also adds providers/openstack/scs/image-manager.yaml (aggregated image
references for all OpenStack minor versions).
Removes:
- providers/openstack/scs2/ (consolidated into openstack/scs)
- Old flat directory structure (csctl.yaml, versions.yaml, etc.)
Assisted-by: Claude Code
Signed-off-by: Jan Schoone <jan.schoone@uhurutec.com>
Add providers/openstack/hcp/ with versions 1-33, 1-34, and 1-35. The HCP stack runs the Kubernetes control plane as pods in the management cluster using the teutonet Hosted Control Plane provider (HostedControlPlaneTemplate, controlplane.cluster.x-k8s.io/v1alpha1). Only worker nodes are created as OpenStack VMs. Key differences from the scs stack: - No machineInfrastructure for control plane (no CP VMs) - Worker-prefixed variables (workerFlavor, workerRootDisk, etc.) - Gateway API integration (gatewayName/gatewayNamespace variables) - disableAPIServerFloatingIP: true, apiServerLoadBalancer: none by default - Same addons as scs (Cilium, CCM, CSI, metrics-server) Based on origin/hcp branch, adapted to per-minor-version structure. Assisted-by: Claude Code Signed-off-by: Jan Schoone <jan.schoone@uhurutec.com>
Rewrite all documentation to reflect the new per-Kubernetes-minor-version directory layout, OCI-based workflow, and v1beta2 ClusterClass variables. Tooling changes: - hack/show-matrix.sh: Add --markdown flag for GFM table output - hack/docugen.py: Add --matrix flag to embed version matrix in docs - hack/config-template.md: Update template for v1beta2, add !!matrix!! - justfile: Fix generate-docs to iterate all stacks with correct args New documentation: - docs/quickstart.md: Universal quickstart (OpenStack, Docker, HCP) - docs/providers/openstack/hcp.md: HCP architecture and configuration - docs/providers/openstack/scs-configuration.md: v1beta2 variable reference - docs/providers/docker/scs-configuration.md: Docker stack variable reference Removed: - docs/providers/openstack/quickstart.md (replaced by docs/quickstart.md) - docs/providers/openstack/configuration.md (replaced by scs-configuration.md) Assisted-by: Claude Code Signed-off-by: Jan Schoone <jan.schoone@uhurutec.com>
Re-add csctl.yaml files adapted for the per-minor-version structure. Each version directory now contains its own csctl.yaml with the correct provider type, cluster stack name, and Kubernetes minor version. Assisted-by: Claude Code Signed-off-by: Jan Schoone <jan.schoone@uhurutec.com>
6218088 to
9af6ce4
Compare
Signed-off-by: Nils Arnold <arnold@aov.de>
Signed-off-by: Nils Arnold <arnold@aov.de>
Signed-off-by: Nils Arnold <arnold@aov.de>
Signed-off-by: Nils Arnold <arnold@aov.de>
Signed-off-by: Nils Arnold <arnold@aov.de>
Signed-off-by: Nils Arnold <arnold@aov.de>
There was a problem hiding this comment.
I have tested the scripts and cluster stack, added scs2 changes, updates and some fixes + cilium native routing and kube-proxy replacement (starting with K8s 1.35). Our dev clusters are running on this cluster-stack in with K8s version 1.35 now.
The most important for updating and releasing new cluster stacks are now:
sudo nix develop
source .envrc
./hack/update.sh
./hack/build.sh --all --publish
|
Our cluster manifests look something like this, so this is what I used to test the cluster stacks (i have replaced some values with dummys/examples/placeholders): |
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)format, will close the issue(s) when PR gets merged):Fixes #
Special notes for your reviewer:
Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.
TODOs: