Compare commits

..

21 Commits
main ... 3.2

Author SHA256 Message Date
bf90cfaf79 Merge remote-tracking branch 'upstream/3.2' into 3.2 2024-12-06 13:20:40 +02:00
af59834eaf Merge pull request '[3.2] Update kubevirt-dashboard-extension-chart to v1.2.1' (#50) from jtomasek/Factory:kubevirt-extension-3.2-bkprt into 3.2
Reviewed-on: #50
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2024-12-06 11:03:10 +01:00
5ff222b69b Merge pull request '[3.2] Update akri-dashboard-extension-chart to v1.2.1' (#51) from jtomasek/Factory:akri-extension-3.2-bkprt into 3.2
Reviewed-on: #51
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2024-12-06 11:03:01 +01:00
14b56eabbe Merge pull request '[3.2] Backport rancher-turtles updates' (#47) from steven.hardy/Factory:turtles_3.2 into 3.2
Reviewed-on: #47
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2024-12-06 10:57:08 +01:00
d91b28fb5b Update akri-dashboard-extension-chart to v1.2.1
All checks were successful
OBS: edge-image-builder-image - images/x86_64
OBS: cdi-chart - charts/x86_64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: metallb-chart - charts/x86_64
OBS: upgrade-controller-chart - charts/x86_64
OBS: rancher-turtles-airgap-resources-chart - charts/x86_64
OBS: akri-chart - charts/x86_64
OBS: kubevirt-chart - charts/x86_64
OBS: endpoint-copier-operator-chart - charts/x86_64
OBS: edge-image-builder-image - images/aarch64
OBS: cosign - standard/aarch64
OBS: metal3-chart - charts/x86_64
OBS: sriov-crd-chart - charts/x86_64
OBS: sriov-network-operator-chart - charts/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: ip-address-manager-image - images/x86_64
OBS: nm-configurator - standard/aarch64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: ironic-image - images/x86_64
OBS: akri-controller-image - images/x86_64
OBS: kubevirt-dashboard-extension-chart - charts/x86_64
OBS: akri-agent-image - images/x86_64
OBS: metallb-controller-image - images/aarch64
OBS: akri-dashboard-extension-chart - charts/x86_64
OBS: metallb-speaker-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: rancher-turtles-chart - charts/x86_64
(cherry picked from commit 87c7e1be8867679f12704e50e9c1e2c9f7acc0620b597e0f4f0bb9f29f6541c3)
2024-12-06 09:54:10 +01:00
4aa46388cf Update kubevirt-dashboard-extension-chart to v1.2.1
All checks were successful
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: edge-image-builder-image - images/aarch64
OBS: cosign - standard/aarch64
OBS: akri-chart - charts/x86_64
OBS: sriov-network-operator-chart - charts/x86_64
OBS: metal3-chart - charts/x86_64
OBS: ironic-image - images/x86_64
OBS: akri-dashboard-extension-chart - charts/x86_64
OBS: rancher-turtles-chart - charts/x86_64
OBS: upgrade-controller-chart - charts/x86_64
OBS: endpoint-copier-operator-chart - charts/x86_64
OBS: baremetal-operator - standard/x86_64
OBS: rancher-turtles-airgap-resources-chart - charts/x86_64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: akri-controller-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: metallb-speaker-image - images/aarch64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: sriov-crd-chart - charts/x86_64
OBS: cosign - standard/x86_64
OBS: metallb-controller-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: cdi-chart - charts/x86_64
OBS: kubevirt-chart - charts/x86_64
OBS: edge-image-builder-image - images/x86_64
OBS: metallb-chart - charts/x86_64
OBS: kubevirt-dashboard-extension-chart - charts/x86_64
(cherry picked from commit 568d5d1590140cd8ce75793d21a87b543fd7b52f5dd1337b09b5637f5d4b0314)
2024-12-06 09:52:36 +01:00
dfa68ba86e
release-manifest: Update rancher-turtles chart
All checks were successful
OBS: cosign - standard/aarch64
OBS: metallb - standard/x86_64
OBS: kubectl-image - images/x86_64
OBS: upgrade-controller - standard/x86_64
OBS: hauler - standard/x86_64
OBS: nm-configurator - standard/x86_64
OBS: kube-rbac-proxy-image - images/x86_64
OBS: akri - standard/x86_64
OBS: upgrade-controller-image - images/x86_64
OBS: metallb-controller-image - images/x86_64
OBS: metallb-speaker-image - images/x86_64
OBS: ironic-image - images/x86_64
OBS: endpoint-copier-operator - standard/aarch64
OBS: hauler - standard/aarch64
OBS: nm-configurator - standard/aarch64
OBS: metallb - standard/aarch64
OBS: akri-agent-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: akri-controller-image - images/x86_64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: metallb-controller-image - images/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: edge-image-builder-image - images/x86_64
OBS: edge-image-builder-image - images/aarch64
Fix the rancher-turtles-chart version to align with #44

(cherry picked from commit fbd596290adcfe68bbdd7bbc871cc595c8da402f470a55ddd1a52be973a6b913)
2024-12-05 17:46:29 +00:00
075e2a209c
Remove CAPM3/IPAM images
These are now provided by the rancher registry since #44

Conflicts:
	.obs/workflows.yml

(cherry picked from commit ec6c4745ea79e419a9ac1377ed3c1a31fcca456081a7148ff50eeb5d8ca7bd08)
2024-12-05 17:45:54 +00:00
2928b2076e
rancher-turtles-airgap-resources-chart: Update to 0.14.1 upstream release
Aligns with https://github.com/suse-edge/charts/pull/174 which
rebases to 0.14.1, which is marked as compatible with Rancher 2.10

(cherry picked from commit 856ec2ac8ed7985109bb79184f4e66188042ce2bb5e93cdbd19a58e991452823)
2024-12-05 17:43:56 +00:00
39338dd6ac
rancher-turtles-chart: Update to 0.14.1 upstream release
Aligns with https://github.com/suse-edge/charts/pull/174 which
rebases to 0.14.1, which is marked as compatible with Rancher 2.10

(cherry picked from commit 7721c66ab0b2eae8aefbca8bdb7e2fd82cda1363a2b115ba715a8164589bfafe)
2024-12-05 17:43:43 +00:00
121f4a14db Merge remote-tracking branch 'upstream/3.2' into 3.2 2024-12-04 17:17:47 +02:00
dfc8bb30d9 Merge pull request 'backport into 3.2 fixed versions in eib artifacts' (#43) from dprodanov/Factory:eib-3.2 into 3.2
Reviewed-on: #43
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
2024-12-04 16:16:35 +01:00
33f56e8b23 fixed versions in eib artifacts
All checks were successful
OBS SCM/CI Workflow Integration started
OBS: akri-chart - charts/x86_64
OBS: akri-dashboard-extension-chart - charts/x86_64
OBS: cdi-chart - charts/x86_64
OBS: autoconf - standard/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: akri-controller-image - images/x86_64
OBS: endpoint-copier-operator-image - images/x86_64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: baremetal-operator-image - images/x86_64
OBS: cluster-api-provider-metal3-image - images/x86_64
OBS: baremetal-operator - standard/x86_64
2024-12-04 17:12:03 +02:00
67d7d572a9 Merge remote-tracking branch 'upstream/3.2' into 3.2 2024-12-04 15:40:13 +02:00
744d04b40a
kiwi-builder-image: Align with OBS latest version
All checks were successful
OBS: sriov-crd-chart - charts/x86_64
OBS: sriov-network-operator-chart - charts/x86_64
OBS: release-manifest-image - images/x86_64
OBS: ip-address-manager-image - images/x86_64
OBS: upgrade-controller-chart - charts/x86_64
OBS: metallb - standard/x86_64
OBS: kube-rbac-proxy-image - images/x86_64
OBS: upgrade-controller - standard/x86_64
OBS: nm-configurator - standard/x86_64
OBS: metallb - standard/aarch64
OBS: metallb-controller-image - images/x86_64
OBS: metallb-speaker-image - images/x86_64
OBS: ironic-image - images/x86_64
OBS: upgrade-controller-image - images/x86_64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: akri - standard/x86_64
OBS: hauler - standard/aarch64
OBS: edge-image-builder-image - images/x86_64
OBS: nm-configurator - standard/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: edge-image-builder-image - images/aarch64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: akri-controller-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: ironic-ipa-ramdisk - standard/x86_64
Aligns with the latest fixes in isv:SUSE:Edge:KiwiBuilder/kiwi-builder-10

(cherry picked from commit 8a93aae7c5f649dcb6aedb7f4691e925c1342dcbdcf21e15bb761512a173f92f)
2024-12-04 12:25:44 +00:00
5e098df843 Merge pull request 'updated longhorn and neuvector to latest 105 charts' (#39) from dprodanov/Factory:upstream-3.2 into 3.2
Reviewed-on: #39
Reviewed-by: Ivo Petrov <ipetrov117@noreply.src.opensuse.org>
2024-11-28 16:23:41 +01:00
7555048917 updated longhorn and neuvector to latest 105 charts 2024-11-28 17:16:25 +02:00
e92a50d110 Merge pull request '[3.2 backport] rancher-turtles: Fix issue in 0.4.0 chart' (#37) from steven.hardy/Factory:turtles_fix_3.2 into 3.2
Reviewed-on: #37
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2024-11-27 14:08:45 +01:00
da2ad77951
rancher-turtles: Fix issue in 0.4.0 chart
The previous import was based on a pre-merge copy of the following PR
- an issue was discovered during SV validation which required an
additional change to ensure CRDs are created before creating the
ClusterctlConfig CR

https://github.com/suse-edge/charts/pull/166
(cherry picked from commit 636493adbafb69b6bb0f65d50fe63441b5a3e8602f552cf325867b0b027c7c60)
2024-11-27 11:16:59 +00:00
be4fae4b18 3.2 branching 2024-11-25 15:59:33 +02:00
6335b818e3 3.2 branching 2024-11-25 15:54:26 +02:00
91 changed files with 1726 additions and 2707 deletions

View File

@ -1,62 +0,0 @@
name: Build PR in OBS
on:
pull_request_target:
types:
- opened
- reopened
- synchronize
- closed
branches-ignore:
- "devel"
concurrency:
group: ${{ gitea.workflow }}-${{ gitea.ref }}
cancel-in-progress: true
jobs:
sync-pr-project:
name: "Build PR in OBS"
runs-on: tumbleweed
steps:
- name: Setup OSC
run: |
zypper in -y python3-jinja2
mkdir -p ~/.config/osc
cat >~/.config/osc/oscrc <<'EOF'
[general]
apiurl = https://api.opensuse.org
[https://api.opensuse.org]
user=${{ vars.OBS_USERNAME }}
pass=${{ secrets.OBS_PASSWORD }}
EOF
# Waiting on PR to get merged for support in upstream action/checkout action
- uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
name: Checkout repository
with:
object-format: 'sha256'
- name: "[if PR is closed] Delete project in OBS"
run: |
if [ "${{ gitea.event.action }}" = "closed" ]; then
PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
osc rdelete -f -r -m "PR closed" "${PROJECT}:Staging:PR-${{ gitea.event.number }}"
fi
- name: "Setup PR project in OBS"
env:
SCM_URL: ${{ gitea.event.pull_request.head.repo.clone_url }}#${{ gitea.head_ref }}
run: |
if [ "${{ gitea.event.action }}" != "closed" ]; then
PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
python3 .obs/render_meta.py --pr ${{ gitea.event.number }} --scm-url "${SCM_URL}" | osc meta prj "${PROJECT}:Staging:PR-${{ gitea.event.number }}" -F -
echo "Project created ${PROJECT}:Staging:PR-${{ gitea.event.number }}"
echo "Follow build at: https://build.opensuse.org/project/monitor/${PROJECT}:Staging:PR-${{ gitea.event.number }}"
fi
- env:
GIT_SHA: ${{ gitea.event.pull_request.head.sha }}
name: "Wait for OBS to build the project"
run: |
if [ "${{ gitea.event.action }}" != "closed" ]; then
PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
export OBS_PROJECT="${PROJECT}:Staging:PR-${{ gitea.event.number }}"
python3 .obs/wait_obs.py
fi

View File

@ -1,35 +0,0 @@
name: Synchronize Project Config
on:
push:
branches-ignore:
- "devel"
paths:
- "_config"
- ".gitea/workflows/sync_config.yaml"
jobs:
sync-prjconf:
name: "Update prjconf in OBS"
runs-on: tumbleweed
steps:
- name: Setup OSC
run: |
mkdir -p ~/.config/osc
cat >~/.config/osc/oscrc <<'EOF'
[general]
apiurl = https://api.opensuse.org
[https://api.opensuse.org]
user=${{ vars.OBS_USERNAME }}
pass=${{ secrets.OBS_PASSWORD }}
EOF
# Waiting on PR to get merged for support in upstream action/checkout action
- uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
name: Checkout repository
with:
object-format: 'sha256'
- run: |
PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
if [ "$(osc meta prjconf "${PROJECT}" | sha256sum)" != "$(cat _config | sha256sum)" ] ; then
osc meta prjconf "${PROJECT}" -F _config
fi

View File

@ -1,45 +0,0 @@
name: Synchronize Project Metadata
on:
push:
branches-ignore:
- "devel"
paths:
- "*" # Will trigger on new directories and changes to files in root of repository
- ".gitea/workflows/sync_meta.yaml"
- ".obs/common.py"
jobs:
sync-prj-meta:
runs-on: tumbleweed
steps:
- name: Setup OSC
run: |
zypper in -y python3-jinja2
mkdir -p ~/.config/osc
cat >~/.config/osc/oscrc <<'EOF'
[general]
apiurl = https://api.opensuse.org
[https://api.opensuse.org]
user=${{ vars.OBS_USERNAME }}
pass=${{ secrets.OBS_PASSWORD }}
EOF
# Waiting on PR to get merged for support in upstream action/checkout action
- uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
name: Checkout repository
with:
object-format: 'sha256'
- name: "Update or create OBS Project"
run: |
PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
set -o pipefail
if meta="$(osc meta prj "${PROJECT}" 2>/dev/null | sha256sum)"; then
new_meta="$(python3 .obs/render_meta.py)"
if [ "${meta}" != "$(echo "${new_meta}" | sha256sum)" ]; then
echo "${new_meta}" | osc meta prj "${PROJECT}" -F -
fi
python3 .obs/sync_packages.py
else
# Create the projects
bash .obs/create_projects.sh
fi

View File

@ -1,30 +0,0 @@
name: Trigger Devel Packages
on:
schedule:
- cron: "@daily"
jobs:
sync-pr-project:
name: "Trigger source services for devel packages that changed"
runs-on: tumbleweed
steps:
- name: Setup OSC
run: |
mkdir -p ~/.config/osc
cat >~/.config/osc/oscrc <<'EOF'
[general]
apiurl = https://api.opensuse.org
[https://api.opensuse.org]
user=${{ vars.OBS_USERNAME }}
pass=${{ secrets.OBS_PASSWORD }}
EOF
# Waiting on PR to get merged for support in upstream action/checkout action
- uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
name: Checkout repository
with:
object-format: 'sha256'
ref: 'devel'
- name: "Trigger packages"
run: |
python3 .obs/trigger_package.py

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import yaml
import subprocess import subprocess
import argparse import argparse
import os import os
@ -6,6 +7,30 @@ import os.path
from common import PROJECT, REPOSITORY, BRANCH from common import PROJECT, REPOSITORY, BRANCH
def add_package_to_workflow(name: str):
modified = False
with open(".obs/workflows.yml", "r") as wf_file:
workflows = yaml.safe_load(wf_file)
if not any(
x
for x in workflows["staging_build"]["steps"]
if x["branch_package"]["source_package"] == name
):
workflows["staging_build"]["steps"].append(
{
"branch_package": {
"source_project": PROJECT,
"target_project": f"{PROJECT}:Staging",
"source_package": name,
}
}
)
modified = True
if modified:
with open(".obs/workflows.yml", "w") as wf_file:
yaml.dump(workflows, wf_file)
def add_package_to_project(name: str): def add_package_to_project(name: str):
package_meta = f"""<package name="{name}" project="{PROJECT}"> package_meta = f"""<package name="{name}" project="{PROJECT}">
<title/> <title/>
@ -28,6 +53,7 @@ def add_package(package_name: str):
os.exit(1) os.exit(1)
add_package_to_project(package_name) add_package_to_project(package_name)
add_package_to_workflow(package_name)
def main(): def main():
@ -39,7 +65,7 @@ def main():
add_package(args.package) add_package(args.package)
print("Package created in OBS !") print("Package created in OBS, you can now push the modified workflow file")
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -1,3 +1,3 @@
PROJECT = "isv:SUSE:Edge:Factory" PROJECT = "isv:SUSE:Edge:3.2"
REPOSITORY = "https://src.opensuse.org/suse-edge/Factory" REPOSITORY = "https://src.opensuse.org/suse-edge/Factory"
BRANCH = "main" BRANCH = "3.2"

View File

@ -1,37 +0,0 @@
#!/bin/bash
show_help() {
echo "Usage: $(basename $0) [--internal]"
echo "options:"
echo "-h, --help display this help and exit"
echo "-i, --internal create project as internal"
exit 0
}
while [[ "$#" -gt 0 ]]; do
case $1 in
-h|--help) show_help;;
-i|--internal) internal="--internal" ;;
*) echo "Unknown parameter passed: $1";show_help ;;
esac
shift
done
PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
EXTRA_OSC_ARGS=""
if [ -n "$internal" ]; then
PROJECT="ISV${PROJECT:3}"
EXTRA_OSC_ARGS="-A https://api.suse.de"
python3 .obs/render_meta.py ${internal} Snapshot | osc ${EXTRA_OSC_ARGS} meta prj "${PROJECT}:Snapshot" -F -
osc ${EXTRA_OSC_ARGS} meta prjconf "${PROJECT}:Snapshot" -F _config
fi
python3 .obs/render_meta.py ${internal} ToTest | osc ${EXTRA_OSC_ARGS} meta prj "${PROJECT}:ToTest" -F -
python3 .obs/render_meta.py ${internal} | osc ${EXTRA_OSC_ARGS} meta prj "${PROJECT}" -F -
osc ${EXTRA_OSC_ARGS} meta prjconf "${PROJECT}:ToTest" -F _config
osc ${EXTRA_OSC_ARGS} meta prjconf "${PROJECT}" -F _config
if [ -z "$internal" ]; then
python3 .obs/sync_packages.py
fi

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import yaml
import subprocess import subprocess
import argparse import argparse
import os import os
@ -7,6 +8,18 @@ import os.path
from common import PROJECT from common import PROJECT
def delete_package_from_workflow(name: str):
with open(".obs/workflows.yml", "r") as wf_file:
workflows = yaml.safe_load(wf_file)
workflows["staging_build"]["steps"] = [
x
for x in workflows["staging_build"]["steps"]
if x["branch_package"]["source_package"] != name
]
with open(".obs/workflows.yml", "w") as wf_file:
yaml.dump(workflows, wf_file)
def delete_package_from_project(name: str): def delete_package_from_project(name: str):
p = subprocess.run(["osc", "rdelete", PROJECT, name, "-m \"Deleted via delete_package.py\"" ], stdout=subprocess.PIPE) p = subprocess.run(["osc", "rdelete", PROJECT, name, "-m \"Deleted via delete_package.py\"" ], stdout=subprocess.PIPE)
print(p.stdout) print(p.stdout)
@ -20,6 +33,7 @@ def delete_package(package_name: str):
os.exit(1) os.exit(1)
delete_package_from_project(package_name) delete_package_from_project(package_name)
delete_package_from_workflow(package_name)
def main(): def main():

View File

@ -1,63 +0,0 @@
import argparse
from jinja2 import Template
from common import PROJECT
def render(base_project, subproject, internal, scm_url=None):
version = base_project.rsplit(':', 1)[-1]
context = {
"base_project": subproject == "",
"title": f"SUSE Edge {version} {subproject}".rstrip(),
"ironic_base": "ISV:SUSE:Edge:Ironic" if internal else "Cloud:OpenStack",
}
if subproject == "ToTest":
context["project"] = f"{base_project}:ToTest"
context["description"] = (
f"This project doesn't build, it stores a snapshot of SUSE Edge {version} "
"project currently going through the automated test layer"
)
if "Factory" in base_project or internal:
context["release_project"] = f"{base_project}:Snapshot"
elif subproject == "Snapshot":
context["project"] = f"{base_project}:Snapshot"
context["release_project"] = f"{base_project.rsplit(':', 1)[0]}:Containers"
context["for_release"] = True
context["description"] = (
f"This project doesn't build, it stores a snapshot of SUSE Edge {version} "
"project that passed automated test layer"
)
elif subproject == "":
context["project"] = base_project
context["release_project"] = f"{base_project}:ToTest"
else: # PR case direct python call
context["base_project"] = True
context["project"] = f"{base_project}:{subproject}"
if scm_url is not None:
context["scm_url"] = scm_url
with open("_meta") as meta:
template = Template(meta.read())
return template.render(context)
def main():
parser = argparse.ArgumentParser(
prog='ProgramName',
description='What the program does',
epilog='Text at the bottom of help')
parser.add_argument("subproject", default="", choices=["", "ToTest", "Snapshot"], nargs="?")
parser.add_argument("--internal", action="store_true")
parser.add_argument("--pr")
parser.add_argument("--scm-url")
args = parser.parse_args()
base_project = PROJECT.replace("isv", "ISV", 1) if args.internal else PROJECT
print(render(
base_project=base_project,
subproject=args.subproject if args.pr is None else f"Staging:PR-{args.pr}",
internal=args.internal,
scm_url=args.scm_url,
))
if __name__ == "__main__":
main()

View File

@ -9,7 +9,7 @@ from common import PROJECT
def get_obs_packages() -> Set[str]: def get_obs_packages() -> Set[str]:
packages = subprocess.run(["osc", "ls", PROJECT], encoding='utf-8' , capture_output=True) packages = subprocess.run(["osc", "ls", PROJECT], encoding='utf-8' , capture_output=True)
return { p for p in packages.stdout.splitlines() if ":" not in p } return set(packages.stdout.splitlines())
def get_local_packages() -> Set[str]: def get_local_packages() -> Set[str]:
p = pathlib.Path('.') p = pathlib.Path('.')

View File

@ -1,83 +0,0 @@
import xml.etree.ElementTree as ET
import subprocess
import time
import os
import sys
from collections import Counter
def get_buildstatus(project: str) -> ET.Element:
for _ in range(5):
try:
output = subprocess.check_output(["osc", "pr", "--xml", project])
return ET.fromstring(output)
except subprocess.CalledProcessError:
continue
print("Failed to get buildstatus from OBS")
def do_wait(project:str, commit:str) -> ET.Element:
last_state = None
while True:
time.sleep(5)
status = get_buildstatus(project)
if last_state == status.get("state"):
continue
else:
last_state = status.get("state")
scminfo = { e.text for e in status.findall(".//scminfo") }
if len(scminfo) != 1 or scminfo.pop() != commit:
print("Waiting for OBS to sync with SCM")
continue
if not all([ e.get('state') == "published" and e.get('dirty') is None for e in status.findall("./result")]):
print("Waiting for OBS to finish building")
continue
return status
def print_results(status: ET.Element) -> bool:
results = {}
failed = []
for e in status.findall("./result"):
repo = results.get(e.get("repository"), {})
repo[e.get("arch")] = e
results[e.get("repository")] = repo
for repo in results.keys():
print(f"{repo}:")
depth=1
for arch in results[repo].keys():
counts = Counter()
if repo != "charts":
print(f"\t{arch}:")
depth=2
for package in results[repo][arch].findall("./status"):
if package.get("code") in ["excluded", "disabled"]:
continue
if package.get("code") in ["failed", "unresolvable", "broken"]:
details = package.findtext("details")
if details:
failed.append(f"{package.get('package')} ({arch}): {details}")
else:
failed.append(f"{package.get('package')} ({arch})")
counts[package.get("code")] += 1
for (code, count) in counts.items():
print("\t"*depth, f"{code}: {count}")
failed.sort()
if failed:
print("\nPackages failing: ")
for fail in failed:
print("\t", fail)
return len(failed)
def main():
project = os.environ.get("OBS_PROJECT")
sha = os.environ.get("GIT_SHA")
print(f"Waiting for OBS to build {project} for commit {sha}")
status = do_wait(project, sha)
sys.exit(print_results(status))
if __name__ == "__main__":
main()

212
.obs/workflows.yml Normal file
View File

@ -0,0 +1,212 @@
staging_build:
filters:
event: pull_request
steps:
- branch_package:
source_package: endpoint-copier-operator
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: endpoint-copier-operator-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: endpoint-copier-operator-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-agent-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-controller-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-dashboard-extension-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-debug-echo-discovery-handler-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-onvif-discovery-handler-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-opcua-discovery-handler-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-udev-discovery-handler-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-webhook-configuration-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: obs-service-set_version
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: cosign
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: frr-k8s
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kubectl
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: upgrade-controller
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: nm-configurator
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kube-rbac-proxy
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: edge-image-builder
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metallb
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: hauler
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: baremetal-operator
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: cdi-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metallb-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: sriov-crd-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: upgrade-controller-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: edge-image-builder-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ironic-ipa-downloader-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: upgrade-controller-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metal3-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: baremetal-operator-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: sriov-network-operator-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metallb-controller-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metallb-speaker-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ironic-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: cri-tools
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: crudini
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: fakeroot
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ipcalc
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: autoconf
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: rancher-turtles-airgap-resources-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: rancher-turtles-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kube-rbac-proxy-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ironic-ipa-ramdisk
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kubevirt-dashboard-extension-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kiwi-builder-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kubevirt-chart
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: release-manifest-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: frr-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kubectl-image
source_project: isv:SUSE:Edge:3.2
target_project: isv:SUSE:Edge:3.2:Staging

View File

@ -5,6 +5,15 @@ Contains the definition of the packages built on OBS for the SUSE Edge Solution
This repository is linked to an OBS project: <https://build.opensuse.org/project/show/isv:SUSE:Edge:Factory> This repository is linked to an OBS project: <https://build.opensuse.org/project/show/isv:SUSE:Edge:Factory>
Every directory in this repository represents a package in that OBS project, those should be synced automatically from this repository. Every directory in this repository represents a package in that OBS project, those should be synced automatically from this repository.
## Adding a package
To add a package, first create a directory with your package as you intend it in OBS.
Then run the `.obs/add_package.py` script to create the package in the OBS project and add the required elements to the synchronization workflow.
This script is using the `osc` command behind the scenes, so ensure you have it installed and correctly configured, as well as you have the correct permissions to create a new package in the project.
You will then get asked to push your changes.
## Testing a fork or a development branch ## Testing a fork or a development branch
You can create a project in your home space in OBS, use the same prjconf as the one of "isv:SUSE:Edge:Factory", and copy the repositories part of the metadata (adjust self references). You can create a project in your home space in OBS, use the same prjconf as the one of "isv:SUSE:Edge:Factory", and copy the repositories part of the metadata (adjust self references).
@ -14,14 +23,16 @@ Then add a scmsync stanza to your metadata like this (adjust repository path and
<scmsync>https://src.opensuse.org/suse-edge/Factory#main</scmsync> <scmsync>https://src.opensuse.org/suse-edge/Factory#main</scmsync>
``` ```
This is done automatically for any PR filed against this repository.
## Cutting a release version branch ## Cutting a release version branch
1. Do the appropriate git branch command 1. Do the appropriate git branch command
2. Change the project path in `.obs/common.py` file (e.g. from `isv:SUSE:Edge:Factory` to `isv:SUSE:Edge:3.2`) 2. Change the project path in `.obs/common.py` file (e.g. from `isv:SUSE:Edge:Factory` to `isv:SUSE:Edge:3.2`)
3. Change the branch reference in `.obs/common.py` file (e.g. from `main` to `3.2`) 3. Change the branch reference in `.obs/common.py` file (e.g. from `main` to `3.2`)
4. Edit the `.obs/workflows.yml` file to change the references to the correct projects
5. Commit those changes to the new branch and push the new branch 5. Commit those changes to the new branch and push the new branch
6. Create the base and to-test projects (e.g. `isv:SUSE:Edge:3.2` and `isv:SUSE:Edge:3.2:ToTest`), use the `isv:SUSE:Edge:Factory` projects as example for metadata part
7. Use the prjconf of Factory in all those projects
8. Run the `.obs/sync_packages.py` script to create all the packages in the base project
9. Go take a few cups of coffee/tea/mate/... while waiting for OBS to build everything 9. Go take a few cups of coffee/tea/mate/... while waiting for OBS to build everything
10. Once built do an `osc release` of the project for it to be copied over in the `ToTest` section 10. Once built do an `osc release` of the project for it to be copied over in the `ToTest` section
11. Hand over to QA to test whatever is in `ToTest`. (You can continue to work on the base branch if needed meanwhile) 11. Hand over to QA to test whatever is in `ToTest`. (You can continue to work on the base branch if needed meanwhile)

125
_config
View File

@ -1,125 +0,0 @@
Prefer: -libqpid-proton10 -python311-urllib3_1
Macros:
%__python3 /usr/bin/python3.11
%registry_url %(echo %{vendor} | cut -d '/' -f 3 | sed 's/build/registry/')
:Macros
%if "%{sub %{lower %_project} 1 14}" != "isv:suse:edge:" || "%{sub %_project 15 21}" == "Factory"
# Here we are in Factory like project so set chart major version to 999
Macros:
%chart_major 999
:Macros
%else
# Here we are in version branch, so set the image prefix and chart major accordingly
Macros:
%project_branch %(echo %{_project} | cut -d ':' -f 4)
%img_prefix %{project_branch}/
%chart_major %(echo %{project_branch} | awk '{split($1,a,"."); print a[1]*100 + a[2]}')
:Macros
%endif
%if %{sub %_project 1 3} == ISV
Macros:
%img_repo registry.suse.com/edge
%chart_repo oci://registry.suse.com/edge
%manifest_repo registry.suse.com/edge
%support_level l3
:Macros
%else
Macros:
%img_repo registry.opensuse.org/isv/suse/edge/containers/images
%manifest_repo registry.opensuse.org/isv/suse/edge/containers/images
%chart_repo oci://registry.opensuse.org/isv/suse/edge/containers/charts
%support_level techpreview
:Macros
%endif
%if "%_repository" == "charts" || "%_repository" == "test_manifest_images"
Macros:
%img_repo %(echo %{registry_url}:%{_project}:images | tr ":" "/" | tr '[:upper:]' '[:lower:]')
%manifest_repo %(echo %{registry_url}:%{_project}:test_manifest_images | tr ":" "/" | tr '[:upper:]' '[:lower:]')
%chart_repo oci://%(echo %{registry_url}:%{_project}:charts | tr ":" "/" | tr '[:upper:]' '[:lower:]')
:Macros
%endif
# Missing deps for testsuite
BuildFlags: excludebuild:autoconf:el
BuildFlags: excludebuild:autoconf:testsuite
# Only build manifest embedding images here
%if "%_repository" == "test_manifest_images"
BuildFlags: onlybuild:edge-image-builder-image
BuildFlags: onlybuild:release-manifest-image
# Exclude the images selected by the following section
# as the standard repository is a dependency
%ifarch aarch64
BuildFlags: excludebuild:baremetal-operator-image
BuildFlags: excludebuild:endpoint-copier-operator-image
BuildFlags: excludebuild:ironic-image
BuildFlags: excludebuild:ironic-ipa-downloader-image
BuildFlags: excludebuild:kube-rbac-proxy-image
BuildFlags: excludebuild:metallb-controller-image
BuildFlags: excludebuild:metallb-speaker-image
%endif
%else
# Only a subset of stack is arm64 ready
%ifarch aarch64
BuildFlags: onlybuild:autoconf
BuildFlags: onlybuild:baremetal-operator
BuildFlags: onlybuild:baremetal-operator-image
BuildFlags: onlybuild:ca-certificates-suse
BuildFlags: onlybuild:cosign
BuildFlags: onlybuild:crudini
BuildFlags: onlybuild:edge-image-builder
BuildFlags: onlybuild:edge-image-builder-image
BuildFlags: onlybuild:endpoint-copier-operator
BuildFlags: onlybuild:endpoint-copier-operator-image
BuildFlags: onlybuild:fakeroot
BuildFlags: onlybuild:hauler
BuildFlags: onlybuild:ipcalc
BuildFlags: onlybuild:ironic-image
BuildFlags: onlybuild:ironic-ipa-downloader-image
BuildFlags: onlybuild:ironic-ipa-ramdisk
BuildFlags: onlybuild:kube-rbac-proxy
BuildFlags: onlybuild:kube-rbac-proxy-image
BuildFlags: onlybuild:metallb
BuildFlags: onlybuild:metallb-controller-image
BuildFlags: onlybuild:metallb-speaker-image
BuildFlags: onlybuild:nm-configurator
%endif
%endif
%if "%_repository" == "images" || "%_repository" == "test_manifest_images"
Prefer: container:sles15-image
Type: docker
Repotype: none
Patterntype: none
BuildEngine: podman
Prefer: sles-release
BuildFlags: dockerarg:SLE_VERSION=15.6
# Publish multi-arch container images only once all archs have been built
PublishFlags: archsync
%endif
%if "%_repository" == "charts" || "%_repository" == "phantomcharts" || "%_repository" == "releasecharts"
Type: helm
Repotype: helm
Patterntype: none
Required: perl-YAML-LibYAML
%endif
%if "%_repository" == "standard"
# for build openstack-ironic-image
BuildFlags: allowrootforbuild
%endif
# Enable reproducible builds
# https://en.opensuse.org/openSUSE:Reproducible_Builds\#With_OBS
Macros:
%source_date_epoch_from_changelog Y
%clamp_mtime_to_source_date_epoch Y
%use_source_date_epoch_as_buildtime Y
%_buildhost reproducible
:Macros

69
_meta
View File

@ -1,69 +0,0 @@
{#-
This template is rendered by the render_meta.py script
it is not automatically enforced by OBS
-#}
{%- set maintainers = [
"edge-engineering",
] -%}
<project name="{{ project }}">
<title>{{ title }}</title>
{%- if description is defined %}
<description>{{ description }}</description>
{%- else %}
<description/>
{%- endif %}
{%- if scm_url is defined %}
<scmsync>{{ scm_url }}</scmsync>
{%- endif %}
{%- for maintainer in maintainers %}
<person userid="{{ maintainer }}" role="maintainer"/>
{%- endfor %}
{%- if not base_project %}
<build>
<disable/>
<enable repository="charts"/>
<enable repository="test_manifest_images"/>
</build>
<publish>
<disable repository="phantomcharts"/>
</publish>
<repository name="phantomcharts">
<arch>x86_64</arch>
</repository>
{%- endif %}
{%- for repository in ["images", "test_manifest_images"] %}
<repository name="{{ repository }}">
{%- if release_project is defined and repository == "images" %}
<releasetarget project="{{ release_project }}" repository="images" trigger="manual"/>
{%- endif %}
<path project="SUSE:Registry" repository="standard"/>
<path project="SUSE:CA" repository="SLE_15_SP6"/>
<path project="{{ project }}" repository="standard"/>
<arch>x86_64</arch>
<arch>aarch64</arch>
</repository>
{%- endfor %}
<repository name="standard" block="local">
{%- if release_project is defined and not for_release %}
<releasetarget project="{{ release_project }}" repository="standard" trigger="manual"/>
{%- endif %}
<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>
<repository name="charts"{{ ' rebuild="local"' if not base_project }}>
{%- if release_project is defined and not for_release %}
<releasetarget project="{{ release_project }}" repository="phantomcharts" trigger="manual"/>
{%- endif %}
<path project="{{ project }}" repository="standard"/>
<arch>x86_64</arch>
</repository>
{%- if for_release %}
<repository name="releasecharts" rebuild="local">
<releasetarget project="{{ release_project }}" repository="charts" trigger="manual"/>
<path project="{{ project }}" repository="standard"/>
<arch>x86_64</arch>
</repository>
{%- endif %}
</project>

View File

@ -1,4 +1,3 @@
#!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0
#!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1 #!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1
#!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1-%RELEASE%
annotations: annotations:

View File

@ -10,9 +10,7 @@
<service name="cargo_vendor" mode="manual"> <service name="cargo_vendor" mode="manual">
<param name="srcdir">akri</param> <param name="srcdir">akri</param>
</service> </service>
<service name="tar" mode="buildtime"> <service name="tar" mode="buildtime" />
<param name="obsinfo">akri.obsinfo</param>
</service>
<service name="set_version" mode="buildtime" > <service name="set_version" mode="buildtime" >
<param name="fromfile">version.txt</param> <param name="fromfile">version.txt</param>
<param name="regex">^(.*)$</param> <param name="regex">^(.*)$</param>

View File

@ -12,8 +12,10 @@
<param name="without-version">yes</param> <param name="without-version">yes</param>
<param name="versionrewrite-replacement">\1</param> <param name="versionrewrite-replacement">\1</param>
</service> </service>
<service mode="buildtime" name="tar"> <service mode="buildtime" name="tar" />
<param name="obsinfo">baremetal-operator.obsinfo</param> <service mode="buildtime" name="recompress">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service> </service>
<service name="go_modules"> <service name="go_modules">
</service> </service>
@ -21,7 +23,7 @@
<param name="file">baremetal-operator.spec</param> <param name="file">baremetal-operator.spec</param>
<param name="var">SOURCE_COMMIT</param> <param name="var">SOURCE_COMMIT</param>
<param name="eval"> <param name="eval">
SOURCE_COMMIT=$(grep commit baremetal-operator.obsinfo | cut -d" " -f2) SOURCE_COMMIT=$(grep commit *.obsinfo | cut -d" " -f2)
</param> </param>
<param name="verbose">1</param> <param name="verbose">1</param>
</service> </service>

View File

@ -22,7 +22,7 @@ Release: 0.8.0
Summary: Implements a Kubernetes API for managing bare metal hosts Summary: Implements a Kubernetes API for managing bare metal hosts
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/metal3-io/baremetal-operator URL: https://github.com/metal3-io/baremetal-operator
Source: baremetal-operator-%{version}.tar Source: baremetal-operator-%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang(API) = 1.22 BuildRequires: golang(API) = 1.22
ExcludeArch: s390 ExcludeArch: s390

View File

@ -8,8 +8,10 @@
<param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>
</service> </service>
<service mode="buildtime" name="tar"> <service mode="buildtime" name="tar" />
<param name="obsinfo">cosign.obsinfo</param> <service mode="buildtime" name="recompress">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service> </service>
<service mode="buildtime" name="set_version" /> <service mode="buildtime" name="set_version" />
<service name="go_modules"> <service name="go_modules">

View File

@ -24,7 +24,7 @@ Release: 0
Summary: Container Signing, Verification and Storage in an OCI registry Summary: Container Signing, Verification and Storage in an OCI registry
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/rancher-government-carbide/cosign URL: https://github.com/rancher-government-carbide/cosign
Source: cosign-%{version}.tar Source: cosign-%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang-packaging BuildRequires: golang-packaging

View File

@ -9,8 +9,10 @@
<param name="versionrewrite-replacement">\1.\2.\3</param> <param name="versionrewrite-replacement">\1.\2.\3</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>
</service> </service>
<service mode="buildtime" name="tar"> <service mode="buildtime" name="tar" />
<param name="obsinfo">edge-image-builder.obsinfo</param> <service mode="buildtime" name="recompress">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service> </service>
<service mode="buildtime" name="set_version" /> <service mode="buildtime" name="set_version" />
<service name="go_modules"> <service name="go_modules">

View File

@ -22,7 +22,7 @@ Release: 0
Summary: Edge Image Builder Summary: Edge Image Builder
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/suse-edge/edge-image-builder URL: https://github.com/suse-edge/edge-image-builder
Source: edge-image-builder-%{version}.tar Source: edge-image-builder-%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang(API) go1.22 BuildRequires: golang(API) go1.22
BuildRequires: golang-packaging BuildRequires: golang-packaging

View File

@ -12,8 +12,10 @@
<param name="without-version">yes</param> <param name="without-version">yes</param>
<param name="versionrewrite-replacement">\1</param> <param name="versionrewrite-replacement">\1</param>
</service> </service>
<service mode="buildtime" name="tar"> <service mode="buildtime" name="tar" />
<param name="obsinfo">endpoint-copier-operator.obsinfo</param> <service mode="buildtime" name="recompress">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service> </service>
<service name="go_modules"> <service name="go_modules">
</service> </service>

View File

@ -22,7 +22,7 @@ Release: 0.2.0
Summary: Implements a Kubernetes API for copying endpoint resources Summary: Implements a Kubernetes API for copying endpoint resources
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/suse-edge/endpoint-copier-operator URL: https://github.com/suse-edge/endpoint-copier-operator
Source: endpoint-copier-operator-%{version}.tar Source: endpoint-copier-operator-%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang(API) = 1.20 BuildRequires: golang(API) = 1.20
ExcludeArch: s390 ExcludeArch: s390

View File

@ -1,33 +0,0 @@
# 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
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
COPY --from=micro / /installroot/
RUN zypper --installroot /installroot --non-interactive install --no-recommends frr-k8s; zypper -n clean; rm -rf /var/log/*
FROM micro AS final
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.application.endpoint-copier-operator
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
LABEL org.opencontainers.image.title="SLE frr-k8s Container Image"
LABEL org.opencontainers.image.description="frr-k8s based on the SLE Base Container Image."
LABEL org.opencontainers.image.version="%%frr-k8s_version%%"
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.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr-k8s:v%%frr-k8s_version%%-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024"
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
LABEL com.suse.image-type="application"
LABEL com.suse.release-stage="released"
# endlabelprefix
#Install frr-k8s
COPY --from=base /installroot /
ENTRYPOINT ["/frr-k8s"]

View File

@ -1,19 +0,0 @@
<services>
<service mode="buildtime" name="kiwi_metainfo_helper"/>
<service mode="buildtime" name="docker_label_helper"/>
<service name="replace_using_package_version" mode="buildtime">
<param name="file">Dockerfile</param>
<param name="regex">%%frr-k8s_version%%</param>
<param name="package">frr-k8s</param>
<param name="parse-version">patch</param>
</service>
<service name="replace_using_env" mode="buildtime">
<param name="file">Dockerfile</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 %img_repo)</param>
<param name="var">IMG_REPO</param>
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
<param name="var">SUPPORT_LEVEL</param>
</service>
</services>

View File

@ -12,8 +12,10 @@
<param name="without-version">yes</param> <param name="without-version">yes</param>
<param name="versionrewrite-replacement">\1</param> <param name="versionrewrite-replacement">\1</param>
</service> </service>
<service mode="buildtime" name="tar"> <service mode="buildtime" name="tar" />
<param name="obsinfo">frr-k8s.obsinfo</param> <service mode="buildtime" name="recompress">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service> </service>
<service name="go_modules"> <service name="go_modules">
</service> </service>

View File

@ -22,7 +22,7 @@ Release: 0.0.14
Summary: A kubernetes based daemonset that exposes a subset of the FRR API in a kubernetes compliant manner. Summary: A kubernetes based daemonset that exposes a subset of the FRR API in a kubernetes compliant manner.
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/metallb/frr-k8s URL: https://github.com/metallb/frr-k8s
Source: frr-k8s-%{version}.tar Source: frr-k8s-%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang(API) = 1.22 BuildRequires: golang(API) = 1.22
ExcludeArch: s390 ExcludeArch: s390

View File

@ -8,8 +8,10 @@
<param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>
</service> </service>
<service mode="buildtime" name="tar"> <service mode="buildtime" name="tar" />
<param name="obsinfo">hauler.obsinfo</param> <service mode="buildtime" name="recompress">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service> </service>
<service mode="buildtime" name="set_version" /> <service mode="buildtime" name="set_version" />
<service name="go_modules"> <service name="go_modules">

View File

@ -23,7 +23,7 @@ Release: 0
Summary: Airgap Swiss Army Knife Summary: Airgap Swiss Army Knife
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/hauler-dev/hauler URL: https://github.com/hauler-dev/hauler
Source: hauler-%{version}.tar Source: hauler-%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang-packaging BuildRequires: golang-packaging
BuildRequires: cosign BuildRequires: cosign

View File

@ -1,6 +1,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.2 #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.0
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.2-%RELEASE% #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.0-%RELEASE%
#!BuildVersion: 15.6 #!BuildVersion: 15.6
ARG SLE_VERSION ARG SLE_VERSION
@ -8,14 +8,7 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
#!ArchExclusiveLine: x86_64 RUN set -euo pipefail; zypper -n in --no-recommends gcc git make xz-devel shim dosfstools mtools glibc-extra grub2-x86_64-efi grub2; zypper -n clean; rm -rf /var/log/*
RUN if [ "$(uname -m)" = "x86_64" ];then \
zypper -n in --no-recommends gcc git make xz-devel shim dosfstools mtools glibc-extra grub2-x86_64-efi grub2; zypper -n clean; rm -rf /var/log/*; \
fi
#!ArchExclusiveLine: aarch64
RUN if [ "$(uname -m)" = "aarch64" ];then \
zypper -n rm kubic-locale-archive-2.31-10.36.noarch openssl-1_1-1.1.1l-150500.17.37.1.aarch64; zypper -n in --no-recommends gcc git make xz-devel openssl-3 mokutil shim dosfstools mtools glibc glibc-extra grub2 grub2-arm64-efi; zypper -n clean; rm -rf /var/log/* ;\
fi
WORKDIR /tmp WORKDIR /tmp
COPY prepare-efi.sh /bin/ COPY prepare-efi.sh /bin/
RUN set -euo pipefail; chmod +x /bin/prepare-efi.sh RUN set -euo pipefail; chmod +x /bin/prepare-efi.sh
@ -23,16 +16,8 @@ RUN /bin/prepare-efi.sh
COPY --from=micro / /installroot/ COPY --from=micro / /installroot/
RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf
RUN zypper --installroot /installroot --non-interactive install --no-recommends python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 inotify-tools ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp syslinux ipxe-bootimgs crudini openstack-ironic
#!ArchExclusiveLine: x86_64
RUN if [ "$(uname -m)" = "x86_64" ];then \
zypper --installroot /installroot --non-interactive install --no-recommends syslinux python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi inotify-tools 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 python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi inotify-tools 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 # DATABASE
RUN mkdir -p /installroot/var/lib/ironic && \ RUN mkdir -p /installroot/var/lib/ironic && \
/installroot/usr/bin/sqlite3 /installroot/var/lib/ironic/ironic.sqlite "pragma journal_mode=wal" && \ /installroot/usr/bin/sqlite3 /installroot/var/lib/ironic/ironic.sqlite "pragma journal_mode=wal" && \
@ -46,8 +31,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.url="https://www.suse.com/products/server/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opencontainers.image.version="26.1.2.2" LABEL org.opencontainers.image.version="26.1.2.0"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.2-%RELEASE%" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.0-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"
@ -79,15 +64,7 @@ RUN mkdir -p $GRUB_DIR
# IRONIC # # IRONIC #
RUN cp /usr/share/ipxe/undionly.kpxe /tftpboot/undionly.kpxe RUN cp /usr/share/ipxe/undionly.kpxe /tftpboot/undionly.kpxe
#!ArchExclusiveLine: x86_64 RUN cp /usr/share/ipxe/ipxe-x86_64.efi /tftpboot/ipxe.efi
RUN if [ "$(uname -m)" = "x86_64" ];then \
cp /usr/share/ipxe/ipxe-x86_64.efi /tftpboot/ipxe.efi ;\
fi
#!ArchExclusiveLine: x86_64
RUN if [ "$(uname -m)" = "aarch64" ]; then\
cp /usr/share/ipxe/snp-arm64.efi /tftpboot/ipxe.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp-arm64.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp.efi ;\
fi
COPY --from=base /tmp/esp.img /tmp/uefi_esp.img COPY --from=base /tmp/esp.img /tmp/uefi_esp.img
COPY ironic.conf.j2 /etc/ironic/ COPY ironic.conf.j2 /etc/ironic/

View File

@ -6,37 +6,22 @@ ARCH=$(uname -m)
DEST=${2:-/tmp/esp.img} DEST=${2:-/tmp/esp.img}
OS=${1:-sles} OS=${1:-sles}
if [ $ARCH = "aarch64" ]; then BOOTEFI=BOOTX64.efi
BOOTEFI=BOOTAA64.EFI GRUBEFI=grubx64.efi
GRUBEFI=grubaa64.efi
else
BOOTEFI=BOOTX64.efi
GRUBEFI=grubx64.efi
fi
dd bs=1024 count=6400 if=/dev/zero of=$DEST dd bs=1024 count=6400 if=/dev/zero of=$DEST
mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST
mkdir -p /boot/efi/EFI/BOOT mkdir -p /boot/efi/EFI/BOOT
cp -L /usr/lib64/efi/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI
mkdir -p /boot/efi/EFI/$OS mkdir -p /boot/efi/EFI/$OS
if [ $ARCH = "aarch64" ]; then #cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/$GRUBEFI
cp -L /usr/share/efi/aarch64/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/grub.efi
cp -L /usr/share/efi/aarch64/grub.efi /boot/efi/EFI/BOOT/grub.efi
cp /usr/share/grub2/arm64-efi/grub.efi /boot/efi/EFI/$OS/grubaa64.efi
else
cp -L /usr/lib64/efi/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI
#cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/$GRUBEFI
cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/grub.efi
fi
mmd -i $DEST EFI mmd -i $DEST EFI
mmd -i $DEST EFI/BOOT mmd -i $DEST EFI/BOOT
mcopy -i $DEST -v /boot/efi/EFI/BOOT/$BOOTEFI ::EFI/BOOT mcopy -i $DEST -v /boot/efi/EFI/BOOT/$BOOTEFI ::EFI/BOOT
if [ $ARCH = "aarch64" ]; then #mcopy -i $DEST -v /boot/efi/EFI/$OS/$GRUBEFI ::EFI/BOOT
mcopy -i $DEST -v /boot/efi/EFI/BOOT/grub.efi ::EFI/BOOT mcopy -i $DEST -v /boot/efi/EFI/$OS/grub.efi ::EFI/BOOT
mcopy -i $DEST -v /boot/efi/EFI/$OS/$GRUBEFI ::EFI/BOOT
else
mcopy -i $DEST -v /boot/efi/EFI/$OS/grub.efi ::EFI/BOOT
fi
mdir -i $DEST ::EFI/BOOT; mdir -i $DEST ::EFI/BOOT;

View File

@ -3,14 +3,6 @@
# Ramdisk logs path # Ramdisk logs path
LOG_DIR="/shared/log/ironic/deploy" LOG_DIR="/shared/log/ironic/deploy"
# The ironic container creates the directory, wait for
# it to exist before running inotifywait or it can fail causing
# a spurious restart
while [ ! -d "${LOG_DIR}" ]; do
echo "Waiting for ${LOG_DIR}"
sleep 5
done
inotifywait -m "${LOG_DIR}" -e close_write | inotifywait -m "${LOG_DIR}" -e close_write |
while read -r path _action file; do while read -r path _action file; do
echo "************ Contents of ${path}/${file} ramdisk log file bundle **************" echo "************ Contents of ${path}/${file} ramdisk log file bundle **************"

View File

@ -1,6 +1,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1 #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.0
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.0-%RELEASE%
#!BuildVersion: 15.6 #!BuildVersion: 15.6
ARG SLE_VERSION ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
@ -8,14 +8,7 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
COPY --from=micro / /installroot/ COPY --from=micro / /installroot/
RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf
#!ArchExclusiveLine: x86_64 RUN zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-x86_64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*
RUN if [ "$(uname -m)" = "x86_64" ];then \
zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-x86_64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*; \
fi
#!ArchExclusiveLine: aarch64
RUN if [ "$(uname -m)" = "aarch64" ];then \
zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-aarch64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*; \
fi
#RUN zypper --installroot /installroot --non-interactive install --no-recommends sles-release; #RUN zypper --installroot /installroot --non-interactive install --no-recommends sles-release;
RUN cp /usr/bin/getopt /installroot/ RUN cp /usr/bin/getopt /installroot/
@ -26,11 +19,11 @@ FROM micro AS final
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)" LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
LABEL org.opencontainers.image.title="SLE Based Ironic IPA Downloader Container Image" LABEL org.opencontainers.image.title="SLE Based Ironic IPA Downloader Container Image"
LABEL org.opencontainers.image.description="ironic-ipa-downloader based on the SLE Base Container Image." LABEL org.opencontainers.image.description="ironic-ipa-downloader based on the SLE Base Container Image."
LABEL org.opencontainers.image.version="3.0.1" LABEL org.opencontainers.image.version="3.0.0"
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/" LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%RELEASE%" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.0-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"

View File

@ -1,6 +1,12 @@
<services> <services>
<service mode="buildtime" name="kiwi_metainfo_helper"/> <service mode="buildtime" name="kiwi_metainfo_helper"/>
<service mode="buildtime" name="docker_label_helper"/> <service mode="buildtime" name="docker_label_helper"/>
<service name="replace_using_package_version" mode="buildtime">
<param name="file">Dockerfile</param>
<param name="regex">%%ironic-ipa-ramdisk-x86_64_version%%</param>
<param name="package">ironic-ipa-ramdisk-x86_64</param>
<param name="parse-version">patch</param>
</service>
<service name="replace_using_env" mode="buildtime"> <service name="replace_using_env" mode="buildtime">
<param name="file">Dockerfile</param> <param name="file">Dockerfile</param>
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>

View File

@ -8,10 +8,10 @@ export no_proxy=${no_proxy:-$NO_PROXY}
# Which image should we use # Which image should we use
if [ -z "${IPA_BASEURI}" ]; then if [ -z "${IPA_BASEURI}" ]; then
# SLES BASED IPA - ironic-ipa-ramdisk-x86_64 package # SLES BASED IPA - openstack-ironic-image-x86_64 package
mkdir -p /shared/html/images mkdir -p /shared/html/images
cp /tmp/initrd.xz /shared/html/images/ironic-python-agent.initramfs cp /tmp/initrd.xz /shared/html/images/ironic-python-agent.initramfs
cp /tmp/openstack-ironic-image*.kernel /shared/html/images/ironic-python-agent.kernel cp /tmp/openstack-ironic-image*.x86_64*.kernel /shared/html/images/ironic-python-agent.kernel
else else
FILENAME=ironic-python-agent FILENAME=ironic-python-agent
FILENAME_EXT=.tar FILENAME_EXT=.tar
@ -68,4 +68,4 @@ if [ -d "/tmp/ironic-certificates" ]; then
mkdir -p etc/ironic-python-agent.d/ca-certs mkdir -p etc/ironic-python-agent.d/ca-certs
cp /tmp/ironic-certificates/* etc/ironic-python-agent.d/ca-certs/ cp /tmp/ironic-certificates/* etc/ironic-python-agent.d/ca-certs/
find . | fakeroot -i ../initrd.fakeroot cpio -o -H newc | xz --check=crc32 --x86 --lzma2 --fast > /shared/html/images/ironic-python-agent.initramfs find . | fakeroot -i ../initrd.fakeroot cpio -o -H newc | xz --check=crc32 --x86 --lzma2 --fast > /shared/html/images/ironic-python-agent.initramfs
fi fi

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<image schemaversion="7.4" name="openstack-ironic-image-301"> <image schemaversion="7.4" name="openstack-ironic-image-201">
<description type="system"> <description type="system">
<author>Cloud developers</author> <author>Cloud developers</author>
<contact>cloud-devel@suse.de</contact> <contact>cloud-devel@suse.de</contact>
@ -116,9 +116,8 @@
<package name="vim"/> <package name="vim"/>
<package name="grub2"/> <package name="grub2"/>
<package name="grub2-x86_64-efi" arch="x86_64"/> <package name="grub2-x86_64-efi" arch="x86_64"/>
<package name="grub2-arm64-efi" arch="aarch64"/> <package name="grub2-i386-pc"/>
<package name="grub2-i386-pc" arch="x86_64"/> <package name="syslinux"/>
<package name="syslinux" arch="x86_64"/>
<package name="lvm2"/> <package name="lvm2"/>
<package name="plymouth"/> <package name="plymouth"/>
<package name="fontconfig"/> <package name="fontconfig"/>
@ -136,10 +135,12 @@
<package name="openstack-ironic-python-agent"/> <package name="openstack-ironic-python-agent"/>
<package name="hdparm"/> <package name="hdparm"/>
<package name="qemu-tools"/> <package name="qemu-tools"/>
<package name="python311-proliantutils"/> <package name="python311-proliantutils" arch="x86_64"/>
<package name="lshw"/> <package name="lshw"/>
<package name="dmidecode"/> <package name="dmidecode" arch="aarch64"/>
<package name="efibootmgr"/> <package name="dmidecode" arch="x86_64"/>
<package name="efibootmgr" arch="aarch64" />
<package name="efibootmgr" arch="x86_64" />
<package name="gptfdisk"/> <package name="gptfdisk"/>
<package name="open-iscsi"/> <package name="open-iscsi"/>
<package name="hwinfo"/> <package name="hwinfo"/>
@ -156,6 +157,7 @@
</packages> </packages>
<packages type="kis"> <packages type="kis">
<package name="gfxboot-branding-SLE"/>
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="dracut-kiwi-oem-dump"/> <package name="dracut-kiwi-oem-dump"/>
</packages> </packages>

View File

@ -19,7 +19,7 @@
Name: ironic-ipa-ramdisk Name: ironic-ipa-ramdisk
Version: 3.0.1 Version: 3.0.0
Release: 0 Release: 0
Summary: Kernel and ramdisk image for OpenStack Ironic Summary: Kernel and ramdisk image for OpenStack Ironic
License: SUSE-EULA License: SUSE-EULA
@ -49,12 +49,7 @@ BuildRequires: fontconfig
BuildRequires: fonts-config BuildRequires: fonts-config
BuildRequires: gptfdisk BuildRequires: gptfdisk
BuildRequires: grub2 BuildRequires: grub2
%ifarch x86_64
BuildRequires: grub2-x86_64-efi BuildRequires: grub2-x86_64-efi
%endif
%ifarch aarch64
BuildRequires: grub2-arm64-efi
%endif
BuildRequires: haveged BuildRequires: haveged
BuildRequires: hdparm BuildRequires: hdparm
BuildRequires: hwinfo BuildRequires: hwinfo
@ -98,14 +93,19 @@ BuildRequires: plymouth-dracut
BuildRequires: plymouth-theme-bgrt BuildRequires: plymouth-theme-bgrt
BuildRequires: dracut-kiwi-oem-dump BuildRequires: dracut-kiwi-oem-dump
BuildRequires: dracut-kiwi-oem-repart BuildRequires: dracut-kiwi-oem-repart
BuildRequires: gfxboot-branding-SLE
BuildRequires: grub2-branding-SLE BuildRequires: grub2-branding-SLE
BuildRequires: open-iscsi BuildRequires: open-iscsi
BuildRequires: plymouth-branding-SLE BuildRequires: plymouth-branding-SLE
BuildRequires: lshw BuildRequires: lshw
BuildRequires: kbd BuildRequires: kbd
%ifarch aarch64
BuildRequires: dmidecode BuildRequires: dmidecode
BuildRequires: efibootmgr BuildRequires: efibootmgr
%endif
%ifarch x86_64 %ifarch x86_64
BuildRequires: dmidecode
BuildRequires: efibootmgr
BuildRequires: syslinux BuildRequires: syslinux
%endif %endif

Binary file not shown.

View File

@ -1,5 +1,5 @@
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.1 #!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.0
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.0-%RELEASE%
FROM registry.suse.com/bci/kiwi:10.1.16 FROM registry.suse.com/bci/kiwi:10.1.16
MAINTAINER SUSE LLC (https://www.suse.com/) MAINTAINER SUSE LLC (https://www.suse.com/)
@ -12,7 +12,7 @@ LABEL org.opencontainers.image.version="%PACKAGE_VERSION%"
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/" LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:10.1.16.1" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:10.1.16.0"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"

View File

@ -2,13 +2,13 @@
Kiwi SDK Image Instructions Kiwi SDK Image Instructions
########################### ###########################
Please ensure that you're running this on a registered SUSE Linux Micro 6.1 system, and make sure that SELinux is disabled: Please ensure that you're running this on a registered SLE Micro 6.0 system, and make sure that SELinux is disabled:
# setenforce 0 # setenforce 0
Next, download the podman image: Next, download the podman image:
# podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 # podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0
Make a local output directory (where the images will reside): Make a local output directory (where the images will reside):
@ -16,40 +16,40 @@ Make a local output directory (where the images will reside):
Then, to build a standard "Base" image, run the following in podman: Then, to build a standard "Base" image, run the following in podman:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image
To build a "Base" SelfInstall ISO, you can add additional flags, for example: To build a "Base" SelfInstall ISO, you can add additional flags, for example:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Base-SelfInstall # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Base-SelfInstall
Then, to build a standard "Default" image, run the following in podman: Then, to build a standard "Default" image, run the following in podman:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Default # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Default
To build a "Default" SelfInstall ISO, you can add additional flags, for example: To build a "Default" SelfInstall ISO, you can add additional flags, for example:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Default-SelfInstall # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Default-SelfInstall
To build an image with a RealTime kernel, e.g. a RAW disk image ("Default"), use the following: To build an image with a RealTime kernel, e.g. a RAW disk image ("Default"), use the following:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Base-RT # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Base-RT
To build an image that supports a large block/sectorsize (4096), use the "-b" flag, for example: To build an image that supports a large block/sectorsize (4096), use the "-b" flag, for example:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Default-SelfInstall -b # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Default-SelfInstall -b
# mkdir mydefs/ # mkdir mydefs/
# cp /path/to/SL-Micro.kiwi mydefs/ # cp /path/to/SL-Micro.kiwi mydefs/
# cp /path/to/config.sh mydefs/ # cp /path/to/config.sh mydefs/
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image
All output will be in the local $(pwd)/output directory, for example: All output will be in the local $(pwd)/output directory, for example:
# ls -1 output/ # ls -1 output/
SLE-Micro.x86_64-6.1.changes SLE-Micro.x86_64-6.0.changes
SLE-Micro.x86_64-6.1.packages SLE-Micro.x86_64-6.0.packages
SLE-Micro.x86_64-6.1.raw SLE-Micro.x86_64-6.0.raw
SLE-Micro.x86_64-6.1.verified SLE-Micro.x86_64-6.0.verified
build build
kiwi.result kiwi.result
kiwi.result.json kiwi.result.json

View File

@ -33,12 +33,6 @@
<profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64"> <profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
<profile name="aarch64-rt" description="Raw disk for aarch64 with RT kernel" arch="aarch64">
<requires profile="bootloader"/>
</profile>
<profile name="aarch64-rt-self_install" description="Raw disk for aarch64 with RT kernel" arch="aarch64">
<requires profile="bootloader"/>
</profile>
<profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64"> <profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
@ -69,21 +63,6 @@
<profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x"> <profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
<profile name="s390-fcp" description="Raw disk for s390 - SCSI" arch="s390x">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-512ss" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-4096ss" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-512ss-self_install" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-4096ss-self_install" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<!-- Images (flavor + platform) --> <!-- Images (flavor + platform) -->
<profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64"> <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64">
<requires profile="full"/> <requires profile="full"/>
@ -161,15 +140,6 @@
<requires profile="x86-rt-self_install"/> <requires profile="x86-rt-self_install"/>
<requires profile="self_install"/> <requires profile="self_install"/>
</profile> </profile>
<profile name="Base-RT" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64">
<requires profile="container-host"/>
<requires profile="aarch64-rt"/>
</profile>
<profile name="Base-RT-SelfInstall" description="SL Micro with Podman as raw image with uEFI boot - SelfInstall" arch="aarch64">
<requires profile="container-host"/>
<requires profile="aarch64-rt-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x"> <profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x">
<requires profile="full"/> <requires profile="full"/>
<requires profile="s390-kvm"/> <requires profile="s390-kvm"/>
@ -194,14 +164,6 @@
<requires profile="container-host"/> <requires profile="container-host"/>
<requires profile="s390-fba"/> <requires profile="s390-fba"/>
</profile> </profile>
<profile name="Default-fcp" description="SL Micro with Podman and KVM as raw image for zFCP on System z" arch="s390x">
<requires profile="full"/>
<requires profile="s390-fcp"/>
</profile>
<profile name="Base-fcp" description="SL Micro with Podman as raw image for zFCP on System z" arch="s390x">
<requires profile="container-host"/>
<requires profile="s390-fcp"/>
</profile>
<profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64"> <profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64">
<requires profile="full"/> <requires profile="full"/>
<requires profile="x86-legacy"/> <requires profile="x86-legacy"/>
@ -222,47 +184,10 @@
<requires profile="container-host"/> <requires profile="container-host"/>
<requires profile="aarch64-qcow"/> <requires profile="aarch64-qcow"/>
</profile> </profile>
<profile name="Base-512" description="SL Micro with Podman as raw image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-512ss"/>
</profile>
<profile name="Base-4096" description="SL Micro with Podman as raw image for ppc64le with 4096b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-4096ss"/>
</profile>
<profile name="Base-512-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-512ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Base-4096-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-4096ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-512" description="SL Micro with Podman and KVM as raw image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-512ss"/>
</profile>
<profile name="Default-4096" description="SL Micro with Podman and KVM as raw image for ppc64le with 4096b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-4096ss"/>
</profile>
<profile name="Default-512-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-512ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-4096-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-4096ss-self_install"/>
<requires profile="self_install"/>
</profile>
</profiles> </profiles>
<preferences profiles="x86-encrypted,x86-rt-encrypted"> <preferences profiles="x86-encrypted,x86-rt-encrypted">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -273,7 +198,7 @@
initrd_system="dracut" initrd_system="dracut"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -286,7 +211,7 @@
luks_pbkdf="pbkdf2" luks_pbkdf="pbkdf2"
> >
<luksformat> <luksformat>
<option name="--cipher" value="aes-xts-plain64"/> <option name="--cipher" value="aes"/>
</luksformat> </luksformat>
<bootloader name="grub2" console="gfxterm" use_disk_password="true" /> <bootloader name="grub2" console="gfxterm" use_disk_password="true" />
<systemdisk> <systemdisk>
@ -305,7 +230,7 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="x86,x86-rt"> <preferences profiles="x86,x86-rt">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -316,7 +241,7 @@
initrd_system="dracut" initrd_system="dracut"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -341,7 +266,7 @@
</preferences> </preferences>
<preferences profiles="x86-self_install,x86-rt-self_install"> <preferences profiles="x86-self_install,x86-rt-self_install">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -351,12 +276,11 @@
image="oem" image="oem"
initrd_system="dracut" initrd_system="dracut"
installiso="true" installiso="true"
installpxe="true"
filesystem="btrfs" filesystem="btrfs"
installboot="install" installboot="install"
install_continue_on_timeout="false" install_continue_on_timeout="false"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -380,8 +304,8 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="rpi,aarch64-rt"> <preferences profiles="rpi">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -396,11 +320,11 @@
install_continue_on_timeout="false" install_continue_on_timeout="false"
fsmountoptions="noatime" fsmountoptions="noatime"
firmware="uefi" firmware="uefi"
kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200n8 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
efipartsize="128" efipartsize="128"
editbootinstall="editbootinstall_rpi.sh" editbootinstall="editbootinstall_rpi.sh"
btrfs_root_is_readonly_snapshot="true" btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="false" btrfs_quota_groups="false"
@ -420,8 +344,8 @@
</systemdisk> </systemdisk>
</type> </type>
</preferences> </preferences>
<preferences profiles="aarch64-self_install,aarch64-rt-self_install"> <preferences profiles="aarch64-self_install">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -431,13 +355,12 @@
image="oem" image="oem"
initrd_system="dracut" initrd_system="dracut"
installiso="true" installiso="true"
installpxe="true"
filesystem="btrfs" filesystem="btrfs"
installboot="install" installboot="install"
install_continue_on_timeout="false" install_continue_on_timeout="false"
firmware="uefi" firmware="uefi"
efipartsize="128" efipartsize="128"
kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -462,22 +385,22 @@
</preferences> </preferences>
<preferences profiles="s390-kvm"> <preferences profiles="s390-kvm">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs> <rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale> <locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type <type
image="oem" image="oem"
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext4" bootfilesystem="ext2"
initrd_system="dracut" initrd_system="dracut"
format="qcow2" format="qcow2"
kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 ignition.platform.id=metal" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true" btrfs_root_is_readonly_snapshot="true"
@ -500,7 +423,7 @@
<preferences profiles="s390-dasd"> <preferences profiles="s390-dasd">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -511,9 +434,9 @@
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext4" bootfilesystem="ext2"
initrd_system="dracut" initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet"
devicepersistency="by-uuid" devicepersistency="by-uuid"
target_blocksize="4096" target_blocksize="4096"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
@ -538,7 +461,7 @@
<preferences profiles="s390-fba"> <preferences profiles="s390-fba">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -549,9 +472,9 @@
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext4" bootfilesystem="ext2"
initrd_system="dracut" initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true" btrfs_root_is_readonly_snapshot="true"
@ -572,47 +495,9 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="s390-fcp">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<type
image="oem"
filesystem="btrfs"
installpxe="true"
bootpartition="true"
bootpartsize="300"
bootfilesystem="ext4"
initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<oemconfig>
<oem-multipath-scan>true</oem-multipath-scan>
</oemconfig>
<bootloader name="grub2_s390x_emu" console="serial" timeout="3" targettype="SCSI"/>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/s390x-emu" mountpoint="boot/grub2/s390x-emu"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
<size unit="G">5</size>
</type>
</preferences>
<preferences profiles="x86-vmware"> <preferences profiles="x86-vmware">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -647,7 +532,7 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="x86-qcow"> <preferences profiles="x86-qcow">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -658,7 +543,7 @@
format="qcow2" format="qcow2"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -682,9 +567,9 @@
<size unit="G">32</size> <size unit="G">32</size>
</type> </type>
</preferences> </preferences>
<preferences profiles="aarch64-qcow"> <preferences profiles="aarch64-qcow">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -695,8 +580,8 @@
format="qcow2" format="qcow2"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
efipartsize="128" efipartsize="128"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -707,7 +592,7 @@
<systemdisk> <systemdisk>
<volume name="home"/> <volume name="home"/>
<volume name="root"/> <volume name="root"/>
<volume name="opt"/> <volume name="opt"/>
<volume name="srv"/> <volume name="srv"/>
<volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/>
<volume name="boot/writable"/> <volume name="boot/writable"/>
@ -718,161 +603,6 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="ppc64le-512ss">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-4096ss">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching
disk_start_sector="256" -->
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
target_blocksize="4096"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-512ss-self_install">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
installiso="true"
installpxe="true"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<installmedia>
<initrd action="omit">
<dracut module="drm"/>
</initrd>
</installmedia>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-4096ss-self_install">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching
disk_start_sector="256" -->
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
installiso="true"
installpxe="true"
target_blocksize="4096"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<installmedia>
<initrd action="omit">
<dracut module="drm"/>
</initrd>
</installmedia>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<repository type="rpm-md" > <repository type="rpm-md" >
<source path='obsrepositories:/'/> <source path='obsrepositories:/'/>
</repository> </repository>
@ -886,7 +616,7 @@
<package name="patterns-base-kvm_host"/> <package name="patterns-base-kvm_host"/>
<package name="lzop"/> <package name="lzop"/>
<namedCollection name="container_runtime_podman"/> <namedCollection name="container_runtime_podman"/>
<package name="patterns-container-runtime_podman"/> <package name="patterns-container-runtime_podman"/>
<namedCollection name="cockpit"/> <namedCollection name="cockpit"/>
<package name="patterns-base-cockpit"/> <package name="patterns-base-cockpit"/>
<namedCollection name="selinux"/> <namedCollection name="selinux"/>
@ -898,6 +628,7 @@
<package name="firewalld"/> <package name="firewalld"/>
<package name="wpa_supplicant" arch="x86_64,aarch64"/> <package name="wpa_supplicant" arch="x86_64,aarch64"/>
<package name="libpwquality-tools"/> <package name="libpwquality-tools"/>
<!-- <package name="k3s-install"/> -->
</packages> </packages>
<packages type="image" profiles="x86-encrypted,x86-rt-encrypted"> <packages type="image" profiles="x86-encrypted,x86-rt-encrypted">
@ -916,7 +647,9 @@
<namedCollection name="base_transactional"/> <namedCollection name="base_transactional"/>
<package name="patterns-base-transactional"/> <package name="patterns-base-transactional"/>
<namedCollection name="container_runtime_podman"/> <namedCollection name="container_runtime_podman"/>
<package name="patterns-container-runtime_podman"/> <package name="patterns-container-runtime_podman"/>
<namedCollection name="cockpit"/>
<package name="patterns-base-cockpit"/>
<namedCollection name="selinux"/> <namedCollection name="selinux"/>
<package name="patterns-base-selinux"/> <package name="patterns-base-selinux"/>
<package name="suseconnect-ng"/> <package name="suseconnect-ng"/>
@ -970,7 +703,7 @@
<package name="NetworkManager"/> <package name="NetworkManager"/>
<package name="NetworkManager-branding-SLE"/> <package name="NetworkManager-branding-SLE"/>
<package name="ModemManager"/> <package name="ModemManager"/>
<!-- FIXME does not build without control file which is obsolete <!-- FIXME does not build without control file which is obsolete
<package name="live-add-yast-repos"/> --> <package name="live-add-yast-repos"/> -->
<package name="parted"/> <!-- seems missing to deploy the image --> <package name="parted"/> <!-- seems missing to deploy the image -->
</packages> </packages>
@ -980,8 +713,7 @@
<package name="grub2-x86_64-efi" arch="x86_64"/> <package name="grub2-x86_64-efi" arch="x86_64"/>
<package name="grub2-arm64-efi" arch="aarch64"/> <package name="grub2-arm64-efi" arch="aarch64"/>
<package name="grub2-s390x-emu" arch="s390x"/> <package name="grub2-s390x-emu" arch="s390x"/>
<package name="grub2-powerpc-ieee1275" arch="ppc64le"/> <package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64"/>
<package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64,ppc64le"/>
<package name="grub2-snapper-plugin"/> <package name="grub2-snapper-plugin"/>
<package name="shim" arch="x86_64,aarch64"/> <package name="shim" arch="x86_64,aarch64"/>
<package name="mokutil" arch="x86_64,aarch64"/> <package name="mokutil" arch="x86_64,aarch64"/>
@ -989,44 +721,46 @@
<package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead --> <package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead -->
</packages> </packages>
<!-- rpi kernel-default-base does not provide all necessary drivers --> <!-- rpi kernel-default-base does not provide all necessary drivers -->
<packages type="image" profiles="rpi,aarch64-self_install,x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba,s390-fcp,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install"> <packages type="image" profiles="x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba">
<package name="kernel-default"/> <package name="kernel-default"/>
<package name="kernel-firmware-all"/> <package name="kernel-firmware-all"/>
</packages> </packages>
<packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted,aarch64-rt,aarch64-rt-self_install"> <packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted">
<package name="kernel-rt"/> <package name="kernel-rt"/>
<package name="kernel-firmware-all"/> <package name="kernel-firmware-all"/>
<!-- FIXME intentionally removed from ALP code stream <!-- FIXME intentionally removed from ALP code stream
<package name="cpuset"/> --> <package name="cpuset"/> -->
</packages> </packages>
<packages type="image" profiles="s390-kvm,s390-dasd,s390-fba,s390-fcp"> <!-- makes the image build, but also include kernel-default
<package name="dracut-kiwi-oem-dump"/> <packages type="image" profiles="x86-rt-encrypted">
<package name="kernel-default-extra"/>
</packages> -->
<packages type="image" profiles="s390-kvm,s390-dasd,s390-fba">
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="blog"/> <package name="blog"/>
</packages> </packages>
<!-- FCP is usually used multipathed. --> <packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install">
<packages type="image" profiles="s390-fcp">
<package name="multipath-tools"/>
</packages>
<packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install">
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="dracut-kiwi-oem-dump"/> <package name="dracut-kiwi-oem-dump"/>
</packages> </packages>
<packages type="image" profiles="rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install"> <packages type="image" profiles="rpi,aarch64-self_install">
<package name="raspberrypi-firmware" arch="aarch64"/> <package name="raspberrypi-firmware" arch="aarch64"/>
<package name="raspberrypi-firmware-config" arch="aarch64"/> <package name="raspberrypi-firmware-config" arch="aarch64"/>
<package name="raspberrypi-firmware-dt" arch="aarch64"/> <package name="raspberrypi-firmware-dt" arch="aarch64"/>
<package name="u-boot-rpiarm64" arch="aarch64"/> <package name="u-boot-rpiarm64" arch="aarch64"/>
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="bcm43xx-firmware"/> <package name="bcm43xx-firmware"/>
<package name="kernel-firmware-all"/><!-- Fix choice between kernel-firmware and kernel-firmware-all -->
<package name="wireless-regdb"/> <package name="wireless-regdb"/>
<package name="wireless-tools"/> <package name="wireless-tools"/>
<package name="wpa_supplicant"/> <package name="wpa_supplicant"/>
<package name="grub2-arm64-efi"/> <package name="grub2-arm64-efi"/>
<!-- kernel-default-base does not have all required drivers -->
<package name="kernel-default"/>
</packages> </packages>
<packages type="bootstrap"> <packages type="bootstrap">
<package name="filesystem"/>
<package name="coreutils"/> <package name="coreutils"/>
<package name="filesystem"/>
<package name="ca-certificates"/> <package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/> <package name="ca-certificates-mozilla"/>
</packages> </packages>
@ -1040,14 +774,4 @@
<packages type="image" profiles="x86-qcow,aarch64-qcow"> <packages type="image" profiles="x86-qcow,aarch64-qcow">
<package name="qemu-guest-agent"/> <package name="qemu-guest-agent"/>
</packages> </packages>
<!-- jsc#PED-8599 -->
<packages type="image" profiles="Base,Base-encrypted,Base-RT,Base-RT-encrypted,Base-fba,Base-dasd,Base-fcp,Base-512,Base-4096,Default,Default-encrypted,Default-fba,Default-dasd,Default-fcp,Default-512,Default-4096">
<package name="usbguard"/>
</packages>
<!-- jsc#PED-8788 -->
<packages type="image" profiles="Base-RT,Base-RT-encrypted,x86-rt-encrypted,x86-rt,x86-rt-self_install,aarch64-rt,aarch64-rt-self_install">
<package name="stalld"/>
</packages>
</image> </image>

View File

@ -33,12 +33,6 @@
<profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64"> <profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
<profile name="aarch64-rt" description="Raw disk for aarch64 with RT kernel" arch="aarch64">
<requires profile="bootloader"/>
</profile>
<profile name="aarch64-rt-self_install" description="Raw disk for aarch64 with RT kernel" arch="aarch64">
<requires profile="bootloader"/>
</profile>
<profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64"> <profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
@ -69,21 +63,6 @@
<profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x"> <profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
<profile name="s390-fcp" description="Raw disk for s390 - SCSI" arch="s390x">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-512ss" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-4096ss" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-512ss-self_install" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-4096ss-self_install" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<!-- Images (flavor + platform) --> <!-- Images (flavor + platform) -->
<profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64"> <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64">
<requires profile="full"/> <requires profile="full"/>
@ -161,15 +140,6 @@
<requires profile="x86-rt-self_install"/> <requires profile="x86-rt-self_install"/>
<requires profile="self_install"/> <requires profile="self_install"/>
</profile> </profile>
<profile name="Base-RT" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64">
<requires profile="container-host"/>
<requires profile="aarch64-rt"/>
</profile>
<profile name="Base-RT-SelfInstall" description="SL Micro with Podman as raw image with uEFI boot - SelfInstall" arch="aarch64">
<requires profile="container-host"/>
<requires profile="aarch64-rt-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x"> <profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x">
<requires profile="full"/> <requires profile="full"/>
<requires profile="s390-kvm"/> <requires profile="s390-kvm"/>
@ -194,14 +164,6 @@
<requires profile="container-host"/> <requires profile="container-host"/>
<requires profile="s390-fba"/> <requires profile="s390-fba"/>
</profile> </profile>
<profile name="Default-fcp" description="SL Micro with Podman and KVM as raw image for zFCP on System z" arch="s390x">
<requires profile="full"/>
<requires profile="s390-fcp"/>
</profile>
<profile name="Base-fcp" description="SL Micro with Podman as raw image for zFCP on System z" arch="s390x">
<requires profile="container-host"/>
<requires profile="s390-fcp"/>
</profile>
<profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64"> <profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64">
<requires profile="full"/> <requires profile="full"/>
<requires profile="x86-legacy"/> <requires profile="x86-legacy"/>
@ -222,47 +184,10 @@
<requires profile="container-host"/> <requires profile="container-host"/>
<requires profile="aarch64-qcow"/> <requires profile="aarch64-qcow"/>
</profile> </profile>
<profile name="Base-512" description="SL Micro with Podman as raw image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-512ss"/>
</profile>
<profile name="Base-4096" description="SL Micro with Podman as raw image for ppc64le with 4096b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-4096ss"/>
</profile>
<profile name="Base-512-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-512ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Base-4096-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-4096ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-512" description="SL Micro with Podman and KVM as raw image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-512ss"/>
</profile>
<profile name="Default-4096" description="SL Micro with Podman and KVM as raw image for ppc64le with 4096b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-4096ss"/>
</profile>
<profile name="Default-512-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-512ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-4096-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-4096ss-self_install"/>
<requires profile="self_install"/>
</profile>
</profiles> </profiles>
<preferences profiles="x86-encrypted,x86-rt-encrypted"> <preferences profiles="x86-encrypted,x86-rt-encrypted">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -273,7 +198,7 @@
initrd_system="dracut" initrd_system="dracut"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -288,7 +213,7 @@
efipartsize="200" efipartsize="200"
> >
<luksformat> <luksformat>
<option name="--cipher" value="aes-xts-plain64"/> <option name="--cipher" value="aes"/>
</luksformat> </luksformat>
<bootloader name="grub2" console="gfxterm" use_disk_password="true" /> <bootloader name="grub2" console="gfxterm" use_disk_password="true" />
<systemdisk> <systemdisk>
@ -307,7 +232,7 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="x86,x86-rt"> <preferences profiles="x86,x86-rt">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -318,7 +243,7 @@
initrd_system="dracut" initrd_system="dracut"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -345,7 +270,7 @@
</preferences> </preferences>
<preferences profiles="x86-self_install,x86-rt-self_install"> <preferences profiles="x86-self_install,x86-rt-self_install">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -355,12 +280,11 @@
image="oem" image="oem"
initrd_system="dracut" initrd_system="dracut"
installiso="true" installiso="true"
installpxe="true"
filesystem="btrfs" filesystem="btrfs"
installboot="install" installboot="install"
install_continue_on_timeout="false" install_continue_on_timeout="false"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -386,8 +310,8 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="rpi,aarch64-rt"> <preferences profiles="rpi">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -402,7 +326,7 @@
install_continue_on_timeout="false" install_continue_on_timeout="false"
fsmountoptions="noatime" fsmountoptions="noatime"
firmware="uefi" firmware="uefi"
kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200n8 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
@ -426,8 +350,8 @@
</systemdisk> </systemdisk>
</type> </type>
</preferences> </preferences>
<preferences profiles="aarch64-self_install,aarch64-rt-self_install"> <preferences profiles="aarch64-self_install">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -437,13 +361,12 @@
image="oem" image="oem"
initrd_system="dracut" initrd_system="dracut"
installiso="true" installiso="true"
installpxe="true"
filesystem="btrfs" filesystem="btrfs"
installboot="install" installboot="install"
install_continue_on_timeout="false" install_continue_on_timeout="false"
firmware="uefi" firmware="uefi"
efipartsize="128" efipartsize="128"
kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -468,22 +391,22 @@
</preferences> </preferences>
<preferences profiles="s390-kvm"> <preferences profiles="s390-kvm">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs> <rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale> <locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type <type
image="oem" image="oem"
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext4" bootfilesystem="ext2"
initrd_system="dracut" initrd_system="dracut"
format="qcow2" format="qcow2"
kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 ignition.platform.id=metal" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true" btrfs_root_is_readonly_snapshot="true"
@ -506,7 +429,7 @@
<preferences profiles="s390-dasd"> <preferences profiles="s390-dasd">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -517,9 +440,9 @@
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext4" bootfilesystem="ext2"
initrd_system="dracut" initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet"
devicepersistency="by-uuid" devicepersistency="by-uuid"
target_blocksize="4096" target_blocksize="4096"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
@ -544,7 +467,7 @@
<preferences profiles="s390-fba"> <preferences profiles="s390-fba">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -555,9 +478,9 @@
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext4" bootfilesystem="ext2"
initrd_system="dracut" initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true" btrfs_root_is_readonly_snapshot="true"
@ -578,47 +501,9 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="s390-fcp">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<type
image="oem"
filesystem="btrfs"
installpxe="true"
bootpartition="true"
bootpartsize="300"
bootfilesystem="ext4"
initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<oemconfig>
<oem-multipath-scan>true</oem-multipath-scan>
</oemconfig>
<bootloader name="grub2_s390x_emu" console="serial" timeout="3" targettype="SCSI"/>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/s390x-emu" mountpoint="boot/grub2/s390x-emu"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
<size unit="G">5</size>
</type>
</preferences>
<preferences profiles="x86-vmware"> <preferences profiles="x86-vmware">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -653,7 +538,7 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="x86-qcow"> <preferences profiles="x86-qcow">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -664,7 +549,7 @@
format="qcow2" format="qcow2"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -692,7 +577,7 @@
</preferences> </preferences>
<preferences profiles="aarch64-qcow"> <preferences profiles="aarch64-qcow">
<version>6.1</version> <version>6.0</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@ -704,7 +589,7 @@
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
efipartsize="128" efipartsize="128"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@ -715,7 +600,7 @@
<systemdisk> <systemdisk>
<volume name="home"/> <volume name="home"/>
<volume name="root"/> <volume name="root"/>
<volume name="opt"/> <volume name="opt"/>
<volume name="srv"/> <volume name="srv"/>
<volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/>
<volume name="boot/writable"/> <volume name="boot/writable"/>
@ -726,161 +611,6 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="ppc64le-512ss">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-4096ss">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching
disk_start_sector="256" -->
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
target_blocksize="4096"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-512ss-self_install">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
installiso="true"
installpxe="true"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<installmedia>
<initrd action="omit">
<dracut module="drm"/>
</initrd>
</installmedia>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-4096ss-self_install">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching
disk_start_sector="256" -->
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
installiso="true"
installpxe="true"
target_blocksize="4096"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<installmedia>
<initrd action="omit">
<dracut module="drm"/>
</initrd>
</installmedia>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<repository type="rpm-md" > <repository type="rpm-md" >
<source path='obsrepositories:/'/> <source path='obsrepositories:/'/>
</repository> </repository>
@ -925,6 +655,8 @@
<package name="patterns-base-transactional"/> <package name="patterns-base-transactional"/>
<namedCollection name="container_runtime_podman"/> <namedCollection name="container_runtime_podman"/>
<package name="patterns-container-runtime_podman"/> <package name="patterns-container-runtime_podman"/>
<namedCollection name="cockpit"/>
<package name="patterns-base-cockpit"/>
<namedCollection name="selinux"/> <namedCollection name="selinux"/>
<package name="patterns-base-selinux"/> <package name="patterns-base-selinux"/>
<package name="suseconnect-ng"/> <package name="suseconnect-ng"/>
@ -988,8 +720,7 @@
<package name="grub2-x86_64-efi" arch="x86_64"/> <package name="grub2-x86_64-efi" arch="x86_64"/>
<package name="grub2-arm64-efi" arch="aarch64"/> <package name="grub2-arm64-efi" arch="aarch64"/>
<package name="grub2-s390x-emu" arch="s390x"/> <package name="grub2-s390x-emu" arch="s390x"/>
<package name="grub2-powerpc-ieee1275" arch="ppc64le"/> <package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64"/>
<package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64,ppc64le"/>
<package name="grub2-snapper-plugin"/> <package name="grub2-snapper-plugin"/>
<package name="shim" arch="x86_64,aarch64"/> <package name="shim" arch="x86_64,aarch64"/>
<package name="mokutil" arch="x86_64,aarch64"/> <package name="mokutil" arch="x86_64,aarch64"/>
@ -997,44 +728,46 @@
<package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead --> <package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead -->
</packages> </packages>
<!-- rpi kernel-default-base does not provide all necessary drivers --> <!-- rpi kernel-default-base does not provide all necessary drivers -->
<packages type="image" profiles="rpi,aarch64-self_install,x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba,s390-fcp,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install"> <packages type="image" profiles="x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba">
<package name="kernel-default"/> <package name="kernel-default"/>
<package name="kernel-firmware-all"/> <package name="kernel-firmware-all"/>
</packages> </packages>
<packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted,aarch64-rt,aarch64-rt-self_install"> <packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted">
<package name="kernel-rt"/> <package name="kernel-rt"/>
<package name="kernel-firmware-all"/> <package name="kernel-firmware-all"/>
<!-- FIXME intentionally removed from ALP code stream <!-- FIXME intentionally removed from ALP code stream
<package name="cpuset"/> --> <package name="cpuset"/> -->
</packages> </packages>
<packages type="image" profiles="s390-kvm,s390-dasd,s390-fba,s390-fcp"> <!-- makes the image build, but also include kernel-default
<package name="dracut-kiwi-oem-dump"/> <packages type="image" profiles="x86-rt-encrypted">
<package name="kernel-default-extra"/>
</packages> -->
<packages type="image" profiles="s390-kvm,s390-dasd,s390-fba">
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="blog"/> <package name="blog"/>
</packages> </packages>
<!-- FCP is usually used multipathed. --> <packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install">
<packages type="image" profiles="s390-fcp">
<package name="multipath-tools"/>
</packages>
<packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install">
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="dracut-kiwi-oem-dump"/> <package name="dracut-kiwi-oem-dump"/>
</packages> </packages>
<packages type="image" profiles="rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install"> <packages type="image" profiles="rpi,aarch64-self_install">
<package name="raspberrypi-firmware" arch="aarch64"/> <package name="raspberrypi-firmware" arch="aarch64"/>
<package name="raspberrypi-firmware-config" arch="aarch64"/> <package name="raspberrypi-firmware-config" arch="aarch64"/>
<package name="raspberrypi-firmware-dt" arch="aarch64"/> <package name="raspberrypi-firmware-dt" arch="aarch64"/>
<package name="u-boot-rpiarm64" arch="aarch64"/> <package name="u-boot-rpiarm64" arch="aarch64"/>
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="bcm43xx-firmware"/> <package name="bcm43xx-firmware"/>
<package name="kernel-firmware-all"/><!-- Fix choice between kernel-firmware and kernel-firmware-all -->
<package name="wireless-regdb"/> <package name="wireless-regdb"/>
<package name="wireless-tools"/> <package name="wireless-tools"/>
<package name="wpa_supplicant"/> <package name="wpa_supplicant"/>
<package name="grub2-arm64-efi"/> <package name="grub2-arm64-efi"/>
<!-- kernel-default-base does not have all required drivers -->
<package name="kernel-default"/>
</packages> </packages>
<packages type="bootstrap"> <packages type="bootstrap">
<package name="filesystem"/>
<package name="coreutils"/> <package name="coreutils"/>
<package name="filesystem"/>
<package name="ca-certificates"/> <package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/> <package name="ca-certificates-mozilla"/>
</packages> </packages>
@ -1048,14 +781,4 @@
<packages type="image" profiles="x86-qcow,aarch64-qcow"> <packages type="image" profiles="x86-qcow,aarch64-qcow">
<package name="qemu-guest-agent"/> <package name="qemu-guest-agent"/>
</packages> </packages>
</image>
<!-- jsc#PED-8599 -->
<packages type="image" profiles="Base,Base-encrypted,Base-RT,Base-RT-encrypted,Base-fba,Base-dasd,Base-fcp,Base-512,Base-4096,Default,Default-encrypted,Default-fba,Default-dasd,Default-fcp,Default-512,Default-4096">
<package name="usbguard"/>
</packages>
<!-- jsc#PED-8788 -->
<packages type="image" profiles="Base-RT,Base-RT-encrypted,x86-rt-encrypted,x86-rt,x86-rt-self_install,aarch64-rt,aarch64-rt-self_install">
<package name="stalld"/>
</packages>
</image>

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2025 SUSE LLC # Copyright (c) 2024 SUSE LLC
# #
# Permission is hereby granted, free of charge, to any person obtaining a copy # Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal # of this software and associated documentation files (the "Software"), to deal
@ -27,9 +27,9 @@ LARGEBLOCK=false
# Print usage # Print usage
usage(){ usage(){
cat <<-EOF cat <<-EOF
===================================== ==============================
SUSE Linux Micro 6.1 Kiwi SDK Builder SLE Micro 6.0 Kiwi SDK Builder
===================================== ==============================
Usage: ${0} [-p <profile>] [-b] Usage: ${0} [-p <profile>] [-b]

View File

@ -35,6 +35,14 @@ mkdir /var/lib/misc/reconfig_system
#-------------------------------------- #--------------------------------------
echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..." echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..."
#======================================
# This is a workaround - someone,
# somewhere needs to load the xts crypto
# module, otherwise luksOpen will fail while
# creating the image.
#--------------------------------------
modprobe xts || true
#====================================== #======================================
# add missing fonts # add missing fonts
#-------------------------------------- #--------------------------------------
@ -131,6 +139,9 @@ for i in /usr/lib/rpm/gnupg/keys/gpg-pubkey*asc; do
rpm --import $i || true rpm --import $i || true
done done
# Temporary workaround for bsc#1212187
echo "techpreview.ZYPP_MEDIANETWORK=1" >> /etc/zypp/zypp.conf
#====================================== #======================================
# Enable kubelet if installed # Enable kubelet if installed
#-------------------------------------- #--------------------------------------
@ -159,18 +170,8 @@ if [ "${kiwi_btrfs_root_is_snapshot-false}" = 'true' ]; then
sed -i'' 's/^NUMBER_LIMIT_IMPORTANT=.*$/NUMBER_LIMIT_IMPORTANT="4-10"/g' /etc/snapper/configs/root sed -i'' 's/^NUMBER_LIMIT_IMPORTANT=.*$/NUMBER_LIMIT_IMPORTANT="4-10"/g' /etc/snapper/configs/root
fi fi
# Enable multipathd for MP images # Enable jeos-firstboot if installed, disabled by combustion/ignition
if [ "${kiwi_oemmultipath_scan-false}" = 'true' ]; then if rpm -q --whatprovides jeos-firstboot >/dev/null; then
systemctl enable multipathd.service
fi
# On those s390 targets the console is not capable of running jeos-firstboot,
# use systemd-firstboot as minimal alternative.
if [[ "$kiwi_profiles" =~ s390-(dasd|fba|fcp) ]]; then
systemctl enable systemd-firstboot
# Enable prompting for the root password
echo 'root:!unprovisioned' | chpasswd -e
elif rpm -q --whatprovides jeos-firstboot >/dev/null; then
mkdir -p /var/lib/YaST2 mkdir -p /var/lib/YaST2
touch /var/lib/YaST2/reconfig_system touch /var/lib/YaST2/reconfig_system
systemctl enable jeos-firstboot.service systemctl enable jeos-firstboot.service
@ -280,7 +281,7 @@ if [[ "$kiwi_profiles" == *"RaspberryPi"* ]]; then
options smsc95xx turbo_mode=N options smsc95xx turbo_mode=N
EOF EOF
cat > /etc/sysctl.d/50-rpi3.conf <<-EOF cat > /usr/lib/sysctl.d/50-rpi3.conf <<-EOF
# Avoid running out of DMA pages for smsc95xx (bsc#1012449) # Avoid running out of DMA pages for smsc95xx (bsc#1012449)
vm.min_free_kbytes = 2048 vm.min_free_kbytes = 2048
EOF EOF

View File

@ -12,8 +12,10 @@
<param name="without-version">yes</param> <param name="without-version">yes</param>
<param name="versionrewrite-replacement">\1</param> <param name="versionrewrite-replacement">\1</param>
</service> </service>
<service mode="buildtime" name="tar" > <service mode="buildtime" name="tar" />
<param name="obsinfo">kube-rbac-proxy.obsinfo</param> <service mode="buildtime" name="recompress">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service> </service>
<service name="go_modules"> <service name="go_modules">
</service> </service>

View File

@ -22,7 +22,7 @@ Release: 0.18.1
Summary: The kube-rbac-proxy is a small HTTP proxy for a single upstream Summary: The kube-rbac-proxy is a small HTTP proxy for a single upstream
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/brancz/kube-rbac-proxy URL: https://github.com/brancz/kube-rbac-proxy
Source: kube-rbac-proxy-%{version}.tar Source: kube-rbac-proxy-%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang(API) = 1.23 BuildRequires: golang(API) = 1.23
ExcludeArch: s390 ExcludeArch: s390

View File

@ -1,4 +1,3 @@
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1 #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1-%RELEASE%
annotations: annotations:

View File

@ -1,16 +1,16 @@
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.2 #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.0
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.2-%RELEASE% #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.0-%RELEASE%
apiVersion: v2 apiVersion: v2
appVersion: 0.9.2 appVersion: 0.9.0
dependencies: dependencies:
- alias: metal3-baremetal-operator - alias: metal3-baremetal-operator
name: baremetal-operator name: baremetal-operator
repository: file://./charts/baremetal-operator repository: file://./charts/baremetal-operator
version: 0.6.1 version: 0.6.0
- alias: metal3-ironic - alias: metal3-ironic
name: ironic name: ironic
repository: file://./charts/ironic repository: file://./charts/ironic
version: 0.9.1 version: 0.8.0
- alias: metal3-mariadb - alias: metal3-mariadb
condition: global.enable_mariadb condition: global.enable_mariadb
name: mariadb name: mariadb
@ -20,9 +20,9 @@ dependencies:
condition: global.enable_metal3_media_server condition: global.enable_metal3_media_server
name: media name: media
repository: file://./charts/media repository: file://./charts/media
version: 0.6.1 version: 0.6.0
description: A Helm chart that installs all of the dependencies needed for Metal3 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 icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg
name: metal3 name: metal3
type: application type: application
version: "%%CHART_MAJOR%%.0.0+up0.9.2" version: "%%CHART_MAJOR%%.0.0+up0.9.0"

View File

@ -3,4 +3,4 @@ appVersion: 0.8.0
description: A Helm chart for baremetal-operator, used by Metal3 description: A Helm chart for baremetal-operator, used by Metal3
name: baremetal-operator name: baremetal-operator
type: application type: application
version: 0.6.1 version: 0.6.0

View File

@ -0,0 +1,15 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "baremetal-operator.fullname" . }}-test-connection"
labels:
{{- include "baremetal-operator.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "baremetal-operator.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never

View File

@ -3,4 +3,4 @@ appVersion: 26.1.2
description: A Helm chart for Ironic, used by Metal3 description: A Helm chart for Ironic, used by Metal3
name: ironic name: ironic
type: application type: application
version: 0.9.1 version: 0.8.0

View File

@ -56,11 +56,11 @@ images:
ironic: ironic:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
tag: 26.1.2.2 tag: 26.1.2.0
ironicIPADownloader: ironicIPADownloader:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
tag: 3.0.1 tag: 3.0.0
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""

View File

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

View File

@ -0,0 +1,15 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "media.fullname" . }}-test-connection"
labels:
{{- include "media.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "media.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never

View File

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

View File

@ -12,8 +12,10 @@
<param name="without-version">yes</param> <param name="without-version">yes</param>
<param name="versionrewrite-replacement">\1</param> <param name="versionrewrite-replacement">\1</param>
</service> </service>
<service mode="buildtime" name="tar"> <service mode="buildtime" name="tar" />
<param name="obsinfo">metallb.obsinfo</param> <service mode="buildtime" name="recompress">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service> </service>
<service name="go_modules"> <service name="go_modules">
</service> </service>

View File

@ -22,7 +22,7 @@ Release: 0.14.8
Summary: Load Balancer for bare metal Kubernetes clusters Summary: Load Balancer for bare metal Kubernetes clusters
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/metallb/metallb URL: https://github.com/metallb/metallb
Source: %{name}-%{version}.tar Source: %{name}-%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang(API) = 1.22 BuildRequires: golang(API) = 1.22
ExcludeArch: s390 ExcludeArch: s390

View File

@ -9,9 +9,7 @@
<param name="versionrewrite-replacement">\1</param> <param name="versionrewrite-replacement">\1</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>
</service> </service>
<service mode="buildtime" name="tar"> <service mode="buildtime" name="tar" />
<param name="obsinfo">nm-configurator.obsinfo</param>
</service>
<service mode="buildtime" name="set_version"/> <service mode="buildtime" name="set_version"/>
<service mode="manual" name="cargo_vendor"> <service mode="manual" name="cargo_vendor">
<param name="src">nm-configurator</param> <param name="src">nm-configurator</param>

View File

@ -1,10 +1,10 @@
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.16.0 #!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.14.1
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.16.0 #!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.14.1
apiVersion: v2 apiVersion: v2
appVersion: 0.16.0 appVersion: 0.14.1
description: Rancher Turtles utility chart for airgap scenarios description: Rancher Turtles utility chart for airgap scenarios
home: https://github.com/rancher/turtles/ home: https://github.com/rancher/turtles/
icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg
name: rancher-turtles-airgap-resources name: rancher-turtles-airgap-resources
type: application type: application
version: "%%CHART_MAJOR%%.0.0+up0.16.0" version: "%%CHART_MAJOR%%.0.0+up0.14.1"

File diff suppressed because one or more lines are too long

View File

@ -22,7 +22,7 @@ data:
metadata: metadata:
annotations: annotations:
cert-manager.io/inject-ca-from: rke2-bootstrap-system/rke2-bootstrap-serving-cert cert-manager.io/inject-ca-from: rke2-bootstrap-system/rke2-bootstrap-serving-cert
controller-gen.kubebuilder.io/version: v0.16.1 controller-gen.kubebuilder.io/version: v0.14.0
labels: labels:
cluster.x-k8s.io/provider: bootstrap-rke2 cluster.x-k8s.io/provider: bootstrap-rke2
cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1 cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1
@ -154,6 +154,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -299,6 +300,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -437,6 +439,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -492,6 +495,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -578,20 +582,20 @@ data:
description: |- description: |-
The reason for the condition's last transition in CamelCase. The reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may not be empty.
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately Severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: Status of the condition, one of True, False, Unknown.
type: string type: string
type: type:
description: |- description: |-
type of condition in CamelCase or in foo.example.com/CamelCase. Type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
type: string type: string
@ -738,6 +742,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -888,6 +893,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1023,6 +1029,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1078,6 +1085,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1164,20 +1172,20 @@ data:
description: |- description: |-
The reason for the condition's last transition in CamelCase. The reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may not be empty.
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately Severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: Status of the condition, one of True, False, Unknown.
type: string type: string
type: type:
description: |- description: |-
type of condition in CamelCase or in foo.example.com/CamelCase. Type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
type: string type: string
@ -1218,7 +1226,7 @@ data:
metadata: metadata:
annotations: annotations:
cert-manager.io/inject-ca-from: rke2-bootstrap-system/rke2-bootstrap-serving-cert cert-manager.io/inject-ca-from: rke2-bootstrap-system/rke2-bootstrap-serving-cert
controller-gen.kubebuilder.io/version: v0.16.1 controller-gen.kubebuilder.io/version: v0.14.0
labels: labels:
cluster.x-k8s.io/provider: bootstrap-rke2 cluster.x-k8s.io/provider: bootstrap-rke2
cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1 cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1
@ -1361,6 +1369,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1514,6 +1523,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1654,6 +1664,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1709,6 +1720,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1908,6 +1920,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2066,6 +2079,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2203,6 +2217,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2258,6 +2273,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2527,7 +2543,7 @@ data:
- --insecure-diagnostics=${CAPRKE2_INSECURE_DIAGNOSTICS:=false} - --insecure-diagnostics=${CAPRKE2_INSECURE_DIAGNOSTICS:=false}
command: command:
- /manager - /manager
image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.11.0 image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.9.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
livenessProbe: livenessProbe:
httpGet: httpGet:
@ -2741,16 +2757,10 @@ data:
- major: 0 - major: 0
minor: 9 minor: 9
contract: v1beta1 contract: v1beta1
- major: 0
minor: 10
contract: v1beta1
- major: 0
minor: 11
contract: v1beta1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
creationTimestamp: null creationTimestamp: null
name: v0.11.0 name: v0.9.0
namespace: rke2-bootstrap-system namespace: rke2-bootstrap-system
labels: labels:
provider-components: rke2-bootstrap provider-components: rke2-bootstrap

View File

@ -22,7 +22,7 @@ data:
metadata: metadata:
annotations: annotations:
cert-manager.io/inject-ca-from: rke2-control-plane-system/rke2-control-plane-serving-cert cert-manager.io/inject-ca-from: rke2-control-plane-system/rke2-control-plane-serving-cert
controller-gen.kubebuilder.io/version: v0.16.1 controller-gen.kubebuilder.io/version: v0.14.0
labels: labels:
cluster.x-k8s.io/provider: control-plane-rke2 cluster.x-k8s.io/provider: control-plane-rke2
cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1 cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1
@ -154,6 +154,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -299,6 +300,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -416,6 +418,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -461,6 +464,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -533,6 +537,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -588,6 +593,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -721,6 +727,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -797,6 +804,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -927,6 +935,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -971,7 +980,6 @@ data:
description: |- description: |-
S3CredentialSecret is a reference to a Secret containing the Access Key and Secret Key necessary to access the target S3 Bucket. S3CredentialSecret is a reference to a Secret containing the Access Key and Secret Key necessary to access the target S3 Bucket.
The Secret must contain the following keys: "aws_access_key_id" and "aws_secret_access_key". The Secret must contain the following keys: "aws_access_key_id" and "aws_secret_access_key".
If empty, the controller will default to IAM authentication
properties: properties:
apiVersion: apiVersion:
description: API version of the referent. description: API version of the referent.
@ -985,6 +993,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1015,6 +1024,7 @@ data:
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
required: required:
- endpoint - endpoint
- s3CredentialSecret
type: object type: object
scheduleCron: scheduleCron:
description: 'ScheduleCron Snapshot interval time in cron description: 'ScheduleCron Snapshot interval time in cron
@ -1191,20 +1201,20 @@ data:
description: |- description: |-
The reason for the condition's last transition in CamelCase. The reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may not be empty.
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately Severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: Status of the condition, one of True, False, Unknown.
type: string type: string
type: type:
description: |- description: |-
type of condition in CamelCase or in foo.example.com/CamelCase. Type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
type: string type: string
@ -1377,6 +1387,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1527,6 +1538,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1628,7 +1640,6 @@ data:
description: |- description: |-
InfrastructureRef is a required reference to a custom resource InfrastructureRef is a required reference to a custom resource
offered by an infrastructure provider. offered by an infrastructure provider.
This field is deprecated. Use `.machineTemplate.infrastructureRef` instead.
properties: properties:
apiVersion: apiVersion:
description: API version of the referent. description: API version of the referent.
@ -1642,6 +1653,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1692,6 +1704,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1729,7 +1742,7 @@ data:
additionalProperties: additionalProperties:
type: string type: string
description: |- description: |-
annotations is an unstructured key value map stored with a resource that may be Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects. queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations More info: http://kubernetes.io/docs/user-guide/annotations
@ -1770,6 +1783,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1803,7 +1817,6 @@ data:
NodeDrainTimeout is the total amount of time that the controller will spend on draining a controlplane node NodeDrainTimeout is the total amount of time that the controller will spend on draining a controlplane node
The default value is 0, meaning that the node can be drained without any time limitations. The default value is 0, meaning that the node can be drained without any time limitations.
NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
This field is deprecated. Use `.machineTemplate.nodeDrainTimeout` instead.
type: string type: string
postRKE2Commands: postRKE2Commands:
description: PostRKE2Commands specifies extra commands to run after description: PostRKE2Commands specifies extra commands to run after
@ -1843,6 +1856,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -1898,6 +1912,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2028,6 +2043,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2104,6 +2120,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2234,6 +2251,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2278,7 +2296,6 @@ data:
description: |- description: |-
S3CredentialSecret is a reference to a Secret containing the Access Key and Secret Key necessary to access the target S3 Bucket. S3CredentialSecret is a reference to a Secret containing the Access Key and Secret Key necessary to access the target S3 Bucket.
The Secret must contain the following keys: "aws_access_key_id" and "aws_secret_access_key". The Secret must contain the following keys: "aws_access_key_id" and "aws_secret_access_key".
If empty, the controller will default to IAM authentication
properties: properties:
apiVersion: apiVersion:
description: API version of the referent. description: API version of the referent.
@ -2292,6 +2309,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2322,6 +2340,7 @@ data:
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
required: required:
- endpoint - endpoint
- s3CredentialSecret
type: object type: object
scheduleCron: scheduleCron:
description: 'ScheduleCron Snapshot interval time in cron description: 'ScheduleCron Snapshot interval time in cron
@ -2471,6 +2490,7 @@ data:
pattern: (v\d\.\d{2}\.\d+\+rke2r\d)|^$ pattern: (v\d\.\d{2}\.\d+\+rke2r\d)|^$
type: string type: string
required: required:
- infrastructureRef
- rolloutStrategy - rolloutStrategy
type: object type: object
status: status:
@ -2504,20 +2524,20 @@ data:
description: |- description: |-
The reason for the condition's last transition in CamelCase. The reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may not be empty.
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately Severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: Status of the condition, one of True, False, Unknown.
type: string type: string
type: type:
description: |- description: |-
type of condition in CamelCase or in foo.example.com/CamelCase. Type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
type: string type: string
@ -2589,7 +2609,7 @@ data:
metadata: metadata:
annotations: annotations:
cert-manager.io/inject-ca-from: rke2-control-plane-system/rke2-control-plane-serving-cert cert-manager.io/inject-ca-from: rke2-control-plane-system/rke2-control-plane-serving-cert
controller-gen.kubebuilder.io/version: v0.16.1 controller-gen.kubebuilder.io/version: v0.14.0
labels: labels:
cluster.x-k8s.io/provider: control-plane-rke2 cluster.x-k8s.io/provider: control-plane-rke2
cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1 cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1
@ -2776,6 +2796,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -2934,6 +2955,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3036,7 +3058,6 @@ data:
description: |- description: |-
InfrastructureRef is a required reference to a custom resource InfrastructureRef is a required reference to a custom resource
offered by an infrastructure provider. offered by an infrastructure provider.
This field is deprecated. Use `.machineTemplate.infrastructureRef` instead.
properties: properties:
apiVersion: apiVersion:
description: API version of the referent. description: API version of the referent.
@ -3050,6 +3071,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3100,6 +3122,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3137,7 +3160,7 @@ data:
additionalProperties: additionalProperties:
type: string type: string
description: |- description: |-
annotations is an unstructured key value map stored with a resource that may be Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects. queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations More info: http://kubernetes.io/docs/user-guide/annotations
@ -3178,6 +3201,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3211,7 +3235,6 @@ data:
NodeDrainTimeout is the total amount of time that the controller will spend on draining a controlplane node NodeDrainTimeout is the total amount of time that the controller will spend on draining a controlplane node
The default value is 0, meaning that the node can be drained without any time limitations. The default value is 0, meaning that the node can be drained without any time limitations.
NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
This field is deprecated. Use `.machineTemplate.nodeDrainTimeout` instead.
type: string type: string
postRKE2Commands: postRKE2Commands:
description: PostRKE2Commands specifies extra commands to description: PostRKE2Commands specifies extra commands to
@ -3252,6 +3275,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3307,6 +3331,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3441,6 +3466,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3519,6 +3545,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3652,6 +3679,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3696,7 +3724,6 @@ data:
description: |- description: |-
S3CredentialSecret is a reference to a Secret containing the Access Key and Secret Key necessary to access the target S3 Bucket. S3CredentialSecret is a reference to a Secret containing the Access Key and Secret Key necessary to access the target S3 Bucket.
The Secret must contain the following keys: "aws_access_key_id" and "aws_secret_access_key". The Secret must contain the following keys: "aws_access_key_id" and "aws_secret_access_key".
If empty, the controller will default to IAM authentication
properties: properties:
apiVersion: apiVersion:
description: API version of the referent. description: API version of the referent.
@ -3710,6 +3737,7 @@ data:
the event) or if no container name is specified "spec.containers[2]" (container with 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 index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object. referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string type: string
kind: kind:
description: |- description: |-
@ -3740,6 +3768,7 @@ data:
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
required: required:
- endpoint - endpoint
- s3CredentialSecret
type: object type: object
scheduleCron: scheduleCron:
description: 'ScheduleCron Snapshot interval time description: 'ScheduleCron Snapshot interval time
@ -3898,6 +3927,7 @@ data:
pattern: (v\d\.\d{2}\.\d+\+rke2r\d)|^$ pattern: (v\d\.\d{2}\.\d+\+rke2r\d)|^$
type: string type: string
required: required:
- infrastructureRef
- rolloutStrategy - rolloutStrategy
type: object type: object
required: required:
@ -3937,20 +3967,20 @@ data:
description: |- description: |-
The reason for the condition's last transition in CamelCase. The reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may not be empty.
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately Severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: Status of the condition, one of True, False, Unknown.
type: string type: string
type: type:
description: |- description: |-
type of condition in CamelCase or in foo.example.com/CamelCase. Type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
type: string type: string
@ -4263,7 +4293,7 @@ data:
valueFrom: valueFrom:
fieldRef: fieldRef:
fieldPath: metadata.uid fieldPath: metadata.uid
image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.11.0 image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.9.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
livenessProbe: livenessProbe:
httpGet: httpGet:
@ -4318,7 +4348,7 @@ data:
volumes: volumes:
- name: cert - name: cert
secret: secret:
secretName: rke2-controlplane-webhook-service-cert secretName: rke2-control-plane-webhook-service-cert
--- ---
apiVersion: cert-manager.io/v1 apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
@ -4334,7 +4364,7 @@ data:
issuerRef: issuerRef:
kind: Issuer kind: Issuer
name: rke2-control-plane-selfsigned-issuer name: rke2-control-plane-selfsigned-issuer
secretName: rke2-controlplane-webhook-service-cert secretName: rke2-control-plane-webhook-service-cert
subject: subject:
organizations: organizations:
- Rancher by SUSE - Rancher by SUSE
@ -4484,16 +4514,10 @@ data:
- major: 0 - major: 0
minor: 9 minor: 9
contract: v1beta1 contract: v1beta1
- major: 0
minor: 10
contract: v1beta1
- major: 0
minor: 11
contract: v1beta1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
creationTimestamp: null creationTimestamp: null
name: v0.11.0 name: v0.9.0
namespace: rke2-control-plane-system namespace: rke2-control-plane-system
labels: labels:
provider-components: rke2-control-plane provider-components: rke2-control-plane

View File

@ -1,6 +1,6 @@
dependencies: dependencies:
- name: cluster-api-operator - name: cluster-api-operator
repository: https://kubernetes-sigs.github.io/cluster-api-operator repository: https://kubernetes-sigs.github.io/cluster-api-operator
version: 0.16.0 version: 0.14.0
digest: sha256:9b296be6ee446bff492e6736e084ce3734b07ea613791b77fd15d31c0f62dc70 digest: sha256:9e9e851dbab3212c279efec06bcf0da147228ea1590470f3a8cbbb5806a250d4
generated: "2025-01-30T10:14:58.692942399Z" generated: "2024-12-03T09:34:12.871417074Z"

View File

@ -1,5 +1,5 @@
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.16.0 #!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.14.1
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.16.0-%RELEASE% #!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.14.1-%RELEASE%
annotations: annotations:
catalog.cattle.io/certified: rancher catalog.cattle.io/certified: rancher
catalog.cattle.io/display-name: Rancher Turtles - the Cluster API Extension catalog.cattle.io/display-name: Rancher Turtles - the Cluster API Extension
@ -12,7 +12,7 @@ annotations:
catalog.cattle.io/scope: management catalog.cattle.io/scope: management
catalog.cattle.io/type: cluster-tool catalog.cattle.io/type: cluster-tool
apiVersion: v2 apiVersion: v2
appVersion: 0.16.0 appVersion: 0.14.1
dependencies: dependencies:
- condition: cluster-api-operator.enabled - condition: cluster-api-operator.enabled
name: cluster-api-operator name: cluster-api-operator
@ -29,4 +29,4 @@ keywords:
- provisioning - provisioning
name: rancher-turtles name: rancher-turtles
type: application type: application
version: "%%CHART_MAJOR%%.0.0+up0.16.0" version: "%%CHART_MAJOR%%.0.0+up0.14.1"

View File

@ -1,44 +1,78 @@
namespace: rancher-turtles-system namespace: rancher-turtles-system
questions: questions:
- variable: rancherTurtles.features.default - variable: rancherTurtles.features.default
default: "false" default: "false"
description: "Customize install settings" description: "Customize install settings"
label: Customize install settings label: Customize install settings
type: boolean
show_subquestion_if: true
group: "Rancher Turtles Extra Settings"
subquestions:
- variable: cluster-api-operator.cert-manager.enabled
default: false
type: boolean type: boolean
description: "Flag to enable or disable installation of cert-manager. If set to false then you will need to install cert-manager manually"
label: "Enable Cert Manager"
- variable: rancherTurtles.features.cluster-api-operator.cleanup
default: true
description: "Specify that the CAPI Operator post-delete cleanup job will be performed"
type: boolean
label: Cleanup CAPI Operator installation
group: "CAPI Operator cleanup settings"
show_subquestion_if: true show_subquestion_if: true
group: "Rancher Turtles Extra Settings"
subquestions: subquestions:
- variable: cluster-api-operator.cert-manager.enabled - variable: rancherTurtles.features.cluster-api-operator.kubectlImage
default: false default: "rancher/kubectl:v1.30.3"
type: boolean description: "Specify the image to use when cleaning up the Cluster API Operator manifests"
description: "Flag to enable or disable installation of cert-manager. If set to false then you will need to install cert-manager manually" type: string
label: "Enable Cert Manager" label: Cleanup Image
- variable: rancherTurtles.cluster-api-operator.cleanup group: "CAPI Operator cleanup settings"
default: true - variable: rancherTurtles.features.rancher-webhook.cleanup
description: "Specify that the CAPI Operator post-delete cleanup job will be performed" default: true
type: boolean description: "Specify that the Rancher embedded cluster api webhooks should be removed"
label: Cleanup CAPI Operator installation type: boolean
group: "CAPI Operator cleanup settings" label: Cleanup Rancher Embedded CAPI Webhooks
- variable: cluster-api-operator.cluster-api.rke2.enabled group: "Rancher webhook cleanup settings"
default: "true" show_subquestion_if: true
description: "Flag to enable or disable installation of the RKE2 provider for Cluster API. By default this is enabled." subquestions:
label: "Enable RKE2 Provider" - variable: rancherTurtles.features.rancher-webhook.kubectlImage
type: boolean default: "rancher/kubectl:v1.30.3"
- variable: rancherTurtles.features.addon-provider-fleet.enabled description: "Specify the image to use when cleaning up the webhooks"
default: false type: string
description: "[BETA] Enable Fleet Addon Provider functionality in Rancher Turtles" label: Webhook Cleanup Image
type: boolean group: "Rancher webhook cleanup settings"
label: Seamless integration with Fleet and CAPI - variable: rancherTurtles.features.rancher-kubeconfigs.label
group: "Rancher Turtles Features Settings" default: false
- variable: rancherTurtles.features.agent-tls-mode.enabled description: "(Experimental) Specify that the kubeconfigs generated by Rancher should be automatically patched to contain the CAPI expected labels"
default: false type: boolean
description: "[ALPHA] If enabled Turtles will use the agent-tls-mode setting to determine CA cert trust mode for importing clusters" label: Label Rancher Kubeconfigs
type: boolean group: "Rancher Turtles Features Settings"
label: Enable Agent TLS Mode - variable: rancherTurtles.features.managementv3-cluster.enabled
group: "Rancher Turtles Features Settings" default: true
- variable: rancherTurtles.kubectlImage description: "Use v3/management cluster manifest for import, instead of v1/provisioning"
default: "registry.suse.com/edge/3.2/kubectl:1.30.3" type: boolean
description: "Specify the image to use when running kubectl in jobs" label: Use management v3 cluster manifest
type: string group: "Rancher Turtles Features Settings"
label: Kubectl Image - variable: rancherTurtles.features.managementv3-cluster-migration.enabled
group: "Rancher Turtles Features Settings" default: false
description: "Automatically migrate between provisioning and management clusters on upgrade"
type: boolean
label: All imported clusters will use new cluster manifest, replacing old cluster manifest.
group: "Rancher Turtles Features Settings"
- variable: cluster-api-operator.cluster-api.rke2.enabled
default: "true"
description: "Flag to enable or disable installation of the RKE2 provider for Cluster API. By default this is enabled."
label: "Enable RKE2 Provider"
type: boolean
- variable: rancherTurtles.features.propagate-labels.enabled
default: false
description: "(Experimental) Specify that the labels from CAPI should be propagated to Rancher"
type: boolean
label: Propagate CAPI Labels
group: "Rancher Turtles Features Settings"
- variable: rancherTurtles.features.addon-provider-fleet.enabled
default: false
description: "Enable Fleet Addon Provider functionality in Rancher Turtles"
type: boolean
label: Seamless integration with Fleet and CAPI
group: "Rancher Turtles Features Settings"

View File

@ -35,17 +35,10 @@ data:
cluster: cluster:
patchResource: true patchResource: true
setOwnerReferences: true setOwnerReferences: true
hostNetwork: true
selector: selector:
matchLabels: matchLabels:
cluster-api.cattle.io/rancher-auto-import: "true" cluster-api.cattle.io/rancher-auto-import: "true"
matchExpressions:
- key: cluster-api.cattle.io/disable-fleet-auto-import
operator: DoesNotExist
namespaceSelector: namespaceSelector:
matchLabels: matchLabels:
cluster-api.cattle.io/rancher-auto-import: "true" cluster-api.cattle.io/rancher-auto-import: "true"
matchExpressions:
- key: cluster-api.cattle.io/disable-fleet-auto-import
operator: DoesNotExist
{{- end }} {{- end }}

View File

@ -1,4 +1,4 @@
{{- if index .Values "rancherTurtles" "rancherInstalled" }} {{- if index .Values "rancherTurtles" "features" "rancher-webhook" "cleanup" }}
--- ---
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
@ -55,7 +55,7 @@ spec:
serviceAccountName: pre-upgrade-job serviceAccountName: pre-upgrade-job
containers: containers:
- name: rancher-clusterctl-configmap-cleanup - name: rancher-clusterctl-configmap-cleanup
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }}
args: args:
- delete - delete
- configmap - configmap

View File

@ -26,7 +26,7 @@ spec:
containers: containers:
- args: - args:
- --leader-elect - --leader-elect
- --feature-gates=addon-provider-fleet={{ index .Values "rancherTurtles" "features" "addon-provider-fleet" "enabled"}},agent-tls-mode={{ index .Values "rancherTurtles" "features" "agent-tls-mode" "enabled"}} - --feature-gates=propagate-labels={{ index .Values "rancherTurtles" "features" "propagate-labels" "enabled"}},managementv3-cluster={{ index .Values "rancherTurtles" "features" "managementv3-cluster" "enabled"}},rancher-kube-secret-patch={{ index .Values "rancherTurtles" "features" "rancher-kubeconfigs" "label"}}
{{- range .Values.rancherTurtles.managerArguments }} {{- range .Values.rancherTurtles.managerArguments }}
- {{ . }} - {{ . }}
{{- end }} {{- end }}
@ -67,10 +67,10 @@ spec:
resources: resources:
limits: limits:
cpu: 500m cpu: 500m
memory: 256Mi memory: 128Mi
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 64Mi
serviceAccountName: rancher-turtles-manager serviceAccountName: rancher-turtles-manager
terminationGracePeriodSeconds: 10 terminationGracePeriodSeconds: 10
tolerations: tolerations:

View File

@ -22,7 +22,7 @@ metadata:
spec: spec:
providers: providers:
- name: metal3 - name: metal3
url: "https://github.com/rancher-sandbox/cluster-api-provider-metal3/releases/v1.9.2/infrastructure-components.yaml" url: "https://github.com/metal3-io/cluster-api-provider-metal3/releases/v1.7.2/infrastructure-components.yaml"
type: InfrastructureProvider type: InfrastructureProvider
--- ---
apiVersion: turtles-capi.cattle.io/v1alpha1 apiVersion: turtles-capi.cattle.io/v1alpha1

View File

@ -1,4 +1,4 @@
{{- if index .Values "cluster-api-operator" "cleanup" }} {{- if index .Values "rancherTurtles" "features" "cluster-api-operator" "cleanup" }}
--- ---
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
@ -41,7 +41,7 @@ metadata:
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: post-delete-job name: post-delete-job
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: rancher-turtles-system
roleRef: roleRef:
kind: ClusterRole kind: ClusterRole
name: post-delete-job-delete-webhooks name: post-delete-job-delete-webhooks
@ -62,7 +62,7 @@ spec:
serviceAccountName: post-delete-job serviceAccountName: post-delete-job
containers: containers:
- name: cluster-api-operator-mutatingwebhook-cleanup - name: cluster-api-operator-mutatingwebhook-cleanup
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
command: ["kubectl"] command: ["kubectl"]
args: args:
- delete - delete
@ -90,7 +90,7 @@ spec:
serviceAccountName: post-delete-job serviceAccountName: post-delete-job
containers: containers:
- name: cluster-api-operator-validatingwebhook-cleanup - name: cluster-api-operator-validatingwebhook-cleanup
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
command: ["kubectl"] command: ["kubectl"]
args: args:
- delete - delete
@ -119,7 +119,7 @@ spec:
restartPolicy: Never restartPolicy: Never
containers: containers:
- name: delete-capi-controller-manager - name: delete-capi-controller-manager
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
command: ["kubectl"] command: ["kubectl"]
args: args:
- delete - delete
@ -128,7 +128,7 @@ spec:
- {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }} - {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }}
- --ignore-not-found=true - --ignore-not-found=true
- name: delete-capi-kubeadm-bootstrap-controller-manager - name: delete-capi-kubeadm-bootstrap-controller-manager
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
command: ["kubectl"] command: ["kubectl"]
args: args:
- delete - delete
@ -137,7 +137,7 @@ spec:
- capi-kubeadm-bootstrap-system - capi-kubeadm-bootstrap-system
- --ignore-not-found=true - --ignore-not-found=true
- name: delete-capi-kubeadm-control-plane-controller-manager - name: delete-capi-kubeadm-control-plane-controller-manager
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
command: ["kubectl"] command: ["kubectl"]
args: args:
- delete - delete
@ -146,7 +146,7 @@ spec:
- capi-kubeadm-control-plane-system - capi-kubeadm-control-plane-system
- --ignore-not-found=true - --ignore-not-found=true
- name: delete-rke2-kubeadm-bootstrap-controller-manager - name: delete-rke2-kubeadm-bootstrap-controller-manager
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
command: ["kubectl"] command: ["kubectl"]
args: args:
- delete - delete
@ -155,7 +155,7 @@ spec:
- {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "namespace" }} - {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "namespace" }}
- --ignore-not-found=true - --ignore-not-found=true
- name: delete-rke2-control-plane-controller-manager - name: delete-rke2-control-plane-controller-manager
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
command: ["kubectl"] command: ["kubectl"]
args: args:
- delete - delete

View File

@ -1,9 +1,10 @@
{{- if eq (index .Values "rancherTurtles" "features" "managementv3-cluster-migration" "enabled") true }}
--- ---
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: post-upgrade-job name: post-upgrade-job
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: rancher-turtles-system
annotations: annotations:
"helm.sh/hook": post-upgrade "helm.sh/hook": post-upgrade
"helm.sh/hook-weight": "1" "helm.sh/hook-weight": "1"
@ -23,6 +24,13 @@ rules:
verbs: verbs:
- list - list
- delete - delete
- apiGroups:
- management.cattle.io
resources:
- clusters
verbs:
- list
- delete
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
@ -34,7 +42,7 @@ metadata:
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: post-upgrade-job name: post-upgrade-job
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: rancher-turtles-system
roleRef: roleRef:
kind: ClusterRole kind: ClusterRole
name: post-upgrade-job-delete-clusters name: post-upgrade-job-delete-clusters
@ -44,7 +52,6 @@ apiVersion: batch/v1
kind: Job kind: Job
metadata: metadata:
name: post-upgrade-delete-clusters name: post-upgrade-delete-clusters
namespace: '{{ .Values.rancherTurtles.namespace }}'
annotations: annotations:
"helm.sh/hook": post-upgrade "helm.sh/hook": post-upgrade
"helm.sh/hook-weight": "2" "helm.sh/hook-weight": "2"
@ -55,12 +62,17 @@ spec:
serviceAccountName: post-upgrade-job serviceAccountName: post-upgrade-job
containers: containers:
- name: post-upgrade-delete-clusters - name: post-upgrade-delete-clusters
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }}
args: args:
- delete - delete
{{- if eq (index .Values "rancherTurtles" "features" "managementv3-cluster" "enabled") true }}
- clusters.provisioning.cattle.io - clusters.provisioning.cattle.io
{{- else }}
- clusters.management.cattle.io
{{- end }}
- --selector=cluster-api.cattle.io/owned - --selector=cluster-api.cattle.io/owned
- -A - -A
- --ignore-not-found=true - --ignore-not-found=true
- --wait - --wait
restartPolicy: OnFailure restartPolicy: OnFailure
{{- end }}

View File

@ -1,10 +1,10 @@
{{- if index .Values "rancherTurtles" "rancherInstalled" }} {{- if index .Values "rancherTurtles" "features" "rancher-webhook" "cleanup" }}
--- ---
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: pre-delete-job name: pre-delete-job
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: rancher-turtles-system
annotations: annotations:
"helm.sh/hook": pre-delete "helm.sh/hook": pre-delete
"helm.sh/hook-weight": "-2" "helm.sh/hook-weight": "-2"
@ -35,7 +35,7 @@ metadata:
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: pre-delete-job name: pre-delete-job
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: rancher-turtles-system
roleRef: roleRef:
kind: ClusterRole kind: ClusterRole
name: pre-delete-job-delete-capiproviders name: pre-delete-job-delete-capiproviders
@ -45,7 +45,7 @@ apiVersion: batch/v1
kind: Job kind: Job
metadata: metadata:
name: rancher-capiprovider-cleanup name: rancher-capiprovider-cleanup
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: rancher-turtles-system
annotations: annotations:
"helm.sh/hook": pre-delete "helm.sh/hook": pre-delete
"helm.sh/hook-weight": "-1" "helm.sh/hook-weight": "-1"
@ -56,7 +56,7 @@ spec:
serviceAccountName: pre-delete-job serviceAccountName: pre-delete-job
containers: containers:
- name: rancher-capiprovider-cleanup - name: rancher-capiprovider-cleanup
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }}
args: args:
- delete - delete
- capiproviders - capiproviders

View File

@ -1,3 +1,4 @@
{{- if index .Values "rancherTurtles" "features" "embedded-capi" "disabled" }}
{{- if index .Values "rancherTurtles" "rancherInstalled"}} {{- if index .Values "rancherTurtles" "rancherInstalled"}}
--- ---
apiVersion: management.cattle.io/v3 apiVersion: management.cattle.io/v3
@ -10,13 +11,14 @@ metadata:
spec: spec:
value: false value: false
{{- end }} {{- end }}
{{- if index .Values "rancherTurtles" "rancherInstalled" }} {{- end }}
{{- if index .Values "rancherTurtles" "features" "rancher-webhook" "cleanup" }}
--- ---
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: pre-install-job name: pre-install-job
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: rancher-turtles-system
annotations: annotations:
"helm.sh/hook": pre-install "helm.sh/hook": pre-install
"helm.sh/hook-weight": "1" "helm.sh/hook-weight": "1"
@ -47,7 +49,7 @@ metadata:
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: pre-install-job name: pre-install-job
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: rancher-turtles-system
roleRef: roleRef:
kind: ClusterRole kind: ClusterRole
name: pre-install-job-delete-webhooks name: pre-install-job-delete-webhooks
@ -57,7 +59,6 @@ apiVersion: batch/v1
kind: Job kind: Job
metadata: metadata:
name: rancher-mutatingwebhook-cleanup name: rancher-mutatingwebhook-cleanup
namespace: '{{ .Values.rancherTurtles.namespace }}'
annotations: annotations:
"helm.sh/hook": pre-install "helm.sh/hook": pre-install
"helm.sh/hook-weight": "2" "helm.sh/hook-weight": "2"
@ -68,7 +69,7 @@ spec:
serviceAccountName: pre-install-job serviceAccountName: pre-install-job
containers: containers:
- name: rancher-mutatingwebhook-cleanup - name: rancher-mutatingwebhook-cleanup
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }}
args: args:
- delete - delete
- mutatingwebhookconfigurations.admissionregistration.k8s.io - mutatingwebhookconfigurations.admissionregistration.k8s.io
@ -80,7 +81,6 @@ apiVersion: batch/v1
kind: Job kind: Job
metadata: metadata:
name: rancher-validatingwebhook-cleanup name: rancher-validatingwebhook-cleanup
namespace: '{{ .Values.rancherTurtles.namespace }}'
annotations: annotations:
"helm.sh/hook": pre-install "helm.sh/hook": pre-install
"helm.sh/hook-weight": "2" "helm.sh/hook-weight": "2"
@ -91,7 +91,7 @@ spec:
serviceAccountName: pre-install-job serviceAccountName: pre-install-job
containers: containers:
- name: rancher-validatingwebhook-cleanup - name: rancher-validatingwebhook-cleanup
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }}
args: args:
- delete - delete
- validatingwebhookconfigurations.admissionregistration.k8s.io - validatingwebhookconfigurations.admissionregistration.k8s.io

View File

@ -4,7 +4,7 @@ kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert
controller-gen.kubebuilder.io/version: v0.16.1 controller-gen.kubebuilder.io/version: v0.14.0
labels: labels:
turtles-capi.cattle.io: etcd-restore turtles-capi.cattle.io: etcd-restore
name: etcdmachinesnapshots.turtles-capi.cattle.io name: etcdmachinesnapshots.turtles-capi.cattle.io
@ -116,7 +116,7 @@ kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert
controller-gen.kubebuilder.io/version: v0.16.1 controller-gen.kubebuilder.io/version: v0.14.0
labels: labels:
turtles-capi.cattle.io: etcd-restore turtles-capi.cattle.io: etcd-restore
name: etcdsnapshotrestores.turtles-capi.cattle.io name: etcdsnapshotrestores.turtles-capi.cattle.io
@ -195,20 +195,20 @@ spec:
description: |- description: |-
The reason for the condition's last transition in CamelCase. The reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may not be empty.
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately Severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: Status of the condition, one of True, False, Unknown.
type: string type: string
type: type:
description: |- description: |-
type of condition in CamelCase or in foo.example.com/CamelCase. Type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
type: string type: string
@ -235,7 +235,7 @@ kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert
controller-gen.kubebuilder.io/version: v0.16.1 controller-gen.kubebuilder.io/version: v0.14.0
labels: labels:
turtles-capi.cattle.io: etcd-restore turtles-capi.cattle.io: etcd-restore
name: rke2etcdmachinesnapshotconfigs.turtles-capi.cattle.io name: rke2etcdmachinesnapshotconfigs.turtles-capi.cattle.io
@ -438,7 +438,29 @@ rules:
- cluster.x-k8s.io - cluster.x-k8s.io
resources: resources:
- clusters - clusters
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- cluster.x-k8s.io
resources:
- clusters/status - clusters/status
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- cluster.x-k8s.io
resources:
- machines - machines
verbs: verbs:
- create - create
@ -477,8 +499,6 @@ rules:
- turtles-capi.cattle.io - turtles-capi.cattle.io
resources: resources:
- etcdmachinesnapshots - etcdmachinesnapshots
- etcdsnapshotrestores
- rke2etcdmachinesnapshotconfigs
verbs: verbs:
- create - create
- delete - delete
@ -491,15 +511,63 @@ rules:
- turtles-capi.cattle.io - turtles-capi.cattle.io
resources: resources:
- etcdmachinesnapshots/finalizers - etcdmachinesnapshots/finalizers
- etcdsnapshotrestores/finalizers
- rke2etcdmachinesnapshotconfigs/finalizers
verbs: verbs:
- update - update
- apiGroups: - apiGroups:
- turtles-capi.cattle.io - turtles-capi.cattle.io
resources: resources:
- etcdmachinesnapshots/status - etcdmachinesnapshots/status
verbs:
- get
- patch
- update
- apiGroups:
- turtles-capi.cattle.io
resources:
- etcdsnapshotrestores
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- turtles-capi.cattle.io
resources:
- etcdsnapshotrestores/finalizers
verbs:
- update
- apiGroups:
- turtles-capi.cattle.io
resources:
- etcdsnapshotrestores/status - etcdsnapshotrestores/status
verbs:
- get
- patch
- update
- apiGroups:
- turtles-capi.cattle.io
resources:
- rke2etcdmachinesnapshotconfigs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- turtles-capi.cattle.io
resources:
- rke2etcdmachinesnapshotconfigs/finalizers
verbs:
- update
- apiGroups:
- turtles-capi.cattle.io
resources:
- rke2etcdmachinesnapshotconfigs/status - rke2etcdmachinesnapshotconfigs/status
verbs: verbs:
- get - get

View File

@ -1,24 +1,35 @@
rancherTurtles: rancherTurtles:
image: registry.rancher.com/rancher/rancher/turtles image: registry.rancher.com/rancher/rancher/turtles
imageVersion: v0.16.0 imageVersion: v0.14.1
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
namespace: rancher-turtles-system namespace: rancher-turtles-system
managerArguments: [] managerArguments: []
imagePullSecrets: [] imagePullSecrets: []
rancherInstalled: false rancherInstalled: true
kubectlImage: registry.suse.com/edge/3.2/kubectl:1.30.3
features: features:
cluster-api-operator:
cleanup: true
kubectlImage: rancher/kubectl:v1.30.3
embedded-capi:
disabled: false
rancher-webhook:
cleanup: false
kubectlImage: rancher/kubectl:v1.30.3
rancher-kubeconfigs:
label: false
managementv3-cluster:
enabled: true
managementv3-cluster-migration:
enabled: false
propagate-labels:
enabled: false
etcd-snapshot-restore: etcd-snapshot-restore:
enabled: false enabled: false
image: registry.rancher.com/rancher/rancher/turtles image: registry.rancher.com/rancher/rancher/turtles
imageVersion: v0.16.0 imageVersion: v0.14.1
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
# beta feature, see documentation for more information on feature stages
addon-provider-fleet: addon-provider-fleet:
enabled: false enabled: false
# alpha feature, see documentation for more information on feature stages
agent-tls-mode:
enabled: false
cluster-api-operator: cluster-api-operator:
enabled: true enabled: true
cert-manager: cert-manager:
@ -42,7 +53,6 @@ cluster-api-operator:
- mountPath: /config - mountPath: /config
name: clusterctl-config name: clusterctl-config
readOnly: true readOnly: true
cleanup: true
cluster-api: cluster-api:
enabled: true enabled: true
configSecret: configSecret:
@ -50,34 +60,30 @@ cluster-api-operator:
defaultName: capi-env-variables defaultName: capi-env-variables
core: core:
namespace: capi-system namespace: capi-system
imageUrl: ""
fetchConfig: fetchConfig:
url: "" url: ""
selector: "" selector: ""
rke2: rke2:
enabled: true enabled: true
version: ""
bootstrap: bootstrap:
namespace: rke2-bootstrap-system namespace: rke2-bootstrap-system
imageUrl: ""
fetchConfig: fetchConfig:
url: "" url: ""
selector: "" selector: ""
controlPlane: controlPlane:
namespace: rke2-control-plane-system namespace: rke2-control-plane-system
imageUrl: ""
fetchConfig: fetchConfig:
url: "" url: ""
selector: "" selector: ""
metal3: metal3:
enabled: true enabled: true
version: "v1.9.2" version: "v1.8.2"
infrastructure: infrastructure:
namespace: capm3-system namespace: capm3-system
imageUrl: "registry.suse.com/rancher/cluster-api-provider-metal3:v1.9.2" imageUrl: "registry.rancher.com/rancher/cluster-api-metal3-controller:v1.8.2"
fetchConfig: fetchConfig:
url: "" url: ""
selector: "" selector: ""
ipam: ipam:
namespace: capm3-system namespace: capm3-system
imageUrl: "registry.suse.com/rancher/ip-address-manager:v1.9.3" imageUrl: "registry.rancher.com/rancher/cluster-api-metal3-ipam-controller:v1.8.1"

View File

@ -1,4 +1,4 @@
#!BuildTag: %%IMG_PREFIX%%release-manifest:3.3.0 #!BuildTag: %%IMG_PREFIX%%release-manifest:3.2.0
ARG SLE_VERSION ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION FROM registry.suse.com/bci/bci-micro:$SLE_VERSION
@ -7,11 +7,11 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)" LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
LABEL org.opencontainers.image.title="SUSE Edge Release Manifest" LABEL org.opencontainers.image.title="SUSE Edge Release Manifest"
LABEL org.opencontainers.image.description="Release Manifest containing information about a specific SUSE Edge release" LABEL org.opencontainers.image.description="Release Manifest containing information about a specific SUSE Edge release"
LABEL org.opencontainers.image.version="3.3.0" LABEL org.opencontainers.image.version="3.2.0"
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/" LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%release-manifest:3.3.0" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%release-manifest:3.2.0"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"

View File

@ -4,7 +4,7 @@
<param name="file">Dockerfile</param> <param name="file">Dockerfile</param>
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
<param name="var">IMG_PREFIX</param> <param name="var">IMG_PREFIX</param>
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %manifest_repo)</param> <param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
<param name="var">IMG_REPO</param> <param name="var">IMG_REPO</param>
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param> <param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
<param name="var">SUPPORT_LEVEL</param> <param name="var">SUPPORT_LEVEL</param>

View File

@ -1,86 +1,20 @@
apiVersion: lifecycle.suse.com/v1alpha1 apiVersion: lifecycle.suse.com/v1alpha1
kind: ReleaseManifest kind: ReleaseManifest
metadata: metadata:
name: release-manifest-3-3-0 name: release-manifest-3-2-0
spec: spec:
releaseVersion: 3.3.0 releaseVersion: 3.2.0
components: components:
kubernetes: kubernetes:
k3s: k3s:
version: v1.32.1+k3s1 version: v1.31.2+k3s1
coreComponents:
- name: traefik-crd
version: 27.0.201+up27.0.2
type: HelmChart
- name: traefik
version: 27.0.201+up27.0.2
type: HelmChart
- name: local-path-provisioner
containers:
- name: local-path-provisioner
image: rancher/local-path-provisioner:v0.0.30
type: Deployment
- name: coredns
containers:
- name: coredns
image: rancher/mirrored-coredns-coredns:1.12.0
type: Deployment
- name: metrics-server
containers:
- name: metrics-server
image: rancher/mirrored-metrics-server:v0.7.2
type: Deployment
rke2: rke2:
version: v1.32.1+rke2r1 version: v1.31.2+rke2r1
coreComponents:
- name: rke2-cilium
version: 1.16.501
type: HelmChart
- name: rke2-canal
version: v3.29.1-build2025011000
type: HelmChart
- name: rke2-calico-crd
version: v3.29.101
type: HelmChart
- name: rke2-calico
version: v3.29.101
type: HelmChart
- name: rke2-coredns
version: 1.36.102
type: HelmChart
- name: rke2-ingress-nginx
version: 4.12.003
type: HelmChart
- name: rke2-metrics-server
version: 3.12.200
type: HelmChart
- name: rancher-vsphere-csi
version: 3.3.1-rancher800
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.2200
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: operatingSystem:
version: "6.1" version: "6.0"
zypperID: "SL-Micro" zypperID: "SL-Micro"
cpeScheme: "cpe:/o:suse:sl-micro:6.1" cpeScheme: "cpe:/o:suse:sl-micro:6.0"
prettyName: "SUSE Linux Micro 6.1" prettyName: "SUSE Linux Micro 6.0"
supportedArchs: supportedArchs:
- "x86_64" - "x86_64"
- "aarch64" - "aarch64"
@ -89,11 +23,8 @@ spec:
- prettyName: Rancher - prettyName: Rancher
releaseName: rancher releaseName: rancher
chart: rancher chart: rancher
version: 2.11.0-alpha7 version: v2.10.0
repository: https://releases.rancher.com/server-charts/alpha repository: https://releases.rancher.com/server-charts/stable
values:
postDelete:
enabled: false
- prettyName: Longhorn - prettyName: Longhorn
releaseName: longhorn releaseName: longhorn
chart: longhorn chart: longhorn
@ -123,12 +54,12 @@ spec:
- prettyName: NeuVector - prettyName: NeuVector
releaseName: neuvector releaseName: neuvector
chart: neuvector chart: neuvector
version: 105.0.1+up2.8.4 version: 105.0.0+up2.8.3
repository: https://charts.rancher.io repository: https://charts.rancher.io
dependencyCharts: dependencyCharts:
- releaseName: neuvector-crd - releaseName: neuvector-crd
chart: neuvector-crd chart: neuvector-crd
version: 105.0.1+up2.8.4 version: 105.0.0+up2.8.3
repository: https://charts.rancher.io repository: https://charts.rancher.io
addonCharts: addonCharts:
- releaseName: neuvector-ui-ext - releaseName: neuvector-ui-ext
@ -147,11 +78,6 @@ spec:
- releaseName: elemental-operator-crds - releaseName: elemental-operator-crds
chart: oci://registry.suse.com/rancher/elemental-operator-crds-chart chart: oci://registry.suse.com/rancher/elemental-operator-crds-chart
version: 1.6.5 version: 1.6.5
addonCharts:
- releaseName: elemental
chart: elemental
repository: https://github.com/rancher/ui-plugin-charts/raw/main
version: 3.0.0
- prettyName: SRIOV - prettyName: SRIOV
releaseName: sriov-network-operator releaseName: sriov-network-operator
chart: %%CHART_REPO%%/%%IMG_PREFIX%%sriov-network-operator-chart chart: %%CHART_REPO%%/%%IMG_PREFIX%%sriov-network-operator-chart

View File

@ -1,13 +1,13 @@
#!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.1 #!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.0
#!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.0-%RELEASE%
apiVersion: v2 apiVersion: v2
appVersion: 0.1.1 appVersion: 0.1.0
dependencies: dependencies:
- condition: crds.enabled - condition: crds.enabled
name: lifecycle-crds name: lifecycle-crds
repository: file://./charts/lifecycle-crds repository: file://./charts/lifecycle-crds
version: 0.1.1 version: 0.1.0
description: A Helm chart for Upgrade Controller description: A Helm chart for Upgrade Controller
name: upgrade-controller name: upgrade-controller
type: application type: application
version: "%%CHART_MAJOR%%.0.0+up0.1.1" version: "%%CHART_MAJOR%%.0.0+up0.1.0"

View File

@ -6,8 +6,6 @@
<param name="var">IMG_PREFIX</param> <param name="var">IMG_PREFIX</param>
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param> <param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
<param name="var">IMG_REPO</param> <param name="var">IMG_REPO</param>
<param name="eval">MANIFEST_REPO=$(rpm --macros=/root/.rpmmacros -E %manifest_repo)</param>
<param name="var">MANIFEST_REPO</param>
</service> </service>
<service name="replace_using_env" mode="buildtime"> <service name="replace_using_env" mode="buildtime">
<param name="file">Chart.yaml</param> <param name="file">Chart.yaml</param>
@ -17,3 +15,4 @@
<param name="var">CHART_MAJOR</param> <param name="var">CHART_MAJOR</param>
</service> </service>
</services> </services>

View File

@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
appVersion: 0.1.1 appVersion: 0.1.0
description: A Helm chart containing SUSE Lifecycle CRDs description: A Helm chart containing SUSE Lifecycle CRDs
name: lifecycle-crds name: lifecycle-crds
type: application type: application
version: 0.1.1 version: 0.1.0

View File

@ -43,35 +43,6 @@ spec:
properties: properties:
k3s: k3s:
properties: properties:
coreComponents:
items:
properties:
containers:
items:
properties:
image:
type: string
name:
type: string
required:
- image
- name
type: object
type: array
name:
type: string
type:
enum:
- HelmChart
- Deployment
type: string
version:
type: string
required:
- name
- type
type: object
type: array
version: version:
type: string type: string
required: required:
@ -79,35 +50,6 @@ spec:
type: object type: object
rke2: rke2:
properties: properties:
coreComponents:
items:
properties:
containers:
items:
properties:
image:
type: string
name:
type: string
required:
- image
- name
type: object
type: array
name:
type: string
type:
enum:
- HelmChart
- Deployment
type: string
version:
type: string
required:
- name
- type
type: object
type: array
version: version:
type: string type: string
required: required:

View File

@ -29,14 +29,6 @@ rules:
- customresourcedefinitions - customresourcedefinitions
verbs: verbs:
- get - get
- apiGroups:
- apps
resources:
- deployments
verbs:
- get
- list
- watch
- apiGroups: - apiGroups:
- batch - batch
resources: resources:

View File

@ -12,7 +12,7 @@ image:
env: env:
releaseManifest: releaseManifest:
image: %%MANIFEST_REPO%%/%%IMG_PREFIX%%release-manifest image: %%IMG_REPO%%/%%IMG_PREFIX%%release-manifest
kubectl: kubectl:
image: %%IMG_REPO%%/%%IMG_PREFIX%%kubectl image: %%IMG_REPO%%/%%IMG_PREFIX%%kubectl
version: 1.30.3 version: 1.30.3

View File

@ -1,6 +1,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%upgrade-controller:0.1.1 #!BuildTag: %%IMG_PREFIX%%upgrade-controller:0.1.0
#!BuildTag: %%IMG_PREFIX%%upgrade-controller:0.1.1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%upgrade-controller:0.1.0-%RELEASE%
#!BuildVersion: 15.6 #!BuildVersion: 15.6
ARG SLE_VERSION ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
@ -16,11 +16,11 @@ FROM micro AS final
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)" LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
LABEL org.opencontainers.image.title="SLE Edge Upgrade Controller Container Image" LABEL org.opencontainers.image.title="SLE Edge Upgrade Controller Container Image"
LABEL org.opencontainers.image.description="Edge Update Controller Image based on the SLE Base Container Image." LABEL org.opencontainers.image.description="Edge Update Controller Image based on the SLE Base Container Image."
LABEL org.opencontainers.image.version="0.1.1" LABEL org.opencontainers.image.version="0.1.0"
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/" LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%upgrade-controller:0.1.1-%RELEASE%" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%upgrade-controller:0.1.0-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"

View File

@ -4,13 +4,15 @@
<param name="versionformat">@PARENT_TAG@</param> <param name="versionformat">@PARENT_TAG@</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="exclude">.git</param> <param name="exclude">.git</param>
<param name="revision">v0.1.1</param> <param name="revision">v0.1.0</param>
<param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param> <param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param>
<param name="versionrewrite-replacement">\1.\2.\3</param> <param name="versionrewrite-replacement">\1.\2.\3</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>
</service> </service>
<service mode="buildtime" name="tar"> <service mode="buildtime" name="tar" />
<param name="obsinfo">upgrade-controller.obsinfo</param> <service mode="buildtime" name="recompress">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service> </service>
<service name="go_modules"> <service name="go_modules">
<param name="compression">gz</param> <param name="compression">gz</param>

View File

@ -17,12 +17,12 @@
Name: upgrade-controller Name: upgrade-controller
Version: 0.1.1 Version: 0.1.0
Release: 0 Release: 0
Summary: Upgrade Controller Summary: Upgrade Controller
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/suse-edge/upgrade-controller URL: https://github.com/suse-edge/upgrade-controller
Source: upgrade-controller-%{version}.tar Source: upgrade-controller-%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang(API) go1.22 BuildRequires: golang(API) go1.22
BuildRequires: golang-packaging BuildRequires: golang-packaging