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 | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| name: Trigger Devel Packages |  | ||||||
| on: |  | ||||||
|   # NOTE (fdegir): Cron is set to run midday every weekday |  | ||||||
|   schedule: |  | ||||||
|     - cron: "0 12 * * 1-5 |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   sync-pr-project: |  | ||||||
|     name: "Trigger source services for devel packages that changed" |  | ||||||
|     runs-on: tumbleweed |  | ||||||
|     steps: |  | ||||||
|       - name: Setup OSC |  | ||||||
|         run: | |  | ||||||
|           mkdir -p ~/.config/osc |  | ||||||
|           cat >~/.config/osc/oscrc <<'EOF' |  | ||||||
|           [general] |  | ||||||
|           apiurl = https://api.opensuse.org |  | ||||||
|  |  | ||||||
|           [https://api.opensuse.org] |  | ||||||
|           user=${{ vars.OBS_USERNAME }} |  | ||||||
|           pass=${{ secrets.OBS_PASSWORD }} |  | ||||||
|           EOF |  | ||||||
|     # Waiting on PR to get merged for support in upstream action/checkout action |  | ||||||
|       - uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256' |  | ||||||
|         name: Checkout repository |  | ||||||
|         with: |  | ||||||
|           object-format: 'sha256' |  | ||||||
|           ref: 'devel' |  | ||||||
|       - name: "Trigger packages" |  | ||||||
|         run: | |  | ||||||
|           python3 .obs/trigger_package.py |  | ||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,3 @@ | |||||||
| */.osc | */.osc | ||||||
| */__pycache__ | */__pycache__ | ||||||
| .venv/ | .venv/ | ||||||
| .idea/ |  | ||||||
| @@ -1,3 +1,3 @@ | |||||||
| PROJECT = "isv:SUSE:Edge:Factory:Devel" | PROJECT = "isv:SUSE:Edge:3.2" | ||||||
| REPOSITORY = "https://src.opensuse.org/suse-edge/Factory" | REPOSITORY = "https://src.opensuse.org/suse-edge/Factory" | ||||||
| BRANCH = "devel" | BRANCH = "3.2" | ||||||
|   | |||||||
							
								
								
									
										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() | ||||||
| @@ -8,7 +8,6 @@ def render(base_project, subproject, internal, scm_url=None): | |||||||
|     context = { |     context = { | ||||||
|         "base_project": subproject == "", |         "base_project": subproject == "", | ||||||
|         "title": f"SUSE Edge {version} {subproject}".rstrip(), |         "title": f"SUSE Edge {version} {subproject}".rstrip(), | ||||||
|         "ironic_base": "ISV:SUSE:Edge:Ironic" if internal else "Cloud:OpenStack", |  | ||||||
|     } |     } | ||||||
|     if subproject == "ToTest": |     if subproject == "ToTest": | ||||||
|         context["project"] = f"{base_project}:ToTest" |         context["project"] = f"{base_project}:ToTest" | ||||||
|   | |||||||
| @@ -1,65 +0,0 @@ | |||||||
| import xml.etree.ElementTree as ET |  | ||||||
| import subprocess |  | ||||||
|  |  | ||||||
| from sync_packages import get_local_packages |  | ||||||
| from common import PROJECT |  | ||||||
|  |  | ||||||
| def get_service_repo(package): |  | ||||||
|     with open(f"{package}/_service") as service: |  | ||||||
|         root = ET.parse(service).getroot() |  | ||||||
|         for service in root.findall("service"): |  | ||||||
|             if service.get("mode") in ["manual", "disabled"]: |  | ||||||
|                 continue |  | ||||||
|             if service.get("name") not in ["obs_scm", "tar_scm"]: |  | ||||||
|                 continue |  | ||||||
|             ref = service.find("param[@name='revision']").text |  | ||||||
|             repo = service.find("param[@name='url']").text |  | ||||||
|             return (repo, ref) |  | ||||||
|     return None |  | ||||||
|      |  | ||||||
|  |  | ||||||
| def get_remote_ref(project, package): |  | ||||||
|     files = subprocess.run(["osc", "ls", "-e", project, package], encoding='utf-8' , capture_output=True).stdout.splitlines() |  | ||||||
|     for filename in files: |  | ||||||
|         if filename.startswith("_service") and filename.endswith(".obsinfo"): |  | ||||||
|             obsinfo = subprocess.run(["osc", "cat", project, package, filename], encoding='utf-8' , capture_output=True).stdout.splitlines() |  | ||||||
|             for line in obsinfo: |  | ||||||
|                 if line.startswith("commit:"): |  | ||||||
|                     return line.split(':')[-1].strip() |  | ||||||
|  |  | ||||||
| def get_upstream_ref(repo, ref): |  | ||||||
|     refs = subprocess.run(["git", "ls-remote", repo, ref, f"{ref}^{{}}"], encoding='utf-8' , capture_output=True).stdout.splitlines() |  | ||||||
|     refpath = ref.split('/') |  | ||||||
|     best = None |  | ||||||
|     for rref in refs: |  | ||||||
|         value = rref.split('\t') |  | ||||||
|         (sha, name) = (value[0].strip(), value[1].strip()) |  | ||||||
|         namepath = name.split('/') |  | ||||||
|         if len(namepath) == len(refpath) or len(namepath) - 2 == len(refpath): |  | ||||||
|             if name.endswith(ref) and best is None: |  | ||||||
|                 best = sha |  | ||||||
|             if name.endswith("^{}"): |  | ||||||
|                 best = sha |  | ||||||
|     return best |  | ||||||
|  |  | ||||||
| def trigger_service(project, package): |  | ||||||
|     subprocess.run(["osc", "service", "remoterun", project, package], encoding="utf-8",check=True) |  | ||||||
|  |  | ||||||
| def main(): |  | ||||||
|     packages = get_local_packages() |  | ||||||
|     for package in packages: |  | ||||||
|         try: |  | ||||||
|             (repo, ref) = get_service_repo(package) |  | ||||||
|             print(f"{package} uses {repo} at {ref}") |  | ||||||
|         except: # Package is not using server side scm service |  | ||||||
|             continue |  | ||||||
|         remote_ref = get_remote_ref(PROJECT, package) |  | ||||||
|         upstream_ref = get_upstream_ref(repo, ref) |  | ||||||
|         if upstream_ref != remote_ref: |  | ||||||
|             print(f"\t{package} needs a refresh") |  | ||||||
|             print(f"\tOBS ref is {remote_ref}") |  | ||||||
|             print(f"\tgit ref is {upstream_ref}") |  | ||||||
|             trigger_service(PROJECT, package) |  | ||||||
|              |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     main() |  | ||||||
							
								
								
									
										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 | ||||||
							
								
								
									
										22
									
								
								_config
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								_config
									
									
									
									
									
								
							| @@ -23,7 +23,6 @@ Macros: | |||||||
| Macros: | Macros: | ||||||
| %img_repo registry.suse.com/edge | %img_repo registry.suse.com/edge | ||||||
| %chart_repo oci://registry.suse.com/edge | %chart_repo oci://registry.suse.com/edge | ||||||
| %chart_prefix charts/ |  | ||||||
| %manifest_repo registry.suse.com/edge | %manifest_repo registry.suse.com/edge | ||||||
| %support_level l3 | %support_level l3 | ||||||
| :Macros | :Macros | ||||||
| @@ -41,7 +40,6 @@ Macros: | |||||||
| %img_repo %(echo %{registry_url}:%{_project}:images | tr ":" "/" | tr '[:upper:]' '[:lower:]') | %img_repo %(echo %{registry_url}:%{_project}:images | tr ":" "/" | tr '[:upper:]' '[:lower:]') | ||||||
| %manifest_repo %(echo %{registry_url}:%{_project}:test_manifest_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:]') | %chart_repo oci://%(echo %{registry_url}:%{_project}:charts | tr ":" "/" | tr '[:upper:]' '[:lower:]') | ||||||
| %chart_prefix %(echo "") |  | ||||||
| :Macros | :Macros | ||||||
| %endif | %endif | ||||||
|  |  | ||||||
| @@ -60,7 +58,6 @@ BuildFlags: onlybuild:release-manifest-image | |||||||
|     BuildFlags: excludebuild:endpoint-copier-operator-image |     BuildFlags: excludebuild:endpoint-copier-operator-image | ||||||
|     BuildFlags: excludebuild:ironic-image |     BuildFlags: excludebuild:ironic-image | ||||||
|     BuildFlags: excludebuild:ironic-ipa-downloader-image |     BuildFlags: excludebuild:ironic-ipa-downloader-image | ||||||
|     BuildFlags: excludebuild:kubectl-image |  | ||||||
|     BuildFlags: excludebuild:kube-rbac-proxy-image |     BuildFlags: excludebuild:kube-rbac-proxy-image | ||||||
|     BuildFlags: excludebuild:metallb-controller-image |     BuildFlags: excludebuild:metallb-controller-image | ||||||
|     BuildFlags: excludebuild:metallb-speaker-image |     BuildFlags: excludebuild:metallb-speaker-image | ||||||
| @@ -72,9 +69,8 @@ BuildFlags: onlybuild:release-manifest-image | |||||||
|     BuildFlags: onlybuild:baremetal-operator |     BuildFlags: onlybuild:baremetal-operator | ||||||
|     BuildFlags: onlybuild:baremetal-operator-image |     BuildFlags: onlybuild:baremetal-operator-image | ||||||
|     BuildFlags: onlybuild:ca-certificates-suse |     BuildFlags: onlybuild:ca-certificates-suse | ||||||
|     BuildFlags: onlybuild:container-build-checks |     BuildFlags: onlybuild:cosign | ||||||
|     BuildFlags: onlybuild:crudini |     BuildFlags: onlybuild:crudini | ||||||
|     BuildFlags: onlybuild:edge-build-checks |  | ||||||
|     BuildFlags: onlybuild:edge-image-builder |     BuildFlags: onlybuild:edge-image-builder | ||||||
|     BuildFlags: onlybuild:edge-image-builder-image |     BuildFlags: onlybuild:edge-image-builder-image | ||||||
|     BuildFlags: onlybuild:endpoint-copier-operator |     BuildFlags: onlybuild:endpoint-copier-operator | ||||||
| @@ -85,15 +81,12 @@ BuildFlags: onlybuild:release-manifest-image | |||||||
|     BuildFlags: onlybuild:ironic-image |     BuildFlags: onlybuild:ironic-image | ||||||
|     BuildFlags: onlybuild:ironic-ipa-downloader-image |     BuildFlags: onlybuild:ironic-ipa-downloader-image | ||||||
|     BuildFlags: onlybuild:ironic-ipa-ramdisk |     BuildFlags: onlybuild:ironic-ipa-ramdisk | ||||||
|     BuildFlags: onlybuild:kubectl |  | ||||||
|     BuildFlags: onlybuild:kubectl-image |  | ||||||
|     BuildFlags: onlybuild:kube-rbac-proxy |     BuildFlags: onlybuild:kube-rbac-proxy | ||||||
|     BuildFlags: onlybuild:kube-rbac-proxy-image |     BuildFlags: onlybuild:kube-rbac-proxy-image | ||||||
|     BuildFlags: onlybuild:metallb |     BuildFlags: onlybuild:metallb | ||||||
|     BuildFlags: onlybuild:metallb-controller-image |     BuildFlags: onlybuild:metallb-controller-image | ||||||
|     BuildFlags: onlybuild:metallb-speaker-image |     BuildFlags: onlybuild:metallb-speaker-image | ||||||
|     BuildFlags: onlybuild:nm-configurator |     BuildFlags: onlybuild:nm-configurator | ||||||
|     BuildFlags: onlybuild:shim-noarch |  | ||||||
|   %endif |   %endif | ||||||
| %endif | %endif | ||||||
|  |  | ||||||
| @@ -108,13 +101,9 @@ BuildFlags: onlybuild:release-manifest-image | |||||||
|  |  | ||||||
|     # Publish multi-arch container images only once all archs have been built |     # Publish multi-arch container images only once all archs have been built | ||||||
|     PublishFlags: archsync |     PublishFlags: archsync | ||||||
|  |  | ||||||
|     # skopeo and umoci are used by build scripts to list packages |  | ||||||
|     Substitute: system-packages:podman podman buildah createrepo_c release-compare edge-build-checks skopeo umoci |  | ||||||
|  |  | ||||||
| %endif | %endif | ||||||
|  |  | ||||||
| %if "%_repository" == "images_16.0" | %if "%_repository" == "images_6.0" | ||||||
|     Prefer: container:sles15-image |     Prefer: container:sles15-image | ||||||
|     Type: docker |     Type: docker | ||||||
|     BuildEngine: podman |     BuildEngine: podman | ||||||
| @@ -133,7 +122,6 @@ BuildFlags: onlybuild:release-manifest-image | |||||||
|       BuildFlags: excludebuild:endpoint-copier-operator-image |       BuildFlags: excludebuild:endpoint-copier-operator-image | ||||||
|       BuildFlags: excludebuild:ironic-image |       BuildFlags: excludebuild:ironic-image | ||||||
|       BuildFlags: excludebuild:ironic-ipa-downloader-image |       BuildFlags: excludebuild:ironic-ipa-downloader-image | ||||||
|       BuildFlags: excludebuild:kubectl-image |  | ||||||
|       BuildFlags: excludebuild:kube-rbac-proxy-image |       BuildFlags: excludebuild:kube-rbac-proxy-image | ||||||
|       BuildFlags: excludebuild:metallb-controller-image |       BuildFlags: excludebuild:metallb-controller-image | ||||||
|       BuildFlags: excludebuild:metallb-speaker-image |       BuildFlags: excludebuild:metallb-speaker-image | ||||||
| @@ -150,17 +138,11 @@ BuildFlags: onlybuild:release-manifest-image | |||||||
|     Repotype: helm |     Repotype: helm | ||||||
|     Patterntype: none |     Patterntype: none | ||||||
|     Required: perl-YAML-LibYAML |     Required: perl-YAML-LibYAML | ||||||
|  |  | ||||||
|     # include edge-build-checks here |  | ||||||
|     Support: edge-build-checks |  | ||||||
| %endif | %endif | ||||||
|  |  | ||||||
| %if "%_repository" == "standard" | %if "%_repository" == "standard" | ||||||
|     # for build openstack-ironic-image |     # for build openstack-ironic-image | ||||||
|     BuildFlags: allowrootforbuild |     BuildFlags: allowrootforbuild | ||||||
|  |  | ||||||
|     # ironic-ipa-ramdisk are noarch packages that need to be availble to both archs |  | ||||||
|     ExportFilter: ^ironic-ipa-ramdisk-.*\.noarch\.rpm$ aarch64 x86_64 |  | ||||||
| %endif | %endif | ||||||
|  |  | ||||||
| # Enable reproducible builds | # Enable reproducible builds | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								_meta
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								_meta
									
									
									
									
									
								
							| @@ -31,16 +31,15 @@ | |||||||
|     <arch>x86_64</arch> |     <arch>x86_64</arch> | ||||||
|   </repository> |   </repository> | ||||||
| {%- endif %} | {%- endif %} | ||||||
| {%- for repository in ["images", "images_16.0", "test_manifest_images"] %} | {%- for repository in ["images", "images_6.0", "test_manifest_images"] %} | ||||||
|   <repository name="{{ repository }}"> |   <repository name="{{ repository }}"> | ||||||
|     {%- if release_project is defined and repository != "test_manifest_images" %} |     {%- if release_project is defined and repository != "test_manifest_images" %} | ||||||
|     <releasetarget project="{{ release_project }}" repository="images" trigger="manual"/> |     <releasetarget project="{{ release_project }}" repository="images" trigger="manual"/> | ||||||
|     {%- endif %} |     {%- endif %} | ||||||
|     <path project="SUSE:Registry" repository="standard"/> |     <path project="SUSE:Registry" repository="standard"/> | ||||||
|     {%- if repository == "images_16.0" %} |     {%- if repository == "images_6.0" %} | ||||||
|       <path project="SUSE:CA" repository="16.0"/> |       <path project="SUSE:CA" repository="16.0"/> | ||||||
|       <path project="SUSE:SLFO:Products:SLES:16.0" repository="standard"/> |       <path project="SUSE:ALP:Products:Marble:6.0" repository="standard"/> | ||||||
|       <path project="SUSE:SLFO:Main:Build" repository="standard"/> |  | ||||||
|     {%- else %} |     {%- else %} | ||||||
|       <path project="SUSE:CA" repository="SLE_15_SP6"/> |       <path project="SUSE:CA" repository="SLE_15_SP6"/> | ||||||
|       <path project="{{ project }}" repository="standard"/> |       <path project="{{ project }}" repository="standard"/> | ||||||
| @@ -53,7 +52,7 @@ | |||||||
|     {%- if release_project is defined and not for_release %} |     {%- if release_project is defined and not for_release %} | ||||||
|     <releasetarget project="{{ release_project }}" repository="standard" trigger="manual"/> |     <releasetarget project="{{ release_project }}" repository="standard" trigger="manual"/> | ||||||
|     {%- endif %} |     {%- endif %} | ||||||
|     <path project="{{ ironic_base }}:2024.2" repository="15.6"/> |     <path project="Cloud:OpenStack:2024.2" repository="15.6"/> | ||||||
|     <path project="SUSE:SLE-15-SP6:Update" repository="standard"/> |     <path project="SUSE:SLE-15-SP6:Update" repository="standard"/> | ||||||
|     <arch>x86_64</arch> |     <arch>x86_64</arch> | ||||||
|     <arch>aarch64</arch> |     <arch>aarch64</arch> | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| #!BuildTag: %%CHART_PREFIX%%akri:%%CHART_MAJOR%%.0.0_up0.12.20 | #!BuildTag: %%IMG_PREFIX%%akri-chart:%%CHART_MAJOR%%.0.0_up0.12.20 | ||||||
| #!BuildTag: %%CHART_PREFIX%%akri:%%CHART_MAJOR%%.0.0_up0.12.20-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%akri-chart:%%CHART_MAJOR%%.0.0_up0.12.20-%RELEASE% | ||||||
| annotations: | annotations: | ||||||
|   catalog.cattle.io/display-name: Akri |   catalog.cattle.io/display-name: Akri | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
|   | |||||||
| @@ -9,8 +9,8 @@ | |||||||
|   </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> | ||||||
|     <param name="eval">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?chart_prefix})</param> |     <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> | ||||||
|     <param name="var">CHART_PREFIX</param> |     <param name="var">IMG_PREFIX</param> | ||||||
|     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> |     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> | ||||||
|     <param name="var">CHART_MAJOR</param> |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -853,7 +853,7 @@ webhookConfiguration: | |||||||
|     pullPolicy: Always |     pullPolicy: Always | ||||||
|   certImage: |   certImage: | ||||||
|     # reference is the webhook-certgen image reference |     # reference is the webhook-certgen image reference | ||||||
|     reference: registry.rancher.com/rancher/mirrored-ingress-nginx-kube-webhook-certgen |     reference: registry.k8s.io/ingress-nginx/kube-webhook-certgen | ||||||
|     # tag is the webhook-certgen image tag |     # tag is the webhook-certgen image tag | ||||||
|     tag: v1.1.1 |     tag: v1.1.1 | ||||||
|     # pullPolicy is the webhook-certgen pull policy |     # pullPolicy is the webhook-certgen pull policy | ||||||
|   | |||||||
| @@ -1,22 +1,21 @@ | |||||||
| #!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.1 | #!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0 | ||||||
| #!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.0 | #!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1 | ||||||
| #!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.0-%RELEASE% | #!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/kube-version: ">= v1.26.0-0" | ||||||
|   catalog.cattle.io/namespace: cattle-ui-plugin-system |   catalog.cattle.io/namespace: cattle-ui-plugin-system | ||||||
|   catalog.cattle.io/os: linux |   catalog.cattle.io/os: linux | ||||||
|   catalog.cattle.io/permits-os: linux, windows |   catalog.cattle.io/permits-os: linux, windows | ||||||
|  |   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/display-name: Akri |   catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0" | ||||||
|   catalog.cattle.io/rancher-version: '>= 2.11.0-0' |  | ||||||
|   catalog.cattle.io/ui-extensions-version: '>= 3.0.4 < 4.0.0' |  | ||||||
|   catalog.cattle.io/kube-version: '>= v1.26.0-0' |  | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 303.0.1+up1.3.0 | appVersion: 302.0.0+up1.2.1 | ||||||
| description: 'SUSE Edge: Akri extension for Rancher Dashboard' | description: 'SUSE Edge: Akri extension for Rancher Dashboard' | ||||||
| name: akri-dashboard-extension | name: akri-dashboard-extension | ||||||
| type: application | type: application | ||||||
| version: "%%CHART_MAJOR%%.0.1+up1.3.0" | version: "%%CHART_MAJOR%%.0.0+up1.2.1" | ||||||
| icon: >- | icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg | ||||||
|   https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg |  | ||||||
|   | |||||||
| @@ -9,8 +9,8 @@ | |||||||
|   </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> | ||||||
|     <param name="eval">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?chart_prefix})</param> |     <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> | ||||||
|     <param name="var">CHART_PREFIX</param> |     <param name="var">IMG_PREFIX</param> | ||||||
|     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> |     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> | ||||||
|     <param name="var">CHART_MAJOR</param> |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -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/303.0.1+up1.3.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 }} | ||||||
| @@ -7,6 +7,6 @@ plugin: | |||||||
|   noAuth: false |   noAuth: false | ||||||
|   metadata: |   metadata: | ||||||
|     catalog.cattle.io/display-name: Akri |     catalog.cattle.io/display-name: Akri | ||||||
|     catalog.cattle.io/rancher-version: ">= 2.11.0-0" |     catalog.cattle.io/rancher-version: ">= 2.10.0-0" | ||||||
|     catalog.cattle.io/ui-extensions-version: ">= 3.0.4 < 4.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" | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  <service name="obs_scm"> |  <service name="obs_scm"> | ||||||
|     <param name="url">https://github.com/metal3-io/baremetal-operator</param> |     <param name="url">https://github.com/metal3-io/baremetal-operator</param> | ||||||
|     <param name="scm">git</param> |     <param name="scm">git</param> | ||||||
|     <param name="revision">v0.9.1</param> |     <param name="revision">v0.8.0</param> | ||||||
|     <param name="version">_auto_</param> |     <param name="version">_auto_</param> | ||||||
|     <param name="versionformat">@PARENT_TAG@</param> |     <param name="versionformat">@PARENT_TAG@</param> | ||||||
|     <param name="changesgenerate">enable</param> |     <param name="changesgenerate">enable</param> | ||||||
|   | |||||||
| @@ -17,14 +17,14 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| Name:           baremetal-operator | Name:           baremetal-operator | ||||||
| Version:        0.9.1 | Version:        0.8.0 | ||||||
| Release:        0 | Release:        0.8.0 | ||||||
| Summary:        Implements a Kubernetes API for managing bare metal hosts | Summary:        Implements a Kubernetes API for managing bare metal hosts | ||||||
| License:        Apache-2.0 | License:        Apache-2.0 | ||||||
| URL:            https://github.com/metal3-io/baremetal-operator | URL:            https://github.com/metal3-io/baremetal-operator | ||||||
| Source:         baremetal-operator-%{version}.tar | Source:         baremetal-operator-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang(API) = 1.23 | BuildRequires:  golang(API) = 1.22 | ||||||
| ExcludeArch:    s390 | ExcludeArch:    s390 | ||||||
| ExcludeArch:    %{ix86} | ExcludeArch:    %{ix86} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| #!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.4.0 | #!BuildTag: %%IMG_PREFIX%%cdi-chart:%%CHART_MAJOR%%.0.0_up0.4.0 | ||||||
| #!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.4.0-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%cdi-chart:%%CHART_MAJOR%%.0.0_up0.4.0-%RELEASE% | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 1.60.1 | appVersion: 1.60.1 | ||||||
| description: A Helm chart for Containerized Data Importer (CDI) | description: A Helm chart for Containerized Data Importer (CDI) | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
|   <service mode="buildtime" name="kiwi_metainfo_helper"/> |   <service mode="buildtime" name="kiwi_metainfo_helper"/> | ||||||
|   <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> | ||||||
|     <param name="eval">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?chart_prefix})</param> |     <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> | ||||||
|     <param name="var">CHART_PREFIX</param> |     <param name="var">IMG_PREFIX</param> | ||||||
|     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> |     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> | ||||||
|     <param name="var">CHART_MAJOR</param> |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ cdi: | |||||||
|     nodeSelector: |     nodeSelector: | ||||||
|       kubernetes.io/os: linux |       kubernetes.io/os: linux | ||||||
|  |  | ||||||
| hookImage: registry.rancher.com/rancher/kubectl:v1.30.10 | hookImage: rancher/kubectl:v1.30.2 | ||||||
| hookRestartPolicy: OnFailure | hookRestartPolicy: OnFailure | ||||||
| hookSecurityContext: | hookSecurityContext: | ||||||
|   seccompProfile: |   seccompProfile: | ||||||
|   | |||||||
							
								
								
									
										23
									
								
								container-build-checks/.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								container-build-checks/.gitattributes
									
									
									
									
										vendored
									
									
								
							| @@ -1,23 +0,0 @@ | |||||||
