forked from suse-edge/Factory
		
	Compare commits
	
		
			96 Commits
		
	
	
		
	
	| Author | SHA256 | Date | |
|---|---|---|---|
| 929ccf85de | |||
| cf6830f815 | |||
| 3270c12d00 | |||
| 1627ee0d0d | |||
| e5d02732a8 | |||
| df13448a90 | |||
| 6fd885aa56 | |||
| 873b7ca8d6 | |||
| 9e18ce3842 | |||
| 9e14ce3cc2 | |||
| dcb31ca578 | |||
| 9549266bdc | |||
| c839af5ce7 | |||
| 15a0932fc3 | |||
| 0e99df3355 | |||
|  | e4faea0759 | ||
|  | 76b5fe17d0 | ||
|  | 9eba6bc6b4 | ||
|  | baf71f063c | ||
|  | c913d6e401 | ||
|  | 2ba58603bb | ||
| 210428c35d | |||
| 1ddffe1b99 | |||
| de188dbf78 | |||
| c18be9138b | |||
| d35bf98093 | |||
| 2ad24ea18b | |||
| 36fc92cdab | |||
| 75ed39ad43 | |||
| ce1c54a27d | |||
| 7fba32e3c7 | |||
| 221d73486b | |||
| cac6dd4b86 | |||
| 9e88e00e19 | |||
| 6fdde33f5b | |||
| 3b5b37b76d | |||
| a96355f32a | |||
| 82164551ae | |||
| 47e9ef98c1 | |||
| 1a21c64747 | |||
| df206f8fb9 | |||
| c6a40c532e | |||
| 92d5b55269 | |||
| 8fefb7311e | |||
| efefa20f5a | |||
| 50d3ae722f | |||
| 189db31b7f | |||
| af930ae49c | |||
| 625b0da057 | |||
| 17b108ef3d | |||
| d0e1e065a5 | |||
| 1d9ae4aa3d | |||
| 2553da6659 | |||
| 3d6c9be9ed | |||
| e6561f36ed | |||
| fa1da01c29 | |||
| cf3153e074 | |||
| 94d4faf0f9 | |||
| 943fe7cda4 | |||
| 10757d70e3 | |||
| 74a858e8dc | |||
| 09f0242287 | |||
| 51ea0c0499 | |||
| e4363afaf9 | |||
| 4b20cf74d9 | |||
| 2b4c6c3cce | |||
| a223185628 | |||
| 79dff5fce2 | |||
| f7a87ceaf0 | |||
| 71e3e0b40a | |||
| 4da1ed42d2 | |||
| 2ba0efdb93 | |||
| f0ec2699b4 | |||
| 1390d88af7 | |||
| 9dfaedadf9 | |||
| 81c1b981c2 | |||
| b71760b245 | |||
| f5e4126dad | |||
| 26e34cc386 | |||
| af59834eaf | |||
| 5ff222b69b | |||
| 14b56eabbe | |||
| d91b28fb5b | |||
| 4aa46388cf | |||
| dfa68ba86e | |||
| 075e2a209c | |||
| 2928b2076e | |||
| 39338dd6ac | |||
| dfc8bb30d9 | |||
| 33f56e8b23 | |||
| 744d04b40a | |||
| 5e098df843 | |||
| 7555048917 | |||
| e92a50d110 | |||
| da2ad77951 | |||
| be4fae4b18 | 
							
								
								
									
										23
									
								
								.gitea/workflows/check_manifest.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.gitea/workflows/check_manifest.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | name: Check Release Manifest Local Charts Versions | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |       branches-ignore: | ||||||
|  |       - "devel" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   sync-pr-project: | ||||||
|  |     name: "Check Release Manifest Local Charts Versions" | ||||||
|  |     runs-on: tumbleweed | ||||||
|  |     steps: | ||||||
|  |         # 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: Setup dependencies | ||||||
|  |         run: | | ||||||
|  |           zypper in -y python3-ruamel.yaml | ||||||
|  |       - name: Check release manifest | ||||||
|  |         run: | | ||||||
|  |           python3 .obs/manifest-check.py --check | ||||||
							
								
								
									
										62
									
								
								.gitea/workflows/pr_project.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								.gitea/workflows/pr_project.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | |||||||
|  | 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 | ||||||
							
								
								
									
										35
									
								
								.gitea/workflows/sync_config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								.gitea/workflows/sync_config.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | |||||||
|  | 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 | ||||||
							
								
								
									
										45
									
								
								.gitea/workflows/sync_meta.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								.gitea/workflows/sync_meta.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | |||||||
|  | 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 | ||||||
| @@ -1,5 +1,4 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
| import yaml |  | ||||||
| import subprocess | import subprocess | ||||||
| import argparse | import argparse | ||||||
| import os | import os | ||||||
| @@ -7,30 +6,6 @@ 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/> | ||||||
| @@ -53,7 +28,6 @@ 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(): | ||||||
| @@ -65,7 +39,7 @@ def main(): | |||||||
|     add_package(args.package) |     add_package(args.package) | ||||||
|      |      | ||||||
|  |  | ||||||
|     print("Package created in OBS, you can now push the modified workflow file") |     print("Package created in OBS !") | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|   | |||||||
| @@ -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" | ||||||
|   | |||||||
							
								
								
									
										37
									
								
								.obs/create_projects.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								.obs/create_projects.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | #!/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 | ||||||
| @@ -1,5 +1,4 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
| import yaml |  | ||||||
| import subprocess | import subprocess | ||||||
| import argparse | import argparse | ||||||
| import os | import os | ||||||
| @@ -8,18 +7,6 @@ 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) | ||||||
| @@ -33,7 +20,6 @@ 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(): | ||||||
|   | |||||||
							
								
								
									
										84
									
								
								.obs/manifest-check.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										84
									
								
								.obs/manifest-check.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,84 @@ | |||||||
|  | #!/usr/bin/python3 | ||||||
|  |  | ||||||
|  | import ruamel.yaml | ||||||
|  | import pathlib | ||||||
|  | import argparse | ||||||
|  | import sys | ||||||
|  |  | ||||||
|  | yaml = ruamel.yaml.YAML() | ||||||
|  |  | ||||||
|  | def get_chart_version(chart_name: str) -> str: | ||||||
|  |     with open(f"./{chart_name}/Chart.yaml") as f: | ||||||
|  |         chart = yaml.load(f) | ||||||
|  |         return chart["version"] | ||||||
|  |  | ||||||
|  | def get_charts(chart): | ||||||
|  |     if not chart["chart"].startswith("%%CHART_REPO%%"): | ||||||
|  |         # Not a locally managed chart | ||||||
|  |         return {} | ||||||
|  |  | ||||||
|  |     chart_name = chart["chart"][len("%%CHART_REPO%%/%%IMG_PREFIX%%"):] | ||||||
|  |     charts = { chart_name: chart["version"] } | ||||||
|  |     for child_chart in chart.get("dependencyCharts", []) + chart.get("addonCharts", []): | ||||||
|  |         charts.update(get_charts(child_chart)) | ||||||
|  |     return charts | ||||||
|  |  | ||||||
|  | def get_charts_list(): | ||||||
|  |     with open("./release-manifest-image/release_manifest.yaml") as f: | ||||||
|  |         manifest = yaml.load(f) | ||||||
|  |     charts = {} | ||||||
|  |     for chart in manifest["spec"]["components"]["workloads"]["helm"]: | ||||||
|  |         charts.update(get_charts(chart)) | ||||||
|  |     return charts | ||||||
|  |  | ||||||
|  | def check_charts(fix: bool) -> bool: | ||||||
|  |     success = True | ||||||
|  |     charts = get_charts_list() | ||||||
|  |     to_fix = {} | ||||||
|  |     for chart in charts: | ||||||
|  |         expected_version = get_chart_version(chart) | ||||||
|  |         if expected_version != charts[chart]: | ||||||
|  |             success = False | ||||||
|  |             to_fix[f'%%CHART_REPO%%/%%IMG_PREFIX%%{chart}'] = expected_version | ||||||
|  |             print(f"{chart}: Expected: {expected_version}, Got: {charts[chart]}") | ||||||
|  |     if fix and not success: | ||||||
|  |         fix_charts(to_fix) | ||||||
|  |         return True | ||||||
|  |     return success | ||||||
|  |  | ||||||
|  | def fix_charts(to_fix): | ||||||
|  |     manifest_path = pathlib.Path("./release-manifest-image/release_manifest.yaml") | ||||||
|  |     manifest = yaml.load(manifest_path) | ||||||
|  |     yaml.indent(mapping=2, sequence=4, offset=2) | ||||||
|  |     yaml.width = 4096 | ||||||
|  |     for chart_index, chart in enumerate(manifest["spec"]["components"]["workloads"]["helm"]): | ||||||
|  |         changed = False | ||||||
|  |         if chart["chart"] in to_fix.keys(): | ||||||
|  |             changed = True | ||||||
|  |             chart["version"] = to_fix[chart["chart"]] | ||||||
|  |         for subchart_index, subchart in enumerate(chart.get("addonCharts", [])): | ||||||
|  |             if subchart["chart"] in to_fix.keys(): | ||||||
|  |                 changed = True | ||||||
|  |                 subchart["version"] = to_fix[subchart["chart"]] | ||||||
|  |                 chart["addonCharts"][subchart_index] = subchart | ||||||
|  |         for subchart_index, subchart in enumerate(chart.get("dependencyCharts", [])): | ||||||
|  |             if subchart["chart"] in to_fix.keys(): | ||||||
|  |                 changed = True | ||||||
|  |                 subchart["version"] = to_fix[subchart["chart"]] | ||||||
|  |                 chart["dependencyCharts"][subchart_index] = subchart | ||||||
|  |         if changed: | ||||||
|  |             manifest["spec"]["components"]["workloads"]["helm"][chart_index] = chart | ||||||
|  |     yaml.dump(manifest, manifest_path) | ||||||
|  |  | ||||||
|  | def main(): | ||||||
|  |     print("Checking charts versions in release manifest") | ||||||
|  |     parser = argparse.ArgumentParser() | ||||||
|  |     parser.add_argument('-c', '--check', action='store_true') | ||||||
|  |     args = parser.parse_args() | ||||||
|  |     if not check_charts(not args.check): | ||||||
|  |         sys.exit(1) | ||||||
|  |     else: | ||||||
|  |         print("All local charts in release manifest are using the right version") | ||||||
|  |  | ||||||
|  | if __name__ == "__main__": | ||||||
|  |     main() | ||||||
							
								
								
									
										62
									
								
								.obs/render_meta.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								.obs/render_meta.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | |||||||
|  | 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(), | ||||||
|  |     } | ||||||
|  |     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() | ||||||
| @@ -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 set(packages.stdout.splitlines()) |     return { p for p in packages.stdout.splitlines() if ":" not in p } | ||||||
|  |  | ||||||
| def get_local_packages() -> Set[str]: | def get_local_packages() -> Set[str]: | ||||||
|     p = pathlib.Path('.') |     p = pathlib.Path('.') | ||||||
|   | |||||||
							
								
								
									
										83
									
								
								.obs/wait_obs.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								.obs/wait_obs.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,83 @@ | |||||||
|  | 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() | ||||||
| @@ -1,228 +0,0 @@ | |||||||
| staging_build: |  | ||||||
|   filters: |  | ||||||
|     event: pull_request |  | ||||||
|   steps: |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: endpoint-copier-operator |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: endpoint-copier-operator-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: endpoint-copier-operator-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri-agent-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri-controller-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri-dashboard-extension-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri-debug-echo-discovery-handler-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri-onvif-discovery-handler-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri-opcua-discovery-handler-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri-udev-discovery-handler-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: akri-webhook-configuration-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: obs-service-set_version |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: cosign |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: frr-k8s |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: kubectl |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: upgrade-controller |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: nm-configurator |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: kube-rbac-proxy |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: edge-image-builder |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: metallb |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: hauler |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: ip-address-manager |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: baremetal-operator |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: cluster-api-provider-metal3 |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: cdi-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: cluster-api-provider-metal3-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: metallb-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: sriov-crd-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: upgrade-controller-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: edge-image-builder-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: ironic-ipa-downloader-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: upgrade-controller-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: metal3-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: baremetal-operator-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: sriov-network-operator-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: metallb-controller-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: ip-address-manager-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: metallb-speaker-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: ironic-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: cri-tools |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: crudini |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: fakeroot |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: ipcalc |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: autoconf |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: rancher-turtles-airgap-resources-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: rancher-turtles-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: kube-rbac-proxy-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: ironic-ipa-ramdisk |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: kubevirt-dashboard-extension-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: kiwi-builder-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: kubevirt-chart |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: release-manifest-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: frr-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
|   - branch_package: |  | ||||||
|       source_package: kubectl-image |  | ||||||
|       source_project: isv:SUSE:Edge:Factory |  | ||||||
|       target_project: isv:SUSE:Edge:Factory:Staging |  | ||||||
							
								
								
									
										10
									
								
								.pre-commit-config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.pre-commit-config.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | repos: | ||||||
|  |   - repo: local | ||||||
|  |     hooks: | ||||||
|  |       - id: check-manifest | ||||||
|  |         name: "Check release-manifest" | ||||||
|  |         entry: python3 .obs/manifest-check.py | ||||||
|  |         language: python | ||||||
|  |         additional_dependencies: ['ruamel.yaml'] | ||||||
|  |         pass_filenames: false | ||||||
|  |         always_run: true | ||||||
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
								
							| @@ -5,15 +5,6 @@ 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). | ||||||
