From 6ec90ce8312dee8ef1ba51ce63e9ed3806b65cc4 Mon Sep 17 00:00:00 2001 From: Danny Eiselt Date: Thu, 20 Jun 2024 18:16:06 +0200 Subject: [PATCH 1/7] removed: versions specific directory Signed-off-by: Danny Eiselt --- .../scs/{1-27 => }/cluster-addon-values.yaml | 0 .../scs/{1-27 => }/cluster-addon/.helmignore | 0 .../scs/{1-27 => }/cluster-addon/Chart.lock | 0 .../scs/{1-27 => }/cluster-addon/Chart.yaml | 0 .../cluster-addon/charts/cilium-1.15.2.tgz | Bin .../cluster-addon/charts/metrics-server-3.12.0.tgz | Bin .../charts/openstack-cinder-csi-2.27.3.tgz | Bin .../openstack-cloud-controller-manager-2.27.6.tgz | Bin .../charts/yawol-controller-0.21.3.tgz | Bin .../scs/{1-27 => }/cluster-addon/values.yaml | 0 .../scs/{1-27 => }/cluster-class/.helmignore | 0 .../scs/{1-27 => }/cluster-class/Chart.yaml | 0 .../{1-27 => }/cluster-class/templates/_helpers.tpl | 0 .../cluster-class/templates/cluster-class.yaml | 0 .../kubeadm-config-template-worker-openstack.yaml | 0 .../templates/kubeadm-control-plane-template.yaml | 0 .../templates/openstack-cluster-template.yaml | 0 .../openstack-machine-template-control-plane.yaml | 0 .../openstack-machine-template-worker.yaml | 0 .../scs/{1-27 => }/cluster-class/values.yaml | 0 providers/openstack/scs/{1-27 => }/csctl.yaml | 0 .../scs/{1-27 => }/node-images/config.yaml | 0 providers/openstack/scs/versions.yaml | 12 ++++++++++++ 23 files changed, 12 insertions(+) rename providers/openstack/scs/{1-27 => }/cluster-addon-values.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-addon/.helmignore (100%) rename providers/openstack/scs/{1-27 => }/cluster-addon/Chart.lock (100%) rename providers/openstack/scs/{1-27 => }/cluster-addon/Chart.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-addon/charts/cilium-1.15.2.tgz (100%) rename providers/openstack/scs/{1-27 => }/cluster-addon/charts/metrics-server-3.12.0.tgz (100%) rename providers/openstack/scs/{1-27 => }/cluster-addon/charts/openstack-cinder-csi-2.27.3.tgz (100%) rename providers/openstack/scs/{1-27 => }/cluster-addon/charts/openstack-cloud-controller-manager-2.27.6.tgz (100%) rename providers/openstack/scs/{1-27 => }/cluster-addon/charts/yawol-controller-0.21.3.tgz (100%) rename providers/openstack/scs/{1-27 => }/cluster-addon/values.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/.helmignore (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/Chart.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/templates/_helpers.tpl (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/templates/cluster-class.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/templates/kubeadm-config-template-worker-openstack.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/templates/kubeadm-control-plane-template.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/templates/openstack-cluster-template.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/templates/openstack-machine-template-control-plane.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/templates/openstack-machine-template-worker.yaml (100%) rename providers/openstack/scs/{1-27 => }/cluster-class/values.yaml (100%) rename providers/openstack/scs/{1-27 => }/csctl.yaml (100%) rename providers/openstack/scs/{1-27 => }/node-images/config.yaml (100%) create mode 100644 providers/openstack/scs/versions.yaml diff --git a/providers/openstack/scs/1-27/cluster-addon-values.yaml b/providers/openstack/scs/cluster-addon-values.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon-values.yaml rename to providers/openstack/scs/cluster-addon-values.yaml diff --git a/providers/openstack/scs/1-27/cluster-addon/.helmignore b/providers/openstack/scs/cluster-addon/.helmignore similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon/.helmignore rename to providers/openstack/scs/cluster-addon/.helmignore diff --git a/providers/openstack/scs/1-27/cluster-addon/Chart.lock b/providers/openstack/scs/cluster-addon/Chart.lock similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon/Chart.lock rename to providers/openstack/scs/cluster-addon/Chart.lock diff --git a/providers/openstack/scs/1-27/cluster-addon/Chart.yaml b/providers/openstack/scs/cluster-addon/Chart.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon/Chart.yaml rename to providers/openstack/scs/cluster-addon/Chart.yaml diff --git a/providers/openstack/scs/1-27/cluster-addon/charts/cilium-1.15.2.tgz b/providers/openstack/scs/cluster-addon/charts/cilium-1.15.2.tgz similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon/charts/cilium-1.15.2.tgz rename to providers/openstack/scs/cluster-addon/charts/cilium-1.15.2.tgz diff --git a/providers/openstack/scs/1-27/cluster-addon/charts/metrics-server-3.12.0.tgz b/providers/openstack/scs/cluster-addon/charts/metrics-server-3.12.0.tgz similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon/charts/metrics-server-3.12.0.tgz rename to providers/openstack/scs/cluster-addon/charts/metrics-server-3.12.0.tgz diff --git a/providers/openstack/scs/1-27/cluster-addon/charts/openstack-cinder-csi-2.27.3.tgz b/providers/openstack/scs/cluster-addon/charts/openstack-cinder-csi-2.27.3.tgz similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon/charts/openstack-cinder-csi-2.27.3.tgz rename to providers/openstack/scs/cluster-addon/charts/openstack-cinder-csi-2.27.3.tgz diff --git a/providers/openstack/scs/1-27/cluster-addon/charts/openstack-cloud-controller-manager-2.27.6.tgz b/providers/openstack/scs/cluster-addon/charts/openstack-cloud-controller-manager-2.27.6.tgz similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon/charts/openstack-cloud-controller-manager-2.27.6.tgz rename to providers/openstack/scs/cluster-addon/charts/openstack-cloud-controller-manager-2.27.6.tgz diff --git a/providers/openstack/scs/1-27/cluster-addon/charts/yawol-controller-0.21.3.tgz b/providers/openstack/scs/cluster-addon/charts/yawol-controller-0.21.3.tgz similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon/charts/yawol-controller-0.21.3.tgz rename to providers/openstack/scs/cluster-addon/charts/yawol-controller-0.21.3.tgz diff --git a/providers/openstack/scs/1-27/cluster-addon/values.yaml b/providers/openstack/scs/cluster-addon/values.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-addon/values.yaml rename to providers/openstack/scs/cluster-addon/values.yaml diff --git a/providers/openstack/scs/1-27/cluster-class/.helmignore b/providers/openstack/scs/cluster-class/.helmignore similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/.helmignore rename to providers/openstack/scs/cluster-class/.helmignore diff --git a/providers/openstack/scs/1-27/cluster-class/Chart.yaml b/providers/openstack/scs/cluster-class/Chart.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/Chart.yaml rename to providers/openstack/scs/cluster-class/Chart.yaml diff --git a/providers/openstack/scs/1-27/cluster-class/templates/_helpers.tpl b/providers/openstack/scs/cluster-class/templates/_helpers.tpl similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/templates/_helpers.tpl rename to providers/openstack/scs/cluster-class/templates/_helpers.tpl diff --git a/providers/openstack/scs/1-27/cluster-class/templates/cluster-class.yaml b/providers/openstack/scs/cluster-class/templates/cluster-class.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/templates/cluster-class.yaml rename to providers/openstack/scs/cluster-class/templates/cluster-class.yaml diff --git a/providers/openstack/scs/1-27/cluster-class/templates/kubeadm-config-template-worker-openstack.yaml b/providers/openstack/scs/cluster-class/templates/kubeadm-config-template-worker-openstack.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/templates/kubeadm-config-template-worker-openstack.yaml rename to providers/openstack/scs/cluster-class/templates/kubeadm-config-template-worker-openstack.yaml diff --git a/providers/openstack/scs/1-27/cluster-class/templates/kubeadm-control-plane-template.yaml b/providers/openstack/scs/cluster-class/templates/kubeadm-control-plane-template.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/templates/kubeadm-control-plane-template.yaml rename to providers/openstack/scs/cluster-class/templates/kubeadm-control-plane-template.yaml diff --git a/providers/openstack/scs/1-27/cluster-class/templates/openstack-cluster-template.yaml b/providers/openstack/scs/cluster-class/templates/openstack-cluster-template.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/templates/openstack-cluster-template.yaml rename to providers/openstack/scs/cluster-class/templates/openstack-cluster-template.yaml diff --git a/providers/openstack/scs/1-27/cluster-class/templates/openstack-machine-template-control-plane.yaml b/providers/openstack/scs/cluster-class/templates/openstack-machine-template-control-plane.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/templates/openstack-machine-template-control-plane.yaml rename to providers/openstack/scs/cluster-class/templates/openstack-machine-template-control-plane.yaml diff --git a/providers/openstack/scs/1-27/cluster-class/templates/openstack-machine-template-worker.yaml b/providers/openstack/scs/cluster-class/templates/openstack-machine-template-worker.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/templates/openstack-machine-template-worker.yaml rename to providers/openstack/scs/cluster-class/templates/openstack-machine-template-worker.yaml diff --git a/providers/openstack/scs/1-27/cluster-class/values.yaml b/providers/openstack/scs/cluster-class/values.yaml similarity index 100% rename from providers/openstack/scs/1-27/cluster-class/values.yaml rename to providers/openstack/scs/cluster-class/values.yaml diff --git a/providers/openstack/scs/1-27/csctl.yaml b/providers/openstack/scs/csctl.yaml similarity index 100% rename from providers/openstack/scs/1-27/csctl.yaml rename to providers/openstack/scs/csctl.yaml diff --git a/providers/openstack/scs/1-27/node-images/config.yaml b/providers/openstack/scs/node-images/config.yaml similarity index 100% rename from providers/openstack/scs/1-27/node-images/config.yaml rename to providers/openstack/scs/node-images/config.yaml diff --git a/providers/openstack/scs/versions.yaml b/providers/openstack/scs/versions.yaml new file mode 100644 index 00000000..e4912dde --- /dev/null +++ b/providers/openstack/scs/versions.yaml @@ -0,0 +1,12 @@ +- kubernetes: 1.27.14 + cinder_csi: 2.27.3 + occm: 2.27.6 +- kubernetes: 1.28.10 + cinder_csi: 2.28.2 + occm: 2.28.4 +- kubernetes: 1.29.5 + cinder_csi: 2.29.0 + occm: 2.29.1 +- kubernetes: 1.30.1 + cinder_csi: 2.30.0 + occm: 2.30.0 From 2d85550f67e34f13af4c647e5f36512e93e9ac0f Mon Sep 17 00:00:00 2001 From: Danny Eiselt Date: Thu, 20 Jun 2024 18:16:47 +0200 Subject: [PATCH 2/7] added: script to generate version specific directory structure Signed-off-by: Danny Eiselt --- hack/generate_version.py | 271 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100755 hack/generate_version.py diff --git a/hack/generate_version.py b/hack/generate_version.py new file mode 100755 index 00000000..e556e8c3 --- /dev/null +++ b/hack/generate_version.py @@ -0,0 +1,271 @@ +#!/usr/bin/env python3 + +""" +Generate version-specific hierarchy of the cluster-stacks repo. + +This is a helper script to generate a version-specific folder structure +of the base cluster-stacks implementation. The source directory is in +`cluster-stacks/providers/openstack/scs` and supported versions are maintained +in a file `versions.yaml` within the source directory. The source directory is a +valid variant of this repo, pinned to the smallest supported version. +""" + + +import argparse +import logging +import shutil +import subprocess +from pathlib import Path, PosixPath + +import yaml + +BASE_PATH = Path(__file__).parent.parent +SOURCE_PATH = BASE_PATH.joinpath("providers", "openstack", "scs") +DEFAULT_TARGET_PATH = BASE_PATH.joinpath("providers", "openstack", "out") + +logger = logging.getLogger(__name__) + + +def load_supported_versions() -> list: + """ + Read supported versions from file for output or further usage inside this script. + + Parameters: + None + + Returns: + List of supported versions + """ + logger.info("Loading supported versions.") + version_file = SOURCE_PATH.joinpath("versions.yaml") + with open(version_file, encoding="utf-8") as stream: + try: + result = yaml.safe_load(stream) + except yaml.YAMLError as exc: + print(exc) + + return result + + +def get_dash_version(version: str) -> str: + """ + Helper function to convert version from dotted to separated by hyphen. (1.27.14 -> 1-27) + Parameters: + version (string): String containing the full semver version. + + Returns: + String with shortened version separated by a hypgen. + """ + return "-".join(version.split(".")[0:2]) + + +def create_output_dir(version: str) -> PosixPath: + """ + Prepare output directory by creating it and copying the source files over. + This overwrites files existing inside the output directory, as those + should not be edited manually. + + Parameters: + version (string): Semver version string as read from the supported versions list. + + Returns: + PosixPath object of the created directory. + """ + out = get_dash_version(version) + out_dir = DEFAULT_TARGET_PATH.joinpath(out) + + logger.info("Creating output directory at %s", out_dir) + + # TODO: how to handle FileExistsError? + # as the output is being generated, it *should* be safe to overwrite + if out_dir.exists(): + shutil.rmtree(str(out_dir)) + + # Copy whole tree from src dir and remove "versions.yaml" file + shutil.copytree(SOURCE_PATH, out_dir) + out_dir.joinpath("versions.yaml").unlink() + out_dir.joinpath("cluster-addon", "Chart.lock").unlink() + shutil.rmtree(str(out_dir.joinpath("cluster-addon", "charts"))) + + return out_dir + + +def readfile(path: PosixPath): + """ + Helper function to read yaml configuration files. + + Parameters: + path (PosixPath): pathlib object of the file to open. + + Returns: + Content of the yaml configuration file. + """ + # TODO: yaml.safe_load either returns a list or dict, + # depending on the structure of the yaml file. This can be improved / refactored. + with open(path, encoding="utf-8") as stream: + try: + content = yaml.safe_load(stream) + except yaml.YAMLError as exc: + print(exc) + + return content + + +def writefile(path: PosixPath, content): + """ + Helper function to write content to a yaml configuration file. + + Parameters: + path (PosixPath): pathlib object of the target file path. + content: yaml data to be written. This can either be of type list or dict. + + Returns: + None + """ + with open(path, "w", encoding="utf-8") as stream: + yaml.safe_dump(content, stream) + + +def update_cluster_addon( + target: PosixPath, build: bool, build_verbose: bool, **versions +): + """ + Update relevant files inside the cluster-stacks//cluster-addon subdirectory + + Parameters: + target (PosixPath): pathlib object of the relevant file. + build (boolean): Toggle to control if helm dependencies should be build, + build_verbose (boolean): Toggle to control if build output should be printed. + versions (kwargs): Dictionary of version information. + + Returns: + None + """ + logger.info("Updating %s", target) + content = readfile(target) + + for dep in content["dependencies"]: + if dep["name"] == "openstack-cinder-csi": + dep["version"] = versions["cinder_csi"] + + if dep["name"] == "openstack-cloud-controller-manager": + dep["version"] = versions["occm"] + + writefile(target, content) + + if build: + logger.info("Building helm dependencies") + cmd = ["helm", "dependency", "build"] + subprocess.run( + cmd, + cwd=str(target).replace("Chart.yaml", ""), + capture_output=build_verbose, + check=False, + ) + + +def update_csctl_conf(target: PosixPath, **versions): + """ + Function to update csctl configuration file. + + Parameters: + target (PosixPath): pathlib object of the relevant file. + versions (kwargs): Dictionary of version information. + + Returns: + None + """ + logger.info("Updating %s", target) + content = readfile(target) + + content["config"]["kubernetesVersion"] = f"v{versions['kubernetes']}" + + writefile(target, content) + + +def update_cluster_class(target: PosixPath, **kwargs): + """ + Update relevant files inside the cluster-stacks//cluster-class subdirectory. + + Parameters: + target (PosixPath): pathlib object of the relevant file. + versions (kwargs): Dictionary of version information. + + Returns: + None + """ + logger.info("Updating %s", target) + content = readfile(target) + version = get_dash_version(kwargs["kubernetes"]) + content["name"] = f"openstack-scs-{version}-cluster-class" + + writefile(target, content) + + +def update_node_images(target: PosixPath, **kwargs): + """ + Update relevant files inside the cluster-stacks//node-images subdirectory. + + Parameters: + target (PosixPath): pathlib object of the relevant file. + versions (kwargs): Dictionary of version information. + + Returns: + None + """ + logger.info("Updating %s", target) + content = readfile(target) + + # TODO: can this magic URL be 'removed'? + # pylint: disable=locally-disabled, line-too-long + url = f'https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-k8s-capi-images/ubuntu-2204-kube-v{kwargs["kubernetes"][0:4]}/ubuntu-2204-kube-v{kwargs["kubernetes"]}.qcow2' + content["openStackNodeImages"][0]["url"] = url + + content["openStackNodeImages"][0]["createOpts"][ + "name" + ] = f"ubuntu-capi-image-v{kwargs["kubernetes"]}" + + writefile(target, content) + + +if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) + logger.info("Starting") + # Initialize arg parser + parser = argparse.ArgumentParser() + parser.add_argument("-t", "--target-version", type=str) + parser.add_argument("-l", "--list", action="store_true") + parser.add_argument("--build", action="store_true", help="Build helm dependencies.") + parser.add_argument( + "--build-verbose", action="store_false", help="Show output of helm build" + ) + args = parser.parse_args() + + # Load supported target versions + sup_versions = load_supported_versions() + + if args.list: + print("Supported Kubernetes Versions:") + for v in sup_versions: + print(f"{".".join(v["kubernetes"].split(".")[0:2])}") + print("Usage: generate_version.py --target-version VERSION") + + # filter versions to generate + if args.target_version: + target_versions = [ + v for v in sup_versions if v["kubernetes"].startswith(args.target_version) + ] + else: + target_versions = sup_versions + + for tv in target_versions: + output_dir = create_output_dir(tv["kubernetes"]) + update_cluster_addon( + output_dir.joinpath("cluster-addon", "Chart.yaml"), + args.build, + args.build_verbose, + **tv, + ) + update_csctl_conf(output_dir.joinpath("csctl.yaml"), **tv) + update_cluster_class(output_dir.joinpath("cluster-class", "Chart.yaml"), **tv) + update_node_images(output_dir.joinpath("node-images", "config.yaml"), **tv) From ad59a0b62b39860bda94a0fa0f10b7e17d793a83 Mon Sep 17 00:00:00 2001 From: Danny Eiselt Date: Thu, 20 Jun 2024 19:02:05 +0200 Subject: [PATCH 3/7] fix yaml linter error Signed-off-by: Danny Eiselt --- providers/openstack/scs/cluster-addon-values.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/providers/openstack/scs/cluster-addon-values.yaml b/providers/openstack/scs/cluster-addon-values.yaml index 18db1c8e..3e151ee2 100644 --- a/providers/openstack/scs/cluster-addon-values.yaml +++ b/providers/openstack/scs/cluster-addon-values.yaml @@ -44,4 +44,5 @@ values: | lb-provider: ovn {{- end }} {{- end }} - {{- end }} \ No newline at end of file + {{- end }} + From 4541a159709d0865647d216330e6e4d27c57ab35 Mon Sep 17 00:00:00 2001 From: Danny Eiselt Date: Mon, 24 Jun 2024 09:17:55 +0200 Subject: [PATCH 4/7] fix yaml linter error? Signed-off-by: Danny Eiselt --- providers/openstack/scs/cluster-addon-values.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/providers/openstack/scs/cluster-addon-values.yaml b/providers/openstack/scs/cluster-addon-values.yaml index 3e151ee2..e5ec0752 100644 --- a/providers/openstack/scs/cluster-addon-values.yaml +++ b/providers/openstack/scs/cluster-addon-values.yaml @@ -45,4 +45,3 @@ values: | {{- end }} {{- end }} {{- end }} - From ad5c63d43f85f66dbac0a3e9bd5fc6f6762e5d7b Mon Sep 17 00:00:00 2001 From: Danny Eiselt Date: Mon, 24 Jun 2024 13:10:12 +0200 Subject: [PATCH 5/7] added: name in cluster-addon replace Signed-off-by: Danny Eiselt --- hack/generate_version.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hack/generate_version.py b/hack/generate_version.py index e556e8c3..efe24e38 100755 --- a/hack/generate_version.py +++ b/hack/generate_version.py @@ -151,6 +151,8 @@ def update_cluster_addon( if dep["name"] == "openstack-cloud-controller-manager": dep["version"] = versions["occm"] + content["name"] = f"openstack-scs-{get_dash_version(versions["kubernetes"])}-cluster-addon" + writefile(target, content) if build: From 0207e883401cae639f59bf2c148addf958e4cb22 Mon Sep 17 00:00:00 2001 From: Jan Schoone <6106846+jschoone@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:35:35 +0200 Subject: [PATCH 6/7] chore(cluster-addon): bump cilium to 1.15.6 Signed-off-by: Jan Schoone <6106846+jschoone@users.noreply.github.com> --- providers/openstack/scs/cluster-addon/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/openstack/scs/cluster-addon/Chart.yaml b/providers/openstack/scs/cluster-addon/Chart.yaml index 967d844e..5171374d 100644 --- a/providers/openstack/scs/cluster-addon/Chart.yaml +++ b/providers/openstack/scs/cluster-addon/Chart.yaml @@ -7,7 +7,7 @@ dependencies: - alias: cilium name: cilium repository: https://helm.cilium.io/ - version: 1.15.2 + version: 1.15.6 - alias: openstack-cloud-controller-manager name: openstack-cloud-controller-manager repository: https://kubernetes.github.io/cloud-provider-openstack From 579f76343299bacc250cd43e57ee93eaa0cee032 Mon Sep 17 00:00:00 2001 From: Jan Schoone <6106846+jschoone@users.noreply.github.com> Date: Mon, 24 Jun 2024 17:17:58 +0200 Subject: [PATCH 7/7] chore(versions): bump patch versions Signed-off-by: Jan Schoone <6106846+jschoone@users.noreply.github.com> --- providers/openstack/scs/versions.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/providers/openstack/scs/versions.yaml b/providers/openstack/scs/versions.yaml index e4912dde..e06cb611 100644 --- a/providers/openstack/scs/versions.yaml +++ b/providers/openstack/scs/versions.yaml @@ -1,12 +1,12 @@ -- kubernetes: 1.27.14 +- kubernetes: 1.27.15 cinder_csi: 2.27.3 occm: 2.27.6 -- kubernetes: 1.28.10 +- kubernetes: 1.28.11 cinder_csi: 2.28.2 occm: 2.28.4 -- kubernetes: 1.29.5 +- kubernetes: 1.29.6 cinder_csi: 2.29.0 occm: 2.29.1 -- kubernetes: 1.30.1 +- kubernetes: 1.30.2 cinder_csi: 2.30.0 occm: 2.30.0