Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
149 changes: 149 additions & 0 deletions providers/openstack/scs2/1-33/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
# Cluster Stacks

## Prerequisites

- kind
- kubectl
- helm
- clusterctl (v1.10x)

## Getting started


### Prepare a management Cluster using kind

```sh
# Create bootstrap cluster
kind create cluster

# Init Cluster API
export CLUSTER_TOPOLOGY=true
export EXP_CLUSTER_RESOURCE_SET=true
export EXP_RUNTIME_SDK=true
kubectl apply -f https://github.com/k-orc/openstack-resource-controller/releases/latest/download/install.yaml
clusterctl init --infrastructure openstack:v0.12.6

kubectl -n capi-system rollout status deployment
kubectl -n capo-system rollout status deployment
```

### Install the Cluster Stack Operator

```
helm upgrade -i cso \
-n cso-system \
--create-namespace \
oci://registry.scs.community/cluster-stacks/cso
```

### Prepare some environment variables for reuse

```sh
export CLUSTER_NAMESPACE=cluster
export CLUSTER_NAME=my-cluster
export CLUSTERSTACK_NAMESPACE=cluster
export CLUSTERSTACK_VERSION=v1
export OS_CLIENT_CONFIG_FILE=${PWD}/clouds.yaml
kubectl create namespace $CLUSTER_NAMESPACE --dry-run=client -o yaml | kubectl apply -f -
```

### Add clouds.yaml as Secret

```sh
# Create secret for CAPO
kubectl create secret -n $CLUSTER_NAMESPACE generic openstack --from-file=clouds.yaml=$OS_CLIENT_CONFIG_FILE --dry-run=client -oyaml | kubectl apply -f -

# Prepare the Secret as it will be deployed in the Workload Cluster
kubectl create secret -n kube-system generic clouds-yaml --from-file=clouds.yaml=$OS_CLIENT_CONFIG_FILE --dry-run=client -oyaml > clouds-yaml-secret

# Add the Secret to the ClusterResourceSet Secret in the Management Cluster
kubectl create -n $CLUSTER_NAMESPACE secret generic clouds-yaml --from-file=clouds-yaml-secret --type=addons.cluster.x-k8s.io/resource-set --dry-run=client -oyaml | kubectl apply -f -
```

```yaml
cat <<EOF | kubectl apply -f -
apiVersion: addons.cluster.x-k8s.io/v1beta1
kind: ClusterResourceSet
metadata:
name: clouds-yaml
namespace: $CLUSTER_NAMESPACE
spec:
strategy: "Reconcile"
clusterSelector:
matchLabels:
managed-secret: clouds-yaml
resources:
- name: clouds-yaml
kind: Secret
EOF
```

### Install the Cluster Stack resource

```sh
cat <<EOF | kubectl apply -f -
apiVersion: clusterstack.x-k8s.io/v1alpha1
kind: ClusterStack
metadata:
name: openstack
namespace: $CLUSTERSTACK_NAMESPACE
spec:
provider: openstack
name: scs2
kubernetesVersion: "1.33"
channel: stable
autoSubscribe: false
noProvider: true
versions:
- $CLUSTERSTACK_VERSION
EOF
```

### Prepare the Node Images