| @@ -23,16 +14,14 @@ 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) | ||||||
|   | |||||||
							
								
								
									
										155
									
								
								_config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								_config
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,155 @@ | |||||||
|  | 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" == "images_6.0" | ||||||
|  |     Prefer: container:sles15-image | ||||||
|  |     Type: docker | ||||||
|  |     BuildEngine: podman | ||||||
|  |     Repotype: none | ||||||
|  |     Patterntype: none | ||||||
|  |     BuildFlags: dockerarg:SLE_VERSION=16.0 | ||||||
|  |     BuildFlags: onlybuild:kiwi-builder-image | ||||||
|  |  | ||||||
|  |     # Publish multi-arch container images only once all archs have been built | ||||||
|  |     PublishFlags: archsync | ||||||
|  |  | ||||||
|  |     # Exclude the images selected by the aarch64 section | ||||||
|  |     %ifarch aarch64 | ||||||
|  |       BuildFlags: excludebuild:baremetal-operator-image | ||||||
|  |       BuildFlags: excludebuild:edge-image-builder-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 | ||||||
|  |     BuildFlags: excludebuild:kiwi-builder-image | ||||||
|  | %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 | ||||||
							
								
								
									
										74
									
								
								_meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								_meta
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | |||||||
|  | {#-  | ||||||
|  |   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", "images_6.0", "test_manifest_images"] %} | ||||||
|  |   <repository name="{{ repository }}"> | ||||||
|  |     {%- if release_project is defined and repository != "test_manifest_images" %} | ||||||
|  |     <releasetarget project="{{ release_project }}" repository="images" trigger="manual"/> | ||||||
|  |     {%- endif %} | ||||||
|  |     <path project="SUSE:Registry" repository="standard"/> | ||||||
|  |     {%- if repository == "images_6.0" %} | ||||||
|  |       <path project="SUSE:CA" repository="16.0"/> | ||||||
|  |       <path project="SUSE:ALP:Products:Marble:6.0" repository="standard"/> | ||||||
|  |     {%- else %} | ||||||
|  |       <path project="SUSE:CA" repository="SLE_15_SP6"/> | ||||||
|  |       <path project="{{ project }}" repository="standard"/> | ||||||
|  |     {%- endif %} | ||||||
|  |     <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="Cloud:OpenStack: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> | ||||||
| @@ -1,5 +1,6 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.0 | #!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0 | ||||||
| #!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.0-%RELEASE% | #!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% | ||||||
| annotations: | annotations: | ||||||
|   catalog.cattle.io/certified: rancher |   catalog.cattle.io/certified: rancher | ||||||
|   catalog.cattle.io/display-name: Akri |   catalog.cattle.io/display-name: Akri | ||||||
| @@ -10,11 +11,11 @@ annotations: | |||||||
|   catalog.cattle.io/rancher-version: ">= 2.10.0-0" |   catalog.cattle.io/rancher-version: ">= 2.10.0-0" | ||||||
|   catalog.cattle.io/scope: management |   catalog.cattle.io/scope: management | ||||||
|   catalog.cattle.io/ui-component: plugins |   catalog.cattle.io/ui-component: plugins | ||||||
|   catalog.cattle.io/ui-extensions-version: ">= 3.0.0" |   catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0" | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 1.2.0 | appVersion: 302.0.0+up1.2.1 | ||||||
| description: "SUSE Edge: Akri extension for Rancher Dashboard" | description: 'SUSE Edge: Akri extension for Rancher Dashboard' | ||||||
| icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg |  | ||||||
| name: akri-dashboard-extension | name: akri-dashboard-extension | ||||||
| type: application | type: application | ||||||
| version: "%%CHART_MAJOR%%.0.0+up1.2.0" | version: "%%CHART_MAJOR%%.0.0+up1.2.1" | ||||||
|  | icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ Common labels | |||||||
| helm.sh/chart: {{ include "extension-server.chart" . }} | helm.sh/chart: {{ include "extension-server.chart" . }} | ||||||
| {{ include "extension-server.selectorLabels" . }} | {{ include "extension-server.selectorLabels" . }} | ||||||
| {{- if .Chart.AppVersion }} | {{- if .Chart.AppVersion }} | ||||||
| app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | app.kubernetes.io/version: {{ .Chart.AppVersion | replace "+" "_" | quote }} | ||||||
| {{- end }} | {{- end }} | ||||||
| app.kubernetes.io/managed-by: {{ .Release.Service }} | app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||||
| {{- end }} | {{- end }} | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ spec: | |||||||
|   plugin: |   plugin: | ||||||
|     name: {{ include "extension-server.fullname" . }} |     name: {{ include "extension-server.fullname" . }} | ||||||
|     version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }} |     version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }} | ||||||
|     endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/akri-dashboard-extension/1.2.0 |     endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/akri-dashboard-extension/302.0.0+up1.2.1 | ||||||
|     noCache: {{ .Values.plugin.noCache }} |     noCache: {{ .Values.plugin.noCache }} | ||||||
|     noAuth: {{ .Values.plugin.noAuth }} |     noAuth: {{ .Values.plugin.noAuth }} | ||||||
|     metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }} |     metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }} | ||||||
| @@ -8,5 +8,5 @@ plugin: | |||||||
|   metadata: |   metadata: | ||||||
|     catalog.cattle.io/display-name: Akri |     catalog.cattle.io/display-name: Akri | ||||||
|     catalog.cattle.io/rancher-version: ">= 2.10.0-0" |     catalog.cattle.io/rancher-version: ">= 2.10.0-0" | ||||||
|     catalog.cattle.io/ui-extensions-version: ">= 3.0.0" |     catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0" | ||||||
|     catalog.cattle.io/kube-version: ">= v1.26.0-0" |     catalog.cattle.io/kube-version: ">= v1.26.0-0" | ||||||
|   | |||||||
| @@ -10,7 +10,9 @@ | |||||||
| 	<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> | ||||||
|   | |||||||
| @@ -12,10 +12,8 @@ | |||||||
|     <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"> | ||||||
|   <service mode="buildtime" name="recompress"> |     <param name="obsinfo">baremetal-operator.obsinfo</param> | ||||||
|     <param name="file">*.tar</param> |  | ||||||
|     <param name="compression">gz</param> |  | ||||||
|   </service> |   </service> | ||||||
|    <service name="go_modules"> |    <service name="go_modules"> | ||||||
|   </service> |   </service> | ||||||
| @@ -23,7 +21,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 *.obsinfo | cut -d" " -f2) |       SOURCE_COMMIT=$(grep commit baremetal-operator.obsinfo | cut -d" " -f2) | ||||||
|     </param> |     </param> | ||||||
|     <param name="verbose">1</param> |     <param name="verbose">1</param> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -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.gz | Source:         baremetal-operator-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang(API) = 1.22 | BuildRequires:  golang(API) = 1.22 | ||||||
| ExcludeArch:    s390 | ExcludeArch:    s390 | ||||||
|   | |||||||
| @@ -1,36 +0,0 @@ | |||||||
| # SPDX-License-Identifier: Apache-2.0 |  | ||||||
| #!BuildTag: %%IMG_PREFIX%%cluster-api-provider-metal3:v%%cluster-api-provider-metal3_version%% |  | ||||||
| #!BuildTag: %%IMG_PREFIX%%cluster-api-provider-metal3:%%cluster-api-provider-metal3_version%% |  | ||||||
| #!BuildTag: %%IMG_PREFIX%%cluster-api-provider-metal3:%%cluster-api-provider-metal3_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 cluster-api-provider-metal3 shadow; 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.cluster-api-provider-metal3 |  | ||||||
| LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)" |  | ||||||
| LABEL org.opencontainers.image.title="SLE cluster-api-provider-metal3 Container Image" |  | ||||||
| LABEL org.opencontainers.image.description="cluster-api-provider-metal3 based on the SLE Base Container Image." |  | ||||||
| LABEL org.opencontainers.image.version="%%cluster-api-provider-metal3_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%%cluster-api-provider-metal3:%%cluster-api-provider-metal3_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 |  | ||||||
|  |  | ||||||
| COPY --from=base /installroot / |  | ||||||
| RUN mv /usr/bin/cluster-api-provider-metal3 /manager |  | ||||||
| # Use uid of nonroot user (65532) because kubernetes expects numeric user when applying pod security policies |  | ||||||
| USER 65532 |  | ||||||
| ENTRYPOINT [ "/manager" ] |  | ||||||
| @@ -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">%%cluster-api-provider-metal3_version%%</param> |  | ||||||
|     <param name="package">cluster-api-provider-metal3</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> |  | ||||||
| @@ -1,23 +0,0 @@ | |||||||
| <services> |  | ||||||
|  <service name="obs_scm"> |  | ||||||
|     <param name="url">https://github.com/metal3-io/cluster-api-provider-metal3</param> |  | ||||||
|     <param name="scm">git</param> |  | ||||||
|     <param name="revision">v1.7.2</param> |  | ||||||
|     <param name="version">_auto_</param> |  | ||||||
|     <param name="versionformat">@PARENT_TAG@</param> |  | ||||||
|     <param name="changesgenerate">enable</param> |  | ||||||
|     <param name="changesauthor">steven.hardy@suse.com</param> |  | ||||||
|     <param name="match-tag">v*</param> |  | ||||||
|     <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param> |  | ||||||
|     <param name="without-version">yes</param> |  | ||||||
|     <param name="versionrewrite-replacement">\1</param> |  | ||||||
|   </service> |  | ||||||
|   <service mode="buildtime" name="tar" /> |  | ||||||
|   <service mode="buildtime" name="recompress"> |  | ||||||
|     <param name="file">*.tar</param> |  | ||||||
|     <param name="compression">gz</param> |  | ||||||
|   </service> |  | ||||||
|    <service name="go_modules"> |  | ||||||
|   </service> |  | ||||||
|   <service mode="buildtime" name="set_version" /> |  | ||||||
| </services> |  | ||||||
| @@ -1,54 +0,0 @@ | |||||||
| # |  | ||||||
| # spec file for package cluster-api-provider-metal3 |  | ||||||
| # |  | ||||||
| # Copyright (c) 2023 SUSE LLC |  | ||||||
| # |  | ||||||
| # All modifications and additions to the file contributed by third parties |  | ||||||
| # remain the property of their copyright owners, unless otherwise agreed |  | ||||||
| # upon. The license for this file, and modifications and additions to the |  | ||||||
| # file, is the same license as for the pristine package itself (unless the |  | ||||||
| # license for the pristine package is not an Open Source License, in which |  | ||||||
| # case the license is the MIT License). An "Open Source License" is a |  | ||||||
| # license that conforms to the Open Source Definition (Version 1.9) |  | ||||||
| # published by the Open Source Initiative. |  | ||||||
|  |  | ||||||
| # Please submit bugfixes or comments via https://bugs.opensuse.org/ |  | ||||||
| # |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Name:           cluster-api-provider-metal3 |  | ||||||
| Version:        1.7.2 |  | ||||||
| Release:        0 |  | ||||||
| Summary:        Cluster API Infrastructure Provider for Metal3 |  | ||||||
| License:        Apache-2.0 |  | ||||||
| URL:            https://github.com/metal3-io/cluster-api-provider-metal3 |  | ||||||
| Source:         cluster-api-provider-metal3-%{version}.tar.gz |  | ||||||
| Source1:        vendor.tar.gz |  | ||||||
| BuildRequires:  golang(API) = 1.22 |  | ||||||
| ExcludeArch:    s390 |  | ||||||
| ExcludeArch:    %{ix86} |  | ||||||
|  |  | ||||||
| %description |  | ||||||
|  |  | ||||||
| Cluster API Provider Metal3 is one of the providers for Cluster API and enables |  | ||||||
| users to deploy a Cluster API based cluster on top of bare metal infrastructure |  | ||||||
| using Metal3. |  | ||||||
|  |  | ||||||
| %prep |  | ||||||
| %autosetup -a1 -n cluster-api-provider-metal3-%{version} |  | ||||||
|  |  | ||||||
| %build |  | ||||||
| go build \ |  | ||||||
|    -mod=vendor \ |  | ||||||
|    -buildmode=pie \ |  | ||||||
|    -a -ldflags '-extldflags "-static"' |  | ||||||
|  |  | ||||||
| %install |  | ||||||
| install -D -m0755 cluster-api-provider-metal3 %{buildroot}%{_bindir}/cluster-api-provider-metal3 |  | ||||||
|  |  | ||||||
| %files |  | ||||||
| %license LICENSE |  | ||||||
| %doc README.md |  | ||||||
| %{_bindir}/cluster-api-provider-metal3 |  | ||||||
|  |  | ||||||
| %changelog |  | ||||||
| @@ -8,10 +8,8 @@ | |||||||
|     <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"> | ||||||
|   <service mode="buildtime" name="recompress"> |     <param name="obsinfo">cosign.obsinfo</param> | ||||||
|     <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"> | ||||||
|   | |||||||
| @@ -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.gz | Source:         cosign-%{version}.tar | ||||||
| Source1:        vendor.tar.gz          | Source1:        vendor.tar.gz          | ||||||
| BuildRequires:  golang-packaging | BuildRequires:  golang-packaging | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.0 | #!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.2-rc1 | ||||||
| #!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.0-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.2-rc1-%RELEASE% | ||||||
| #!BuildVersion: 15.6 | #!BuildVersion: 15.6 | ||||||
| ARG SLE_VERSION | ARG SLE_VERSION | ||||||
| FROM registry.suse.com/bci/bci-base:$SLE_VERSION | FROM registry.suse.com/bci/bci-base:$SLE_VERSION | ||||||
| @@ -15,11 +15,11 @@ RUN zypper --non-interactive install --no-recommends edge-image-builder qemu-x86 | |||||||
| 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-image-builder Container Image" | LABEL org.opencontainers.image.title="SLE edge-image-builder Container Image" | ||||||
| LABEL org.opencontainers.image.description="edge-image-builder based on the SLE Base Container Image." | LABEL org.opencontainers.image.description="edge-image-builder based on the SLE Base Container Image." | ||||||
| LABEL org.opencontainers.image.version="1.1.0" | LABEL org.opencontainers.image.version="1.1.2-rc1" | ||||||
| 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.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.1.0-%RELEASE%" | LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.1.2-rc1-%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" | ||||||
|   | |||||||
| @@ -7,10 +7,14 @@ | |||||||
|     <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="file">artifacts.yaml</param> |     <param name="file">artifacts.yaml</param> | ||||||
|  |     <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> | ||||||
|  |     <param name="var">IMG_PREFIX</param> | ||||||
|     <param name="eval">CHART_REPO=$(rpm --macros=/root/.rpmmacros -E %chart_repo)</param> |     <param name="eval">CHART_REPO=$(rpm --macros=/root/.rpmmacros -E %chart_repo)</param> | ||||||
|     <param name="var">CHART_REPO</param> |     <param name="var">CHART_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> | ||||||
|  |     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> | ||||||
|  |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
| </services> | </services> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,11 +1,11 @@ | |||||||
| metallb: | metallb: | ||||||
|   chart: metallb-chart |   chart: metallb-chart | ||||||
|   repository: %%CHART_REPO%%/3.1 |   repository: "%%CHART_REPO%%/%%IMG_PREFIX%%" | ||||||
|   version: 0.14.9 |   version: "%%CHART_MAJOR%%.0.1+up0.14.9" | ||||||
| endpoint-copier-operator: | endpoint-copier-operator: | ||||||
|   chart: endpoint-copier-operator-chart |   chart: endpoint-copier-operator-chart | ||||||
|   repository: %%CHART_REPO%%/3.1 |   repository: "%%CHART_REPO%%/%%IMG_PREFIX%%" | ||||||
|   version: 0.2.1 |   version: "%%CHART_MAJOR%%.0.0+up0.2.1" | ||||||
| kubernetes: | kubernetes: | ||||||
|   k3s: |   k3s: | ||||||
|     selinuxPackage: k3s-selinux-1.6-1.slemicro.noarch |     selinuxPackage: k3s-selinux-1.6-1.slemicro.noarch | ||||||
| @@ -13,4 +13,3 @@ kubernetes: | |||||||
|   rke2: |   rke2: | ||||||
|     selinuxPackage: rke2-selinux |     selinuxPackage: rke2-selinux | ||||||
|     selinuxRepository: https://rpm.rancher.io/rke2/stable/common/slemicro/noarch |     selinuxRepository: https://rpm.rancher.io/rke2/stable/common/slemicro/noarch | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,18 +1,19 @@ | |||||||
| <services> | <services> | ||||||
|   <service name="obs_scm"> |   <service name="obs_scm"> | ||||||
|     <param name="url">https://github.com/suse-edge/edge-image-builder.git</param> |     <param name="url">https://github.com/suse-edge/edge-image-builder.git</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">v1.1.0</param> |     <param name="revision">v1.1.2-rc1</param> | ||||||
|  |     <!-- Uncomment and set this For Pre-Release Version --> | ||||||
|  |     <param name="version">1.1.2~rc0</param> | ||||||
|  |     <!-- Uncomment and this for regular version --> | ||||||
|  |     <!-- <param name="versionformat">@PARENT_TAG@</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"> | ||||||
|   <service mode="buildtime" name="recompress"> |     <param name="obsinfo">edge-image-builder.obsinfo</param> | ||||||
|     <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"> | ||||||
|   | |||||||
| @@ -17,12 +17,12 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| Name:           edge-image-builder | Name:           edge-image-builder | ||||||
| Version:        1.1.0 | Version:        1.1.2~rc1 | ||||||
| Release:        0 | 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.gz | Source:         edge-image-builder-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang(API) go1.22 | BuildRequires:  golang(API) go1.22 | ||||||
| BuildRequires:  golang-packaging | BuildRequires:  golang-packaging | ||||||
|   | |||||||
| @@ -12,10 +12,8 @@ | |||||||
|     <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"> | ||||||
|   <service mode="buildtime" name="recompress"> |     <param name="obsinfo">endpoint-copier-operator.obsinfo</param> | ||||||
|     <param name="file">*.tar</param> |  | ||||||
|     <param name="compression">gz</param> |  | ||||||
|   </service> |   </service> | ||||||
|   <service name="go_modules"> |   <service name="go_modules"> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -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.gz | Source:         endpoint-copier-operator-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang(API) = 1.20 | BuildRequires:  golang(API) = 1.20 | ||||||
| ExcludeArch:    s390 | ExcludeArch:    s390 | ||||||
|   | |||||||
| @@ -1,26 +1,25 @@ | |||||||
| # SPDX-License-Identifier: Apache-2.0 | # SPDX-License-Identifier: Apache-2.0 | ||||||
| #!BuildTag: %%IMG_PREFIX%%ip-address-manager:v%%ip-address-manager_version%% | #!BuildTag: %%IMG_PREFIX%%frr-k8s:v%%frr-k8s_version%% | ||||||
| #!BuildTag: %%IMG_PREFIX%%ip-address-manager:%%ip-address-manager_version%% | #!BuildTag: %%IMG_PREFIX%%frr-k8s:v%%frr-k8s_version%%-%RELEASE% | ||||||
| #!BuildTag: %%IMG_PREFIX%%ip-address-manager:%%ip-address-manager_version%%-%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 | ||||||
| 
 | 
 | ||||||