| ## Default LFS |  | ||||||
| *.7z filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.bsp filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.bz2 filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.gem filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.gz filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.jar filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.lz filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.lzma filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.obscpio filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.oxt filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.pdf filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.png filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.rpm filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.tbz filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.tbz2 filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.tgz filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.ttf filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.txz filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.whl filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.xz filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.zip filter=lfs diff=lfs merge=lfs -text |  | ||||||
| *.zst filter=lfs diff=lfs merge=lfs -text |  | ||||||
| @@ -1,39 +0,0 @@ | |||||||
| From 982cfa8500250c9704448880a779ade06cc8f976 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Nicolas Belouin <nicolas.belouin@suse.com> |  | ||||||
| Date: Thu, 3 Apr 2025 16:53:49 +0200 |  | ||||||
| Subject: [PATCH] Allow slash prefixes in registry |  | ||||||
|  |  | ||||||
| Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com> |  | ||||||
| --- |  | ||||||
|  container-build-checks.py | 12 ++++++++---- |  | ||||||
|  1 file changed, 8 insertions(+), 4 deletions(-) |  | ||||||
|  |  | ||||||
| diff --git a/container-build-checks.py b/container-build-checks.py |  | ||||||
| index b8c873c..d862f33 100755 |  | ||||||
| --- a/container-build-checks.py |  | ||||||
| +++ b/container-build-checks.py |  | ||||||
| @@ -82,13 +82,17 @@ def verify_reference(image, result, value): |  | ||||||
|          return |  | ||||||
|   |  | ||||||
|      (registry, repo, tag) = reference_match.groups() |  | ||||||
| -    allowed_registries: list[str] = config["General"].getlist("Registry") |  | ||||||
| -    if len(allowed_registries) and registry not in allowed_registries: |  | ||||||
| +    raw_allowed_registries: list[str] = config["General"].getlist("Registry") |  | ||||||
| +    allowed_registries: dict[str, str] = {v[0]: v[2] for v in map(lambda a: a.partition("/"), raw_allowed_registries)} |  | ||||||
| + |  | ||||||
| +    if len(allowed_registries) and (registry not in allowed_registries.keys() or not repo.startswith(allowed_registries[registry])): |  | ||||||
|          result.warn( |  | ||||||
|              f"The org.opensuse.reference label ({value}) does not use an " |  | ||||||
| -            f"allowed registry: {','.join(allowed_registries)}") |  | ||||||
| +            f"allowed registry: {','.join(raw_allowed_registries)}") |  | ||||||
| + |  | ||||||
| +    prefix = allowed_registries[registry] |  | ||||||
|   |  | ||||||
| -    if f"{repo}:{tag}" not in image.containerinfo["tags"]: |  | ||||||
| +    if f"{repo[len(prefix)+1:]}:{tag}" not in image.containerinfo["tags"]: |  | ||||||
|          tags = ", ".join(image.containerinfo["tags"]) |  | ||||||
|          result.warn(f"The org.opensuse.reference label ({value}) does not refer to an existing tag ({tags})") |  | ||||||
|      elif "release" in image.containerinfo and image.containerinfo["release"] not in tag: |  | ||||||
| --  |  | ||||||
| 2.49.0 |  | ||||||
|  |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| [General] |  | ||||||
| Vendor=com.suse |  | ||||||
| Registry=registry.suse.com |  | ||||||
| Registry+=dp.apps.rancher.io |  | ||||||
| @@ -1,15 +0,0 @@ | |||||||
| <services> |  | ||||||
|   <service mode="manual" name="obs_scm"> |  | ||||||
|     <param name="url">https://github.com/openSUSE/container-build-checks.git</param> |  | ||||||
|     <param name="scm">git</param> |  | ||||||
|     <param name="changesgenerate">enable</param> |  | ||||||
|   </service> |  | ||||||
|   <service mode="manual" name="set_version" /> |  | ||||||
|   <service mode="buildtime" name="tar"> |  | ||||||
|     <param name="obsinfo">container-build-checks.obsinfo</param> |  | ||||||
|   </service> |  | ||||||
|   <service mode="buildtime" name="recompress"> |  | ||||||
|     <param name="file">*.tar</param> |  | ||||||
|     <param name="compression">xz</param> |  | ||||||
|   </service> |  | ||||||
| </services> |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| <servicedata> |  | ||||||
| <service name="tar_scm"> |  | ||||||
|                 <param name="url">https://github.com/openSUSE/container-build-checks.git</param> |  | ||||||
|               <param name="changesrevision">412e7f60c08221a549b0f00dfcc4bee7694193ab</param></service></servicedata> |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								container-build-checks/container-build-checks-1723452932.412e7f6.obscpio
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								container-build-checks/container-build-checks-1723452932.412e7f6.obscpio
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,101 +0,0 @@ | |||||||
| ------------------------------------------------------------------- |  | ||||||
| Mon Aug 12 11:33:57 UTC 2024 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Update to version 1723452932.412e7f6: |  | ||||||
|   * add test for missing substitutions |  | ||||||
|   * Reject labels that are missing a substitution |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Mon Jul 22 13:43:57 UTC 2024 - Dirk Müller <dmueller@suse.com> |  | ||||||
|  |  | ||||||
| - update SUSE.conf: allow dp.rancher.apps.io |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Mon Jul 22 13:08:23 UTC 2024 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Switch _service to mode="manual" |  | ||||||
| - Update to version 1721653643.19092fe: |  | ||||||
|   * Use generic name for the python setup step |  | ||||||
|   * Allow specifying more than one registry |  | ||||||
|   * Use Pathlib for resolving containerinfo |  | ||||||
|   * Switch to test Python 3.11 |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Fri Apr 28 09:23:53 UTC 2023 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Update to version 1682595397.5ce6d2f: |  | ||||||
|   * Handle OCI style images as well |  | ||||||
|   * Makefile: Add missing dependency of broken-derived on proper-base |  | ||||||
|   * GitHub workflow: Update action versions |  | ||||||
|   * GitHub workflow: Test python 3.6 and 3.10 |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Mon Aug  8 11:37:19 UTC 2022 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Make the URL point to GitHub |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Thu Jul  7 13:42:05 UTC 2022 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - openSUSE.conf: Allow bci/* as prefix |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Wed Apr 20 14:26:26 UTC 2022 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Update to version 1650464301.a198cf9: |  | ||||||
|   * Detect and treat local builds specially |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Mon Mar  7 09:23:46 UTC 2022 - Silvio Moioli <moio@suse.com> |  | ||||||
|  |  | ||||||
| - Adding Uyuni prefix for https://www.uyuni-project.org/ |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Thu Feb 03 07:44:23 UTC 2022 - fvogt@suse.com |  | ||||||
|  |  | ||||||
| - Update to version 1643874076.3d0e13c: |  | ||||||
|   * Avoid crash on local builds |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Tue Dec 14 13:49:12 UTC 2021 - fvogt@suse.com |  | ||||||
|  |  | ||||||
| - Update to version 1639489705.a4c5a3ab2a75: |  | ||||||
|   * Don't error out when the release field is empty |  | ||||||
|   * Add simple gitpod configuration |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Tue Jun  1 09:06:12 UTC 2021 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Drop obsolete Requires: grep jq |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Fri May 28 13:57:34 UTC 2021 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Update to version 1622209785.4616f4f: |  | ||||||
|   * README.md: Point badge to new location |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Fri May 28 12:47:42 UTC 2021 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Update to version 1622204213.c8ecb9f: |  | ||||||
|   * Add options to allow and block specific tags |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Thu May 27 15:09:59 UTC 2021 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Update to version 1622127842.b548dd8: |  | ||||||
|   * Update README.md |  | ||||||
|   * Add README.md |  | ||||||
|   * Add broken-derived test |  | ||||||
|   * Verify prefix of the image specific label prefix |  | ||||||
|   * Add some comments in the Makefile |  | ||||||
|   * Always check the tag used in org.opensuse.reference |  | ||||||
|   * Add github workflow |  | ||||||
|   * Use bash explicitly |  | ||||||
|   * Make lint |  | ||||||
|   * Less noise in Makefile |  | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- |  | ||||||
| Fri Apr 30 10:04:09 UTC 2021 - Fabian Vogt <fvogt@suse.com> |  | ||||||
|  |  | ||||||
| - Initial commit |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| name: container-build-checks |  | ||||||
| version: 1723452932.412e7f6 |  | ||||||
| mtime: 1723452932 |  | ||||||
| commit: 412e7f60c08221a549b0f00dfcc4bee7694193ab |  | ||||||
| @@ -1,95 +0,0 @@ | |||||||
| # |  | ||||||
| # spec file for package container-build-checks |  | ||||||
| # |  | ||||||
| # Copyright (c) 2024 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:           container-build-checks |  | ||||||
| Version:        1723452932.412e7f6 |  | ||||||
| Release:        0 |  | ||||||
| Summary:        Scripts to validate built container images |  | ||||||
| License:        GPL-2.0-or-later |  | ||||||
| Group:          Development/Tools/Building |  | ||||||
| URL:            https://github.com/openSUSE/container-build-checks |  | ||||||
| Patch0:         0001-Allow-slash-prefixes-in-registry.patch |  | ||||||
| Source0:        %{name}-%{version}.tar.xz |  | ||||||
| Source1:        openSUSE.conf |  | ||||||
| Source2:        SUSE.conf |  | ||||||
| Requires:       %{name}-vendor |  | ||||||
| BuildArch:      noarch |  | ||||||
|  |  | ||||||
| %package vendor-openSUSE |  | ||||||
| Summary:        openSUSE configuration for %{name} |  | ||||||
| Group:          Development/Tools/Building |  | ||||||
| Requires:       %{name} = %{version} |  | ||||||
| Provides:       %{name}-vendor |  | ||||||
| Conflicts:      %{name}-vendor |  | ||||||
|  |  | ||||||
| %description vendor-openSUSE |  | ||||||
| openSUSE configuration for %{name} |  | ||||||
|  |  | ||||||
| %package vendor-SUSE |  | ||||||
| Summary:        SUSE configuration for %{name} |  | ||||||
| Group:          Development/Tools/Building |  | ||||||
| Requires:       %{name} = %{version} |  | ||||||
| Provides:       %{name}-vendor |  | ||||||
| Conflicts:      %{name}-vendor |  | ||||||
|  |  | ||||||
| %description vendor-SUSE |  | ||||||
| SUSE configuration for %{name} |  | ||||||
|  |  | ||||||
| %package strict |  | ||||||
| Summary:        Strict configuration for %{name} |  | ||||||
| Group:          Development/Tools/Building |  | ||||||
|  |  | ||||||
| %description strict |  | ||||||
| Strict configuration for %{name} |  | ||||||
|  |  | ||||||
| %description |  | ||||||
| This tool checks that built container images conform to the openSUSE container |  | ||||||
| image policies (https://en.opensuse.org/Building_derived_containers). |  | ||||||
|  |  | ||||||
| %prep |  | ||||||
| %autosetup -p1 |  | ||||||
|  |  | ||||||
| %build |  | ||||||
| %make_build |  | ||||||
|  |  | ||||||
| %install |  | ||||||
| %make_install |  | ||||||
|  |  | ||||||
| mkdir -p %{buildroot}%{_datadir}/container-build-checks/ |  | ||||||
| install -m0644 %{SOURCE1} %{buildroot}%{_datadir}/container-build-checks/openSUSE.conf |  | ||||||
| install -m0644 %{SOURCE2} %{buildroot}%{_datadir}/container-build-checks/SUSE.conf |  | ||||||
| echo -e "[General]\nFatalWarnings=true" > %{buildroot}%{_datadir}/container-build-checks/strict.conf |  | ||||||
|  |  | ||||||
| %files |  | ||||||
| #%doc README |  | ||||||
| %license LICENSE |  | ||||||
| %dir %{_datadir}/container-build-checks |  | ||||||
| %dir %{_prefix}/lib/build/ |  | ||||||
| %dir %{_prefix}/lib/build/post-build-checks/ |  | ||||||
| %{_prefix}/lib/build/post-build-checks/container-build-checks |  | ||||||
|  |  | ||||||
| %files vendor-openSUSE |  | ||||||
| %{_datadir}/container-build-checks/openSUSE.conf |  | ||||||
|  |  | ||||||
| %files vendor-SUSE |  | ||||||
| %{_datadir}/container-build-checks/SUSE.conf |  | ||||||
|  |  | ||||||
| %files strict |  | ||||||
| %{_datadir}/container-build-checks/strict.conf |  | ||||||
|  |  | ||||||
| %changelog |  | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| [General] |  | ||||||
| Vendor=org.opensuse |  | ||||||
| Registry=registry.opensuse.org |  | ||||||
|  |  | ||||||
| [Tags] |  | ||||||
| # To avoid conflicts with other stuff on the registry and |  | ||||||
| # avoid ambiguities with images on other registries. |  | ||||||
| Allowed+=opensuse/*,kubic/*,kubevirt/*,uyuni/*,bci/* |  | ||||||
| # Those are images, not available as namespaces |  | ||||||
| Blocked+=opensuse/tumbleweed/*,opensuse/leap/* |  | ||||||
							
								
								
									
										18
									
								
								cosign/_service
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								cosign/_service
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | <services> | ||||||
|  |   <service name="obs_scm"> | ||||||
|  |     <param name="url">https://github.com/rancher-government-carbide/cosign.git</param> | ||||||
|  |     <param name="versionformat">@PARENT_TAG@</param> | ||||||
|  |     <param name="scm">git</param> | ||||||
|  |     <param name="exclude">.get</param> | ||||||
|  |     <param name="revision">v2.2.3+carbide.2</param> | ||||||
|  |     <param name="versionrewrite-pattern">v(.*)</param> | ||||||
|  |     <param name="changesgenerate">enable</param> | ||||||
|  |   </service> | ||||||
|  |   <service mode="buildtime" name="tar"> | ||||||
|  |     <param name="obsinfo">cosign.obsinfo</param> | ||||||
|  |   </service> | ||||||
|  |   <service mode="buildtime" name="set_version" /> | ||||||
|  |   <service name="go_modules"> | ||||||
|  |      <param name="compression">gz</param> | ||||||
|  |   </service> | ||||||
|  | </services> | ||||||
							
								
								
									
										55
									
								
								cosign/cosign.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								cosign/cosign.spec
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | # | ||||||
|  | # spec file for package cosign-rgs | ||||||
|  | # | ||||||
|  | # Copyright (c) 2024 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/ | ||||||
|  | # | ||||||
|  |  | ||||||
|  | %define project https://github.com/hauler-dev/cosign | ||||||
|  | %define revision 49542360ffb5de63f9d2f5856b658651d5538e40  | ||||||
|  |  | ||||||
|  | Name:           cosign | ||||||
|  | Version:        0 | ||||||
|  | Release:        0 | ||||||
|  | Summary:        Container Signing, Verification and Storage in an OCI registry | ||||||
|  | License:        Apache-2.0 | ||||||
|  | URL:            https://github.com/rancher-government-carbide/cosign | ||||||
|  | Source:         cosign-%{version}.tar | ||||||
|  | Source1:        vendor.tar.gz          | ||||||
|  | BuildRequires:  golang-packaging | ||||||
|  |  | ||||||
|  | %description | ||||||
|  |  | ||||||
|  | %prep | ||||||
|  | %setup -q -a1 -n cosign-%{version} | ||||||
|  |  | ||||||
|  | %build | ||||||
|  | %goprep %{project} | ||||||
|  |  | ||||||
|  | DATE_FMT="+%%Y-%%m-%%dT%%H:%%M:%%SZ" | ||||||
|  | BUILD_DATE=$(date -u -d "@${SOURCE_DATE_EPOCH}" "${DATE_FMT}" 2>/dev/null || date -u -r "${SOURCE_DATE_EPOCH}" "${DATE_FMT}" 2>/dev/null || date -u "${DATE_FMT}") | ||||||
|  |  | ||||||
|  | CLI_PKG=sigs.k8s.io/release-utils/version | ||||||
|  | CLI_LDFLAGS="-X ${CLI_PKG}.gitVersion=%{version} -X ${CLI_PKG}.gitCommit=%{revision} -X ${CLI_PKG}.gitTreeState=release -X ${CLI_PKG}.buildDate=${BUILD_DATE}" | ||||||
|  |  | ||||||
|  | CGO_ENABLED=0 go build -mod=vendor -buildmode=pie -trimpath -ldflags "${CLI_LDFLAGS}" -o cosign ./cmd/cosign | ||||||
|  |  | ||||||
|  | %install | ||||||
|  | install -D -m 0755 cosign %{buildroot}%{_bindir}/cosign | ||||||
|  |  | ||||||
|  | %files | ||||||
|  | %license LICENSE | ||||||
|  | %doc *.md | ||||||
|  | %{_bindir}/cosign | ||||||
|  |  | ||||||
|  | %changelog | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
|  |  | ||||||
| HELM="/usr/bin/helm" |  | ||||||
| TOPDIR=/usr/src/packages/HELM |  | ||||||
| failed=0 |  | ||||||
|  |  | ||||||
| if [ -x $HELM ]; then |  | ||||||
|     $HELM lint "$TOPDIR"/*.tgz |  | ||||||
|     failed=$? |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| exit $failed |  | ||||||
| @@ -1,158 +0,0 @@ | |||||||
| #!/usr/bin/python3 |  | ||||||
| import os |  | ||||||
| import glob |  | ||||||
| import subprocess |  | ||||||
| import yaml |  | ||||||
| import sys |  | ||||||
| import pprint |  | ||||||
|  |  | ||||||
| AUTHORIZED_REPOS = [ |  | ||||||
|     "registry.suse.com/suse/sles/", |  | ||||||
|     "registry.rancher.com", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| EXTRA_CONFIG = None |  | ||||||
|  |  | ||||||
| class CheckResult: |  | ||||||
|     """Class to track count of issues""" |  | ||||||
|  |  | ||||||
|     def __init__(self): |  | ||||||
|         self.hints = 0 |  | ||||||
|         self.warnings = 0 |  | ||||||
|         self.errors = 0 |  | ||||||
|  |  | ||||||
|     def hint(self, msg): |  | ||||||
|         print(f"Hint: {msg}") |  | ||||||
|         self.hints += 1 |  | ||||||
|  |  | ||||||
|     def warn(self, msg): |  | ||||||
|         print(f"Warning: {msg}") |  | ||||||
|         self.warnings += 1 |  | ||||||
|  |  | ||||||
|     def error(self, msg): |  | ||||||
|         print(f"Error: {msg}") |  | ||||||
|         self.errors += 1 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def tarballs(): |  | ||||||
|     """Return a list of .helminfo files to check.""" |  | ||||||
|     if "BUILD_ROOT" not in os.environ: |  | ||||||
|         # Not running in an OBS build container |  | ||||||
|         return glob.glob("*.tgz") |  | ||||||
|  |  | ||||||
|     # Running in an OBS build container |  | ||||||
|     buildroot = os.environ["BUILD_ROOT"] |  | ||||||
|     topdir = "/usr/src/packages" |  | ||||||
|     if os.path.isdir(buildroot + "/.build.packages"): |  | ||||||
|         topdir = "/.build.packages" |  | ||||||
|     if os.path.islink(buildroot + "/.build.packages"): |  | ||||||
|         topdir = "/" + os.readlink(buildroot + "/.build.packages") |  | ||||||
|  |  | ||||||
|     return glob.glob(f"{buildroot}{topdir}/HELM/*.tgz") |  | ||||||
|  |  | ||||||
| def get_extra_config(): |  | ||||||
|     global EXTRA_CONFIG |  | ||||||
|     if EXTRA_CONFIG is not None: |  | ||||||
|         return EXTRA_CONFIG |  | ||||||
|      |  | ||||||
|     if "BUILD_ROOT" not in os.environ: |  | ||||||
|         file_path = "./.checks_helm.yaml" |  | ||||||
|     else: |  | ||||||
|         buildroot = os.environ["BUILD_ROOT"] |  | ||||||
|         topdir = "/usr/src/packages" |  | ||||||
|         file_path = f"{buildroot}{topdir}/SOURCES/.checks_helm.yaml" |  | ||||||
|     try: |  | ||||||
|         with open(file_path) as config_file: |  | ||||||
|             EXTRA_CONFIG = yaml.safe_load(config_file) |  | ||||||
|             if EXTRA_CONFIG is None:  # No document in stream |  | ||||||
|                 EXTRA_CONFIG = {} |  | ||||||
|     except OSError: |  | ||||||
|         EXTRA_CONFIG = {} |  | ||||||
|     return EXTRA_CONFIG |  | ||||||
|  |  | ||||||
| def get_extra_params(): |  | ||||||
|     config = get_extra_config() |  | ||||||
|     args = [] |  | ||||||
|     for api in config.get('extra_apis', []): |  | ||||||
|         args.extend(['-a', api]) |  | ||||||
|     return args |  | ||||||
|  |  | ||||||
| def is_exception(image): |  | ||||||
|     config = get_extra_config() |  | ||||||
|     exceptions = config.get('image_exceptions', []) |  | ||||||
|     (namespace, _, _) = image.partition(':') |  | ||||||
|     return namespace in exceptions |  | ||||||
|  |  | ||||||
| def get_template(tarball_path): |  | ||||||
|     raw_templates = subprocess.check_output( |  | ||||||
|         [ |  | ||||||
|             "helm", |  | ||||||
|             "template", |  | ||||||
|             tarball_path, |  | ||||||
|         ] + get_extra_params() |  | ||||||
|     ).decode() |  | ||||||
|     return yaml.safe_load_all(raw_templates) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def extract_key(key, var): |  | ||||||
|     if hasattr(var, "items"):  # hasattr(var,'items') for python 3 |  | ||||||
|         for k, v in var.items():  # var.items() for python 3 |  | ||||||
|             if k == key: |  | ||||||
|                 yield v |  | ||||||
|             if isinstance(v, dict): |  | ||||||
|                 for result in extract_key(key, v): |  | ||||||
|                     yield result |  | ||||||
|             elif isinstance(v, list): |  | ||||||
|                 for d in v: |  | ||||||
|                     for result in extract_key(key, d): |  | ||||||
|                         yield result |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def check_template(result, template): |  | ||||||
|     if template["kind"] not in [ |  | ||||||
|         "Pod", |  | ||||||
|         "Deployment", |  | ||||||
|         "StatefulSet", |  | ||||||
|         "DaemonSet", |  | ||||||
|         "ReplicaSet", |  | ||||||
|         "Job", |  | ||||||
|         "CronJob", |  | ||||||
|     ]: |  | ||||||
|         return |  | ||||||
|     for image in extract_key("image", template): |  | ||||||
|         if not image.startswith(tuple(AUTHORIZED_REPOS)) and not is_exception(image): |  | ||||||
|             result.error(f"{image} is not from authorized source") |  | ||||||
|     pass |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def main(): |  | ||||||
|     result = CheckResult() |  | ||||||
|     img_repo = subprocess.check_output( |  | ||||||
|         [ |  | ||||||
|             "rpm", |  | ||||||
|             "--macros=/root/.rpmmacros", |  | ||||||
|             "-E", |  | ||||||
|             "%{?img_repo}", |  | ||||||
|         ] |  | ||||||
|     ).strip() |  | ||||||
|     if img_repo: |  | ||||||
|         result.hint(f"Adding '{img_repo.decode()}' to authorized repo") |  | ||||||
|         AUTHORIZED_REPOS.append(img_repo.decode()) |  | ||||||
|     else: |  | ||||||
|         result.warn("img_repo macro not defined, will not add extra authorized repo") |  | ||||||
|     for tarball in tarballs(): |  | ||||||
|         print(f"Looking at {tarball}") |  | ||||||
|         for template in get_template(tarball): |  | ||||||
|             if template:  # Exclude empty templates |  | ||||||
|                 check_template(result, template) |  | ||||||
|  |  | ||||||
|     ret = 0 |  | ||||||
|     if result.errors > 0: |  | ||||||
|         print("Fatal errors found.") |  | ||||||
|         ret = 1 |  | ||||||
|  |  | ||||||
|     sys.exit(ret) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     main() |  | ||||||
| @@ -1,92 +0,0 @@ | |||||||
| #!/usr/bin/python3 |  | ||||||
| import json |  | ||||||
| import os |  | ||||||
| import glob |  | ||||||
| import sys |  | ||||||
| import re |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class CheckResult: |  | ||||||
|     """Class to track count of issues""" |  | ||||||
|  |  | ||||||
|     def __init__(self): |  | ||||||
|         self.hints = 0 |  | ||||||
|         self.warnings = 0 |  | ||||||
|         self.errors = 0 |  | ||||||
|  |  | ||||||
|     def hint(self, msg): |  | ||||||
|         print(f"Hint: {msg}") |  | ||||||
|         self.hints += 1 |  | ||||||
|  |  | ||||||
|     def warn(self, msg): |  | ||||||
|         print(f"Warning: {msg}") |  | ||||||
|         self.warnings += 1 |  | ||||||
|  |  | ||||||
|     def error(self, msg): |  | ||||||
|         print(f"Error: {msg}") |  | ||||||
|         self.errors += 1 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| TAG_RE = re.compile(r"(.*\/)?([^:]+):([^:]+)") |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def check_tags(helminfo, result): |  | ||||||
|     release_tag_found = False |  | ||||||
|     version_tag_found = False |  | ||||||
|     for tag in helminfo["tags"]: |  | ||||||
|         (tag_prefix, tag_name, tag_version) = TAG_RE.fullmatch(tag).groups() |  | ||||||
|         if tag_name != helminfo.get("name"): |  | ||||||
|             result.warn( |  | ||||||
|                 f"Tag ({tag}) doesn't use the chart name ({helminfo.get('name')})" |  | ||||||
|             ) |  | ||||||
|         if "release" in helminfo and helminfo["release"] in tag_version: |  | ||||||
|             release_tag_found = True |  | ||||||
|         if tag_version.replace("_", "+") == helminfo["version"]: |  | ||||||
|             version_tag_found = True |  | ||||||
|     if not release_tag_found: |  | ||||||
|         result.error( |  | ||||||
|             "None of the tags are unique to a specific build of the image.\n" |  | ||||||
|             + "Make sure that at least one tag contains the release." |  | ||||||
|         ) |  | ||||||
|     if not version_tag_found: |  | ||||||
|         result.error( |  | ||||||
|             "None of the tags is the equivalent of the chart's version.\n" |  | ||||||
|             + "Make sure that one of the tag is the chart version." |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def helminfos(): |  | ||||||
|     """Return a list of .helminfo files to check.""" |  | ||||||
|     if "BUILD_ROOT" not in os.environ: |  | ||||||
|         # Not running in an OBS build container |  | ||||||
|         return glob.glob("*.helminfo") |  | ||||||
|  |  | ||||||
|     # Running in an OBS build container |  | ||||||
|     buildroot = os.environ["BUILD_ROOT"] |  | ||||||
|     topdir = "/usr/src/packages" |  | ||||||
|     if os.path.isdir(buildroot + "/.build.packages"): |  | ||||||
|         topdir = "/.build.packages" |  | ||||||
|     if os.path.islink(buildroot + "/.build.packages"): |  | ||||||
|         topdir = "/" + os.readlink(buildroot + "/.build.packages") |  | ||||||
|  |  | ||||||
|     return glob.glob(f"{buildroot}{topdir}/HELM/*.helminfo") |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def main(): |  | ||||||
|     result = CheckResult() |  | ||||||
|     for helminfo in helminfos(): |  | ||||||
|         print(f"Looking at {helminfo}") |  | ||||||
|         with open(helminfo, "rb") as cifile: |  | ||||||
|             ci_dict = json.load(cifile) |  | ||||||
|             check_tags(ci_dict, result) |  | ||||||
|  |  | ||||||
|     ret = 0 |  | ||||||
|     if result.errors > 0: |  | ||||||
|         print("Fatal errors found.") |  | ||||||
|         ret = 1 |  | ||||||
|  |  | ||||||
|     sys.exit(ret) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     main() |  | ||||||
| @@ -1,340 +0,0 @@ | |||||||
| 		    GNU GENERAL PUBLIC LICENSE |  | ||||||
| 		       Version 2, June 1991 |  | ||||||
|  |  | ||||||
|  Copyright (C) 1989, 1991 Free Software Foundation, Inc. |  | ||||||
|                        59 Temple Place, Suite 330, Boston, MA  02111-1307  USA |  | ||||||
|  Everyone is permitted to copy and distribute verbatim copies |  | ||||||
|  of this license document, but changing it is not allowed. |  | ||||||
|  |  | ||||||
| 			    Preamble |  | ||||||
|  |  | ||||||
|   The licenses for most software are designed to take away your |  | ||||||
| freedom to share and change it.  By contrast, the GNU General Public |  | ||||||
| License is intended to guarantee your freedom to share and change free |  | ||||||
| software--to make sure the software is free for all its users.  This |  | ||||||
| General Public License applies to most of the Free Software |  | ||||||
| Foundation's software and to any other program whose authors commit to |  | ||||||
| using it.  (Some other Free Software Foundation software is covered by |  | ||||||
| the GNU Library General Public License instead.)  You can apply it to |  | ||||||
| your programs, too. |  | ||||||
|  |  | ||||||
|   When we speak of free software, we are referring to freedom, not |  | ||||||
| price.  Our General Public Licenses are designed to make sure that you |  | ||||||
| have the freedom to distribute copies of free software (and charge for |  | ||||||
| this service if you wish), that you receive source code or can get it |  | ||||||
| if you want it, that you can change the software or use pieces of it |  | ||||||
| in new free programs; and that you know you can do these things. |  | ||||||
|  |  | ||||||
|   To protect your rights, we need to make restrictions that forbid |  | ||||||
| anyone to deny you these rights or to ask you to surrender the rights. |  | ||||||
| These restrictions translate to certain responsibilities for you if you |  | ||||||
| distribute copies of the software, or if you modify it. |  | ||||||
|  |  | ||||||
|   For example, if you distribute copies of such a program, whether |  | ||||||
| gratis or for a fee, you must give the recipients all the rights that |  | ||||||
| you have.  You must make sure that they, too, receive or can get the |  | ||||||
| source code.  And you must show them these terms so they know their |  | ||||||
| rights. |  | ||||||
|  |  | ||||||
|   We protect your rights with two steps: (1) copyright the software, and |  | ||||||
| (2) offer you this license which gives you legal permission to copy, |  | ||||||
| distribute and/or modify the software. |  | ||||||
|  |  | ||||||
|   Also, for each author's protection and ours, we want to make certain |  | ||||||
| that everyone understands that there is no warranty for this free |  | ||||||
| software.  If the software is modified by someone else and passed on, we |  | ||||||
| want its recipients to know that what they have is not the original, so |  | ||||||
| that any problems introduced by others will not reflect on the original |  | ||||||
| authors' reputations. |  | ||||||
|  |  | ||||||
|   Finally, any free program is threatened constantly by software |  | ||||||
| patents.  We wish to avoid the danger that redistributors of a free |  | ||||||
| program will individually obtain patent licenses, in effect making the |  | ||||||
| program proprietary.  To prevent this, we have made it clear that any |  | ||||||
| patent must be licensed for everyone's free use or not licensed at all. |  | ||||||
|  |  | ||||||
|   The precise terms and conditions for copying, distribution and |  | ||||||
| modification follow. |  | ||||||
|  |  | ||||||
| 		    GNU GENERAL PUBLIC LICENSE |  | ||||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |  | ||||||
|  |  | ||||||
|   0. This License applies to any program or other work which contains |  | ||||||
| a notice placed by the copyright holder saying it may be distributed |  | ||||||
| under the terms of this General Public License.  The "Program", below, |  | ||||||
| refers to any such program or work, and a "work based on the Program" |  | ||||||
| means either the Program or any derivative work under copyright law: |  | ||||||
| that is to say, a work containing the Program or a portion of it, |  | ||||||
| either verbatim or with modifications and/or translated into another |  | ||||||
| language.  (Hereinafter, translation is included without limitation in |  | ||||||
| the term "modification".)  Each licensee is addressed as "you". |  | ||||||
|  |  | ||||||
| Activities other than copying, distribution and modification are not |  | ||||||
| covered by this License; they are outside its scope.  The act of |  | ||||||
| running the Program is not restricted, and the output from the Program |  | ||||||
| is covered only if its contents constitute a work based on the |  | ||||||
| Program (independent of having been made by running the Program). |  | ||||||
| Whether that is true depends on what the Program does. |  | ||||||
|  |  | ||||||
|   1. You may copy and distribute verbatim copies of the Program's |  | ||||||
| source code as you receive it, in any medium, provided that you |  | ||||||
| conspicuously and appropriately publish on each copy an appropriate |  | ||||||
| copyright notice and disclaimer of warranty; keep intact all the |  | ||||||
| notices that refer to this License and to the absence of any warranty; |  | ||||||
| and give any other recipients of the Program a copy of this License |  | ||||||
| along with the Program. |  | ||||||
|  |  | ||||||
| You may charge a fee for the physical act of transferring a copy, and |  | ||||||
| you may at your option offer warranty protection in exchange for a fee. |  | ||||||
|  |  | ||||||
|   2. You may modify your copy or copies of the Program or any portion |  | ||||||
| of it, thus forming a work based on the Program, and copy and |  | ||||||
| distribute such modifications or work under the terms of Section 1 |  | ||||||
| above, provided that you also meet all of these conditions: |  | ||||||
|  |  | ||||||
|     a) You must cause the modified files to carry prominent notices |  | ||||||
|     stating that you changed the files and the date of any change. |  | ||||||
|  |  | ||||||
|     b) You must cause any work that you distribute or publish, that in |  | ||||||
|     whole or in part contains or is derived from the Program or any |  | ||||||
|     part thereof, to be licensed as a whole at no charge to all third |  | ||||||
|     parties under the terms of this License. |  | ||||||
|  |  | ||||||
|     c) If the modified program normally reads commands interactively |  | ||||||
|     when run, you must cause it, when started running for such |  | ||||||
|     interactive use in the most ordinary way, to print or display an |  | ||||||
|     announcement including an appropriate copyright notice and a |  | ||||||
|     notice that there is no warranty (or else, saying that you provide |  | ||||||
|     a warranty) and that users may redistribute the program under |  | ||||||
|     these conditions, and telling the user how to view a copy of this |  | ||||||
|     License.  (Exception: if the Program itself is interactive but |  | ||||||
|     does not normally print such an announcement, your work based on |  | ||||||
|     the Program is not required to print an announcement.) |  | ||||||
|  |  | ||||||
| These requirements apply to the modified work as a whole.  If |  | ||||||
| identifiable sections of that work are not derived from the Program, |  | ||||||
| and can be reasonably considered independent and separate works in |  | ||||||
| themselves, then this License, and its terms, do not apply to those |  | ||||||
| sections when you distribute them as separate works.  But when you |  | ||||||
| distribute the same sections as part of a whole which is a work based |  | ||||||
| on the Program, the distribution of the whole must be on the terms of |  | ||||||
| this License, whose permissions for other licensees extend to the |  | ||||||
| entire whole, and thus to each and every part regardless of who wrote it. |  | ||||||
|  |  | ||||||
| Thus, it is not the intent of this section to claim rights or contest |  | ||||||
| your rights to work written entirely by you; rather, the intent is to |  | ||||||
| exercise the right to control the distribution of derivative or |  | ||||||
| collective works based on the Program. |  | ||||||
|  |  | ||||||
| In addition, mere aggregation of another work not based on the Program |  | ||||||
| with the Program (or with a work based on the Program) on a volume of |  | ||||||
| a storage or distribution medium does not bring the other work under |  | ||||||
| the scope of this License. |  | ||||||
|  |  | ||||||
|   3. You may copy and distribute the Program (or a work based on it, |  | ||||||
| under Section 2) in object code or executable form under the terms of |  | ||||||
| Sections 1 and 2 above provided that you also do one of the following: |  | ||||||
|  |  | ||||||
|     a) Accompany it with the complete corresponding machine-readable |  | ||||||
|     source code, which must be distributed under the terms of Sections |  | ||||||
|     1 and 2 above on a medium customarily used for software interchange; or, |  | ||||||
|  |  | ||||||
|     b) Accompany it with a written offer, valid for at least three |  | ||||||
|     years, to give any third party, for a charge no more than your |  | ||||||
|     cost of physically performing source distribution, a complete |  | ||||||
|     machine-readable copy of the corresponding source code, to be |  | ||||||
|     distributed under the terms of Sections 1 and 2 above on a medium |  | ||||||
|     customarily used for software interchange; or, |  | ||||||
|  |  | ||||||
|     c) Accompany it with the information you received as to the offer |  | ||||||
|     to distribute corresponding source code.  (This alternative is |  | ||||||
|     allowed only for noncommercial distribution and only if you |  | ||||||
|     received the program in object code or executable form with such |  | ||||||
|     an offer, in accord with Subsection b above.) |  | ||||||
|  |  | ||||||
| The source code for a work means the preferred form of the work for |  | ||||||
| making modifications to it.  For an executable work, complete source |  | ||||||
| code means all the source code for all modules it contains, plus any |  | ||||||
| associated interface definition files, plus the scripts used to |  | ||||||
| control compilation and installation of the executable.  However, as a |  | ||||||
| special exception, the source code distributed need not include |  | ||||||
| anything that is normally distributed (in either source or binary |  | ||||||
| form) with the major components (compiler, kernel, and so on) of the |  | ||||||
| operating system on which the executable runs, unless that component |  | ||||||
| itself accompanies the executable. |  | ||||||
|  |  | ||||||
| If distribution of executable or object code is made by offering |  | ||||||
| access to copy from a designated place, then offering equivalent |  | ||||||
| access to copy the source code from the same place counts as |  | ||||||
| distribution of the source code, even though third parties are not |  | ||||||
| compelled to copy the source along with the object code. |  | ||||||
|  |  | ||||||
|   4. You may not copy, modify, sublicense, or distribute the Program |  | ||||||
| except as expressly provided under this License.  Any attempt |  | ||||||
| otherwise to copy, modify, sublicense or distribute the Program is |  | ||||||
| void, and will automatically terminate your rights under this License. |  | ||||||
| However, parties who have received copies, or rights, from you under |  | ||||||
| this License will not have their licenses terminated so long as such |  | ||||||
| parties remain in full compliance. |  | ||||||
|  |  | ||||||
|   5. You are not required to accept this License, since you have not |  | ||||||
| signed it.  However, nothing else grants you permission to modify or |  | ||||||
| distribute the Program or its derivative works.  These actions are |  | ||||||
| prohibited by law if you do not accept this License.  Therefore, by |  | ||||||
| modifying or distributing the Program (or any work based on the |  | ||||||
| Program), you indicate your acceptance of this License to do so, and |  | ||||||
| all its terms and conditions for copying, distributing or modifying |  | ||||||
| the Program or works based on it. |  | ||||||
|  |  | ||||||
|   6. Each time you redistribute the Program (or any work based on the |  | ||||||
| Program), the recipient automatically receives a license from the |  | ||||||
| original licensor to copy, distribute or modify the Program subject to |  | ||||||
| these terms and conditions.  You may not impose any further |  | ||||||
| restrictions on the recipients' exercise of the rights granted herein. |  | ||||||
| You are not responsible for enforcing compliance by third parties to |  | ||||||
| this License. |  | ||||||
|  |  | ||||||
|   7. If, as a consequence of a court judgment or allegation of patent |  | ||||||
| infringement or for any other reason (not limited to patent issues), |  | ||||||
| conditions are imposed on you (whether by court order, agreement or |  | ||||||
| otherwise) that contradict the conditions of this License, they do not |  | ||||||
| excuse you from the conditions of this License.  If you cannot |  | ||||||
| distribute so as to satisfy simultaneously your obligations under this |  | ||||||
| License and any other pertinent obligations, then as a consequence you |  | ||||||
| may not distribute the Program at all.  For example, if a patent |  | ||||||
| license would not permit royalty-free redistribution of the Program by |  | ||||||
| all those who receive copies directly or indirectly through you, then |  | ||||||
| the only way you could satisfy both it and this License would be to |  | ||||||
| refrain entirely from distribution of the Program. |  | ||||||
|  |  | ||||||
| If any portion of this section is held invalid or unenforceable under |  | ||||||
| any particular circumstance, the balance of the section is intended to |  | ||||||
| apply and the section as a whole is intended to apply in other |  | ||||||
| circumstances. |  | ||||||
|  |  | ||||||
| It is not the purpose of this section to induce you to infringe any |  | ||||||
| patents or other property right claims or to contest validity of any |  | ||||||
| such claims; this section has the sole purpose of protecting the |  | ||||||
| integrity of the free software distribution system, which is |  | ||||||
| implemented by public license practices.  Many people have made |  | ||||||
| generous contributions to the wide range of software distributed |  | ||||||
| through that system in reliance on consistent application of that |  | ||||||
| system; it is up to the author/donor to decide if he or she is willing |  | ||||||
| to distribute software through any other system and a licensee cannot |  | ||||||
| impose that choice. |  | ||||||
|  |  | ||||||
| This section is intended to make thoroughly clear what is believed to |  | ||||||
| be a consequence of the rest of this License. |  | ||||||
|  |  | ||||||
|   8. If the distribution and/or use of the Program is restricted in |  | ||||||
| certain countries either by patents or by copyrighted interfaces, the |  | ||||||
| original copyright holder who places the Program under this License |  | ||||||
| may add an explicit geographical distribution limitation excluding |  | ||||||
| those countries, so that distribution is permitted only in or among |  | ||||||
| countries not thus excluded.  In such case, this License incorporates |  | ||||||
| the limitation as if written in the body of this License. |  | ||||||
|  |  | ||||||
|   9. The Free Software Foundation may publish revised and/or new versions |  | ||||||
| of the General Public License from time to time.  Such new versions will |  | ||||||
| be similar in spirit to the present version, but may differ in detail to |  | ||||||
| address new problems or concerns. |  | ||||||
|  |  | ||||||
| Each version is given a distinguishing version number.  If the Program |  | ||||||
| specifies a version number of this License which applies to it and "any |  | ||||||
| later version", you have the option of following the terms and conditions |  | ||||||
| either of that version or of any later version published by the Free |  | ||||||
| Software Foundation.  If the Program does not specify a version number of |  | ||||||
| this License, you may choose any version ever published by the Free Software |  | ||||||
| Foundation. |  | ||||||
|  |  | ||||||
|   10. If you wish to incorporate parts of the Program into other free |  | ||||||
| programs whose distribution conditions are different, write to the author |  | ||||||
| to ask for permission.  For software which is copyrighted by the Free |  | ||||||
| Software Foundation, write to the Free Software Foundation; we sometimes |  | ||||||
| make exceptions for this.  Our decision will be guided by the two goals |  | ||||||
| of preserving the free status of all derivatives of our free software and |  | ||||||
| of promoting the sharing and reuse of software generally. |  | ||||||
|  |  | ||||||
| 			    NO WARRANTY |  | ||||||
|  |  | ||||||
|   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |  | ||||||
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN |  | ||||||
| OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |  | ||||||
| PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |  | ||||||
| OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |  | ||||||
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS |  | ||||||
| TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE |  | ||||||
| PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |  | ||||||
| REPAIR OR CORRECTION. |  | ||||||
|  |  | ||||||
|   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |  | ||||||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |  | ||||||
| REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |  | ||||||
| INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |  | ||||||
| OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |  | ||||||
| TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |  | ||||||
| YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |  | ||||||
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |  | ||||||
| POSSIBILITY OF SUCH DAMAGES. |  | ||||||
|  |  | ||||||
| 		     END OF TERMS AND CONDITIONS |  | ||||||
|  |  | ||||||
| 	    How to Apply These Terms to Your New Programs |  | ||||||
|  |  | ||||||
|   If you develop a new program, and you want it to be of the greatest |  | ||||||
| possible use to the public, the best way to achieve this is to make it |  | ||||||
| free software which everyone can redistribute and change under these terms. |  | ||||||
|  |  | ||||||
|   To do so, attach the following notices to the program.  It is safest |  | ||||||
| to attach them to the start of each source file to most effectively |  | ||||||
| convey the exclusion of warranty; and each file should have at least |  | ||||||
| the "copyright" line and a pointer to where the full notice is found. |  | ||||||
|  |  | ||||||
|     <one line to give the program's name and a brief idea of what it does.> |  | ||||||
|     Copyright (C) <year>  <name of author> |  | ||||||
|  |  | ||||||
|     This program is free software; you can redistribute it and/or modify |  | ||||||
|     it under the terms of the GNU General Public License as published by |  | ||||||
|     the Free Software Foundation; either version 2 of the License, or |  | ||||||
|     (at your option) any later version. |  | ||||||
|  |  | ||||||
|     This program is distributed in the hope that it will be useful, |  | ||||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
|     GNU General Public License for more details. |  | ||||||
|  |  | ||||||
|     You should have received a copy of the GNU General Public License |  | ||||||
|     along with this program; if not, write to the Free Software |  | ||||||
|     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Also add information on how to contact you by electronic and paper mail. |  | ||||||
|  |  | ||||||
| If the program is interactive, make it output a short notice like this |  | ||||||
| when it starts in an interactive mode: |  | ||||||
|  |  | ||||||
|     Gnomovision version 69, Copyright (C) year name of author |  | ||||||
|     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |  | ||||||
|     This is free software, and you are welcome to redistribute it |  | ||||||
|     under certain conditions; type `show c' for details. |  | ||||||
|  |  | ||||||
| The hypothetical commands `show w' and `show c' should show the appropriate |  | ||||||
| parts of the General Public License.  Of course, the commands you use may |  | ||||||
| be called something other than `show w' and `show c'; they could even be |  | ||||||
| mouse-clicks or menu items--whatever suits your program. |  | ||||||
|  |  | ||||||
| You should also get your employer (if you work as a programmer) or your |  | ||||||
| school, if any, to sign a "copyright disclaimer" for the program, if |  | ||||||
| necessary.  Here is a sample; alter the names: |  | ||||||
|  |  | ||||||
|   Yoyodyne, Inc., hereby disclaims all copyright interest in the program |  | ||||||
|   `Gnomovision' (which makes passes at compilers) written by James Hacker. |  | ||||||
|  |  | ||||||
|   <signature of Ty Coon>, 1 April 1989 |  | ||||||
|   Ty Coon, President of Vice |  | ||||||
|  |  | ||||||
| This General Public License does not permit incorporating your program into |  | ||||||
| proprietary programs.  If your program is a subroutine library, you may |  | ||||||
| consider it more useful to permit linking proprietary applications with the |  | ||||||
| library.  If this is what you want to do, use the GNU Library General |  | ||||||
| Public License instead of this License. |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| [General] |  | ||||||
| Vendor=com.suse |  | ||||||
| Registry=%%IMG_REPO%% |  | ||||||
|  |  | ||||||
| [Tags] |  | ||||||
| Allowed=%%IMG_PREFIX%%* |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| <services> |  | ||||||
|   <service name="replace_using_env" mode="buildtime"> |  | ||||||
|     <param name="file">SUSE-Edge.conf</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> |  | ||||||
|   </service> |  | ||||||
| </services> |  | ||||||
| @@ -1,59 +0,0 @@ | |||||||
| # |  | ||||||
| # spec file for package edge-build-checks |  | ||||||
| # |  | ||||||
| # Copyright (c) 2024 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:           edge-build-checks |  | ||||||
| Summary:        post checks for build after charts and images are created |  | ||||||
| License:        GPL-2.0-or-later |  | ||||||
| Group:          Development/Tools/Building |  | ||||||
| Version:        0.0.1 |  | ||||||
| Release:        0 |  | ||||||
| Source0:        COPYING |  | ||||||
| Source1:        20-helm-images |  | ||||||
| Source2:        10-helm-lint |  | ||||||
| Source3:        SUSE-Edge.conf |  | ||||||
| Source4:        20-helm-tags |  | ||||||
| BuildArch:      noarch |  | ||||||
| Requires:       container-build-checks |  | ||||||
| Requires:       python3-PyYAML |  | ||||||
| Provides:       container-build-checks-vendor |  | ||||||
|  |  | ||||||
| %description |  | ||||||
| some scripts to check for problems in edge related helm charts and images after their creation |  | ||||||
| in OBS. |  | ||||||
|  |  | ||||||
| %prep |  | ||||||
| cp %{SOURCE0} . |  | ||||||
|  |  | ||||||
| %build |  | ||||||
| %define _lto_cflags %{nil} |  | ||||||
| # nothing to do |  | ||||||
|  |  | ||||||
| %install |  | ||||||
| install -d $RPM_BUILD_ROOT/usr/lib/build/post-build-checks |  | ||||||
| install -m 755 %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/build/post-build-checks |  | ||||||
| install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/usr/lib/build/post-build-checks |  | ||||||
| install -m 755 %{SOURCE4} $RPM_BUILD_ROOT/usr/lib/build/post-build-checks |  | ||||||
| install -d %{buildroot}%{_datadir}/container-build-checks |  | ||||||
| install -m 644 %{SOURCE3} %{buildroot}%{_datadir}/container-build-checks/SUSE-Edge.conf |  | ||||||
|  |  | ||||||
| %files |  | ||||||
| %license COPYING |  | ||||||
| %{_datadir}/container-build-checks |  | ||||||
| /usr/lib/build |  | ||||||
|  |  | ||||||
| %changelog |  | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%edge-image-builder:%PACKAGE_VERSION% | #!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.2-rc1 | ||||||
| #!BuildTag: %%IMG_PREFIX%%edge-image-builder:%PACKAGE_VERSION%-%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="%PACKAGE_VERSION%" | 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:%PACKAGE_VERSION%-%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" | ||||||
|   | |||||||
| @@ -1,10 +1,5 @@ | |||||||
| <services> | <services> | ||||||
|   <service mode="buildtime" name="kiwi_metainfo_helper"/> |   <service mode="buildtime" name="kiwi_metainfo_helper"/> | ||||||
|   <service name="replace_using_package_version" mode="buildtime"> |  | ||||||
|       <param name="file">Dockerfile</param> |  | ||||||
|       <param name="regex">%PACKAGE_VERSION%</param> |  | ||||||
|       <param name="package">edge-image-builder</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> | ||||||
| @@ -12,8 +7,8 @@ | |||||||
|     <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">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?chart_prefix})</param> |     <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> | ||||||
|     <param name="var">CHART_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> | ||||||
| @@ -22,3 +17,4 @@ | |||||||
|     <param name="var">CHART_MAJOR</param> |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
| </services> | </services> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| metallb: | metallb: | ||||||
|   chart: metallb |   chart: metallb-chart | ||||||
|   repository: "%%CHART_REPO%%/%%CHART_PREFIX%%" |   repository: "%%CHART_REPO%%/%%IMG_PREFIX%%" | ||||||
|   version: "%%CHART_MAJOR%%.0.0+up0.14.9" |   version: "%%CHART_MAJOR%%.0.1+up0.14.9" | ||||||
| endpoint-copier-operator: | endpoint-copier-operator: | ||||||
|   chart: endpoint-copier-operator |   chart: endpoint-copier-operator-chart | ||||||
|   repository: "%%CHART_REPO%%/%%CHART_PREFIX%%" |   repository: "%%CHART_REPO%%/%%IMG_PREFIX%%" | ||||||
|   version: "%%CHART_MAJOR%%.0.0+up0.2.1" |   version: "%%CHART_MAJOR%%.0.0+up0.2.1" | ||||||
| kubernetes: | kubernetes: | ||||||
|   k3s: |   k3s: | ||||||
|   | |||||||
| @@ -1,12 +1,15 @@ | |||||||
| <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@_%h.%ad</param> |  | ||||||
|     <param name="scm">git</param> |     <param name="scm">git</param> | ||||||
|     <param name="exclude">.git</param> |     <param name="exclude">.git</param> | ||||||
|     <param name="revision">main</param> |     <param name="revision">v1.1.2-rc1</param> | ||||||
|     <param name="versionrewrite-pattern">v(.*)</param> |     <!-- Uncomment and set this For Pre-Release Version --> | ||||||
|     <param name="versionrewrite-replacement">\1</param> |     <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-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"> | ||||||
|   | |||||||
| @@ -17,14 +17,14 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| Name:           edge-image-builder | Name:           edge-image-builder | ||||||
| Version:        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 | Source:         edge-image-builder-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang(API) go1.24 | BuildRequires:  golang(API) go1.22 | ||||||
| BuildRequires:  golang-packaging | BuildRequires:  golang-packaging | ||||||
| BuildRequires:  gpgme-devel | BuildRequires:  gpgme-devel | ||||||
| BuildRequires:  device-mapper-devel | BuildRequires:  device-mapper-devel | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| #!BuildTag: %%CHART_PREFIX%%endpoint-copier-operator:%%CHART_MAJOR%%.0.0_up0.2.1 | #!BuildTag: %%IMG_PREFIX%%endpoint-copier-operator-chart:%%CHART_MAJOR%%.0.0_up0.2.1 | ||||||
| #!BuildTag: %%CHART_PREFIX%%endpoint-copier-operator:%%CHART_MAJOR%%.0.0_up0.2.1-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%endpoint-copier-operator-chart:%%CHART_MAJOR%%.0.0_up0.2.1-%RELEASE% | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: v0.2.0 | appVersion: v0.2.0 | ||||||
| description: A Helm chart for Kubernetes | description: A Helm chart for Kubernetes | ||||||
|   | |||||||
| @@ -9,8 +9,8 @@ | |||||||
|   </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> | ||||||
|     <param name="eval">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?chart_prefix})</param> |     <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> | ||||||
|     <param name="var">CHART_PREFIX</param> |     <param name="var">IMG_PREFIX</param> | ||||||
|     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> |     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> | ||||||
|     <param name="var">CHART_MAJOR</param> |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| # SPDX-License-Identifier: MIT | # SPDX-License-Identifier: MIT | ||||||
| #!BuildTag: %%IMG_PREFIX%%frr:8.5.6 | #!BuildTag: %%IMG_PREFIX%%frr:8.4 | ||||||
| #!BuildTag: %%IMG_PREFIX%%frr:8.5.6-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%frr:8.4-%RELEASE% | ||||||
| #!BuildVersion: 15.6 | #!BuildVersion: 15.5 | ||||||
| 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 | ||||||
|  |  | ||||||
| @@ -15,11 +15,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="FRR Container Image" | LABEL org.opencontainers.image.title="FRR Container Image" | ||||||
| LABEL org.opencontainers.image.description="frr based on the SLE Base Container Image." | LABEL org.opencontainers.image.description="frr based on the SLE Base Container Image." | ||||||
| LABEL org.opencontainers.image.version="8.5.6" | LABEL org.opencontainers.image.version="8.4" | ||||||
| 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%%frr:8.5.6-%RELEASE%" | LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr:8.4-%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" | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  <service name="obs_scm"> |  <service name="obs_scm"> | ||||||
|     <param name="url">https://github.com/metallb/frr-k8s</param> |     <param name="url">https://github.com/metallb/frr-k8s</param> | ||||||
|     <param name="scm">git</param> |     <param name="scm">git</param> | ||||||
|     <param name="revision">v0.0.16</param> |     <param name="revision">v0.0.14</param> | ||||||
|     <param name="version">_auto_</param> |     <param name="version">_auto_</param> | ||||||
|     <param name="versionformat">@PARENT_TAG@</param> |     <param name="versionformat">@PARENT_TAG@</param> | ||||||
|     <param name="changesgenerate">enable</param> |     <param name="changesgenerate">enable</param> | ||||||
|   | |||||||
| @@ -17,8 +17,8 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| Name:           frr-k8s | Name:           frr-k8s | ||||||
| Version:        0.0.16 | Version:        0.0.14 | ||||||
| Release:        0.0.16 | 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 | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|     <param name="versionformat">@PARENT_TAG@</param> |     <param name="versionformat">@PARENT_TAG@</param> | ||||||
|     <param name="scm">git</param> |     <param name="scm">git</param> | ||||||
|     <param name="exclude">.get</param> |     <param name="exclude">.get</param> | ||||||
|     <param name="revision">v1.2.1</param> |     <param name="revision">v1.0.7</param> | ||||||
|     <param name="versionrewrite-pattern">v(.*)</param> |     <param name="versionrewrite-pattern">v(.*)</param> | ||||||
|     <param name="changesgenerate">enable</param> |     <param name="changesgenerate">enable</param> | ||||||
|   </service> |   </service> | ||||||
| @@ -15,13 +15,4 @@ | |||||||
|   <service name="go_modules"> |   <service name="go_modules"> | ||||||
|      <param name="compression">gz</param> |      <param name="compression">gz</param> | ||||||
|   </service> |   </service> | ||||||
|   <service mode="buildtime" name="replace_using_env"> |  | ||||||
|     <param name="file">hauler.spec</param> |  | ||||||
|     <param name="var">SOURCE_COMMIT</param> |  | ||||||
|     <param name="eval"> |  | ||||||
|       SOURCE_COMMIT=$(grep commit hauler.obsinfo | cut -d" " -f2) |  | ||||||
|     </param> |  | ||||||
|     <param name="verbose">1</param> |  | ||||||
|   </service> |  | ||||||
|   <service mode="buildtime" name="set_version" /> |  | ||||||
| </services> | </services> | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| %define project github.com/hauler-dev/hauler | %define project github.com/hauler-dev/hauler | ||||||
|  |  | ||||||
| Name:           hauler | Name:           hauler | ||||||
| Version:        1.2.1 | Version:        1.0.7 | ||||||
| Release:        0 | Release:        0 | ||||||
| Summary:        Airgap Swiss Army Knife | Summary:        Airgap Swiss Army Knife | ||||||
| License:        Apache-2.0 | License:        Apache-2.0 | ||||||
| @@ -26,6 +26,7 @@ URL:            https://github.com/hauler-dev/hauler | |||||||
| Source:         hauler-%{version}.tar | Source:         hauler-%{version}.tar | ||||||
| Source1:        vendor.tar.gz | Source1:        vendor.tar.gz | ||||||
| BuildRequires:  golang-packaging | BuildRequires:  golang-packaging | ||||||
|  | BuildRequires:  cosign | ||||||
|  |  | ||||||
| %description | %description | ||||||
|  |  | ||||||
| @@ -37,18 +38,10 @@ BuildRequires:  golang-packaging | |||||||
|  |  | ||||||
| tar -xf %{SOURCE1} | tar -xf %{SOURCE1} | ||||||
|  |  | ||||||
| MODULE=hauler.dev/go/hauler | mkdir cmd/hauler/binaries | ||||||
| %define buildtime %(date +%%Y-%%m-%%dT%%H:%%M:%%S%%z) | cp `which cosign` cmd/hauler/binaries/cosign-linux-%{go_arch} | ||||||
| %define buildcommit %%SOURCE_COMMIT%% |  | ||||||
|  |  | ||||||
|  | go build -mod=vendor -buildmode=pie -o hauler ./cmd/hauler | ||||||
| go build \ |  | ||||||
| -mod=vendor \ |  | ||||||
| -buildmode=pie \ |  | ||||||
| -o hauler \ |  | ||||||
| -ldflags \ |  | ||||||
| "-X $MODULE/internal/version.gitVersion=v%{version} -X $MODULE/internal/version.gitCommit=%{buildcommit} -X $MODULE/internal/version.buildDate=%{buildtime}" \ |  | ||||||
| ./cmd/hauler |  | ||||||
|  |  | ||||||
| %install | %install | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # SPDX-License-Identifier: Apache-2.0 | # SPDX-License-Identifier: Apache-2.0 | ||||||
| #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.4 | #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.3 | ||||||
| #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.4-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.3-%RELEASE% | ||||||
| #!BuildVersion: 15.6 | #!BuildVersion: 15.6 | ||||||
|  |  | ||||||
| ARG SLE_VERSION | ARG SLE_VERSION | ||||||
| @@ -8,8 +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 zypper -n in --no-recommends shim-x86_64 shim-aarch64 grub2-x86_64-efi grub2-arm64-efi dosfstools mtools | #!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 | ||||||
| @@ -40,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.4" | LABEL org.opencontainers.image.version="26.1.2.3" | ||||||
| LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.4-%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" | ||||||
| @@ -82,8 +88,7 @@ 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 ;\ |      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 |     fi | ||||||
|      |      | ||||||
| COPY --from=base /tmp/esp-x86_64.img /tmp/uefi_esp-x86_64.img | COPY --from=base /tmp/esp.img /tmp/uefi_esp.img | ||||||
| COPY --from=base /tmp/esp-aarch64.img /tmp/uefi_esp-arm64.img |  | ||||||
|  |  | ||||||
| COPY ironic.conf.j2 /etc/ironic/ | COPY ironic.conf.j2 /etc/ironic/ | ||||||
| COPY inspector.ipxe.j2 httpd-ironic-api.conf.j2 ipxe_config.template /tmp/ | COPY inspector.ipxe.j2 httpd-ironic-api.conf.j2 ipxe_config.template /tmp/ | ||||||
|   | |||||||
| @@ -68,7 +68,7 @@ if [[ -n "$IRONIC_EXTERNAL_IP" ]]; then | |||||||
|     fi |     fi | ||||||
| fi | fi | ||||||
|  |  | ||||||
| IMAGE_CACHE_PREFIX="/shared/html/images/ironic-python-agent-${DEPLOY_ARCHITECTURE}" | IMAGE_CACHE_PREFIX=/shared/html/images/ironic-python-agent | ||||||
| if [[ -f "${IMAGE_CACHE_PREFIX}.kernel" ]] && [[ -f "${IMAGE_CACHE_PREFIX}.initramfs" ]]; then | if [[ -f "${IMAGE_CACHE_PREFIX}.kernel" ]] && [[ -f "${IMAGE_CACHE_PREFIX}.initramfs" ]]; then | ||||||
|     export IRONIC_DEFAULT_KERNEL="${IMAGE_CACHE_PREFIX}.kernel" |     export IRONIC_DEFAULT_KERNEL="${IMAGE_CACHE_PREFIX}.kernel" | ||||||
|     export IRONIC_DEFAULT_RAMDISK="${IMAGE_CACHE_PREFIX}.initramfs" |     export IRONIC_DEFAULT_RAMDISK="${IMAGE_CACHE_PREFIX}.initramfs" | ||||||
|   | |||||||
| @@ -5,6 +5,6 @@ echo In inspector.ipxe | |||||||
| imgfree | imgfree | ||||||
| # NOTE(dtantsur): keep inspection kernel params in [mdns]params in | # NOTE(dtantsur): keep inspection kernel params in [mdns]params in | ||||||
| # ironic-inspector-image and configuration in configure-ironic.sh | # ironic-inspector-image and configuration in configure-ironic.sh | ||||||
| kernel --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent-${buildarch}.kernel ipa-insecure=1 ipa-inspection-collectors={{ env.IRONIC_IPA_COLLECTORS }} systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-enable-vlan-interfaces={{ env.IRONIC_ENABLE_VLAN_INTERFACES }} ipa-inspection-dhcp-all-interfaces=1 ipa-collect-lldp=1 {{ env.INSPECTOR_EXTRA_ARGS }} initrd=ironic-python-agent.initramfs {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} || goto retry_boot | kernel --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent.kernel ipa-insecure=1 ipa-inspection-collectors={{ env.IRONIC_IPA_COLLECTORS }} systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-enable-vlan-interfaces={{ env.IRONIC_ENABLE_VLAN_INTERFACES }} ipa-inspection-dhcp-all-interfaces=1 ipa-collect-lldp=1 {{ env.INSPECTOR_EXTRA_ARGS }} initrd=ironic-python-agent.initramfs {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} || goto retry_boot | ||||||
| initrd --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent-${buildarch}.initramfs || goto retry_boot | initrd --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent.initramfs || goto retry_boot | ||||||
| boot | boot | ||||||
|   | |||||||
| @@ -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 = {{ env.IRONIC_BOOT_BASE_URL }}/uefi_esp-{{ env.DEPLOY_ARCHITECTURE }}.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 | ||||||
|   | |||||||
| @@ -2,26 +2,41 @@ | |||||||
|  |  | ||||||
| set -euxo pipefail | set -euxo pipefail | ||||||
|  |  | ||||||
| declare -A efi_arch=( | ARCH=$(uname -m) | ||||||
|   ["x86_64"]="X64" | DEST=${2:-/tmp/esp.img} | ||||||
|   ["aarch64"]="AA64" | OS=${1:-sles} | ||||||
|   ) |  | ||||||
|  |  | ||||||
| for arch in "${!efi_arch[@]}"; do | if [ $ARCH = "aarch64" ]; then | ||||||
|  |   BOOTEFI=BOOTAA64.EFI | ||||||
|  |   GRUBEFI=grubaa64.efi | ||||||
|  | else | ||||||
|  |   BOOTEFI=BOOTX64.efi | ||||||
|  |   GRUBEFI=grubx64.efi | ||||||
|  | fi | ||||||
|  |  | ||||||
|   DEST=/tmp/esp-${arch}.img | dd bs=1024 count=6400 if=/dev/zero of=$DEST | ||||||
|  | mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST | ||||||
|   dd bs=1024 count=6400 if=/dev/zero of=$DEST |  | ||||||
|   mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST |  | ||||||
|  |  | ||||||
|   mmd -i $DEST EFI |  | ||||||
|   mmd -i $DEST EFI/BOOT |  | ||||||
|  |  | ||||||
|   mcopy -i $DEST -v /usr/share/efi/${arch}/shim.efi ::EFI/BOOT/BOOT${efi_arch[$arch]}.EFI |  | ||||||
|   mcopy -i $DEST -v /usr/share/efi/${arch}/grub.efi ::EFI/BOOT/GRUB.EFI |  | ||||||
|  |  | ||||||
|   mdir -i $DEST ::EFI/BOOT; |  | ||||||
| done |  | ||||||
|  |  | ||||||
|  | mkdir -p /boot/efi/EFI/BOOT | ||||||
|  | mkdir -p /boot/efi/EFI/$OS | ||||||
|  | if [ $ARCH = "aarch64" ]; then | ||||||
|  |   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/BOOT | ||||||
|  | mcopy -i $DEST -v /boot/efi/EFI/BOOT/$BOOTEFI ::EFI/BOOT | ||||||
|  | if [ $ARCH = "aarch64" ]; then | ||||||
|  |   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; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -39,7 +39,7 @@ export INSPECTOR_EXTRA_ARGS | |||||||
|  |  | ||||||
| # Copy files to shared mount | # Copy files to shared mount | ||||||
| render_j2_config /tmp/inspector.ipxe.j2 /shared/html/inspector.ipxe | render_j2_config /tmp/inspector.ipxe.j2 /shared/html/inspector.ipxe | ||||||
| cp /tmp/uefi_esp*.img /shared/html/ | cp /tmp/uefi_esp.img /shared/html/uefi_esp.img | ||||||
|  |  | ||||||
| # Render the core httpd config | # Render the core httpd config | ||||||
| render_j2_config /etc/httpd/conf/httpd.conf.j2 /etc/httpd/conf/httpd.conf | render_j2_config /etc/httpd/conf/httpd.conf.j2 /etc/httpd/conf/httpd.conf | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # SPDX-License-Identifier: Apache-2.0 | # SPDX-License-Identifier: Apache-2.0 | ||||||
| #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3 | #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1 | ||||||
| #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3-%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,8 +8,15 @@ 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 ironic-ipa-ramdisk-aarch64 tar gawk curl xz zstd shadow cpio findutils | #!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 cp /usr/bin/getopt /installroot/ | RUN cp /usr/bin/getopt /installroot/ | ||||||
|  |  | ||||||
| FROM micro AS final | FROM micro AS final | ||||||
| @@ -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.3" | 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.3-%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" | ||||||
| @@ -34,9 +41,8 @@ LABEL com.suse.release-stage="released" | |||||||
|  |  | ||||||
| COPY --from=base /installroot / | COPY --from=base /installroot / | ||||||
| RUN cp /getopt /usr/bin/ | RUN cp /getopt /usr/bin/ | ||||||
| RUN cp /srv/tftpboot/openstack-ironic-image/initrd*.zst /tmp | RUN cp /srv/tftpboot/openstack-ironic-image/initrd.xz /tmp | ||||||
| RUN cp /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel /tmp | RUN cp /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel /tmp | ||||||
| RUN sha256sum /srv/tftpboot/openstack-ironic-image/initrd*.zst /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel > /tmp/images.sha256 |  | ||||||
| # configure non-root user | # configure non-root user | ||||||
| COPY configure-nonroot.sh /bin/ | COPY configure-nonroot.sh /bin/ | ||||||
| RUN set -euo pipefail; chmod +x /bin/configure-nonroot.sh | RUN set -euo pipefail; chmod +x /bin/configure-nonroot.sh | ||||||
|   | |||||||
| @@ -6,33 +6,12 @@ export http_proxy=${http_proxy:-$HTTP_PROXY} | |||||||
| export https_proxy=${https_proxy:-$HTTPS_PROXY} | export https_proxy=${https_proxy:-$HTTPS_PROXY} | ||||||
| export no_proxy=${no_proxy:-$NO_PROXY} | export no_proxy=${no_proxy:-$NO_PROXY} | ||||||
|  |  | ||||||
| if [ -d "/tmp/ironic-certificates" ]; then |  | ||||||
|   sha256sum /tmp/ironic-certificates/* > /tmp/certificates.sha256 |  | ||||||
|   if cmp "/shared/certificates.sha256" "/tmp/certificates.sha256"; then |  | ||||||
|     CERTS_CHANGED=0 |  | ||||||
|   else |  | ||||||
|     CERTS_CHANGED=1 |  | ||||||
|   fi |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Which image should we use | # Which image should we use | ||||||
| if [ -z "${IPA_BASEURI}" ]; then | if [ -z "${IPA_BASEURI}" ]; then | ||||||
|   if cmp "/shared/images.sha256" "/tmp/images.sha256"; then |   # SLES BASED IPA - ironic-ipa-ramdisk-x86_64 package | ||||||
|     if [ "${CERTS_CHANGED:-0}" = "0" ]; then |  | ||||||
|       # everything is the same exit early |  | ||||||
|       exit 0 |  | ||||||
|     fi |  | ||||||
|   fi |  | ||||||
|   IMAGE_CHANGED=1 |  | ||||||
|   # SLES BASED IPA - ironic-ipa-ramdisk-x86_64 and ironic-ipa-ramdisk-aarch64 packages |  | ||||||
|   mkdir -p /shared/html/images |   mkdir -p /shared/html/images | ||||||
|   cp /tmp/initrd-x86_64.zst /shared/html/images/ironic-python-agent-x86_64.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-x86_64.kernel |   cp /tmp/openstack-ironic-image*.kernel /shared/html/images/ironic-python-agent.kernel | ||||||
|   # Use arm64 as destination for iPXE compatibility |  | ||||||
|   cp /tmp/initrd-aarch64.zst /shared/html/images/ironic-python-agent-arm64.initramfs |  | ||||||
|   cp /tmp/openstack-ironic-image.aarch64*.kernel /shared/html/images/ironic-python-agent-arm64.kernel |  | ||||||
|  |  | ||||||
|   cp /tmp/images.sha256 /shared/images.sha256 |  | ||||||
| else | else | ||||||
|   FILENAME=ironic-python-agent |   FILENAME=ironic-python-agent | ||||||
|   FILENAME_EXT=.tar |   FILENAME_EXT=.tar | ||||||
| @@ -46,56 +25,47 @@ else | |||||||
|   # If we have a CACHEURL and nothing has yet been downloaded |   # If we have a CACHEURL and nothing has yet been downloaded | ||||||
|   # get header info from the cache |   # get header info from the cache | ||||||
|   ls -l |   ls -l | ||||||
|   if [ -n "$CACHEURL" ] && [ ! -e $FFILENAME.headers ] ; then |   if [ -n "$CACHEURL" -a ! -e $FFILENAME.headers ] ; then | ||||||
|       curl -g --verbose --fail -O "$CACHEURL/$FFILENAME.headers" || true |       curl -g --verbose --fail -O "$CACHEURL/$FFILENAME.headers" || true | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
|   # Download the most recent version of IPA |   # Download the most recent version of IPA | ||||||
|   if [ -e $FFILENAME.headers ] ; then |   if [ -e $FFILENAME.headers ] ; then | ||||||
|       ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\r") |       ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\r") | ||||||
|       cd "$TMPDIR" |       cd $TMPDIR | ||||||
|       curl -g --verbose --dump-header $FFILENAME.headers -O "$IPA_BASEURI/$FFILENAME" --header "If-None-Match: $ETAG" || cp /shared/html/images/$FFILENAME.headers . |       curl -g --verbose --dump-header $FFILENAME.headers -O $IPA_BASEURI/$FFILENAME --header "If-None-Match: $ETAG" || cp /shared/html/images/$FFILENAME.headers . | ||||||
|       # curl didn't download anything because we have the ETag already |       # curl didn't download anything because we have the ETag already | ||||||
|       # but we don't have it in the images directory |       # but we don't have it in the images directory | ||||||
|       # Its in the cache, go get it |       # Its in the cache, go get it | ||||||
|       ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r") |       ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r") | ||||||
|       if [ ! -s $FFILENAME ] && [ ! -e "/shared/html/images/$FILENAME-$ETAG/$FFILENAME" ] ; then |       if [ ! -s $FFILENAME -a ! -e /shared/html/images/$FILENAME-$ETAG/$FFILENAME ] ; then | ||||||
|           mv /shared/html/images/$FFILENAME.headers . |           mv /shared/html/images/$FFILENAME.headers . | ||||||
|           curl -g --verbose -O "$CACHEURL/$FILENAME-$ETAG/$FFILENAME" |           curl -g --verbose -O "$CACHEURL/$FILENAME-$ETAG/$FFILENAME" | ||||||
|       fi |       fi | ||||||
|   else |   else | ||||||
|       cd "$TMPDIR" |       cd $TMPDIR | ||||||
|       curl -g --verbose --dump-header $FFILENAME.headers -O "$IPA_BASEURI/$FFILENAME" |       curl -g --verbose --dump-header $FFILENAME.headers -O $IPA_BASEURI/$FFILENAME | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
|   if [ -s $FFILENAME ] ; then |   if [ -s $FFILENAME ] ; then | ||||||
|       tar -xf $FFILENAME |       tar -xf $FFILENAME | ||||||
|       xz -d -c -k --fast $FILENAME.initramfs | zstd -c > $FILENAME.initramfs.zstd |    | ||||||
|       mv $FILENAME.initramfs.zstd $FILENAME.initramfs |  | ||||||
|       ARCH=$(file -b ${FILENAME}.kernel | cut -d ' ' -f 3) |  | ||||||
|       if [ "$ARCH" = "x86" ]; then |  | ||||||
|         ARCH="x86_64" |  | ||||||
|       fi |  | ||||||
|       ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r") |       ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r") | ||||||
|       cd - |       cd - | ||||||
|       chmod 755 "$TMPDIR" |       chmod 755 $TMPDIR | ||||||
|       mv "$TMPDIR" "$FILENAME-$ETAG" |       mv $TMPDIR $FILENAME-$ETAG | ||||||
|       ln -sf "$FILENAME-$ETAG/$FFILENAME.headers" "$FFILENAME.headers" |       ln -sf $FILENAME-$ETAG/$FFILENAME.headers $FFILENAME.headers | ||||||
|       ln -sf "$FILENAME-$ETAG/$FILENAME.initramfs" "$FILENAME-${ARCH,,}.initramfs" |       ln -sf $FILENAME-$ETAG/$FILENAME.initramfs $FILENAME.initramfs | ||||||
|       ln -sf "$FILENAME-$ETAG/$FILENAME.kernel" "$FILENAME-${ARCH,,}.kernel" |       ln -sf $FILENAME-$ETAG/$FILENAME.kernel $FILENAME.kernel | ||||||
|        |  | ||||||
|       IMAGE_CHANGED=1 |  | ||||||
|   else |   else | ||||||
|       rm -rf "$TMPDIR" |       rm -rf $TMPDIR | ||||||
|   fi |   fi | ||||||
| fi | fi | ||||||
|  |  | ||||||
| if [ "${CERTS_CHANGED:-0}" = "1" ] || [ "${IMAGE_CHANGED:-0}" = "1" ]; then | if [ -d "/tmp/ironic-certificates" ]; then | ||||||
|   mkdir -p /tmp/ca/tmp-initrd && cd /tmp/ca/tmp-initrd |   mkdir -p /tmp/ca/tmp-initrd && cd /tmp/ca/tmp-initrd | ||||||
|  |   xz -d -c -k --fast /shared/html/images/ironic-python-agent.initramfs | fakeroot -s ../initrd.fakeroot cpio -i | ||||||
|   mkdir -p etc/ironic-python-agent.d/ca-certs |   mkdir -p etc/ironic-python-agent.d/ca-certs | ||||||
|   cp /tmp/ironic-certificates/* etc/ironic-python-agent.d/ca-certs/ |   cp /tmp/ironic-certificates/* etc/ironic-python-agent.d/ca-certs/ | ||||||
|   for initramfs in /shared/html/images/ironic-python-agent-*.initramfs; do |   find . | fakeroot -i ../initrd.fakeroot cpio -o -H newc | xz --check=crc32 --x86 --lzma2 --fast > /shared/html/images/ironic-python-agent.initramfs | ||||||
|     find . | cpio -o -H newc --reproducible | zstd -c >> "${initramfs}" |  | ||||||
|   done |  | ||||||
|   cp /tmp/certificates.sha256 /shared/certificates.sha256 |  | ||||||
| fi | fi | ||||||
|   | |||||||
| @@ -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"> | <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> | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| Name:           ironic-ipa-ramdisk | Name:           ironic-ipa-ramdisk | ||||||
| Version:        3.0.3 | 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 | ||||||
| @@ -148,8 +148,10 @@ TDIR=`mktemp -d /tmp/openstack-ironic-image.XXXXX` | |||||||
| cd /tmp/openstack-ironic-image/img/build/image-root  | cd /tmp/openstack-ironic-image/img/build/image-root  | ||||||
| find . | cpio --create --format=newc --quiet > $TDIR/initrdtmp | find . | cpio --create --format=newc --quiet > $TDIR/initrdtmp | ||||||
| cd $TDIR | cd $TDIR | ||||||
| zstd initrdtmp -o initrd-%{_arch}.zst | gzip -9 -f initrdtmp | ||||||
| INITRD=`ls *.zst | head -1` | INITRDGZ=`ls *.gz | head -1` | ||||||
|  | gzip -cd $INITRDGZ | xz --check=crc32 -c9 > initrd.xz | ||||||
|  | INITRD=`ls *.xz | head -1` | ||||||
|  |  | ||||||
| ls /tmp/openstack-ironic-image/img/openstack-ironic-image* | ls /tmp/openstack-ironic-image/img/openstack-ironic-image* | ||||||
| KERNEL=`ls /tmp/openstack-ironic-image/img/openstack-ironic-image*default*kernel | head -1` | KERNEL=`ls /tmp/openstack-ironic-image/img/openstack-ironic-image*default*kernel | head -1` | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								ironic-ipa-ramdisk/root.tar.bz2
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ironic-ipa-ramdisk/root.tar.bz2
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,12 +1,12 @@ | |||||||
| #!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.0-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1-%RELEASE% | ||||||
| #!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.0 | #!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1 | ||||||
|  |  | ||||||
| ARG KIWIVERSION="10.2.12" | ARG KIWIVERSION="10.2.12" | ||||||
| FROM registry.suse.com/bci/kiwi:${KIWIVERSION} | FROM registry.suse.com/bci/kiwi:${KIWIVERSION} | ||||||
| ARG 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.kiwi | # 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." | ||||||
| @@ -14,7 +14,7 @@ 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:%%kiwi_version%%.0-%RELEASE%" | 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" | ||||||
| @@ -35,4 +35,3 @@ RUN mkdir -p /micro-sdk/defs | |||||||
| ADD SL-Micro.kiwi /micro-sdk/defs | ADD SL-Micro.kiwi /micro-sdk/defs | ||||||
| ADD SL-Micro.kiwi.4096 /micro-sdk/defs | ADD SL-Micro.kiwi.4096 /micro-sdk/defs | ||||||
| ADD config.sh /micro-sdk/defs | ADD config.sh /micro-sdk/defs | ||||||
| ADD editbootinstall_rpi.sh /micro-sdk/defs |  | ||||||
|   | |||||||
| @@ -2,13 +2,13 @@ | |||||||
| Kiwi SDK Image Instructions | Kiwi SDK Image Instructions | ||||||
| ########################### | ########################### | ||||||
|  |  | ||||||
| Please ensure that you're running this on a registered SUSE Linux Micro 6.1 system, and make sure that SELinux is disabled: | Please ensure that you're running this on a registered SLE Micro 6.0 system, and make sure that SELinux is disabled: | ||||||
|  |  | ||||||
| # setenforce 0 | # setenforce 0 | ||||||
|  |  | ||||||
| Next, download the podman image: | Next, download the podman image: | ||||||
|  |  | ||||||
| # podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 | # 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): | ||||||
|  |  | ||||||
| @@ -16,40 +16,40 @@ Make a local output directory (where the images will reside): | |||||||
|  |  | ||||||
| Then, to build a standard "Base" image, run the following in podman: | Then, to build a standard "Base" image, run the following in podman: | ||||||
|  |  | ||||||
| # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 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 | ||||||
|  |  | ||||||
| To build a "Base" SelfInstall ISO, you can add additional flags, for example: | To build a "Base" SelfInstall ISO, you can add additional flags, for example: | ||||||
|  |  | ||||||
| # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 build-image -p Base-SelfInstall | # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%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:%%kiwi_version%%.0 build-image -p Default | # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Default | ||||||
|  |  | ||||||
| To build a "Default" SelfInstall ISO, you can add additional flags, for example: | To build a "Default" SelfInstall ISO, you can add additional flags, for example: | ||||||
|  |  | ||||||
| # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 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:%%kiwi_version%%.0 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:%%kiwi_version%%.0 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:%%kiwi_version%%.0 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/ | ||||||
| SL-Micro.x86_64-6.1.changes | SL-Micro.x86_64-6.0.changes | ||||||
| SL-Micro.x86_64-6.1.packages | SL-Micro.x86_64-6.0.packages | ||||||
| SL-Micro.x86_64-6.1.raw | SL-Micro.x86_64-6.0.raw | ||||||
| SL-Micro.x86_64-6.1.verified | SL-Micro.x86_64-6.0.verified | ||||||
| build | build | ||||||
| kiwi.result | kiwi.result | ||||||
| kiwi.result.json | kiwi.result.json | ||||||
|   | |||||||
| @@ -30,21 +30,9 @@ | |||||||
|         <profile name="x86-self_install" description="Raw disk for x86_64 - uEFI" arch="x86_64"> |         <profile name="x86-self_install" description="Raw disk for x86_64 - uEFI" arch="x86_64"> | ||||||
|             <requires profile="bootloader"/> |             <requires profile="bootloader"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="aarch64" description="Raw disk for aarch64 - uEFI" arch="aarch64"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64"> |         <profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64"> | ||||||
|             <requires profile="bootloader"/> |             <requires profile="bootloader"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="aarch64-rt" description="Raw disk for aarch64 with RT kernel" arch="aarch64"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="aarch64-rt-rpi" description="Raw disk for aarch64 with RT kernel on Raspberry Pi" arch="aarch64"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="aarch64-rt-self_install" description="Raw disk for aarch64 with RT kernel" arch="aarch64"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64"> |         <profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64"> | ||||||
|             <requires profile="bootloader"/> |             <requires profile="bootloader"/> | ||||||
|         </profile> |         </profile> | ||||||
| @@ -75,21 +63,6 @@ | |||||||
|         <profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x"> |         <profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x"> | ||||||
|             <requires profile="bootloader"/> |             <requires profile="bootloader"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="s390-fcp" description="Raw disk for s390 - SCSI" arch="s390x"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="ppc64le-512ss" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="ppc64le-4096ss" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="ppc64le-512ss-self_install" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="ppc64le-4096ss-self_install" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <!-- Images (flavor + platform) --> |         <!-- Images (flavor + platform) --> | ||||||
|         <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64"> |         <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64"> | ||||||
|             <requires profile="full"/> |             <requires profile="full"/> | ||||||
| @@ -151,18 +124,10 @@ | |||||||
|             <requires profile="self_install"/> |             <requires profile="self_install"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="aarch64"> |         <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="aarch64"> | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="aarch64"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Default-RPi" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="aarch64"> |  | ||||||
|             <requires profile="full"/> |             <requires profile="full"/> | ||||||
|             <requires profile="rpi"/> |             <requires profile="rpi"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="Base" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> |         <profile name="Base" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="aarch64"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Base-RPi" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> |  | ||||||
|             <requires profile="container-host"/> |             <requires profile="container-host"/> | ||||||
|             <requires profile="rpi"/> |             <requires profile="rpi"/> | ||||||
|         </profile> |         </profile> | ||||||
| @@ -175,19 +140,6 @@ | |||||||
|             <requires profile="x86-rt-self_install"/> |             <requires profile="x86-rt-self_install"/> | ||||||
|             <requires profile="self_install"/> |             <requires profile="self_install"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="Base-RT" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="aarch64-rt"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Base-RT-RPi" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="aarch64-rt-rpi"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Base-RT-SelfInstall" description="SL Micro with Podman as raw image with uEFI boot - SelfInstall" arch="aarch64"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="aarch64-rt-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x"> |         <profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x"> | ||||||
|             <requires profile="full"/> |             <requires profile="full"/> | ||||||
|             <requires profile="s390-kvm"/> |             <requires profile="s390-kvm"/> | ||||||
| @@ -212,14 +164,6 @@ | |||||||
|             <requires profile="container-host"/> |             <requires profile="container-host"/> | ||||||
|             <requires profile="s390-fba"/> |             <requires profile="s390-fba"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="Default-fcp" description="SL Micro with Podman and KVM as raw image for zFCP on System z" arch="s390x"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="s390-fcp"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Base-fcp" description="SL Micro with Podman as raw image for zFCP on System z" arch="s390x"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="s390-fcp"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64"> |         <profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64"> | ||||||
|             <requires profile="full"/> |             <requires profile="full"/> | ||||||
|             <requires profile="x86-legacy"/> |             <requires profile="x86-legacy"/> | ||||||
| @@ -240,47 +184,10 @@ | |||||||
| 	    <requires profile="container-host"/> | 	    <requires profile="container-host"/> | ||||||
| 	    <requires profile="aarch64-qcow"/> | 	    <requires profile="aarch64-qcow"/> | ||||||
|         </profile> |         </profile> | ||||||
|  |  | ||||||
| 	<profile name="Base-512" description="SL Micro with Podman as raw image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="ppc64le-512ss"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Base-4096" description="SL Micro with Podman as raw image for ppc64le with 4096b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="ppc64le-4096ss"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Base-512-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="ppc64le-512ss-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Base-4096-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="ppc64le-4096ss-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Default-512" description="SL Micro with Podman and KVM as raw image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="ppc64le-512ss"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Default-4096" description="SL Micro with Podman and KVM as raw image for ppc64le with 4096b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="ppc64le-4096ss"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Default-512-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="ppc64le-512ss-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Default-4096-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="ppc64le-4096ss-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
|     </profiles> |     </profiles> | ||||||
|  |  | ||||||
|     <preferences profiles="x86-encrypted,x86-rt-encrypted"> |     <preferences profiles="x86-encrypted,x86-rt-encrypted"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -291,7 +198,7 @@ | |||||||
|             initrd_system="dracut" |             initrd_system="dracut" | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -304,7 +211,7 @@ | |||||||
| 	    luks_pbkdf="pbkdf2" | 	    luks_pbkdf="pbkdf2" | ||||||
|         > |         > | ||||||
|             <luksformat> |             <luksformat> | ||||||
|                 <option name="--cipher" value="aes-xts-plain64"/> |                 <option name="--cipher" value="aes"/> | ||||||
|             </luksformat> |             </luksformat> | ||||||
|             <bootloader name="grub2" console="gfxterm" use_disk_password="true" /> |             <bootloader name="grub2" console="gfxterm" use_disk_password="true" /> | ||||||
|             <systemdisk> |             <systemdisk> | ||||||
| @@ -323,7 +230,7 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|     <preferences profiles="x86,x86-rt"> |     <preferences profiles="x86,x86-rt"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -334,7 +241,7 @@ | |||||||
|             initrd_system="dracut" |             initrd_system="dracut" | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -359,7 +266,7 @@ | |||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="x86-self_install,x86-rt-self_install"> |     <preferences profiles="x86-self_install,x86-rt-self_install"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -369,12 +276,11 @@ | |||||||
|             image="oem" |             image="oem" | ||||||
|             initrd_system="dracut" |             initrd_system="dracut" | ||||||
|             installiso="true" |             installiso="true" | ||||||
|             installpxe="true" |  | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             installboot="install" |             installboot="install" | ||||||
|             install_continue_on_timeout="false" |             install_continue_on_timeout="false" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -398,8 +304,8 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="rpi,aarch64-rt-rpi"> |     <preferences profiles="rpi"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -414,7 +320,7 @@ | |||||||
|             install_continue_on_timeout="false" |             install_continue_on_timeout="false" | ||||||
|             fsmountoptions="noatime" |             fsmountoptions="noatime" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |             kernelcmdline="console=ttyS0,115200n8 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
|             btrfs_root_is_snapshot="true" |             btrfs_root_is_snapshot="true" | ||||||
| @@ -438,9 +344,8 @@ | |||||||
|             </systemdisk> |             </systemdisk> | ||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|  |     <preferences profiles="aarch64-self_install"> | ||||||
|     <preferences profiles="aarch64,aarch64-rt"> |         <version>6.0</version> | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -453,49 +358,9 @@ | |||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             installboot="install" |             installboot="install" | ||||||
|             install_continue_on_timeout="false" |             install_continue_on_timeout="false" | ||||||
|             fsmountoptions="noatime" |  | ||||||
|             firmware="uefi" |  | ||||||
|             kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |  | ||||||
|             bootpartition="false" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             efipartsize="128" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="false" |  | ||||||
|             disk_start_sector="4096" |  | ||||||
|         > |  | ||||||
|             <bootloader name="grub2" console="gfxterm" timeout="3" /> |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
|                 <!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
|                 <volume name="usr/local"/> |  | ||||||
|                 <volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|     <preferences profiles="aarch64-self_install,aarch64-rt-self_install"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             initrd_system="dracut" |  | ||||||
|             installiso="true" |  | ||||||
|             installpxe="true" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             installboot="install" |  | ||||||
|             install_continue_on_timeout="false" |  | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             efipartsize="128"      |             efipartsize="128"      | ||||||
|             kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" | 	    kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -520,22 +385,22 @@ | |||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="s390-kvm"> |     <preferences profiles="s390-kvm"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |         <rpm-excludedocs>true</rpm-excludedocs> | ||||||
|         <locale>en_US</locale> |         <locale>en_US</locale> | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |         <type | ||||||
|             image="oem" |             image="oem" | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             bootpartition="true" |             bootpartition="true" | ||||||
|             bootpartsize="300" |             bootpartsize="300" | ||||||
|             bootfilesystem="ext4" |             bootfilesystem="ext2" | ||||||
|         initrd_system="dracut" |         initrd_system="dracut" | ||||||
|         format="qcow2" |         format="qcow2" | ||||||
|             kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 ignition.platform.id=metal" |             kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" | ||||||
|         devicepersistency="by-uuid" |         devicepersistency="by-uuid" | ||||||
|             btrfs_root_is_snapshot="true" |             btrfs_root_is_snapshot="true" | ||||||
|             btrfs_root_is_readonly_snapshot="true" |             btrfs_root_is_readonly_snapshot="true" | ||||||
| @@ -558,7 +423,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|     <preferences profiles="s390-dasd"> |     <preferences profiles="s390-dasd"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -569,9 +434,9 @@ | |||||||
|           filesystem="btrfs" |           filesystem="btrfs" | ||||||
|           bootpartition="true" |           bootpartition="true" | ||||||
|           bootpartsize="300" |           bootpartsize="300" | ||||||
|           bootfilesystem="ext4" |           bootfilesystem="ext2" | ||||||
|           initrd_system="dracut" |           initrd_system="dracut" | ||||||
|           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" |           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" | ||||||
|           devicepersistency="by-uuid" |           devicepersistency="by-uuid" | ||||||
|           target_blocksize="4096" |           target_blocksize="4096" | ||||||
|           btrfs_root_is_snapshot="true" |           btrfs_root_is_snapshot="true" | ||||||
| @@ -596,7 +461,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|     <preferences profiles="s390-fba"> |     <preferences profiles="s390-fba"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -607,9 +472,9 @@ | |||||||
|           filesystem="btrfs" |           filesystem="btrfs" | ||||||
|           bootpartition="true" |           bootpartition="true" | ||||||
|           bootpartsize="300" |           bootpartsize="300" | ||||||
|           bootfilesystem="ext4" |           bootfilesystem="ext2" | ||||||
|           initrd_system="dracut" |           initrd_system="dracut" | ||||||
|           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" |           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" | ||||||
|           devicepersistency="by-uuid" |           devicepersistency="by-uuid" | ||||||
|           btrfs_root_is_snapshot="true" |           btrfs_root_is_snapshot="true" | ||||||
|           btrfs_root_is_readonly_snapshot="true" |           btrfs_root_is_readonly_snapshot="true" | ||||||
| @@ -630,47 +495,9 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="s390-fcp"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <type |  | ||||||
|           image="oem" |  | ||||||
|           filesystem="btrfs" |  | ||||||
|           installpxe="true" |  | ||||||
|           bootpartition="true" |  | ||||||
|           bootpartsize="300" |  | ||||||
|           bootfilesystem="ext4" |  | ||||||
|           initrd_system="dracut" |  | ||||||
|           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" |  | ||||||
|           devicepersistency="by-uuid" |  | ||||||
|           btrfs_root_is_snapshot="true" |  | ||||||
|           btrfs_root_is_readonly_snapshot="true" |  | ||||||
|           btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <oemconfig> |  | ||||||
|                 <oem-multipath-scan>true</oem-multipath-scan> |  | ||||||
|             </oemconfig> |  | ||||||
|             <bootloader name="grub2_s390x_emu" console="serial" timeout="3" targettype="SCSI"/> |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/s390x-emu" mountpoint="boot/grub2/s390x-emu"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
|                 <volume name="usr/local"/> |  | ||||||
|                 <volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|             <size unit="G">5</size> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|  |  | ||||||
|     <preferences profiles="x86-vmware"> |     <preferences profiles="x86-vmware"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -705,7 +532,7 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|     <preferences profiles="x86-qcow"> |     <preferences profiles="x86-qcow"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -716,7 +543,7 @@ | |||||||
|             format="qcow2" |             format="qcow2" | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -742,7 +569,7 @@ | |||||||
|     </preferences> |     </preferences> | ||||||
|   |   | ||||||
|     <preferences profiles="aarch64-qcow"> |     <preferences profiles="aarch64-qcow"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -754,7 +581,7 @@ | |||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             efipartsize="128"      |             efipartsize="128"      | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -765,7 +592,7 @@ | |||||||
|             <systemdisk> |             <systemdisk> | ||||||
|                 <volume name="home"/> |                 <volume name="home"/> | ||||||
|                 <volume name="root"/> |                 <volume name="root"/> | ||||||
|                 <volume name="opt"/> |  		<volume name="opt"/> | ||||||
|                 <volume name="srv"/> |                 <volume name="srv"/> | ||||||
|                 <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> |                 <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> | ||||||
|                 <volume name="boot/writable"/> |                 <volume name="boot/writable"/> | ||||||
| @@ -776,161 +603,6 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="ppc64le-512ss"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             firmware="ofw" |  | ||||||
|             kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal" |  | ||||||
|             bootpartition="false" |  | ||||||
|             bootkernel="custom" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
| 		<!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/powerpc-ieee1275"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
| 		<volume name="usr/local"/> |  | ||||||
| 		<volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|     <preferences profiles="ppc64le-4096ss"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching |  | ||||||
|              disk_start_sector="256" --> |  | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             target_blocksize="4096" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             firmware="ofw" |  | ||||||
|             kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal" |  | ||||||
|             bootpartition="false" |  | ||||||
|             bootkernel="custom" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
| 		<!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/powerpc-ieee1275"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
| 		<volume name="usr/local"/> |  | ||||||
| 		<volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|  |  | ||||||
|     <preferences profiles="ppc64le-512ss-self_install"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             installiso="true" |  | ||||||
|             installpxe="true" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             firmware="ofw" |  | ||||||
|             kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=metal" |  | ||||||
|             bootpartition="false" |  | ||||||
|             bootkernel="custom" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <installmedia> |  | ||||||
|                 <initrd action="omit"> |  | ||||||
|                     <dracut module="drm"/> |  | ||||||
|                 </initrd> |  | ||||||
|             </installmedia> |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
| 		<!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/powerpc-ieee1275"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
| 		<volume name="usr/local"/> |  | ||||||
| 		<volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|     <preferences profiles="ppc64le-4096ss-self_install"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching |  | ||||||
|              disk_start_sector="256" --> |  | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             installiso="true" |  | ||||||
|             installpxe="true" |  | ||||||
|             target_blocksize="4096" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             firmware="ofw" |  | ||||||
|             kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal" |  | ||||||
|             bootpartition="false" |  | ||||||
|             bootkernel="custom" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <installmedia> |  | ||||||
|                 <initrd action="omit"> |  | ||||||
|                     <dracut module="drm"/> |  | ||||||
|                 </initrd> |  | ||||||
|             </installmedia> |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
| 		<!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/powerpc-ieee1275"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
| 		<volume name="usr/local"/> |  | ||||||
| 		<volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|  |  | ||||||
|  |  | ||||||
|    <repository type="rpm-md" > |    <repository type="rpm-md" > | ||||||
|         <source path='obsrepositories:/'/> |         <source path='obsrepositories:/'/> | ||||||
|     </repository> |     </repository> | ||||||
| @@ -949,7 +621,6 @@ | |||||||
|         <package name="patterns-base-cockpit"/> |         <package name="patterns-base-cockpit"/> | ||||||
|         <namedCollection name="selinux"/> |         <namedCollection name="selinux"/> | ||||||
|         <package name="patterns-base-selinux"/> |         <package name="patterns-base-selinux"/> | ||||||
|         <package name="policycoreutils-python-utils"/> |  | ||||||
|         <package name="suseconnect-ng"/> |         <package name="suseconnect-ng"/> | ||||||
|         <package name="SL-Micro-release"/> |         <package name="SL-Micro-release"/> | ||||||
|         <package name="grub2-branding-SLE" arch="x86_64,aarch64"/> |         <package name="grub2-branding-SLE" arch="x86_64,aarch64"/> | ||||||
| @@ -957,6 +628,7 @@ | |||||||
|         <package name="firewalld"/> |         <package name="firewalld"/> | ||||||
|         <package name="wpa_supplicant" arch="x86_64,aarch64"/> |         <package name="wpa_supplicant" arch="x86_64,aarch64"/> | ||||||
| 	<package name="libpwquality-tools"/> | 	<package name="libpwquality-tools"/> | ||||||
|  |         <!-- <package name="k3s-install"/> --> | ||||||
|     </packages> |     </packages> | ||||||
|  |  | ||||||
|     <packages type="image" profiles="x86-encrypted,x86-rt-encrypted"> |     <packages type="image" profiles="x86-encrypted,x86-rt-encrypted"> | ||||||
| @@ -976,9 +648,10 @@ | |||||||
|         <package name="patterns-base-transactional"/> |         <package name="patterns-base-transactional"/> | ||||||
|         <namedCollection name="container_runtime_podman"/> |         <namedCollection name="container_runtime_podman"/> | ||||||
|         <package name="patterns-container-runtime_podman"/>  |         <package name="patterns-container-runtime_podman"/>  | ||||||
|  |         <namedCollection name="cockpit"/> | ||||||
|  |         <package name="patterns-base-cockpit"/> | ||||||
|         <namedCollection name="selinux"/> |         <namedCollection name="selinux"/> | ||||||
|         <package name="patterns-base-selinux"/> |         <package name="patterns-base-selinux"/> | ||||||
|         <package name="policycoreutils-python-utils"/> |  | ||||||
|         <package name="suseconnect-ng"/> |         <package name="suseconnect-ng"/> | ||||||
|         <package name="SL-Micro-release"/> |         <package name="SL-Micro-release"/> | ||||||
|         <package name="grub2-branding-SLE" arch="x86_64,aarch64"/> |         <package name="grub2-branding-SLE" arch="x86_64,aarch64"/> | ||||||
| @@ -1040,8 +713,7 @@ | |||||||
|         <package name="grub2-x86_64-efi" arch="x86_64"/> |         <package name="grub2-x86_64-efi" arch="x86_64"/> | ||||||
|         <package name="grub2-arm64-efi" arch="aarch64"/> |         <package name="grub2-arm64-efi" arch="aarch64"/> | ||||||
|         <package name="grub2-s390x-emu" arch="s390x"/> |         <package name="grub2-s390x-emu" arch="s390x"/> | ||||||
|         <package name="grub2-powerpc-ieee1275" arch="ppc64le"/> |         <package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64"/> | ||||||
|         <package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64,ppc64le"/> |  | ||||||
|         <package name="grub2-snapper-plugin"/> |         <package name="grub2-snapper-plugin"/> | ||||||
|         <package name="shim" arch="x86_64,aarch64"/> |         <package name="shim" arch="x86_64,aarch64"/> | ||||||
| 	<package name="mokutil" arch="x86_64,aarch64"/> | 	<package name="mokutil" arch="x86_64,aarch64"/> | ||||||
| @@ -1049,46 +721,46 @@ | |||||||
| 	    <package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead --> | 	    <package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead --> | ||||||
|     </packages> |     </packages> | ||||||
|     <!-- rpi kernel-default-base does not provide all necessary drivers --> |     <!-- rpi kernel-default-base does not provide all necessary drivers --> | ||||||
|     <packages type="image" profiles="rpi,aarch64-self_install,x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64,aarch64-qcow,s390-kvm,s390-dasd,s390-fba,s390-fcp,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install"> |     <packages type="image" profiles="x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba"> | ||||||
|         <package name="kernel-default"/> |         <package name="kernel-default"/> | ||||||
|         <package name="kernel-firmware-all"/> |         <package name="kernel-firmware-all"/> | ||||||
|     </packages> |     </packages> | ||||||
|     <packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted,aarch64-rt,aarch64-rt-rpi,aarch64-rt-self_install"> |     <packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted"> | ||||||
|         <package name="kernel-rt"/> |         <package name="kernel-rt"/> | ||||||
|         <package name="kernel-firmware-all"/> | 	<package name="kernel-firmware-all"/> | ||||||
| 	<!-- FIXME intentionally removed from ALP code stream  | 	<!-- FIXME intentionally removed from ALP code stream  | ||||||
|         <package name="cpuset"/> --> | 	<package name="cpuset"/> --> | ||||||
|     </packages> |     </packages> | ||||||
|     <packages type="image" profiles="s390-kvm,s390-dasd,s390-fba,s390-fcp"> |     <!-- makes the image build, but also include kernel-default | ||||||
|         <package name="dracut-kiwi-oem-dump"/> |     <packages type="image" profiles="x86-rt-encrypted"> | ||||||
|  |         <package name="kernel-default-extra"/> | ||||||
|  |     </packages> --> | ||||||
|  |     <packages type="image" profiles="s390-kvm,s390-dasd,s390-fba"> | ||||||
|         <package name="dracut-kiwi-oem-repart"/> |         <package name="dracut-kiwi-oem-repart"/> | ||||||
|         <package name="blog"/> |         <package name="blog"/> | ||||||
|     </packages> |     </packages> | ||||||
|     <!-- FCP is usually used multipathed. --> |     <packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install"> | ||||||
|     <packages type="image" profiles="s390-fcp"> |  | ||||||
|         <package name="multipath-tools"/> |  | ||||||
|     </packages> |  | ||||||
|     <packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64,aarch64-qcow,rpi,aarch64-self_install,aarch64-rt,aarch64-rt-rpi,aarch64-rt-self_install,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install"> |  | ||||||
|         <package name="dracut-kiwi-oem-repart"/> |         <package name="dracut-kiwi-oem-repart"/> | ||||||
|         <package name="dracut-kiwi-oem-dump"/> |         <package name="dracut-kiwi-oem-dump"/> | ||||||
|     </packages> |     </packages> | ||||||
|     <packages type="image" profiles="rpi,aarch64-self_install,aarch64-rt,aarch64-rt-rpi,aarch64-rt-self_install"> |     <packages type="image" profiles="rpi,aarch64-self_install"> | ||||||
|         <package name="raspberrypi-firmware" arch="aarch64"/> |         <package name="raspberrypi-firmware" arch="aarch64"/> | ||||||
|         <package name="raspberrypi-firmware-config" arch="aarch64"/> |         <package name="raspberrypi-firmware-config" arch="aarch64"/> | ||||||
|         <package name="raspberrypi-firmware-dt" arch="aarch64"/> |         <package name="raspberrypi-firmware-dt" arch="aarch64"/> | ||||||
|         <package name="u-boot-rpiarm64" arch="aarch64"/> |         <package name="u-boot-rpiarm64" arch="aarch64"/> | ||||||
|     </packages> |  | ||||||
|     <packages type="image" profiles="rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install"> |  | ||||||
|         <package name="dracut-kiwi-oem-repart"/> |         <package name="dracut-kiwi-oem-repart"/> | ||||||
|         <package name="bcm43xx-firmware"/> |         <package name="bcm43xx-firmware"/> | ||||||
|  |         <package name="kernel-firmware-all"/><!-- Fix choice between kernel-firmware and kernel-firmware-all --> | ||||||
|         <package name="wireless-regdb"/> |         <package name="wireless-regdb"/> | ||||||
|         <package name="wireless-tools"/> |         <package name="wireless-tools"/> | ||||||
|         <package name="wpa_supplicant"/> |         <package name="wpa_supplicant"/> | ||||||
|         <package name="grub2-arm64-efi"/> |         <package name="grub2-arm64-efi"/> | ||||||
|  |         <!-- kernel-default-base does not have all required drivers --> | ||||||
|  |         <package name="kernel-default"/> | ||||||
|     </packages> |     </packages> | ||||||
|     <packages type="bootstrap"> |     <packages type="bootstrap"> | ||||||
|         <package name="filesystem"/> |  | ||||||
|         <package name="coreutils"/> |         <package name="coreutils"/> | ||||||
|  |         <package name="filesystem"/> | ||||||
|         <package name="ca-certificates"/> |         <package name="ca-certificates"/> | ||||||
|         <package name="ca-certificates-mozilla"/> |         <package name="ca-certificates-mozilla"/> | ||||||
|     </packages> |     </packages> | ||||||
| @@ -1102,14 +774,4 @@ | |||||||
|     <packages type="image" profiles="x86-qcow,aarch64-qcow"> |     <packages type="image" profiles="x86-qcow,aarch64-qcow"> | ||||||
|         <package name="qemu-guest-agent"/> |         <package name="qemu-guest-agent"/> | ||||||
|     </packages> |     </packages> | ||||||
|  |  | ||||||
|     <!-- jsc#PED-8599 --> |  | ||||||
|     <packages type="image" profiles="Base,Base-encrypted,Base-RT,Base-RT-encrypted,Base-fba,Base-dasd,Base-fcp,Base-512,Base-4096,Default,Default-encrypted,Default-fba,Default-dasd,Default-fcp,Default-512,Default-4096"> |  | ||||||
|         <package name="usbguard"/> |  | ||||||
|     </packages> |  | ||||||
|  |  | ||||||
|     <!-- jsc#PED-8788 --> |  | ||||||
|     <packages type="image" profiles="Base-RT,Base-RT-encrypted,x86-rt-encrypted,x86-rt,x86-rt-self_install,aarch64-rt,aarch64-rt-self_install"> |  | ||||||
|         <package name="stalld"/> |  | ||||||
|     </packages> |  | ||||||
| </image> | </image> | ||||||
|   | |||||||
| @@ -30,21 +30,9 @@ | |||||||
|         <profile name="x86-self_install" description="Raw disk for x86_64 - uEFI" arch="x86_64"> |         <profile name="x86-self_install" description="Raw disk for x86_64 - uEFI" arch="x86_64"> | ||||||
|             <requires profile="bootloader"/> |             <requires profile="bootloader"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="aarch64" description="Raw disk for aarch64 - uEFI" arch="aarch64"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64"> |         <profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64"> | ||||||
|             <requires profile="bootloader"/> |             <requires profile="bootloader"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="aarch64-rt" description="Raw disk for aarch64 with RT kernel" arch="aarch64"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="aarch64-rt-rpi" description="Raw disk for aarch64 with RT kernel on Raspberry Pi" arch="aarch64"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="aarch64-rt-self_install" description="Raw disk for aarch64 with RT kernel" arch="aarch64"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64"> |         <profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64"> | ||||||
|             <requires profile="bootloader"/> |             <requires profile="bootloader"/> | ||||||
|         </profile> |         </profile> | ||||||
| @@ -75,21 +63,6 @@ | |||||||
|         <profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x"> |         <profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x"> | ||||||
|             <requires profile="bootloader"/> |             <requires profile="bootloader"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="s390-fcp" description="Raw disk for s390 - SCSI" arch="s390x"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="ppc64le-512ss" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="ppc64le-4096ss" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="ppc64le-512ss-self_install" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="ppc64le-4096ss-self_install" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="bootloader"/> |  | ||||||
|         </profile> |  | ||||||
|         <!-- Images (flavor + platform) --> |         <!-- Images (flavor + platform) --> | ||||||
|         <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64"> |         <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64"> | ||||||
|             <requires profile="full"/> |             <requires profile="full"/> | ||||||
| @@ -151,18 +124,10 @@ | |||||||
|             <requires profile="self_install"/> |             <requires profile="self_install"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="aarch64"> |         <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="aarch64"> | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="aarch64"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Default-RPi" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="aarch64"> |  | ||||||
|             <requires profile="full"/> |             <requires profile="full"/> | ||||||
|             <requires profile="rpi"/> |             <requires profile="rpi"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="Base" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> |         <profile name="Base" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="aarch64"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Base-RPi" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> |  | ||||||
|             <requires profile="container-host"/> |             <requires profile="container-host"/> | ||||||
|             <requires profile="rpi"/> |             <requires profile="rpi"/> | ||||||
|         </profile> |         </profile> | ||||||
| @@ -175,19 +140,6 @@ | |||||||
|             <requires profile="x86-rt-self_install"/> |             <requires profile="x86-rt-self_install"/> | ||||||
|             <requires profile="self_install"/> |             <requires profile="self_install"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="Base-RT" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="aarch64-rt"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Base-RT-RPi" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="aarch64-rt-rpi"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Base-RT-SelfInstall" description="SL Micro with Podman as raw image with uEFI boot - SelfInstall" arch="aarch64"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="aarch64-rt-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x"> |         <profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x"> | ||||||
|             <requires profile="full"/> |             <requires profile="full"/> | ||||||
|             <requires profile="s390-kvm"/> |             <requires profile="s390-kvm"/> | ||||||
| @@ -212,14 +164,6 @@ | |||||||
|             <requires profile="container-host"/> |             <requires profile="container-host"/> | ||||||
|             <requires profile="s390-fba"/> |             <requires profile="s390-fba"/> | ||||||
|         </profile> |         </profile> | ||||||
|         <profile name="Default-fcp" description="SL Micro with Podman and KVM as raw image for zFCP on System z" arch="s390x"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="s390-fcp"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Base-fcp" description="SL Micro with Podman as raw image for zFCP on System z" arch="s390x"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="s390-fcp"/> |  | ||||||
|         </profile> |  | ||||||
|         <profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64"> |         <profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64"> | ||||||
|             <requires profile="full"/> |             <requires profile="full"/> | ||||||
|             <requires profile="x86-legacy"/> |             <requires profile="x86-legacy"/> | ||||||
| @@ -240,47 +184,10 @@ | |||||||
| 	    <requires profile="container-host"/> | 	    <requires profile="container-host"/> | ||||||
| 	    <requires profile="aarch64-qcow"/> | 	    <requires profile="aarch64-qcow"/> | ||||||
|         </profile> |         </profile> | ||||||
|  |  | ||||||
| 	<profile name="Base-512" description="SL Micro with Podman as raw image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="ppc64le-512ss"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Base-4096" description="SL Micro with Podman as raw image for ppc64le with 4096b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="ppc64le-4096ss"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Base-512-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="ppc64le-512ss-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Base-4096-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="container-host"/> |  | ||||||
|             <requires profile="ppc64le-4096ss-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Default-512" description="SL Micro with Podman and KVM as raw image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="ppc64le-512ss"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Default-4096" description="SL Micro with Podman and KVM as raw image for ppc64le with 4096b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="ppc64le-4096ss"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Default-512-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="ppc64le-512ss-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
| 	<profile name="Default-4096-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le"> |  | ||||||
|             <requires profile="full"/> |  | ||||||
|             <requires profile="ppc64le-4096ss-self_install"/> |  | ||||||
|             <requires profile="self_install"/> |  | ||||||
|         </profile> |  | ||||||
|     </profiles> |     </profiles> | ||||||
|  |  | ||||||
|     <preferences profiles="x86-encrypted,x86-rt-encrypted"> |     <preferences profiles="x86-encrypted,x86-rt-encrypted"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -291,7 +198,7 @@ | |||||||
|             initrd_system="dracut" |             initrd_system="dracut" | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -306,7 +213,7 @@ | |||||||
|             efipartsize="200" |             efipartsize="200" | ||||||
|         > |         > | ||||||
|             <luksformat> |             <luksformat> | ||||||
|                 <option name="--cipher" value="aes-xts-plain64"/> |                 <option name="--cipher" value="aes"/> | ||||||
|             </luksformat> |             </luksformat> | ||||||
|             <bootloader name="grub2" console="gfxterm" use_disk_password="true" /> |             <bootloader name="grub2" console="gfxterm" use_disk_password="true" /> | ||||||
|             <systemdisk> |             <systemdisk> | ||||||
| @@ -325,7 +232,7 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|     <preferences profiles="x86,x86-rt"> |     <preferences profiles="x86,x86-rt"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -336,7 +243,7 @@ | |||||||
|             initrd_system="dracut" |             initrd_system="dracut" | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -363,7 +270,7 @@ | |||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="x86-self_install,x86-rt-self_install"> |     <preferences profiles="x86-self_install,x86-rt-self_install"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -373,12 +280,11 @@ | |||||||
|             image="oem" |             image="oem" | ||||||
|             initrd_system="dracut" |             initrd_system="dracut" | ||||||
|             installiso="true" |             installiso="true" | ||||||
|             installpxe="true" |  | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             installboot="install" |             installboot="install" | ||||||
|             install_continue_on_timeout="false" |             install_continue_on_timeout="false" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -404,8 +310,8 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="rpi,aarch64-rt-rpi"> |     <preferences profiles="rpi"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -420,7 +326,7 @@ | |||||||
|             install_continue_on_timeout="false" |             install_continue_on_timeout="false" | ||||||
|             fsmountoptions="noatime" |             fsmountoptions="noatime" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |             kernelcmdline="console=ttyS0,115200n8 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
|             btrfs_root_is_snapshot="true" |             btrfs_root_is_snapshot="true" | ||||||
| @@ -444,9 +350,8 @@ | |||||||
|             </systemdisk> |             </systemdisk> | ||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|  |     <preferences profiles="aarch64-self_install"> | ||||||
|     <preferences profiles="aarch64,aarch64-rt"> |         <version>6.0</version> | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -459,49 +364,9 @@ | |||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             installboot="install" |             installboot="install" | ||||||
|             install_continue_on_timeout="false" |             install_continue_on_timeout="false" | ||||||
|             fsmountoptions="noatime" |  | ||||||
|             firmware="uefi" |  | ||||||
|             kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" |  | ||||||
|             bootpartition="false" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             efipartsize="128" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="false" |  | ||||||
|             disk_start_sector="4096" |  | ||||||
|         > |  | ||||||
|             <bootloader name="grub2" console="gfxterm" timeout="3" /> |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
|                 <!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
|                 <volume name="usr/local"/> |  | ||||||
|                 <volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|     <preferences profiles="aarch64-self_install,aarch64-rt-self_install"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             initrd_system="dracut" |  | ||||||
|             installiso="true" |  | ||||||
|             installpxe="true" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             installboot="install" |  | ||||||
|             install_continue_on_timeout="false" |  | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             efipartsize="128" |             efipartsize="128" | ||||||
|             kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0" | 	    kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -526,22 +391,22 @@ | |||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="s390-kvm"> |     <preferences profiles="s390-kvm"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |         <rpm-excludedocs>true</rpm-excludedocs> | ||||||
|         <locale>en_US</locale> |         <locale>en_US</locale> | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |         <type | ||||||
|             image="oem" |             image="oem" | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             bootpartition="true" |             bootpartition="true" | ||||||
|             bootpartsize="300" |             bootpartsize="300" | ||||||
|             bootfilesystem="ext4" |             bootfilesystem="ext2" | ||||||
|         initrd_system="dracut" |         initrd_system="dracut" | ||||||
|         format="qcow2" |         format="qcow2" | ||||||
|             kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 ignition.platform.id=metal" |             kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" | ||||||
|         devicepersistency="by-uuid" |         devicepersistency="by-uuid" | ||||||
|             btrfs_root_is_snapshot="true" |             btrfs_root_is_snapshot="true" | ||||||
|             btrfs_root_is_readonly_snapshot="true" |             btrfs_root_is_readonly_snapshot="true" | ||||||
| @@ -564,7 +429,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|     <preferences profiles="s390-dasd"> |     <preferences profiles="s390-dasd"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -575,9 +440,9 @@ | |||||||
|           filesystem="btrfs" |           filesystem="btrfs" | ||||||
|           bootpartition="true" |           bootpartition="true" | ||||||
|           bootpartsize="300" |           bootpartsize="300" | ||||||
|           bootfilesystem="ext4" |           bootfilesystem="ext2" | ||||||
|           initrd_system="dracut" |           initrd_system="dracut" | ||||||
|           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" |           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" | ||||||
|           devicepersistency="by-uuid" |           devicepersistency="by-uuid" | ||||||
|           target_blocksize="4096" |           target_blocksize="4096" | ||||||
|           btrfs_root_is_snapshot="true" |           btrfs_root_is_snapshot="true" | ||||||
| @@ -602,7 +467,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|     <preferences profiles="s390-fba"> |     <preferences profiles="s390-fba"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -613,9 +478,9 @@ | |||||||
|           filesystem="btrfs" |           filesystem="btrfs" | ||||||
|           bootpartition="true" |           bootpartition="true" | ||||||
|           bootpartsize="300" |           bootpartsize="300" | ||||||
|           bootfilesystem="ext4" |           bootfilesystem="ext2" | ||||||
|           initrd_system="dracut" |           initrd_system="dracut" | ||||||
|           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" |           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" | ||||||
|           devicepersistency="by-uuid" |           devicepersistency="by-uuid" | ||||||
|           btrfs_root_is_snapshot="true" |           btrfs_root_is_snapshot="true" | ||||||
|           btrfs_root_is_readonly_snapshot="true" |           btrfs_root_is_readonly_snapshot="true" | ||||||
| @@ -636,47 +501,9 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="s390-fcp"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <type |  | ||||||
|           image="oem" |  | ||||||
|           filesystem="btrfs" |  | ||||||
|           installpxe="true" |  | ||||||
|           bootpartition="true" |  | ||||||
|           bootpartsize="300" |  | ||||||
|           bootfilesystem="ext4" |  | ||||||
|           initrd_system="dracut" |  | ||||||
|           kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1" |  | ||||||
|           devicepersistency="by-uuid" |  | ||||||
|           btrfs_root_is_snapshot="true" |  | ||||||
|           btrfs_root_is_readonly_snapshot="true" |  | ||||||
|           btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <oemconfig> |  | ||||||
|                 <oem-multipath-scan>true</oem-multipath-scan> |  | ||||||
|             </oemconfig> |  | ||||||
|             <bootloader name="grub2_s390x_emu" console="serial" timeout="3" targettype="SCSI"/> |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/s390x-emu" mountpoint="boot/grub2/s390x-emu"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
|                 <volume name="usr/local"/> |  | ||||||
|                 <volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|             <size unit="G">5</size> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|  |  | ||||||
|     <preferences profiles="x86-vmware"> |     <preferences profiles="x86-vmware"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -711,7 +538,7 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|     <preferences profiles="x86-qcow"> |     <preferences profiles="x86-qcow"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -722,7 +549,7 @@ | |||||||
|             format="qcow2" |             format="qcow2" | ||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -750,7 +577,7 @@ | |||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="aarch64-qcow"> |     <preferences profiles="aarch64-qcow"> | ||||||
|         <version>6.1</version> |         <version>6.0</version> | ||||||
|         <packagemanager>zypper</packagemanager> |         <packagemanager>zypper</packagemanager> | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |         <bootsplash-theme>SLE</bootsplash-theme> | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |         <bootloader-theme>SLE</bootloader-theme> | ||||||
| @@ -762,7 +589,7 @@ | |||||||
|             filesystem="btrfs" |             filesystem="btrfs" | ||||||
|             firmware="uefi" |             firmware="uefi" | ||||||
|             efipartsize="128" |             efipartsize="128" | ||||||
|             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu" |             kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu" | ||||||
|             bootpartition="false" |             bootpartition="false" | ||||||
|             bootkernel="custom" |             bootkernel="custom" | ||||||
|             devicepersistency="by-uuid" |             devicepersistency="by-uuid" | ||||||
| @@ -773,7 +600,7 @@ | |||||||
|             <systemdisk> |             <systemdisk> | ||||||
|                 <volume name="home"/> |                 <volume name="home"/> | ||||||
|                 <volume name="root"/> |                 <volume name="root"/> | ||||||
|                 <volume name="opt"/> |  		<volume name="opt"/> | ||||||
|                 <volume name="srv"/> |                 <volume name="srv"/> | ||||||
|                 <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> |                 <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> | ||||||
|                 <volume name="boot/writable"/> |                 <volume name="boot/writable"/> | ||||||
| @@ -784,161 +611,6 @@ | |||||||
|         </type> |         </type> | ||||||
|     </preferences> |     </preferences> | ||||||
|  |  | ||||||
|     <preferences profiles="ppc64le-512ss"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             firmware="ofw" |  | ||||||
|             kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal" |  | ||||||
|             bootpartition="false" |  | ||||||
|             bootkernel="custom" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
| 		<!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/powerpc-ieee1275"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
| 		<volume name="usr/local"/> |  | ||||||
| 		<volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|     <preferences profiles="ppc64le-4096ss"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching |  | ||||||
|              disk_start_sector="256" --> |  | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             target_blocksize="4096" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             firmware="ofw" |  | ||||||
|             kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal" |  | ||||||
|             bootpartition="false" |  | ||||||
|             bootkernel="custom" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
| 		<!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/powerpc-ieee1275"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
| 		<volume name="usr/local"/> |  | ||||||
| 		<volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|  |  | ||||||
|     <preferences profiles="ppc64le-512ss-self_install"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             installiso="true" |  | ||||||
|             installpxe="true" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             firmware="ofw" |  | ||||||
|             kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=metal" |  | ||||||
|             bootpartition="false" |  | ||||||
|             bootkernel="custom" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <installmedia> |  | ||||||
|                 <initrd action="omit"> |  | ||||||
|                     <dracut module="drm"/> |  | ||||||
|                 </initrd> |  | ||||||
|             </installmedia> |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
| 		<!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/powerpc-ieee1275"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
| 		<volume name="usr/local"/> |  | ||||||
| 		<volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|     <preferences profiles="ppc64le-4096ss-self_install"> |  | ||||||
|         <version>6.1</version> |  | ||||||
|         <packagemanager>zypper</packagemanager> |  | ||||||
|         <bootsplash-theme>SLE</bootsplash-theme> |  | ||||||
|         <bootloader-theme>SLE</bootloader-theme> |  | ||||||
|         <rpm-excludedocs>true</rpm-excludedocs> |  | ||||||
|         <locale>en_US</locale> |  | ||||||
|         <!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching |  | ||||||
|              disk_start_sector="256" --> |  | ||||||
|         <!-- Use ignition.platform.id=metal to avoid bsc#1227689 --> |  | ||||||
|         <type |  | ||||||
|             image="oem" |  | ||||||
|             installiso="true" |  | ||||||
|             installpxe="true" |  | ||||||
|             target_blocksize="4096" |  | ||||||
|             filesystem="btrfs" |  | ||||||
|             firmware="ofw" |  | ||||||
|             kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal" |  | ||||||
|             bootpartition="false" |  | ||||||
|             bootkernel="custom" |  | ||||||
|             devicepersistency="by-uuid" |  | ||||||
|             btrfs_root_is_snapshot="true" |  | ||||||
|             btrfs_root_is_readonly_snapshot="true" |  | ||||||
|             btrfs_quota_groups="true" |  | ||||||
|         > |  | ||||||
|             <installmedia> |  | ||||||
|                 <initrd action="omit"> |  | ||||||
|                     <dracut module="drm"/> |  | ||||||
|                 </initrd> |  | ||||||
|             </installmedia> |  | ||||||
|             <systemdisk> |  | ||||||
|                 <volume name="home"/> |  | ||||||
|                 <volume name="root"/> |  | ||||||
| 		<!-- on tmpfs jsc#SMO-2                <volume name="tmp"/> --> |  | ||||||
|                 <volume name="opt"/> |  | ||||||
|                 <volume name="srv"/> |  | ||||||
|                 <volume name="boot/grub2/powerpc-ieee1275"/> |  | ||||||
|                 <volume name="boot/writable"/> |  | ||||||
| 		<volume name="usr/local"/> |  | ||||||
| 		<volume name="var" copy_on_write="false"/> |  | ||||||
|             </systemdisk> |  | ||||||
|         </type> |  | ||||||
|     </preferences> |  | ||||||
|  |  | ||||||
|  |  | ||||||
|    <repository type="rpm-md" > |    <repository type="rpm-md" > | ||||||
|         <source path='obsrepositories:/'/> |         <source path='obsrepositories:/'/> | ||||||
|     </repository> |     </repository> | ||||||
| @@ -957,7 +629,6 @@ | |||||||
|         <package name="patterns-base-cockpit"/> |         <package name="patterns-base-cockpit"/> | ||||||
|         <namedCollection name="selinux"/> |         <namedCollection name="selinux"/> | ||||||
|         <package name="patterns-base-selinux"/> |         <package name="patterns-base-selinux"/> | ||||||
|         <package name="policycoreutils-python-utils"/> |  | ||||||
|         <package name="suseconnect-ng"/> |         <package name="suseconnect-ng"/> | ||||||
|         <package name="SL-Micro-release"/> |         <package name="SL-Micro-release"/> | ||||||
|         <package name="grub2-branding-SLE" arch="x86_64,aarch64"/> |         <package name="grub2-branding-SLE" arch="x86_64,aarch64"/> | ||||||
| @@ -984,9 +655,10 @@ | |||||||
|         <package name="patterns-base-transactional"/> |         <package name="patterns-base-transactional"/> | ||||||
|         <namedCollection name="container_runtime_podman"/> |         <namedCollection name="container_runtime_podman"/> | ||||||
|         <package name="patterns-container-runtime_podman"/> |         <package name="patterns-container-runtime_podman"/> | ||||||
|  |         <namedCollection name="cockpit"/> | ||||||
|  |         <package name="patterns-base-cockpit"/> | ||||||
|         <namedCollection name="selinux"/> |         <namedCollection name="selinux"/> | ||||||
|         <package name="patterns-base-selinux"/> |         <package name="patterns-base-selinux"/> | ||||||
|         <package name="policycoreutils-python-utils"/> |  | ||||||
|         <package name="suseconnect-ng"/> |         <package name="suseconnect-ng"/> | ||||||
|         <package name="SL-Micro-release"/> |         <package name="SL-Micro-release"/> | ||||||
|         <package name="grub2-branding-SLE" arch="x86_64,aarch64"/> |         <package name="grub2-branding-SLE" arch="x86_64,aarch64"/> | ||||||
| @@ -1048,8 +720,7 @@ | |||||||
|         <package name="grub2-x86_64-efi" arch="x86_64"/> |         <package name="grub2-x86_64-efi" arch="x86_64"/> | ||||||
|         <package name="grub2-arm64-efi" arch="aarch64"/> |         <package name="grub2-arm64-efi" arch="aarch64"/> | ||||||
|         <package name="grub2-s390x-emu" arch="s390x"/> |         <package name="grub2-s390x-emu" arch="s390x"/> | ||||||
|         <package name="grub2-powerpc-ieee1275" arch="ppc64le"/> |         <package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64"/> | ||||||
|         <package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64,ppc64le"/> |  | ||||||
|         <package name="grub2-snapper-plugin"/> |         <package name="grub2-snapper-plugin"/> | ||||||
|         <package name="shim" arch="x86_64,aarch64"/> |         <package name="shim" arch="x86_64,aarch64"/> | ||||||
| 	<package name="mokutil" arch="x86_64,aarch64"/> | 	<package name="mokutil" arch="x86_64,aarch64"/> | ||||||
| @@ -1057,46 +728,46 @@ | |||||||
| 	    <package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead --> | 	    <package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead --> | ||||||
|     </packages> |     </packages> | ||||||
|     <!-- rpi kernel-default-base does not provide all necessary drivers --> |     <!-- rpi kernel-default-base does not provide all necessary drivers --> | ||||||
|     <packages type="image" profiles="rpi,aarch64-self_install,x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64,aarch64-qcow,s390-kvm,s390-dasd,s390-fba,s390-fcp,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install"> |     <packages type="image" profiles="x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba"> | ||||||
|         <package name="kernel-default"/> |         <package name="kernel-default"/> | ||||||
|         <package name="kernel-firmware-all"/> |         <package name="kernel-firmware-all"/> | ||||||
|     </packages> |     </packages> | ||||||
|     <packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted,aarch64-rt,aarch64-rt-rpi,aarch64-rt-self_install"> |     <packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted"> | ||||||
|         <package name="kernel-rt"/> |         <package name="kernel-rt"/> | ||||||
|         <package name="kernel-firmware-all"/> | 	<package name="kernel-firmware-all"/> | ||||||
| 	<!-- FIXME intentionally removed from ALP code stream | 	<!-- FIXME intentionally removed from ALP code stream | ||||||
|         <package name="cpuset"/> --> | 	<package name="cpuset"/> --> | ||||||
|     </packages> |     </packages> | ||||||
|     <packages type="image" profiles="s390-kvm,s390-dasd,s390-fba,s390-fcp"> |     <!-- makes the image build, but also include kernel-default | ||||||
|         <package name="dracut-kiwi-oem-dump"/> |     <packages type="image" profiles="x86-rt-encrypted"> | ||||||
|  |         <package name="kernel-default-extra"/> | ||||||
|  |     </packages> --> | ||||||
|  |     <packages type="image" profiles="s390-kvm,s390-dasd,s390-fba"> | ||||||
|         <package name="dracut-kiwi-oem-repart"/> |         <package name="dracut-kiwi-oem-repart"/> | ||||||
|         <package name="blog"/> |         <package name="blog"/> | ||||||
|     </packages> |     </packages> | ||||||
|     <!-- FCP is usually used multipathed. --> |     <packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install"> | ||||||
|     <packages type="image" profiles="s390-fcp"> |  | ||||||
|         <package name="multipath-tools"/> |  | ||||||
|     </packages> |  | ||||||
|     <packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64,aarch64-qcow,rpi,aarch64-self_install,aarch64-rt,aarch64-rt-rpi,aarch64-rt-self_install,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install"> |  | ||||||
|         <package name="dracut-kiwi-oem-repart"/> |         <package name="dracut-kiwi-oem-repart"/> | ||||||
|         <package name="dracut-kiwi-oem-dump"/> |         <package name="dracut-kiwi-oem-dump"/> | ||||||
|     </packages> |     </packages> | ||||||
|     <packages type="image" profiles="rpi,aarch64-self_install,aarch64-rt,aarch64-rt-rpi,aarch64-rt-self_install"> |     <packages type="image" profiles="rpi,aarch64-self_install"> | ||||||
|         <package name="raspberrypi-firmware" arch="aarch64"/> |         <package name="raspberrypi-firmware" arch="aarch64"/> | ||||||
|         <package name="raspberrypi-firmware-config" arch="aarch64"/> |         <package name="raspberrypi-firmware-config" arch="aarch64"/> | ||||||
|         <package name="raspberrypi-firmware-dt" arch="aarch64"/> |         <package name="raspberrypi-firmware-dt" arch="aarch64"/> | ||||||
|         <package name="u-boot-rpiarm64" arch="aarch64"/> |         <package name="u-boot-rpiarm64" arch="aarch64"/> | ||||||
|     </packages> |  | ||||||
|     <packages type="image" profiles="rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install"> |  | ||||||
|         <package name="dracut-kiwi-oem-repart"/> |         <package name="dracut-kiwi-oem-repart"/> | ||||||
|         <package name="bcm43xx-firmware"/> |         <package name="bcm43xx-firmware"/> | ||||||
|  |         <package name="kernel-firmware-all"/><!-- Fix choice between kernel-firmware and kernel-firmware-all --> | ||||||
|         <package name="wireless-regdb"/> |         <package name="wireless-regdb"/> | ||||||
|         <package name="wireless-tools"/> |         <package name="wireless-tools"/> | ||||||
|         <package name="wpa_supplicant"/> |         <package name="wpa_supplicant"/> | ||||||
|         <package name="grub2-arm64-efi"/> |         <package name="grub2-arm64-efi"/> | ||||||
|  |         <!-- kernel-default-base does not have all required drivers --> | ||||||
|  |         <package name="kernel-default"/> | ||||||
|     </packages> |     </packages> | ||||||
|     <packages type="bootstrap"> |     <packages type="bootstrap"> | ||||||
|         <package name="filesystem"/> |  | ||||||
|         <package name="coreutils"/> |         <package name="coreutils"/> | ||||||
|  |         <package name="filesystem"/> | ||||||
|         <package name="ca-certificates"/> |         <package name="ca-certificates"/> | ||||||
|         <package name="ca-certificates-mozilla"/> |         <package name="ca-certificates-mozilla"/> | ||||||
|     </packages> |     </packages> | ||||||
| @@ -1110,14 +781,4 @@ | |||||||
|     <packages type="image" profiles="x86-qcow,aarch64-qcow"> |     <packages type="image" profiles="x86-qcow,aarch64-qcow"> | ||||||
|         <package name="qemu-guest-agent"/> |         <package name="qemu-guest-agent"/> | ||||||
|     </packages> |     </packages> | ||||||
|  |  | ||||||
|     <!-- jsc#PED-8599 --> |  | ||||||
|     <packages type="image" profiles="Base,Base-encrypted,Base-RT,Base-RT-encrypted,Base-fba,Base-dasd,Base-fcp,Base-512,Base-4096,Default,Default-encrypted,Default-fba,Default-dasd,Default-fcp,Default-512,Default-4096"> |  | ||||||
|         <package name="usbguard"/> |  | ||||||
|     </packages> |  | ||||||
|  |  | ||||||
|     <!-- jsc#PED-8788 --> |  | ||||||
|     <packages type="image" profiles="Base-RT,Base-RT-encrypted,x86-rt-encrypted,x86-rt,x86-rt-self_install,aarch64-rt,aarch64-rt-self_install"> |  | ||||||
|         <package name="stalld"/> |  | ||||||
|     </packages> |  | ||||||
| </image> | </image> | ||||||
| @@ -1,6 +1,5 @@ | |||||||
| <services> | <services> | ||||||
|   <service mode="buildtime" name="kiwi_metainfo_helper"/> |   <service mode="buildtime" name="kiwi_metainfo_helper"/> | ||||||
|   <service name="docker_label_helper" mode="buildtime"/> |  | ||||||
|   <service name="replace_using_env" mode="buildtime"> |   <service name="replace_using_env" mode="buildtime"> | ||||||
|     <param name="file">README</param> |     <param name="file">README</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> | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| # Copyright (c) 2025 SUSE LLC | # Copyright (c) 2024 SUSE LLC | ||||||
| # | # | ||||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy | # Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
| # of this software and associated documentation files (the "Software"), to deal | # of this software and associated documentation files (the "Software"), to deal | ||||||
| @@ -27,22 +27,19 @@ LARGEBLOCK=false | |||||||
| # Print usage | # Print usage | ||||||
| usage(){ | usage(){ | ||||||
|   cat <<-EOF |   cat <<-EOF | ||||||
|   ===================================== |   ============================== | ||||||
|   SUSE Linux Micro 6.1 Kiwi SDK Builder |   SLE Micro 6.0 Kiwi SDK Builder | ||||||
|   ===================================== |   ============================== | ||||||
|  |  | ||||||
|   Usage: ${0} [-p <profile>] [-b] |   Usage: ${0} [-p <profile>] [-b] | ||||||
|  |  | ||||||
|   Profile Options (-p): |   Profile Options (-p): | ||||||
|   * Default: RAW Disk Image with default packages (incl. Podman & KVM) |   * Base: RAW Disk Image with podman | ||||||
|   * Default-SelfInstall: SelfInstall ISO with default packages |   * Base-SelfInstall: SelfInstall ISO with podman | ||||||
|   * Default-RPi: RAW Disk Image for Raspberry Pi (aarch64 only with MBR) |   * Default: RAW Disk Image with podman and kvm | ||||||
|   * Base: RAW Disk Image with reduced package set (no KVM) |   * Default-SelfInstall: SelfInstall ISO with podman and kvm | ||||||
|   * Base-SelfInstall: SelfInstall ISO with reduced packages |   * Base-RT: RAW Disk Image with kernel-rt | ||||||
|   * Base-RT: RAW Disk Image with reduced packages and kernel-rt |   * Base-RT-SelfInstall: SelfInstall ISO with kernel-rt | ||||||
|   * Base-RT-SelfInstall: SelfInstall ISO with reduced packages and kernel-rt |  | ||||||
|   * Base-RT-RPi: RAW Disk image for Raspberry Pi with kernel-rt (aarch64 only with MBR) |  | ||||||
|   * Base-RPi: RAW Disk Image for Raspberry Pi with reduced packages (aarch64 only with MBR) |  | ||||||
|  |  | ||||||
|   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. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -35,6 +35,14 @@ mkdir /var/lib/misc/reconfig_system | |||||||
| #-------------------------------------- | #-------------------------------------- | ||||||
| echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..." | echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..." | ||||||
|  |  | ||||||
|  | #====================================== | ||||||
|  | # This is a workaround - someone, | ||||||
|  | # somewhere needs to load the xts crypto | ||||||
|  | # module, otherwise luksOpen will fail while | ||||||
|  | # creating the image. | ||||||
|  | #-------------------------------------- | ||||||
|  | modprobe xts || true | ||||||
|  |  | ||||||
| #====================================== | #====================================== | ||||||
| # add missing fonts | # add missing fonts | ||||||
| #-------------------------------------- | #-------------------------------------- | ||||||
| @@ -131,6 +139,9 @@ for i in /usr/lib/rpm/gnupg/keys/gpg-pubkey*asc; do | |||||||
|     rpm --import $i || true |     rpm --import $i || true | ||||||
| done | done | ||||||
|  |  | ||||||
|  | # Temporary workaround for bsc#1212187 | ||||||
|  | echo "techpreview.ZYPP_MEDIANETWORK=1" >> /etc/zypp/zypp.conf | ||||||
|  |  | ||||||
| #====================================== | #====================================== | ||||||
| # Enable kubelet if installed | # Enable kubelet if installed | ||||||
| #-------------------------------------- | #-------------------------------------- | ||||||
| @@ -159,18 +170,8 @@ if [ "${kiwi_btrfs_root_is_snapshot-false}" = 'true' ]; then | |||||||
| 	sed -i'' 's/^NUMBER_LIMIT_IMPORTANT=.*$/NUMBER_LIMIT_IMPORTANT="4-10"/g' /etc/snapper/configs/root | 	sed -i'' 's/^NUMBER_LIMIT_IMPORTANT=.*$/NUMBER_LIMIT_IMPORTANT="4-10"/g' /etc/snapper/configs/root | ||||||
| fi | fi | ||||||
|  |  | ||||||
| # Enable multipathd for MP images | # Enable jeos-firstboot if installed, disabled by combustion/ignition | ||||||
| if [ "${kiwi_oemmultipath_scan-false}" = 'true' ]; then | if rpm -q --whatprovides jeos-firstboot >/dev/null; then | ||||||
|         systemctl enable multipathd.service |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # On those s390 targets the console is not capable of running jeos-firstboot, |  | ||||||
| # use systemd-firstboot as minimal alternative. |  | ||||||
| if [[ "$kiwi_profiles" =~ s390-(dasd|fba|fcp) ]]; then |  | ||||||
| 	systemctl enable systemd-firstboot |  | ||||||
| 	# Enable prompting for the root password |  | ||||||
| 	echo 'root:!unprovisioned' | chpasswd -e |  | ||||||
| elif rpm -q --whatprovides jeos-firstboot >/dev/null; then |  | ||||||
|         mkdir -p /var/lib/YaST2 |         mkdir -p /var/lib/YaST2 | ||||||
|         touch /var/lib/YaST2/reconfig_system |         touch /var/lib/YaST2/reconfig_system | ||||||
|         systemctl enable jeos-firstboot.service |         systemctl enable jeos-firstboot.service | ||||||
| @@ -280,7 +281,7 @@ if [[ "$kiwi_profiles" == *"RaspberryPi"* ]]; then | |||||||
| 		options smsc95xx turbo_mode=N | 		options smsc95xx turbo_mode=N | ||||||
| 	EOF | 	EOF | ||||||
|  |  | ||||||
| 	cat > /etc/sysctl.d/50-rpi3.conf <<-EOF | 	cat > /usr/lib/sysctl.d/50-rpi3.conf <<-EOF | ||||||
| 		# Avoid running out of DMA pages for smsc95xx (bsc#1012449) | 		# Avoid running out of DMA pages for smsc95xx (bsc#1012449) | ||||||
| 		vm.min_free_kbytes = 2048 | 		vm.min_free_kbytes = 2048 | ||||||
| 	EOF | 	EOF | ||||||
|   | |||||||
| @@ -1,47 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| set -euxo pipefail |  | ||||||
|  |  | ||||||
| diskname=$1 |  | ||||||
| devname="$2" |  | ||||||
|  |  | ||||||
| loopname="${devname%*p?}" |  | ||||||
| loopdev=/dev/${loopname#/dev/*} |  | ||||||
|  |  | ||||||
| if [ ! -f $loopdev ]; then loopdev=/dev/${loopdev#/dev/mapper/}; fi |  | ||||||
|  |  | ||||||
| #========================================== |  | ||||||
| # copy Raspberry Pi firmware to EFI partition |  | ||||||
| #------------------------------------------ |  | ||||||
| echo "RPi EFI system, installing firmware on ESP" |  | ||||||
| mkdir -p ./mnt-pi |  | ||||||
| mount ${loopname}p1 ./mnt-pi |  | ||||||
| ( cd boot/vc; tar c . ) | ( cd ./mnt-pi/; tar x ) |  | ||||||
| umount ./mnt-pi |  | ||||||
| rmdir ./mnt-pi |  | ||||||
|  |  | ||||||
| #========================================== |  | ||||||
| # Change partition label type to MBR |  | ||||||
| #------------------------------------------ |  | ||||||
| # |  | ||||||
| # The target system doesn't support GPT, so let's move it to |  | ||||||
| # MBR partition layout instead. |  | ||||||
| # |  | ||||||
| # Also make sure to set the ESP partition to type 0xc so that |  | ||||||
| # broken firmware (Rpi) detects it as FAT. |  | ||||||
| # |  | ||||||
| # Use tabs, "<<-" strips tabs, but no other whitespace! |  | ||||||
| cat > gdisk.tmp <<-'EOF' |  | ||||||
| 		x |  | ||||||
| 		r |  | ||||||
| 		g |  | ||||||
| 		t |  | ||||||
| 		1 |  | ||||||
| 		c |  | ||||||
| 		w |  | ||||||
| 		y |  | ||||||
| 	EOF |  | ||||||
| dd if=$loopdev of=mbrid.bin bs=1 skip=440 count=4 |  | ||||||
| gdisk $loopdev < gdisk.tmp |  | ||||||
| dd of=$loopdev if=mbrid.bin bs=1 seek=440 count=4 |  | ||||||
| rm -f mbrid.bin |  | ||||||
| rm -f gdisk.tmp |  | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| #!BuildTag: %%CHART_PREFIX%%kubevirt:%%CHART_MAJOR%%.0.0_up0.5.0-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.4.0-%RELEASE% | ||||||
| #!BuildTag: %%CHART_PREFIX%%kubevirt:%%CHART_MAJOR%%.0.0_up0.5.0 | #!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.4.0 | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 1.4.0 | appVersion: 1.3.1 | ||||||
| description: A Helm chart for KubeVirt | description: A Helm chart for KubeVirt | ||||||
| icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/kubevirt/icon/color/kubevirt-icon-color.svg | icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/kubevirt/icon/color/kubevirt-icon-color.svg | ||||||
| name: kubevirt | name: kubevirt | ||||||
| type: application | type: application | ||||||
| version: "%%CHART_MAJOR%%.0.0+up0.5.0" | version: "%%CHART_MAJOR%%.0.0+up0.4.0" | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
|   <service mode="buildtime" name="kiwi_metainfo_helper"/> |   <service mode="buildtime" name="kiwi_metainfo_helper"/> | ||||||
|   <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> | ||||||
|     <param name="eval">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?chart_prefix})</param> |     <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> | ||||||
|     <param name="var">CHART_PREFIX</param> |     <param name="var">IMG_PREFIX</param> | ||||||
|     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> |     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> | ||||||
|     <param name="var">CHART_MAJOR</param> |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -231,17 +231,6 @@ spec: | |||||||
|                           type: object |                           type: object | ||||||
|                       type: object |                       type: object | ||||||
|                       x-kubernetes-map-type: atomic |                       x-kubernetes-map-type: atomic | ||||||
|                     commonInstancetypesDeployment: |  | ||||||
|                       description: CommonInstancetypesDeployment controls the deployment |  | ||||||
|                         of common-instancetypes resources |  | ||||||
|                       nullable: true |  | ||||||
|                       properties: |  | ||||||
|                         enabled: |  | ||||||
|                           description: Enabled controls the deployment of common-instancetypes |  | ||||||
|                             resources, defaults to True. |  | ||||||
|                           nullable: true |  | ||||||
|                           type: boolean |  | ||||||
|                       type: object |  | ||||||
|                     controllerConfiguration: |                     controllerConfiguration: | ||||||
|                       description: |- |                       description: |- | ||||||
|                         ReloadableComponentConfiguration holds all generic k8s configuration options which can |                         ReloadableComponentConfiguration holds all generic k8s configuration options which can | ||||||
| @@ -423,23 +412,6 @@ spec: | |||||||
|                       description: PullPolicy describes a policy for if/when to pull |                       description: PullPolicy describes a policy for if/when to pull | ||||||
|                         a container image |                         a container image | ||||||
|                       type: string |                       type: string | ||||||
|                     instancetype: |  | ||||||
|                       description: Instancetype configuration |  | ||||||
|                       nullable: true |  | ||||||
|                       properties: |  | ||||||
|                         referencePolicy: |  | ||||||
|                           description: |- |  | ||||||
|                             ReferencePolicy defines how an instance type or preference should be referenced by the VM after submission, supported values are: |  | ||||||
|                             reference (default) - Where a copy of the original object is stashed in a ControllerRevision and referenced by the VM. |  | ||||||
|                             expand - Where the instance type or preference are expanded into the VM if no revisionNames have been populated. |  | ||||||
|                             expandAll - Where the instance type or preference are expanded into the VM regardless of revisionNames previously being populated. |  | ||||||
|                           enum: |  | ||||||
|                             - reference |  | ||||||
|                             - expand |  | ||||||
|                             - expandAll |  | ||||||
|                           nullable: true |  | ||||||
|                           type: string |  | ||||||
|                       type: object |  | ||||||
|                     ksmConfiguration: |                     ksmConfiguration: | ||||||
|                       description: KSMConfiguration holds the information regarding |                       description: KSMConfiguration holds the information regarding | ||||||
|                         the enabling the KSM in the nodes (if available). |                         the enabling the KSM in the nodes (if available). | ||||||
| @@ -498,9 +470,8 @@ spec: | |||||||
|                         features |                         features | ||||||
|                       properties: |                       properties: | ||||||
|                         maxCpuSockets: |                         maxCpuSockets: | ||||||
|                           description: |- |                           description: MaxCpuSockets holds the maximum amount of sockets | ||||||
|                             MaxCpuSockets provides a MaxSockets value for VMs that do not provide their own. |                             that can be hotplugged | ||||||
|                             For VMs with more sockets than maximum the MaxSockets will be set to equal number of sockets. |  | ||||||
|                           format: int32 |                           format: int32 | ||||||
|                           type: integer |                           type: integer | ||||||
|                         maxGuest: |                         maxGuest: | ||||||
| @@ -606,7 +577,7 @@ spec: | |||||||
|                           description: |- |                           description: |- | ||||||
|                             CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. |                             CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. | ||||||
|                             If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, |                             If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, | ||||||
|                             the migration will be cancelled, unless AllowPostCopy is true. Defaults to 150 |                             the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800 | ||||||
|                           format: int64 |                           format: int64 | ||||||
|                           type: integer |                           type: integer | ||||||
|                         disableTLS: |                         disableTLS: | ||||||
| @@ -669,6 +640,34 @@ spec: | |||||||
|                                   ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding. |                                   ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding. | ||||||
|                                   version: v1alphav1 |                                   version: v1alphav1 | ||||||
|                                 properties: |                                 properties: | ||||||
|  |                                   claims: | ||||||
|  |                                     description: |- | ||||||
|  |                                       Claims lists the names of resources, defined in spec.resourceClaims, | ||||||
|  |                                       that are used by this container. | ||||||
|  |                                        | ||||||
|  |                                        | ||||||
|  |                                       This is an alpha field and requires enabling the | ||||||
|  |                                       DynamicResourceAllocation feature gate. | ||||||
|  |                                        | ||||||
|  |                                        | ||||||
|  |                                       This field is immutable. It can only be set for containers. | ||||||
|  |                                     items: | ||||||
|  |                                       description: ResourceClaim references one entry | ||||||
|  |                                         in PodSpec.ResourceClaims. | ||||||
|  |                                       properties: | ||||||
|  |                                         name: | ||||||
|  |                                           description: |- | ||||||
|  |                                             Name must match the name of one entry in pod.spec.resourceClaims of | ||||||
|  |                                             the Pod where this field is used. It makes that resource available | ||||||
|  |                                             inside a container. | ||||||
|  |                                           type: string | ||||||
|  |                                       required: | ||||||
|  |                                         - name | ||||||
|  |                                       type: object | ||||||
|  |                                     type: array | ||||||
|  |                                     x-kubernetes-list-map-keys: | ||||||
|  |                                       - name | ||||||
|  |                                     x-kubernetes-list-type: map | ||||||
|                                   limits: |                                   limits: | ||||||
|                                     additionalProperties: |                                     additionalProperties: | ||||||
|                                       anyOf: |                                       anyOf: | ||||||
| @@ -697,7 +696,7 @@ spec: | |||||||
|                               domainAttachmentType: |                               domainAttachmentType: | ||||||
|                                 description: |- |                                 description: |- | ||||||
|                                   DomainAttachmentType is a standard domain network attachment method kubevirt supports. |                                   DomainAttachmentType is a standard domain network attachment method kubevirt supports. | ||||||
|                                   Supported values: "tap", "managedTap" (since v1.4). |                                   Supported values: "tap". | ||||||
|                                   The standard domain attachment can be used instead or in addition to the sidecarImage. |                                   The standard domain attachment can be used instead or in addition to the sidecarImage. | ||||||
|                                   version: 1alphav1 |                                   version: 1alphav1 | ||||||
|                                 type: string |                                 type: string | ||||||
| @@ -875,10 +874,37 @@ spec: | |||||||
|                           usually idle and don't require a lot of memory or cpu. |                           usually idle and don't require a lot of memory or cpu. | ||||||
|                         properties: |                         properties: | ||||||
|                           resources: |                           resources: | ||||||
|                             description: |- |                             description: ResourceRequirements describes the compute | ||||||
|                               ResourceRequirementsWithoutClaims describes the compute resource requirements. |                               resource requirements. | ||||||
|                               This struct was taken from the k8s.ResourceRequirements and cleaned up the 'Claims' field. |  | ||||||
|                             properties: |                             properties: | ||||||
|  |                               claims: | ||||||
|  |                                 description: |- | ||||||
|  |                                   Claims lists the names of resources, defined in spec.resourceClaims, | ||||||
|  |                                   that are used by this container. | ||||||
|  |                                    | ||||||
|  |                                    | ||||||
|  |                                   This is an alpha field and requires enabling the | ||||||
|  |                                   DynamicResourceAllocation feature gate. | ||||||
|  |                                    | ||||||
|  |                                    | ||||||
|  |                                   This field is immutable. It can only be set for containers. | ||||||
|  |                                 items: | ||||||
|  |                                   description: ResourceClaim references one entry in | ||||||
|  |                                     PodSpec.ResourceClaims. | ||||||
|  |                                   properties: | ||||||
|  |                                     name: | ||||||
|  |                                       description: |- | ||||||
|  |                                         Name must match the name of one entry in pod.spec.resourceClaims of | ||||||
|  |                                         the Pod where this field is used. It makes that resource available | ||||||
|  |                                         inside a container. | ||||||
|  |                                       type: string | ||||||
|  |                                   required: | ||||||
|  |                                     - name | ||||||
|  |                                   type: object | ||||||
|  |                                 type: array | ||||||
|  |                                 x-kubernetes-list-map-keys: | ||||||
|  |                                   - name | ||||||
|  |                                 x-kubernetes-list-type: map | ||||||
|                               limits: |                               limits: | ||||||
|                                 additionalProperties: |                                 additionalProperties: | ||||||
|                                   anyOf: |                                   anyOf: | ||||||
| @@ -932,8 +958,10 @@ spec: | |||||||
|                             MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections. |                             MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections. | ||||||
|                             Protocol versions are based on the following most common TLS configurations: |                             Protocol versions are based on the following most common TLS configurations: | ||||||
|                              |                              | ||||||
|  |                              | ||||||
|                               https://ssl-config.mozilla.org/ |                               https://ssl-config.mozilla.org/ | ||||||
|                              |                              | ||||||
|  |                              | ||||||
|                             Note that SSLv3.0 is not a supported protocol version due to well known |                             Note that SSLv3.0 is not a supported protocol version due to well known | ||||||
|                             vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE |                             vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE | ||||||
|                           enum: |                           enum: | ||||||
| @@ -1063,13 +1091,10 @@ spec: | |||||||
|                       referenced object inside the same namespace. |                       referenced object inside the same namespace. | ||||||
|                     properties: |                     properties: | ||||||
|                       name: |                       name: | ||||||
|                         default: "" |  | ||||||
|                         description: |- |                         description: |- | ||||||
|                           Name of the referent. |                           Name of the referent. | ||||||
|                           This field is effectively required, but due to backwards compatibility is |  | ||||||
|                           allowed to be empty. Instances of this type with an empty value here are |  | ||||||
|                           almost certainly wrong. |  | ||||||
|                           More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |                           More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | ||||||
|  |                           TODO: Add other useful fields. apiVersion, kind, uid? | ||||||
|                         type: string |                         type: string | ||||||
|                     type: object |                     type: object | ||||||
|                     x-kubernetes-map-type: atomic |                     x-kubernetes-map-type: atomic | ||||||
| @@ -1386,7 +1411,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -1401,7 +1426,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -1569,7 +1594,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -1584,7 +1609,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -1750,7 +1775,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -1765,7 +1790,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -1933,7 +1958,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -1948,7 +1973,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -2139,6 +2164,7 @@ spec: | |||||||
|                         BatchEvictionInterval Represents the interval to wait before issuing the next |                         BatchEvictionInterval Represents the interval to wait before issuing the next | ||||||
|                         batch of shutdowns |                         batch of shutdowns | ||||||
|                          |                          | ||||||
|  |                          | ||||||
|                         Defaults to 1 minute |                         Defaults to 1 minute | ||||||
|                       type: string |                       type: string | ||||||
|                     batchEvictionSize: |                     batchEvictionSize: | ||||||
| @@ -2146,6 +2172,7 @@ spec: | |||||||
|                         BatchEvictionSize Represents the number of VMIs that can be forced updated per |                         BatchEvictionSize Represents the number of VMIs that can be forced updated per | ||||||
|                         the BatchShutdownInteral interval |                         the BatchShutdownInteral interval | ||||||
|                          |                          | ||||||
|  |                          | ||||||
|                         Defaults to 10 |                         Defaults to 10 | ||||||
|                       type: integer |                       type: integer | ||||||
|                     workloadUpdateMethods: |                     workloadUpdateMethods: | ||||||
| @@ -2156,6 +2183,7 @@ spec: | |||||||
|                         precedence over more disruptive methods. For example if both LiveMigrate and Shutdown |                         precedence over more disruptive methods. For example if both LiveMigrate and Shutdown | ||||||
|                         methods are listed, only VMs which are not live migratable will be restarted/shutdown |                         methods are listed, only VMs which are not live migratable will be restarted/shutdown | ||||||
|                          |                          | ||||||
|  |                          | ||||||
|                         An empty list defaults to no automated workload updating |                         An empty list defaults to no automated workload updating | ||||||
|                       items: |                       items: | ||||||
|                         type: string |                         type: string | ||||||
| @@ -2463,7 +2491,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -2478,7 +2506,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -2646,7 +2674,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -2661,7 +2689,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -2827,7 +2855,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -2842,7 +2870,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -3010,7 +3038,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -3025,7 +3053,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -3488,17 +3516,6 @@ spec: | |||||||
|                           type: object |                           type: object | ||||||
|                       type: object |                       type: object | ||||||
|                       x-kubernetes-map-type: atomic |                       x-kubernetes-map-type: atomic | ||||||
|                     commonInstancetypesDeployment: |  | ||||||
|                       description: CommonInstancetypesDeployment controls the deployment |  | ||||||
|                         of common-instancetypes resources |  | ||||||
|                       nullable: true |  | ||||||
|                       properties: |  | ||||||
|                         enabled: |  | ||||||
|                           description: Enabled controls the deployment of common-instancetypes |  | ||||||
|                             resources, defaults to True. |  | ||||||
|                           nullable: true |  | ||||||
|                           type: boolean |  | ||||||
|                       type: object |  | ||||||
|                     controllerConfiguration: |                     controllerConfiguration: | ||||||
|                       description: |- |                       description: |- | ||||||
|                         ReloadableComponentConfiguration holds all generic k8s configuration options which can |                         ReloadableComponentConfiguration holds all generic k8s configuration options which can | ||||||
| @@ -3680,23 +3697,6 @@ spec: | |||||||
|                       description: PullPolicy describes a policy for if/when to pull |                       description: PullPolicy describes a policy for if/when to pull | ||||||
|                         a container image |                         a container image | ||||||
|                       type: string |                       type: string | ||||||
|                     instancetype: |  | ||||||
|                       description: Instancetype configuration |  | ||||||
|                       nullable: true |  | ||||||
|                       properties: |  | ||||||
|                         referencePolicy: |  | ||||||
|                           description: |- |  | ||||||
|                             ReferencePolicy defines how an instance type or preference should be referenced by the VM after submission, supported values are: |  | ||||||
|                             reference (default) - Where a copy of the original object is stashed in a ControllerRevision and referenced by the VM. |  | ||||||
|                             expand - Where the instance type or preference are expanded into the VM if no revisionNames have been populated. |  | ||||||
|                             expandAll - Where the instance type or preference are expanded into the VM regardless of revisionNames previously being populated. |  | ||||||
|                           enum: |  | ||||||
|                             - reference |  | ||||||
|                             - expand |  | ||||||
|                             - expandAll |  | ||||||
|                           nullable: true |  | ||||||
|                           type: string |  | ||||||
|                       type: object |  | ||||||
|                     ksmConfiguration: |                     ksmConfiguration: | ||||||
|                       description: KSMConfiguration holds the information regarding |                       description: KSMConfiguration holds the information regarding | ||||||
|                         the enabling the KSM in the nodes (if available). |                         the enabling the KSM in the nodes (if available). | ||||||
| @@ -3755,9 +3755,8 @@ spec: | |||||||
|                         features |                         features | ||||||
|                       properties: |                       properties: | ||||||
|                         maxCpuSockets: |                         maxCpuSockets: | ||||||
|                           description: |- |                           description: MaxCpuSockets holds the maximum amount of sockets | ||||||
|                             MaxCpuSockets provides a MaxSockets value for VMs that do not provide their own. |                             that can be hotplugged | ||||||
|                             For VMs with more sockets than maximum the MaxSockets will be set to equal number of sockets. |  | ||||||
|                           format: int32 |                           format: int32 | ||||||
|                           type: integer |                           type: integer | ||||||
|                         maxGuest: |                         maxGuest: | ||||||
| @@ -3863,7 +3862,7 @@ spec: | |||||||
|                           description: |- |                           description: |- | ||||||
|                             CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. |                             CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. | ||||||
|                             If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, |                             If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, | ||||||
|                             the migration will be cancelled, unless AllowPostCopy is true. Defaults to 150 |                             the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800 | ||||||
|                           format: int64 |                           format: int64 | ||||||
|                           type: integer |                           type: integer | ||||||
|                         disableTLS: |                         disableTLS: | ||||||
| @@ -3926,6 +3925,34 @@ spec: | |||||||
|                                   ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding. |                                   ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding. | ||||||
|                                   version: v1alphav1 |                                   version: v1alphav1 | ||||||
|                                 properties: |                                 properties: | ||||||
|  |                                   claims: | ||||||
|  |                                     description: |- | ||||||
|  |                                       Claims lists the names of resources, defined in spec.resourceClaims, | ||||||
|  |                                       that are used by this container. | ||||||
|  |                                        | ||||||
|  |                                        | ||||||
|  |                                       This is an alpha field and requires enabling the | ||||||
|  |                                       DynamicResourceAllocation feature gate. | ||||||
|  |                                        | ||||||
|  |                                        | ||||||
|  |                                       This field is immutable. It can only be set for containers. | ||||||
|  |                                     items: | ||||||
|  |                                       description: ResourceClaim references one entry | ||||||
|  |                                         in PodSpec.ResourceClaims. | ||||||
|  |                                       properties: | ||||||
|  |                                         name: | ||||||
|  |                                           description: |- | ||||||
|  |                                             Name must match the name of one entry in pod.spec.resourceClaims of | ||||||
|  |                                             the Pod where this field is used. It makes that resource available | ||||||
|  |                                             inside a container. | ||||||
|  |                                           type: string | ||||||
|  |                                       required: | ||||||
|  |                                         - name | ||||||
|  |                                       type: object | ||||||
|  |                                     type: array | ||||||
|  |                                     x-kubernetes-list-map-keys: | ||||||
|  |                                       - name | ||||||
|  |                                     x-kubernetes-list-type: map | ||||||
|                                   limits: |                                   limits: | ||||||
|                                     additionalProperties: |                                     additionalProperties: | ||||||
|                                       anyOf: |                                       anyOf: | ||||||
| @@ -3954,7 +3981,7 @@ spec: | |||||||
|                               domainAttachmentType: |                               domainAttachmentType: | ||||||
|                                 description: |- |                                 description: |- | ||||||
|                                   DomainAttachmentType is a standard domain network attachment method kubevirt supports. |                                   DomainAttachmentType is a standard domain network attachment method kubevirt supports. | ||||||
|                                   Supported values: "tap", "managedTap" (since v1.4). |                                   Supported values: "tap". | ||||||
|                                   The standard domain attachment can be used instead or in addition to the sidecarImage. |                                   The standard domain attachment can be used instead or in addition to the sidecarImage. | ||||||
|                                   version: 1alphav1 |                                   version: 1alphav1 | ||||||
|                                 type: string |                                 type: string | ||||||
| @@ -4132,10 +4159,37 @@ spec: | |||||||
|                           usually idle and don't require a lot of memory or cpu. |                           usually idle and don't require a lot of memory or cpu. | ||||||
|                         properties: |                         properties: | ||||||
|                           resources: |                           resources: | ||||||
|                             description: |- |                             description: ResourceRequirements describes the compute | ||||||
|                               ResourceRequirementsWithoutClaims describes the compute resource requirements. |                               resource requirements. | ||||||
|                               This struct was taken from the k8s.ResourceRequirements and cleaned up the 'Claims' field. |  | ||||||
|                             properties: |                             properties: | ||||||
|  |                               claims: | ||||||
|  |                                 description: |- | ||||||
|  |                                   Claims lists the names of resources, defined in spec.resourceClaims, | ||||||
|  |                                   that are used by this container. | ||||||
|  |                                    | ||||||
|  |                                    | ||||||
|  |                                   This is an alpha field and requires enabling the | ||||||
|  |                                   DynamicResourceAllocation feature gate. | ||||||
|  |                                    | ||||||
|  |                                    | ||||||
|  |                                   This field is immutable. It can only be set for containers. | ||||||
|  |                                 items: | ||||||
|  |                                   description: ResourceClaim references one entry in | ||||||
|  |                                     PodSpec.ResourceClaims. | ||||||
|  |                                   properties: | ||||||
|  |                                     name: | ||||||
|  |                                       description: |- | ||||||
|  |                                         Name must match the name of one entry in pod.spec.resourceClaims of | ||||||
|  |                                         the Pod where this field is used. It makes that resource available | ||||||
|  |                                         inside a container. | ||||||
|  |                                       type: string | ||||||
|  |                                   required: | ||||||
|  |                                     - name | ||||||
|  |                                   type: object | ||||||
|  |                                 type: array | ||||||
|  |                                 x-kubernetes-list-map-keys: | ||||||
|  |                                   - name | ||||||
|  |                                 x-kubernetes-list-type: map | ||||||
|                               limits: |                               limits: | ||||||
|                                 additionalProperties: |                                 additionalProperties: | ||||||
|                                   anyOf: |                                   anyOf: | ||||||
| @@ -4189,8 +4243,10 @@ spec: | |||||||
|                             MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections. |                             MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections. | ||||||
|                             Protocol versions are based on the following most common TLS configurations: |                             Protocol versions are based on the following most common TLS configurations: | ||||||
|                              |                              | ||||||
|  |                              | ||||||
|                               https://ssl-config.mozilla.org/ |                               https://ssl-config.mozilla.org/ | ||||||
|                              |                              | ||||||
|  |                              | ||||||
|                             Note that SSLv3.0 is not a supported protocol version due to well known |                             Note that SSLv3.0 is not a supported protocol version due to well known | ||||||
|                             vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE |                             vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE | ||||||
|                           enum: |                           enum: | ||||||
| @@ -4320,13 +4376,10 @@ spec: | |||||||
|                       referenced object inside the same namespace. |                       referenced object inside the same namespace. | ||||||
|                     properties: |                     properties: | ||||||
|                       name: |                       name: | ||||||
|                         default: "" |  | ||||||
|                         description: |- |                         description: |- | ||||||
|                           Name of the referent. |                           Name of the referent. | ||||||
|                           This field is effectively required, but due to backwards compatibility is |  | ||||||
|                           allowed to be empty. Instances of this type with an empty value here are |  | ||||||
|                           almost certainly wrong. |  | ||||||
|                           More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |                           More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | ||||||
|  |                           TODO: Add other useful fields. apiVersion, kind, uid? | ||||||
|                         type: string |                         type: string | ||||||
|                     type: object |                     type: object | ||||||
|                     x-kubernetes-map-type: atomic |                     x-kubernetes-map-type: atomic | ||||||
| @@ -4643,7 +4696,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -4658,7 +4711,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -4826,7 +4879,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -4841,7 +4894,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -5007,7 +5060,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -5022,7 +5075,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -5190,7 +5243,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -5205,7 +5258,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -5396,6 +5449,7 @@ spec: | |||||||
|                         BatchEvictionInterval Represents the interval to wait before issuing the next |                         BatchEvictionInterval Represents the interval to wait before issuing the next | ||||||
|                         batch of shutdowns |                         batch of shutdowns | ||||||
|                          |                          | ||||||
|  |                          | ||||||
|                         Defaults to 1 minute |                         Defaults to 1 minute | ||||||
|                       type: string |                       type: string | ||||||
|                     batchEvictionSize: |                     batchEvictionSize: | ||||||
| @@ -5403,6 +5457,7 @@ spec: | |||||||
|                         BatchEvictionSize Represents the number of VMIs that can be forced updated per |                         BatchEvictionSize Represents the number of VMIs that can be forced updated per | ||||||
|                         the BatchShutdownInteral interval |                         the BatchShutdownInteral interval | ||||||
|                          |                          | ||||||
|  |                          | ||||||
|                         Defaults to 10 |                         Defaults to 10 | ||||||
|                       type: integer |                       type: integer | ||||||
|                     workloadUpdateMethods: |                     workloadUpdateMethods: | ||||||
| @@ -5413,6 +5468,7 @@ spec: | |||||||
|                         precedence over more disruptive methods. For example if both LiveMigrate and Shutdown |                         precedence over more disruptive methods. For example if both LiveMigrate and Shutdown | ||||||
|                         methods are listed, only VMs which are not live migratable will be restarted/shutdown |                         methods are listed, only VMs which are not live migratable will be restarted/shutdown | ||||||
|                          |                          | ||||||
|  |                          | ||||||
|                         An empty list defaults to no automated workload updating |                         An empty list defaults to no automated workload updating | ||||||
|                       items: |                       items: | ||||||
|                         type: string |                         type: string | ||||||
| @@ -5720,7 +5776,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -5735,7 +5791,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -5903,7 +5959,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -5918,7 +5974,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -6084,7 +6140,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -6099,7 +6155,7 @@ spec: | |||||||
|                                               pod labels will be ignored. The default value is empty. |                                               pod labels will be ignored. The default value is empty. | ||||||
|                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                               The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                               Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                               This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                               This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                             items: |                                             items: | ||||||
|                                               type: string |                                               type: string | ||||||
|                                             type: array |                                             type: array | ||||||
| @@ -6267,7 +6323,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both matchLabelKeys and labelSelector. | ||||||
|                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, matchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
| @@ -6282,7 +6338,7 @@ spec: | |||||||
|                                           pod labels will be ignored. The default value is empty. |                                           pod labels will be ignored. The default value is empty. | ||||||
|                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. |                                           The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. | ||||||
|                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. |                                           Also, mismatchLabelKeys cannot be set when labelSelector isn't set. | ||||||
|                                           This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). |                                           This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | ||||||
|                                         items: |                                         items: | ||||||
|                                           type: string |                                           type: string | ||||||
|                                         type: array |                                         type: array | ||||||
|   | |||||||
| @@ -606,35 +606,15 @@ rules: | |||||||
|   - apiGroups: |   - apiGroups: | ||||||
|       - snapshot.kubevirt.io |       - snapshot.kubevirt.io | ||||||
|     resources: |     resources: | ||||||
|       - virtualmachinesnapshots |       - '*' | ||||||
|       - virtualmachinesnapshots/status |  | ||||||
|       - virtualmachinesnapshotcontents |  | ||||||
|       - virtualmachinesnapshotcontents/status |  | ||||||
|       - virtualmachinesnapshotcontents/finalizers |  | ||||||
|       - virtualmachinerestores |  | ||||||
|       - virtualmachinerestores/status |  | ||||||
|     verbs: |     verbs: | ||||||
|       - get |       - '*' | ||||||
|       - list |  | ||||||
|       - watch |  | ||||||
|       - create |  | ||||||
|       - update |  | ||||||
|       - delete |  | ||||||
|       - patch |  | ||||||
|   - apiGroups: |   - apiGroups: | ||||||
|       - export.kubevirt.io |       - export.kubevirt.io | ||||||
|     resources: |     resources: | ||||||
|       - virtualmachineexports |       - '*' | ||||||
|       - virtualmachineexports/status |  | ||||||
|       - virtualmachineexports/finalizers |  | ||||||
|     verbs: |     verbs: | ||||||
|       - get |       - '*' | ||||||
|       - list |  | ||||||
|       - watch |  | ||||||
|       - create |  | ||||||
|       - update |  | ||||||
|       - delete |  | ||||||
|       - patch |  | ||||||
|   - apiGroups: |   - apiGroups: | ||||||
|       - pool.kubevirt.io |       - pool.kubevirt.io | ||||||
|     resources: |     resources: | ||||||
| @@ -656,12 +636,6 @@ rules: | |||||||
|       - '*' |       - '*' | ||||||
|     verbs: |     verbs: | ||||||
|       - '*' |       - '*' | ||||||
|   - apiGroups: |  | ||||||
|       - kubevirt.io |  | ||||||
|     resources: |  | ||||||
|       - virtualmachines/finalizers |  | ||||||
|     verbs: |  | ||||||
|       - update |  | ||||||
|   - apiGroups: |   - apiGroups: | ||||||
|       - subresources.kubevirt.io |       - subresources.kubevirt.io | ||||||
|     resources: |     resources: | ||||||
| @@ -870,7 +844,6 @@ rules: | |||||||
|       - virtualmachineinstances/userlist |       - virtualmachineinstances/userlist | ||||||
|       - virtualmachineinstances/sev/fetchcertchain |       - virtualmachineinstances/sev/fetchcertchain | ||||||
|       - virtualmachineinstances/sev/querylaunchmeasurement |       - virtualmachineinstances/sev/querylaunchmeasurement | ||||||
|       - virtualmachineinstances/usbredir |  | ||||||
|     verbs: |     verbs: | ||||||
|       - get |       - get | ||||||
|   - apiGroups: |   - apiGroups: | ||||||
| @@ -1019,7 +992,6 @@ rules: | |||||||
|       - virtualmachineinstances/userlist |       - virtualmachineinstances/userlist | ||||||
|       - virtualmachineinstances/sev/fetchcertchain |       - virtualmachineinstances/sev/fetchcertchain | ||||||
|       - virtualmachineinstances/sev/querylaunchmeasurement |       - virtualmachineinstances/sev/querylaunchmeasurement | ||||||
|       - virtualmachineinstances/usbredir |  | ||||||
|     verbs: |     verbs: | ||||||
|       - get |       - get | ||||||
|   - apiGroups: |   - apiGroups: | ||||||
| @@ -1292,7 +1264,7 @@ metadata: | |||||||
|   name: virt-operator |   name: virt-operator | ||||||
|   namespace: {{ .Release.Namespace }} |   namespace: {{ .Release.Namespace }} | ||||||
| spec: | spec: | ||||||
|   replicas: {{ .Values.operator.replicas }} |   replicas: 2 | ||||||
|   selector: |   selector: | ||||||
|     matchLabels: |     matchLabels: | ||||||
|       kubevirt.io: virt-operator |       kubevirt.io: virt-operator | ||||||
| @@ -1307,7 +1279,17 @@ spec: | |||||||
|       name: virt-operator |       name: virt-operator | ||||||
|     spec: |     spec: | ||||||
|       affinity: |       affinity: | ||||||
| {{- .Values.operator.affinity | toYaml | nindent 8 }} |         podAntiAffinity: | ||||||
|  |           preferredDuringSchedulingIgnoredDuringExecution: | ||||||
|  |             - podAffinityTerm: | ||||||
|  |                 labelSelector: | ||||||
|  |                   matchExpressions: | ||||||
|  |                     - key: kubevirt.io | ||||||
|  |                       operator: In | ||||||
|  |                       values: | ||||||
|  |                         - virt-operator | ||||||
|  |                 topologyKey: kubernetes.io/hostname | ||||||
|  |               weight: 1 | ||||||
|       containers: |       containers: | ||||||
|         - args: |         - args: | ||||||
|             - --port |             - --port | ||||||
| @@ -1343,7 +1325,9 @@ spec: | |||||||
|             initialDelaySeconds: 5 |             initialDelaySeconds: 5 | ||||||
|             timeoutSeconds: 10 |             timeoutSeconds: 10 | ||||||
|           resources: |           resources: | ||||||
| {{- .Values.operator.resources | toYaml | nindent 12 }} |             requests: | ||||||
|  |               cpu: 10m | ||||||
|  |               memory: 450Mi | ||||||
|           securityContext: |           securityContext: | ||||||
|             allowPrivilegeEscalation: false |             allowPrivilegeEscalation: false | ||||||
|             capabilities: |             capabilities: | ||||||
|   | |||||||
| @@ -20,10 +20,6 @@ spec: | |||||||
|   {{- if .Values.kubevirt.uninstallStrategy }} |   {{- if .Values.kubevirt.uninstallStrategy }} | ||||||
|   uninstallStrategy: {{ .Values.kubevirt.uninstallStrategy }} |   uninstallStrategy: {{ .Values.kubevirt.uninstallStrategy }} | ||||||
|   {{- end }} |   {{- end }} | ||||||
|   {{- with .Values.kubevirt.workloads }} |  | ||||||
|   workloads: |  | ||||||
|   {{- toYaml . | nindent 4 }} |  | ||||||
|   {{- end }} |  | ||||||
|   {{- with .Values.kubevirt.workloadUpdateStrategy }} |   {{- with .Values.kubevirt.workloadUpdateStrategy }} | ||||||
|   workloadUpdateStrategy: |   workloadUpdateStrategy: | ||||||
|   {{- toYaml . | nindent 4 }} |   {{- toYaml . | nindent 4 }} | ||||||
|   | |||||||
| @@ -1,24 +1,7 @@ | |||||||
| operator: | operator: | ||||||
|   image: registry.suse.com/suse/sles/15.6/virt-operator |   image: registry.suse.com/suse/sles/15.6/virt-operator | ||||||
|   version: 1.4.0-150600.5.15.1 |   version: 1.3.1-150600.5.9.1 | ||||||
|   replicas: 2 |  | ||||||
|   pullPolicy: IfNotPresent |   pullPolicy: IfNotPresent | ||||||
|   affinity: |  | ||||||
|     podAntiAffinity: |  | ||||||
|       preferredDuringSchedulingIgnoredDuringExecution: |  | ||||||
|         - podAffinityTerm: |  | ||||||
|             labelSelector: |  | ||||||
|               matchExpressions: |  | ||||||
|                 - key: kubevirt.io |  | ||||||
|                   operator: In |  | ||||||
|                   values: |  | ||||||
|                     - virt-operator |  | ||||||
|             topologyKey: kubernetes.io/hostname |  | ||||||
|           weight: 1 |  | ||||||
|   resources: |  | ||||||
|     requests: |  | ||||||
|       cpu: 10m |  | ||||||
|       memory: 450Mi |  | ||||||
|  |  | ||||||
| kubevirt: | kubevirt: | ||||||
|   # Holds kubevirt configurations. Same as the virt-configMap. |   # Holds kubevirt configurations. Same as the virt-configMap. | ||||||
| @@ -31,8 +14,6 @@ kubevirt: | |||||||
|   # Specifies if KubeVirt can be deleted if workloads are still present. |   # Specifies if KubeVirt can be deleted if workloads are still present. | ||||||
|   # This is mainly a precaution to avoid accidental data loss. |   # This is mainly a precaution to avoid accidental data loss. | ||||||
|   uninstallStrategy: "" |   uninstallStrategy: "" | ||||||
|   # Selectors and tolerations that should apply to KubeVirt workloads. |  | ||||||
|   workloads: {} |  | ||||||
|   # WorkloadUpdateStrategy defines at the cluster level how to handle automated workload updates. |   # WorkloadUpdateStrategy defines at the cluster level how to handle automated workload updates. | ||||||
|   workloadUpdateStrategy: {} |   workloadUpdateStrategy: {} | ||||||
|   # Optionally enable ServiceMonitor for prometheus, see |   # Optionally enable ServiceMonitor for prometheus, see | ||||||
| @@ -40,7 +21,7 @@ kubevirt: | |||||||
|   monitorAccount: "" |   monitorAccount: "" | ||||||
|   monitorNamespace: "" |   monitorNamespace: "" | ||||||
|  |  | ||||||
| hookImage: registry.rancher.com/rancher/kubectl:v1.30.10 | hookImage: rancher/kubectl:v1.30.2 | ||||||
| hookRestartPolicy: OnFailure | hookRestartPolicy: OnFailure | ||||||
| hookSecurityContext: | hookSecurityContext: | ||||||
|   seccompProfile: |   seccompProfile: | ||||||
|   | |||||||
| @@ -1,22 +1,22 @@ | |||||||
| #!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.1 | #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0 | ||||||
| #!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.1 | #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1 | ||||||
| #!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.1-%RELEASE% | #!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/kube-version: '>= v1.26.0-0' | ||||||
|   catalog.cattle.io/namespace: cattle-ui-plugin-system |   catalog.cattle.io/namespace: cattle-ui-plugin-system | ||||||
|   catalog.cattle.io/os: linux |   catalog.cattle.io/os: linux | ||||||
|   catalog.cattle.io/permits-os: linux, windows |   catalog.cattle.io/permits-os: linux, windows | ||||||
|  |   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/display-name: KubeVirt |   catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0" | ||||||
|   catalog.cattle.io/rancher-version: '>= 2.11.0-0' |  | ||||||
|   catalog.cattle.io/ui-extensions-version: '>= 3.0.4 < 4.0.0' |  | ||||||
|   catalog.cattle.io/kube-version: '>= v1.26.0-0' |  | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 303.0.1+up1.3.1 | appVersion: 302.0.0+up1.2.1 | ||||||
| description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard' | description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard' | ||||||
| name: kubevirt-dashboard-extension | name: kubevirt-dashboard-extension | ||||||
| type: application | type: application | ||||||
| version: "%%CHART_MAJOR%%.0.1+up1.3.1" | version: "%%CHART_MAJOR%%.0.0+up1.2.1" | ||||||
| icon: >- | icon: >- | ||||||
|   https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg |   https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg | ||||||
|   | |||||||
| @@ -9,8 +9,8 @@ | |||||||
|   </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> | ||||||
|     <param name="eval">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?chart_prefix})</param> |     <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> | ||||||
|     <param name="var">CHART_PREFIX</param> |     <param name="var">IMG_PREFIX</param> | ||||||
|     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> |     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> | ||||||
|     <param name="var">CHART_MAJOR</param> |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -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/303.0.1+up1.3.1 |     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 }} | ||||||
| @@ -7,6 +7,6 @@ plugin: | |||||||
|   noAuth: false |   noAuth: false | ||||||
|   metadata: |   metadata: | ||||||
|     catalog.cattle.io/display-name: KubeVirt |     catalog.cattle.io/display-name: KubeVirt | ||||||
|     catalog.cattle.io/rancher-version: ">= 2.11.0-0" |     catalog.cattle.io/rancher-version: ">= 2.10.0-0" | ||||||
|     catalog.cattle.io/ui-extensions-version: ">= 3.0.4 < 4.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: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.2_up0.11.0 | #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.1_up0.9.4 | ||||||
| #!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.2_up0.11.0-%RELEASE% | #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.1_up0.9.4-%RELEASE% | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 0.11.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.9.1 |   version: 0.6.1 | ||||||
| - alias: metal3-ironic | - alias: metal3-ironic | ||||||
|   name: ironic |   name: ironic | ||||||
|   repository: file://./charts/ironic |   repository: file://./charts/ironic | ||||||
|   version: 0.10.0 |   version: 0.9.3 | ||||||
| - alias: metal3-mariadb | - alias: metal3-mariadb | ||||||
|   condition: global.enable_mariadb |   condition: global.enable_mariadb | ||||||
|   name: mariadb |   name: mariadb | ||||||
| @@ -25,4 +25,4 @@ description: A Helm chart that installs all of the dependencies needed for Metal | |||||||
| 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.2+up0.11.0" | version: "%%CHART_MAJOR%%.0.1+up0.9.4" | ||||||
|   | |||||||
| @@ -9,8 +9,8 @@ | |||||||
|   </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> | ||||||
|     <param name="eval">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?chart_prefix})</param> |     <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param> | ||||||
|     <param name="var">CHART_PREFIX</param> |     <param name="var">IMG_PREFIX</param> | ||||||
|     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> |     <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param> | ||||||
|     <param name="var">CHART_MAJOR</param> |     <param name="var">CHART_MAJOR</param> | ||||||
|   </service> |   </service> | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| appVersion: 0.9.1 | 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.9.1 | version: 0.6.1 | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     controller-gen.kubebuilder.io/version: v0.16.5 |     controller-gen.kubebuilder.io/version: v0.12.1 | ||||||
|   labels: |   labels: | ||||||
|     clusterctl.cluster.x-k8s.io: "" |     clusterctl.cluster.x-k8s.io: "" | ||||||
|   name: bmceventsubscriptions.metal3.io |   name: bmceventsubscriptions.metal3.io | ||||||
| @@ -34,19 +34,14 @@ spec: | |||||||
|         description: BMCEventSubscription is the Schema for the fast eventing API |         description: BMCEventSubscription is the Schema for the fast eventing API | ||||||
|         properties: |         properties: | ||||||
|           apiVersion: |           apiVersion: | ||||||
|             description: |- |             description: 'APIVersion defines the versioned schema of this representation | ||||||
|               APIVersion defines the versioned schema of this representation of an object. |               of an object. Servers should convert recognized schemas to the latest | ||||||
|               Servers should convert recognized schemas to the latest internal value, and |               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||||||
|               may reject unrecognized values. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |  | ||||||
|             type: string |             type: string | ||||||
|           kind: |           kind: | ||||||
|             description: |- |             description: 'Kind is a string value representing the REST resource this | ||||||
|               Kind is a string value representing the REST resource this object represents. |               object represents. Servers may infer this from the endpoint the client | ||||||
|               Servers may infer this from the endpoint the client submits requests to. |               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||||||
|               Cannot be updated. |  | ||||||
|               In CamelCase. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |  | ||||||
|             type: string |             type: string | ||||||
|           metadata: |           metadata: | ||||||
|             type: object |             type: object | ||||||
| @@ -62,9 +57,8 @@ spec: | |||||||
|                 description: A reference to a BareMetalHost |                 description: A reference to a BareMetalHost | ||||||
|                 type: string |                 type: string | ||||||
|               httpHeadersRef: |               httpHeadersRef: | ||||||
|                 description: |- |                 description: A secret containing HTTP headers which should be passed | ||||||
|                   A secret containing HTTP headers which should be passed along to the Destination |                   along to the Destination when making a request | ||||||
|                   when making a request |  | ||||||
|                 properties: |                 properties: | ||||||
|                   name: |                   name: | ||||||
|                     description: name is unique within a namespace to reference a |                     description: name is unique within a namespace to reference a | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     controller-gen.kubebuilder.io/version: v0.16.5 |     controller-gen.kubebuilder.io/version: v0.12.1 | ||||||
|   name: dataimages.metal3.io |   name: dataimages.metal3.io | ||||||
| spec: | spec: | ||||||
|   group: metal3.io |   group: metal3.io | ||||||
| @@ -20,19 +20,14 @@ spec: | |||||||
|         description: DataImage is the Schema for the dataimages API. |         description: DataImage is the Schema for the dataimages API. | ||||||
|         properties: |         properties: | ||||||
|           apiVersion: |           apiVersion: | ||||||
|             description: |- |             description: 'APIVersion defines the versioned schema of this representation | ||||||
|               APIVersion defines the versioned schema of this representation of an object. |               of an object. Servers should convert recognized schemas to the latest | ||||||
|               Servers should convert recognized schemas to the latest internal value, and |               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||||||
|               may reject unrecognized values. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |  | ||||||
|             type: string |             type: string | ||||||
|           kind: |           kind: | ||||||
|             description: |- |             description: 'Kind is a string value representing the REST resource this | ||||||
|               Kind is a string value representing the REST resource this object represents. |               object represents. Servers may infer this from the endpoint the client | ||||||
|               Servers may infer this from the endpoint the client submits requests to. |               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||||||
|               Cannot be updated. |  | ||||||
|               In CamelCase. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |  | ||||||
|             type: string |             type: string | ||||||
|           metadata: |           metadata: | ||||||
|             type: object |             type: object | ||||||
| @@ -40,8 +35,7 @@ spec: | |||||||
|             description: DataImageSpec defines the desired state of DataImage. |             description: DataImageSpec defines the desired state of DataImage. | ||||||
|             properties: |             properties: | ||||||
|               url: |               url: | ||||||
|                 description: |- |                 description: Url is the address of the dataImage that we want to attach | ||||||
|                   Url is the address of the dataImage that we want to attach |  | ||||||
|                   to a BareMetalHost |                   to a BareMetalHost | ||||||
|                 type: string |                 type: string | ||||||
|             required: |             required: | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     controller-gen.kubebuilder.io/version: v0.16.5 |     controller-gen.kubebuilder.io/version: v0.12.1 | ||||||
|   labels: |   labels: | ||||||
|     clusterctl.cluster.x-k8s.io: "" |     clusterctl.cluster.x-k8s.io: "" | ||||||
|   name: firmwareschemas.metal3.io |   name: firmwareschemas.metal3.io | ||||||
| @@ -22,19 +22,14 @@ spec: | |||||||
|         description: FirmwareSchema is the Schema for the firmwareschemas API. |         description: FirmwareSchema is the Schema for the firmwareschemas API. | ||||||
|         properties: |         properties: | ||||||
|           apiVersion: |           apiVersion: | ||||||
|             description: |- |             description: 'APIVersion defines the versioned schema of this representation | ||||||
|               APIVersion defines the versioned schema of this representation of an object. |               of an object. Servers should convert recognized schemas to the latest | ||||||
|               Servers should convert recognized schemas to the latest internal value, and |               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||||||
|               may reject unrecognized values. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |  | ||||||
|             type: string |             type: string | ||||||
|           kind: |           kind: | ||||||
|             description: |- |             description: 'Kind is a string value representing the REST resource this | ||||||
|               Kind is a string value representing the REST resource this object represents. |               object represents. Servers may infer this from the endpoint the client | ||||||
|               Servers may infer this from the endpoint the client submits requests to. |               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||||||
|               Cannot be updated. |  | ||||||
|               In CamelCase. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |  | ||||||
|             type: string |             type: string | ||||||
|           metadata: |           metadata: | ||||||
|             type: object |             type: object | ||||||
| @@ -78,9 +73,8 @@ spec: | |||||||
|                       description: Whether or not this setting is read only. |                       description: Whether or not this setting is read only. | ||||||
|                       type: boolean |                       type: boolean | ||||||
|                     unique: |                     unique: | ||||||
|                       description: |- |                       description: Whether or not this setting's value is unique to | ||||||
|                         Whether or not this setting's value is unique to this node, e.g. |                         this node, e.g. a serial number. | ||||||
|                         a serial number. |  | ||||||
|                       type: boolean |                       type: boolean | ||||||
|                     upper_bound: |                     upper_bound: | ||||||
|                       description: The highest value for an Integer type setting. |                       description: The highest value for an Integer type setting. | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     controller-gen.kubebuilder.io/version: v0.16.5 |     controller-gen.kubebuilder.io/version: v0.12.1 | ||||||
|   labels: |   labels: | ||||||
|     clusterctl.cluster.x-k8s.io: "" |     clusterctl.cluster.x-k8s.io: "" | ||||||
|   name: hardwaredata.metal3.io |   name: hardwaredata.metal3.io | ||||||
| @@ -29,19 +29,14 @@ spec: | |||||||
|         description: HardwareData is the Schema for the hardwaredata API. |         description: HardwareData is the Schema for the hardwaredata API. | ||||||
|         properties: |         properties: | ||||||
|           apiVersion: |           apiVersion: | ||||||
|             description: |- |             description: 'APIVersion defines the versioned schema of this representation | ||||||
|               APIVersion defines the versioned schema of this representation of an object. |               of an object. Servers should convert recognized schemas to the latest | ||||||
|               Servers should convert recognized schemas to the latest internal value, and |               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||||||
|               may reject unrecognized values. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |  | ||||||
|             type: string |             type: string | ||||||
|           kind: |           kind: | ||||||
|             description: |- |             description: 'Kind is a string value representing the REST resource this | ||||||
|               Kind is a string value representing the REST resource this object represents. |               object represents. Servers may infer this from the endpoint the client | ||||||
|               Servers may infer this from the endpoint the client submits requests to. |               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||||||
|               Cannot be updated. |  | ||||||
|               In CamelCase. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |  | ||||||
|             type: string |             type: string | ||||||
|           metadata: |           metadata: | ||||||
|             type: object |             type: object | ||||||
| @@ -52,7 +47,7 @@ spec: | |||||||
|                 description: The hardware discovered on the host during its inspection. |                 description: The hardware discovered on the host during its inspection. | ||||||
|                 properties: |                 properties: | ||||||
|                   cpu: |                   cpu: | ||||||
|                     description: Details of the CPU(s) in the system. |                     description: CPU describes one processor on the host. | ||||||
|                     properties: |                     properties: | ||||||
|                       arch: |                       arch: | ||||||
|                         type: string |                         type: string | ||||||
| @@ -70,7 +65,7 @@ spec: | |||||||
|                         type: string |                         type: string | ||||||
|                     type: object |                     type: object | ||||||
|                   firmware: |                   firmware: | ||||||
|                     description: System firmware information. |                     description: Firmware describes the firmware on the host. | ||||||
|                     properties: |                     properties: | ||||||
|                       bios: |                       bios: | ||||||
|                         description: The BIOS for this firmware |                         description: The BIOS for this firmware | ||||||
| @@ -89,15 +84,14 @@ spec: | |||||||
|                   hostname: |                   hostname: | ||||||
|                     type: string |                     type: string | ||||||
|                   nics: |                   nics: | ||||||
|                     description: List of network interfaces for the host. |  | ||||||
|                     items: |                     items: | ||||||
|                       description: NIC describes one network interface on the host. |                       description: NIC describes one network interface on the host. | ||||||
|                       properties: |                       properties: | ||||||
|                         ip: |                         ip: | ||||||
|                           description: |- |                           description: The IP address of the interface. This will | ||||||
|                             The IP address of the interface. This will be an IPv4 or IPv6 address |                             be an IPv4 or IPv6 address if one is present.  If both | ||||||
|                             if one is present.  If both IPv4 and IPv6 addresses are present in a |                             IPv4 and IPv6 addresses are present in a dual-stack environment, | ||||||
|                             dual-stack environment, two nics will be output, one with each IP. |                             two nics will be output, one with each IP. | ||||||
|                           type: string |                           type: string | ||||||
|                         mac: |                         mac: | ||||||
|                           description: The device MAC address |                           description: The device MAC address | ||||||
| @@ -140,20 +134,16 @@ spec: | |||||||
|                       type: object |                       type: object | ||||||
|                     type: array |                     type: array | ||||||
|                   ramMebibytes: |                   ramMebibytes: | ||||||
|                     description: The host's amount of memory in Mebibytes. |  | ||||||
|                     type: integer |                     type: integer | ||||||
|                   storage: |                   storage: | ||||||
|                     description: List of storage (disk, SSD, etc.) available to the |  | ||||||
|                       host. |  | ||||||
|                     items: |                     items: | ||||||
|                       description: Storage describes one storage device (disk, SSD, |                       description: Storage describes one storage device (disk, SSD, | ||||||
|                         etc.) on the host. |                         etc.) on the host. | ||||||
|                       properties: |                       properties: | ||||||
|                         alternateNames: |                         alternateNames: | ||||||
|                           description: |- |                           description: A list of alternate Linux device names of the | ||||||
|                             A list of alternate Linux device names of the disk, e.g. "/dev/sda". |                             disk, e.g. "/dev/sda". Note that this list is not exhaustive, | ||||||
|                             Note that this list is not exhaustive, and names may not be stable |                             and names may not be stable across reboots. | ||||||
|                             across reboots. |  | ||||||
|                           items: |                           items: | ||||||
|                             type: string |                             type: string | ||||||
|                           type: array |                           type: array | ||||||
| @@ -164,17 +154,15 @@ spec: | |||||||
|                           description: Hardware model |                           description: Hardware model | ||||||
|                           type: string |                           type: string | ||||||
|                         name: |                         name: | ||||||
|                           description: |- |                           description: A Linux device name of the disk, e.g. "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". | ||||||
|                             A Linux device name of the disk, e.g. |                             This will be a name that is stable across reboots if one | ||||||
|                             "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". This will be a name |                             is available. | ||||||
|                             that is stable across reboots if one is available. |  | ||||||
|                           type: string |                           type: string | ||||||
|                         rotational: |                         rotational: | ||||||
|                           description: |- |                           description: Whether this disk represents rotational storage. | ||||||
|                             Whether this disk represents rotational storage. |                             This field is not recommended for usage, please prefer | ||||||
|                             This field is not recommended for usage, please |                             using 'Type' field instead, this field will be deprecated | ||||||
|                             prefer using 'Type' field instead, this field |                             eventually. | ||||||
|                             will be deprecated eventually. |  | ||||||
|                           type: boolean |                           type: boolean | ||||||
|                         serialNumber: |                         serialNumber: | ||||||
|                           description: The serial number of the device |                           description: The serial number of the device | ||||||
| @@ -205,7 +193,8 @@ spec: | |||||||
|                       type: object |                       type: object | ||||||
|                     type: array |                     type: array | ||||||
|                   systemVendor: |                   systemVendor: | ||||||
|                     description: System vendor information. |                     description: HardwareSystemVendor stores details about the whole | ||||||
|  |                       hardware system. | ||||||
|                     properties: |                     properties: | ||||||
|                       manufacturer: |                       manufacturer: | ||||||
|                         type: string |                         type: string | ||||||
|   | |||||||
| @@ -3,9 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     controller-gen.kubebuilder.io/version: v0.16.5 |     controller-gen.kubebuilder.io/version: v0.12.1 | ||||||
|   labels: |  | ||||||
|     clusterctl.cluster.x-k8s.io: "" |  | ||||||
|   name: hostfirmwarecomponents.metal3.io |   name: hostfirmwarecomponents.metal3.io | ||||||
| spec: | spec: | ||||||
|   group: metal3.io |   group: metal3.io | ||||||
| @@ -23,19 +21,14 @@ spec: | |||||||
|           API. |           API. | ||||||
|         properties: |         properties: | ||||||
|           apiVersion: |           apiVersion: | ||||||
|             description: |- |             description: 'APIVersion defines the versioned schema of this representation | ||||||
|               APIVersion defines the versioned schema of this representation of an object. |               of an object. Servers should convert recognized schemas to the latest | ||||||
|               Servers should convert recognized schemas to the latest internal value, and |               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||||||
|               may reject unrecognized values. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |  | ||||||
|             type: string |             type: string | ||||||
|           kind: |           kind: | ||||||
|             description: |- |             description: 'Kind is a string value representing the REST resource this | ||||||
|               Kind is a string value representing the REST resource this object represents. |               object represents. Servers may infer this from the endpoint the client | ||||||
|               Servers may infer this from the endpoint the client submits requests to. |               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||||||
|               Cannot be updated. |  | ||||||
|               In CamelCase. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |  | ||||||
|             type: string |             type: string | ||||||
|           metadata: |           metadata: | ||||||
|             type: object |             type: object | ||||||
| @@ -89,35 +82,43 @@ spec: | |||||||
|                 description: Track whether updates stored in the spec are valid based |                 description: Track whether updates stored in the spec are valid based | ||||||
|                   on the schema |                   on the schema | ||||||
|                 items: |                 items: | ||||||
|                   description: Condition contains details for one aspect of the current |                   description: "Condition contains details for one aspect of the current | ||||||
|                     state of this API Resource. |                     state of this API Resource. --- This struct is intended for direct | ||||||
|  |                     use as an array at the field path .status.conditions.  For example, | ||||||
|  |                     \n type FooStatus struct{ // Represents the observations of a | ||||||
|  |                     foo's current state. // Known .status.conditions.type are: \"Available\", | ||||||
|  |                     \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge | ||||||
|  |                     // +listType=map // +listMapKey=type Conditions []metav1.Condition | ||||||
|  |                     `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" | ||||||
|  |                     protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" | ||||||
|                   properties: |                   properties: | ||||||
|                     lastTransitionTime: |                     lastTransitionTime: | ||||||
|                       description: |- |                       description: lastTransitionTime is the last time the condition | ||||||
|                         lastTransitionTime is the last time the condition transitioned from one status to another. |                         transitioned from one status to another. This should be when | ||||||
|                         This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable. |                         the underlying condition changed.  If that is not known, then | ||||||
|  |                         using the time when the API field changed is acceptable. | ||||||
|                       format: date-time |                       format: date-time | ||||||
|                       type: string |                       type: string | ||||||
|                     message: |                     message: | ||||||
|                       description: |- |                       description: message is a human readable message indicating | ||||||
|                         message is a human readable message indicating details about the transition. |                         details about the transition. This may be an empty string. | ||||||
|                         This may be an empty string. |  | ||||||
|                       maxLength: 32768 |                       maxLength: 32768 | ||||||
|                       type: string |                       type: string | ||||||
|                     observedGeneration: |                     observedGeneration: | ||||||
|                       description: |- |                       description: observedGeneration represents the .metadata.generation | ||||||
|                         observedGeneration represents the .metadata.generation that the condition was set based upon. |                         that the condition was set based upon. For instance, if .metadata.generation | ||||||
|                         For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date |                         is currently 12, but the .status.conditions[x].observedGeneration | ||||||
|                         with respect to the current state of the instance. |                         is 9, the condition is out of date with respect to the current | ||||||
|  |                         state of the instance. | ||||||
|                       format: int64 |                       format: int64 | ||||||
|                       minimum: 0 |                       minimum: 0 | ||||||
|                       type: integer |                       type: integer | ||||||
|                     reason: |                     reason: | ||||||
|                       description: |- |                       description: reason contains a programmatic identifier indicating | ||||||
|                         reason contains a programmatic identifier indicating the reason for the condition's last transition. |                         the reason for the condition's last transition. Producers | ||||||
|                         Producers of specific condition types may define expected values and meanings for this field, |                         of specific condition types may define expected values and | ||||||
|                         and whether the values are considered a guaranteed API. |                         meanings for this field, and whether the values are considered | ||||||
|                         The value should be a CamelCase string. |                         a guaranteed API. The value should be a CamelCase string. | ||||||
|                         This field may not be empty. |                         This field may not be empty. | ||||||
|                       maxLength: 1024 |                       maxLength: 1024 | ||||||
|                       minLength: 1 |                       minLength: 1 | ||||||
| @@ -132,6 +133,10 @@ spec: | |||||||
|                       type: string |                       type: string | ||||||
|                     type: |                     type: | ||||||
|                       description: type of condition in CamelCase or in foo.example.com/CamelCase. |                       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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) | ||||||
|                       maxLength: 316 |                       maxLength: 316 | ||||||
|                       pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ |                       pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ | ||||||
|                       type: string |                       type: string | ||||||
| @@ -151,9 +156,8 @@ spec: | |||||||
|                 format: date-time |                 format: date-time | ||||||
|                 type: string |                 type: string | ||||||
|               updates: |               updates: | ||||||
|                 description: |- |                 description: Updates is the list of all firmware components that should | ||||||
|                   Updates is the list of all firmware components that should be updated |                   be updated they are specified via name and url fields. | ||||||
|                   they are specified via name and url fields. |  | ||||||
|                 items: |                 items: | ||||||
|                   description: FirmwareUpdate defines a firmware update specification. |                   description: FirmwareUpdate defines a firmware update specification. | ||||||
|                   properties: |                   properties: | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     controller-gen.kubebuilder.io/version: v0.16.5 |     controller-gen.kubebuilder.io/version: v0.12.1 | ||||||
|   labels: |   labels: | ||||||
|     clusterctl.cluster.x-k8s.io: "" |     clusterctl.cluster.x-k8s.io: "" | ||||||
|   name: hostfirmwaresettings.metal3.io |   name: hostfirmwaresettings.metal3.io | ||||||
| @@ -25,19 +25,14 @@ spec: | |||||||
|           API. |           API. | ||||||
|         properties: |         properties: | ||||||
|           apiVersion: |           apiVersion: | ||||||
|             description: |- |             description: 'APIVersion defines the versioned schema of this representation | ||||||
|               APIVersion defines the versioned schema of this representation of an object. |               of an object. Servers should convert recognized schemas to the latest | ||||||
|               Servers should convert recognized schemas to the latest internal value, and |               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||||||
|               may reject unrecognized values. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |  | ||||||
|             type: string |             type: string | ||||||
|           kind: |           kind: | ||||||
|             description: |- |             description: 'Kind is a string value representing the REST resource this | ||||||
|               Kind is a string value representing the REST resource this object represents. |               object represents. Servers may infer this from the endpoint the client | ||||||
|               Servers may infer this from the endpoint the client submits requests to. |               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||||||
|               Cannot be updated. |  | ||||||
|               In CamelCase. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |  | ||||||
|             type: string |             type: string | ||||||
|           metadata: |           metadata: | ||||||
|             type: object |             type: object | ||||||
| @@ -64,35 +59,43 @@ spec: | |||||||
|                 description: Track whether settings stored in the spec are valid based |                 description: Track whether settings stored in the spec are valid based | ||||||
|                   on the schema |                   on the schema | ||||||
|                 items: |                 items: | ||||||
|                   description: Condition contains details for one aspect of the current |                   description: "Condition contains details for one aspect of the current | ||||||
|                     state of this API Resource. |                     state of this API Resource. --- This struct is intended for direct | ||||||
|  |                     use as an array at the field path .status.conditions.  For example, | ||||||
|  |                     \n type FooStatus struct{ // Represents the observations of a | ||||||
|  |                     foo's current state. // Known .status.conditions.type are: \"Available\", | ||||||
|  |                     \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge | ||||||
|  |                     // +listType=map // +listMapKey=type Conditions []metav1.Condition | ||||||
|  |                     `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" | ||||||
|  |                     protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" | ||||||
|                   properties: |                   properties: | ||||||
|                     lastTransitionTime: |                     lastTransitionTime: | ||||||
|                       description: |- |                       description: lastTransitionTime is the last time the condition | ||||||
|                         lastTransitionTime is the last time the condition transitioned from one status to another. |                         transitioned from one status to another. This should be when | ||||||
|                         This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable. |                         the underlying condition changed.  If that is not known, then | ||||||
|  |                         using the time when the API field changed is acceptable. | ||||||
|                       format: date-time |                       format: date-time | ||||||
|                       type: string |                       type: string | ||||||
|                     message: |                     message: | ||||||
|                       description: |- |                       description: message is a human readable message indicating | ||||||
|                         message is a human readable message indicating details about the transition. |                         details about the transition. This may be an empty string. | ||||||
|                         This may be an empty string. |  | ||||||
|                       maxLength: 32768 |                       maxLength: 32768 | ||||||
|                       type: string |                       type: string | ||||||
|                     observedGeneration: |                     observedGeneration: | ||||||
|                       description: |- |                       description: observedGeneration represents the .metadata.generation | ||||||
|                         observedGeneration represents the .metadata.generation that the condition was set based upon. |                         that the condition was set based upon. For instance, if .metadata.generation | ||||||
|                         For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date |                         is currently 12, but the .status.conditions[x].observedGeneration | ||||||
|                         with respect to the current state of the instance. |                         is 9, the condition is out of date with respect to the current | ||||||
|  |                         state of the instance. | ||||||
|                       format: int64 |                       format: int64 | ||||||
|                       minimum: 0 |                       minimum: 0 | ||||||
|                       type: integer |                       type: integer | ||||||
|                     reason: |                     reason: | ||||||
|                       description: |- |                       description: reason contains a programmatic identifier indicating | ||||||
|                         reason contains a programmatic identifier indicating the reason for the condition's last transition. |                         the reason for the condition's last transition. Producers | ||||||
|                         Producers of specific condition types may define expected values and meanings for this field, |                         of specific condition types may define expected values and | ||||||
|                         and whether the values are considered a guaranteed API. |                         meanings for this field, and whether the values are considered | ||||||
|                         The value should be a CamelCase string. |                         a guaranteed API. The value should be a CamelCase string. | ||||||
|                         This field may not be empty. |                         This field may not be empty. | ||||||
|                       maxLength: 1024 |                       maxLength: 1024 | ||||||
|                       minLength: 1 |                       minLength: 1 | ||||||
| @@ -107,6 +110,10 @@ spec: | |||||||
|                       type: string |                       type: string | ||||||
|                     type: |                     type: | ||||||
|                       description: type of condition in CamelCase or in foo.example.com/CamelCase. |                       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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) | ||||||
|                       maxLength: 316 |                       maxLength: 316 | ||||||
|                       pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ |                       pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ | ||||||
|                       type: string |                       type: string | ||||||
| @@ -126,9 +133,8 @@ spec: | |||||||
|                 format: date-time |                 format: date-time | ||||||
|                 type: string |                 type: string | ||||||
|               schema: |               schema: | ||||||
|                 description: |- |                 description: FirmwareSchema is a reference to the Schema used to describe | ||||||
|                   FirmwareSchema is a reference to the Schema used to describe each |                   each FirmwareSetting. By default, this will be a Schema in the same | ||||||
|                   FirmwareSetting. By default, this will be a Schema in the same |  | ||||||
|                   Namespace as the settings but it can be overwritten in the Spec |                   Namespace as the settings but it can be overwritten in the Spec | ||||||
|                 properties: |                 properties: | ||||||
|                   name: |                   name: | ||||||
|   | |||||||
| @@ -1,62 +0,0 @@ | |||||||
| --- |  | ||||||
| apiVersion: apiextensions.k8s.io/v1 |  | ||||||
| kind: CustomResourceDefinition |  | ||||||
| metadata: |  | ||||||
|   annotations: |  | ||||||
|     controller-gen.kubebuilder.io/version: v0.16.5 |  | ||||||
|   labels: |  | ||||||
|     clusterctl.cluster.x-k8s.io: "" |  | ||||||
|   name: hostupdatepolicies.metal3.io |  | ||||||
| spec: |  | ||||||
|   group: metal3.io |  | ||||||
|   names: |  | ||||||
|     kind: HostUpdatePolicy |  | ||||||
|     listKind: HostUpdatePolicyList |  | ||||||
|     plural: hostupdatepolicies |  | ||||||
|     singular: hostupdatepolicy |  | ||||||
|   scope: Namespaced |  | ||||||
|   versions: |  | ||||||
|   - name: v1alpha1 |  | ||||||
|     schema: |  | ||||||
|       openAPIV3Schema: |  | ||||||
|         description: HostUpdatePolicy is the Schema for the hostupdatepolicy 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: HostUpdatePolicySpec defines the desired state of HostUpdatePolicy. |  | ||||||
|             properties: |  | ||||||
|               firmwareSettings: |  | ||||||
|                 description: Defines policy for changing firmware settings |  | ||||||
|                 enum: |  | ||||||
|                 - onPreparing |  | ||||||
|                 - onReboot |  | ||||||
|                 type: string |  | ||||||
|               firmwareUpdates: |  | ||||||
|                 description: Defines policy for updating firmware |  | ||||||
|                 enum: |  | ||||||
|                 - onPreparing |  | ||||||
|                 - onReboot |  | ||||||
|                 type: string |  | ||||||
|             type: object |  | ||||||
|           status: |  | ||||||
|             description: HostUpdatePolicyStatus defines the observed state of HostUpdatePolicy. |  | ||||||
|             type: object |  | ||||||
|         type: object |  | ||||||
|     served: true |  | ||||||
|     storage: true |  | ||||||
| @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 | |||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     controller-gen.kubebuilder.io/version: v0.16.5 |     controller-gen.kubebuilder.io/version: v0.12.1 | ||||||
|   labels: |   labels: | ||||||
|     clusterctl.cluster.x-k8s.io: "" |     clusterctl.cluster.x-k8s.io: "" | ||||||
|   name: preprovisioningimages.metal3.io |   name: preprovisioningimages.metal3.io | ||||||
| @@ -34,19 +34,14 @@ spec: | |||||||
|           API. |           API. | ||||||
|         properties: |         properties: | ||||||
|           apiVersion: |           apiVersion: | ||||||
|             description: |- |             description: 'APIVersion defines the versioned schema of this representation | ||||||
|               APIVersion defines the versioned schema of this representation of an object. |               of an object. Servers should convert recognized schemas to the latest | ||||||
|               Servers should convert recognized schemas to the latest internal value, and |               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||||||
|               may reject unrecognized values. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |  | ||||||
|             type: string |             type: string | ||||||
|           kind: |           kind: | ||||||
|             description: |- |             description: 'Kind is a string value representing the REST resource this | ||||||
|               Kind is a string value representing the REST resource this object represents. |               object represents. Servers may infer this from the endpoint the client | ||||||
|               Servers may infer this from the endpoint the client submits requests to. |               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||||||
|               Cannot be updated. |  | ||||||
|               In CamelCase. |  | ||||||
|               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |  | ||||||
|             type: string |             type: string | ||||||
|           metadata: |           metadata: | ||||||
|             type: object |             type: object | ||||||
| @@ -67,9 +62,8 @@ spec: | |||||||
|                   to build the image. |                   to build the image. | ||||||
|                 type: string |                 type: string | ||||||
|               networkDataName: |               networkDataName: | ||||||
|                 description: |- |                 description: networkDataName is the name of a Secret in the local | ||||||
|                   networkDataName is the name of a Secret in the local namespace that |                   namespace that contains network data to build in to the image. | ||||||
|                   contains network data to build in to the image. |  | ||||||
|                 type: string |                 type: string | ||||||
|             type: object |             type: object | ||||||
|           status: |           status: | ||||||
| @@ -83,35 +77,43 @@ spec: | |||||||
|               conditions: |               conditions: | ||||||
|                 description: conditions describe the state of the built image |                 description: conditions describe the state of the built image | ||||||
|                 items: |                 items: | ||||||
|                   description: Condition contains details for one aspect of the current |                   description: "Condition contains details for one aspect of the current | ||||||
|                     state of this API Resource. |                     state of this API Resource. --- This struct is intended for direct | ||||||
|  |                     use as an array at the field path .status.conditions.  For example, | ||||||
|  |                     \n type FooStatus struct{ // Represents the observations of a | ||||||
|  |                     foo's current state. // Known .status.conditions.type are: \"Available\", | ||||||
|  |                     \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge | ||||||
|  |                     // +listType=map // +listMapKey=type Conditions []metav1.Condition | ||||||
|  |                     `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" | ||||||
|  |                     protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" | ||||||
|                   properties: |                   properties: | ||||||
|                     lastTransitionTime: |                     lastTransitionTime: | ||||||
|                       description: |- |                       description: lastTransitionTime is the last time the condition | ||||||
|                         lastTransitionTime is the last time the condition transitioned from one status to another. |                         transitioned from one status to another. This should be when | ||||||
|                         This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable. |                         the underlying condition changed.  If that is not known, then | ||||||
|  |                         using the time when the API field changed is acceptable. | ||||||
|                       format: date-time |                       format: date-time | ||||||
|                       type: string |                       type: string | ||||||
|                     message: |                     message: | ||||||
|                       description: |- |                       description: message is a human readable message indicating | ||||||
|                         message is a human readable message indicating details about the transition. |                         details about the transition. This may be an empty string. | ||||||
|                         This may be an empty string. |  | ||||||
|                       maxLength: 32768 |                       maxLength: 32768 | ||||||
|                       type: string |                       type: string | ||||||
|                     observedGeneration: |                     observedGeneration: | ||||||
|                       description: |- |                       description: observedGeneration represents the .metadata.generation | ||||||
|                         observedGeneration represents the .metadata.generation that the condition was set based upon. |                         that the condition was set based upon. For instance, if .metadata.generation | ||||||
|                         For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date |                         is currently 12, but the .status.conditions[x].observedGeneration | ||||||
|                         with respect to the current state of the instance. |                         is 9, the condition is out of date with respect to the current | ||||||
|  |                         state of the instance. | ||||||
|                       format: int64 |                       format: int64 | ||||||
|                       minimum: 0 |                       minimum: 0 | ||||||
|                       type: integer |                       type: integer | ||||||
|                     reason: |                     reason: | ||||||
|                       description: |- |                       description: reason contains a programmatic identifier indicating | ||||||
|                         reason contains a programmatic identifier indicating the reason for the condition's last transition. |                         the reason for the condition's last transition. Producers | ||||||
|                         Producers of specific condition types may define expected values and meanings for this field, |                         of specific condition types may define expected values and | ||||||
|                         and whether the values are considered a guaranteed API. |                         meanings for this field, and whether the values are considered | ||||||
|                         The value should be a CamelCase string. |                         a guaranteed API. The value should be a CamelCase string. | ||||||
|                         This field may not be empty. |                         This field may not be empty. | ||||||
|                       maxLength: 1024 |                       maxLength: 1024 | ||||||
|                       minLength: 1 |                       minLength: 1 | ||||||
| @@ -126,6 +128,10 @@ spec: | |||||||
|                       type: string |                       type: string | ||||||
|                     type: |                     type: | ||||||
|                       description: type of condition in CamelCase or in foo.example.com/CamelCase. |                       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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) | ||||||
|                       maxLength: 316 |                       maxLength: 316 | ||||||
|                       pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ |                       pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ | ||||||
|                       type: string |                       type: string | ||||||
| @@ -141,14 +147,13 @@ spec: | |||||||
|                 - type |                 - type | ||||||
|                 x-kubernetes-list-type: map |                 x-kubernetes-list-type: map | ||||||
|               extraKernelParams: |               extraKernelParams: | ||||||
|                 description: |- |                 description: extraKernelParams is a string with extra parameters to | ||||||
|                   extraKernelParams is a string with extra parameters to pass to the |                   pass to the kernel when booting the image over network. Only makes | ||||||
|                   kernel when booting the image over network. Only makes sense for initrd images. |                   sense for initrd images. | ||||||
|                 type: string |                 type: string | ||||||
|               format: |               format: | ||||||
|                 description: |- |                 description: 'format is the type of image that is available at the | ||||||
|                   format is the type of image that is available at the download url: |                   download url: either iso or initrd.' | ||||||
|                   either iso or initrd. |  | ||||||
|                 enum: |                 enum: | ||||||
|                 - iso |                 - iso | ||||||
|                 - initrd |                 - initrd | ||||||
| @@ -158,14 +163,12 @@ spec: | |||||||
|                   downloaded. |                   downloaded. | ||||||
|                 type: string |                 type: string | ||||||
|               kernelUrl: |               kernelUrl: | ||||||
|                 description: |- |                 description: kernelUrl is the URL from which the kernel of the image | ||||||
|                   kernelUrl is the URL from which the kernel of the image can be downloaded. |                   can be downloaded. Only makes sense for initrd images. | ||||||
|                   Only makes sense for initrd images. |  | ||||||
|                 type: string |                 type: string | ||||||
|               networkData: |               networkData: | ||||||
|                 description: |- |                 description: networkData is a reference to the version of the Secret | ||||||
|                   networkData is a reference to the version of the Secret containing the |                   containing the network data used to build the image. | ||||||
|                   network data used to build the image. |  | ||||||
|                 properties: |                 properties: | ||||||
|                   name: |                   name: | ||||||
|                     type: string |                     type: string | ||||||
|   | |||||||
| @@ -184,23 +184,3 @@ rules: | |||||||
|   - get |   - get | ||||||
|   - patch |   - patch | ||||||
|   - update |   - update | ||||||
| - apiGroups: |  | ||||||
|   - metal3.io |  | ||||||
|   resources: |  | ||||||
|   - hostupdatepolicies |  | ||||||
|   verbs: |  | ||||||
|   - create |  | ||||||
|   - delete |  | ||||||
|   - get |  | ||||||
|   - list |  | ||||||
|   - patch |  | ||||||
|   - update |  | ||||||
|   - watch |  | ||||||
| - apiGroups: |  | ||||||
|   - metal3.io |  | ||||||
|   resources: |  | ||||||
|   - hostupdatepolicies/status |  | ||||||
|   verbs: |  | ||||||
|   - get |  | ||||||
|   - patch |  | ||||||
|   - update |  | ||||||
|   | |||||||
| @@ -6,6 +6,6 @@ metadata: | |||||||
|     {{- include "baremetal-operator.labels" . | nindent 4 }} |     {{- include "baremetal-operator.labels" . | nindent 4 }} | ||||||
| rules: | rules: | ||||||
| - nonResourceURLs: | - nonResourceURLs: | ||||||
|   - "/metrics" |   - /metrics | ||||||
|   verbs: |   verbs: | ||||||
|   - get |   - get | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: rbac.authorization.k8s.io/v1 | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
| kind: ClusterRole | kind: ClusterRole | ||||||
| metadata: | metadata: | ||||||
|   name: {{ include "baremetal-operator.fullname" . }}-metrics-auth-role |   name: {{ include "baremetal-operator.fullname" . }}-proxy-role | ||||||
|   labels: |   labels: | ||||||
|     {{- include "baremetal-operator.labels" . | nindent 4 }} |     {{- include "baremetal-operator.labels" . | nindent 4 }} | ||||||
| rules: | rules: | ||||||
| @@ -1,13 +1,13 @@ | |||||||
| apiVersion: rbac.authorization.k8s.io/v1 | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
| kind: ClusterRoleBinding | kind: ClusterRoleBinding | ||||||
| metadata: | metadata: | ||||||
|   name: {{ include "baremetal-operator.fullname" . }}-metrics-auth-rolebinding |   name: {{ include "baremetal-operator.fullname" . }}-proxy-rolebinding | ||||||
|   labels: |   labels: | ||||||
|     {{- include "baremetal-operator.labels" . | nindent 4 }} |     {{- include "baremetal-operator.labels" . | nindent 4 }} | ||||||
| roleRef: | roleRef: | ||||||
|   apiGroup: rbac.authorization.k8s.io |   apiGroup: rbac.authorization.k8s.io | ||||||
|   kind: ClusterRole |   kind: ClusterRole | ||||||
|   name: {{ include "baremetal-operator.fullname" . }}-metrics-auth-role |   name: {{ include "baremetal-operator.fullname" . }}-proxy-role | ||||||
| subjects: | subjects: | ||||||
| - kind: ServiceAccount | - kind: ServiceAccount | ||||||
|   name: {{ include "baremetal-operator.serviceAccountName" . }} |   name: {{ include "baremetal-operator.serviceAccountName" . }} | ||||||
| @@ -5,7 +5,6 @@ | |||||||
|   {{- $ironicApiHost := print $ironicIP ":6385" }} |   {{- $ironicApiHost := print $ironicIP ":6385" }} | ||||||
|   {{- $ironicBootHost := print $ironicIP ":6180" }} |   {{- $ironicBootHost := print $ironicIP ":6180" }} | ||||||
|   {{- $ironicCacheHost := print $ironicIP ":6180" }} |   {{- $ironicCacheHost := print $ironicIP ":6180" }} | ||||||
|   {{- $deployArch := .Values.global.deployArchitecture }} |  | ||||||
|  |  | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| data: | data: | ||||||
| @@ -20,9 +19,8 @@ data: | |||||||
|     {{- $protocol = "http" }} |     {{- $protocol = "http" }} | ||||||
|   {{- end }} |   {{- end }} | ||||||
|   CACHEURL: "{{ $protocol }}://{{ $ironicCacheHost }}/images" |   CACHEURL: "{{ $protocol }}://{{ $ironicCacheHost }}/images" | ||||||
|   DEPLOY_KERNEL_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.kernel" |   DEPLOY_KERNEL_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.kernel" | ||||||
|   DEPLOY_RAMDISK_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.initramfs" |   DEPLOY_RAMDISK_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.initramfs" | ||||||
|   DEPLOY_ARCHITECTURE: "{{ $deployArch }}" |  | ||||||
| kind: ConfigMap | kind: ConfigMap | ||||||
| metadata: | metadata: | ||||||
|   name: baremetal-operator-ironic |   name: baremetal-operator-ironic | ||||||
|   | |||||||
| @@ -24,8 +24,8 @@ spec: | |||||||
|     spec: |     spec: | ||||||
|       containers: |       containers: | ||||||
|       - args: |       - args: | ||||||
|  |         - --metrics-addr=127.0.0.1:8085 | ||||||
|         - --enable-leader-election |         - --enable-leader-election | ||||||
|         - --tls-min-version=TLS13 |  | ||||||
|         env: |         env: | ||||||
|         - name: POD_NAME |         - name: POD_NAME | ||||||
|           valueFrom: |           valueFrom: | ||||||
| @@ -56,9 +56,6 @@ spec: | |||||||
|         - containerPort: 9443 |         - containerPort: 9443 | ||||||
|           name: webhook-server |           name: webhook-server | ||||||
|           protocol: TCP |           protocol: TCP | ||||||
|         - containerPort: 8443 |  | ||||||
|           protocol: TCP |  | ||||||
|           name: https |  | ||||||
|         readinessProbe: |         readinessProbe: | ||||||
|           failureThreshold: 10 |           failureThreshold: 10 | ||||||
|           httpGet: |           httpGet: | ||||||
| @@ -87,6 +84,19 @@ spec: | |||||||
|           mountPath: "/opt/metal3/certs/ca" |           mountPath: "/opt/metal3/certs/ca" | ||||||
|           readOnly: true |           readOnly: true | ||||||
|         {{- end }} |         {{- end }} | ||||||
|  |       - args: | ||||||
|  |         - --secure-listen-address=0.0.0.0:8443 | ||||||
|  |         - --upstream=http://127.0.0.1:8085/ | ||||||
|  |         - --logtostderr=true | ||||||
|  |         - --v=10 | ||||||
|  |         image: "{{ .Values.images.rbacProxy.repository }}:{{ .Values.images.rbacProxy.tag }}" | ||||||
|  |         imagePullPolicy: {{ .Values.images.rbacProxy.pullPolicy }} | ||||||
|  |         securityContext: | ||||||
|  |           {{- toYaml .Values.securityContext | nindent 10 }} | ||||||
|  |         name: kube-rbac-proxy | ||||||
|  |         ports: | ||||||
|  |         - containerPort: 8443 | ||||||
|  |           name: https | ||||||
|       serviceAccountName: {{ include "baremetal-operator.serviceAccountName" . }} |       serviceAccountName: {{ include "baremetal-operator.serviceAccountName" . }} | ||||||
|       terminationGracePeriodSeconds: 10 |       terminationGracePeriodSeconds: 10 | ||||||
|       volumes: |       volumes: | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user