These Cluster Stacks do not contain fixed image to make it possible to provide the images in different ways.
Recommended is to add all images using the [Image Manager](https://docs.scs.community/docs/iaas/components/image-manager/) pointing to the file `kubernetes.yaml` next to this README.
If you can't add images publicly you can change the visibility in the file to `private`. But in that case it's simpler to just apply the `image.yaml`. Since the OpenStack Resource Controller is a dependency to ClusterAPI Provider OpenStack this will import the image in your project using the same clouds.yaml file from the `openstack` Secret.

### Apply the Cluster resource

```sh
cat <<EOF | kubectl apply -f -
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
name: $CLUSTER_NAME
namespace: $CLUSTER_NAMESPACE

labels:
managed-secret: clouds-yaml
spec:
clusterNetwork:
pods:
cidrBlocks:
- "172.16.0.0/16"
serviceDomain: cluster.local
services:
cidrBlocks:
- "10.96.0.0/12"
topology:
variables:
class: openstack-scs2-1-33-$CLUSTERSTACK_VERSION
classNamespace: $CLUSTERSTACK_NAMESPACE
controlPlane:
replicas: 1
version: v1.33.11
workers:
machineDeployments:
- class: default-worker
name: md-0
replicas: 1
EOF
```

### Get the Workload Cluster kubeconfig and try it

```sh
clusterctl get kubeconfig -n $CLUSTER_NAMESPACE openstack-testcluster > /tmp/kubeconfig
kubectl get nodes --kubeconfig /tmp/kubeconfig
```
10 changes: 10 additions & 0 deletions providers/openstack/scs2/1-33/cluster-addon/ccm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: v2
type: application
description: CCM
name: CCM
version: v1
dependencies:
- alias: openstack-cloud-controller-manager
name: openstack-cloud-controller-manager
repository: https://kubernetes.github.io/cloud-provider-openstack
version: 2.33.1
10 changes: 10 additions & 0 deletions providers/openstack/scs2/1-33/cluster-addon/cni/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: v2
type: application
description: CNI
name: CNI
version: v1
dependencies:
- alias: cilium
name: cilium
repository: https://helm.cilium.io/
version: 1.18.10
10 changes: 10 additions & 0 deletions providers/openstack/scs2/1-33/cluster-addon/csi/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: v2
type: application
description: CSI
name: CSI
version: v1
dependencies:
- alias: openstack-cinder-csi
name: openstack-cinder-csi
repository: https://kubernetes.github.io/cloud-provider-openstack
version: 2.33.1
9 changes: 9 additions & 0 deletions providers/openstack/scs2/1-33/cluster-class/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: v2
description: "This chart installs and configures:

* Openstack scs2 Cluster Class

"
name: openstack-scs2-1-33-cluster-class
type: application
version: v1
7 changes: 7 additions & 0 deletions providers/openstack/scs2/1-33/csctl.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: csctl.clusterstack.x-k8s.io/v1alpha1
config:
clusterStackName: scs2
kubernetesVersion: v1.33.11
provider:
apiVersion: openstack.csctl.clusterstack.x-k8s.io/v1alpha1
type: openstack
32 changes: 32 additions & 0 deletions providers/openstack/scs2/1-33/image.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
apiVersion: openstack.k-orc.cloud/v1alpha1
kind: Image
metadata:
name: "ubuntu-capi-image-v1.33.11"
spec:
cloudCredentialsRef:
cloudName: "openstack"
secretName: "openstack"
managementPolicy: managed
resource:
visibility: private
properties:
hardware:
diskBus: scsi
scsiModel: virtio-scsi
vifModel: virtio
qemuGuestAgent: true
rngModel: virtio
architecture: x86_64
minDiskGB: 20
minMemoryMB: 2048
operatingSystem:
distro: ubuntu
version: "24.04"
content:
diskFormat: qcow2
download:
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.11.qcow2
hash:
algorithm: sha256
value: a7bf1bab8a0e33de6346fd6a0042549d6f444c36db66a4b245be929e3f3d9985
107 changes: 107 additions & 0 deletions providers/openstack/scs2/1-33/kubernetes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
---
images:
- name: ubuntu-capi-image
enable: true
format: raw
login: ubuntu
min_disk: 20
min_ram: 1024
status: active
visibility: public
multi: false
separator: "-"
meta:
architecture: x86_64
hw_disk_bus: virtio
hw_rng_model: virtio
hw_scsi_model: virtio-scsi
hw_watchdog_action: reset
hypervisor_type: qemu
os_distro: ubuntu
os_purpose: k8snode
replace_frequency: never
uuid_validity: none
provided_until: none
tags:
- clusterstacks
versions:
- version: 'v1.33.4'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.4.qcow2
checksum: "sha256:1f55111551d5c9948d4e02215be56a712ed818d9000592d4f11d4b6cc4407ade"
build_date: 2025-12-17
- version: 'v1.33.5'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.5.qcow2
checksum: "sha256:bd9efa9cad5d7028306eb26ecdc42a2f84337542a050381766714c4c0c1f7a98"
build_date: 2025-12-17
- version: 'v1.33.6'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.6.qcow2
checksum: "sha256:ff458b22c33fc08eca9ba6635783e9a409b6f0613f577c4acdec554db7e2f6a7"
build_date: 2025-12-17
- version: 'v1.33.7'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.7.qcow2
checksum: "sha256:ccdc2649c06f4d81ec17d823cc43a88336799b4fffce7aef42340fcb42a1b774"
build_date: 2025-12-17
- version: 'v1.33.8'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.8.qcow2
checksum: "sha256:203f5635447f4a59e220bfb649c40eb86f065c051650e4ea1cd11706c0d1f5be"
build_date: 2026-02-11
- version: 'v1.33.9'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.9.qcow2
checksum: "sha256:5eec6526242f1b3a35b4ac2449a42a8e13b2279724669b87f1dce28dbd05f234"
build_date: 2026-02-28
- version: 'v1.33.10'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.10.qcow2
checksum: "sha256:efc3817b565c407710724b9d7b51cbb433638aad6b613b64843da28d58a777aa"
build_date: 2026-03-20
- version: 'v1.33.11'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.11.qcow2
checksum: "sha256:a7bf1bab8a0e33de6346fd6a0042549d6f444c36db66a4b245be929e3f3d9985"
build_date: 2026-04-29
#- version: 'v1.33.12'
# url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.33/ubuntu-2404-kube-v1.33.12.qcow2
# checksum: "sha256:"
# build_date: 2026-05-13
- version: 'v1.34.0'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.34/ubuntu-2404-kube-v1.34.0.qcow2
checksum: "sha256:1321c0978818752619ab994acccf4e2d9b241aa738fc56ed0a46b0ebe21fedfb"
build_date: 2025-12-17
- version: 'v1.34.1'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.34/ubuntu-2404-kube-v1.34.1.qcow2
checksum: "sha256:0f2153d01e13693a680010045b1c7f4c511495eff4f8672ea29b475b02b43dc4"
build_date: 2025-12-17
- version: 'v1.34.2'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.34/ubuntu-2404-kube-v1.34.2.qcow2
checksum: "sha256:8d37637dc86cd307e50ba2dab2d96aa3c46933552f5607f4663b40c246adb0a8"
build_date: 2025-12-17
- version: 'v1.34.3'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.34/ubuntu-2404-kube-v1.34.3.qcow2
checksum: "sha256:b3c487345dd8ff2eea6ddd3e526d068abc3a59d40a994581f6dfc7be10df427b"
build_date: 2025-12-17
- version: 'v1.34.4'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.34/ubuntu-2404-kube-v1.34.4.qcow2
checksum: "sha256:df3f26b0026a1a9ca3b681df2d8675a7341e138dca6f2326592975bb7c0fe792"
build_date: 2026-02-11
- version: 'v1.34.5'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.34/ubuntu-2404-kube-v1.34.5.qcow2
checksum: "sha256:8d0c9308a481698d1b12f2a8b13d8fb0da8275d689bf560eeb9442de93f60d8d"
build_date: 2026-02-28
- version: 'v1.34.6'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.34/ubuntu-2404-kube-v1.34.6.qcow2
checksum: "sha256:c59fb893be8320d7112473290358320fad2756e3e31dce4f90ae8bda9d289a3d"
build_date: 2026-03-20
- version: 'v1.34.7'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.34/ubuntu-2404-kube-v1.34.7.qcow2
checksum: "sha256:f7bf12297833cca14de6d24081c8a01e99143651e4c01431b911375300550fe0"
build_date: 2026-04-16
- version: 'v1.34.8'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.34/ubuntu-2404-kube-v1.34.8.qcow2
checksum: "sha256:440979a41a06573aadb7589167568ff1699eb55e3a1a9fbe85591077560ffa39"
build_date: 2026-05-13
- version: 'v1.35.4'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.35/ubuntu-2404-kube-v1.35.4.qcow2
checksum: "sha256:88c14ecc9fcf929a0c9152e86145a05a51b16ce819a2de711faab6972a22b54e"
build_date: 2026-04-16
- version: 'v1.35.5'
url: https://nbg1.your-objectstorage.com/osism/openstack-k8s-capi-images/ubuntu-2404-kube-v1.35/ubuntu-2404-kube-v1.35.5.qcow2
checksum: "sha256:9ede9a241f14e12f666304d0288934c8fc7ed5ad65b31ed004a7ec0fd53ca32a"
build_date: 2026-05-13
12 changes: 12 additions & 0 deletions providers/openstack/scs2/1-33/versions.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
- kubernetes: 1.32.13
cinder_csi: 2.32.2
occm: 2.32.1
- kubernetes: 1.33.11
cinder_csi: 2.33.1
occm: 2.33.1
- kubernetes: 1.34.8
cinder_csi: 2.34.3
occm: 2.34.2
- kubernetes: 1.35.5
cinder_csi: 2.35.0
occm: 2.35.0
Loading
Loading