| 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 zypper --installroot /installroot --non-interactive install --no-recommends ip-address-manager shadow; zypper -n clean; rm -rf /var/log/* | RUN zypper --installroot /installroot --non-interactive install --no-recommends frr-k8s; zypper -n clean; rm -rf /var/log/* | ||||||
| 
 | 
 | ||||||
| FROM micro AS final | FROM micro AS final | ||||||
| # Define labels according to https://en.opensuse.org/Building_derived_containers | # Define labels according to https://en.opensuse.org/Building_derived_containers | ||||||
| # labelprefix=com.suse.application.ip-address-manager | # labelprefix=com.suse.application.endpoint-copier-operator | ||||||
| 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 ip-address-manager Container Image" | LABEL org.opencontainers.image.title="SLE frr-k8s Container Image" | ||||||
| LABEL org.opencontainers.image.description="ip-address-manager based on the SLE Base Container Image." | LABEL org.opencontainers.image.description="frr-k8s based on the SLE Base Container Image." | ||||||
| LABEL org.opencontainers.image.version="%%ip-address-manager_version%%" | LABEL org.opencontainers.image.version="%%frr-k8s_version%%" | ||||||
| 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.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ip-address-manager:%%ip-address-manager_version%%-%RELEASE%" | LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr-k8s:v%%frr-k8s_version%%-%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" | ||||||
| @@ -29,8 +28,6 @@ LABEL com.suse.image-type="application" | |||||||
| LABEL com.suse.release-stage="released" | LABEL com.suse.release-stage="released" | ||||||
| # endlabelprefix | # endlabelprefix | ||||||
| 
 | 
 | ||||||
|  | #Install frr-k8s | ||||||
| COPY --from=base /installroot / | COPY --from=base /installroot / | ||||||
| RUN mv /usr/bin/ip-address-manager /manager | ENTRYPOINT ["/frr-k8s"] | ||||||
| # Use uid of nonroot user (65532) because kubernetes expects numeric user when applying pod security policies |  | ||||||
| USER 65532 |  | ||||||
| ENTRYPOINT [ "/manager" ] |  | ||||||
| @@ -3,8 +3,8 @@ | |||||||
|   <service mode="buildtime" name="docker_label_helper"/> |   <service mode="buildtime" name="docker_label_helper"/> | ||||||
|   <service name="replace_using_package_version" mode="buildtime"> |   <service name="replace_using_package_version" mode="buildtime"> | ||||||
|     <param name="file">Dockerfile</param> |     <param name="file">Dockerfile</param> | ||||||
|     <param name="regex">%%ip-address-manager_version%%</param> |     <param name="regex">%%frr-k8s_version%%</param> | ||||||
|     <param name="package">ip-address-manager</param> |     <param name="package">frr-k8s</param> | ||||||
|     <param name="parse-version">patch</param> |     <param name="parse-version">patch</param> | ||||||
|   </service> |   </service> | ||||||
|   <service name="replace_using_env" mode="buildtime"> |   <service name="replace_using_env" mode="buildtime"> | ||||||
| @@ -12,10 +12,8 @@ | |||||||
|     <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"> | ||||||
|   <service mode="buildtime" name="recompress"> |     <param name="obsinfo">frr-k8s.obsinfo</param> | ||||||
|     <param name="file">*.tar</param> |  | ||||||
|     <param name="compression">gz</param> |  | ||||||
|   </service> |   </service> | ||||||
|   <service name="go_modules"> |   <service name="go_modules"> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -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.gz | Source:         frr-k8s-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang(API) = 1.22 | BuildRequires:  golang(API) = 1.22 | ||||||
| ExcludeArch:    s390 | ExcludeArch:    s390 | ||||||
|   | |||||||
| @@ -8,10 +8,8 @@ | |||||||
|     <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"> | ||||||
|   <service mode="buildtime" name="recompress"> |     <param name="obsinfo">hauler.obsinfo</param> | ||||||
|     <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"> | ||||||
|   | |||||||
| @@ -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.gz | Source:         hauler-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang-packaging | BuildRequires:  golang-packaging | ||||||
| BuildRequires:  cosign | BuildRequires:  cosign | ||||||
|   | |||||||
| @@ -1,23 +0,0 @@ | |||||||
| <services> |  | ||||||
|  <service name="obs_scm"> |  | ||||||
|     <param name="url">https://github.com/metal3-io/ip-address-manager</param> |  | ||||||
|     <param name="scm">git</param> |  | ||||||
|     <param name="revision">v1.7.2</param> |  | ||||||
|     <param name="version">_auto_</param> |  | ||||||
|     <param name="versionformat">@PARENT_TAG@</param> |  | ||||||
|     <param name="changesgenerate">enable</param> |  | ||||||
|     <param name="changesauthor">steven.hardy@suse.com</param> |  | ||||||
|     <param name="match-tag">v*</param> |  | ||||||
|     <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param> |  | ||||||
|     <param name="without-version">yes</param> |  | ||||||
|     <param name="versionrewrite-replacement">\1</param> |  | ||||||
|   </service> |  | ||||||
|   <service mode="buildtime" name="tar" /> |  | ||||||
|   <service mode="buildtime" name="recompress"> |  | ||||||
|     <param name="file">*.tar</param> |  | ||||||
|     <param name="compression">gz</param> |  | ||||||
|   </service> |  | ||||||
|    <service name="go_modules"> |  | ||||||
|   </service> |  | ||||||
|   <service mode="buildtime" name="set_version" /> |  | ||||||
| </services> |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| # |  | ||||||
| # spec file for package ip-address-manager |  | ||||||
| # |  | ||||||
| # Copyright (c) 2023 SUSE LLC |  | ||||||
| # |  | ||||||
| # All modifications and additions to the file contributed by third parties |  | ||||||
| # remain the property of their copyright owners, unless otherwise agreed |  | ||||||
| # upon. The license for this file, and modifications and additions to the |  | ||||||
| # file, is the same license as for the pristine package itself (unless the |  | ||||||
| # license for the pristine package is not an Open Source License, in which |  | ||||||
| # case the license is the MIT License). An "Open Source License" is a |  | ||||||
| # license that conforms to the Open Source Definition (Version 1.9) |  | ||||||
| # published by the Open Source Initiative. |  | ||||||
|  |  | ||||||
| # Please submit bugfixes or comments via https://bugs.opensuse.org/ |  | ||||||
| # |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Name:           ip-address-manager |  | ||||||
| Version:        1.7.2 |  | ||||||
| Release:        0 |  | ||||||
| Summary:        Metal3 IPAM controller |  | ||||||
| License:        Apache-2.0 |  | ||||||
| URL:            https://github.com/metal3-io/ip-address-manager |  | ||||||
| Source:         ip-address-manager-%{version}.tar.gz |  | ||||||
| Source1:        vendor.tar.gz |  | ||||||
| BuildRequires:  golang(API) = 1.22 |  | ||||||
| ExcludeArch:    s390 |  | ||||||
| ExcludeArch:    %{ix86} |  | ||||||
|  |  | ||||||
| %description |  | ||||||
|  |  | ||||||
| Metal3 IPAM controller |  | ||||||
|  |  | ||||||
| %prep |  | ||||||
| %autosetup -a1 -n ip-address-manager-%{version} |  | ||||||
|  |  | ||||||
| %build |  | ||||||
| go build \ |  | ||||||
|    -mod=vendor \ |  | ||||||
|    -buildmode=pie \ |  | ||||||
|  |  | ||||||
| %install |  | ||||||
| install -D -m0755 ip-address-manager %{buildroot}%{_bindir}/ip-address-manager |  | ||||||
|  |  | ||||||
| %files |  | ||||||
| %license LICENSE |  | ||||||
| %doc README.md |  | ||||||
| %{_bindir}/ip-address-manager |  | ||||||
|  |  | ||||||
| %changelog |  | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| # SPDX-License-Identifier: Apache-2.0 | # SPDX-License-Identifier: Apache-2.0 | ||||||
| #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.0 | #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.3 | ||||||
| #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.0-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.3-%RELEASE% | ||||||
| #!BuildVersion: 15.6 | #!BuildVersion: 15.6 | ||||||
|  |  | ||||||
| ARG SLE_VERSION | ARG SLE_VERSION | ||||||
| @@ -8,7 +8,14 @@ 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 | ||||||
|  |  | ||||||
| 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/* | #!ArchExclusiveLine: x86_64 | ||||||
|  | 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 | ||||||
| @@ -16,7 +23,15 @@ 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 && \ | ||||||
| @@ -31,8 +46,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.0" | LABEL org.opencontainers.image.version="26.1.2.3" | ||||||
| LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.0-%RELEASE%" | LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.3-%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" | ||||||
| @@ -64,7 +79,15 @@ 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 | ||||||
| RUN cp /usr/share/ipxe/ipxe-x86_64.efi /tftpboot/ipxe.efi | #!ArchExclusiveLine: x86_64 | ||||||
|  | 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/ | ||||||
|   | |||||||
| @@ -10,17 +10,15 @@ Listen {{ env.VMEDIA_TLS_PORT }} | |||||||
|     SSLCertificateFile {{ env.IRONIC_VMEDIA_CERT_FILE }} |     SSLCertificateFile {{ env.IRONIC_VMEDIA_CERT_FILE }} | ||||||
|     SSLCertificateKeyFile {{ env.IRONIC_VMEDIA_KEY_FILE }} |     SSLCertificateKeyFile {{ env.IRONIC_VMEDIA_KEY_FILE }} | ||||||
|  |  | ||||||
|     <Directory ~ "/shared/html"> |     <Directory "/shared"> | ||||||
|          Order deny,allow |         AllowOverride None | ||||||
|          deny from all |         Require all granted | ||||||
|     </Directory> |     </Directory> | ||||||
|     <Directory ~ "/shared/html/(redfish|ilo)/"> |  | ||||||
|          Order allow,deny |     <Directory "/shared/html"> | ||||||
|          allow from all |         Options Indexes FollowSymLinks | ||||||
|     </Directory> |         AllowOverride None | ||||||
|     <Directory ~ "/shared/html/images/"> |         Require all granted | ||||||
|          Order allow,deny |  | ||||||
|          allow from all |  | ||||||
|     </Directory> |     </Directory> | ||||||
| </VirtualHost> | </VirtualHost> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -83,7 +83,7 @@ send_sensor_data = {{ env.SEND_SENSOR_DATA }} | |||||||
| # Power state is checked every 60 seconds and BMC activity should | # Power state is checked every 60 seconds and BMC activity should | ||||||
| # be avoided more often than once every sixty seconds. | # be avoided more often than once every sixty seconds. | ||||||
| send_sensor_data_interval = 160 | send_sensor_data_interval = 160 | ||||||
| bootloader = http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/uefi_esp.img | bootloader = {{ env.IRONIC_BOOT_BASE_URL }}/uefi_esp.img | ||||||
| verify_step_priority_override = management.clear_job_queue:90 | verify_step_priority_override = management.clear_job_queue:90 | ||||||
| # We don't use this feature, and it creates an additional load on the database | # We don't use this feature, and it creates an additional load on the database | ||||||
| node_history = False | node_history = False | ||||||
| @@ -112,7 +112,7 @@ default_boot_option = local | |||||||
| erase_devices_metadata_priority = 10 | erase_devices_metadata_priority = 10 | ||||||
| erase_devices_priority = 0 | erase_devices_priority = 0 | ||||||
| http_root = /shared/html/ | http_root = /shared/html/ | ||||||
| http_url = http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }} | http_url = {{ env.IRONIC_BOOT_BASE_URL }} | ||||||
| fast_track = {{ env.IRONIC_FAST_TRACK }} | fast_track = {{ env.IRONIC_FAST_TRACK }} | ||||||
| {% if env.IRONIC_BOOT_ISO_SOURCE %} | {% if env.IRONIC_BOOT_ISO_SOURCE %} | ||||||
| ramdisk_image_download_source = {{ env.IRONIC_BOOT_ISO_SOURCE }} | ramdisk_image_download_source = {{ env.IRONIC_BOOT_ISO_SOURCE }} | ||||||
|   | |||||||
| @@ -6,22 +6,37 @@ ARCH=$(uname -m) | |||||||
| DEST=${2:-/tmp/esp.img} | DEST=${2:-/tmp/esp.img} | ||||||
| OS=${1:-sles} | OS=${1:-sles} | ||||||
|  |  | ||||||
| BOOTEFI=BOOTX64.efi | if [ $ARCH = "aarch64" ]; then | ||||||
| GRUBEFI=grubx64.efi |   BOOTEFI=BOOTAA64.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 | ||||||
| #cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/$GRUBEFI | if [ $ARCH = "aarch64" ]; then | ||||||
| cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/grub.efi |   cp -L /usr/share/efi/aarch64/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI | ||||||
|  |   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 | ||||||
| #mcopy -i $DEST -v /boot/efi/EFI/$OS/$GRUBEFI ::EFI/BOOT | if [ $ARCH = "aarch64" ]; then | ||||||
| mcopy -i $DEST -v /boot/efi/EFI/$OS/grub.efi ::EFI/BOOT |   mcopy -i $DEST -v /boot/efi/EFI/BOOT/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; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,6 +3,14 @@ | |||||||
| # 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 **************" | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # SPDX-License-Identifier: Apache-2.0 | # SPDX-License-Identifier: Apache-2.0 | ||||||
| #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.0 | #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1 | ||||||
| #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.0-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%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,7 +8,14 @@ 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 | ||||||
| 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/* | #!ArchExclusiveLine: x86_64 | ||||||
|  | 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/ | ||||||
|  |  | ||||||
| @@ -19,11 +26,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.0" | LABEL org.opencontainers.image.version="3.0.1" | ||||||
| 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.0-%RELEASE%" | LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%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" | ||||||
|   | |||||||
| @@ -1,12 +1,6 @@ | |||||||
| <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> | ||||||
|   | |||||||
| @@ -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 - openstack-ironic-image-x86_64 package |   # SLES BASED IPA - ironic-ipa-ramdisk-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*.x86_64*.kernel /shared/html/images/ironic-python-agent.kernel |   cp /tmp/openstack-ironic-image*.kernel /shared/html/images/ironic-python-agent.kernel | ||||||
| else | else | ||||||
|   FILENAME=ironic-python-agent |   FILENAME=ironic-python-agent | ||||||
|   FILENAME_EXT=.tar |   FILENAME_EXT=.tar | ||||||
|   | |||||||
| @@ -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-201"> | <image schemaversion="7.4" name="openstack-ironic-image-301"> | ||||||
|     <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,8 +116,9 @@ | |||||||
|         <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-i386-pc"/> |         <package name="grub2-arm64-efi" arch="aarch64"/> | ||||||
|         <package name="syslinux"/> |         <package name="grub2-i386-pc" arch="x86_64"/> | ||||||
|  |         <package name="syslinux" arch="x86_64"/> | ||||||
|         <package name="lvm2"/> |         <package name="lvm2"/> | ||||||
|         <package name="plymouth"/> |         <package name="plymouth"/> | ||||||
|         <package name="fontconfig"/> |         <package name="fontconfig"/> | ||||||
| @@ -135,12 +136,10 @@ | |||||||
|         <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" arch="x86_64"/> |         <package name="python311-proliantutils"/> | ||||||
|         <package name="lshw"/> |         <package name="lshw"/> | ||||||
|         <package name="dmidecode" arch="aarch64"/> |         <package name="dmidecode"/> | ||||||
|         <package name="dmidecode" arch="x86_64"/> |         <package name="efibootmgr"/> | ||||||
|         <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"/> | ||||||
| @@ -157,7 +156,6 @@ | |||||||
|     </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>  | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| Name:           ironic-ipa-ramdisk | Name:           ironic-ipa-ramdisk | ||||||
| Version:        3.0.0 | Version:        3.0.1 | ||||||
| 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,7 +49,12 @@ 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 | ||||||
| @@ -93,19 +98,14 @@ 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.
										
									
								
							| @@ -1,17 +1,20 @@ | |||||||
| #!BuildTag: kiwi-builder:10.1 | #!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1-%RELEASE% | ||||||
| FROM registry.suse.com/bci/kiwi:10.1.10 | #!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1 | ||||||
| MAINTAINER SUSE LLC (https://www.suse.com/) |  | ||||||
|  | ARG KIWIVERSION="10.2.12" | ||||||
|  | FROM registry.suse.com/bci/kiwi:${KIWIVERSION} | ||||||
|  | ARG KIWIVERSION | ||||||
|  |  | ||||||
| # Define labels according to https://en.opensuse.org/Building_derived_containers | # Define labels according to https://en.opensuse.org/Building_derived_containers | ||||||
| # labelprefix=com.suse.application.akri | # labelprefix=com.suse.application.akri | ||||||
| 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 Kiwi Builder Container Image" | LABEL org.opencontainers.image.title="SLE Kiwi Builder Container Image" | ||||||
| LABEL org.opencontainers.image.description="kiwi-builder based on the SLE Base Container Image." | LABEL org.opencontainers.image.description="kiwi-builder based on the SLE Base Container Image." | ||||||
| LABEL org.opencontainers.image.version="%PACKAGE_VERSION%" | LABEL org.opencontainers.image.version="%%kiwi_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" | LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1-%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" | ||||||
| @@ -20,12 +23,8 @@ LABEL com.suse.image-type="application" | |||||||
| LABEL com.suse.release-stage="released" | LABEL com.suse.release-stage="released" | ||||||
| # endlabelprefix | # endlabelprefix | ||||||
|  |  | ||||||
| # Install required packages for Kiwi to function as expected | # help the build service understand the need for python3-kiwi | ||||||
| # Should be provided via https://github.com/SUSE/BCI-dockerfile-generator/pull/1770 | RUN zypper -n install -d -D python3-kiwi; [ "%%kiwi_version%%" = "${KIWIVERSION}" ] || { echo "expected kiwi version ${KIWIVERSION}: version mismatch"; exit 1; } | ||||||
| # RUN zypper in -y gawk && zypper clean -a |  | ||||||
|  |  | ||||||
| # Configure Kiwi to use kpartx |  | ||||||
| RUN echo -e "mapper:\n  - part_mapper: kpartx" > /etc/kiwi.yml |  | ||||||
|  |  | ||||||
| # Copy build script into image and make it executable | # Copy build script into image and make it executable | ||||||
| ADD build-image.sh /usr/bin/build-image | ADD build-image.sh /usr/bin/build-image | ||||||
|   | |||||||
| @@ -8,40 +8,48 @@ Please ensure that you're running this on a registered SLE Micro 6.0 system, and | |||||||
|  |  | ||||||
| Next, download the podman image: | Next, download the podman image: | ||||||
|  |  | ||||||
| # podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 | # podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 | ||||||
|  |  | ||||||
| Make a local output directory (where the images will reside): | Make a local output directory (where the images will reside): | ||||||
|  |  | ||||||
| # mkdir output | # mkdir output | ||||||
|  |  | ||||||
|  | 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:%%kiwi_version%%.1 build-image | ||||||
|  |  | ||||||
|  | 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:%%kiwi_version%%.1 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 build-image | # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Default | ||||||
|  |  | ||||||
| To build a 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 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:%%kiwi_version%%.1 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 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:%%kiwi_version%%.1 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 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:%%kiwi_version%%.1 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 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:%%kiwi_version%%.1 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.0.changes | SL-Micro.x86_64-6.0.changes | ||||||
| SLE-Micro.x86_64-6.0.packages | SL-Micro.x86_64-6.0.packages | ||||||
| SLE-Micro.x86_64-6.0.raw | SL-Micro.x86_64-6.0.raw | ||||||
| SLE-Micro.x86_64-6.0.verified | SL-Micro.x86_64-6.0.verified | ||||||
| build | build | ||||||
| kiwi.result | kiwi.result | ||||||
| kiwi.result.json | kiwi.result.json | ||||||
|   | |||||||
| @@ -16,4 +16,14 @@ | |||||||
|     <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> | ||||||
|   </service> |   </service> | ||||||
|  |   <service mode="buildtime" name="replace_using_package_version"> | ||||||
|  |     <param name="file">Dockerfile</param> | ||||||
|  |     <param name="regex">%%kiwi_version%%</param> | ||||||
|  |     <param name="package">python3-kiwi</param> | ||||||
|  |   </service> | ||||||
|  |   <service mode="buildtime" name="replace_using_package_version"> | ||||||
|  |     <param name="file">README</param> | ||||||
|  |     <param name="regex">%%kiwi_version%%</param> | ||||||
|  |     <param name="package">python3-kiwi</param> | ||||||
|  |   </service> | ||||||
| </services> | </services> | ||||||
|   | |||||||
| @@ -21,43 +21,45 @@ | |||||||
| # | # | ||||||
|  |  | ||||||
| # Set image build defaults, blocksize is an empty string | # Set image build defaults, blocksize is an empty string | ||||||
| PROFILE="Default" | PROFILE="Base" | ||||||
| LARGEBLOCK=false | LARGEBLOCK=false | ||||||
|  |  | ||||||
| # Print usage | # Print usage | ||||||
| usage(){ | usage(){ | ||||||
| 	cat <<-EOF |   cat <<-EOF | ||||||
| 	============================== |   ============================== | ||||||
| 	SLE Micro 6.0 Kiwi SDK Builder |   SLE Micro 6.0 Kiwi SDK Builder | ||||||
| 	============================== |   ============================== | ||||||
|  |  | ||||||
| 	Usage: ${0} [-p <profile>] [-b] |   Usage: ${0} [-p <profile>] [-b] | ||||||
|  |  | ||||||
| 	Profile Options (-p): |   Profile Options (-p): | ||||||
| 	* Default: RAW Disk Image with kernel-default |   * Base: RAW Disk Image with podman | ||||||
| 	* Default-SelfInstall: SelfInstall ISO with kernel-default |   * Base-SelfInstall: SelfInstall ISO with podman | ||||||
| 	* Base-RT: RAW Disk Image with kernel-rt |   * Default: RAW Disk Image with podman and kvm | ||||||
| 	* Base-RT-SelfInstall: SelfInstall ISO with kernel-rt |   * Default-SelfInstall: SelfInstall ISO with podman and kvm | ||||||
|  |   * Base-RT: RAW Disk Image with kernel-rt | ||||||
|  |   * Base-RT-SelfInstall: SelfInstall ISO with kernel-rt | ||||||
|  |  | ||||||
| 	4096 Blocksize (-b): If specified, use a 4096 blocksize (rather than 512) when generating the image. |   4096 Blocksize (-b): If specified, use a 4096 blocksize (rather than 512) when generating the image. | ||||||
|  |  | ||||||
| 	NOTE: If both options are omitted, the "Default" profile with a standard "512" blocksize is used. |   NOTE: If both options are omitted, the "Base" profile with a standard "512" blocksize is used. | ||||||
| 	EOF | EOF | ||||||
| } | } | ||||||
|  |  | ||||||
| # Grab CLI options and handle | # Grab CLI options and handle | ||||||
| while getopts 'p:bh' OPTION; do | while getopts 'p:bh' OPTION; do | ||||||
| 	case "${OPTION}" in |   case "${OPTION}" in | ||||||
| 		p) |     p) | ||||||
| 			PROFILE="${OPTARG}" |       PROFILE="${OPTARG}" | ||||||
| 			;; |       ;; | ||||||
| 		b) |     b) | ||||||
| 			LARGEBLOCK=true |       LARGEBLOCK=true | ||||||
| 			;; |       ;; | ||||||
| 		?) |     ?) | ||||||
| 			usage && exit 2 |       usage && exit 2 | ||||||
| 			;; |       ;; | ||||||
| 	esac |   esac | ||||||
| done | done | ||||||
|  |  | ||||||
| # To avoid wasting time, perform the loop creation test first, and exit with a warning to re-run. | # To avoid wasting time, perform the loop creation test first, and exit with a warning to re-run. | ||||||
|   | |||||||
| @@ -12,10 +12,8 @@ | |||||||
|     <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" > | ||||||
|   <service mode="buildtime" name="recompress"> |     <param name="obsinfo">kube-rbac-proxy.obsinfo</param> | ||||||
|     <param name="file">*.tar</param> |  | ||||||
|     <param name="compression">gz</param> |  | ||||||
|   </service> |   </service> | ||||||
|   <service name="go_modules"> |   <service name="go_modules"> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -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.gz | Source:         kube-rbac-proxy-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang(API) = 1.23 | BuildRequires:  golang(API) = 1.23 | ||||||
| ExcludeArch:    s390 | ExcludeArch:    s390 | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.0 | #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0 | ||||||
| #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.0-%RELEASE% | #!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% | ||||||
| annotations: | annotations: | ||||||
|   catalog.cattle.io/certified: rancher |   catalog.cattle.io/certified: rancher | ||||||
|   catalog.cattle.io/display-name: KubeVirt |   catalog.cattle.io/display-name: KubeVirt | ||||||
| @@ -10,11 +11,12 @@ annotations: | |||||||
|   catalog.cattle.io/rancher-version: '>= 2.10.0-0' |   catalog.cattle.io/rancher-version: '>= 2.10.0-0' | ||||||
|   catalog.cattle.io/scope: management |   catalog.cattle.io/scope: management | ||||||
|   catalog.cattle.io/ui-component: plugins |   catalog.cattle.io/ui-component: plugins | ||||||
|   catalog.cattle.io/ui-extensions-version: '>= 3.0.0' |   catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0" | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 1.2.0 | appVersion: 302.0.0+up1.2.1 | ||||||
| description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard' | description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard' | ||||||
| icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg |  | ||||||
| name: kubevirt-dashboard-extension | name: kubevirt-dashboard-extension | ||||||
| type: application | type: application | ||||||
| version: "%%CHART_MAJOR%%.0.0+up1.2.0" | version: "%%CHART_MAJOR%%.0.0+up1.2.1" | ||||||
|  | icon: >- | ||||||
|  |   https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ Common labels | |||||||
| helm.sh/chart: {{ include "extension-server.chart" . }} | helm.sh/chart: {{ include "extension-server.chart" . }} | ||||||
| {{ include "extension-server.selectorLabels" . }} | {{ include "extension-server.selectorLabels" . }} | ||||||
| {{- if .Chart.AppVersion }} | {{- if .Chart.AppVersion }} | ||||||
| app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | app.kubernetes.io/version: {{ .Chart.AppVersion | replace "+" "_" | quote }} | ||||||
| {{- end }} | {{- end }} | ||||||
| app.kubernetes.io/managed-by: {{ .Release.Service }} | app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||||
| {{- end }} | {{- end }} | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ spec: | |||||||
|   plugin: |   plugin: | ||||||
|     name: {{ include "extension-server.fullname" . }} |     name: {{ include "extension-server.fullname" . }} | ||||||
|     version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }} |     version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }} | ||||||
|     endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/1.2.0 |     endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/302.0.0+up1.2.1 | ||||||
|     noCache: {{ .Values.plugin.noCache }} |     noCache: {{ .Values.plugin.noCache }} | ||||||
|     noAuth: {{ .Values.plugin.noAuth }} |     noAuth: {{ .Values.plugin.noAuth }} | ||||||
|     metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }} |     metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }} | ||||||
| @@ -8,5 +8,5 @@ plugin: | |||||||
|   metadata: |   metadata: | ||||||
|     catalog.cattle.io/display-name: KubeVirt |     catalog.cattle.io/display-name: KubeVirt | ||||||
|     catalog.cattle.io/rancher-version: ">= 2.10.0-0" |     catalog.cattle.io/rancher-version: ">= 2.10.0-0" | ||||||
|     catalog.cattle.io/ui-extensions-version: ">= 3.0.0" |     catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0" | ||||||
|     catalog.cattle.io/kube-version: ">= v1.26.0-0" |     catalog.cattle.io/kube-version: ">= v1.26.0-0" | ||||||
|   | |||||||
| @@ -1,16 +1,16 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.0 | #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.1_up0.9.4 | ||||||
| #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.0-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.1_up0.9.4-%RELEASE% | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 0.9.0 | appVersion: 0.9.4 | ||||||
| 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.0 |   version: 0.6.1 | ||||||
| - alias: metal3-ironic | - alias: metal3-ironic | ||||||
|   name: ironic |   name: ironic | ||||||
|   repository: file://./charts/ironic |   repository: file://./charts/ironic | ||||||
|   version: 0.8.0 |   version: 0.9.3 | ||||||
| - 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.0 |   version: 0.6.1 | ||||||
| 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.0" | version: "%%CHART_MAJOR%%.0.1+up0.9.4" | ||||||
|   | |||||||
| @@ -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.0 | version: 0.6.1 | ||||||
|   | |||||||
| @@ -1,15 +0,0 @@ | |||||||
| 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 |  | ||||||
| @@ -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.8.0 | version: 0.9.3 | ||||||
|   | |||||||
| @@ -77,9 +77,6 @@ spec: | |||||||
|             mountPath: "/certs/vmedia" |             mountPath: "/certs/vmedia" | ||||||
|             readOnly: true |             readOnly: true | ||||||
|           {{- end }} |           {{- end }} | ||||||
|           - mountPath: /shared/html/tstcerts |  | ||||||
|             name: cert-ironic-ca |  | ||||||
|             readOnly: true |  | ||||||
|         {{- end }} |         {{- end }} | ||||||
|       - name: ironic-log-watch |       - name: ironic-log-watch | ||||||
|         image: {{ .Values.images.ironic.repository }}:{{ .Values.images.ironic.tag }} |         image: {{ .Values.images.ironic.repository }}:{{ .Values.images.ironic.tag }} | ||||||
|   | |||||||
| @@ -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.0 |     tag: 26.1.2.3 | ||||||
|   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.0 |     tag: 3.0.1 | ||||||
|  |  | ||||||
| nameOverride: "" | nameOverride: "" | ||||||
| fullnameOverride: "" | fullnameOverride: "" | ||||||
|   | |||||||
| @@ -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.0 | version: 0.6.1 | ||||||
|   | |||||||
| @@ -1,15 +0,0 @@ | |||||||
| 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 |  | ||||||
| @@ -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.0 |   tag: 26.1.2.2 | ||||||
|  |  | ||||||
| imagePullSecrets: [] | imagePullSecrets: [] | ||||||
| nameOverride: "" | nameOverride: "" | ||||||
|   | |||||||
| @@ -1,9 +1,10 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9 | #!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.1_up0.14.9 | ||||||
| #!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.1_up0.14.9-%RELEASE% | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: v0.14.3 | appVersion: v0.14.3 | ||||||
| dependencies: | dependencies: | ||||||
| - condition: frrk8s.enabled | - alias: metallb-frr-k8s | ||||||
|  |   condition: frrk8s.enabled | ||||||
|   name: frr-k8s |   name: frr-k8s | ||||||
|   repository: file://./charts/frr-k8s |   repository: file://./charts/frr-k8s | ||||||
|   version: 0.0.15 |   version: 0.0.15 | ||||||
| @@ -20,4 +21,4 @@ name: metallb | |||||||
| sources: | sources: | ||||||
| - https://github.com/metallb/metallb | - https://github.com/metallb/metallb | ||||||
| type: application | type: application | ||||||
| version: "%%CHART_MAJOR%%.0.0+up0.14.9" | version: "%%CHART_MAJOR%%.0.1+up0.14.9" | ||||||
|   | |||||||
| @@ -53,7 +53,7 @@ prometheus: | |||||||
|   # the image to be used for the kuberbacproxy container |   # the image to be used for the kuberbacproxy container | ||||||
|   rbacProxy: |   rbacProxy: | ||||||
|     repository: "registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy" |     repository: "registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy" | ||||||
|     tag: "v0.18.0" |     tag: "0.18.1" | ||||||
|     pullPolicy: IfNotPresent |     pullPolicy: IfNotPresent | ||||||
|  |  | ||||||
|   # Prometheus Operator ServiceMonitors. |   # Prometheus Operator ServiceMonitors. | ||||||
|   | |||||||
| @@ -378,3 +378,15 @@ frrk8s: | |||||||
|   enabled: false |   enabled: false | ||||||
|   external: false |   external: false | ||||||
|   namespace: "" |   namespace: "" | ||||||
|  |  | ||||||
|  | # Override any settings for the metallb frr-k8s service here | ||||||
|  | metallb-frr-k8s: | ||||||
|  |   prometheus: | ||||||
|  |     rbacProxy: | ||||||
|  |       repository: "%%IMG_REPO%%/%%IMG_PREFIX%%kube-rbac-proxy" | ||||||
|  |   frrk8s: | ||||||
|  |     image: | ||||||
|  |       repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr-k8s" | ||||||
|  |     frr: | ||||||
|  |       image: | ||||||
|  |         repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr" | ||||||
| @@ -12,10 +12,8 @@ | |||||||
|     <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"> | ||||||
|   <service mode="buildtime" name="recompress"> |     <param name="obsinfo">metallb.obsinfo</param> | ||||||
|     <param name="file">*.tar</param> |  | ||||||
|     <param name="compression">gz</param> |  | ||||||
|   </service> |   </service> | ||||||
|   <service name="go_modules"> |   <service name="go_modules"> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -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.gz | Source:         %{name}-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang(API) = 1.22 | BuildRequires:  golang(API) = 1.22 | ||||||
| ExcludeArch:    s390 | ExcludeArch:    s390 | ||||||
|   | |||||||
| @@ -9,7 +9,9 @@ | |||||||
|     <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> | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.13.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.13.0 | #!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.14.1 | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 0.13.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.13.0" | version: "%%CHART_MAJOR%%.0.0+up0.14.1" | ||||||
|   | |||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -35,7 +35,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: ipam-webhook-service |               name: ipam-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -208,7 +207,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: ipam-webhook-service |               name: ipam-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -369,7 +367,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: ipam-webhook-service |               name: ipam-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -536,7 +533,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: capm3-webhook-service |               name: capm3-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -699,6 +695,91 @@ data: | |||||||
|     --- |     --- | ||||||
|     apiVersion: apiextensions.k8s.io/v1 |     apiVersion: apiextensions.k8s.io/v1 | ||||||
|     kind: CustomResourceDefinition |     kind: CustomResourceDefinition | ||||||
|  |     metadata: | ||||||
|  |       annotations: | ||||||
|  |         cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert | ||||||
|  |         controller-gen.kubebuilder.io/version: v0.13.0 | ||||||
|  |       labels: | ||||||
|  |         cluster.x-k8s.io/provider: infrastructure-metal3 | ||||||
|  |         cluster.x-k8s.io/v1beta1: v1beta1 | ||||||
|  |       name: metal3clustertemplates.infrastructure.cluster.x-k8s.io | ||||||
|  |     spec: | ||||||
|  |       group: infrastructure.cluster.x-k8s.io | ||||||
|  |       names: | ||||||
|  |         categories: | ||||||
|  |         - cluster-api | ||||||
|  |         kind: Metal3ClusterTemplate | ||||||
|  |         listKind: Metal3ClusterTemplateList | ||||||
|  |         plural: metal3clustertemplates | ||||||
|  |         shortNames: | ||||||
|  |         - m3ct | ||||||
|  |         singular: metal3clustertemplate | ||||||
|  |       scope: Namespaced | ||||||
|  |       versions: | ||||||
|  |       - name: v1beta1 | ||||||
|  |         schema: | ||||||
|  |           openAPIV3Schema: | ||||||
|  |             description: Metal3ClusterTemplate is the Schema for the metal3clustertemplates | ||||||
|  |               API. | ||||||
|  |             properties: | ||||||
|  |               apiVersion: | ||||||
|  |                 description: 'APIVersion defines the versioned schema of this representation | ||||||
|  |                   of an object. Servers should convert recognized schemas to the latest | ||||||
|  |                   internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||||||
|  |                 type: string | ||||||
|  |               kind: | ||||||
|  |                 description: 'Kind is a string value representing the REST resource this | ||||||
|  |                   object represents. Servers may infer this from the endpoint the client | ||||||
|  |                   submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||||||
|  |                 type: string | ||||||
|  |               metadata: | ||||||
|  |                 type: object | ||||||
|  |               spec: | ||||||
|  |                 description: Metal3ClusterTemplateSpec defines the desired state of Metal3ClusterTemplate. | ||||||
|  |                 properties: | ||||||
|  |                   template: | ||||||
|  |                     description: Metal3ClusterTemplateResource describes the data for | ||||||
|  |                       creating a Metal3Cluster from a template. | ||||||
|  |                     properties: | ||||||
|  |                       spec: | ||||||
|  |                         description: Metal3ClusterSpec defines the desired state of Metal3Cluster. | ||||||
|  |                         properties: | ||||||
|  |                           controlPlaneEndpoint: | ||||||
|  |                             description: ControlPlaneEndpoint represents the endpoint | ||||||
|  |                               used to communicate with the control plane. | ||||||
|  |                             properties: | ||||||
|  |                               host: | ||||||
|  |                                 description: Host is the hostname on which the API server | ||||||
|  |                                   is serving. | ||||||
|  |                                 type: string | ||||||
|  |                               port: | ||||||
|  |                                 description: Port is the port on which the API server | ||||||
|  |                                   is serving. | ||||||
|  |                                 type: integer | ||||||
|  |                             required: | ||||||
|  |                             - host | ||||||
|  |                             - port | ||||||
|  |                             type: object | ||||||
|  |                           noCloudProvider: | ||||||
|  |                             description: Determines if the cluster is not to be deployed | ||||||
|  |                               with an external cloud provider. If set to true, CAPM3 will | ||||||
|  |                               use node labels to set providerID on the kubernetes nodes. | ||||||
|  |                               If set to false, providerID is set on nodes by other entities | ||||||
|  |                               and CAPM3 uses the value of the providerID on the m3m resource. | ||||||
|  |                             type: boolean | ||||||
|  |                         type: object | ||||||
|  |                     required: | ||||||
|  |                     - spec | ||||||
|  |                     type: object | ||||||
|  |                 required: | ||||||
|  |                 - template | ||||||
|  |                 type: object | ||||||
|  |             type: object | ||||||
|  |         served: true | ||||||
|  |         storage: true | ||||||
|  |     --- | ||||||
|  |     apiVersion: apiextensions.k8s.io/v1 | ||||||
|  |     kind: CustomResourceDefinition | ||||||
|     metadata: |     metadata: | ||||||
|       annotations: |       annotations: | ||||||
|         cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert |         cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert | ||||||
| @@ -712,7 +793,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: capm3-webhook-service |               name: capm3-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -868,7 +948,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: capm3-webhook-service |               name: capm3-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -1064,7 +1143,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: capm3-webhook-service |               name: capm3-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -2078,7 +2156,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: capm3-webhook-service |               name: capm3-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -2150,6 +2227,17 @@ data: | |||||||
|                     - metadata |                     - metadata | ||||||
|                     - disabled |                     - disabled | ||||||
|                     type: string |                     type: string | ||||||
|  |                   customDeploy: | ||||||
|  |                     description: A custom deploy procedure. | ||||||
|  |                     properties: | ||||||
|  |                       method: | ||||||
|  |                         description: Custom deploy method name. This name is specific | ||||||
|  |                           to the deploy ramdisk used. If you don't have a custom deploy | ||||||
|  |                           ramdisk, you shouldn't use CustomDeploy. | ||||||
|  |                         type: string | ||||||
|  |                     required: | ||||||
|  |                     - method | ||||||
|  |                     type: object | ||||||
|                   dataTemplate: |                   dataTemplate: | ||||||
|                     description: MetadataTemplate is a reference to a Metal3DataTemplate |                     description: MetadataTemplate is a reference to a Metal3DataTemplate | ||||||
|                       object containing a template of metadata to be rendered. Metadata |                       object containing a template of metadata to be rendered. Metadata | ||||||
| @@ -2302,8 +2390,6 @@ data: | |||||||
|                         type: string |                         type: string | ||||||
|                     type: object |                     type: object | ||||||
|                     x-kubernetes-map-type: atomic |                     x-kubernetes-map-type: atomic | ||||||
|                 required: |  | ||||||
|                 - image |  | ||||||
|                 type: object |                 type: object | ||||||
|               status: |               status: | ||||||
|                 description: Metal3MachineStatus defines the observed state of Metal3Machine. |                 description: Metal3MachineStatus defines the observed state of Metal3Machine. | ||||||
| @@ -2521,7 +2607,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: capm3-webhook-service |               name: capm3-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -2591,6 +2676,17 @@ data: | |||||||
|                             - metadata |                             - metadata | ||||||
|                             - disabled |                             - disabled | ||||||
|                             type: string |                             type: string | ||||||
|  |                           customDeploy: | ||||||
|  |                             description: A custom deploy procedure. | ||||||
|  |                             properties: | ||||||
|  |                               method: | ||||||
|  |                                 description: Custom deploy method name. This name is specific | ||||||
|  |                                   to the deploy ramdisk used. If you don't have a custom | ||||||
|  |                                   deploy ramdisk, you shouldn't use CustomDeploy. | ||||||
|  |                                 type: string | ||||||
|  |                             required: | ||||||
|  |                             - method | ||||||
|  |                             type: object | ||||||
|                           dataTemplate: |                           dataTemplate: | ||||||
|                             description: MetadataTemplate is a reference to a Metal3DataTemplate |                             description: MetadataTemplate is a reference to a Metal3DataTemplate | ||||||
|                               object containing a template of metadata to be rendered. |                               object containing a template of metadata to be rendered. | ||||||
| @@ -2745,8 +2841,6 @@ data: | |||||||
|                                 type: string |                                 type: string | ||||||
|                             type: object |                             type: object | ||||||
|                             x-kubernetes-map-type: atomic |                             x-kubernetes-map-type: atomic | ||||||
|                         required: |  | ||||||
|                         - image |  | ||||||
|                         type: object |                         type: object | ||||||
|                     required: |                     required: | ||||||
|                     - spec |                     - spec | ||||||
| @@ -2774,7 +2868,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: capm3-webhook-service |               name: capm3-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -2889,7 +2982,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: capm3-webhook-service |               name: capm3-webhook-service | ||||||
|               namespace: capm3-system |               namespace: capm3-system | ||||||
| @@ -3173,6 +3265,12 @@ data: | |||||||
|       - patch |       - patch | ||||||
|       - update |       - update | ||||||
|       - watch |       - watch | ||||||
|  |     - apiGroups: | ||||||
|  |       - "" | ||||||
|  |       resources: | ||||||
|  |       - pods | ||||||
|  |       verbs: | ||||||
|  |       - list | ||||||
|     - apiGroups: |     - apiGroups: | ||||||
|       - infrastructure.cluster.x-k8s.io |       - infrastructure.cluster.x-k8s.io | ||||||
|       resources: |       resources: | ||||||
| @@ -3391,6 +3489,13 @@ data: | |||||||
|       - get |       - get | ||||||
|       - patch |       - patch | ||||||
|       - update |       - update | ||||||
|  |     - apiGroups: | ||||||
|  |       - storage.k8s.io | ||||||
|  |       resources: | ||||||
|  |       - volumeattachments | ||||||
|  |       verbs: | ||||||
|  |       - list | ||||||
|  |       - watch | ||||||
|     --- |     --- | ||||||
|     apiVersion: rbac.authorization.k8s.io/v1 |     apiVersion: rbac.authorization.k8s.io/v1 | ||||||
|     kind: ClusterRole |     kind: ClusterRole | ||||||
| @@ -3634,7 +3739,7 @@ data: | |||||||
|           containers: |           containers: | ||||||
|           - args: |           - args: | ||||||
|             - --webhook-port=9443 |             - --webhook-port=9443 | ||||||
|             - --enableBMHNameBasedPreallocation=${enableBMHNameBasedPreallocation:=false} |             - --enableBMHNameBasedPreallocation=${ENABLE_BMH_NAME_BASED_PREALLOCATION:=false} | ||||||
|             - --diagnostics-address=${CAPM3_DIAGNOSTICS_ADDRESS:=:8443} |             - --diagnostics-address=${CAPM3_DIAGNOSTICS_ADDRESS:=:8443} | ||||||
|             - --insecure-diagnostics=${CAPM3_INSECURE_DIAGNOSTICS:=false} |             - --insecure-diagnostics=${CAPM3_INSECURE_DIAGNOSTICS:=false} | ||||||
|             command: |             command: | ||||||
| @@ -3647,7 +3752,7 @@ data: | |||||||
|             envFrom: |             envFrom: | ||||||
|             - configMapRef: |             - configMapRef: | ||||||
|                 name: capm3-capm3fasttrack-configmap |                 name: capm3-capm3fasttrack-configmap | ||||||
|             image: quay.io/metal3-io/cluster-api-provider-metal3:v1.7.2 |             image: registry.rancher.com/rancher/cluster-api-provider-metal3:v1.8.2 | ||||||
|             imagePullPolicy: IfNotPresent |             imagePullPolicy: IfNotPresent | ||||||
|             livenessProbe: |             livenessProbe: | ||||||
|               httpGet: |               httpGet: | ||||||
| @@ -3676,6 +3781,7 @@ data: | |||||||
|               privileged: false |               privileged: false | ||||||
|               runAsGroup: 65532 |               runAsGroup: 65532 | ||||||
|               runAsUser: 65532 |               runAsUser: 65532 | ||||||
|  |             terminationMessagePolicy: FallbackToLogsOnError | ||||||
|             volumeMounts: |             volumeMounts: | ||||||
|             - mountPath: /tmp/k8s-webhook-server/serving-certs |             - mountPath: /tmp/k8s-webhook-server/serving-certs | ||||||
|               name: cert |               name: cert | ||||||
| @@ -3731,7 +3837,7 @@ data: | |||||||
|               valueFrom: |               valueFrom: | ||||||
|                 fieldRef: |                 fieldRef: | ||||||
|                   fieldPath: metadata.namespace |                   fieldPath: metadata.namespace | ||||||
|             image: quay.io/metal3-io/ip-address-manager:v1.7.2 |             image: quay.io/metal3-io/ip-address-manager:v1.8.1 | ||||||
|             imagePullPolicy: IfNotPresent |             imagePullPolicy: IfNotPresent | ||||||
|             livenessProbe: |             livenessProbe: | ||||||
|               httpGet: |               httpGet: | ||||||
| @@ -3760,6 +3866,7 @@ data: | |||||||
|               privileged: false |               privileged: false | ||||||
|               runAsGroup: 65532 |               runAsGroup: 65532 | ||||||
|               runAsUser: 65532 |               runAsUser: 65532 | ||||||
|  |             terminationMessagePolicy: FallbackToLogsOnError | ||||||
|             volumeMounts: |             volumeMounts: | ||||||
|             - mountPath: /tmp/k8s-webhook-server/serving-certs |             - mountPath: /tmp/k8s-webhook-server/serving-certs | ||||||
|               name: cert |               name: cert | ||||||
| @@ -3864,6 +3971,28 @@ data: | |||||||
|         resources: |         resources: | ||||||
|         - metal3clusters |         - metal3clusters | ||||||
|       sideEffects: None |       sideEffects: None | ||||||
|  |     - admissionReviewVersions: | ||||||
|  |       - v1 | ||||||
|  |       - v1beta1 | ||||||
|  |       clientConfig: | ||||||
|  |         service: | ||||||
|  |           name: capm3-webhook-service | ||||||
|  |           namespace: capm3-system | ||||||
|  |           path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3clustertemplate | ||||||
|  |       failurePolicy: Fail | ||||||
|  |       matchPolicy: Equivalent | ||||||
|  |       name: default.metal3clustertemplate.infrastructure.cluster.x-k8s.io | ||||||
|  |       rules: | ||||||
|  |       - apiGroups: | ||||||
|  |         - infrastructure.cluster.x-k8s.io | ||||||
|  |         apiVersions: | ||||||
|  |         - v1beta1 | ||||||
|  |         operations: | ||||||
|  |         - CREATE | ||||||
|  |         - UPDATE | ||||||
|  |         resources: | ||||||
|  |         - metal3clustertemplates | ||||||
|  |       sideEffects: None | ||||||
|     - admissionReviewVersions: |     - admissionReviewVersions: | ||||||
|       - v1 |       - v1 | ||||||
|       - v1beta1 |       - v1beta1 | ||||||
| @@ -4126,6 +4255,28 @@ data: | |||||||
|         resources: |         resources: | ||||||
|         - metal3clusters |         - metal3clusters | ||||||
|       sideEffects: None |       sideEffects: None | ||||||
|  |     - admissionReviewVersions: | ||||||
|  |       - v1 | ||||||
|  |       - v1beta1 | ||||||
|  |       clientConfig: | ||||||
|  |         service: | ||||||
|  |           name: capm3-webhook-service | ||||||
|  |           namespace: capm3-system | ||||||
|  |           path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3clustertemplate | ||||||
|  |       failurePolicy: Fail | ||||||
|  |       matchPolicy: Equivalent | ||||||
|  |       name: validation.metal3clustertemplate.infrastructure.cluster.x-k8s.io | ||||||
|  |       rules: | ||||||
|  |       - apiGroups: | ||||||
|  |         - infrastructure.cluster.x-k8s.io | ||||||
|  |         apiVersions: | ||||||
|  |         - v1beta1 | ||||||
|  |         operations: | ||||||
|  |         - CREATE | ||||||
|  |         - UPDATE | ||||||
|  |         resources: | ||||||
|  |         - metal3clustertemplates | ||||||
|  |       sideEffects: None | ||||||
|     - admissionReviewVersions: |     - admissionReviewVersions: | ||||||
|       - v1 |       - v1 | ||||||
|       - v1beta1 |       - v1beta1 | ||||||
| @@ -4360,6 +4511,9 @@ data: | |||||||
|     apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3 |     apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3 | ||||||
|     kind: Metadata |     kind: Metadata | ||||||
|     releaseSeries: |     releaseSeries: | ||||||
|  |     - major: 1 | ||||||
|  |       minor: 8 | ||||||
|  |       contract: v1beta1 | ||||||
|     - major: 1 |     - major: 1 | ||||||
|       minor: 7 |       minor: 7 | ||||||
|       contract: v1beta1 |       contract: v1beta1 | ||||||
| @@ -4384,7 +4538,7 @@ data: | |||||||
| kind: ConfigMap | kind: ConfigMap | ||||||
| metadata: | metadata: | ||||||
|   creationTimestamp: null |   creationTimestamp: null | ||||||
|   name: v1.7.2 |   name: v1.8.2 | ||||||
|   namespace: capm3-system |   namespace: capm3-system | ||||||
|   labels: |   labels: | ||||||
|     provider-components: metal3 |     provider-components: metal3 | ||||||
|   | |||||||
| @@ -32,7 +32,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: rke2-bootstrap-webhook-service |               name: rke2-bootstrap-webhook-service | ||||||
|               namespace: rke2-bootstrap-system |               namespace: rke2-bootstrap-system | ||||||
| @@ -1237,7 +1236,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: rke2-bootstrap-webhook-service |               name: rke2-bootstrap-webhook-service | ||||||
|               namespace: rke2-bootstrap-system |               namespace: rke2-bootstrap-system | ||||||
| @@ -2545,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.8.0 |             image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.9.0 | ||||||
|             imagePullPolicy: IfNotPresent |             imagePullPolicy: IfNotPresent | ||||||
|             livenessProbe: |             livenessProbe: | ||||||
|               httpGet: |               httpGet: | ||||||
| @@ -2574,6 +2572,7 @@ data: | |||||||
|               privileged: false |               privileged: false | ||||||
|               runAsGroup: 65532 |               runAsGroup: 65532 | ||||||
|               runAsUser: 65532 |               runAsUser: 65532 | ||||||
|  |             terminationMessagePolicy: FallbackToLogsOnError | ||||||
|             volumeMounts: |             volumeMounts: | ||||||
|             - mountPath: /tmp/k8s-webhook-server/serving-certs |             - mountPath: /tmp/k8s-webhook-server/serving-certs | ||||||
|               name: cert |               name: cert | ||||||
| @@ -2755,10 +2754,13 @@ data: | |||||||
|       - major: 0 |       - major: 0 | ||||||
|         minor: 8 |         minor: 8 | ||||||
|         contract: v1beta1 |         contract: v1beta1 | ||||||
|  |       - major: 0 | ||||||
|  |         minor: 9 | ||||||
|  |         contract: v1beta1 | ||||||
| kind: ConfigMap | kind: ConfigMap | ||||||
| metadata: | metadata: | ||||||
|   creationTimestamp: null |   creationTimestamp: null | ||||||
|   name: v0.8.0 |   name: v0.9.0 | ||||||
|   namespace: rke2-bootstrap-system |   namespace: rke2-bootstrap-system | ||||||
|   labels: |   labels: | ||||||
|     provider-components: rke2-bootstrap |     provider-components: rke2-bootstrap | ||||||
|   | |||||||
| @@ -32,7 +32,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: rke2-control-plane-webhook-service |               name: rke2-control-plane-webhook-service | ||||||
|               namespace: rke2-control-plane-system |               namespace: rke2-control-plane-system | ||||||
| @@ -2620,7 +2619,6 @@ data: | |||||||
|         strategy: Webhook |         strategy: Webhook | ||||||
|         webhook: |         webhook: | ||||||
|           clientConfig: |           clientConfig: | ||||||
|             caBundle: Cg== |  | ||||||
|             service: |             service: | ||||||
|               name: rke2-control-plane-webhook-service |               name: rke2-control-plane-webhook-service | ||||||
|               namespace: rke2-control-plane-system |               namespace: rke2-control-plane-system | ||||||
| @@ -4295,7 +4293,7 @@ data: | |||||||
|               valueFrom: |               valueFrom: | ||||||
|                 fieldRef: |                 fieldRef: | ||||||
|                   fieldPath: metadata.uid |                   fieldPath: metadata.uid | ||||||
|             image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.8.0 |             image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.9.0 | ||||||
|             imagePullPolicy: IfNotPresent |             imagePullPolicy: IfNotPresent | ||||||
|             livenessProbe: |             livenessProbe: | ||||||
|               httpGet: |               httpGet: | ||||||
| @@ -4331,6 +4329,7 @@ data: | |||||||
|               privileged: false |               privileged: false | ||||||
|               runAsGroup: 65532 |               runAsGroup: 65532 | ||||||
|               runAsUser: 65532 |               runAsUser: 65532 | ||||||
|  |             terminationMessagePolicy: FallbackToLogsOnError | ||||||
|             volumeMounts: |             volumeMounts: | ||||||
|             - mountPath: /tmp/k8s-webhook-server/serving-certs |             - mountPath: /tmp/k8s-webhook-server/serving-certs | ||||||
|               name: cert |               name: cert | ||||||
| @@ -4512,10 +4511,13 @@ data: | |||||||
|       - major: 0 |       - major: 0 | ||||||
|         minor: 8 |         minor: 8 | ||||||
|         contract: v1beta1 |         contract: v1beta1 | ||||||
|  |       - major: 0 | ||||||
|  |         minor: 9 | ||||||
|  |         contract: v1beta1 | ||||||
| kind: ConfigMap | kind: ConfigMap | ||||||
| metadata: | metadata: | ||||||
|   creationTimestamp: null |   creationTimestamp: null | ||||||
|   name: v0.8.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 | ||||||
|   | |||||||
| @@ -3,4 +3,4 @@ dependencies: | |||||||
|   repository: https://kubernetes-sigs.github.io/cluster-api-operator |   repository: https://kubernetes-sigs.github.io/cluster-api-operator | ||||||
|   version: 0.14.0 |   version: 0.14.0 | ||||||
| digest: sha256:9e9e851dbab3212c279efec06bcf0da147228ea1590470f3a8cbbb5806a250d4 | digest: sha256:9e9e851dbab3212c279efec06bcf0da147228ea1590470f3a8cbbb5806a250d4 | ||||||
| generated: "2024-10-28T11:44:34.392387979Z" | generated: "2024-12-03T09:34:12.871417074Z" | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.13.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.13.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 | ||||||
| @@ -7,12 +7,12 @@ annotations: | |||||||
|   catalog.cattle.io/namespace: rancher-turtles-system |   catalog.cattle.io/namespace: rancher-turtles-system | ||||||
|   catalog.cattle.io/os: linux |   catalog.cattle.io/os: linux | ||||||
|   catalog.cattle.io/permits-os: linux |   catalog.cattle.io/permits-os: linux | ||||||
|   catalog.cattle.io/rancher-version: '>= 2.9.0-1' |   catalog.cattle.io/rancher-version: '>= 2.10.0-1' | ||||||
|   catalog.cattle.io/release-name: rancher-turtles |   catalog.cattle.io/release-name: rancher-turtles | ||||||
|   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.13.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.13.0" | version: "%%CHART_MAJOR%%.0.0+up0.14.1" | ||||||
|   | |||||||
| @@ -16,6 +16,9 @@ kind: ClusterctlConfig | |||||||
| metadata: | metadata: | ||||||
|   name: clusterctl-config |   name: clusterctl-config | ||||||
|   namespace: rancher-turtles-system |   namespace: rancher-turtles-system | ||||||
|  |   annotations: | ||||||
|  |     "helm.sh/hook": "post-install, post-upgrade" | ||||||
|  |     "helm.sh/hook-weight": "1" | ||||||
| spec: | spec: | ||||||
|   providers: |   providers: | ||||||
|   - name: metal3 |   - name: metal3 | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/inject-ca-from: rancher-turtles-system/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.14.0 |     controller-gen.kubebuilder.io/version: v0.14.0 | ||||||
|   labels: |   labels: | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
| @@ -45,77 +45,65 @@ spec: | |||||||
|             properties: |             properties: | ||||||
|               clusterName: |               clusterName: | ||||||
|                 type: string |                 type: string | ||||||
|               configRef: |  | ||||||
|                 type: string |  | ||||||
|               location: |               location: | ||||||
|                 type: string |                 type: string | ||||||
|               machineName: |               machineName: | ||||||
|                 type: string |                 type: string | ||||||
|             required: |             required: | ||||||
|             - clusterName |             - clusterName | ||||||
|             - configRef |  | ||||||
|             - location |  | ||||||
|             - machineName |  | ||||||
|             type: object |             type: object | ||||||
|             x-kubernetes-validations: |             x-kubernetes-validations: | ||||||
|             - message: ETCD snapshot location can't be empty. |             - message: ETCD snapshot location can't be empty. | ||||||
|               rule: size(self.location)>0 |               rule: size(self.clusterName)>0 | ||||||
|           status: |           status: | ||||||
|             default: {} |             default: {} | ||||||
|             description: EtcdSnapshotRestoreStatus defines observed state of EtcdSnapshotRestore |             description: EtcdSnapshotRestoreStatus defines observed state of EtcdSnapshotRestore | ||||||
|             properties: |             properties: | ||||||
|               conditions: |               error: | ||||||
|                 description: Conditions provide observations of the operational state |                 type: string | ||||||
|                   of a Cluster API resource. |  | ||||||
|                 items: |  | ||||||
|                   description: Condition defines an observation of a Cluster API resource |  | ||||||
|                     operational state. |  | ||||||
|                   properties: |  | ||||||
|                     lastTransitionTime: |  | ||||||
|                       description: |- |  | ||||||
|                         Last time the condition transitioned from one status to another. |  | ||||||
|                         This should be when the underlying condition changed. If that is not known, then using the time when |  | ||||||
|                         the API field changed is acceptable. |  | ||||||
|                       format: date-time |  | ||||||
|                       type: string |  | ||||||
|                     message: |  | ||||||
|                       description: |- |  | ||||||
|                         A human readable message indicating details about the transition. |  | ||||||
|                         This field may be empty. |  | ||||||
|                       type: string |  | ||||||
|                     reason: |  | ||||||
|                       description: |- |  | ||||||
|                         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. |  | ||||||
|                         This field may not be empty. |  | ||||||
|                       type: string |  | ||||||
|                     severity: |  | ||||||
|                       description: |- |  | ||||||
|                         Severity provides an explicit classification of Reason code, so the users or machines can immediately |  | ||||||
|                         understand the current situation and act accordingly. |  | ||||||
|                         The Severity field MUST be set only when Status=False. |  | ||||||
|                       type: string |  | ||||||
|                     status: |  | ||||||
|                       description: Status of the condition, one of True, False, Unknown. |  | ||||||
|                       type: string |  | ||||||
|                     type: |  | ||||||
|                       description: |- |  | ||||||
|                         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 |  | ||||||
|                         can be useful (see .node.status.conditions), the ability to deconflict is important. |  | ||||||
|                       type: string |  | ||||||
|                   required: |  | ||||||
|                   - lastTransitionTime |  | ||||||
|                   - status |  | ||||||
|                   - type |  | ||||||
|                   type: object |  | ||||||
|                 type: array |  | ||||||
|               manual: |  | ||||||
|                 type: boolean |  | ||||||
|               phase: |               phase: | ||||||
|                 description: ETCDSnapshotPhase is a string representation of the phase |                 description: ETCDSnapshotPhase is a string representation of the phase | ||||||
|                   of the etcd snapshot |                   of the etcd snapshot | ||||||
|                 type: string |                 type: string | ||||||
|  |               s3Snapshots: | ||||||
|  |                 items: | ||||||
|  |                   properties: | ||||||
|  |                     creationTime: | ||||||
|  |                       description: CreationTime is the timestamp when the snapshot | ||||||
|  |                         was taken by etcd. | ||||||
|  |                       format: date-time | ||||||
|  |                       type: string | ||||||
|  |                     location: | ||||||
|  |                       type: string | ||||||
|  |                     name: | ||||||
|  |                       type: string | ||||||
|  |                   required: | ||||||
|  |                   - location | ||||||
|  |                   - name | ||||||
|  |                   type: object | ||||||
|  |                 type: array | ||||||
|  |               snapshotFileName: | ||||||
|  |                 type: string | ||||||
|  |               snapshots: | ||||||
|  |                 items: | ||||||
|  |                   properties: | ||||||
|  |                     creationTime: | ||||||
|  |                       description: CreationTime is the timestamp when the snapshot | ||||||
|  |                         was taken by etcd. | ||||||
|  |                       format: date-time | ||||||
|  |                       type: string | ||||||
|  |                     location: | ||||||
|  |                       type: string | ||||||
|  |                     machineName: | ||||||
|  |                       type: string | ||||||
|  |                     name: | ||||||
|  |                       type: string | ||||||
|  |                   required: | ||||||
|  |                   - location | ||||||
|  |                   - machineName | ||||||
|  |                   - name | ||||||
|  |                   type: object | ||||||
|  |                 type: array | ||||||
|             type: object |             type: object | ||||||
|         type: object |         type: object | ||||||
|     served: true |     served: true | ||||||
| @@ -127,7 +115,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/inject-ca-from: rancher-turtles-system/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.14.0 |     controller-gen.kubebuilder.io/version: v0.14.0 | ||||||
|   labels: |   labels: | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
| @@ -246,7 +234,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/inject-ca-from: rancher-turtles-system/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.14.0 |     controller-gen.kubebuilder.io/version: v0.14.0 | ||||||
|   labels: |   labels: | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
| @@ -306,8 +294,6 @@ spec: | |||||||
|                     type: string |                     type: string | ||||||
|                   insecure: |                   insecure: | ||||||
|                     type: boolean |                     type: boolean | ||||||
|                   location: |  | ||||||
|                     type: string |  | ||||||
|                   region: |                   region: | ||||||
|                     type: string |                     type: string | ||||||
|                   s3CredentialSecret: |                   s3CredentialSecret: | ||||||
| @@ -337,7 +323,7 @@ metadata: | |||||||
|     app.kubernetes.io/part-of: rancher-turtles |     app.kubernetes.io/part-of: rancher-turtles | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-manager |   name: rancher-turtles-etcdsnapshotrestore-manager | ||||||
|   namespace: rancher-turtles-system |   namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
| --- | --- | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
| kind: Role | kind: Role | ||||||
| @@ -351,7 +337,7 @@ metadata: | |||||||
|     app.kubernetes.io/part-of: rancher-turtles |     app.kubernetes.io/part-of: rancher-turtles | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-leader-election-role |   name: rancher-turtles-etcdsnapshotrestore-leader-election-role | ||||||
|   namespace: rancher-turtles-system |   namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
| rules: | rules: | ||||||
| - apiGroups: | - apiGroups: | ||||||
|   - "" |   - "" | ||||||
| @@ -600,7 +586,7 @@ metadata: | |||||||
|     app.kubernetes.io/part-of: rancher-turtles |     app.kubernetes.io/part-of: rancher-turtles | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-leader-election-rolebinding |   name: rancher-turtles-etcdsnapshotrestore-leader-election-rolebinding | ||||||
|   namespace: rancher-turtles-system |   namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
| roleRef: | roleRef: | ||||||
|   apiGroup: rbac.authorization.k8s.io |   apiGroup: rbac.authorization.k8s.io | ||||||
|   kind: Role |   kind: Role | ||||||
| @@ -608,7 +594,7 @@ roleRef: | |||||||
| subjects: | subjects: | ||||||
| - kind: ServiceAccount | - kind: ServiceAccount | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-manager |   name: rancher-turtles-etcdsnapshotrestore-manager | ||||||
|   namespace: rancher-turtles-system |   namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
| --- | --- | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
| kind: ClusterRoleBinding | kind: ClusterRoleBinding | ||||||
| @@ -629,7 +615,7 @@ roleRef: | |||||||
| subjects: | subjects: | ||||||
| - kind: ServiceAccount | - kind: ServiceAccount | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-manager |   name: rancher-turtles-etcdsnapshotrestore-manager | ||||||
|   namespace: rancher-turtles-system |   namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
| --- | --- | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| kind: Service | kind: Service | ||||||
| @@ -637,7 +623,7 @@ metadata: | |||||||
|   labels: |   labels: | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-webhook-service |   name: rancher-turtles-etcdsnapshotrestore-webhook-service | ||||||
|   namespace: rancher-turtles-system |   namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
| spec: | spec: | ||||||
|   ports: |   ports: | ||||||
|   - port: 443 |   - port: 443 | ||||||
| @@ -652,7 +638,7 @@ metadata: | |||||||
|     control-plane: controller-manager |     control-plane: controller-manager | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-controller-manager |   name: rancher-turtles-etcdsnapshotrestore-controller-manager | ||||||
|   namespace: rancher-turtles-system |   namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
| spec: | spec: | ||||||
|   replicas: 1 |   replicas: 1 | ||||||
|   selector: |   selector: | ||||||
| @@ -671,7 +657,7 @@ spec: | |||||||
|       - args: |       - args: | ||||||
|         - --leader-elect |         - --leader-elect | ||||||
|         command: |         command: | ||||||
|         - /manager |         - ./etcd-snapshot-restore | ||||||
|         env: |         env: | ||||||
|         - name: POD_NAMESPACE |         - name: POD_NAMESPACE | ||||||
|           valueFrom: |           valueFrom: | ||||||
| @@ -685,8 +671,13 @@ spec: | |||||||
|           valueFrom: |           valueFrom: | ||||||
|             fieldRef: |             fieldRef: | ||||||
|               fieldPath: metadata.uid |               fieldPath: metadata.uid | ||||||
|         image: ghcr.io/rancher/turtles-etcd-snapshot-restore:dev |         {{- $imageVersion := index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "imageVersion" -}} | ||||||
|         imagePullPolicy: IfNotPresent |         {{- if contains "sha256:" $imageVersion }} | ||||||
|  |         image: {{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "image" }}@{{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "imageVersion" }} | ||||||
|  |         {{- else }} | ||||||
|  |         image: {{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "image" }}:{{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "imageVersion" }} | ||||||
|  |         {{- end }} | ||||||
|  |         imagePullPolicy: '{{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "imagePullPolicy" }}' | ||||||
|         livenessProbe: |         livenessProbe: | ||||||
|           httpGet: |           httpGet: | ||||||
|             path: /healthz |             path: /healthz | ||||||
| @@ -733,11 +724,11 @@ metadata: | |||||||
|   labels: |   labels: | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-serving-cert |   name: rancher-turtles-etcdsnapshotrestore-serving-cert | ||||||
|   namespace: rancher-turtles-system |   namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
| spec: | spec: | ||||||
|   dnsNames: |   dnsNames: | ||||||
|   - rancher-turtles-etcdsnapshotrestore-webhook-service.rancher-turtles-system.svc |   - rancher-turtles-etcdsnapshotrestore-webhook-service.{{ index .Values "rancherTurtles" "namespace" }}.svc | ||||||
|   - rancher-turtles-etcdsnapshotrestore-webhook-service.rancher-turtles-system.svc.cluster.local |   - rancher-turtles-etcdsnapshotrestore-webhook-service.{{ index .Values "rancherTurtles" "namespace" }}.svc.cluster.local | ||||||
|   issuerRef: |   issuerRef: | ||||||
|     kind: Issuer |     kind: Issuer | ||||||
|     name: rancher-turtles-etcdsnapshotrestore-selfsigned-issuer |     name: rancher-turtles-etcdsnapshotrestore-selfsigned-issuer | ||||||
| @@ -749,7 +740,7 @@ metadata: | |||||||
|   labels: |   labels: | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-selfsigned-issuer |   name: rancher-turtles-etcdsnapshotrestore-selfsigned-issuer | ||||||
|   namespace: rancher-turtles-system |   namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
| spec: | spec: | ||||||
|   selfSigned: {} |   selfSigned: {} | ||||||
| --- | --- | ||||||
| @@ -757,7 +748,7 @@ apiVersion: admissionregistration.k8s.io/v1 | |||||||
| kind: MutatingWebhookConfiguration | kind: MutatingWebhookConfiguration | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/inject-ca-from: rancher-turtles-system/rancher-turtles-etcdsnapshotrestore-serving-cert |     cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert | ||||||
|   labels: |   labels: | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-mutating-webhook-configuration |   name: rancher-turtles-etcdsnapshotrestore-mutating-webhook-configuration | ||||||
| @@ -767,7 +758,7 @@ webhooks: | |||||||
|   clientConfig: |   clientConfig: | ||||||
|     service: |     service: | ||||||
|       name: rancher-turtles-etcdsnapshotrestore-webhook-service |       name: rancher-turtles-etcdsnapshotrestore-webhook-service | ||||||
|       namespace: rancher-turtles-system |       namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
|       path: /mutate-bootstrap-cluster-x-k8s-io-v1beta1-rke2config |       path: /mutate-bootstrap-cluster-x-k8s-io-v1beta1-rke2config | ||||||
|   failurePolicy: Fail |   failurePolicy: Fail | ||||||
|   name: systemagentrke2config.kb.io |   name: systemagentrke2config.kb.io | ||||||
| @@ -787,7 +778,7 @@ apiVersion: admissionregistration.k8s.io/v1 | |||||||
| kind: ValidatingWebhookConfiguration | kind: ValidatingWebhookConfiguration | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/inject-ca-from: rancher-turtles-system/rancher-turtles-etcdsnapshotrestore-serving-cert |     cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert | ||||||
|   labels: |   labels: | ||||||
|     turtles-capi.cattle.io: etcd-restore |     turtles-capi.cattle.io: etcd-restore | ||||||
|   name: rancher-turtles-etcdsnapshotrestore-validating-webhook-configuration |   name: rancher-turtles-etcdsnapshotrestore-validating-webhook-configuration | ||||||
| @@ -797,7 +788,7 @@ webhooks: | |||||||
|   clientConfig: |   clientConfig: | ||||||
|     service: |     service: | ||||||
|       name: rancher-turtles-etcdsnapshotrestore-webhook-service |       name: rancher-turtles-etcdsnapshotrestore-webhook-service | ||||||
|       namespace: rancher-turtles-system |       namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
|       path: /validate-turtles-capi-cattle-io-v1alpha1-etcdmachinesnapshot |       path: /validate-turtles-capi-cattle-io-v1alpha1-etcdmachinesnapshot | ||||||
|   failurePolicy: Fail |   failurePolicy: Fail | ||||||
|   matchPolicy: Equivalent |   matchPolicy: Equivalent | ||||||
| @@ -818,7 +809,7 @@ webhooks: | |||||||
|   clientConfig: |   clientConfig: | ||||||
|     service: |     service: | ||||||
|       name: rancher-turtles-etcdsnapshotrestore-webhook-service |       name: rancher-turtles-etcdsnapshotrestore-webhook-service | ||||||
|       namespace: rancher-turtles-system |       namespace: {{ index .Values "rancherTurtles" "namespace" }} | ||||||
|       path: /validate-turtles-capi-cattle-io-v1alpha1-etcdsnapshotrestore |       path: /validate-turtles-capi-cattle-io-v1alpha1-etcdsnapshotrestore | ||||||
|   failurePolicy: Fail |   failurePolicy: Fail | ||||||
|   matchPolicy: Equivalent |   matchPolicy: Equivalent | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| rancherTurtles: | rancherTurtles: | ||||||
|   image: registry.rancher.com/rancher/rancher/turtles |   image: registry.rancher.com/rancher/rancher/turtles | ||||||
|   imageVersion: v0.13.0 |   imageVersion: v0.14.1 | ||||||
|   imagePullPolicy: IfNotPresent |   imagePullPolicy: IfNotPresent | ||||||
|   namespace: rancher-turtles-system |   namespace: rancher-turtles-system | ||||||
|   managerArguments: [] |   managerArguments: [] | ||||||
| @@ -25,6 +25,9 @@ rancherTurtles: | |||||||
|       enabled: false |       enabled: false | ||||||
|     etcd-snapshot-restore: |     etcd-snapshot-restore: | ||||||
|       enabled: false |       enabled: false | ||||||
|  |       image: registry.rancher.com/rancher/rancher/turtles | ||||||
|  |       imageVersion: v0.14.1 | ||||||
|  |       imagePullPolicy: IfNotPresent | ||||||
|     addon-provider-fleet: |     addon-provider-fleet: | ||||||
|       enabled: false |       enabled: false | ||||||
| cluster-api-operator: | cluster-api-operator: | ||||||
| @@ -52,40 +55,35 @@ cluster-api-operator: | |||||||
|         readOnly: true |         readOnly: true | ||||||
|   cluster-api: |   cluster-api: | ||||||
|     enabled: true |     enabled: true | ||||||
|     version: "v1.7.7" |  | ||||||
|     configSecret: |     configSecret: | ||||||
|       name: "" |       name: "" | ||||||
|       defaultName: capi-env-variables |       defaultName: capi-env-variables | ||||||
|     core: |     core: | ||||||
|       namespace: capi-system |       namespace: capi-system | ||||||
|       imageUrl: "registry.rancher.com/rancher/cluster-api-controller:v1.7.7" |  | ||||||
|       fetchConfig: |       fetchConfig: | ||||||
|         url: "" |         url: "" | ||||||
|         selector: "" |         selector: "" | ||||||
|     rke2: |     rke2: | ||||||
|       enabled: true |       enabled: true | ||||||
|       version: "v0.8.0" |  | ||||||
|       bootstrap: |       bootstrap: | ||||||
|         namespace: rke2-bootstrap-system |         namespace: rke2-bootstrap-system | ||||||
|         imageUrl: "registry.rancher.com/rancher/cluster-api-provider-rke2-bootstrap:v0.8.0" |  | ||||||
|         fetchConfig: |         fetchConfig: | ||||||
|           url: "" |           url: "" | ||||||
|           selector: "" |           selector: "" | ||||||
|       controlPlane: |       controlPlane: | ||||||
|         namespace: rke2-control-plane-system |         namespace: rke2-control-plane-system | ||||||
|         imageUrl: "registry.rancher.com/rancher/cluster-api-provider-rke2-controlplane:v0.8.0" |  | ||||||
|         fetchConfig: |         fetchConfig: | ||||||
|           url: "" |           url: "" | ||||||
|           selector: "" |           selector: "" | ||||||
|     metal3: |     metal3: | ||||||
|       enabled: true |       enabled: true | ||||||
|       version: "v1.7.2" |       version: "v1.8.2" | ||||||
|       infrastructure: |       infrastructure: | ||||||
|         namespace: capm3-system |         namespace: capm3-system | ||||||
|         imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%cluster-api-provider-metal3:1.7.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: "%%IMG_REPO%%/%%IMG_PREFIX%%ip-address-manager:1.7.2" |         imageUrl: "registry.rancher.com/rancher/cluster-api-metal3-ipam-controller:v1.8.1" | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%release-manifest:3.2.0 | #!BuildTag: %%IMG_PREFIX%%release-manifest:3.2.2 | ||||||
| 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.2.0" | LABEL org.opencontainers.image.version="3.2.2" | ||||||
| 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.2.0" | LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%release-manifest:3.2.2" | ||||||
| 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" | ||||||
|   | |||||||
| @@ -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 %img_repo)</param> |     <param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %manifest_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> | ||||||
|   | |||||||
| @@ -1,75 +1,143 @@ | |||||||
| apiVersion: lifecycle.suse.com/v1alpha1 | apiVersion: lifecycle.suse.com/v1alpha1 | ||||||
| kind: ReleaseManifest | kind: ReleaseManifest | ||||||
| metadata: | metadata: | ||||||
|   name: release-manifest-3-2-0 |   name: release-manifest-3-2-2 | ||||||
| spec: | spec: | ||||||
|   releaseVersion: 3.2.0 |   releaseVersion: 3.2.2 | ||||||
|   components: |   components: | ||||||
|     kubernetes: |     kubernetes: | ||||||
|       k3s: |       k3s: | ||||||
|         version: v1.31.2+k3s1 |         version: v1.31.13+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.31 | ||||||
|  |             type: Deployment | ||||||
|  |           - name: coredns | ||||||
|  |             containers: | ||||||
|  |               - name: coredns | ||||||
|  |                 image: rancher/mirrored-coredns-coredns:1.12.3 | ||||||
|  |             type: Deployment | ||||||
|  |           - name: metrics-server | ||||||
|  |             containers: | ||||||
|  |               - name: metrics-server | ||||||
|  |                 image: rancher/mirrored-metrics-server:v0.8.0 | ||||||
|  |             type: Deployment | ||||||
|       rke2: |       rke2: | ||||||
|         version: v1.31.2+rke2r1 |         version: v1.31.13+rke2r1 | ||||||
|  |         coreComponents: | ||||||
|  |           - name: rke2-cilium | ||||||
|  |             version: 1.18.103 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rke2-canal | ||||||
|  |             version: v3.30.3-build2025090900 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rke2-calico-crd | ||||||
|  |             version: v3.30.300 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rke2-calico | ||||||
|  |             version: v3.30.300 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rke2-coredns | ||||||
|  |             version: 1.43.302 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rke2-ingress-nginx | ||||||
|  |             version: 4.12.600 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rke2-metrics-server | ||||||
|  |             version: 3.13.001 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rancher-vsphere-csi | ||||||
|  |             version: 3.5.0-rancher100 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rancher-vsphere-cpi | ||||||
|  |             version: 1.12.100 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: harvester-cloud-provider | ||||||
|  |             version: 0.2.1000 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: harvester-csi-driver | ||||||
|  |             version: 0.1.2400 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rke2-snapshot-controller-crd | ||||||
|  |             version: 4.0.003 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rke2-snapshot-controller | ||||||
|  |             version: 4.0.003 | ||||||
|  |             type: HelmChart | ||||||
|  |           - name: rke2-snapshot-validation-webhook | ||||||
|  |             version: 0.0.0 | ||||||
|  |             type: HelmChart | ||||||
|     operatingSystem: |     operatingSystem: | ||||||
|       version: "6.0" |       version: '6.0' | ||||||
|       zypperID: "SL-Micro" |       zypperID: SL-Micro | ||||||
|       cpeScheme: "cpe:/o:suse:sl-micro:6.0" |       cpeScheme: cpe:/o:suse:sl-micro:6.0 | ||||||
|       prettyName: "SUSE Linux Micro 6.0" |       prettyName: SUSE Linux Micro 6.0 | ||||||
|       supportedArchs: |       supportedArchs: | ||||||
|         - "x86_64" |         - x86_64 | ||||||
|         - "aarch64" |         - aarch64 | ||||||
|     workloads: |     workloads: | ||||||
|       helm: |       helm: | ||||||
|         - prettyName: Rancher |         - prettyName: Rancher | ||||||
|           releaseName: rancher |           releaseName: rancher | ||||||
|           chart: rancher |           chart: rancher | ||||||
|           version: v2.10.0 |           version: 2.10.10 | ||||||
|           repository: https://releases.rancher.com/server-charts/stable |           repository: https://charts.rancher.com/server-charts/prime | ||||||
|  |           values: | ||||||
|  |             postDelete: | ||||||
|  |               enabled: false | ||||||
|         - prettyName: Longhorn |         - prettyName: Longhorn | ||||||
|           releaseName: longhorn |           releaseName: longhorn | ||||||
|           chart: longhorn |           chart: longhorn | ||||||
|           version: 104.2.1+up1.7.2 |           version: 105.1.1+up1.7.3 | ||||||
|           repository: https://charts.rancher.io |           repository: https://charts.rancher.io | ||||||
|           dependencyCharts: |           dependencyCharts: | ||||||
|             - releaseName: longhorn-crd |             - releaseName: longhorn-crd | ||||||
|               chart: longhorn-crd |               chart: longhorn-crd | ||||||
|               version: 104.2.1+up1.7.2 |               version: 105.1.1+up1.7.3 | ||||||
|               repository: https://charts.rancher.io |               repository: https://charts.rancher.io | ||||||
|         - prettyName: MetalLB |         - prettyName: MetalLB | ||||||
|           releaseName: metallb |           releaseName: metallb | ||||||
|           chart: %%CHART_REPO%%/%%IMG_PREFIX%%metallb-chart |           chart: '%%CHART_REPO%%/%%IMG_PREFIX%%metallb-chart' | ||||||
|           version: %%CHART_MAJOR%%.0.0+up0.14.9 |           version: '%%CHART_MAJOR%%.0.1+up0.14.9' | ||||||
|         - prettyName: CDI |         - prettyName: CDI | ||||||
|           releaseName: cdi |           releaseName: cdi | ||||||
|           chart: %%CHART_REPO%%/%%IMG_PREFIX%%cdi-chart |           chart: '%%CHART_REPO%%/%%IMG_PREFIX%%cdi-chart' | ||||||
|           version: %%CHART_MAJOR%%.0.0+up0.4.0 |           version: '%%CHART_MAJOR%%.0.0+up0.4.0' | ||||||
|         - prettyName: KubeVirt |         - prettyName: KubeVirt | ||||||
|           releaseName: kubevirt |           releaseName: kubevirt | ||||||
|           chart: %%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-chart |           chart: '%%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-chart' | ||||||
|           version: %%CHART_MAJOR%%.0.0+up0.4.0 |           version: '%%CHART_MAJOR%%.0.0+up0.4.0' | ||||||
|           addonCharts: |           addonCharts: | ||||||
|             - releaseName: kubevirt-dashboard-extension |             - releaseName: kubevirt-dashboard-extension | ||||||
|               chart: %%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-dashboard-extension-chart |               chart: '%%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-dashboard-extension-chart' | ||||||
|               version: %%CHART_MAJOR%%.0.0+up1.2.0 |               version: '%%CHART_MAJOR%%.0.0+up1.2.1' | ||||||
|         - prettyName: NeuVector |         - prettyName: NeuVector | ||||||
|           releaseName: neuvector |           releaseName: neuvector | ||||||
|           chart: neuvector |           chart: neuvector | ||||||
|           version: 104.0.2+up2.8.0 |           version: 105.0.5+up2.8.8 | ||||||
|           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: 104.0.2+up2.8.0 |               version: 105.0.5+up2.8.8 | ||||||
|               repository: https://charts.rancher.io |               repository: https://charts.rancher.io | ||||||
|           addonCharts: |           addonCharts: | ||||||
|             - releaseName: neuvector-ui-ext |             - releaseName: neuvector-ui-ext | ||||||
|               chart: neuvector-ui-ext |               chart: neuvector-ui-ext | ||||||
|               repository: https://github.com/rancher/ui-plugin-charts/raw/main |               repository: https://github.com/rancher/ui-plugin-charts/raw/main | ||||||
|               version: 2.0.0 |               version: 2.1.3 | ||||||
|         - prettyName: EndpointCopierOperator |         - prettyName: EndpointCopierOperator | ||||||
|           releaseName: endpoint-copier-operator |           releaseName: endpoint-copier-operator | ||||||
|           chart: %%CHART_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator-chart |           chart: '%%CHART_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator-chart' | ||||||
|           version: %%CHART_MAJOR%%.0.0+up0.2.1 |           version: '%%CHART_MAJOR%%.0.0+up0.2.1' | ||||||
|         - prettyName: Elemental |         - prettyName: Elemental | ||||||
|           releaseName: elemental-operator |           releaseName: elemental-operator | ||||||
|           chart: oci://registry.suse.com/rancher/elemental-operator-chart |           chart: oci://registry.suse.com/rancher/elemental-operator-chart | ||||||
| @@ -78,27 +146,32 @@ 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' | ||||||
|           version: %%CHART_MAJOR%%.0.0+up1.4.0 |           version: '%%CHART_MAJOR%%.0.0+up1.4.0' | ||||||
|           dependencyCharts: |           dependencyCharts: | ||||||
|             - releaseName: sriov-crd |             - releaseName: sriov-crd | ||||||
|               chart: %%CHART_REPO%%/%%IMG_PREFIX%%sriov-crd-chart |               chart: '%%CHART_REPO%%/%%IMG_PREFIX%%sriov-crd-chart' | ||||||
|               version: %%CHART_MAJOR%%.0.0+up1.4.0 |               version: '%%CHART_MAJOR%%.0.0+up1.4.0' | ||||||
|         - prettyName: Akri |         - prettyName: Akri | ||||||
|           releaseName: akri |           releaseName: akri | ||||||
|           chart: %%CHART_REPO%%/%%IMG_PREFIX%%akri-chart |           chart: '%%CHART_REPO%%/%%IMG_PREFIX%%akri-chart' | ||||||
|           version: %%CHART_MAJOR%%.0.0+up0.12.20 |           version: '%%CHART_MAJOR%%.0.0+up0.12.20' | ||||||
|           addonCharts: |           addonCharts: | ||||||
|             - releaseName: akri-dashboard-extension |             - releaseName: akri-dashboard-extension | ||||||
|               chart: %%CHART_REPO%%/%%IMG_PREFIX%%akri-dashboard-extension-chart |               chart: '%%CHART_REPO%%/%%IMG_PREFIX%%akri-dashboard-extension-chart' | ||||||
|               version: %%CHART_MAJOR%%.0.0+up1.1.0 |               version: '%%CHART_MAJOR%%.0.0+up1.2.1' | ||||||
|         - prettyName: Metal3 |         - prettyName: Metal3 | ||||||
|           releaseName: metal3 |           releaseName: metal3 | ||||||
|           chart: %%CHART_REPO%%/%%IMG_PREFIX%%metal3-chart |           chart: '%%CHART_REPO%%/%%IMG_PREFIX%%metal3-chart' | ||||||
|           version: %%CHART_MAJOR%%.0.0+up0.9.0 |           version: '%%CHART_MAJOR%%.0.1+up0.9.4' | ||||||
|         - prettyName: RancherTurtles |         - prettyName: RancherTurtles | ||||||
|           releaseName: rancher-turtles |           releaseName: rancher-turtles | ||||||
|           chart: %%CHART_REPO%%/%%IMG_PREFIX%%rancher-turtles-chart |           chart: '%%CHART_REPO%%/%%IMG_PREFIX%%rancher-turtles-chart' | ||||||
|           version: %%CHART_MAJOR%%.0.0+up0.4.0 |           version: '%%CHART_MAJOR%%.0.0+up0.14.1' | ||||||
|   | |||||||
| @@ -1,13 +1,13 @@ | |||||||
| #!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 | ||||||
| #!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.0-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.1-%RELEASE% | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 0.1.0 | appVersion: 0.1.1 | ||||||
| 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.0 |   version: 0.1.1 | ||||||
| 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.0" | version: "%%CHART_MAJOR%%.0.0+up0.1.1" | ||||||
|   | |||||||
| @@ -6,6 +6,8 @@ | |||||||
|     <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> | ||||||
| @@ -15,4 +17,3 @@ | |||||||
|     <param name="var">CHART_MAJOR</param> |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
| </services> | </services> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 0.1.0 | appVersion: 0.1.1 | ||||||
| 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.0 | version: 0.1.1 | ||||||
|   | |||||||
| @@ -43,6 +43,35 @@ 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: | ||||||
| @@ -50,6 +79,35 @@ 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: | ||||||
|   | |||||||
| @@ -29,6 +29,14 @@ rules: | |||||||
|   - customresourcedefinitions |   - customresourcedefinitions | ||||||
|   verbs: |   verbs: | ||||||
|   - get |   - get | ||||||
|  | - apiGroups: | ||||||
|  |   - apps | ||||||
|  |   resources: | ||||||
|  |   - deployments | ||||||
|  |   verbs: | ||||||
|  |   - get | ||||||
|  |   - list | ||||||
|  |   - watch | ||||||
| - apiGroups: | - apiGroups: | ||||||
|   - batch |   - batch | ||||||
|   resources: |   resources: | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ image: | |||||||
|  |  | ||||||
| env: | env: | ||||||
|   releaseManifest: |   releaseManifest: | ||||||
|     image: %%IMG_REPO%%/%%IMG_PREFIX%%release-manifest |     image: %%MANIFEST_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 | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user