1
0
forked from suse-edge/Factory

15 Commits

Author SHA256 Message Date
e30fc2dc3e Bump ironic-image and metal3-chart
Ironic image has been updated to v29.0.0, bump the version on the Helm
Charts too.

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 11:54:56 +00:00
05aa1341a9 Align configure-nonroot.sh
Try to reuse as much as possible of the upstream configure-nonroot.sh

Co-authored-by: Nicolas Belouin <nicolas.belouin@suse.com>
Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:26:57 +00:00
5b8cbc57e1 Make the new scripts executable
v29.0.0 add a couple of new scripts, such as ironic-probe.sh; make sure
they have the 'executable' flag.

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
16d2670d54 Remove unused prometheus exporter
The Prometheus exporter is effectively, not only unused, but
unusable, due to missing dependencies. Since currently we
don't have use case for it, opt for dropping the exporter
entirely from the image.

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
58f9552a26 Force the use of Python 3.11
SLE 15.6 provides Python 3.11, make sure it's enforced.

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
7da89fbe2b Update the destination path of Jinjia templates
Previously .j2 files used to be copied to /etc before being
instantiated. In order to make the image potentially read only,
move the templates to /tmp.

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
909aa27611 Disable the network schema check to allow for nmstate definitions
Bypass the OpenStack network-data format validation, to allow for the
nmstate based one we instead use (which would otherwise fail).

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
589be0a21f Use arch specific ESP img
Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
728354e926 Use arch specific file for IPA
Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
db28299e63 Use arch named IPA file in IMAGE_CACHE_PREFIX
Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
37a92b02c4 Change GRUB path in ironic.conf
Correct path for grub.cfg on a SUSE system.

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
dc68a1d44b Use ironic-suse user/group in Apache for API
Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
cc08766fdf Use ironic-suse user/group in Apache for media
Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
df4fce4388 Use correct paths and modules for Apache
Correct the path of the Apache modules for a SUSE image.

Also keep a couple of modules disabled.

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
6c6544a608 Align to v29.0.0
Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-07-14 10:10:36 +00:00
54 changed files with 216 additions and 672 deletions

View File

@@ -17,7 +17,7 @@ jobs:
object-format: 'sha256'
- name: Setup dependencies
run: |
zypper in -y python3-ruamel.yaml
zypper in -y python3-PyYAML
- name: Check release manifest
run: |
python3 .obs/manifest-check.py --check
python3 .obs/manifest-check.py

51
.obs/manifest-check.py Executable file → Normal file
View File

@@ -1,15 +1,11 @@
#!/usr/bin/python3
import ruamel.yaml
import pathlib
import argparse
import yaml
import sys
yaml = ruamel.yaml.YAML()
def get_chart_version(chart_name: str) -> str:
with open(f"./{chart_name}-chart/Chart.yaml") as f:
chart = yaml.load(f)
chart = yaml.safe_load(f)
return chart["version"]
def get_charts(chart):
@@ -25,57 +21,22 @@ def get_charts(chart):
def get_charts_list():
with open("./release-manifest-image/release_manifest.yaml") as f:
manifest = yaml.load(f)
manifest = yaml.safe_load(f)
charts = {}
for chart in manifest["spec"]["components"]["workloads"]["helm"]:
charts.update(get_charts(chart))
return charts
def check_charts(fix: bool) -> bool:
def main():
print("Checking charts versions in release manifest")
success = True
charts = get_charts_list()
to_fix = {}
for chart in charts:
expected_version = get_chart_version(chart)
if expected_version != charts[chart]:
success = False
to_fix[f'%%CHART_REPO%%/%%CHART_PREFIX%%{chart}'] = expected_version
print(f"{chart}: Expected: {expected_version}, Got: {charts[chart]}")
if fix and not success:
fix_charts(to_fix)
return True
return success
def fix_charts(to_fix):
manifest_path = pathlib.Path("./release-manifest-image/release_manifest.yaml")
manifest = yaml.load(manifest_path)
yaml.indent(mapping=2, sequence=4, offset=2)
yaml.width = 4096
for chart_index, chart in enumerate(manifest["spec"]["components"]["workloads"]["helm"]):
changed = False
if chart["chart"] in to_fix.keys():
changed = True
chart["version"] = to_fix[chart["chart"]]
for subchart_index, subchart in enumerate(chart.get("addonCharts", [])):
if subchart["chart"] in to_fix.keys():
changed = True
subchart["version"] = to_fix[subchart["chart"]]
chart["addonCharts"][subchart_index] = subchart
for subchart_index, subchart in enumerate(chart.get("dependencyCharts", [])):
if subchart["chart"] in to_fix.keys():
changed = True
subchart["version"] = to_fix[subchart["chart"]]
chart["dependencyCharts"][subchart_index] = subchart
if changed:
manifest["spec"]["components"]["workloads"]["helm"][chart_index] = chart
yaml.dump(manifest, manifest_path)
def main():
print("Checking charts versions in release manifest")
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--check', action='store_true')
args = parser.parse_args()
if not check_charts(not args.check):
if not success:
sys.exit(1)
else:
print("All local charts in release manifest are using the right version")

View File

@@ -1,10 +0,0 @@
repos:
- repo: local
hooks:
- id: check-manifest
name: "Check release-manifest"
entry: .obs/manifest-check.py
language: python
additional_dependencies: ['ruamel.yaml']
pass_filenames: false
always_run: true

View File

@@ -1,5 +1,4 @@
Prefer: -libqpid-proton10 -python311-urllib3_1
Prefer: -cargo1.58 -cargo1.57 cargo1.88
Macros:
%__python3 /usr/bin/python3.11
@@ -106,7 +105,7 @@ BuildFlags: onlybuild:release-manifest-image
Patterntype: none
BuildEngine: podman
Prefer: sles-release
BuildFlags: dockerarg:SLE_VERSION=15.7
BuildFlags: dockerarg:SLE_VERSION=15.6
# Publish multi-arch container images only once all archs have been built
PublishFlags: archsync

6
_meta
View File

@@ -45,7 +45,7 @@
<path project="SUSE:SLFO:Products:SLES:16.0" repository="standard"/>
<path project="SUSE:SLFO:Main:Build" repository="standard"/>
{%- else %}
<path project="SUSE:CA" repository="SLE_15_SP7"/>
<path project="SUSE:CA" repository="SLE_15_SP6"/>
<path project="{{ project }}" repository="standard"/>
{%- endif %}
<arch>x86_64</arch>
@@ -56,8 +56,8 @@
{%- if release_project is defined and not for_release %}
<releasetarget project="{{ release_project }}" repository="standard" trigger="manual"/>
{%- endif %}
<path project="{{ ironic_base }}:2025.1" repository="15.7"/>
<path project="SUSE:SLE-15-SP7:Update" repository="standard"/>
<path project="{{ ironic_base }}:2024.2" repository="15.6"/>
<path project="SUSE:SLE-15-SP6:Update" repository="standard"/>
<arch>x86_64</arch>
<arch>aarch64</arch>
</repository>

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%.1
#!BuildTag: %%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%.1-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro

View File

