Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
c07adba
Bump go to 1.23.10
lentzi90 Jun 16, 2025
231ddce
Merge pull request #2594 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Jun 16, 2025
46a68f6
:seedling:(deps): Bump softprops/action-gh-release
dependabot[bot] Jun 16, 2025
351bb3a
Merge pull request #2595 from kubernetes-sigs/dependabot/github_actio…
k8s-ci-robot Jun 17, 2025
b38876d
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 2 …
dependabot[bot] Jun 23, 2025
830e59a
Update generated code
dependabot[bot] Jun 23, 2025
3b5dc14
Update templates
lentzi90 Jun 24, 2025
a56c20b
Merge pull request #2605 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Jun 24, 2025
aab0c04
Merge pull request #2602 from Nordix/lentzi90/release-0.12-templates
k8s-ci-robot Jun 24, 2025
e8793c6
Release: Include ClusterClasses and Image templates
lentzi90 Jan 28, 2025
0c82f66
Merge pull request #2607 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Jun 25, 2025
e46279f
Bump cloud-build image to support go 1.23
lentzi90 Apr 30, 2025
fa5a8b3
Merge pull request #2610 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Jun 25, 2025
c2c2a03
Bump oauth2
lentzi90 Jul 28, 2025
1b1cfee
Merge pull request #2631 from Nordix/lentzi90/bump-oauth2-release-0.12
k8s-ci-robot Aug 4, 2025
a16303e
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 2 …
dependabot[bot] Aug 4, 2025
a2c08e5
Update generated code
dependabot[bot] Aug 4, 2025
db89cc9
Merge pull request #2636 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Aug 4, 2025
25d5fbb
E2E: Update Calico to v3.30.2
lentzi90 Jun 25, 2025
a3a39b8
Merge pull request #2642 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Aug 7, 2025
b0225fe
:seedling:(deps): Bump the all-github-actions group with 2 updates
dependabot[bot] Aug 12, 2025
409ee57
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 2 …
dependabot[bot] Aug 12, 2025
5f4b2f5
Update generated code
dependabot[bot] Aug 12, 2025
282283e
Merge pull request #2651 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Aug 12, 2025
8840b31
Merge pull request #2646 from kubernetes-sigs/dependabot/github_actio…
k8s-ci-robot Aug 13, 2025
b8342ea
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 2 …
dependabot[bot] Aug 19, 2025
bb65bee
Merge pull request #2663 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Aug 19, 2025
c33c106
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 2 …
dependabot[bot] Aug 29, 2025
b997237
Update generated code
dependabot[bot] Aug 29, 2025
33f8c08
Merge pull request #2675 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Aug 29, 2025
32a952f
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 2 …
dependabot[bot] Sep 2, 2025
ded3cf3
Merge pull request #2679 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Sep 2, 2025
fe34fda
corrected lint requirements
TruongHoangPhuLoc Sep 2, 2025
41831e0
Merge pull request #2689 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Sep 8, 2025
ba4fbd5
:seedling:(deps): Bump the all-github-actions group with 2 updates
dependabot[bot] Sep 8, 2025
7ad5bb5
Merge pull request #2695 from kubernetes-sigs/dependabot/github_actio…
k8s-ci-robot Sep 8, 2025
8a04027
Uplift go 1.23.12 to address security issue in release-0.12
smoshiur1237 Sep 9, 2025
0556957
Merge pull request #2710 from Nordix/uplift-go/release12
k8s-ci-robot Sep 9, 2025
d018d69
Allow changing DNSNameservers in subnet config for OpenstackCluster
pbasov Apr 12, 2025
d0e6adb
:seedling:(deps): Bump the all-github-actions group across 1 director…
dependabot[bot] Oct 6, 2025
3bcbfe5
Remove mdbooth as a maintainer
mdbooth Sep 22, 2025
ee66016
Refactor generate-codegen
lentzi90 Oct 1, 2025
0722d7c
Merge pull request #2762 from Nordix/lentzi90/codegen-release-0.12
k8s-ci-robot Oct 9, 2025
8546878
Merge pull request #2754 from kubernetes-sigs/dependabot/github_actio…
k8s-ci-robot Oct 10, 2025
8800efd
Merge pull request #2760 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Oct 10, 2025
23143c0
Add Moshiur as reviewer
lentzi90 Oct 9, 2025
af7759a
Merge pull request #2771 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Oct 10, 2025
45c8abe
:seedling:(deps): Bump softprops/action-gh-release
dependabot[bot] Oct 10, 2025
0059484
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 2 …
dependabot[bot] Oct 10, 2025
ec2611d
Merge pull request #2773 from kubernetes-sigs/dependabot/github_actio…
k8s-ci-robot Oct 10, 2025
a0ef0b9
Merge pull request #2778 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Oct 10, 2025
2b8dcf1
Merge pull request #2721 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Oct 10, 2025
ce8fe89
:seedling:(deps): Bump softprops/action-gh-release
dependabot[bot] Oct 13, 2025
ef7969c
Merge pull request #2780 from kubernetes-sigs/dependabot/github_actio…
k8s-ci-robot Oct 14, 2025
4e1934a
Bump go to 1.24.9
lentzi90 Oct 16, 2025
505ab7f
Merge pull request #2786 from Nordix/lentzi90/release-0.12-go
k8s-ci-robot Oct 16, 2025
05af484
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 2 …
dependabot[bot] Oct 27, 2025
092a1c2
Migrate CI to stable/2025.2
stephenfin Oct 28, 2025
40cf9d7
Disable log colours for DevStack
stephenfin Oct 28, 2025
3d5978c
Disable logger mechanism driver
stephenfin Oct 28, 2025
c6d9ba7
Merge pull request #2813 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Oct 29, 2025
2ff9a59
Merge pull request #2806 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Oct 29, 2025
6f16c44
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 2 …
dependabot[bot] Nov 3, 2025
81e9b20
Merge pull request #2816 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Nov 4, 2025
7274f70
:seedling:(deps): Bump the all-go-mod-patch-and-minor group across 1 …
dependabot[bot] Nov 17, 2025
87f7fb5
:seedling:(deps): Bump the all-github-actions group across 1 director…
dependabot[bot] Nov 17, 2025
d22b9e1
Merge pull request #2839 from kubernetes-sigs/dependabot/go_modules/r…
k8s-ci-robot Nov 19, 2025
f791105
Merge pull request #2840 from kubernetes-sigs/dependabot/github_actio…
k8s-ci-robot Nov 19, 2025
2e1bb35
Add bnallapeta to reviewers
lentzi90 Oct 22, 2025
5213ff9
Merge pull request #2849 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Nov 21, 2025
8026ad6
Remove invalid kustomizeconfig from config/webhook
mdbooth Nov 21, 2025
4313ff4
Merge pull request #2852 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Nov 24, 2025
7bdb3b0
:seedling:(deps): Bump the all-github-actions group across 1 director…
dependabot[bot] Dec 1, 2025
8fc6216
Merge pull request #2869 from kubernetes-sigs/dependabot/github_actio…
k8s-ci-robot Dec 2, 2025
7cf128f
Merge https://github.com/kubernetes-sigs/cluster-api-provider-opensta…
Dec 4, 2025
33db290
Updating and vendoring go modules after an upstream merge
Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/workflows/pr-dependabot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # tag=v4.2.2
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # tag=v6.0.0
- name: Calculate go version
id: vars
run: echo "go_version=$(make go-version)" >> $GITHUB_OUTPUT
- name: Set up Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # tag=v5.5.0
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # tag=v6.1.0
with:
go-version: ${{ steps.vars.outputs.go_version }}
- uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # tag=v4.2.3
- uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # tag=v4.3.0
name: Restore go cache
with:
path: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ jobs:
- name: Set env
run: echo "RELEASE_TAG=${GITHUB_REF:10}" >> $GITHUB_ENV
- name: checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # tag=v4.2.2
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # tag=v6.0.0
with:
fetch-depth: 0
- name: Calculate go version
run: echo "go_version=$(make go-version)" >> $GITHUB_ENV
- name: Set up Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # tag=v5.5.0
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # tag=v6.1.0
with:
go-version: ${{ env.go_version }}
- name: generate release artifacts
Expand All @@ -37,7 +37,7 @@ jobs:
env:
GH_TOKEN: ${{ github.token }}
- name: Release
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # tag=v2.2.2
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # tag=v2.5.0
with:
draft: true
files: out/*
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/security-scan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # tag=v4.2.2
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # tag=v6.0.0
with:
ref: ${{ matrix.branch }}
- name: Calculate go version
id: vars
run: echo "go_version=$(make go-version)" >> $GITHUB_OUTPUT
- name: Set up Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # tag=v5.5.0
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # tag=v6.1.0
with:
go-version: ${{ steps.vars.outputs.go_version }}
- name: Run verify security target
Expand Down
12 changes: 6 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

# Build the manager binary
ARG GO_VERSION
FROM golang:${GO_VERSION} AS builder
FROM golang:${GO_VERSION:-1.24.9} AS builder
WORKDIR /workspace

# Run this with docker build --build_arg goproxy=$(go env GOPROXY) to override the goproxy
Expand All @@ -28,7 +28,7 @@ COPY go.sum go.sum
# Cache deps before building and copying source so that we don't need to re-download as much
# and so that source changes don't invalidate our downloaded layer
RUN --mount=type=cache,target=/go/pkg/mod \
go mod download
go mod download

# Copy the sources
COPY ./ ./
Expand All @@ -40,10 +40,10 @@ ARG ldflags

# Do not force rebuild of up-to-date packages (do not use -a) and use the compiler cache folder
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg/mod \
CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} \
go build -ldflags "${ldflags} -extldflags '-static'" \
-o manager ${package}
--mount=type=cache,target=/go/pkg/mod \
CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} \
go build -ldflags "${ldflags} -extldflags '-static'" \
-o manager ${package}

# Production image
FROM gcr.io/distroless/static:nonroot
Expand Down
71 changes: 68 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ unexport GOPATH
TRACE ?= 0

# Go
GO_VERSION ?= 1.23.8
GO_VERSION ?= 1.24.9

# Directories.
ARTIFACTS ?= $(REPO_ROOT)/_artifacts
Expand Down Expand Up @@ -69,6 +69,11 @@ GOLANGCI_LINT := $(TOOLS_BIN_DIR)/golangci-lint
GOTESTSUM := $(TOOLS_BIN_DIR)/gotestsum
KUSTOMIZE := $(TOOLS_BIN_DIR)/kustomize
MOCKGEN := $(TOOLS_BIN_DIR)/mockgen
OPENAPI_GEN := $(TOOLS_BIN_DIR)/openapi-gen
APPLYCONFIGURATION_GEN := $(TOOLS_BIN_DIR)/applyconfiguration-gen
CLIENT_GEN := $(TOOLS_BIN_DIR)/client-gen
LISTER_GEN := $(TOOLS_BIN_DIR)/lister-gen
INFORMER_GEN := $(TOOLS_BIN_DIR)/informer-gen
RELEASE_NOTES := $(TOOLS_BIN_DIR)/release-notes
SETUP_ENVTEST := $(TOOLS_BIN_DIR)/setup-envtest
GEN_CRD_API_REFERENCE_DOCS := $(TOOLS_BIN_DIR)/gen-crd-api-reference-docs
Expand Down Expand Up @@ -317,8 +322,66 @@ generate-controller-gen: $(CONTROLLER_GEN)
object:headerFile=./hack/boilerplate/boilerplate.generatego.txt

.PHONY: generate-codegen
generate-codegen: generate-controller-gen
./hack/update-codegen.sh
generate-codegen: generate-controller-gen $(OPENAPI_GEN) $(APPLYCONFIGURATION_GEN) $(CLIENT_GEN) $(LISTER_GEN) $(INFORMER_GEN)
@echo "** Generating OpenAPI definitions **"
# The package list includes:
# - CAPO's own API packages (v1alpha1, v1alpha7, v1beta1) that have // +k8s:openapi-gen= markers
# - Dependency packages from CAPI and k8s.io that are referenced by CAPO's APIs
# - Base k8s.io/apimachinery packages
$(OPENAPI_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-file=zz_generated.openapi.go \
--output-dir=./cmd/models-schema \
--output-pkg=main \
--report-filename=./api_violations.report \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1 \
sigs.k8s.io/cluster-api/api/v1beta1 \
k8s.io/api/core/v1 \
k8s.io/apimachinery/pkg/apis/meta/v1 \
k8s.io/apimachinery/pkg/runtime \
k8s.io/apimachinery/pkg/version
@echo "** Generating openapi.json **"
go run ./cmd/models-schema | jq > ./openapi.json
@echo "** Generating applyconfiguration code **"
$(APPLYCONFIGURATION_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-dir=./pkg/generated/applyconfiguration \
--output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
--openapi-schema=./openapi.json \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
@echo "** Generating clientset code **"
$(CLIENT_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-dir=./pkg/generated/clientset \
--output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/clientset \
--clientset-name=clientset \
--input-base=sigs.k8s.io/cluster-api-provider-openstack \
--apply-configuration-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
--input=api/v1alpha1 \
--input=api/v1alpha7 \
--input=api/v1beta1
@echo "** Generating lister code **"
$(LISTER_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-dir=./pkg/generated/listers \
--output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/listers \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
@echo "** Generating informer code **"
$(INFORMER_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-dir=./pkg/generated/informers \
--output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/informers \
--versioned-clientset-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/clientset/clientset \
--listers-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/listers \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1

.PHONY: generate-conversion-gen
generate-conversion-gen: $(CONVERSION_GEN)
Expand Down Expand Up @@ -517,6 +580,8 @@ templates/cluster-template-%.yaml: kustomize/v1beta1/% $(KUSTOMIZE) FORCE
.PHONY: release-templates
release-templates: $(RELEASE_DIR) templates ## Generate release templates
cp templates/cluster-template*.yaml $(RELEASE_DIR)/
cp templates/clusterclass*.yaml $(RELEASE_DIR)/
cp templates/image-template*.yaml $(RELEASE_DIR)/

IMAGE_PATCH_DIR := $(ARTIFACTS)/image-patch

Expand Down
2 changes: 2 additions & 0 deletions OWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,5 @@ emeritus_approvers:
- chrischdi
- tobiasgiese
- seanschneeweiss
- jichenjc
- mdbooth
5 changes: 2 additions & 3 deletions OWNERS_ALIASES
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ aliases:
cluster-api-openstack-maintainers:
- emilienm
- lentzi90
- mdbooth
cluster-api-openstack-reviewers:
cluster-api-openstack-emeritus-maintainers:
- jichenjc
- bnallapeta
- smoshiur1237
22 changes: 13 additions & 9 deletions cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,19 @@ options:
substitution_option: ALLOW_LOOSE
machineType: 'N1_HIGHCPU_8'
steps:
- name: 'gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20241229-5dc092c636'
entrypoint: make
env:
- DOCKER_CLI_EXPERIMENTAL=enabled
- TAG=$_GIT_TAG
- PULL_BASE_REF=$_PULL_BASE_REF
- DOCKER_BUILDKIT=1
args:
- release-staging
# To check if the image can handle the build, you can try it like this:
# docker run --rm -it -v $(pwd):/workspace gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:${TAG}
# make clean # make sure we have something to build
# make staging-manifests
- name: 'gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20250116-2a05ea7e3d'
entrypoint: make
env:
- DOCKER_CLI_EXPERIMENTAL=enabled
- TAG=$_GIT_TAG
- PULL_BASE_REF=$_PULL_BASE_REF
- DOCKER_BUILDKIT=1
args:
- release-staging
substitutions:
# _GIT_TAG will be filled with a git-based tag for the image, of the form vYYYYMMDD-hash, and
# can be used as a substitution
Expand Down
3 changes: 0 additions & 3 deletions config/webhook/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
resources:
- manifests.yaml
- service.yaml

configurations:
- kustomizeconfig.yaml
25 changes: 0 additions & 25 deletions config/webhook/kustomizeconfig.yaml

This file was deleted.

12 changes: 7 additions & 5 deletions docs/book/src/development/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ This document explains how to develop Cluster API Provider OpenStack (CAPO).
Note that CAPO depends on ORC. No matter how you choose to work, you will need to deploy ORC in order to make CAPO functional:

```bash
kubectl apply -f https://github.com/k-orc/openstack-resource-controller/releases/download/v1.0.0/install.yaml
kubectl apply -f https://github.com/k-orc/openstack-resource-controller/releases/latest/download/install.yaml
```

TL;DR: Here is a short version for how to develop with Tilt:
Expand All @@ -58,11 +58,12 @@ export RESOURCE_TYPE=...
make tilt-up
# Back in CAPO repo
# Install ORC
kubectl apply -f https://github.com/k-orc/openstack-resource-controller/releases/download/v1.0.0/install.yaml
kubectl apply -f https://github.com/k-orc/openstack-resource-controller/releases/latest/download/install.yaml
# Create secret with clouds.yaml (the file is created by create_devstack.sh)
kubectl create secret generic dev-test-cloud-config --from-file=clouds.yaml
# Add images to use in the tests
clusterctl generate yaml --from templates/images-template.yaml | kubectl apply -f -
clusterctl generate yaml --from templates/image-template-node.yaml | kubectl apply -f -
clusterctl generate yaml --from templates/image-template-bastion.yaml | kubectl apply -f -
```

At this point, you should be able to apply the `dev-test` ClusterClass and start creating/deleting `development` clusters through the Tilt UI.
Expand Down Expand Up @@ -95,10 +96,11 @@ After generating `infrastructure-components.yaml`, replace the `us.gcr.io/k8s-ar
## Automatically Adding Images to OpenStack

Before you can create a Cluster, you will need a suitable image in OpenStack.
There is a convenient template available in `templates/images-template.yaml` for this purpose.
There are convenient templates available in `templates/image-template-*.yaml` for this purpose.
For example:

```bash
clusterctl generate yaml --from templates/images-template.yaml | kubectl apply -f -
clusterctl generate yaml --from templates/image-template-node.yaml | kubectl apply -f -
```

## Testing Cluster Creation using the 'dev-test' ClusterClass with Tilt
Expand Down
Loading