@@ -1,5 +1,6 @@
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.2.1
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.2.1-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-base:$SLE_VERSION
MAINTAINER SUSE LLC (https://www.suse.com/)

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%endpoint-copier-operator:%%endpoint-copier-operator_version%%
#!BuildTag: %%IMG_PREFIX%%endpoint-copier-operator:%%endpoint-copier-operator_version%%-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: MIT
#!BuildTag: %%IMG_PREFIX%%frr:8.5.6
#!BuildTag: %%IMG_PREFIX%%frr:8.5.6-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%frr-k8s:v%%frr-k8s_version%%
#!BuildTag: %%IMG_PREFIX%%frr-k8s:v%%frr-k8s_version%%-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%ironic:29.0.4.0
#!BuildTag: %%IMG_PREFIX%%ironic:29.0.4.0-%RELEASE%
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.5
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.5-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
@@ -19,11 +20,11 @@ RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes
#!ArchExclusiveLine: x86_64
RUN if [ "$(uname -m)" = "x86_64" ];then \
zypper --installroot /installroot --non-interactive install --no-recommends syslinux python311-devel python311 python311-pip python311-sushy-oem-idrac python311-proliantutils python311-sushy python311-pyinotify python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi ipcalc ipmitool iproute2 bind-utils procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic; \
zypper --installroot /installroot --non-interactive install --no-recommends syslinux python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python311-pyinotify python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic openstack-ironic-inspector-api; \
fi
#!ArchExclusiveLine: aarch64
RUN if [ "$(uname -m)" = "aarch64" ];then \
zypper --installroot /installroot --non-interactive install --no-recommends python311-devel python311 python311-pip python311-sushy-oem-idrac python311-proliantutils python311-sushy python311-pyinotify python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi ipcalc ipmitool iproute2 bind-utils procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic; \
zypper --installroot /installroot --non-interactive install --no-recommends python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python311-pyinotify python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic openstack-ironic-inspector-api; \
fi
# DATABASE
@@ -41,8 +42,8 @@ LABEL org.opencontainers.image.description="Openstack Ironic based on the SLE Ba
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opencontainers.image.version="29.0.4.0"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:29.0.4.0-%RELEASE%"
LABEL org.opencontainers.image.version="26.1.2.5"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.5-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024"
@@ -70,9 +71,6 @@ COPY scripts/ /bin/
COPY configure-nonroot.sh /bin/
RUN set -euo pipefail; chmod +x /bin/configure-ironic.sh /bin/ironic-probe.sh /bin/rundatabase-upgrade /bin/rundnsmasq /bin/runhttpd /bin/runironic /bin/runlogwatch.sh /bin/runonline-data-migrations /bin/configure-nonroot.sh
RUN mv /bin/ironic-probe.sh /bin/ironic-readiness
RUN cp /bin/ironic-readiness /bin/ironic-liveness
COPY ironic-config/inspector.ipxe.j2 ironic-config/httpd-ironic-api.conf.j2 \
ironic-config/ipxe_config.template ironic-config/dnsmasq.conf.j2 \
/tmp/

View File

@@ -1,5 +1,4 @@
Listen 0.0.0.0:{{ env.IPXE_TLS_PORT }}
Listen [::]:{{ env.IPXE_TLS_PORT }}
Listen {{ env.IPXE_TLS_PORT }}
<VirtualHost *:{{ env.IPXE_TLS_PORT }}>
ErrorLog /dev/stderr

View File

@@ -1,5 +1,4 @@
Listen 0.0.0.0:{{ env.VMEDIA_TLS_PORT }}
Listen [::]:{{ env.VMEDIA_TLS_PORT }}
Listen {{ env.VMEDIA_TLS_PORT }}
<VirtualHost *:{{ env.VMEDIA_TLS_PORT }}>
ErrorLog /dev/stderr

View File

@@ -12,21 +12,11 @@
{% if env.LISTEN_ALL_INTERFACES | lower == "true" %}
Listen 0.0.0.0:{{ env.IRONIC_LISTEN_PORT }}
Listen [::]:{{ env.IRONIC_LISTEN_PORT }}
Listen {{ env.IRONIC_LISTEN_PORT }}
<VirtualHost *:{{ env.IRONIC_LISTEN_PORT }}>
{% else %}
{% if env.ENABLE_IPV4 %}
Listen {{ env.IRONIC_IP }}:{{ env.IRONIC_LISTEN_PORT }}
{% endif %}
{% if env.ENABLE_IPV6 %}
Listen [{{ env.IRONIC_IPV6 }}]:{{ env.IRONIC_LISTEN_PORT }}
{% endif %}
{% if env.IRONIC_URL_HOSTNAME is defined and env.IRONIC_URL_HOSTNAME|length %}
<VirtualHost {{ env.IRONIC_URL_HOSTNAME }}:{{ env.IRONIC_LISTEN_PORT }}>
{% else %}
<VirtualHost {% if env.ENABLE_IPV4 %}{{ env.IRONIC_IP }}:{{ env.IRONIC_LISTEN_PORT }}{% endif %} {% if env.ENABLE_IPV6 %}[{{ env.IRONIC_IPV6 }}]:{{ env.IRONIC_LISTEN_PORT }}{% endif %}>
{% endif %}
Listen {{ env.IRONIC_URL_HOST }}:{{ env.IRONIC_LISTEN_PORT }}
<VirtualHost {{ env.IRONIC_URL_HOST }}:{{ env.IRONIC_LISTEN_PORT }}>
{% endif %}
{% if env.IRONIC_PRIVATE_PORT == "unix" %}

View File

@@ -1,14 +1,8 @@
ServerRoot {{ env.HTTPD_DIR }}
{%- if env.LISTEN_ALL_INTERFACES | lower == "true" %}
Listen 0.0.0.0:{{ env.HTTP_PORT }}
Listen [::]:{{ env.HTTP_PORT }}
Listen {{ env.HTTP_PORT }}
{% else %}
{% if env.ENABLE_IPV4 %}
Listen {{ env.IRONIC_IP }}:{{ env.HTTP_PORT }}
{% endif %}
{% if env.ENABLE_IPV6 %}
Listen [{{ env.IRONIC_IPV6 }}]:{{ env.HTTP_PORT }}
{% endif %}
Listen {{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}
{% endif %}
Include /etc/httpd/conf.modules.d/*.conf
User ironic-suse

View File

@@ -5,6 +5,6 @@ echo In inspector.ipxe
imgfree
# NOTE(dtantsur): keep inspection kernel params in [mdns]params in
# ironic-inspector-image and configuration in configure-ironic.sh
kernel --timeout 60000 {{ env.IRONIC_HTTP_URL }}/images/ironic-python-agent-${buildarch}.kernel ipa-insecure={{ env.IPA_INSECURE }} ipa-inspection-collectors={{ env.IRONIC_IPA_COLLECTORS }} systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-enable-vlan-interfaces={{ env.IRONIC_ENABLE_VLAN_INTERFACES }} ipa-inspection-dhcp-all-interfaces=1 ipa-collect-lldp=1 {{ env.INSPECTOR_EXTRA_ARGS }} initrd=ironic-python-agent-${buildarch}.initramfs {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} || goto retry_boot
kernel --timeout 60000 {{ env.IRONIC_HTTP_URL }}/images/ironic-python-agent-${buildarch}.kernel ipa-insecure=1 ipa-inspection-collectors={{ env.IRONIC_IPA_COLLECTORS }} systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-enable-vlan-interfaces={{ env.IRONIC_ENABLE_VLAN_INTERFACES }} ipa-inspection-dhcp-all-interfaces=1 ipa-collect-lldp=1 {{ env.INSPECTOR_EXTRA_ARGS }} initrd=ironic-python-agent-${buildarch}.initramfs {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} || goto retry_boot
initrd --timeout 60000 {{ env.IRONIC_HTTP_URL }}/images/ironic-python-agent-${buildarch}.initramfs || goto retry_boot
boot

View File

@@ -25,13 +25,7 @@ rpc_transport = none
use_stderr = true
# NOTE(dtantsur): the default md5 is not compatible with FIPS mode
hash_ring_algorithm = sha256
{% if env.ENABLE_IPV4 %}
my_ip = {{ env.IRONIC_IP }}
{% endif %}
{% if env.ENABLE_IPV6 %}
my_ipv6 = {{ env.IRONIC_IPV6 }}
{% endif %}
host = {{ env.IRONIC_CONDUCTOR_HOST }}
tempdir = {{ env.IRONIC_TMP_DATA_DIR }}
@@ -71,7 +65,7 @@ port = {{ env.IRONIC_PRIVATE_PORT }}
{% endif %}
public_endpoint = {{ env.IRONIC_BASE_URL }}
{% else %}
host_ip = {{ env.IRONIC_HOST_IP }}
host_ip = {% if env.LISTEN_ALL_INTERFACES | lower == "true" %}::{% else %}{{ env.IRONIC_IP }}{% endif %}
port = {{ env.IRONIC_LISTEN_PORT }}
{% if env.IRONIC_TLS_SETUP == "true" %}
enable_ssl_api = true
@@ -187,7 +181,7 @@ cipher_suite_versions = 3,17
# containers are in host networking.
auth_strategy = http_basic
http_basic_auth_user_file = {{ env.IRONIC_RPC_HTPASSWD_FILE }}
host_ip = {{ env.IRONIC_HOST_IP }}
host_ip = {% if env.LISTEN_ALL_INTERFACES | lower == "true" %}::{% else %}{{ env.IRONIC_IP }}{% endif %}
{% if env.IRONIC_TLS_SETUP == "true" %}
use_ssl = true
cafile = {{ env.IRONIC_CACERT_FILE }}
@@ -207,7 +201,7 @@ images_path = /shared/html/tmp
instance_master_path = /shared/html/master_images
tftp_master_path = /shared/tftpboot/master_images
tftp_root = /shared/tftpboot
kernel_append_params = nofb nomodeset vga=normal ipa-insecure={{ env.IPA_INSECURE }} {% if env.ENABLE_FIPS_IPA %}fips={{ env.ENABLE_FIPS_IPA|trim }}{% endif %} {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} systemd.journald.forward_to_console=yes
kernel_append_params = nofb nomodeset vga=normal ipa-insecure=1 {% if env.ENABLE_FIPS_IPA %}fips={{ env.ENABLE_FIPS_IPA|trim }}{% endif %} {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} systemd.journald.forward_to_console=yes
# This makes networking boot templates generated even for nodes using local
# boot (the default), ensuring that they boot correctly even if they start
# netbooting for some reason (e.g. with the noop management interface).
@@ -220,14 +214,14 @@ ipxe_config_template = /tmp/ipxe_config.template
[redfish]
use_swift = false
kernel_append_params = nofb nomodeset vga=normal ipa-insecure={{ env.IPA_INSECURE }} {% if env.ENABLE_FIPS_IPA %}fips={{ env.ENABLE_FIPS_IPA|trim }}{% endif %} {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} systemd.journald.forward_to_console=yes
kernel_append_params = nofb nomodeset vga=normal ipa-insecure=1 {% if env.ENABLE_FIPS_IPA %}fips={{ env.ENABLE_FIPS_IPA|trim }}{% endif %} {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} systemd.journald.forward_to_console=yes
[ilo]
kernel_append_params = nofb nomodeset vga=normal ipa-insecure={{ env.IPA_INSECURE }} {% if env.ENABLE_FIPS_IPA %}fips={{ env.ENABLE_FIPS_IPA|trim }}{% endif %} {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} systemd.journald.forward_to_console=yes
kernel_append_params = nofb nomodeset vga=normal ipa-insecure=1 {% if env.ENABLE_FIPS_IPA %}fips={{ env.ENABLE_FIPS_IPA|trim }}{% endif %} {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} systemd.journald.forward_to_console=yes
use_web_server_for_images = true
[irmc]
kernel_append_params = nofb nomodeset vga=normal ipa-insecure={{ env.IPA_INSECURE }} {% if env.ENABLE_FIPS_IPA %}fips={{ env.ENABLE_FIPS_IPA|trim }}{% endif %} {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} systemd.journald.forward_to_console=yes
kernel_append_params = nofb nomodeset vga=normal ipa-insecure=1 {% if env.ENABLE_FIPS_IPA %}fips={{ env.ENABLE_FIPS_IPA|trim }}{% endif %} {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} systemd.journald.forward_to_console=yes
[service_catalog]
endpoint_override = {{ env.IRONIC_BASE_URL }}

View File

@@ -51,14 +51,6 @@ export IRONIC_IPA_COLLECTORS=${IRONIC_IPA_COLLECTORS:-default,logs}
wait_for_interface_or_ip
if [[ "$(echo "$LISTEN_ALL_INTERFACES" | tr '[:upper:]' '[:lower:]')" == "true" ]]; then
export IRONIC_HOST_IP="::"
elif [[ -n env.ENABLE_IPV6 ]]; then
export IRONIC_HOST_IP="$IRONIC_IPV6"
else
export IRONIC_HOST_IP="$IRONIC_IP"
fi
# Hostname to use for the current conductor instance.
export IRONIC_CONDUCTOR_HOST=${IRONIC_CONDUCTOR_HOST:-${IRONIC_URL_HOST}}
@@ -100,11 +92,4 @@ render_j2_config "/etc/ironic/ironic.conf.j2" \
configure_json_rpc_auth
# Make sure ironic traffic bypasses any proxies
export NO_PROXY="${NO_PROXY:-}"
if [[ -n "$IRONIC_IPV6" ]]; then
export NO_PROXY="${NO_PROXY},${IRONIC_IPV6}"
fi
if [[ -n "$IRONIC_IP" ]]; then
export NO_PROXY="${NO_PROXY},${IRONIC_IP}"
fi
export NO_PROXY="${NO_PROXY:-},$IRONIC_IP"

View File

@@ -5,11 +5,9 @@ set -euxo pipefail
# Export IRONIC_IP to avoid needing to lean on IRONIC_URL_HOST for consumption in
# e.g. dnsmasq configuration
export IRONIC_IP="${IRONIC_IP:-}"
export IRONIC_IPV6="${IRONIC_IPV6:-}"
PROVISIONING_INTERFACE="${PROVISIONING_INTERFACE:-}"
PROVISIONING_IP="${PROVISIONING_IP:-}"
PROVISIONING_MACS="${PROVISIONING_MACS:-}"
IRONIC_URL_HOSTNAME="${IRONIC_URL_HOSTNAME:-}"
IPXE_CUSTOM_FIRMWARE_DIR="${IPXE_CUSTOM_FIRMWARE_DIR:-/shared/custom_ipxe_firmware}"
CUSTOM_CONFIG_DIR="${CUSTOM_CONFIG_DIR:-/conf}"
CUSTOM_DATA_DIR="${CUSTOM_DATA_DIR:-/data}"
@@ -35,85 +33,6 @@ export LOCAL_DB_URI="sqlite:///${IRONIC_DB_DIR}/ironic.sqlite"
export IRONIC_USE_MARIADB=${IRONIC_USE_MARIADB:-false}
get_ip_of_hostname()
{
if [[ "$#" -ne 2 ]]; then
echo "${FUNCNAME}: two parameters required, $# provided" >&2
return 1
fi
case $2 in
4)
QUERY="a";;
6)
QUERY="aaaa";;
*)
echo "${FUNCNAME}: the second parameter should be [a|aaaa] for A and AAAA records"
return 1;;
esac
local HOSTNAME=$1
echo "$(nslookup -type=${QUERY} $HOSTNAME | tail -n2 | grep -w "Address:" | cut -d " " -f2)"
}
get_interface_of_ip()
{
local IP_VERS=""
if [[ "$#" -gt 2 ]]; then
echo "${FUNCNAME}: too many parameters" >&2
return 1
fi
if [[ "$#" -eq 2 ]]; then
case $2 in
4|6)
local IP_VERS="-${2}"
;;
*)
echo "${FUNCNAME}: the second parameter should be [4|6] (or missing for both)" >&2
return 2
;;
esac
fi
local IP_ADDR=$1
# Convert the address using ipcalc which strips out the subnet.
# For IPv6 addresses, this will give the short-form address
IP_ADDR="$(ipcalc "${IP_ADDR}" | grep "^Address:" | awk '{print $2}')"
echo "$(ip $IP_VERS -br addr show scope global | grep -i " ${IP_ADDR}/" | cut -f 1 -d ' ' | cut -f 1 -d '@')"
}
get_ip_of_interface()
{
local IP_VERS=""
if [[ "$#" -gt 2 ]]; then
echo "${FUNCNAME}: too many parameters" >&2
return 1
fi
if [[ "$#" -eq 2 ]]; then
case $2 in
4|6)
local IP_VERS="-${2}"
;;
*)
echo "${FUNCNAME}: the second parameter should be [4|6] (or missing for both)" >&2
return 2
;;
esac
fi
local IFACE=$1
echo "$(ip $IP_VERS -br addr show scope global up dev $IFACE | awk '{print $3}' | sed -e 's%/.*%%' | head -n 1)"
}
get_provisioning_interface()
{
if [[ -n "$PROVISIONING_INTERFACE" ]]; then
@@ -122,7 +41,13 @@ get_provisioning_interface()
return
fi
local interface=""
local interface="provisioning"
if [[ -n "${PROVISIONING_IP}" ]]; then
if ip -br addr show | grep -i " ${PROVISIONING_IP}/" &>/dev/null; then
interface="$(ip -br addr show | grep -i " ${PROVISIONING_IP}/" | cut -f 1 -d ' ' | cut -f 1 -d '@')"
fi
fi
for mac in ${PROVISIONING_MACS//,/ }; do
if ip -br link show up | grep -i "$mac" &>/dev/null; then
@@ -146,103 +71,32 @@ wait_for_interface_or_ip()
# available on an interface, otherwise we look at $PROVISIONING_INTERFACE
# for an IP
if [[ -n "${PROVISIONING_IP}" ]]; then
local IFACE_OF_IP=""
until [[ -n "$IFACE_OF_IP" ]]; do
echo "Waiting for ${PROVISIONING_IP} to be configured on an interface..."
IFACE_OF_IP="$(get_interface_of_ip $PROVISIONING_IP)"
# Convert the address using ipcalc which strips out the subnet.
# For IPv6 addresses, this will give the short-form address
IRONIC_IP="$(ipcalc "${PROVISIONING_IP}" | grep "^Address:" | awk '{print $2}')"
export IRONIC_IP
until grep -F " ${IRONIC_IP}/" <(ip -br addr show); do
echo "Waiting for ${IRONIC_IP} to be configured on an interface"
sleep 1
done
echo "Found $PROVISIONING_IP on interface \"${IFACE_OF_IP}\"!"
export PROVISIONING_INTERFACE="$IFACE_OF_IP"
# If the IP contains a colon, then it's an IPv6 address
if [[ "$PROVISIONING_IP" =~ .*:.* ]]; then
export IRONIC_IPV6="$PROVISIONING_IP"
else
export IRONIC_IP="$PROVISIONING_IP"
fi
elif [[ -n "${PROVISIONING_INTERFACE}" ]]; then
until [[ -n "$IRONIC_IPV6" ]] || [[ -n "$IRONIC_IP" ]]; do
echo "Waiting for ${PROVISIONING_INTERFACE} interface to be configured..."
export IRONIC_IPV6="$(get_ip_of_interface $PROVISIONING_INTERFACE 6)"
sleep 1
export IRONIC_IP="$(get_ip_of_interface $PROVISIONING_INTERFACE 4)"
sleep 1
done
if [[ -n "$IRONIC_IPV6" ]]; then
echo "Found $IRONIC_IPV6 on interface \"${PROVISIONING_INTERFACE}\"!"
fi
if [[ -n "$IRONIC_IP" ]]; then
echo "Found $IRONIC_IP on interface \"${PROVISIONING_INTERFACE}\"!"
fi
elif [[ -n "$IRONIC_URL_HOSTNAME" ]]; then
local IPV6_IFACE=""
local IPV4_IFACE=""
# we should get at least one IP address
until [[ -n "$IPV6_IFACE" ]] || [[ -n "$IPV4_IFACE" ]]; do
local IPV6_RECORD=""
local IPV4_RECORD=""
IPV6_RECORD="$(get_ip_of_hostname $IRONIC_URL_HOSTNAME 6)"
IPV4_RECORD="$(get_ip_of_hostname $IRONIC_URL_HOSTNAME 4)"
# We couldn't get any IP
if [[ -z "$IPV4_RECORD" ]] && [[ -z "$IPV6_RECORD" ]]; then
echo "${FUNCNAME}: no valid IP found for hostname $IRONIC_URL_HOSTNAME" >&2
return 1
fi
echo "Waiting for ${IPV6_RECORD} to be configured on an interface"
IPV6_IFACE="$(get_interface_of_ip $IPV6_RECORD 6)"
sleep 1
echo "Waiting for ${IPV4_RECORD} to be configured on an interface"
IPV4_IFACE="$(get_interface_of_ip $IPV4_RECORD 4)"
sleep 1
done
# Add some debugging output
if [[ -n "$IPV6_IFACE" ]]; then
echo "Found $IPV6_RECORD on interface \"${IPV6_IFACE}\"!"
export IRONIC_IPV6="$IPV6_RECORD"
fi
if [[ -n "$IPV4_IFACE" ]]; then
echo "Found $IPV4_RECORD on interface \"${IPV4_IFACE}\"!"
export IRONIC_IP="$IPV4_RECORD"
fi
# Make sure both IPs are asigned to the same interface
if [[ -n "$IPV6_IFACE" ]] && [[ -n "$IPV4_IFACE" ]] && [[ "$IPV6_IFACE" != "$IPV4_IFACE" ]]; then
echo "Warning, the IPv4 and IPv6 addresses from \"${HOSTNAME}\" are assigned to different " \
"interfaces (\"${IPV6_IFACE}\" and \"${IPV4_IFACE}\")" >&2
fi
else
echo "Cannot determine an interface or an IP for binding and creating URLs"
return 1
until [[ -n "$IRONIC_IP" ]]; do
echo "Waiting for ${PROVISIONING_INTERFACE} interface to be configured"
IRONIC_IP="$(ip -br add show scope global up dev "${PROVISIONING_INTERFACE}" | awk '{print $3}' | sed -e 's%/.*%%' | head -n 1)"
export IRONIC_IP
sleep 1
done
fi
# Define the URLs based on the what we have found,
# prioritize IPv6 for IRONIC_URL_HOST
if [[ -n "$IRONIC_IP" ]]; then
export ENABLE_IPV4=yes
# If the IP contains a colon, then it's an IPv6 address, and the HTTP
# host needs surrounding with brackets
if [[ "$IRONIC_IP" =~ .*:.* ]]; then
export IPV=6
export IRONIC_URL_HOST="[$IRONIC_IP]"
else
export IPV=4
export IRONIC_URL_HOST="$IRONIC_IP"
fi
if [[ -n "$IRONIC_IPV6" ]]; then
export ENABLE_IPV6=yes
export IRONIC_URL_HOST="[$IRONIC_IPV6]" # The HTTP host needs surrounding with brackets
fi
# Once determined if we have IPv4 and/or IPv6, override the hostname if provided
if [[ -n "$IRONIC_URL_HOSTNAME" ]]; then
IRONIC_URL_HOST=$IRONIC_URL_HOSTNAME
fi
# Avoid having to construct full URL multiple times while allowing
# the override of IRONIC_HTTP_URL for environments in which IRONIC_IP

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%kube-rbac-proxy:%%kube-rbac-proxy_version%%
#!BuildTag: %%IMG_PREFIX%%kube-rbac-proxy:%%kube-rbac-proxy_version%%-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%kubectl:1.32.4
#!BuildTag: %%IMG_PREFIX%%kubectl:1.32.4-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro

View File

@@ -1,7 +1,7 @@
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.10_up0.12.0
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.10_up0.12.0-%RELEASE%
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.9_up0.11.7
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.9_up0.11.7-%RELEASE%
apiVersion: v2
appVersion: 0.12.0
appVersion: 0.11.7
dependencies:
- alias: metal3-baremetal-operator
name: baremetal-operator
@@ -20,9 +20,9 @@ dependencies:
condition: global.enable_metal3_media_server
name: media
repository: file://./charts/media
version: 0.6.4
version: 0.6.3
description: A Helm chart that installs all of the dependencies needed for Metal3
icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg
name: metal3
type: application
version: "%%CHART_MAJOR%%.0.10+up0.12.0"
version: "%%CHART_MAJOR%%.0.9+up0.11.7"

View File

@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: 29.0.4
appVersion: 26.1.2
description: A Helm chart for Ironic, used by Metal3
name: ironic
type: application

View File

@@ -56,7 +56,7 @@ images:
ironic:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic
pullPolicy: IfNotPresent
tag: 29.0.4.0
tag: 26.1.2.5
ironicIPADownloader:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader
pullPolicy: IfNotPresent

View File

@@ -3,4 +3,4 @@ appVersion: 1.16.0
description: A Helm chart for Media, used by Metal3
name: media
type: application
version: 0.6.4
version: 0.6.3

View File

@@ -24,7 +24,7 @@ replicaCount: 1
image:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic
pullPolicy: IfNotPresent
tag: 29.0.4.0
tag: 26.1.2.5
imagePullSecrets: []
nameOverride: ""

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%metallb-controller:v%%metallb-controller_version%%
#!BuildTag: %%IMG_PREFIX%%metallb-controller:v%%metallb-controller_version%%-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%metallb-speaker:v%%metallb-speaker_version%%
#!BuildTag: %%IMG_PREFIX%%metallb-speaker:v%%metallb-speaker_version%%-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro

View File

@@ -1,10 +1,10 @@
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.5_up0.21.0
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.5_up0.21.0-%RELEASE%
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.4_up0.20.0
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.4_up0.20.0-%RELEASE%
apiVersion: v2
appVersion: 0.21.0
appVersion: 0.20.0
description: Rancher Turtles utility chart for airgap scenarios
home: https://github.com/rancher/turtles/
icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg
name: rancher-turtles-airgap-resources
type: application
version: "%%CHART_MAJOR%%.0.5+up0.21.0"
version: "%%CHART_MAJOR%%.0.4+up0.20.0"

File diff suppressed because one or more lines are too long

View File

@@ -656,8 +656,12 @@ data:
- list
- get
- watch
- apiGroups:
- ""
resources:
- namespaces
verbs:
- create
- patch
- apiGroups:
- events.k8s.io
resources:
@@ -813,7 +817,7 @@ data:
control-plane: controller-manager
spec:
containers:
- image: ghcr.io/rancher-sandbox/cluster-api-addon-provider-fleet:v0.11.0
- image: ghcr.io/rancher-sandbox/cluster-api-addon-provider-fleet:v0.10.0
imagePullPolicy: IfNotPresent
name: manager
ports:
@@ -835,7 +839,7 @@ data:
memory: 100Mi
- args:
- --helm-install
image: ghcr.io/rancher-sandbox/cluster-api-addon-provider-fleet:v0.11.0
image: ghcr.io/rancher-sandbox/cluster-api-addon-provider-fleet:v0.10.0
name: helm-manager
resources:
limits:
@@ -887,13 +891,10 @@ data:
- major: 0
minor: 10
contract: v1beta1
- major: 0
minor: 11
contract: v1beta1
kind: ConfigMap
metadata:
creationTimestamp: null
name: v0.11.0
name: v0.10.0
namespace: rancher-turtles-system
labels:
provider-components: fleet

View File

@@ -3734,7 +3734,7 @@ data:
envFrom:
- configMapRef:
name: capm3-capm3fasttrack-configmap
image: registry.rancher.com/rancher/cluster-api-provider-metal3:v1.9.4
image: registry.rancher.com/rancher/cluster-api-provider-metal3:v1.9.3
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
@@ -3820,7 +3820,7 @@ data:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: quay.io/metal3-io/ip-address-manager:v1.9.5
image: quay.io/metal3-io/ip-address-manager:v1.9.4
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
@@ -4524,7 +4524,7 @@ data:
kind: ConfigMap
metadata:
creationTimestamp: null
name: v1.9.4
name: v1.9.3
namespace: capm3-system
labels:
provider-components: metal3

View File

@@ -985,9 +985,6 @@ data:
- path
type: object
type: array
gzipUserData:
description: GzipUserData specifies if the user data should be gzipped.
type: boolean
postRKE2Commands:
description: PostRKE2Commands specifies extra commands to run after
rke2 setup runs.
@@ -2167,10 +2164,6 @@ data:
- path
type: object
type: array
gzipUserData:
description: GzipUserData specifies if the user data should
be gzipped.
type: boolean
postRKE2Commands:
description: PostRKE2Commands specifies extra commands to
run after rke2 setup runs.
@@ -2532,12 +2525,11 @@ data:
- --leader-elect
- --diagnostics-address=${CAPRKE2_DIAGNOSTICS_ADDRESS:=:8443}
- --insecure-diagnostics=${CAPRKE2_INSECURE_DIAGNOSTICS:=false}
- --feature-gates=MachinePool=${EXP_MACHINE_POOL:=true}
- --v=${CAPRKE2_DEBUG_LEVEL:=0}
- --feature-gates=MachinePool=${EXP_MACHINE_POOL:=true},ClusterTopology=${CLUSTER_TOPOLOGY:=true}
- --concurrency=${CONCURRENCY_NUMBER:=10}
command:
- /manager
image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.18.0
image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.16.1
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
@@ -2772,16 +2764,10 @@ data:
- major: 0
minor: 16
contract: v1beta1
- major: 0
minor: 17
contract: v1beta1
- major: 0
minor: 18
contract: v1beta1
kind: ConfigMap
metadata:
creationTimestamp: null
name: v0.18.0
name: v0.16.1
namespace: rke2-bootstrap-system
labels:
provider-components: rke2-bootstrap

View File

@@ -1624,9 +1624,6 @@ data:
- path
type: object
type: array
gzipUserData:
description: GzipUserData specifies if the user data should be gzipped.
type: boolean
infrastructureRef:
description: |-
InfrastructureRef is a required reference to a custom resource
@@ -2437,51 +2434,6 @@ data:
if value is false, ETCD metrics will NOT be exposed
type: boolean
type: object
externalDatastoreSecret:
description: |-
ExternalDatastoreSecret is a reference to a Secret that contains configuration about connecting to an external datastore.
The secret must contain a key named "endpoint" that contains the connection string for the external datastore.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: |-
If referring to a piece of an object instead of an entire object, this string
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within a pod, this would take on a value like:
"spec.containers{name}" (where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object.
type: string
kind:
description: |-
Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
namespace:
description: |-
Namespace of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
type: string
resourceVersion:
description: |-
Specific resourceVersion to which this reference is made, if any.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
type: string
uid:
description: |-
UID of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
type: string
type: object
x-kubernetes-map-type: atomic
kubeAPIServer:
description: KubeAPIServer defines optional custom configuration
of the Kube API Server.
@@ -3173,10 +3125,6 @@ data:
- path
type: object
type: array
gzipUserData:
description: GzipUserData specifies if the user data should
be gzipped.
type: boolean
infrastructureRef:
description: |-
InfrastructureRef is a required reference to a custom resource
@@ -4002,51 +3950,6 @@ data:
if value is false, ETCD metrics will NOT be exposed
type: boolean
type: object
externalDatastoreSecret:
description: |-
ExternalDatastoreSecret is a reference to a Secret that contains configuration about connecting to an external datastore.
The secret must contain a key named "endpoint" that contains the connection string for the external datastore.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: |-
If referring to a piece of an object instead of an entire object, this string
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within a pod, this would take on a value like:
"spec.containers{name}" (where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object.
type: string
kind:
description: |-
Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
namespace:
description: |-
Namespace of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
type: string
resourceVersion:
description: |-
Specific resourceVersion to which this reference is made, if any.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
type: string
uid:
description: |-
UID of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
type: string
type: object
x-kubernetes-map-type: atomic
kubeAPIServer:
description: KubeAPIServer defines optional custom configuration
of the Kube API Server.
@@ -4543,7 +4446,6 @@ data:
- --diagnostics-address=${CAPRKE2_DIAGNOSTICS_ADDRESS:=:8443}
- --insecure-diagnostics=${CAPRKE2_INSECURE_DIAGNOSTICS:=false}
- --v=${CAPRKE2_DEBUG_LEVEL:=0}
- --concurrency=${CONCURRENCY_NUMBER:=10}
command:
- /manager
env:
@@ -4559,7 +4461,7 @@ data:
valueFrom:
fieldRef:
fieldPath: metadata.uid
image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.18.0
image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.16.1
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
@@ -4801,16 +4703,10 @@ data:
- major: 0
minor: 16
contract: v1beta1
- major: 0
minor: 17
contract: v1beta1
- major: 0
minor: 18
contract: v1beta1
kind: ConfigMap
metadata:
creationTimestamp: null
name: v0.18.0
name: v0.16.1
namespace: rke2-control-plane-system
labels:
provider-components: rke2-control-plane

View File

@@ -3,4 +3,4 @@ dependencies:
repository: https://kubernetes-sigs.github.io/cluster-api-operator
version: 0.18.1
digest: sha256:7ad59ce8888c32723b4ef1ae5f334fdff00a8aba87e6f1de76d605f134bff354
generated: "2025-06-30T13:10:01.066923702Z"
generated: "2025-05-29T09:13:16.863770955Z"

View File

@@ -1,5 +1,5 @@
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.5_up0.21.0
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.5_up0.21.0-%RELEASE%
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.4_up0.20.0
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.4_up0.20.0-%RELEASE%
annotations:
catalog.cattle.io/certified: rancher
catalog.cattle.io/display-name: Rancher Turtles - the Cluster API Extension
@@ -12,12 +12,12 @@ annotations:
catalog.cattle.io/scope: management
catalog.cattle.io/type: cluster-tool
apiVersion: v2
appVersion: 0.21.0
appVersion: 0.20.0
dependencies:
- condition: cluster-api-operator.enabled
name: cluster-api-operator
repository: file://./charts/cluster-api-operator
version: 0.18.1
version: 0.17.0
description: Rancher Turtles is an extension to Rancher that brings full Cluster API
integration to Rancher.
home: https://github.com/rancher/turtles/
@@ -29,4 +29,4 @@ keywords:
- provisioning
name: rancher-turtles
type: application
version: "%%CHART_MAJOR%%.0.5+up0.21.0"
version: "%%CHART_MAJOR%%.0.4+up0.20.0"

View File

@@ -1,4 +1,4 @@
## Changes since examples/v0.21.0
## Changes since v0.20.0-rc.0
---
## :chart_with_upwards_trend: Overview

View File

@@ -1,6 +1,6 @@
apiVersion: v2
appVersion: 0.18.1
appVersion: 0.17.0
description: Cluster API Operator
name: cluster-api-operator
type: application
version: 0.18.1
version: 0.17.0

View File

@@ -26,10 +26,8 @@ apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $addonNamespace }}
---
@@ -39,10 +37,8 @@ metadata:
name: {{ $addonName }}
namespace: {{ $addonNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $addonVersion $.Values.secretName }}
spec:

View File

@@ -26,11 +26,8 @@ apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $bootstrapNamespace }}
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
@@ -39,11 +36,8 @@ metadata:
name: {{ $bootstrapName }}
namespace: {{ $bootstrapNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $bootstrapVersion $.Values.configSecret.name }}
spec:
{{- end}}

View File

@@ -26,11 +26,8 @@ apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $controlPlaneNamespace }}
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
@@ -39,11 +36,8 @@ metadata:
name: {{ $controlPlaneName }}
namespace: {{ $controlPlaneNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $controlPlaneVersion $.Values.configSecret.name $.Values.manager }}
spec:
{{- end}}

View File

@@ -1,4 +1,4 @@
{{- if or .Values.addon .Values.bootstrap .Values.controlPlane .Values.infrastructure .Values.ipam }}
{{- if or .Values.addon .Values.bootstrap .Values.controlPlane .Values.infrastructure }}
# Deploy core components if not specified
{{- if not .Values.core }}
---
@@ -6,11 +6,8 @@ apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: capi-system
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
@@ -19,11 +16,8 @@ metadata:
name: cluster-api
namespace: capi-system
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- with .Values.configSecret }}
spec:
configSecret:
@@ -34,3 +28,4 @@ spec:
{{- end }}
{{- end }}
{{- end }}

View File

@@ -25,11 +25,8 @@ apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $coreNamespace }}
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
@@ -38,10 +35,8 @@ metadata:
name: {{ $coreName }}
namespace: {{ $coreNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $coreVersion $.Values.configSecret.name $.Values.manager }}
spec:
@@ -50,8 +45,8 @@ spec:
version: {{ $coreVersion }}
{{- end }}
{{- if $.Values.manager }}
{{- if and $.Values.manager.featureGates $.Values.manager.featureGates.core }}
manager:
{{- if and $.Values.manager.featureGates $.Values.manager.featureGates.core }}
featureGates:
{{- range $key, $value := $.Values.manager.featureGates.core }}
{{ $key }}: {{ $value }}

View File

@@ -7,10 +7,8 @@ apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: capi-kubeadm-bootstrap-system
---
@@ -20,10 +18,8 @@ metadata:
name: kubeadm
namespace: capi-kubeadm-bootstrap-system
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- with .Values.configSecret }}
spec:
@@ -41,10 +37,8 @@ apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: capi-kubeadm-control-plane-system
---
@@ -54,16 +48,14 @@ metadata:
name: kubeadm
namespace: capi-kubeadm-control-plane-system
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- with .Values.configSecret }}
spec:
{{- if $.Values.manager }}
{{- if and $.Values.manager.featureGates $.Values.manager.featureGates.kubeadm }}
manager:
{{- if and $.Values.manager.featureGates $.Values.manager.featureGates.kubeadm }}
featureGates:
{{- range $key, $value := $.Values.manager.featureGates.kubeadm }}
{{ $key }}: {{ $value }}

View File

@@ -26,10 +26,8 @@ apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $infrastructureNamespace }}
---
@@ -39,10 +37,8 @@ metadata:
name: {{ $infrastructureName }}
namespace: {{ $infrastructureNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $infrastructureVersion $.Values.configSecret.name $.Values.manager $.Values.additionalDeployments }}
spec:
@@ -51,8 +47,8 @@ spec:
version: {{ $infrastructureVersion }}
{{- end }}
{{- if $.Values.manager }}
{{- if and (kindIs "map" $.Values.manager.featureGates) (hasKey $.Values.manager.featureGates $infrastructureName) }}
manager:
{{- if and (kindIs "map" $.Values.manager.featureGates) (hasKey $.Values.manager.featureGates $infrastructureName) }}
{{- range $key, $value := $.Values.manager.featureGates }}
{{- if eq $key $infrastructureName }}
featureGates:

View File

@@ -26,10 +26,8 @@ apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $ipamNamespace }}
---
@@ -39,10 +37,8 @@ metadata:
name: {{ $ipamName }}
namespace: {{ $ipamNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $ipamVersion $.Values.configSecret.name $.Values.manager $.Values.additionalDeployments }}
spec:
@@ -51,8 +47,8 @@ spec:
version: {{ $ipamVersion }}
{{- end }}
{{- if $.Values.manager }}
{{- if and (kindIs "map" $.Values.manager.featureGates) (hasKey $.Values.manager.featureGates $ipamName) }}
manager:
{{- if and (kindIs "map" $.Values.manager.featureGates) (hasKey $.Values.manager.featureGates $ipamName) }}
{{- range $key, $value := $.Values.manager.featureGates }}
{{- if eq $key $ipamName }}
featureGates:

View File

@@ -21,7 +21,7 @@ leaderElection:
image:
manager:
repository: registry.k8s.io/capi-operator/cluster-api-operator
tag: v0.18.1
tag: v0.17.0
pullPolicy: IfNotPresent
env:
manager: []
@@ -69,4 +69,3 @@ volumeMounts:
- mountPath: /tmp/k8s-webhook-server/serving-certs
name: cert
readOnly: true
enableHelmHook: true

View File

@@ -36,7 +36,7 @@ questions:
label: Enable Agent TLS Mode
group: "Rancher Turtles Features Settings"
- variable: rancherTurtles.kubectlImage
default: "registry.suse.com/edge/3.3/kubectl:1.32.4"
default: "registry.suse.com/edge/3.2/kubectl:1.32.4"
description: "Specify the image to use when running kubectl in jobs."
type: string
label: Kubectl Image

View File

@@ -9,8 +9,8 @@ turtlesUI:
rancherTurtles:
# image: registry.rancher.com/rancher/rancher/turtles
image: registry.rancher.com/rancher/rancher/turtles
# imageVersion: v0.21.0
imageVersion: v0.21.0
# imageVersion: v0.20.0
imageVersion: v0.20.0
# imagePullPolicy: IfNotPresent
imagePullPolicy: IfNotPresent
# namespace: Select namespace for Turtles to run.
@@ -31,8 +31,8 @@ rancherTurtles:
enabled: false
# image: registry.rancher.com/rancher/rancher/turtles
image: registry.rancher.com/rancher/rancher/turtles
# imageVersion: v0.21.0
imageVersion: v0.21.0
# imageVersion: v0.20.0
imageVersion: v0.20.0
# imagePullPolicy: IfNotPresent
imagePullPolicy: IfNotPresent
# etcdBackupRestore: Alpha feature. Manages etcd backup/restore.
@@ -49,8 +49,8 @@ rancherTurtles:
enabled: false
# image: registry.rancher.com/rancher/rancher/turtles
image: registry.rancher.com/rancher/rancher/turtles
# imageVersion: v0.21.0
imageVersion: v0.21.0
# imageVersion: v0.20.0
imageVersion: v0.20.0
# imagePullPolicy: IfNotPresent
imagePullPolicy: IfNotPresent
@@ -127,7 +127,7 @@ cluster-api-operator:
# enabled: Turn on or off.
enabled: true
# version: RKE2 version.
version: "v0.18.0"
version: "v0.16.1"
# bootstrap: RKE2 bootstrap provider.
bootstrap:
# namespace: Bootstrap namespace.
@@ -154,10 +154,10 @@ cluster-api-operator:
selector: ""
metal3:
enabled: true
version: "v1.9.4"
version: "v1.9.3"
infrastructure:
namespace: capm3-system
imageUrl: "registry.suse.com/rancher/cluster-api-provider-metal3:v1.9.4"
imageUrl: "registry.suse.com/rancher/cluster-api-provider-metal3:v1.9.3"
fetchConfig:
url: ""
selector: ""

View File

@@ -20,4 +20,4 @@ LABEL com.suse.image-type="release-manifest"
LABEL com.suse.release-stage="released"
# endlabelprefix
COPY release_manifest.yaml release_images.yaml ./
COPY release_manifest.yaml release_manifest.yaml

View File

@@ -2,7 +2,6 @@
<service mode="buildtime" name="kiwi_metainfo_helper"/>
<service name="replace_using_env" mode="buildtime">
<param name="file">Dockerfile</param>
<param name="file">release_images.yaml</param>
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
<param name="var">IMG_PREFIX</param>
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %manifest_repo)</param>

View File

@@ -1,64 +0,0 @@
images:
- name: quay.io/jetstack/cert-manager-cainjector:v1.14.2
- name: quay.io/jetstack/cert-manager-controller:v1.14.2
- name: quay.io/jetstack/cert-manager-webhook:v1.14.2
- name: registry.rancher.com/rancher/hardened-cluster-autoscaler:v1.10.2-build20250507
- name: registry.rancher.com/rancher/hardened-cni-plugins:v1.7.1-build20250509
- name: registry.rancher.com/rancher/hardened-coredns:v1.12.1-build20250507
- name: registry.rancher.com/rancher/hardened-etcd:v3.5.21-k3s1-build20250411
- name: registry.rancher.com/rancher/hardened-k8s-metrics-server:v0.7.2-build20250507
- name: registry.rancher.com/rancher/hardened-kubernetes:v1.32.5-rke2r1-build20250515
- name: registry.rancher.com/rancher/hardened-multus-cni:v4.2.0-build20250326
- name: registry.rancher.com/rancher/klipper-helm:v0.9.5-build20250306
- name: registry.rancher.com/rancher/mirrored-cilium-cilium:v1.17.3
- name: registry.rancher.com/rancher/mirrored-cilium-operator-generic:v1.17.3
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-attacher:v4.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-node-driver-registrar:v2.13.0
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-provisioner:v5.2.0
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-resizer:v1.13.2
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-snapshotter:v8.2.0
- name: registry.rancher.com/rancher/mirrored-longhornio-livenessprobe:v2.15.0
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-engine:v1.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-instance-manager:v1.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-manager:v1.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-share-manager:v1.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-ui:v1.8.1
- name: registry.rancher.com/rancher/mirrored-sig-storage-snapshot-controller:v8.2.0
- name: registry.rancher.com/rancher/neuvector-compliance-config:1.0.4
- name: registry.rancher.com/rancher/neuvector-controller:5.4.3
- name: registry.rancher.com/rancher/neuvector-enforcer:5.4.3
- name: registry.rancher.com/rancher/nginx-ingress-controller:v1.12.1-hardened6
- name: registry.rancher.com/rancher/rke2-cloud-provider:v1.32.0-rc3.0.20241220224140-68fbd1a6b543-build20250101
- name: %%IMG_REPO%%/%%IMG_PREFIX%%baremetal-operator:0.9.1.1
- name: %%IMG_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator:0.3.0
- name: %%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.8
- name: %%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.5
- name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller:v0.14.9
- name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker:v0.14.9
- name: %%IMG_REPO%%/%%IMG_PREFIX%%upgrade-controller:0.1.1
- name: registry.rancher.com/rancher/cluster-api-operator:v0.17.0
- name: registry.rancher.com/rancher/fleet-agent:v0.12.3
- name: registry.rancher.com/rancher/fleet:v0.12.3
- name: registry.rancher.com/rancher/hardened-node-feature-discovery:v0.15.7-build20250425
- name: registry.rancher.com/rancher/rancher-webhook:v0.7.2
- name: registry.rancher.com/rancher/rancher/turtles:v0.20.0
- name: registry.rancher.com/rancher/rancher:v2.11.2
- name: registry.rancher.com/rancher/shell:v0.4.1
- name: registry.rancher.com/rancher/system-upgrade-controller:v0.15.2
- name: registry.suse.com/rancher/cluster-api-addon-provider-fleet:v0.10.0
- name: registry.suse.com/rancher/cluster-api-controller:v1.9.5
- name: registry.suse.com/rancher/cluster-api-provider-metal3:v1.9.3
- name: registry.suse.com/rancher/cluster-api-provider-rke2-bootstrap:v0.16.1
- name: registry.suse.com/rancher/cluster-api-provider-rke2-controlplane:v0.16.1
- name: registry.suse.com/rancher/elemental-operator:1.6.8
- name: registry.suse.com/rancher/hardened-sriov-network-operator:v1.5.0-build20250425
- name: registry.suse.com/rancher/ip-address-manager:v1.9.4
- name: registry.suse.com/suse/sles/15.6/cdi-apiserver:1.61.0-150600.3.12.1
- name: registry.suse.com/suse/sles/15.6/cdi-controller:1.61.0-150600.3.12.1
- name: registry.suse.com/suse/sles/15.6/cdi-operator:1.61.0-150600.3.12.1
- name: registry.suse.com/suse/sles/15.6/cdi-uploadproxy:1.61.0-150600.3.12.1
- name: registry.suse.com/suse/sles/15.6/virt-api:1.4.0-150600.5.15.1
- name: registry.suse.com/suse/sles/15.6/virt-controller:1.4.0-150600.5.15.1
- name: registry.suse.com/suse/sles/15.6/virt-handler:1.4.0-150600.5.15.1
- name: registry.suse.com/suse/sles/15.6/virt-launcher:1.4.0-150600.5.15.1
- name: registry.suse.com/suse/sles/15.6/virt-operator:1.4.0-150600.5.15.1

View File

@@ -9,81 +9,81 @@ spec:
k3s:
version: v1.32.4+k3s1
coreComponents:
- name: traefik-crd
version: 34.2.1+up34.2.0
type: HelmChart
- name: traefik
version: 34.2.1+up34.2.0
type: HelmChart
- name: traefik-crd
version: 34.2.1+up34.2.0
type: HelmChart
- name: traefik
version: 34.2.1+up34.2.0
type: HelmChart
- name: local-path-provisioner
containers:
- name: local-path-provisioner
containers:
- name: local-path-provisioner
image: rancher/local-path-provisioner:v0.0.31
type: Deployment
image: rancher/local-path-provisioner:v0.0.31
type: Deployment
- name: coredns
containers:
- name: coredns
containers:
- name: coredns
image: rancher/mirrored-coredns-coredns:1.12.1
type: Deployment
image: rancher/mirrored-coredns-coredns:1.12.1
type: Deployment
- name: metrics-server
containers:
- name: metrics-server
containers:
- name: metrics-server
image: rancher/mirrored-metrics-server:v0.7.2
type: Deployment
image: rancher/mirrored-metrics-server:v0.7.2
type: Deployment
rke2:
version: v1.32.4+rke2r1
coreComponents:
- name: rke2-cilium
version: 1.17.300
type: HelmChart
- name: rke2-canal
version: v3.29.3-build2025040801
type: HelmChart
- name: rke2-calico-crd
version: v3.29.101
type: HelmChart
- name: rke2-calico
version: v3.29.300
type: HelmChart
- name: rke2-coredns
version: 1.39.201
type: HelmChart
- name: rke2-ingress-nginx
version: 4.12.101
type: HelmChart
- name: rke2-metrics-server
version: 3.12.200
type: HelmChart
- name: rancher-vsphere-csi
version: 3.3.1-rancher900
type: HelmChart
- name: rancher-vsphere-cpi
version: 1.10.000
type: HelmChart
- name: harvester-cloud-provider
version: 0.2.900
type: HelmChart
- name: harvester-csi-driver
version: 0.1.2300
type: HelmChart
- name: rke2-snapshot-controller-crd
version: 4.0.002
type: HelmChart
- name: rke2-snapshot-controller
version: 4.0.002
type: HelmChart
# Deprecated this empty chart addon can be removed in v1.34
- name: rke2-snapshot-validation-webhook
version: 0.0.0
type: HelmChart
- name: rke2-cilium
version: 1.17.300
type: HelmChart
- name: rke2-canal
version: v3.29.3-build2025040801
type: HelmChart
- name: rke2-calico-crd
version: v3.29.101
type: HelmChart
- name: rke2-calico
version: v3.29.300
type: HelmChart
- name: rke2-coredns
version: 1.39.201
type: HelmChart
- name: rke2-ingress-nginx
version: 4.12.101
type: HelmChart
- name: rke2-metrics-server
version: 3.12.200
type: HelmChart
- name: rancher-vsphere-csi
version: 3.3.1-rancher900
type: HelmChart
- name: rancher-vsphere-cpi
version: 1.10.000
type: HelmChart
- name: harvester-cloud-provider
version: 0.2.900
type: HelmChart
- name: harvester-csi-driver
version: 0.1.2300
type: HelmChart
- name: rke2-snapshot-controller-crd
version: 4.0.002
type: HelmChart
- name: rke2-snapshot-controller
version: 4.0.002
type: HelmChart
# Deprecated this empty chart addon can be removed in v1.34
- name: rke2-snapshot-validation-webhook
version: 0.0.0
type: HelmChart
operatingSystem:
version: '6.1'
zypperID: SL-Micro
cpeScheme: cpe:/o:suse:sl-micro:6.1
prettyName: SUSE Linux Micro 6.1
version: "6.1"
zypperID: "SL-Micro"
cpeScheme: "cpe:/o:suse:sl-micro:6.1"
prettyName: "SUSE Linux Micro 6.1"
supportedArchs:
- x86_64
- aarch64
- "x86_64"
- "aarch64"
workloads:
helm:
- prettyName: Rancher
@@ -106,20 +106,20 @@ spec:
repository: https://charts.rancher.io
- prettyName: MetalLB
releaseName: metallb
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%metallb'
version: '%%CHART_MAJOR%%.0.0+up0.14.9'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%metallb"
version: "%%CHART_MAJOR%%.0.0+up0.14.9"
- prettyName: CDI
releaseName: cdi
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%cdi'
version: '%%CHART_MAJOR%%.0.0+up0.5.0'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%cdi"
version: "%%CHART_MAJOR%%.0.0+up0.5.0"
- prettyName: KubeVirt
releaseName: kubevirt
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%kubevirt'
version: '%%CHART_MAJOR%%.0.0+up0.5.0'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%kubevirt"
version: "%%CHART_MAJOR%%.0.0+up0.5.0"
addonCharts:
- releaseName: kubevirt-dashboard-extension
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%kubevirt-dashboard-extension'
version: '%%CHART_MAJOR%%.0.2+up1.3.2'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%kubevirt-dashboard-extension"
version: "%%CHART_MAJOR%%.0.2+up1.3.2"
- prettyName: NeuVector
releaseName: neuvector
chart: neuvector
@@ -137,8 +137,8 @@ spec:
version: 2.1.3
- prettyName: EndpointCopierOperator
releaseName: endpoint-copier-operator
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%endpoint-copier-operator'
version: '%%CHART_MAJOR%%.0.1+up0.3.0'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%endpoint-copier-operator"
version: "%%CHART_MAJOR%%.0.1+up0.3.0"
- prettyName: Elemental
releaseName: elemental-operator
chart: oci://registry.suse.com/rancher/elemental-operator-chart
@@ -154,29 +154,25 @@ spec:
version: 3.0.0
- prettyName: SRIOV
releaseName: sriov-network-operator
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%sriov-network-operator'
version: '%%CHART_MAJOR%%.0.2+up1.5.0'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%sriov-network-operator"
version: "%%CHART_MAJOR%%.0.2+up1.5.0"
dependencyCharts:
- releaseName: sriov-crd
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%sriov-crd'
version: '%%CHART_MAJOR%%.0.2+up1.5.0'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%sriov-crd"
version: "%%CHART_MAJOR%%.0.2+up1.5.0"
- prettyName: Akri
releaseName: akri
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%akri'
version: '%%CHART_MAJOR%%.0.0+up0.12.20'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%akri"
version: "%%CHART_MAJOR%%.0.0+up0.12.20"
addonCharts:
- releaseName: akri-dashboard-extension
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%akri-dashboard-extension'
version: '%%CHART_MAJOR%%.0.2+up1.3.1'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%akri-dashboard-extension"
version: "%%CHART_MAJOR%%.0.2+up1.3.1"
- prettyName: Metal3
releaseName: metal3
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%metal3'
version: '%%CHART_MAJOR%%.0.10+up0.12.0'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%metal3"
version: "%%CHART_MAJOR%%.0.9+up0.11.7"
- prettyName: RancherTurtles
releaseName: rancher-turtles
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%rancher-turtles'
version: '%%CHART_MAJOR%%.0.5+up0.21.0'
- prettyName: RancherTurtlesAirgapResources
releaseName: rancher-turtles-airgap-resources
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%rancher-turtles-airgap-resources'
version: '%%CHART_MAJOR%%.0.5+up0.21.0'
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%rancher-turtles"
version: "%%CHART_MAJOR%%.0.4+up0.20.0"

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%upgrade-controller:0.1.1
#!BuildTag: %%IMG_PREFIX%%upgrade-controller:0.1.1-%RELEASE%
#!BuildVersion: 15.6
ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro