forked from suse-edge/Factory
		
	Compare commits
	
		
			98 Commits
		
	
	
		
	
	| Author | SHA256 | Date | |
|---|---|---|---|
| 7c3ac796bc | |||
| 084192f807 | |||
| 929ccf85de | |||
| cf6830f815 | |||
| 3270c12d00 | |||
| 1627ee0d0d | |||
| e5d02732a8 | |||
| df13448a90 | |||
| 6fd885aa56 | |||
| 873b7ca8d6 | |||
| 9e18ce3842 | |||
| 9e14ce3cc2 | |||
| dcb31ca578 | |||
| 9549266bdc | |||
| c839af5ce7 | |||
| 15a0932fc3 | |||
| 0e99df3355 | |||
| 
						 | 
					e4faea0759 | ||
| 
						 | 
					76b5fe17d0 | ||
| 
						 | 
					9eba6bc6b4 | ||
| 
						 | 
					baf71f063c | ||
| 
						 | 
					c913d6e401 | ||
| 
						 | 
					2ba58603bb | ||
| 210428c35d | |||
| 1ddffe1b99 | |||
| de188dbf78 | |||
| c18be9138b | |||
| d35bf98093 | |||
| 2ad24ea18b | |||
| 36fc92cdab | |||
| 75ed39ad43 | |||
| ce1c54a27d | |||
| 7fba32e3c7 | |||
| 221d73486b | |||
| cac6dd4b86 | |||
| 9e88e00e19 | |||
| 6fdde33f5b | |||
| 3b5b37b76d | |||
| a96355f32a | |||
| 82164551ae | |||
| 47e9ef98c1 | |||
| 1a21c64747 | |||
| df206f8fb9 | |||
| c6a40c532e | |||
| 92d5b55269 | |||
| 8fefb7311e | |||
| efefa20f5a | |||
| 50d3ae722f | |||
| 189db31b7f | |||
| af930ae49c | |||
| 625b0da057 | |||
| 
						
						
							
						
						17b108ef3d
	
				 | 
					
					
						|||
| 
						
						
							
						
						d0e1e065a5
	
				 | 
					
					
						|||
| 
						
						
							
						
						1d9ae4aa3d
	
				 | 
					
					
						|||
| 
						
						
							
						
						2553da6659
	
				 | 
					
					
						|||
| 3d6c9be9ed | |||
| e6561f36ed | |||
| fa1da01c29 | |||
| cf3153e074 | |||
| 94d4faf0f9 | |||
| 
						
						
							
						
						943fe7cda4
	
				 | 
					
					
						|||
| 
						
						
							
						
						10757d70e3
	
				 | 
					
					
						|||
| 
						
						
							
						
						74a858e8dc
	
				 | 
					
					
						|||
| 
						
						
							
						
						09f0242287
	
				 | 
					
					
						|||
| 
						
						
							
						
						51ea0c0499
	
				 | 
					
					
						|||
| 
						
						
							
						
						e4363afaf9
	
				 | 
					
					
						|||
| 
						
						
							
						
						4b20cf74d9
	
				 | 
					
					
						|||
| 
						
						
							
						
						2b4c6c3cce
	
				 | 
					
					
						|||
| a223185628 | |||
| 79dff5fce2 | |||
| f7a87ceaf0 | |||
| 71e3e0b40a | |||
| 4da1ed42d2 | |||
| 2ba0efdb93 | |||
| f0ec2699b4 | |||
| 1390d88af7 | |||
| 
						
						
							
						
						9dfaedadf9
	
				 | 
					
					
						|||
| 81c1b981c2 | |||
| b71760b245 | |||
| f5e4126dad | |||
| 26e34cc386 | |||
| af59834eaf | |||
| 5ff222b69b | |||
| 14b56eabbe | |||
| d91b28fb5b | |||
| 4aa46388cf | |||
| 
						
						
							
						
						dfa68ba86e
	
				 | 
					
					
						|||
| 
						
						
							
						
						075e2a209c
	
				 | 
					
					
						|||
| 
						
						
							
						
						2928b2076e
	
				 | 
					
					
						|||
| 
						
						
							
						
						39338dd6ac
	
				 | 
					
					
						|||
| dfc8bb30d9 | |||
| 33f56e8b23 | |||
| 
						
						
							
						
						744d04b40a
	
				 | 
					
					
						|||
| 5e098df843 | |||
| 7555048917 | |||
| e92a50d110 | |||
| 
						
						
							
						
						da2ad77951
	
				 | 
					
					
						|||
| be4fae4b18 | 
							
								
								
									
										23
									
								
								.gitea/workflows/check_manifest.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.gitea/workflows/check_manifest.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
name: Check Release Manifest Local Charts Versions
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
      branches-ignore:
 | 
			
		||||
      - "devel"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  sync-pr-project:
 | 
			
		||||
    name: "Check Release Manifest Local Charts Versions"
 | 
			
		||||
    runs-on: tumbleweed
 | 
			
		||||
    steps:
 | 
			
		||||
        # Waiting on PR to get merged for support in upstream action/checkout action
 | 
			
		||||
      - uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
 | 
			
		||||
        name: Checkout repository
 | 
			
		||||
        with:
 | 
			
		||||
          object-format: 'sha256'
 | 
			
		||||
      - name: Setup dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
          zypper in -y python3-ruamel.yaml
 | 
			
		||||
      - name: Check release manifest
 | 
			
		||||
        run: |
 | 
			
		||||
          python3 .obs/manifest-check.py --check
 | 
			
		||||
							
								
								
									
										62
									
								
								.gitea/workflows/pr_project.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								.gitea/workflows/pr_project.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
name: Build PR in OBS
 | 
			
		||||
on:
 | 
			
		||||
  pull_request_target:
 | 
			
		||||
    types:
 | 
			
		||||
      - opened
 | 
			
		||||
      - reopened
 | 
			
		||||
      - synchronize
 | 
			
		||||
      - closed
 | 
			
		||||
    branches-ignore:
 | 
			
		||||
      - "devel"
 | 
			
		||||
 | 
			
		||||
concurrency:
 | 
			
		||||
  group: ${{ gitea.workflow }}-${{ gitea.ref }}
 | 
			
		||||
  cancel-in-progress: true
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  sync-pr-project:
 | 
			
		||||
    name: "Build PR in OBS"
 | 
			
		||||
    runs-on: tumbleweed
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup OSC
 | 
			
		||||
        run: |
 | 
			
		||||
          zypper in -y python3-jinja2
 | 
			
		||||
          mkdir -p ~/.config/osc
 | 
			
		||||
          cat >~/.config/osc/oscrc <<'EOF'
 | 
			
		||||
          [general]
 | 
			
		||||
          apiurl = https://api.opensuse.org
 | 
			
		||||
 | 
			
		||||
          [https://api.opensuse.org]
 | 
			
		||||
          user=${{ vars.OBS_USERNAME }}
 | 
			
		||||
          pass=${{ secrets.OBS_PASSWORD }}
 | 
			
		||||
          EOF
 | 
			
		||||
    # Waiting on PR to get merged for support in upstream action/checkout action
 | 
			
		||||
      - uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
 | 
			
		||||
        name: Checkout repository
 | 
			
		||||
        with:
 | 
			
		||||
          object-format: 'sha256'
 | 
			
		||||
      - name: "[if PR is closed] Delete project in OBS"
 | 
			
		||||
        run: |
 | 
			
		||||
          if [ "${{ gitea.event.action }}" = "closed" ]; then
 | 
			
		||||
          PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
 | 
			
		||||
          osc rdelete -f -r -m "PR closed" "${PROJECT}:Staging:PR-${{ gitea.event.number }}"
 | 
			
		||||
          fi
 | 
			
		||||
      - name: "Setup PR project in OBS"
 | 
			
		||||
        env:
 | 
			
		||||
          SCM_URL: ${{ gitea.event.pull_request.head.repo.clone_url }}#${{ gitea.head_ref }}
 | 
			
		||||
        run: |
 | 
			
		||||
          if [ "${{ gitea.event.action }}" != "closed" ]; then
 | 
			
		||||
          PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
 | 
			
		||||
          python3 .obs/render_meta.py --pr ${{ gitea.event.number }} --scm-url "${SCM_URL}" | osc meta prj "${PROJECT}:Staging:PR-${{ gitea.event.number }}" -F -
 | 
			
		||||
          echo "Project created ${PROJECT}:Staging:PR-${{ gitea.event.number }}"
 | 
			
		||||
          echo "Follow build at: https://build.opensuse.org/project/monitor/${PROJECT}:Staging:PR-${{ gitea.event.number }}"
 | 
			
		||||
          fi
 | 
			
		||||
      - env:
 | 
			
		||||
          GIT_SHA: ${{ gitea.event.pull_request.head.sha }}
 | 
			
		||||
        name: "Wait for OBS to build the project"
 | 
			
		||||
        run: |
 | 
			
		||||
          if [ "${{ gitea.event.action }}" != "closed" ]; then
 | 
			
		||||
          PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
 | 
			
		||||
          export OBS_PROJECT="${PROJECT}:Staging:PR-${{ gitea.event.number }}"
 | 
			
		||||
          python3 .obs/wait_obs.py
 | 
			
		||||
          fi
 | 
			
		||||
							
								
								
									
										35
									
								
								.gitea/workflows/sync_config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								.gitea/workflows/sync_config.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
name: Synchronize Project Config
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches-ignore:
 | 
			
		||||
      - "devel"
 | 
			
		||||
    paths:
 | 
			
		||||
      - "_config"
 | 
			
		||||
      - ".gitea/workflows/sync_config.yaml"
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  sync-prjconf:
 | 
			
		||||
    name: "Update prjconf in OBS"
 | 
			
		||||
    runs-on: tumbleweed
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup OSC
 | 
			
		||||
        run: |
 | 
			
		||||
          mkdir -p ~/.config/osc
 | 
			
		||||
          cat >~/.config/osc/oscrc <<'EOF'
 | 
			
		||||
          [general]
 | 
			
		||||
          apiurl = https://api.opensuse.org
 | 
			
		||||
 | 
			
		||||
          [https://api.opensuse.org]
 | 
			
		||||
          user=${{ vars.OBS_USERNAME }}
 | 
			
		||||
          pass=${{ secrets.OBS_PASSWORD }}
 | 
			
		||||
          EOF
 | 
			
		||||
    # Waiting on PR to get merged for support in upstream action/checkout action
 | 
			
		||||
      - uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
 | 
			
		||||
        name: Checkout repository
 | 
			
		||||
        with:
 | 
			
		||||
          object-format: 'sha256'
 | 
			
		||||
      - run: |
 | 
			
		||||
          PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
 | 
			
		||||
          if [ "$(osc meta prjconf "${PROJECT}" | sha256sum)" != "$(cat _config | sha256sum)" ] ; then
 | 
			
		||||
            osc meta prjconf "${PROJECT}" -F _config
 | 
			
		||||
          fi
 | 
			
		||||
							
								
								
									
										45
									
								
								.gitea/workflows/sync_meta.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								.gitea/workflows/sync_meta.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
name: Synchronize Project Metadata
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches-ignore:
 | 
			
		||||
      - "devel"
 | 
			
		||||
    paths:
 | 
			
		||||
      - "*" # Will trigger on new directories and changes to files in root of repository
 | 
			
		||||
      - ".gitea/workflows/sync_meta.yaml"
 | 
			
		||||
      - ".obs/common.py"
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  sync-prj-meta:
 | 
			
		||||
    runs-on: tumbleweed
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup OSC
 | 
			
		||||
        run: |
 | 
			
		||||
          zypper in -y python3-jinja2
 | 
			
		||||
          mkdir -p ~/.config/osc
 | 
			
		||||
          cat >~/.config/osc/oscrc <<'EOF'
 | 
			
		||||
          [general]
 | 
			
		||||
          apiurl = https://api.opensuse.org
 | 
			
		||||
 | 
			
		||||
          [https://api.opensuse.org]
 | 
			
		||||
          user=${{ vars.OBS_USERNAME }}
 | 
			
		||||
          pass=${{ secrets.OBS_PASSWORD }}
 | 
			
		||||
          EOF
 | 
			
		||||
    # Waiting on PR to get merged for support in upstream action/checkout action
 | 
			
		||||
      - uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
 | 
			
		||||
        name: Checkout repository
 | 
			
		||||
        with:
 | 
			
		||||
          object-format: 'sha256'
 | 
			
		||||
      - name: "Update or create OBS Project"
 | 
			
		||||
        run: |
 | 
			
		||||
          PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
 | 
			
		||||
          set -o pipefail
 | 
			
		||||
          if meta="$(osc meta prj "${PROJECT}" 2>/dev/null | sha256sum)"; then
 | 
			
		||||
            new_meta="$(python3 .obs/render_meta.py)"
 | 
			
		||||
            if [ "${meta}" != "$(echo "${new_meta}" | sha256sum)" ]; then
 | 
			
		||||
              echo "${new_meta}" | osc meta prj "${PROJECT}" -F -
 | 
			
		||||
            fi
 | 
			
		||||
            python3 .obs/sync_packages.py
 | 
			
		||||
          else
 | 
			
		||||
            # Create the projects
 | 
			
		||||
            bash .obs/create_projects.sh
 | 
			
		||||
          fi
 | 
			
		||||
@@ -1,5 +1,4 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
import yaml
 | 
			
		||||
import subprocess
 | 
			
		||||
import argparse
 | 
			
		||||
import os
 | 
			
		||||
@@ -7,30 +6,6 @@ import os.path
 | 
			
		||||
 | 
			
		||||
from common import PROJECT, REPOSITORY, BRANCH
 | 
			
		||||
 | 
			
		||||
def add_package_to_workflow(name: str):
 | 
			
		||||
    modified = False
 | 
			
		||||
    with open(".obs/workflows.yml", "r") as wf_file:
 | 
			
		||||
        workflows = yaml.safe_load(wf_file)
 | 
			
		||||
    if not any(
 | 
			
		||||
        x
 | 
			
		||||
        for x in workflows["staging_build"]["steps"]
 | 
			
		||||
        if x["branch_package"]["source_package"] == name
 | 
			
		||||
    ):
 | 
			
		||||
        workflows["staging_build"]["steps"].append(
 | 
			
		||||
            {
 | 
			
		||||
                "branch_package": {
 | 
			
		||||
                    "source_project": PROJECT,
 | 
			
		||||
                    "target_project": f"{PROJECT}:Staging",
 | 
			
		||||
                    "source_package": name,
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        )
 | 
			
		||||
        modified = True
 | 
			
		||||
    if modified:
 | 
			
		||||
        with open(".obs/workflows.yml", "w") as wf_file:
 | 
			
		||||
            yaml.dump(workflows, wf_file)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def add_package_to_project(name: str):
 | 
			
		||||
    package_meta = f"""<package name="{name}" project="{PROJECT}">
 | 
			
		||||
  <title/>
 | 
			
		||||
@@ -53,7 +28,6 @@ def add_package(package_name: str):
 | 
			
		||||
        os.exit(1)
 | 
			
		||||
 | 
			
		||||
    add_package_to_project(package_name)
 | 
			
		||||
    add_package_to_workflow(package_name)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
@@ -65,7 +39,7 @@ def main():
 | 
			
		||||
    add_package(args.package)
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    print("Package created in OBS, you can now push the modified workflow file")
 | 
			
		||||
    print("Package created in OBS !")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
PROJECT = "isv:SUSE:Edge:Factory"
 | 
			
		||||
PROJECT = "isv:SUSE:Edge:3.2"
 | 
			
		||||
REPOSITORY = "https://src.opensuse.org/suse-edge/Factory"
 | 
			
		||||
BRANCH = "main"
 | 
			
		||||
BRANCH = "3.2"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										37
									
								
								.obs/create_projects.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								.obs/create_projects.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
show_help() {
 | 
			
		||||
    echo "Usage: $(basename $0) [--internal]"
 | 
			
		||||
    echo "options:"
 | 
			
		||||
    echo "-h, --help       display this help and exit"
 | 
			
		||||
    echo "-i, --internal   create project as internal"
 | 
			
		||||
    exit 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
while [[ "$#" -gt 0 ]]; do
 | 
			
		||||
    case $1 in
 | 
			
		||||
        -h|--help) show_help;;
 | 
			
		||||
        -i|--internal) internal="--internal" ;;
 | 
			
		||||
        *) echo "Unknown parameter passed: $1";show_help ;;
 | 
			
		||||
    esac
 | 
			
		||||
    shift
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
 | 
			
		||||
EXTRA_OSC_ARGS=""
 | 
			
		||||
if [ -n "$internal" ]; then
 | 
			
		||||
    PROJECT="ISV${PROJECT:3}"
 | 
			
		||||
    EXTRA_OSC_ARGS="-A https://api.suse.de"
 | 
			
		||||
 | 
			
		||||
    python3 .obs/render_meta.py ${internal} Snapshot | osc ${EXTRA_OSC_ARGS} meta prj "${PROJECT}:Snapshot" -F -
 | 
			
		||||
    osc ${EXTRA_OSC_ARGS} meta prjconf "${PROJECT}:Snapshot" -F _config
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
python3 .obs/render_meta.py ${internal} ToTest | osc ${EXTRA_OSC_ARGS} meta prj "${PROJECT}:ToTest" -F -
 | 
			
		||||
python3 .obs/render_meta.py ${internal} | osc ${EXTRA_OSC_ARGS} meta prj "${PROJECT}" -F -
 | 
			
		||||
osc ${EXTRA_OSC_ARGS} meta prjconf "${PROJECT}:ToTest" -F _config
 | 
			
		||||
osc ${EXTRA_OSC_ARGS} meta prjconf "${PROJECT}" -F _config
 | 
			
		||||
 | 
			
		||||
if [ -z "$internal" ]; then
 | 
			
		||||
    python3 .obs/sync_packages.py
 | 
			
		||||
fi
 | 
			
		||||
@@ -1,5 +1,4 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
import yaml
 | 
			
		||||
import subprocess
 | 
			
		||||
import argparse
 | 
			
		||||
import os
 | 
			
		||||
@@ -8,18 +7,6 @@ import os.path
 | 
			
		||||
from common import PROJECT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def delete_package_from_workflow(name: str):
 | 
			
		||||
    with open(".obs/workflows.yml", "r") as wf_file:
 | 
			
		||||
        workflows = yaml.safe_load(wf_file)
 | 
			
		||||
    workflows["staging_build"]["steps"] = [
 | 
			
		||||
        x
 | 
			
		||||
        for x in workflows["staging_build"]["steps"]
 | 
			
		||||
        if x["branch_package"]["source_package"] != name
 | 
			
		||||
    ]
 | 
			
		||||
    with open(".obs/workflows.yml", "w") as wf_file:
 | 
			
		||||
        yaml.dump(workflows, wf_file)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def delete_package_from_project(name: str):
 | 
			
		||||
    p = subprocess.run(["osc", "rdelete", PROJECT, name, "-m \"Deleted via delete_package.py\"" ], stdout=subprocess.PIPE)
 | 
			
		||||
    print(p.stdout)
 | 
			
		||||
@@ -33,7 +20,6 @@ def delete_package(package_name: str):
 | 
			
		||||
        os.exit(1)
 | 
			
		||||
 | 
			
		||||
    delete_package_from_project(package_name)
 | 
			
		||||
    delete_package_from_workflow(package_name)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										84
									
								
								.obs/manifest-check.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										84
									
								
								.obs/manifest-check.py
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
#!/usr/bin/python3
 | 
			
		||||
 | 
			
		||||
import ruamel.yaml
 | 
			
		||||
import pathlib
 | 
			
		||||
import argparse
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
yaml = ruamel.yaml.YAML()
 | 
			
		||||
 | 
			
		||||
def get_chart_version(chart_name: str) -> str:
 | 
			
		||||
    with open(f"./{chart_name}/Chart.yaml") as f:
 | 
			
		||||
        chart = yaml.load(f)
 | 
			
		||||
        return chart["version"]
 | 
			
		||||
 | 
			
		||||
def get_charts(chart):
 | 
			
		||||
    if not chart["chart"].startswith("%%CHART_REPO%%"):
 | 
			
		||||
        # Not a locally managed chart
 | 
			
		||||
        return {}
 | 
			
		||||
 | 
			
		||||
    chart_name = chart["chart"][len("%%CHART_REPO%%/%%IMG_PREFIX%%"):]
 | 
			
		||||
    charts = { chart_name: chart["version"] }
 | 
			
		||||
    for child_chart in chart.get("dependencyCharts", []) + chart.get("addonCharts", []):
 | 
			
		||||
        charts.update(get_charts(child_chart))
 | 
			
		||||
    return charts
 | 
			
		||||
 | 
			
		||||
def get_charts_list():
 | 
			
		||||
    with open("./release-manifest-image/release_manifest.yaml") as f:
 | 
			
		||||
        manifest = yaml.load(f)
 | 
			
		||||
    charts = {}
 | 
			
		||||
    for chart in manifest["spec"]["components"]["workloads"]["helm"]:
 | 
			
		||||
        charts.update(get_charts(chart))
 | 
			
		||||
    return charts
 | 
			
		||||
 | 
			
		||||
def check_charts(fix: bool) -> bool:
 | 
			
		||||
    success = True
 | 
			
		||||
    charts = get_charts_list()
 | 
			
		||||
    to_fix = {}
 | 
			
		||||
    for chart in charts:
 | 
			
		||||
        expected_version = get_chart_version(chart)
 | 
			
		||||
        if expected_version != charts[chart]:
 | 
			
		||||
            success = False
 | 
			
		||||
            to_fix[f'%%CHART_REPO%%/%%IMG_PREFIX%%{chart}'] = expected_version
 | 
			
		||||
            print(f"{chart}: Expected: {expected_version}, Got: {charts[chart]}")
 | 
			
		||||
    if fix and not success:
 | 
			
		||||
        fix_charts(to_fix)
 | 
			
		||||
        return True
 | 
			
		||||
    return success
 | 
			
		||||
 | 
			
		||||
def fix_charts(to_fix):
 | 
			
		||||
    manifest_path = pathlib.Path("./release-manifest-image/release_manifest.yaml")
 | 
			
		||||
    manifest = yaml.load(manifest_path)
 | 
			
		||||
    yaml.indent(mapping=2, sequence=4, offset=2)
 | 
			
		||||
    yaml.width = 4096
 | 
			
		||||
    for chart_index, chart in enumerate(manifest["spec"]["components"]["workloads"]["helm"]):
 | 
			
		||||
        changed = False
 | 
			
		||||
        if chart["chart"] in to_fix.keys():
 | 
			
		||||
            changed = True
 | 
			
		||||
            chart["version"] = to_fix[chart["chart"]]
 | 
			
		||||
        for subchart_index, subchart in enumerate(chart.get("addonCharts", [])):
 | 
			
		||||
            if subchart["chart"] in to_fix.keys():
 | 
			
		||||
                changed = True
 | 
			
		||||
                subchart["version"] = to_fix[subchart["chart"]]
 | 
			
		||||
                chart["addonCharts"][subchart_index] = subchart
 | 
			
		||||
        for subchart_index, subchart in enumerate(chart.get("dependencyCharts", [])):
 | 
			
		||||
            if subchart["chart"] in to_fix.keys():
 | 
			
		||||
                changed = True
 | 
			
		||||
                subchart["version"] = to_fix[subchart["chart"]]
 | 
			
		||||
                chart["dependencyCharts"][subchart_index] = subchart
 | 
			
		||||
        if changed:
 | 
			
		||||
            manifest["spec"]["components"]["workloads"]["helm"][chart_index] = chart
 | 
			
		||||
    yaml.dump(manifest, manifest_path)
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    print("Checking charts versions in release manifest")
 | 
			
		||||
    parser = argparse.ArgumentParser()
 | 
			
		||||
    parser.add_argument('-c', '--check', action='store_true')
 | 
			
		||||
    args = parser.parse_args()
 | 
			
		||||
    if not check_charts(not args.check):
 | 
			
		||||
        sys.exit(1)
 | 
			
		||||
    else:
 | 
			
		||||
        print("All local charts in release manifest are using the right version")
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    main()
 | 
			
		||||
							
								
								
									
										62
									
								
								.obs/render_meta.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								.obs/render_meta.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
import argparse
 | 
			
		||||
 | 
			
		||||
from jinja2 import Template
 | 
			
		||||
from common import PROJECT
 | 
			
		||||
 | 
			
		||||
def render(base_project, subproject, internal, scm_url=None):
 | 
			
		||||
    version = base_project.rsplit(':', 1)[-1]
 | 
			
		||||
    context = {
 | 
			
		||||
        "base_project": subproject == "",
 | 
			
		||||
        "title": f"SUSE Edge {version} {subproject}".rstrip(),
 | 
			
		||||
    }
 | 
			
		||||
    if subproject == "ToTest":
 | 
			
		||||
        context["project"] = f"{base_project}:ToTest"
 | 
			
		||||
        context["description"] = (
 | 
			
		||||
            f"This project doesn't build, it stores a snapshot of SUSE Edge {version} "
 | 
			
		||||
            "project currently going through the automated test layer"
 | 
			
		||||
        )
 | 
			
		||||
        if "Factory" in base_project or internal:
 | 
			
		||||
            context["release_project"] = f"{base_project}:Snapshot"
 | 
			
		||||
    elif subproject == "Snapshot":
 | 
			
		||||
        context["project"] = f"{base_project}:Snapshot"
 | 
			
		||||
        context["release_project"] = f"{base_project.rsplit(':', 1)[0]}:Containers"
 | 
			
		||||
        context["for_release"] = True
 | 
			
		||||
        context["description"] = (
 | 
			
		||||
            f"This project doesn't build, it stores a snapshot of SUSE Edge {version} "
 | 
			
		||||
            "project that passed automated test layer"
 | 
			
		||||
        )
 | 
			
		||||
    elif subproject == "":
 | 
			
		||||
        context["project"] = base_project
 | 
			
		||||
        context["release_project"] = f"{base_project}:ToTest"
 | 
			
		||||
    else: # PR case direct python call
 | 
			
		||||
        context["base_project"] = True
 | 
			
		||||
        context["project"] = f"{base_project}:{subproject}"
 | 
			
		||||
        if scm_url is not None:
 | 
			
		||||
            context["scm_url"] = scm_url
 | 
			
		||||
 | 
			
		||||
    with open("_meta") as meta:
 | 
			
		||||
        template = Template(meta.read())
 | 
			
		||||
    return template.render(context)
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    parser = argparse.ArgumentParser(
 | 
			
		||||
                    prog='ProgramName',
 | 
			
		||||
                    description='What the program does',
 | 
			
		||||
                    epilog='Text at the bottom of help')
 | 
			
		||||
    parser.add_argument("subproject", default="", choices=["", "ToTest", "Snapshot"], nargs="?")
 | 
			
		||||
    parser.add_argument("--internal", action="store_true")
 | 
			
		||||
    parser.add_argument("--pr")
 | 
			
		||||
    parser.add_argument("--scm-url")
 | 
			
		||||
    args = parser.parse_args()
 | 
			
		||||
    base_project = PROJECT.replace("isv", "ISV", 1) if args.internal else PROJECT
 | 
			
		||||
 | 
			
		||||
    print(render(
 | 
			
		||||
        base_project=base_project,
 | 
			
		||||
        subproject=args.subproject if args.pr is None else f"Staging:PR-{args.pr}",
 | 
			
		||||
        internal=args.internal,
 | 
			
		||||
        scm_url=args.scm_url,
 | 
			
		||||
    ))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    main()
 | 
			
		||||
@@ -9,7 +9,7 @@ from common import PROJECT
 | 
			
		||||
 | 
			
		||||
def get_obs_packages() -> Set[str]:
 | 
			
		||||
    packages = subprocess.run(["osc", "ls", PROJECT], encoding='utf-8' , capture_output=True)
 | 
			
		||||
    return set(packages.stdout.splitlines())
 | 
			
		||||
    return { p for p in packages.stdout.splitlines() if ":" not in p }
 | 
			
		||||
 | 
			
		||||
def get_local_packages() -> Set[str]:
 | 
			
		||||
    p = pathlib.Path('.')
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										83
									
								
								.obs/wait_obs.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								.obs/wait_obs.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,83 @@
 | 
			
		||||
import xml.etree.ElementTree as ET
 | 
			
		||||
import subprocess
 | 
			
		||||
import time
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
from collections import Counter
 | 
			
		||||
 | 
			
		||||
def get_buildstatus(project: str) -> ET.Element:
 | 
			
		||||
    for _ in range(5):
 | 
			
		||||
        try:
 | 
			
		||||
            output = subprocess.check_output(["osc", "pr", "--xml", project])
 | 
			
		||||
            return ET.fromstring(output)
 | 
			
		||||
        except subprocess.CalledProcessError:
 | 
			
		||||
            continue
 | 
			
		||||
    print("Failed to get buildstatus from OBS")
 | 
			
		||||
 | 
			
		||||
def do_wait(project:str, commit:str) -> ET.Element:
 | 
			
		||||
    last_state = None
 | 
			
		||||
    while True:
 | 
			
		||||
        time.sleep(5)
 | 
			
		||||
        status = get_buildstatus(project)
 | 
			
		||||
        if last_state == status.get("state"):
 | 
			
		||||
            continue
 | 
			
		||||
        else:
 | 
			
		||||
            last_state = status.get("state")
 | 
			
		||||
 | 
			
		||||
        scminfo = { e.text for e in status.findall(".//scminfo") }
 | 
			
		||||
        if len(scminfo) != 1 or scminfo.pop() != commit:
 | 
			
		||||
            print("Waiting for OBS to sync with SCM")
 | 
			
		||||
            continue
 | 
			
		||||
 | 
			
		||||
        if not all([ e.get('state') == "published" and e.get('dirty') is None for e in status.findall("./result")]):
 | 
			
		||||
            print("Waiting for OBS to finish building")
 | 
			
		||||
            continue
 | 
			
		||||
 | 
			
		||||
        return status
 | 
			
		||||
        
 | 
			
		||||
def print_results(status: ET.Element) -> bool:
 | 
			
		||||
    results = {}
 | 
			
		||||
    failed = []
 | 
			
		||||
    for e in status.findall("./result"):
 | 
			
		||||
        repo = results.get(e.get("repository"), {})
 | 
			
		||||
        repo[e.get("arch")] = e
 | 
			
		||||
        results[e.get("repository")] = repo
 | 
			
		||||
    
 | 
			
		||||
    for repo in results.keys():
 | 
			
		||||
        print(f"{repo}:")
 | 
			
		||||
        depth=1
 | 
			
		||||
        for arch in results[repo].keys():
 | 
			
		||||
            counts = Counter()
 | 
			
		||||
            if repo != "charts":
 | 
			
		||||
                print(f"\t{arch}:")
 | 
			
		||||
                depth=2
 | 
			
		||||
            for package in results[repo][arch].findall("./status"):
 | 
			
		||||
                if package.get("code") in ["excluded", "disabled"]:
 | 
			
		||||
                    continue
 | 
			
		||||
                if package.get("code") in ["failed", "unresolvable", "broken"]:
 | 
			
		||||
                    details = package.findtext("details")
 | 
			
		||||
                    if details:
 | 
			
		||||
                        failed.append(f"{package.get('package')} ({arch}): {details}")
 | 
			
		||||
                    else:
 | 
			
		||||
                        failed.append(f"{package.get('package')} ({arch})")
 | 
			
		||||
                counts[package.get("code")] += 1
 | 
			
		||||
            for (code, count) in counts.items():
 | 
			
		||||
                print("\t"*depth, f"{code}: {count}")
 | 
			
		||||
    
 | 
			
		||||
    failed.sort()
 | 
			
		||||
    if failed:
 | 
			
		||||
        print("\nPackages failing: ")
 | 
			
		||||
    for fail in failed:
 | 
			
		||||
        print("\t", fail)
 | 
			
		||||
    return len(failed)
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    project = os.environ.get("OBS_PROJECT")
 | 
			
		||||
    sha = os.environ.get("GIT_SHA")
 | 
			
		||||
    print(f"Waiting for OBS to build {project} for commit {sha}")
 | 
			
		||||
    status = do_wait(project, sha)
 | 
			
		||||
    sys.exit(print_results(status))
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    main()
 | 
			
		||||
@@ -1,228 +0,0 @@
 | 
			
		||||
staging_build:
 | 
			
		||||
  filters:
 | 
			
		||||
    event: pull_request
 | 
			
		||||
  steps:
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: endpoint-copier-operator
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: endpoint-copier-operator-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: endpoint-copier-operator-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri-agent-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri-controller-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri-dashboard-extension-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri-debug-echo-discovery-handler-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri-onvif-discovery-handler-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri-opcua-discovery-handler-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri-udev-discovery-handler-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: akri-webhook-configuration-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: obs-service-set_version
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: cosign
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: frr-k8s
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: kubectl
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: upgrade-controller
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: nm-configurator
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: kube-rbac-proxy
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: edge-image-builder
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: metallb
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: hauler
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: ip-address-manager
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: baremetal-operator
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: cluster-api-provider-metal3
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: cdi-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: cluster-api-provider-metal3-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: metallb-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: sriov-crd-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: upgrade-controller-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: edge-image-builder-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: ironic-ipa-downloader-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: upgrade-controller-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: metal3-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: baremetal-operator-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: sriov-network-operator-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: metallb-controller-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: ip-address-manager-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: metallb-speaker-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: ironic-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: cri-tools
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: crudini
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: fakeroot
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: ipcalc
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: autoconf
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: rancher-turtles-airgap-resources-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: rancher-turtles-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: kube-rbac-proxy-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: ironic-ipa-ramdisk
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: kubevirt-dashboard-extension-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: kiwi-builder-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: kubevirt-chart
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: release-manifest-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: frr-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
  - branch_package:
 | 
			
		||||
      source_package: kubectl-image
 | 
			
		||||
      source_project: isv:SUSE:Edge:Factory
 | 
			
		||||
      target_project: isv:SUSE:Edge:Factory:Staging
 | 
			
		||||
							
								
								
									
										10
									
								
								.pre-commit-config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.pre-commit-config.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
repos:
 | 
			
		||||
  - repo: local
 | 
			
		||||
    hooks:
 | 
			
		||||
      - id: check-manifest
 | 
			
		||||
        name: "Check release-manifest"
 | 
			
		||||
        entry: python3 .obs/manifest-check.py
 | 
			
		||||
        language: python
 | 
			
		||||
        additional_dependencies: ['ruamel.yaml']
 | 
			
		||||
        pass_filenames: false
 | 
			
		||||
        always_run: true
 | 
			
		||||
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
								
							@@ -5,15 +5,6 @@ Contains the definition of the packages built on OBS for the SUSE Edge Solution
 | 
			
		||||
This repository is linked to an OBS project: <https://build.opensuse.org/project/show/isv:SUSE:Edge:Factory>
 | 
			
		||||
Every directory in this repository represents a package in that OBS project, those should be synced automatically from this repository.
 | 
			
		||||
 | 
			
		||||
## Adding a package
 | 
			
		||||
 | 
			
		||||
To add a package, first create a directory with your package as you intend it in OBS.
 | 
			
		||||
 | 
			
		||||
Then run the `.obs/add_package.py` script to create the package in the OBS project and add the required elements to the synchronization workflow.
 | 
			
		||||
This script is using the `osc` command behind the scenes, so ensure you have it installed and correctly configured, as well as you have the correct permissions to create a new package in the project.
 | 
			
		||||
 | 
			
		||||
You will then get asked to push your changes.
 | 
			
		||||
 | 
			
		||||
## Testing a fork or a development branch
 | 
			
		||||
 | 
			
		||||
You can create a project in your home space in OBS, use the same prjconf as the one of "isv:SUSE:Edge:Factory", and copy the repositories part of the metadata (adjust self references).
 | 
			
		||||
@@ -23,16 +14,14 @@ Then add a scmsync stanza to your metadata like this (adjust repository path and
 | 
			
		||||
<scmsync>https://src.opensuse.org/suse-edge/Factory#main</scmsync>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This is done automatically for any PR filed against this repository.
 | 
			
		||||
 | 
			
		||||
## Cutting a release version branch
 | 
			
		||||
 | 
			
		||||
1. Do the appropriate git branch command
 | 
			
		||||
2. Change the project path in `.obs/common.py` file (e.g. from `isv:SUSE:Edge:Factory` to `isv:SUSE:Edge:3.2`)
 | 
			
		||||
3. Change the branch reference in `.obs/common.py` file (e.g. from `main` to `3.2`)
 | 
			
		||||
4. Edit the `.obs/workflows.yml` file to change the references to the correct projects
 | 
			
		||||
5. Commit those changes to the new branch and push the new branch
 | 
			
		||||
6. Create the base and to-test projects (e.g. `isv:SUSE:Edge:3.2` and `isv:SUSE:Edge:3.2:ToTest`), use the `isv:SUSE:Edge:Factory` projects as example for metadata part
 | 
			
		||||
7. Use the prjconf of Factory in all those projects
 | 
			
		||||
8. Run the `.obs/sync_packages.py` script to create all the packages in the base project
 | 
			
		||||
9. Go take a few cups of coffee/tea/mate/... while waiting for OBS to build everything
 | 
			
		||||
10. Once built do an `osc release` of the project for it to be copied over in the `ToTest` section
 | 
			
		||||
11. Hand over to QA to test whatever is in `ToTest`. (You can continue to work on the base branch if needed meanwhile)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										155
									
								
								_config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								_config
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,155 @@
 | 
			
		||||
Prefer: -libqpid-proton10 -python311-urllib3_1
 | 
			
		||||
 | 
			
		||||
Macros:
 | 
			
		||||
%__python3 /usr/bin/python3.11
 | 
			
		||||
%registry_url %(echo %{vendor} | cut -d '/' -f 3 | sed 's/build/registry/')
 | 
			
		||||
:Macros
 | 
			
		||||
 | 
			
		||||
%if "%{sub %{lower %_project} 1 14}" != "isv:suse:edge:" || "%{sub %_project 15 21}" == "Factory"
 | 
			
		||||
    # Here we are in Factory like project so set chart major version to 999
 | 
			
		||||
Macros:
 | 
			
		||||
%chart_major 999
 | 
			
		||||
:Macros
 | 
			
		||||
%else
 | 
			
		||||
    # Here we are in version branch, so set the image prefix and chart major accordingly
 | 
			
		||||
Macros:
 | 
			
		||||
%project_branch %(echo %{_project} | cut -d ':' -f 4)
 | 
			
		||||
%img_prefix %{project_branch}/
 | 
			
		||||
%chart_major %(echo %{project_branch} | awk '{split($1,a,"."); print a[1]*100 + a[2]}')
 | 
			
		||||
:Macros
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%if %{sub %_project 1 3} == ISV
 | 
			
		||||
Macros:
 | 
			
		||||
%img_repo registry.suse.com/edge
 | 
			
		||||
%chart_repo oci://registry.suse.com/edge
 | 
			
		||||
%manifest_repo registry.suse.com/edge
 | 
			
		||||
%support_level l3
 | 
			
		||||
:Macros
 | 
			
		||||
%else
 | 
			
		||||
Macros:
 | 
			
		||||
%img_repo registry.opensuse.org/isv/suse/edge/containers/images
 | 
			
		||||
%manifest_repo registry.opensuse.org/isv/suse/edge/containers/images
 | 
			
		||||
%chart_repo oci://registry.opensuse.org/isv/suse/edge/containers/charts
 | 
			
		||||
%support_level techpreview
 | 
			
		||||
:Macros
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%if "%_repository" == "charts" || "%_repository" == "test_manifest_images"
 | 
			
		||||
Macros:
 | 
			
		||||
%img_repo %(echo %{registry_url}:%{_project}:images | tr ":" "/" | tr '[:upper:]' '[:lower:]')
 | 
			
		||||
%manifest_repo %(echo %{registry_url}:%{_project}:test_manifest_images | tr ":" "/" | tr '[:upper:]' '[:lower:]')
 | 
			
		||||
%chart_repo oci://%(echo %{registry_url}:%{_project}:charts | tr ":" "/" | tr '[:upper:]' '[:lower:]')
 | 
			
		||||
:Macros
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
# Missing deps for testsuite
 | 
			
		||||
BuildFlags: excludebuild:autoconf:el
 | 
			
		||||
BuildFlags: excludebuild:autoconf:testsuite
 | 
			
		||||
 | 
			
		||||
# Only build manifest embedding images here
 | 
			
		||||
%if "%_repository" == "test_manifest_images"
 | 
			
		||||
BuildFlags: onlybuild:edge-image-builder-image
 | 
			
		||||
BuildFlags: onlybuild:release-manifest-image
 | 
			
		||||
  # Exclude the images selected by the following section
 | 
			
		||||
  # as the standard repository is a dependency
 | 
			
		||||
  %ifarch aarch64
 | 
			
		||||
    BuildFlags: excludebuild:baremetal-operator-image
 | 
			
		||||
    BuildFlags: excludebuild:endpoint-copier-operator-image
 | 
			
		||||
    BuildFlags: excludebuild:ironic-image
 | 
			
		||||
    BuildFlags: excludebuild:ironic-ipa-downloader-image
 | 
			
		||||
    BuildFlags: excludebuild:kube-rbac-proxy-image
 | 
			
		||||
    BuildFlags: excludebuild:metallb-controller-image
 | 
			
		||||
    BuildFlags: excludebuild:metallb-speaker-image
 | 
			
		||||
  %endif
 | 
			
		||||
%else
 | 
			
		||||
# Only a subset of stack is arm64 ready
 | 
			
		||||
  %ifarch aarch64
 | 
			
		||||
    BuildFlags: onlybuild:autoconf
 | 
			
		||||
    BuildFlags: onlybuild:baremetal-operator
 | 
			
		||||
    BuildFlags: onlybuild:baremetal-operator-image
 | 
			
		||||
    BuildFlags: onlybuild:ca-certificates-suse
 | 
			
		||||
    BuildFlags: onlybuild:cosign
 | 
			
		||||
    BuildFlags: onlybuild:crudini
 | 
			
		||||
    BuildFlags: onlybuild:edge-image-builder
 | 
			
		||||
    BuildFlags: onlybuild:edge-image-builder-image
 | 
			
		||||
    BuildFlags: onlybuild:endpoint-copier-operator
 | 
			
		||||
    BuildFlags: onlybuild:endpoint-copier-operator-image
 | 
			
		||||
    BuildFlags: onlybuild:fakeroot
 | 
			
		||||
    BuildFlags: onlybuild:hauler
 | 
			
		||||
    BuildFlags: onlybuild:ipcalc
 | 
			
		||||
    BuildFlags: onlybuild:ironic-image
 | 
			
		||||
    BuildFlags: onlybuild:ironic-ipa-downloader-image
 | 
			
		||||
    BuildFlags: onlybuild:ironic-ipa-ramdisk
 | 
			
		||||
    BuildFlags: onlybuild:kube-rbac-proxy
 | 
			
		||||
    BuildFlags: onlybuild:kube-rbac-proxy-image
 | 
			
		||||
    BuildFlags: onlybuild:metallb
 | 
			
		||||
    BuildFlags: onlybuild:metallb-controller-image
 | 
			
		||||
    BuildFlags: onlybuild:metallb-speaker-image
 | 
			
		||||
    BuildFlags: onlybuild:nm-configurator
 | 
			
		||||
  %endif
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%if "%_repository" == "images" || "%_repository" == "test_manifest_images"
 | 
			
		||||
    Prefer: container:sles15-image
 | 
			
		||||
    Type: docker
 | 
			
		||||
    Repotype: none
 | 
			
		||||
    Patterntype: none
 | 
			
		||||
    BuildEngine: podman
 | 
			
		||||
    Prefer: sles-release
 | 
			
		||||
    BuildFlags: dockerarg:SLE_VERSION=15.6
 | 
			
		||||
 | 
			
		||||
    # Publish multi-arch container images only once all archs have been built
 | 
			
		||||
    PublishFlags: archsync
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%if "%_repository" == "images_6.0"
 | 
			
		||||
    Prefer: container:sles15-image
 | 
			
		||||
    Type: docker
 | 
			
		||||
    BuildEngine: podman
 | 
			
		||||
    Repotype: none
 | 
			
		||||
    Patterntype: none
 | 
			
		||||
    BuildFlags: dockerarg:SLE_VERSION=16.0
 | 
			
		||||
    BuildFlags: onlybuild:kiwi-builder-image
 | 
			
		||||
 | 
			
		||||
    # Publish multi-arch container images only once all archs have been built
 | 
			
		||||
    PublishFlags: archsync
 | 
			
		||||
 | 
			
		||||
    # Exclude the images selected by the aarch64 section
 | 
			
		||||
    %ifarch aarch64
 | 
			
		||||
      BuildFlags: excludebuild:baremetal-operator-image
 | 
			
		||||
      BuildFlags: excludebuild:edge-image-builder-image
 | 
			
		||||
      BuildFlags: excludebuild:endpoint-copier-operator-image
 | 
			
		||||
      BuildFlags: excludebuild:ironic-image
 | 
			
		||||
      BuildFlags: excludebuild:ironic-ipa-downloader-image
 | 
			
		||||
      BuildFlags: excludebuild:kube-rbac-proxy-image
 | 
			
		||||
      BuildFlags: excludebuild:metallb-controller-image
 | 
			
		||||
      BuildFlags: excludebuild:metallb-speaker-image
 | 
			
		||||
    %endif
 | 
			
		||||
 | 
			
		||||
%else
 | 
			
		||||
    BuildFlags: excludebuild:kiwi-builder-image
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
%if "%_repository" == "charts" || "%_repository" == "phantomcharts" || "%_repository" == "releasecharts"
 | 
			
		||||
    Type: helm
 | 
			
		||||
    Repotype: helm
 | 
			
		||||
    Patterntype: none
 | 
			
		||||
    Required: perl-YAML-LibYAML
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%if "%_repository" == "standard"
 | 
			
		||||
    # for build openstack-ironic-image
 | 
			
		||||
    BuildFlags: allowrootforbuild
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
# Enable reproducible builds
 | 
			
		||||
# https://en.opensuse.org/openSUSE:Reproducible_Builds\#With_OBS
 | 
			
		||||
Macros:
 | 
			
		||||
%source_date_epoch_from_changelog Y
 | 
			
		||||
%clamp_mtime_to_source_date_epoch Y
 | 
			
		||||
%use_source_date_epoch_as_buildtime Y
 | 
			
		||||
%_buildhost reproducible
 | 
			
		||||
:Macros
 | 
			
		||||
							
								
								
									
										74
									
								
								_meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								_meta
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
{#- 
 | 
			
		||||
  This template is rendered by the render_meta.py script
 | 
			
		||||
  it is not automatically enforced by OBS
 | 
			
		||||
-#}
 | 
			
		||||
{%- set maintainers = [
 | 
			
		||||
    "edge-engineering",
 | 
			
		||||
] -%}
 | 
			
		||||
<project name="{{ project }}">
 | 
			
		||||
  <title>{{ title }}</title>
 | 
			
		||||
  {%- if description is defined %}
 | 
			
		||||
  <description>{{ description }}</description>
 | 
			
		||||
  {%- else %}
 | 
			
		||||
  <description/>
 | 
			
		||||
  {%- endif %}
 | 
			
		||||
  {%- if scm_url is defined %}
 | 
			
		||||
  <scmsync>{{ scm_url }}</scmsync>
 | 
			
		||||
  {%- endif %}
 | 
			
		||||
{%- for maintainer in maintainers %}
 | 
			
		||||
  <person userid="{{ maintainer }}" role="maintainer"/>
 | 
			
		||||
{%- endfor %}
 | 
			
		||||
{%- if not base_project %}
 | 
			
		||||
  <build>
 | 
			
		||||
    <disable/>
 | 
			
		||||
    <enable repository="charts"/>
 | 
			
		||||
    <enable repository="test_manifest_images"/>
 | 
			
		||||
  </build>
 | 
			
		||||
  <publish>
 | 
			
		||||
    <disable repository="phantomcharts"/>
 | 
			
		||||
  </publish>
 | 
			
		||||
  <repository name="phantomcharts">
 | 
			
		||||
    <arch>x86_64</arch>
 | 
			
		||||
  </repository>
 | 
			
		||||
{%- endif %}
 | 
			
		||||
{%- for repository in ["images", "images_6.0", "test_manifest_images"] %}
 | 
			
		||||
  <repository name="{{ repository }}">
 | 
			
		||||
    {%- if release_project is defined and repository != "test_manifest_images" %}
 | 
			
		||||
    <releasetarget project="{{ release_project }}" repository="images" trigger="manual"/>
 | 
			
		||||
    {%- endif %}
 | 
			
		||||
    <path project="SUSE:Registry" repository="standard"/>
 | 
			
		||||
    {%- if repository == "images_6.0" %}
 | 
			
		||||
      <path project="SUSE:CA" repository="16.0"/>
 | 
			
		||||
      <path project="SUSE:ALP:Products:Marble:6.0" repository="standard"/>
 | 
			
		||||
    {%- else %}
 | 
			
		||||
      <path project="SUSE:CA" repository="SLE_15_SP6"/>
 | 
			
		||||
      <path project="{{ project }}" repository="standard"/>
 | 
			
		||||
    {%- endif %}
 | 
			
		||||
    <arch>x86_64</arch>
 | 
			
		||||
    <arch>aarch64</arch>
 | 
			
		||||
  </repository>
 | 
			
		||||
{%- endfor %}
 | 
			
		||||
  <repository name="standard" block="local">
 | 
			
		||||
    {%- if release_project is defined and not for_release %}
 | 
			
		||||
    <releasetarget project="{{ release_project }}" repository="standard" trigger="manual"/>
 | 
			
		||||
    {%- endif %}
 | 
			
		||||
    <path project="Cloud:OpenStack:2024.2" repository="15.6"/>
 | 
			
		||||
    <path project="SUSE:SLE-15-SP6:Update" repository="standard"/>
 | 
			
		||||
    <arch>x86_64</arch>
 | 
			
		||||
    <arch>aarch64</arch>
 | 
			
		||||
  </repository>
 | 
			
		||||
  <repository name="charts"{{ ' rebuild="local"' if not base_project }}>
 | 
			
		||||
    {%- if release_project is defined and not for_release %}
 | 
			
		||||
    <releasetarget project="{{ release_project }}" repository="phantomcharts" trigger="manual"/>
 | 
			
		||||
    {%- endif %}
 | 
			
		||||
    <path project="{{ project }}" repository="standard"/>
 | 
			
		||||
    <arch>x86_64</arch>
 | 
			
		||||
  </repository>
 | 
			
		||||
  {%- if for_release %}
 | 
			
		||||
  <repository name="releasecharts" rebuild="local">
 | 
			
		||||
    <releasetarget project="{{ release_project }}" repository="charts" trigger="manual"/>
 | 
			
		||||
    <path project="{{ project }}" repository="standard"/>
 | 
			
		||||
    <arch>x86_64</arch>
 | 
			
		||||
  </repository>
 | 
			
		||||
  {%- endif %}
 | 
			
		||||
</project>
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.0-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%akri-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1-%RELEASE%
 | 
			
		||||
annotations:
 | 
			
		||||
  catalog.cattle.io/certified: rancher
 | 
			
		||||
  catalog.cattle.io/display-name: Akri
 | 
			
		||||
@@ -10,11 +11,11 @@ annotations:
 | 
			
		||||
  catalog.cattle.io/rancher-version: ">= 2.10.0-0"
 | 
			
		||||
  catalog.cattle.io/scope: management
 | 
			
		||||
  catalog.cattle.io/ui-component: plugins
 | 
			
		||||
  catalog.cattle.io/ui-extensions-version: ">= 3.0.0"
 | 
			
		||||
  catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0"
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
appVersion: 1.2.0
 | 
			
		||||
description: "SUSE Edge: Akri extension for Rancher Dashboard"
 | 
			
		||||
icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg
 | 
			
		||||
appVersion: 302.0.0+up1.2.1
 | 
			
		||||
description: 'SUSE Edge: Akri extension for Rancher Dashboard'
 | 
			
		||||
name: akri-dashboard-extension
 | 
			
		||||
type: application
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up1.2.0"
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up1.2.1"
 | 
			
		||||
icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ Common labels
 | 
			
		||||
helm.sh/chart: {{ include "extension-server.chart" . }}
 | 
			
		||||
{{ include "extension-server.selectorLabels" . }}
 | 
			
		||||
{{- if .Chart.AppVersion }}
 | 
			
		||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
 | 
			
		||||
app.kubernetes.io/version: {{ .Chart.AppVersion | replace "+" "_" | quote }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ spec:
 | 
			
		||||
  plugin:
 | 
			
		||||
    name: {{ include "extension-server.fullname" . }}
 | 
			
		||||
    version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }}
 | 
			
		||||
    endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/akri-dashboard-extension/1.2.0
 | 
			
		||||
    endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/akri-dashboard-extension/302.0.0+up1.2.1
 | 
			
		||||
    noCache: {{ .Values.plugin.noCache }}
 | 
			
		||||
    noAuth: {{ .Values.plugin.noAuth }}
 | 
			
		||||
    metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
 | 
			
		||||
@@ -8,5 +8,5 @@ plugin:
 | 
			
		||||
  metadata:
 | 
			
		||||
    catalog.cattle.io/display-name: Akri
 | 
			
		||||
    catalog.cattle.io/rancher-version: ">= 2.10.0-0"
 | 
			
		||||
    catalog.cattle.io/ui-extensions-version: ">= 3.0.0"
 | 
			
		||||
    catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0"
 | 
			
		||||
    catalog.cattle.io/kube-version: ">= v1.26.0-0"
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,9 @@
 | 
			
		||||
	<service name="cargo_vendor" mode="manual">
 | 
			
		||||
		<param name="srcdir">akri</param>
 | 
			
		||||
	</service>
 | 
			
		||||
	<service name="tar" mode="buildtime" />
 | 
			
		||||
	<service name="tar" mode="buildtime">
 | 
			
		||||
		<param name="obsinfo">akri.obsinfo</param>
 | 
			
		||||
	</service>
 | 
			
		||||
	<service name="set_version" mode="buildtime" >
 | 
			
		||||
		<param name="fromfile">version.txt</param>
 | 
			
		||||
		<param name="regex">^(.*)$</param>
 | 
			
		||||
 
 | 
			
		||||
@@ -12,10 +12,8 @@
 | 
			
		||||
    <param name="without-version">yes</param>
 | 
			
		||||
    <param name="versionrewrite-replacement">\1</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  <service mode="buildtime" name="tar">
 | 
			
		||||
    <param name="obsinfo">baremetal-operator.obsinfo</param>
 | 
			
		||||
  </service>
 | 
			
		||||
   <service name="go_modules">
 | 
			
		||||
  </service>
 | 
			
		||||
@@ -23,7 +21,7 @@
 | 
			
		||||
    <param name="file">baremetal-operator.spec</param>
 | 
			
		||||
    <param name="var">SOURCE_COMMIT</param>
 | 
			
		||||
    <param name="eval">
 | 
			
		||||
      SOURCE_COMMIT=$(grep commit *.obsinfo | cut -d" " -f2)
 | 
			
		||||
      SOURCE_COMMIT=$(grep commit baremetal-operator.obsinfo | cut -d" " -f2)
 | 
			
		||||
    </param>
 | 
			
		||||
    <param name="verbose">1</param>
 | 
			
		||||
  </service>
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ Release:        0.8.0
 | 
			
		||||
Summary:        Implements a Kubernetes API for managing bare metal hosts
 | 
			
		||||
License:        Apache-2.0
 | 
			
		||||
URL:            https://github.com/metal3-io/baremetal-operator
 | 
			
		||||
Source:         baremetal-operator-%{version}.tar.gz
 | 
			
		||||
Source:         baremetal-operator-%{version}.tar
 | 
			
		||||
Source1:        vendor.tar.gz
 | 
			
		||||
BuildRequires:  golang(API) = 1.22
 | 
			
		||||
ExcludeArch:    s390
 | 
			
		||||
 
 | 
			
		||||
@@ -1,36 +0,0 @@
 | 
			
		||||
# SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%cluster-api-provider-metal3:v%%cluster-api-provider-metal3_version%%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%cluster-api-provider-metal3:%%cluster-api-provider-metal3_version%%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%cluster-api-provider-metal3:%%cluster-api-provider-metal3_version%%-%RELEASE%
 | 
			
		||||
#!BuildVersion: 15.6
 | 
			
		||||
ARG SLE_VERSION
 | 
			
		||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
 | 
			
		||||
 | 
			
		||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
 | 
			
		||||
COPY --from=micro / /installroot/
 | 
			
		||||
RUN zypper --installroot /installroot --non-interactive install --no-recommends cluster-api-provider-metal3 shadow; zypper -n clean; rm -rf /var/log/*
 | 
			
		||||
 | 
			
		||||
FROM micro AS final
 | 
			
		||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
 | 
			
		||||
# labelprefix=com.suse.application.cluster-api-provider-metal3
 | 
			
		||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
 | 
			
		||||
LABEL org.opencontainers.image.title="SLE cluster-api-provider-metal3 Container Image"
 | 
			
		||||
LABEL org.opencontainers.image.description="cluster-api-provider-metal3 based on the SLE Base Container Image."
 | 
			
		||||
LABEL org.opencontainers.image.version="%%cluster-api-provider-metal3_version%%"
 | 
			
		||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
 | 
			
		||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%cluster-api-provider-metal3:%%cluster-api-provider-metal3_version%%-%RELEASE%"
 | 
			
		||||
LABEL org.openbuildservice.disturl="%DISTURL%"
 | 
			
		||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
 | 
			
		||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
 | 
			
		||||
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
 | 
			
		||||
LABEL com.suse.image-type="application"
 | 
			
		||||
LABEL com.suse.release-stage="released"
 | 
			
		||||
# endlabelprefix
 | 
			
		||||
 | 
			
		||||
COPY --from=base /installroot /
 | 
			
		||||
RUN mv /usr/bin/cluster-api-provider-metal3 /manager
 | 
			
		||||
# Use uid of nonroot user (65532) because kubernetes expects numeric user when applying pod security policies
 | 
			
		||||
USER 65532
 | 
			
		||||
ENTRYPOINT [ "/manager" ]
 | 
			
		||||
@@ -1,19 +0,0 @@
 | 
			
		||||
<services>
 | 
			
		||||
  <service mode="buildtime" name="kiwi_metainfo_helper"/>
 | 
			
		||||
  <service mode="buildtime" name="docker_label_helper"/>
 | 
			
		||||
  <service name="replace_using_package_version" mode="buildtime">
 | 
			
		||||
    <param name="file">Dockerfile</param>
 | 
			
		||||
    <param name="regex">%%cluster-api-provider-metal3_version%%</param>
 | 
			
		||||
    <param name="package">cluster-api-provider-metal3</param>
 | 
			
		||||
    <param name="parse-version">patch</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service name="replace_using_env" mode="buildtime">
 | 
			
		||||
    <param name="file">Dockerfile</param>
 | 
			
		||||
    <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
 | 
			
		||||
    <param name="var">IMG_PREFIX</param>
 | 
			
		||||
    <param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
 | 
			
		||||
    <param name="var">IMG_REPO</param>
 | 
			
		||||
    <param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
 | 
			
		||||
    <param name="var">SUPPORT_LEVEL</param>
 | 
			
		||||
  </service>
 | 
			
		||||
</services>
 | 
			
		||||
@@ -1,23 +0,0 @@
 | 
			
		||||
<services>
 | 
			
		||||
 <service name="obs_scm">
 | 
			
		||||
    <param name="url">https://github.com/metal3-io/cluster-api-provider-metal3</param>
 | 
			
		||||
    <param name="scm">git</param>
 | 
			
		||||
    <param name="revision">v1.7.2</param>
 | 
			
		||||
    <param name="version">_auto_</param>
 | 
			
		||||
    <param name="versionformat">@PARENT_TAG@</param>
 | 
			
		||||
    <param name="changesgenerate">enable</param>
 | 
			
		||||
    <param name="changesauthor">steven.hardy@suse.com</param>
 | 
			
		||||
    <param name="match-tag">v*</param>
 | 
			
		||||
    <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
 | 
			
		||||
    <param name="without-version">yes</param>
 | 
			
		||||
    <param name="versionrewrite-replacement">\1</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  </service>
 | 
			
		||||
   <service name="go_modules">
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="set_version" />
 | 
			
		||||
</services>
 | 
			
		||||
@@ -1,54 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# spec file for package cluster-api-provider-metal3
 | 
			
		||||
#
 | 
			
		||||
# Copyright (c) 2023 SUSE LLC
 | 
			
		||||
#
 | 
			
		||||
# All modifications and additions to the file contributed by third parties
 | 
			
		||||
# remain the property of their copyright owners, unless otherwise agreed
 | 
			
		||||
# upon. The license for this file, and modifications and additions to the
 | 
			
		||||
# file, is the same license as for the pristine package itself (unless the
 | 
			
		||||
# license for the pristine package is not an Open Source License, in which
 | 
			
		||||
# case the license is the MIT License). An "Open Source License" is a
 | 
			
		||||
# license that conforms to the Open Source Definition (Version 1.9)
 | 
			
		||||
# published by the Open Source Initiative.
 | 
			
		||||
 | 
			
		||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Name:           cluster-api-provider-metal3
 | 
			
		||||
Version:        1.7.2
 | 
			
		||||
Release:        0
 | 
			
		||||
Summary:        Cluster API Infrastructure Provider for Metal3
 | 
			
		||||
License:        Apache-2.0
 | 
			
		||||
URL:            https://github.com/metal3-io/cluster-api-provider-metal3
 | 
			
		||||
Source:         cluster-api-provider-metal3-%{version}.tar.gz
 | 
			
		||||
Source1:        vendor.tar.gz
 | 
			
		||||
BuildRequires:  golang(API) = 1.22
 | 
			
		||||
ExcludeArch:    s390
 | 
			
		||||
ExcludeArch:    %{ix86}
 | 
			
		||||
 | 
			
		||||
%description
 | 
			
		||||
 | 
			
		||||
Cluster API Provider Metal3 is one of the providers for Cluster API and enables
 | 
			
		||||
users to deploy a Cluster API based cluster on top of bare metal infrastructure
 | 
			
		||||
using Metal3.
 | 
			
		||||
 | 
			
		||||
%prep
 | 
			
		||||
%autosetup -a1 -n cluster-api-provider-metal3-%{version}
 | 
			
		||||
 | 
			
		||||
%build
 | 
			
		||||
go build \
 | 
			
		||||
   -mod=vendor \
 | 
			
		||||
   -buildmode=pie \
 | 
			
		||||
   -a -ldflags '-extldflags "-static"'
 | 
			
		||||
 | 
			
		||||
%install
 | 
			
		||||
install -D -m0755 cluster-api-provider-metal3 %{buildroot}%{_bindir}/cluster-api-provider-metal3
 | 
			
		||||
 | 
			
		||||
%files
 | 
			
		||||
%license LICENSE
 | 
			
		||||
%doc README.md
 | 
			
		||||
%{_bindir}/cluster-api-provider-metal3
 | 
			
		||||
 | 
			
		||||
%changelog
 | 
			
		||||
@@ -8,10 +8,8 @@
 | 
			
		||||
    <param name="versionrewrite-pattern">v(.*)</param>
 | 
			
		||||
    <param name="changesgenerate">enable</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  <service mode="buildtime" name="tar">
 | 
			
		||||
    <param name="obsinfo">cosign.obsinfo</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="set_version" />
 | 
			
		||||
  <service name="go_modules">
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ 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.gz
 | 
			
		||||
Source:         cosign-%{version}.tar
 | 
			
		||||
Source1:        vendor.tar.gz         
 | 
			
		||||
BuildRequires:  golang-packaging
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.0-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.2-rc1
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.2-rc1-%RELEASE%
 | 
			
		||||
#!BuildVersion: 15.6
 | 
			
		||||
ARG 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.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.version="1.1.0"
 | 
			
		||||
LABEL org.opencontainers.image.version="1.1.2-rc1"
 | 
			
		||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
 | 
			
		||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.1.0-%RELEASE%"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.1.2-rc1-%RELEASE%"
 | 
			
		||||
LABEL org.openbuildservice.disturl="%DISTURL%"
 | 
			
		||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
 | 
			
		||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
 | 
			
		||||
 
 | 
			
		||||
@@ -7,10 +7,14 @@
 | 
			
		||||
    <param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
 | 
			
		||||
    <param name="var">IMG_REPO</param>
 | 
			
		||||
    <param name="file">artifacts.yaml</param>
 | 
			
		||||
    <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
 | 
			
		||||
    <param name="var">IMG_PREFIX</param>
 | 
			
		||||
    <param name="eval">CHART_REPO=$(rpm --macros=/root/.rpmmacros -E %chart_repo)</param>
 | 
			
		||||
    <param name="var">CHART_REPO</param>
 | 
			
		||||
    <param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
 | 
			
		||||
    <param name="var">SUPPORT_LEVEL</param>
 | 
			
		||||
    <param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param>
 | 
			
		||||
    <param name="var">CHART_MAJOR</param>
 | 
			
		||||
  </service>
 | 
			
		||||
</services>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
metallb:
 | 
			
		||||
  chart: metallb-chart
 | 
			
		||||
  repository: %%CHART_REPO%%/3.1
 | 
			
		||||
  version: 0.14.9
 | 
			
		||||
  repository: "%%CHART_REPO%%/%%IMG_PREFIX%%"
 | 
			
		||||
  version: "%%CHART_MAJOR%%.0.1+up0.14.9"
 | 
			
		||||
endpoint-copier-operator:
 | 
			
		||||
  chart: endpoint-copier-operator-chart
 | 
			
		||||
  repository: %%CHART_REPO%%/3.1
 | 
			
		||||
  version: 0.2.1
 | 
			
		||||
  repository: "%%CHART_REPO%%/%%IMG_PREFIX%%"
 | 
			
		||||
  version: "%%CHART_MAJOR%%.0.0+up0.2.1"
 | 
			
		||||
kubernetes:
 | 
			
		||||
  k3s:
 | 
			
		||||
    selinuxPackage: k3s-selinux-1.6-1.slemicro.noarch
 | 
			
		||||
@@ -13,4 +13,3 @@ kubernetes:
 | 
			
		||||
  rke2:
 | 
			
		||||
    selinuxPackage: rke2-selinux
 | 
			
		||||
    selinuxRepository: https://rpm.rancher.io/rke2/stable/common/slemicro/noarch
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,19 @@
 | 
			
		||||
<services>
 | 
			
		||||
  <service name="obs_scm">
 | 
			
		||||
    <param name="url">https://github.com/suse-edge/edge-image-builder.git</param>
 | 
			
		||||
    <param name="versionformat">@PARENT_TAG@</param>
 | 
			
		||||
    <param name="scm">git</param>
 | 
			
		||||
    <param name="exclude">.git</param>
 | 
			
		||||
    <param name="revision">v1.1.0</param>
 | 
			
		||||
    <param name="revision">v1.1.2-rc1</param>
 | 
			
		||||
    <!-- Uncomment and set this For Pre-Release Version -->
 | 
			
		||||
    <param name="version">1.1.2~rc0</param>
 | 
			
		||||
    <!-- Uncomment and this for regular version -->
 | 
			
		||||
    <!-- <param name="versionformat">@PARENT_TAG@</param> -->
 | 
			
		||||
    <param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param>
 | 
			
		||||
    <param name="versionrewrite-replacement">\1.\2.\3</param>
 | 
			
		||||
    <param name="changesgenerate">enable</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  <service mode="buildtime" name="tar">
 | 
			
		||||
    <param name="obsinfo">edge-image-builder.obsinfo</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="set_version" />
 | 
			
		||||
  <service name="go_modules">
 | 
			
		||||
 
 | 
			
		||||
@@ -17,12 +17,12 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Name:           edge-image-builder
 | 
			
		||||
Version:        1.1.0
 | 
			
		||||
Version:        1.1.2~rc1
 | 
			
		||||
Release:        0
 | 
			
		||||
Summary:        Edge Image Builder
 | 
			
		||||
License:        Apache-2.0
 | 
			
		||||
URL:            https://github.com/suse-edge/edge-image-builder
 | 
			
		||||
Source:         edge-image-builder-%{version}.tar.gz
 | 
			
		||||
Source:         edge-image-builder-%{version}.tar
 | 
			
		||||
Source1:        vendor.tar.gz
 | 
			
		||||
BuildRequires:  golang(API) go1.22
 | 
			
		||||
BuildRequires:  golang-packaging
 | 
			
		||||
 
 | 
			
		||||
@@ -12,10 +12,8 @@
 | 
			
		||||
    <param name="without-version">yes</param>
 | 
			
		||||
    <param name="versionrewrite-replacement">\1</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  <service mode="buildtime" name="tar">
 | 
			
		||||
    <param name="obsinfo">endpoint-copier-operator.obsinfo</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service name="go_modules">
 | 
			
		||||
  </service>
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ Release:        0.2.0
 | 
			
		||||
Summary:        Implements a Kubernetes API for copying endpoint resources
 | 
			
		||||
License:        Apache-2.0
 | 
			
		||||
URL:            https://github.com/suse-edge/endpoint-copier-operator
 | 
			
		||||
Source:         endpoint-copier-operator-%{version}.tar.gz
 | 
			
		||||
Source:         endpoint-copier-operator-%{version}.tar
 | 
			
		||||
Source1:        vendor.tar.gz
 | 
			
		||||
BuildRequires:  golang(API) = 1.20
 | 
			
		||||
ExcludeArch:    s390
 | 
			
		||||
 
 | 
			
		||||
@@ -1,26 +1,25 @@
 | 
			
		||||
# SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ip-address-manager:v%%ip-address-manager_version%%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ip-address-manager:%%ip-address-manager_version%%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ip-address-manager:%%ip-address-manager_version%%-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%frr-k8s:v%%frr-k8s_version%%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%frr-k8s:v%%frr-k8s_version%%-%RELEASE%
 | 
			
		||||
#!BuildVersion: 15.6
 | 
			
		||||
ARG SLE_VERSION
 | 
			
		||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
 | 
			
		||||
 | 
			
		||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
 | 
			
		||||
COPY --from=micro / /installroot/
 | 
			
		||||
RUN zypper --installroot /installroot --non-interactive install --no-recommends ip-address-manager shadow; zypper -n clean; rm -rf /var/log/*
 | 
			
		||||
RUN zypper --installroot /installroot --non-interactive install --no-recommends frr-k8s; zypper -n clean; rm -rf /var/log/*
 | 
			
		||||
 | 
			
		||||
FROM micro AS final
 | 
			
		||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
 | 
			
		||||
# labelprefix=com.suse.application.ip-address-manager
 | 
			
		||||
# labelprefix=com.suse.application.endpoint-copier-operator
 | 
			
		||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
 | 
			
		||||
LABEL org.opencontainers.image.title="SLE ip-address-manager Container Image"
 | 
			
		||||
LABEL org.opencontainers.image.description="ip-address-manager based on the SLE Base Container Image."
 | 
			
		||||
LABEL org.opencontainers.image.version="%%ip-address-manager_version%%"
 | 
			
		||||
LABEL org.opencontainers.image.title="SLE frr-k8s Container Image"
 | 
			
		||||
LABEL org.opencontainers.image.description="frr-k8s based on the SLE Base Container Image."
 | 
			
		||||
LABEL org.opencontainers.image.version="%%frr-k8s_version%%"
 | 
			
		||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
 | 
			
		||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ip-address-manager:%%ip-address-manager_version%%-%RELEASE%"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr-k8s:v%%frr-k8s_version%%-%RELEASE%"
 | 
			
		||||
LABEL org.openbuildservice.disturl="%DISTURL%"
 | 
			
		||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
 | 
			
		||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
 | 
			
		||||
@@ -29,8 +28,6 @@ LABEL com.suse.image-type="application"
 | 
			
		||||
LABEL com.suse.release-stage="released"
 | 
			
		||||
# endlabelprefix
 | 
			
		||||
 | 
			
		||||
#Install frr-k8s
 | 
			
		||||
COPY --from=base /installroot /
 | 
			
		||||
RUN mv /usr/bin/ip-address-manager /manager
 | 
			
		||||
# Use uid of nonroot user (65532) because kubernetes expects numeric user when applying pod security policies
 | 
			
		||||
USER 65532
 | 
			
		||||
ENTRYPOINT [ "/manager" ]
 | 
			
		||||
ENTRYPOINT ["/frr-k8s"]
 | 
			
		||||
@@ -3,8 +3,8 @@
 | 
			
		||||
  <service mode="buildtime" name="docker_label_helper"/>
 | 
			
		||||
  <service name="replace_using_package_version" mode="buildtime">
 | 
			
		||||
    <param name="file">Dockerfile</param>
 | 
			
		||||
    <param name="regex">%%ip-address-manager_version%%</param>
 | 
			
		||||
    <param name="package">ip-address-manager</param>
 | 
			
		||||
    <param name="regex">%%frr-k8s_version%%</param>
 | 
			
		||||
    <param name="package">frr-k8s</param>
 | 
			
		||||
    <param name="parse-version">patch</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service name="replace_using_env" mode="buildtime">
 | 
			
		||||
@@ -12,10 +12,8 @@
 | 
			
		||||
    <param name="without-version">yes</param>
 | 
			
		||||
    <param name="versionrewrite-replacement">\1</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  <service mode="buildtime" name="tar">
 | 
			
		||||
    <param name="obsinfo">frr-k8s.obsinfo</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service name="go_modules">
 | 
			
		||||
  </service>
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ Release:        0.0.14
 | 
			
		||||
Summary:        A kubernetes based daemonset that exposes a subset of the FRR API in a kubernetes compliant manner.
 | 
			
		||||
License:        Apache-2.0
 | 
			
		||||
URL:            https://github.com/metallb/frr-k8s
 | 
			
		||||
Source:         frr-k8s-%{version}.tar.gz
 | 
			
		||||
Source:         frr-k8s-%{version}.tar
 | 
			
		||||
Source1:        vendor.tar.gz
 | 
			
		||||
BuildRequires:  golang(API) = 1.22
 | 
			
		||||
ExcludeArch:    s390
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,8 @@
 | 
			
		||||
    <param name="versionrewrite-pattern">v(.*)</param>
 | 
			
		||||
    <param name="changesgenerate">enable</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  <service mode="buildtime" name="tar">
 | 
			
		||||
    <param name="obsinfo">hauler.obsinfo</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="set_version" />
 | 
			
		||||
  <service name="go_modules">
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ Release:        0
 | 
			
		||||
Summary:        Airgap Swiss Army Knife
 | 
			
		||||
License:        Apache-2.0
 | 
			
		||||
URL:            https://github.com/hauler-dev/hauler
 | 
			
		||||
Source:         hauler-%{version}.tar.gz
 | 
			
		||||
Source:         hauler-%{version}.tar
 | 
			
		||||
Source1:        vendor.tar.gz
 | 
			
		||||
BuildRequires:  golang-packaging
 | 
			
		||||
BuildRequires:  cosign
 | 
			
		||||
 
 | 
			
		||||
@@ -1,23 +0,0 @@
 | 
			
		||||
<services>
 | 
			
		||||
 <service name="obs_scm">
 | 
			
		||||
    <param name="url">https://github.com/metal3-io/ip-address-manager</param>
 | 
			
		||||
    <param name="scm">git</param>
 | 
			
		||||
    <param name="revision">v1.7.2</param>
 | 
			
		||||
    <param name="version">_auto_</param>
 | 
			
		||||
    <param name="versionformat">@PARENT_TAG@</param>
 | 
			
		||||
    <param name="changesgenerate">enable</param>
 | 
			
		||||
    <param name="changesauthor">steven.hardy@suse.com</param>
 | 
			
		||||
    <param name="match-tag">v*</param>
 | 
			
		||||
    <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
 | 
			
		||||
    <param name="without-version">yes</param>
 | 
			
		||||
    <param name="versionrewrite-replacement">\1</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  </service>
 | 
			
		||||
   <service name="go_modules">
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="set_version" />
 | 
			
		||||
</services>
 | 
			
		||||
@@ -1,51 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# spec file for package ip-address-manager
 | 
			
		||||
#
 | 
			
		||||
# Copyright (c) 2023 SUSE LLC
 | 
			
		||||
#
 | 
			
		||||
# All modifications and additions to the file contributed by third parties
 | 
			
		||||
# remain the property of their copyright owners, unless otherwise agreed
 | 
			
		||||
# upon. The license for this file, and modifications and additions to the
 | 
			
		||||
# file, is the same license as for the pristine package itself (unless the
 | 
			
		||||
# license for the pristine package is not an Open Source License, in which
 | 
			
		||||
# case the license is the MIT License). An "Open Source License" is a
 | 
			
		||||
# license that conforms to the Open Source Definition (Version 1.9)
 | 
			
		||||
# published by the Open Source Initiative.
 | 
			
		||||
 | 
			
		||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Name:           ip-address-manager
 | 
			
		||||
Version:        1.7.2
 | 
			
		||||
Release:        0
 | 
			
		||||
Summary:        Metal3 IPAM controller
 | 
			
		||||
License:        Apache-2.0
 | 
			
		||||
URL:            https://github.com/metal3-io/ip-address-manager
 | 
			
		||||
Source:         ip-address-manager-%{version}.tar.gz
 | 
			
		||||
Source1:        vendor.tar.gz
 | 
			
		||||
BuildRequires:  golang(API) = 1.22
 | 
			
		||||
ExcludeArch:    s390
 | 
			
		||||
ExcludeArch:    %{ix86}
 | 
			
		||||
 | 
			
		||||
%description
 | 
			
		||||
 | 
			
		||||
Metal3 IPAM controller
 | 
			
		||||
 | 
			
		||||
%prep
 | 
			
		||||
%autosetup -a1 -n ip-address-manager-%{version}
 | 
			
		||||
 | 
			
		||||
%build
 | 
			
		||||
go build \
 | 
			
		||||
   -mod=vendor \
 | 
			
		||||
   -buildmode=pie \
 | 
			
		||||
 | 
			
		||||
%install
 | 
			
		||||
install -D -m0755 ip-address-manager %{buildroot}%{_bindir}/ip-address-manager
 | 
			
		||||
 | 
			
		||||
%files
 | 
			
		||||
%license LICENSE
 | 
			
		||||
%doc README.md
 | 
			
		||||
%{_bindir}/ip-address-manager
 | 
			
		||||
 | 
			
		||||
%changelog
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
# SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.0-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.3
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.3-%RELEASE%
 | 
			
		||||
#!BuildVersion: 15.6
 | 
			
		||||
 | 
			
		||||
ARG SLE_VERSION
 | 
			
		||||
@@ -8,7 +8,14 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
 | 
			
		||||
 | 
			
		||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
 | 
			
		||||
 | 
			
		||||
RUN set -euo pipefail; zypper -n  in --no-recommends gcc git make xz-devel shim dosfstools mtools glibc-extra grub2-x86_64-efi grub2; zypper -n clean; rm -rf /var/log/*
 | 
			
		||||
#!ArchExclusiveLine: x86_64
 | 
			
		||||
RUN if [ "$(uname -m)" = "x86_64" ];then \
 | 
			
		||||
      zypper -n  in --no-recommends gcc git make xz-devel shim dosfstools mtools glibc-extra grub2-x86_64-efi grub2; zypper -n clean; rm -rf /var/log/*; \
 | 
			
		||||
    fi
 | 
			
		||||
#!ArchExclusiveLine: aarch64
 | 
			
		||||
RUN if [ "$(uname -m)" = "aarch64" ];then \
 | 
			
		||||
      zypper -n rm kubic-locale-archive-2.31-10.36.noarch openssl-1_1-1.1.1l-150500.17.37.1.aarch64; zypper -n in --no-recommends gcc git make xz-devel openssl-3 mokutil shim dosfstools mtools glibc glibc-extra grub2 grub2-arm64-efi; zypper -n clean; rm -rf /var/log/* ;\
 | 
			
		||||
    fi
 | 
			
		||||
WORKDIR /tmp
 | 
			
		||||
COPY prepare-efi.sh /bin/
 | 
			
		||||
RUN set -euo pipefail; chmod +x /bin/prepare-efi.sh
 | 
			
		||||
@@ -16,7 +23,15 @@ RUN /bin/prepare-efi.sh
 | 
			
		||||
 | 
			
		||||
COPY --from=micro / /installroot/
 | 
			
		||||
RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf
 | 
			
		||||
RUN zypper --installroot /installroot --non-interactive install --no-recommends python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 inotify-tools ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp syslinux ipxe-bootimgs crudini openstack-ironic
 | 
			
		||||
 | 
			
		||||
#!ArchExclusiveLine: x86_64
 | 
			
		||||
RUN if [ "$(uname -m)" = "x86_64" ];then \
 | 
			
		||||
      zypper --installroot /installroot --non-interactive install --no-recommends syslinux python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi inotify-tools ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic openstack-ironic-inspector-api; \
 | 
			
		||||
    fi
 | 
			
		||||
#!ArchExclusiveLine: aarch64
 | 
			
		||||
RUN if [ "$(uname -m)" = "aarch64" ];then \
 | 
			
		||||
      zypper --installroot /installroot --non-interactive install --no-recommends python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi inotify-tools ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic openstack-ironic-inspector-api; \
 | 
			
		||||
    fi
 | 
			
		||||
    
 | 
			
		||||
# DATABASE
 | 
			
		||||
RUN mkdir -p /installroot/var/lib/ironic && \
 | 
			
		||||
@@ -31,8 +46,8 @@ LABEL org.opencontainers.image.description="Openstack Ironic based on the SLE Ba
 | 
			
		||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
 | 
			
		||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
 | 
			
		||||
LABEL org.opencontainers.image.version="26.1.2.0"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.0-%RELEASE%"
 | 
			
		||||
LABEL org.opencontainers.image.version="26.1.2.3"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.3-%RELEASE%"
 | 
			
		||||
LABEL org.openbuildservice.disturl="%DISTURL%"
 | 
			
		||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
 | 
			
		||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
 | 
			
		||||
@@ -64,7 +79,15 @@ RUN mkdir -p $GRUB_DIR
 | 
			
		||||
 | 
			
		||||
# IRONIC #
 | 
			
		||||
RUN cp /usr/share/ipxe/undionly.kpxe /tftpboot/undionly.kpxe
 | 
			
		||||
RUN cp /usr/share/ipxe/ipxe-x86_64.efi /tftpboot/ipxe.efi
 | 
			
		||||
#!ArchExclusiveLine: x86_64
 | 
			
		||||
RUN if [ "$(uname -m)" = "x86_64" ];then \
 | 
			
		||||
      cp /usr/share/ipxe/ipxe-x86_64.efi /tftpboot/ipxe.efi ;\
 | 
			
		||||
    fi
 | 
			
		||||
#!ArchExclusiveLine: x86_64
 | 
			
		||||
RUN if [ "$(uname -m)" = "aarch64" ]; then\ 
 | 
			
		||||
     cp /usr/share/ipxe/snp-arm64.efi /tftpboot/ipxe.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp-arm64.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp.efi ;\
 | 
			
		||||
    fi
 | 
			
		||||
    
 | 
			
		||||
COPY --from=base /tmp/esp.img /tmp/uefi_esp.img
 | 
			
		||||
 | 
			
		||||
COPY ironic.conf.j2 /etc/ironic/
 | 
			
		||||
 
 | 
			
		||||
@@ -10,17 +10,15 @@ Listen {{ env.VMEDIA_TLS_PORT }}
 | 
			
		||||
    SSLCertificateFile {{ env.IRONIC_VMEDIA_CERT_FILE }}
 | 
			
		||||
    SSLCertificateKeyFile {{ env.IRONIC_VMEDIA_KEY_FILE }}
 | 
			
		||||
 | 
			
		||||
    <Directory ~ "/shared/html">
 | 
			
		||||
         Order deny,allow
 | 
			
		||||
         deny from all
 | 
			
		||||
    <Directory "/shared">
 | 
			
		||||
        AllowOverride None
 | 
			
		||||
        Require all granted
 | 
			
		||||
    </Directory>
 | 
			
		||||
    <Directory ~ "/shared/html/(redfish|ilo)/">
 | 
			
		||||
         Order allow,deny
 | 
			
		||||
         allow from all
 | 
			
		||||
    </Directory>
 | 
			
		||||
    <Directory ~ "/shared/html/images/">
 | 
			
		||||
         Order allow,deny
 | 
			
		||||
         allow from all
 | 
			
		||||
 | 
			
		||||
    <Directory "/shared/html">
 | 
			
		||||
        Options Indexes FollowSymLinks
 | 
			
		||||
        AllowOverride None
 | 
			
		||||
        Require all granted
 | 
			
		||||
    </Directory>
 | 
			
		||||
</VirtualHost>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -83,7 +83,7 @@ send_sensor_data = {{ env.SEND_SENSOR_DATA }}
 | 
			
		||||
# Power state is checked every 60 seconds and BMC activity should
 | 
			
		||||
# be avoided more often than once every sixty seconds.
 | 
			
		||||
send_sensor_data_interval = 160
 | 
			
		||||
bootloader = http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/uefi_esp.img
 | 
			
		||||
bootloader = {{ env.IRONIC_BOOT_BASE_URL }}/uefi_esp.img
 | 
			
		||||
verify_step_priority_override = management.clear_job_queue:90
 | 
			
		||||
# We don't use this feature, and it creates an additional load on the database
 | 
			
		||||
node_history = False
 | 
			
		||||
@@ -112,7 +112,7 @@ default_boot_option = local
 | 
			
		||||
erase_devices_metadata_priority = 10
 | 
			
		||||
erase_devices_priority = 0
 | 
			
		||||
http_root = /shared/html/
 | 
			
		||||
http_url = http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}
 | 
			
		||||
http_url = {{ env.IRONIC_BOOT_BASE_URL }}
 | 
			
		||||
fast_track = {{ env.IRONIC_FAST_TRACK }}
 | 
			
		||||
{% if env.IRONIC_BOOT_ISO_SOURCE %}
 | 
			
		||||
ramdisk_image_download_source = {{ env.IRONIC_BOOT_ISO_SOURCE }}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,22 +6,37 @@ ARCH=$(uname -m)
 | 
			
		||||
DEST=${2:-/tmp/esp.img}
 | 
			
		||||
OS=${1:-sles}
 | 
			
		||||
 | 
			
		||||
BOOTEFI=BOOTX64.efi
 | 
			
		||||
GRUBEFI=grubx64.efi
 | 
			
		||||
if [ $ARCH = "aarch64" ]; then
 | 
			
		||||
  BOOTEFI=BOOTAA64.EFI
 | 
			
		||||
  GRUBEFI=grubaa64.efi
 | 
			
		||||
else
 | 
			
		||||
  BOOTEFI=BOOTX64.efi
 | 
			
		||||
  GRUBEFI=grubx64.efi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
dd bs=1024 count=6400 if=/dev/zero of=$DEST
 | 
			
		||||
mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST
 | 
			
		||||
 | 
			
		||||
mkdir -p /boot/efi/EFI/BOOT
 | 
			
		||||
cp -L /usr/lib64/efi/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI
 | 
			
		||||
mkdir -p /boot/efi/EFI/$OS
 | 
			
		||||
#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
 | 
			
		||||
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
 | 
			
		||||
#mcopy -i $DEST -v /boot/efi/EFI/$OS/$GRUBEFI ::EFI/BOOT
 | 
			
		||||
mcopy -i $DEST -v /boot/efi/EFI/$OS/grub.efi ::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;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,14 @@
 | 
			
		||||
# Ramdisk logs path
 | 
			
		||||
LOG_DIR="/shared/log/ironic/deploy"
 | 
			
		||||
 | 
			
		||||
# The ironic container creates the directory, wait for
 | 
			
		||||
# it to exist before running inotifywait or it can fail causing
 | 
			
		||||
# a spurious restart
 | 
			
		||||
while [ ! -d "${LOG_DIR}" ]; do
 | 
			
		||||
  echo "Waiting for ${LOG_DIR}"
 | 
			
		||||
  sleep 5
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
inotifywait -m "${LOG_DIR}" -e close_write |
 | 
			
		||||
    while read -r path _action file; do
 | 
			
		||||
        echo "************ Contents of ${path}/${file} ramdisk log file bundle **************"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
# SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.0-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%RELEASE%
 | 
			
		||||
#!BuildVersion: 15.6
 | 
			
		||||
ARG SLE_VERSION
 | 
			
		||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
 | 
			
		||||
@@ -8,7 +8,14 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
 | 
			
		||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
 | 
			
		||||
COPY --from=micro / /installroot/
 | 
			
		||||
RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf
 | 
			
		||||
RUN zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-x86_64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*
 | 
			
		||||
#!ArchExclusiveLine: x86_64
 | 
			
		||||
RUN if [ "$(uname -m)" = "x86_64" ];then \
 | 
			
		||||
  zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-x86_64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*; \
 | 
			
		||||
  fi
 | 
			
		||||
#!ArchExclusiveLine: aarch64
 | 
			
		||||
RUN if [ "$(uname -m)" = "aarch64" ];then \
 | 
			
		||||
  zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-aarch64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*; \
 | 
			
		||||
  fi
 | 
			
		||||
#RUN zypper --installroot /installroot --non-interactive install --no-recommends sles-release;
 | 
			
		||||
RUN cp /usr/bin/getopt /installroot/
 | 
			
		||||
 | 
			
		||||
@@ -19,11 +26,11 @@ FROM micro AS final
 | 
			
		||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
 | 
			
		||||
LABEL org.opencontainers.image.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.version="3.0.0"
 | 
			
		||||
LABEL org.opencontainers.image.version="3.0.1"
 | 
			
		||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
 | 
			
		||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.0-%RELEASE%"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%RELEASE%"
 | 
			
		||||
LABEL org.openbuildservice.disturl="%DISTURL%"
 | 
			
		||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
 | 
			
		||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,6 @@
 | 
			
		||||
<services>
 | 
			
		||||
  <service mode="buildtime" name="kiwi_metainfo_helper"/>
 | 
			
		||||
  <service mode="buildtime" name="docker_label_helper"/>
 | 
			
		||||
  <service name="replace_using_package_version" mode="buildtime">
 | 
			
		||||
    <param name="file">Dockerfile</param>
 | 
			
		||||
    <param name="regex">%%ironic-ipa-ramdisk-x86_64_version%%</param>
 | 
			
		||||
    <param name="package">ironic-ipa-ramdisk-x86_64</param>
 | 
			
		||||
    <param name="parse-version">patch</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service name="replace_using_env" mode="buildtime">
 | 
			
		||||
    <param name="file">Dockerfile</param>
 | 
			
		||||
    <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,10 @@ export no_proxy=${no_proxy:-$NO_PROXY}
 | 
			
		||||
 | 
			
		||||
# Which image should we use
 | 
			
		||||
if [ -z "${IPA_BASEURI}" ]; then
 | 
			
		||||
  # SLES BASED IPA - openstack-ironic-image-x86_64 package
 | 
			
		||||
  # SLES BASED IPA - ironic-ipa-ramdisk-x86_64 package
 | 
			
		||||
  mkdir -p /shared/html/images
 | 
			
		||||
  cp /tmp/initrd.xz /shared/html/images/ironic-python-agent.initramfs
 | 
			
		||||
  cp /tmp/openstack-ironic-image*.x86_64*.kernel /shared/html/images/ironic-python-agent.kernel
 | 
			
		||||
  cp /tmp/openstack-ironic-image*.kernel /shared/html/images/ironic-python-agent.kernel
 | 
			
		||||
else
 | 
			
		||||
  FILENAME=ironic-python-agent
 | 
			
		||||
  FILENAME_EXT=.tar
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<image schemaversion="7.4" name="openstack-ironic-image-201">
 | 
			
		||||
<image schemaversion="7.4" name="openstack-ironic-image-301">
 | 
			
		||||
    <description type="system">
 | 
			
		||||
        <author>Cloud developers</author>
 | 
			
		||||
        <contact>cloud-devel@suse.de</contact>
 | 
			
		||||
@@ -116,8 +116,9 @@
 | 
			
		||||
        <package name="vim"/>
 | 
			
		||||
        <package name="grub2"/>
 | 
			
		||||
        <package name="grub2-x86_64-efi" arch="x86_64"/>
 | 
			
		||||
        <package name="grub2-i386-pc"/>
 | 
			
		||||
        <package name="syslinux"/>
 | 
			
		||||
        <package name="grub2-arm64-efi" arch="aarch64"/>
 | 
			
		||||
        <package name="grub2-i386-pc" arch="x86_64"/>
 | 
			
		||||
        <package name="syslinux" arch="x86_64"/>
 | 
			
		||||
        <package name="lvm2"/>
 | 
			
		||||
        <package name="plymouth"/>
 | 
			
		||||
        <package name="fontconfig"/>
 | 
			
		||||
@@ -135,12 +136,10 @@
 | 
			
		||||
        <package name="openstack-ironic-python-agent"/>
 | 
			
		||||
        <package name="hdparm"/>
 | 
			
		||||
        <package name="qemu-tools"/>
 | 
			
		||||
        <package name="python311-proliantutils" arch="x86_64"/>
 | 
			
		||||
        <package name="python311-proliantutils"/>
 | 
			
		||||
        <package name="lshw"/>
 | 
			
		||||
        <package name="dmidecode" arch="aarch64"/>
 | 
			
		||||
        <package name="dmidecode" arch="x86_64"/>
 | 
			
		||||
        <package name="efibootmgr" arch="aarch64" />
 | 
			
		||||
        <package name="efibootmgr" arch="x86_64" />
 | 
			
		||||
        <package name="dmidecode"/>
 | 
			
		||||
        <package name="efibootmgr"/>
 | 
			
		||||
        <package name="gptfdisk"/>
 | 
			
		||||
        <package name="open-iscsi"/>
 | 
			
		||||
        <package name="hwinfo"/>
 | 
			
		||||
@@ -157,7 +156,6 @@
 | 
			
		||||
    </packages>
 | 
			
		||||
 | 
			
		||||
    <packages type="kis">
 | 
			
		||||
        <package name="gfxboot-branding-SLE"/>
 | 
			
		||||
        <package name="dracut-kiwi-oem-repart"/>
 | 
			
		||||
        <package name="dracut-kiwi-oem-dump"/>
 | 
			
		||||
    </packages> 
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Name:           ironic-ipa-ramdisk
 | 
			
		||||
Version:        3.0.0
 | 
			
		||||
Version:        3.0.1
 | 
			
		||||
Release:        0
 | 
			
		||||
Summary:        Kernel and ramdisk image for OpenStack Ironic
 | 
			
		||||
License:        SUSE-EULA
 | 
			
		||||
@@ -49,7 +49,12 @@ BuildRequires:  fontconfig
 | 
			
		||||
BuildRequires:  fonts-config
 | 
			
		||||
BuildRequires:  gptfdisk
 | 
			
		||||
BuildRequires:  grub2
 | 
			
		||||
%ifarch x86_64
 | 
			
		||||
BuildRequires:  grub2-x86_64-efi
 | 
			
		||||
%endif
 | 
			
		||||
%ifarch aarch64
 | 
			
		||||
BuildRequires:  grub2-arm64-efi
 | 
			
		||||
%endif
 | 
			
		||||
BuildRequires:  haveged
 | 
			
		||||
BuildRequires:  hdparm
 | 
			
		||||
BuildRequires:  hwinfo
 | 
			
		||||
@@ -93,19 +98,14 @@ BuildRequires:  plymouth-dracut
 | 
			
		||||
BuildRequires:  plymouth-theme-bgrt
 | 
			
		||||
BuildRequires:  dracut-kiwi-oem-dump
 | 
			
		||||
BuildRequires:  dracut-kiwi-oem-repart
 | 
			
		||||
BuildRequires:  gfxboot-branding-SLE
 | 
			
		||||
BuildRequires:  grub2-branding-SLE
 | 
			
		||||
BuildRequires:  open-iscsi
 | 
			
		||||
BuildRequires:  plymouth-branding-SLE
 | 
			
		||||
BuildRequires:  lshw
 | 
			
		||||
BuildRequires:  kbd
 | 
			
		||||
%ifarch aarch64
 | 
			
		||||
BuildRequires:  dmidecode
 | 
			
		||||
BuildRequires:  efibootmgr
 | 
			
		||||
%endif
 | 
			
		||||
%ifarch x86_64
 | 
			
		||||
BuildRequires:  dmidecode
 | 
			
		||||
BuildRequires:  efibootmgr
 | 
			
		||||
BuildRequires:  syslinux
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,17 +1,20 @@
 | 
			
		||||
#!BuildTag: kiwi-builder:10.1
 | 
			
		||||
FROM registry.suse.com/bci/kiwi:10.1.10
 | 
			
		||||
MAINTAINER SUSE LLC (https://www.suse.com/)
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1
 | 
			
		||||
 | 
			
		||||
ARG KIWIVERSION="10.2.12"
 | 
			
		||||
FROM registry.suse.com/bci/kiwi:${KIWIVERSION}
 | 
			
		||||
ARG KIWIVERSION
 | 
			
		||||
 | 
			
		||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
 | 
			
		||||
# labelprefix=com.suse.application.akri
 | 
			
		||||
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.description="kiwi-builder based on the SLE Base Container Image."
 | 
			
		||||
LABEL org.opencontainers.image.version="%PACKAGE_VERSION%"
 | 
			
		||||
LABEL org.opencontainers.image.version="%%kiwi_version%%"
 | 
			
		||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
 | 
			
		||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:10.1"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1-%RELEASE%"
 | 
			
		||||
LABEL org.openbuildservice.disturl="%DISTURL%"
 | 
			
		||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
 | 
			
		||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
 | 
			
		||||
@@ -20,12 +23,8 @@ LABEL com.suse.image-type="application"
 | 
			
		||||
LABEL com.suse.release-stage="released"
 | 
			
		||||
# endlabelprefix
 | 
			
		||||
 | 
			
		||||
# Install required packages for Kiwi to function as expected
 | 
			
		||||
# Should be provided via https://github.com/SUSE/BCI-dockerfile-generator/pull/1770
 | 
			
		||||
# RUN zypper in -y gawk && zypper clean -a
 | 
			
		||||
 | 
			
		||||
# Configure Kiwi to use kpartx
 | 
			
		||||
RUN echo -e "mapper:\n  - part_mapper: kpartx" > /etc/kiwi.yml
 | 
			
		||||
# help the build service understand the need for python3-kiwi
 | 
			
		||||
RUN zypper -n install -d -D python3-kiwi; [ "%%kiwi_version%%" = "${KIWIVERSION}" ] || { echo "expected kiwi version ${KIWIVERSION}: version mismatch"; exit 1; }
 | 
			
		||||
 | 
			
		||||
# Copy build script into image and make it executable
 | 
			
		||||
ADD build-image.sh /usr/bin/build-image
 | 
			
		||||
 
 | 
			
		||||
@@ -8,40 +8,48 @@ Please ensure that you're running this on a registered SLE Micro 6.0 system, and
 | 
			
		||||
 | 
			
		||||
Next, download the podman image:
 | 
			
		||||
 | 
			
		||||
# podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10
 | 
			
		||||
# podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1
 | 
			
		||||
 | 
			
		||||
Make a local output directory (where the images will reside):
 | 
			
		||||
 | 
			
		||||
# mkdir output
 | 
			
		||||
 | 
			
		||||
Then, to build a standard "Base" image, run the following in podman:
 | 
			
		||||
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image
 | 
			
		||||
 | 
			
		||||
To build a "Base" SelfInstall ISO, you can add additional flags, for example:
 | 
			
		||||
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Base-SelfInstall
 | 
			
		||||
 | 
			
		||||
Then, to build a standard "Default" image, run the following in podman:
 | 
			
		||||
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Default
 | 
			
		||||
 | 
			
		||||
To build a SelfInstall ISO, you can add additional flags, for example:
 | 
			
		||||
To build a "Default" SelfInstall ISO, you can add additional flags, for example:
 | 
			
		||||
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image -p Default-SelfInstall
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Default-SelfInstall
 | 
			
		||||
 | 
			
		||||
To build an image with a RealTime kernel, e.g. a RAW disk image ("Default"), use the following:
 | 
			
		||||
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image -p Base-RT
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Base-RT
 | 
			
		||||
 | 
			
		||||
To build an image that supports a large block/sectorsize (4096), use the "-b" flag, for example:
 | 
			
		||||
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image -p Default-SelfInstall -b
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Default-SelfInstall -b
 | 
			
		||||
 | 
			
		||||
# mkdir mydefs/
 | 
			
		||||
# cp /path/to/SL-Micro.kiwi mydefs/
 | 
			
		||||
# cp /path/to/config.sh mydefs/
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image
 | 
			
		||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image
 | 
			
		||||
 | 
			
		||||
All output will be in the local $(pwd)/output directory, for example:
 | 
			
		||||
 | 
			
		||||
# ls -1 output/
 | 
			
		||||
SLE-Micro.x86_64-6.0.changes
 | 
			
		||||
SLE-Micro.x86_64-6.0.packages
 | 
			
		||||
SLE-Micro.x86_64-6.0.raw
 | 
			
		||||
SLE-Micro.x86_64-6.0.verified
 | 
			
		||||
SL-Micro.x86_64-6.0.changes
 | 
			
		||||
SL-Micro.x86_64-6.0.packages
 | 
			
		||||
SL-Micro.x86_64-6.0.raw
 | 
			
		||||
SL-Micro.x86_64-6.0.verified
 | 
			
		||||
build
 | 
			
		||||
kiwi.result
 | 
			
		||||
kiwi.result.json
 | 
			
		||||
 
 | 
			
		||||
@@ -16,4 +16,14 @@
 | 
			
		||||
    <param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
 | 
			
		||||
    <param name="var">SUPPORT_LEVEL</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="replace_using_package_version">
 | 
			
		||||
    <param name="file">Dockerfile</param>
 | 
			
		||||
    <param name="regex">%%kiwi_version%%</param>
 | 
			
		||||
    <param name="package">python3-kiwi</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="replace_using_package_version">
 | 
			
		||||
    <param name="file">README</param>
 | 
			
		||||
    <param name="regex">%%kiwi_version%%</param>
 | 
			
		||||
    <param name="package">python3-kiwi</param>
 | 
			
		||||
  </service>
 | 
			
		||||
</services>
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Set image build defaults, blocksize is an empty string
 | 
			
		||||
PROFILE="Default"
 | 
			
		||||
PROFILE="Base"
 | 
			
		||||
LARGEBLOCK=false
 | 
			
		||||
 | 
			
		||||
# Print usage
 | 
			
		||||
@@ -34,15 +34,17 @@ usage(){
 | 
			
		||||
  Usage: ${0} [-p <profile>] [-b]
 | 
			
		||||
 | 
			
		||||
  Profile Options (-p):
 | 
			
		||||
	* Default: RAW Disk Image with kernel-default
 | 
			
		||||
	* Default-SelfInstall: SelfInstall ISO with kernel-default
 | 
			
		||||
  * Base: RAW Disk Image with podman
 | 
			
		||||
  * Base-SelfInstall: SelfInstall ISO with podman
 | 
			
		||||
  * Default: RAW Disk Image with podman and kvm
 | 
			
		||||
  * Default-SelfInstall: SelfInstall ISO with podman and kvm
 | 
			
		||||
  * Base-RT: RAW Disk Image with kernel-rt
 | 
			
		||||
  * Base-RT-SelfInstall: SelfInstall ISO with kernel-rt
 | 
			
		||||
 | 
			
		||||
  4096 Blocksize (-b): If specified, use a 4096 blocksize (rather than 512) when generating the image.
 | 
			
		||||
 | 
			
		||||
	NOTE: If both options are omitted, the "Default" profile with a standard "512" blocksize is used.
 | 
			
		||||
	EOF
 | 
			
		||||
  NOTE: If both options are omitted, the "Base" profile with a standard "512" blocksize is used.
 | 
			
		||||
EOF
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Grab CLI options and handle
 | 
			
		||||
 
 | 
			
		||||
@@ -12,10 +12,8 @@
 | 
			
		||||
    <param name="without-version">yes</param>
 | 
			
		||||
    <param name="versionrewrite-replacement">\1</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  <service mode="buildtime" name="tar" >
 | 
			
		||||
    <param name="obsinfo">kube-rbac-proxy.obsinfo</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service name="go_modules">
 | 
			
		||||
  </service>
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ Release:        0.18.1
 | 
			
		||||
Summary:        The kube-rbac-proxy is a small HTTP proxy for a single upstream
 | 
			
		||||
License:        Apache-2.0
 | 
			
		||||
URL:            https://github.com/brancz/kube-rbac-proxy
 | 
			
		||||
Source:         kube-rbac-proxy-%{version}.tar.gz
 | 
			
		||||
Source:         kube-rbac-proxy-%{version}.tar
 | 
			
		||||
Source1:        vendor.tar.gz
 | 
			
		||||
BuildRequires:  golang(API) = 1.23
 | 
			
		||||
ExcludeArch:    s390
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.0-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1-%RELEASE%
 | 
			
		||||
annotations:
 | 
			
		||||
  catalog.cattle.io/certified: rancher
 | 
			
		||||
  catalog.cattle.io/display-name: KubeVirt
 | 
			
		||||
@@ -10,11 +11,12 @@ annotations:
 | 
			
		||||
  catalog.cattle.io/rancher-version: '>= 2.10.0-0'
 | 
			
		||||
  catalog.cattle.io/scope: management
 | 
			
		||||
  catalog.cattle.io/ui-component: plugins
 | 
			
		||||
  catalog.cattle.io/ui-extensions-version: '>= 3.0.0'
 | 
			
		||||
  catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0"
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
appVersion: 1.2.0
 | 
			
		||||
appVersion: 302.0.0+up1.2.1
 | 
			
		||||
description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard'
 | 
			
		||||
icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg
 | 
			
		||||
name: kubevirt-dashboard-extension
 | 
			
		||||
type: application
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up1.2.0"
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up1.2.1"
 | 
			
		||||
icon: >-
 | 
			
		||||
  https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ Common labels
 | 
			
		||||
helm.sh/chart: {{ include "extension-server.chart" . }}
 | 
			
		||||
{{ include "extension-server.selectorLabels" . }}
 | 
			
		||||
{{- if .Chart.AppVersion }}
 | 
			
		||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
 | 
			
		||||
app.kubernetes.io/version: {{ .Chart.AppVersion | replace "+" "_" | quote }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ spec:
 | 
			
		||||
  plugin:
 | 
			
		||||
    name: {{ include "extension-server.fullname" . }}
 | 
			
		||||
    version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }}
 | 
			
		||||
    endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/1.2.0
 | 
			
		||||
    endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/302.0.0+up1.2.1
 | 
			
		||||
    noCache: {{ .Values.plugin.noCache }}
 | 
			
		||||
    noAuth: {{ .Values.plugin.noAuth }}
 | 
			
		||||
    metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
 | 
			
		||||
@@ -8,5 +8,5 @@ plugin:
 | 
			
		||||
  metadata:
 | 
			
		||||
    catalog.cattle.io/display-name: KubeVirt
 | 
			
		||||
    catalog.cattle.io/rancher-version: ">= 2.10.0-0"
 | 
			
		||||
    catalog.cattle.io/ui-extensions-version: ">= 3.0.0"
 | 
			
		||||
    catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0"
 | 
			
		||||
    catalog.cattle.io/kube-version: ">= v1.26.0-0"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,16 +1,16 @@
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.0-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.1_up0.9.4
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.1_up0.9.4-%RELEASE%
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
appVersion: 0.9.0
 | 
			
		||||
appVersion: 0.9.4
 | 
			
		||||
dependencies:
 | 
			
		||||
- alias: metal3-baremetal-operator
 | 
			
		||||
  name: baremetal-operator
 | 
			
		||||
  repository: file://./charts/baremetal-operator
 | 
			
		||||
  version: 0.6.0
 | 
			
		||||
  version: 0.6.1
 | 
			
		||||
- alias: metal3-ironic
 | 
			
		||||
  name: ironic
 | 
			
		||||
  repository: file://./charts/ironic
 | 
			
		||||
  version: 0.8.0
 | 
			
		||||
  version: 0.9.3
 | 
			
		||||
- alias: metal3-mariadb
 | 
			
		||||
  condition: global.enable_mariadb
 | 
			
		||||
  name: mariadb
 | 
			
		||||
@@ -20,9 +20,9 @@ dependencies:
 | 
			
		||||
  condition: global.enable_metal3_media_server
 | 
			
		||||
  name: media
 | 
			
		||||
  repository: file://./charts/media
 | 
			
		||||
  version: 0.6.0
 | 
			
		||||
  version: 0.6.1
 | 
			
		||||
description: A Helm chart that installs all of the dependencies needed for Metal3
 | 
			
		||||
icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg
 | 
			
		||||
name: metal3
 | 
			
		||||
type: application
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up0.9.0"
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.1+up0.9.4"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,4 +3,4 @@ appVersion: 0.8.0
 | 
			
		||||
description: A Helm chart for baremetal-operator, used by Metal3
 | 
			
		||||
name: baremetal-operator
 | 
			
		||||
type: application
 | 
			
		||||
version: 0.6.0
 | 
			
		||||
version: 0.6.1
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Pod
 | 
			
		||||
metadata:
 | 
			
		||||
  name: "{{ include "baremetal-operator.fullname" . }}-test-connection"
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "baremetal-operator.labels" . | nindent 4 }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    "helm.sh/hook": test
 | 
			
		||||
spec:
 | 
			
		||||
  containers:
 | 
			
		||||
    - name: wget
 | 
			
		||||
      image: busybox
 | 
			
		||||
      command: ['wget']
 | 
			
		||||
      args: ['{{ include "baremetal-operator.fullname" . }}:{{ .Values.service.port }}']
 | 
			
		||||
  restartPolicy: Never
 | 
			
		||||
@@ -3,4 +3,4 @@ appVersion: 26.1.2
 | 
			
		||||
description: A Helm chart for Ironic, used by Metal3
 | 
			
		||||
name: ironic
 | 
			
		||||
type: application
 | 
			
		||||
version: 0.8.0
 | 
			
		||||
version: 0.9.3
 | 
			
		||||
 
 | 
			
		||||
@@ -77,9 +77,6 @@ spec:
 | 
			
		||||
            mountPath: "/certs/vmedia"
 | 
			
		||||
            readOnly: true
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          - mountPath: /shared/html/tstcerts
 | 
			
		||||
            name: cert-ironic-ca
 | 
			
		||||
            readOnly: true
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      - name: ironic-log-watch
 | 
			
		||||
        image: {{ .Values.images.ironic.repository }}:{{ .Values.images.ironic.tag }}
 | 
			
		||||
 
 | 
			
		||||
@@ -56,11 +56,11 @@ images:
 | 
			
		||||
  ironic:
 | 
			
		||||
    repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
    tag: 26.1.2.0
 | 
			
		||||
    tag: 26.1.2.3
 | 
			
		||||
  ironicIPADownloader:
 | 
			
		||||
    repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
    tag: 3.0.0
 | 
			
		||||
    tag: 3.0.1
 | 
			
		||||
 | 
			
		||||
nameOverride: ""
 | 
			
		||||
fullnameOverride: ""
 | 
			
		||||
 
 | 
			
		||||
@@ -3,4 +3,4 @@ appVersion: 1.16.0
 | 
			
		||||
description: A Helm chart for Media, used by Metal3
 | 
			
		||||
name: media
 | 
			
		||||
type: application
 | 
			
		||||
version: 0.6.0
 | 
			
		||||
version: 0.6.1
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Pod
 | 
			
		||||
metadata:
 | 
			
		||||
  name: "{{ include "media.fullname" . }}-test-connection"
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "media.labels" . | nindent 4 }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    "helm.sh/hook": test
 | 
			
		||||
spec:
 | 
			
		||||
  containers:
 | 
			
		||||
    - name: wget
 | 
			
		||||
      image: busybox
 | 
			
		||||
      command: ['wget']
 | 
			
		||||
      args: ['{{ include "media.fullname" . }}:{{ .Values.service.port }}']
 | 
			
		||||
  restartPolicy: Never
 | 
			
		||||
@@ -24,7 +24,7 @@ replicaCount: 1
 | 
			
		||||
image:
 | 
			
		||||
  repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic
 | 
			
		||||
  pullPolicy: IfNotPresent
 | 
			
		||||
  tag: 26.1.2.0
 | 
			
		||||
  tag: 26.1.2.2
 | 
			
		||||
 | 
			
		||||
imagePullSecrets: []
 | 
			
		||||
nameOverride: ""
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,10 @@
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.1_up0.14.9
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.1_up0.14.9-%RELEASE%
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
appVersion: v0.14.3
 | 
			
		||||
dependencies:
 | 
			
		||||
- condition: frrk8s.enabled
 | 
			
		||||
- alias: metallb-frr-k8s
 | 
			
		||||
  condition: frrk8s.enabled
 | 
			
		||||
  name: frr-k8s
 | 
			
		||||
  repository: file://./charts/frr-k8s
 | 
			
		||||
  version: 0.0.15
 | 
			
		||||
@@ -20,4 +21,4 @@ name: metallb
 | 
			
		||||
sources:
 | 
			
		||||
- https://github.com/metallb/metallb
 | 
			
		||||
type: application
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up0.14.9"
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.1+up0.14.9"
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@ prometheus:
 | 
			
		||||
  # the image to be used for the kuberbacproxy container
 | 
			
		||||
  rbacProxy:
 | 
			
		||||
    repository: "registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"
 | 
			
		||||
    tag: "v0.18.0"
 | 
			
		||||
    tag: "0.18.1"
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
 | 
			
		||||
  # Prometheus Operator ServiceMonitors.
 | 
			
		||||
 
 | 
			
		||||
@@ -378,3 +378,15 @@ frrk8s:
 | 
			
		||||
  enabled: false
 | 
			
		||||
  external: false
 | 
			
		||||
  namespace: ""
 | 
			
		||||
 | 
			
		||||
# Override any settings for the metallb frr-k8s service here
 | 
			
		||||
metallb-frr-k8s:
 | 
			
		||||
  prometheus:
 | 
			
		||||
    rbacProxy:
 | 
			
		||||
      repository: "%%IMG_REPO%%/%%IMG_PREFIX%%kube-rbac-proxy"
 | 
			
		||||
  frrk8s:
 | 
			
		||||
    image:
 | 
			
		||||
      repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr-k8s"
 | 
			
		||||
    frr:
 | 
			
		||||
      image:
 | 
			
		||||
        repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr"
 | 
			
		||||
@@ -12,10 +12,8 @@
 | 
			
		||||
    <param name="without-version">yes</param>
 | 
			
		||||
    <param name="versionrewrite-replacement">\1</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="recompress">
 | 
			
		||||
    <param name="file">*.tar</param>
 | 
			
		||||
    <param name="compression">gz</param>
 | 
			
		||||
  <service mode="buildtime" name="tar">
 | 
			
		||||
    <param name="obsinfo">metallb.obsinfo</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service name="go_modules">
 | 
			
		||||
  </service>
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ Release:        0.14.8
 | 
			
		||||
Summary:        Load Balancer for bare metal Kubernetes clusters
 | 
			
		||||
License:        Apache-2.0
 | 
			
		||||
URL:            https://github.com/metallb/metallb
 | 
			
		||||
Source:         %{name}-%{version}.tar.gz
 | 
			
		||||
Source:         %{name}-%{version}.tar
 | 
			
		||||
Source1:        vendor.tar.gz
 | 
			
		||||
BuildRequires:  golang(API) = 1.22
 | 
			
		||||
ExcludeArch:    s390
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,9 @@
 | 
			
		||||
    <param name="versionrewrite-replacement">\1</param>
 | 
			
		||||
    <param name="changesgenerate">enable</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="tar" />
 | 
			
		||||
  <service mode="buildtime" name="tar">
 | 
			
		||||
    <param name="obsinfo">nm-configurator.obsinfo</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service mode="buildtime" name="set_version"/>
 | 
			
		||||
  <service mode="manual" name="cargo_vendor">
 | 
			
		||||
     <param name="src">nm-configurator</param>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.13.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.13.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.14.1
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.14.1
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
appVersion: 0.13.0
 | 
			
		||||
appVersion: 0.14.1
 | 
			
		||||
description: Rancher Turtles utility chart for airgap scenarios
 | 
			
		||||
home: https://github.com/rancher/turtles/
 | 
			
		||||
icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg
 | 
			
		||||
name: rancher-turtles-airgap-resources
 | 
			
		||||
type: application
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up0.13.0"
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up0.14.1"
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -35,7 +35,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: ipam-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -208,7 +207,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: ipam-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -369,7 +367,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: ipam-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -536,7 +533,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: capm3-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -699,6 +695,91 @@ data:
 | 
			
		||||
    ---
 | 
			
		||||
    apiVersion: apiextensions.k8s.io/v1
 | 
			
		||||
    kind: CustomResourceDefinition
 | 
			
		||||
    metadata:
 | 
			
		||||
      annotations:
 | 
			
		||||
        cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert
 | 
			
		||||
        controller-gen.kubebuilder.io/version: v0.13.0
 | 
			
		||||
      labels:
 | 
			
		||||
        cluster.x-k8s.io/provider: infrastructure-metal3
 | 
			
		||||
        cluster.x-k8s.io/v1beta1: v1beta1
 | 
			
		||||
      name: metal3clustertemplates.infrastructure.cluster.x-k8s.io
 | 
			
		||||
    spec:
 | 
			
		||||
      group: infrastructure.cluster.x-k8s.io
 | 
			
		||||
      names:
 | 
			
		||||
        categories:
 | 
			
		||||
        - cluster-api
 | 
			
		||||
        kind: Metal3ClusterTemplate
 | 
			
		||||
        listKind: Metal3ClusterTemplateList
 | 
			
		||||
        plural: metal3clustertemplates
 | 
			
		||||
        shortNames:
 | 
			
		||||
        - m3ct
 | 
			
		||||
        singular: metal3clustertemplate
 | 
			
		||||
      scope: Namespaced
 | 
			
		||||
      versions:
 | 
			
		||||
      - name: v1beta1
 | 
			
		||||
        schema:
 | 
			
		||||
          openAPIV3Schema:
 | 
			
		||||
            description: Metal3ClusterTemplate is the Schema for the metal3clustertemplates
 | 
			
		||||
              API.
 | 
			
		||||
            properties:
 | 
			
		||||
              apiVersion:
 | 
			
		||||
                description: 'APIVersion defines the versioned schema of this representation
 | 
			
		||||
                  of an object. Servers should convert recognized schemas to the latest
 | 
			
		||||
                  internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
 | 
			
		||||
                type: string
 | 
			
		||||
              kind:
 | 
			
		||||
                description: 'Kind is a string value representing the REST resource this
 | 
			
		||||
                  object represents. Servers may infer this from the endpoint the client
 | 
			
		||||
                  submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
 | 
			
		||||
                type: string
 | 
			
		||||
              metadata:
 | 
			
		||||
                type: object
 | 
			
		||||
              spec:
 | 
			
		||||
                description: Metal3ClusterTemplateSpec defines the desired state of Metal3ClusterTemplate.
 | 
			
		||||
                properties:
 | 
			
		||||
                  template:
 | 
			
		||||
                    description: Metal3ClusterTemplateResource describes the data for
 | 
			
		||||
                      creating a Metal3Cluster from a template.
 | 
			
		||||
                    properties:
 | 
			
		||||
                      spec:
 | 
			
		||||
                        description: Metal3ClusterSpec defines the desired state of Metal3Cluster.
 | 
			
		||||
                        properties:
 | 
			
		||||
                          controlPlaneEndpoint:
 | 
			
		||||
                            description: ControlPlaneEndpoint represents the endpoint
 | 
			
		||||
                              used to communicate with the control plane.
 | 
			
		||||
                            properties:
 | 
			
		||||
                              host:
 | 
			
		||||
                                description: Host is the hostname on which the API server
 | 
			
		||||
                                  is serving.
 | 
			
		||||
                                type: string
 | 
			
		||||
                              port:
 | 
			
		||||
                                description: Port is the port on which the API server
 | 
			
		||||
                                  is serving.
 | 
			
		||||
                                type: integer
 | 
			
		||||
                            required:
 | 
			
		||||
                            - host
 | 
			
		||||
                            - port
 | 
			
		||||
                            type: object
 | 
			
		||||
                          noCloudProvider:
 | 
			
		||||
                            description: Determines if the cluster is not to be deployed
 | 
			
		||||
                              with an external cloud provider. If set to true, CAPM3 will
 | 
			
		||||
                              use node labels to set providerID on the kubernetes nodes.
 | 
			
		||||
                              If set to false, providerID is set on nodes by other entities
 | 
			
		||||
                              and CAPM3 uses the value of the providerID on the m3m resource.
 | 
			
		||||
                            type: boolean
 | 
			
		||||
                        type: object
 | 
			
		||||
                    required:
 | 
			
		||||
                    - spec
 | 
			
		||||
                    type: object
 | 
			
		||||
                required:
 | 
			
		||||
                - template
 | 
			
		||||
                type: object
 | 
			
		||||
            type: object
 | 
			
		||||
        served: true
 | 
			
		||||
        storage: true
 | 
			
		||||
    ---
 | 
			
		||||
    apiVersion: apiextensions.k8s.io/v1
 | 
			
		||||
    kind: CustomResourceDefinition
 | 
			
		||||
    metadata:
 | 
			
		||||
      annotations:
 | 
			
		||||
        cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert
 | 
			
		||||
@@ -712,7 +793,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: capm3-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -868,7 +948,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: capm3-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -1064,7 +1143,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: capm3-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -2078,7 +2156,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: capm3-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -2150,6 +2227,17 @@ data:
 | 
			
		||||
                    - metadata
 | 
			
		||||
                    - disabled
 | 
			
		||||
                    type: string
 | 
			
		||||
                  customDeploy:
 | 
			
		||||
                    description: A custom deploy procedure.
 | 
			
		||||
                    properties:
 | 
			
		||||
                      method:
 | 
			
		||||
                        description: Custom deploy method name. This name is specific
 | 
			
		||||
                          to the deploy ramdisk used. If you don't have a custom deploy
 | 
			
		||||
                          ramdisk, you shouldn't use CustomDeploy.
 | 
			
		||||
                        type: string
 | 
			
		||||
                    required:
 | 
			
		||||
                    - method
 | 
			
		||||
                    type: object
 | 
			
		||||
                  dataTemplate:
 | 
			
		||||
                    description: MetadataTemplate is a reference to a Metal3DataTemplate
 | 
			
		||||
                      object containing a template of metadata to be rendered. Metadata
 | 
			
		||||
@@ -2302,8 +2390,6 @@ data:
 | 
			
		||||
                        type: string
 | 
			
		||||
                    type: object
 | 
			
		||||
                    x-kubernetes-map-type: atomic
 | 
			
		||||
                required:
 | 
			
		||||
                - image
 | 
			
		||||
                type: object
 | 
			
		||||
              status:
 | 
			
		||||
                description: Metal3MachineStatus defines the observed state of Metal3Machine.
 | 
			
		||||
@@ -2521,7 +2607,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: capm3-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -2591,6 +2676,17 @@ data:
 | 
			
		||||
                            - metadata
 | 
			
		||||
                            - disabled
 | 
			
		||||
                            type: string
 | 
			
		||||
                          customDeploy:
 | 
			
		||||
                            description: A custom deploy procedure.
 | 
			
		||||
                            properties:
 | 
			
		||||
                              method:
 | 
			
		||||
                                description: Custom deploy method name. This name is specific
 | 
			
		||||
                                  to the deploy ramdisk used. If you don't have a custom
 | 
			
		||||
                                  deploy ramdisk, you shouldn't use CustomDeploy.
 | 
			
		||||
                                type: string
 | 
			
		||||
                            required:
 | 
			
		||||
                            - method
 | 
			
		||||
                            type: object
 | 
			
		||||
                          dataTemplate:
 | 
			
		||||
                            description: MetadataTemplate is a reference to a Metal3DataTemplate
 | 
			
		||||
                              object containing a template of metadata to be rendered.
 | 
			
		||||
@@ -2745,8 +2841,6 @@ data:
 | 
			
		||||
                                type: string
 | 
			
		||||
                            type: object
 | 
			
		||||
                            x-kubernetes-map-type: atomic
 | 
			
		||||
                        required:
 | 
			
		||||
                        - image
 | 
			
		||||
                        type: object
 | 
			
		||||
                    required:
 | 
			
		||||
                    - spec
 | 
			
		||||
@@ -2774,7 +2868,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: capm3-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -2889,7 +2982,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: capm3-webhook-service
 | 
			
		||||
              namespace: capm3-system
 | 
			
		||||
@@ -3173,6 +3265,12 @@ data:
 | 
			
		||||
      - patch
 | 
			
		||||
      - update
 | 
			
		||||
      - watch
 | 
			
		||||
    - apiGroups:
 | 
			
		||||
      - ""
 | 
			
		||||
      resources:
 | 
			
		||||
      - pods
 | 
			
		||||
      verbs:
 | 
			
		||||
      - list
 | 
			
		||||
    - apiGroups:
 | 
			
		||||
      - infrastructure.cluster.x-k8s.io
 | 
			
		||||
      resources:
 | 
			
		||||
@@ -3391,6 +3489,13 @@ data:
 | 
			
		||||
      - get
 | 
			
		||||
      - patch
 | 
			
		||||
      - update
 | 
			
		||||
    - apiGroups:
 | 
			
		||||
      - storage.k8s.io
 | 
			
		||||
      resources:
 | 
			
		||||
      - volumeattachments
 | 
			
		||||
      verbs:
 | 
			
		||||
      - list
 | 
			
		||||
      - watch
 | 
			
		||||
    ---
 | 
			
		||||
    apiVersion: rbac.authorization.k8s.io/v1
 | 
			
		||||
    kind: ClusterRole
 | 
			
		||||
@@ -3634,7 +3739,7 @@ data:
 | 
			
		||||
          containers:
 | 
			
		||||
          - args:
 | 
			
		||||
            - --webhook-port=9443
 | 
			
		||||
            - --enableBMHNameBasedPreallocation=${enableBMHNameBasedPreallocation:=false}
 | 
			
		||||
            - --enableBMHNameBasedPreallocation=${ENABLE_BMH_NAME_BASED_PREALLOCATION:=false}
 | 
			
		||||
            - --diagnostics-address=${CAPM3_DIAGNOSTICS_ADDRESS:=:8443}
 | 
			
		||||
            - --insecure-diagnostics=${CAPM3_INSECURE_DIAGNOSTICS:=false}
 | 
			
		||||
            command:
 | 
			
		||||
@@ -3647,7 +3752,7 @@ data:
 | 
			
		||||
            envFrom:
 | 
			
		||||
            - configMapRef:
 | 
			
		||||
                name: capm3-capm3fasttrack-configmap
 | 
			
		||||
            image: quay.io/metal3-io/cluster-api-provider-metal3:v1.7.2
 | 
			
		||||
            image: registry.rancher.com/rancher/cluster-api-provider-metal3:v1.8.2
 | 
			
		||||
            imagePullPolicy: IfNotPresent
 | 
			
		||||
            livenessProbe:
 | 
			
		||||
              httpGet:
 | 
			
		||||
@@ -3676,6 +3781,7 @@ data:
 | 
			
		||||
              privileged: false
 | 
			
		||||
              runAsGroup: 65532
 | 
			
		||||
              runAsUser: 65532
 | 
			
		||||
            terminationMessagePolicy: FallbackToLogsOnError
 | 
			
		||||
            volumeMounts:
 | 
			
		||||
            - mountPath: /tmp/k8s-webhook-server/serving-certs
 | 
			
		||||
              name: cert
 | 
			
		||||
@@ -3731,7 +3837,7 @@ data:
 | 
			
		||||
              valueFrom:
 | 
			
		||||
                fieldRef:
 | 
			
		||||
                  fieldPath: metadata.namespace
 | 
			
		||||
            image: quay.io/metal3-io/ip-address-manager:v1.7.2
 | 
			
		||||
            image: quay.io/metal3-io/ip-address-manager:v1.8.1
 | 
			
		||||
            imagePullPolicy: IfNotPresent
 | 
			
		||||
            livenessProbe:
 | 
			
		||||
              httpGet:
 | 
			
		||||
@@ -3760,6 +3866,7 @@ data:
 | 
			
		||||
              privileged: false
 | 
			
		||||
              runAsGroup: 65532
 | 
			
		||||
              runAsUser: 65532
 | 
			
		||||
            terminationMessagePolicy: FallbackToLogsOnError
 | 
			
		||||
            volumeMounts:
 | 
			
		||||
            - mountPath: /tmp/k8s-webhook-server/serving-certs
 | 
			
		||||
              name: cert
 | 
			
		||||
@@ -3864,6 +3971,28 @@ data:
 | 
			
		||||
        resources:
 | 
			
		||||
        - metal3clusters
 | 
			
		||||
      sideEffects: None
 | 
			
		||||
    - admissionReviewVersions:
 | 
			
		||||
      - v1
 | 
			
		||||
      - v1beta1
 | 
			
		||||
      clientConfig:
 | 
			
		||||
        service:
 | 
			
		||||
          name: capm3-webhook-service
 | 
			
		||||
          namespace: capm3-system
 | 
			
		||||
          path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3clustertemplate
 | 
			
		||||
      failurePolicy: Fail
 | 
			
		||||
      matchPolicy: Equivalent
 | 
			
		||||
      name: default.metal3clustertemplate.infrastructure.cluster.x-k8s.io
 | 
			
		||||
      rules:
 | 
			
		||||
      - apiGroups:
 | 
			
		||||
        - infrastructure.cluster.x-k8s.io
 | 
			
		||||
        apiVersions:
 | 
			
		||||
        - v1beta1
 | 
			
		||||
        operations:
 | 
			
		||||
        - CREATE
 | 
			
		||||
        - UPDATE
 | 
			
		||||
        resources:
 | 
			
		||||
        - metal3clustertemplates
 | 
			
		||||
      sideEffects: None
 | 
			
		||||
    - admissionReviewVersions:
 | 
			
		||||
      - v1
 | 
			
		||||
      - v1beta1
 | 
			
		||||
@@ -4126,6 +4255,28 @@ data:
 | 
			
		||||
        resources:
 | 
			
		||||
        - metal3clusters
 | 
			
		||||
      sideEffects: None
 | 
			
		||||
    - admissionReviewVersions:
 | 
			
		||||
      - v1
 | 
			
		||||
      - v1beta1
 | 
			
		||||
      clientConfig:
 | 
			
		||||
        service:
 | 
			
		||||
          name: capm3-webhook-service
 | 
			
		||||
          namespace: capm3-system
 | 
			
		||||
          path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3clustertemplate
 | 
			
		||||
      failurePolicy: Fail
 | 
			
		||||
      matchPolicy: Equivalent
 | 
			
		||||
      name: validation.metal3clustertemplate.infrastructure.cluster.x-k8s.io
 | 
			
		||||
      rules:
 | 
			
		||||
      - apiGroups:
 | 
			
		||||
        - infrastructure.cluster.x-k8s.io
 | 
			
		||||
        apiVersions:
 | 
			
		||||
        - v1beta1
 | 
			
		||||
        operations:
 | 
			
		||||
        - CREATE
 | 
			
		||||
        - UPDATE
 | 
			
		||||
        resources:
 | 
			
		||||
        - metal3clustertemplates
 | 
			
		||||
      sideEffects: None
 | 
			
		||||
    - admissionReviewVersions:
 | 
			
		||||
      - v1
 | 
			
		||||
      - v1beta1
 | 
			
		||||
@@ -4360,6 +4511,9 @@ data:
 | 
			
		||||
    apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
 | 
			
		||||
    kind: Metadata
 | 
			
		||||
    releaseSeries:
 | 
			
		||||
    - major: 1
 | 
			
		||||
      minor: 8
 | 
			
		||||
      contract: v1beta1
 | 
			
		||||
    - major: 1
 | 
			
		||||
      minor: 7
 | 
			
		||||
      contract: v1beta1
 | 
			
		||||
@@ -4384,7 +4538,7 @@ data:
 | 
			
		||||
kind: ConfigMap
 | 
			
		||||
metadata:
 | 
			
		||||
  creationTimestamp: null
 | 
			
		||||
  name: v1.7.2
 | 
			
		||||
  name: v1.8.2
 | 
			
		||||
  namespace: capm3-system
 | 
			
		||||
  labels:
 | 
			
		||||
    provider-components: metal3
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: rke2-bootstrap-webhook-service
 | 
			
		||||
              namespace: rke2-bootstrap-system
 | 
			
		||||
@@ -1237,7 +1236,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: rke2-bootstrap-webhook-service
 | 
			
		||||
              namespace: rke2-bootstrap-system
 | 
			
		||||
@@ -2545,7 +2543,7 @@ data:
 | 
			
		||||
            - --insecure-diagnostics=${CAPRKE2_INSECURE_DIAGNOSTICS:=false}
 | 
			
		||||
            command:
 | 
			
		||||
            - /manager
 | 
			
		||||
            image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.8.0
 | 
			
		||||
            image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.9.0
 | 
			
		||||
            imagePullPolicy: IfNotPresent
 | 
			
		||||
            livenessProbe:
 | 
			
		||||
              httpGet:
 | 
			
		||||
@@ -2574,6 +2572,7 @@ data:
 | 
			
		||||
              privileged: false
 | 
			
		||||
              runAsGroup: 65532
 | 
			
		||||
              runAsUser: 65532
 | 
			
		||||
            terminationMessagePolicy: FallbackToLogsOnError
 | 
			
		||||
            volumeMounts:
 | 
			
		||||
            - mountPath: /tmp/k8s-webhook-server/serving-certs
 | 
			
		||||
              name: cert
 | 
			
		||||
@@ -2755,10 +2754,13 @@ data:
 | 
			
		||||
      - major: 0
 | 
			
		||||
        minor: 8
 | 
			
		||||
        contract: v1beta1
 | 
			
		||||
      - major: 0
 | 
			
		||||
        minor: 9
 | 
			
		||||
        contract: v1beta1
 | 
			
		||||
kind: ConfigMap
 | 
			
		||||
metadata:
 | 
			
		||||
  creationTimestamp: null
 | 
			
		||||
  name: v0.8.0
 | 
			
		||||
  name: v0.9.0
 | 
			
		||||
  namespace: rke2-bootstrap-system
 | 
			
		||||
  labels:
 | 
			
		||||
    provider-components: rke2-bootstrap
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: rke2-control-plane-webhook-service
 | 
			
		||||
              namespace: rke2-control-plane-system
 | 
			
		||||
@@ -2620,7 +2619,6 @@ data:
 | 
			
		||||
        strategy: Webhook
 | 
			
		||||
        webhook:
 | 
			
		||||
          clientConfig:
 | 
			
		||||
            caBundle: Cg==
 | 
			
		||||
            service:
 | 
			
		||||
              name: rke2-control-plane-webhook-service
 | 
			
		||||
              namespace: rke2-control-plane-system
 | 
			
		||||
@@ -4295,7 +4293,7 @@ data:
 | 
			
		||||
              valueFrom:
 | 
			
		||||
                fieldRef:
 | 
			
		||||
                  fieldPath: metadata.uid
 | 
			
		||||
            image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.8.0
 | 
			
		||||
            image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.9.0
 | 
			
		||||
            imagePullPolicy: IfNotPresent
 | 
			
		||||
            livenessProbe:
 | 
			
		||||
              httpGet:
 | 
			
		||||
@@ -4331,6 +4329,7 @@ data:
 | 
			
		||||
              privileged: false
 | 
			
		||||
              runAsGroup: 65532
 | 
			
		||||
              runAsUser: 65532
 | 
			
		||||
            terminationMessagePolicy: FallbackToLogsOnError
 | 
			
		||||
            volumeMounts:
 | 
			
		||||
            - mountPath: /tmp/k8s-webhook-server/serving-certs
 | 
			
		||||
              name: cert
 | 
			
		||||
@@ -4512,10 +4511,13 @@ data:
 | 
			
		||||
      - major: 0
 | 
			
		||||
        minor: 8
 | 
			
		||||
        contract: v1beta1
 | 
			
		||||
      - major: 0
 | 
			
		||||
        minor: 9
 | 
			
		||||
        contract: v1beta1
 | 
			
		||||
kind: ConfigMap
 | 
			
		||||
metadata:
 | 
			
		||||
  creationTimestamp: null
 | 
			
		||||
  name: v0.8.0
 | 
			
		||||
  name: v0.9.0
 | 
			
		||||
  namespace: rke2-control-plane-system
 | 
			
		||||
  labels:
 | 
			
		||||
    provider-components: rke2-control-plane
 | 
			
		||||
 
 | 
			
		||||
@@ -3,4 +3,4 @@ dependencies:
 | 
			
		||||
  repository: https://kubernetes-sigs.github.io/cluster-api-operator
 | 
			
		||||
  version: 0.14.0
 | 
			
		||||
digest: sha256:9e9e851dbab3212c279efec06bcf0da147228ea1590470f3a8cbbb5806a250d4
 | 
			
		||||
generated: "2024-10-28T11:44:34.392387979Z"
 | 
			
		||||
generated: "2024-12-03T09:34:12.871417074Z"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.13.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.13.0-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.14.1
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.14.1-%RELEASE%
 | 
			
		||||
annotations:
 | 
			
		||||
  catalog.cattle.io/certified: rancher
 | 
			
		||||
  catalog.cattle.io/display-name: Rancher Turtles - the Cluster API Extension
 | 
			
		||||
@@ -7,12 +7,12 @@ annotations:
 | 
			
		||||
  catalog.cattle.io/namespace: rancher-turtles-system
 | 
			
		||||
  catalog.cattle.io/os: linux
 | 
			
		||||
  catalog.cattle.io/permits-os: linux
 | 
			
		||||
  catalog.cattle.io/rancher-version: '>= 2.9.0-1'
 | 
			
		||||
  catalog.cattle.io/rancher-version: '>= 2.10.0-1'
 | 
			
		||||
  catalog.cattle.io/release-name: rancher-turtles
 | 
			
		||||
  catalog.cattle.io/scope: management
 | 
			
		||||
  catalog.cattle.io/type: cluster-tool
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
appVersion: 0.13.0
 | 
			
		||||
appVersion: 0.14.1
 | 
			
		||||
dependencies:
 | 
			
		||||
- condition: cluster-api-operator.enabled
 | 
			
		||||
  name: cluster-api-operator
 | 
			
		||||
@@ -29,4 +29,4 @@ keywords:
 | 
			
		||||
- provisioning
 | 
			
		||||
name: rancher-turtles
 | 
			
		||||
type: application
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up0.13.0"
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up0.14.1"
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,9 @@ kind: ClusterctlConfig
 | 
			
		||||
metadata:
 | 
			
		||||
  name: clusterctl-config
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  annotations:
 | 
			
		||||
    "helm.sh/hook": "post-install, post-upgrade"
 | 
			
		||||
    "helm.sh/hook-weight": "1"
 | 
			
		||||
spec:
 | 
			
		||||
  providers:
 | 
			
		||||
  - name: metal3
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
 | 
			
		||||
kind: CustomResourceDefinition
 | 
			
		||||
metadata:
 | 
			
		||||
  annotations:
 | 
			
		||||
    cert-manager.io/inject-ca-from: rancher-turtles-system/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
    cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
    controller-gen.kubebuilder.io/version: v0.14.0
 | 
			
		||||
  labels:
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
@@ -45,77 +45,65 @@ spec:
 | 
			
		||||
            properties:
 | 
			
		||||
              clusterName:
 | 
			
		||||
                type: string
 | 
			
		||||
              configRef:
 | 
			
		||||
                type: string
 | 
			
		||||
              location:
 | 
			
		||||
                type: string
 | 
			
		||||
              machineName:
 | 
			
		||||
                type: string
 | 
			
		||||
            required:
 | 
			
		||||
            - clusterName
 | 
			
		||||
            - configRef
 | 
			
		||||
            - location
 | 
			
		||||
            - machineName
 | 
			
		||||
            type: object
 | 
			
		||||
            x-kubernetes-validations:
 | 
			
		||||
            - message: ETCD snapshot location can't be empty.
 | 
			
		||||
              rule: size(self.location)>0
 | 
			
		||||
              rule: size(self.clusterName)>0
 | 
			
		||||
          status:
 | 
			
		||||
            default: {}
 | 
			
		||||
            description: EtcdSnapshotRestoreStatus defines observed state of EtcdSnapshotRestore
 | 
			
		||||
            properties:
 | 
			
		||||
              conditions:
 | 
			
		||||
                description: Conditions provide observations of the operational state
 | 
			
		||||
                  of a Cluster API resource.
 | 
			
		||||
                items:
 | 
			
		||||
                  description: Condition defines an observation of a Cluster API resource
 | 
			
		||||
                    operational state.
 | 
			
		||||
                  properties:
 | 
			
		||||
                    lastTransitionTime:
 | 
			
		||||
                      description: |-
 | 
			
		||||
                        Last time the condition transitioned from one status to another.
 | 
			
		||||
                        This should be when the underlying condition changed. If that is not known, then using the time when
 | 
			
		||||
                        the API field changed is acceptable.
 | 
			
		||||
                      format: date-time
 | 
			
		||||
              error:
 | 
			
		||||
                type: string
 | 
			
		||||
                    message:
 | 
			
		||||
                      description: |-
 | 
			
		||||
                        A human readable message indicating details about the transition.
 | 
			
		||||
                        This field may be empty.
 | 
			
		||||
                      type: string
 | 
			
		||||
                    reason:
 | 
			
		||||
                      description: |-
 | 
			
		||||
                        The reason for the condition's last transition in CamelCase.
 | 
			
		||||
                        The specific API may choose whether or not this field is considered a guaranteed API.
 | 
			
		||||
                        This field may not be empty.
 | 
			
		||||
                      type: string
 | 
			
		||||
                    severity:
 | 
			
		||||
                      description: |-
 | 
			
		||||
                        Severity provides an explicit classification of Reason code, so the users or machines can immediately
 | 
			
		||||
                        understand the current situation and act accordingly.
 | 
			
		||||
                        The Severity field MUST be set only when Status=False.
 | 
			
		||||
                      type: string
 | 
			
		||||
                    status:
 | 
			
		||||
                      description: Status of the condition, one of True, False, Unknown.
 | 
			
		||||
                      type: string
 | 
			
		||||
                    type:
 | 
			
		||||
                      description: |-
 | 
			
		||||
                        Type of condition in CamelCase or in foo.example.com/CamelCase.
 | 
			
		||||
                        Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
 | 
			
		||||
                        can be useful (see .node.status.conditions), the ability to deconflict is important.
 | 
			
		||||
                      type: string
 | 
			
		||||
                  required:
 | 
			
		||||
                  - lastTransitionTime
 | 
			
		||||
                  - status
 | 
			
		||||
                  - type
 | 
			
		||||
                  type: object
 | 
			
		||||
                type: array
 | 
			
		||||
              manual:
 | 
			
		||||
                type: boolean
 | 
			
		||||
              phase:
 | 
			
		||||
                description: ETCDSnapshotPhase is a string representation of the phase
 | 
			
		||||
                  of the etcd snapshot
 | 
			
		||||
                type: string
 | 
			
		||||
              s3Snapshots:
 | 
			
		||||
                items:
 | 
			
		||||
                  properties:
 | 
			
		||||
                    creationTime:
 | 
			
		||||
                      description: CreationTime is the timestamp when the snapshot
 | 
			
		||||
                        was taken by etcd.
 | 
			
		||||
                      format: date-time
 | 
			
		||||
                      type: string
 | 
			
		||||
                    location:
 | 
			
		||||
                      type: string
 | 
			
		||||
                    name:
 | 
			
		||||
                      type: string
 | 
			
		||||
                  required:
 | 
			
		||||
                  - location
 | 
			
		||||
                  - name
 | 
			
		||||
                  type: object
 | 
			
		||||
                type: array
 | 
			
		||||
              snapshotFileName:
 | 
			
		||||
                type: string
 | 
			
		||||
              snapshots:
 | 
			
		||||
                items:
 | 
			
		||||
                  properties:
 | 
			
		||||
                    creationTime:
 | 
			
		||||
                      description: CreationTime is the timestamp when the snapshot
 | 
			
		||||
                        was taken by etcd.
 | 
			
		||||
                      format: date-time
 | 
			
		||||
                      type: string
 | 
			
		||||
                    location:
 | 
			
		||||
                      type: string
 | 
			
		||||
                    machineName:
 | 
			
		||||
                      type: string
 | 
			
		||||
                    name:
 | 
			
		||||
                      type: string
 | 
			
		||||
                  required:
 | 
			
		||||
                  - location
 | 
			
		||||
                  - machineName
 | 
			
		||||
                  - name
 | 
			
		||||
                  type: object
 | 
			
		||||
                type: array
 | 
			
		||||
            type: object
 | 
			
		||||
        type: object
 | 
			
		||||
    served: true
 | 
			
		||||
@@ -127,7 +115,7 @@ apiVersion: apiextensions.k8s.io/v1
 | 
			
		||||
kind: CustomResourceDefinition
 | 
			
		||||
metadata:
 | 
			
		||||
  annotations:
 | 
			
		||||
    cert-manager.io/inject-ca-from: rancher-turtles-system/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
    cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
    controller-gen.kubebuilder.io/version: v0.14.0
 | 
			
		||||
  labels:
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
@@ -246,7 +234,7 @@ apiVersion: apiextensions.k8s.io/v1
 | 
			
		||||
kind: CustomResourceDefinition
 | 
			
		||||
metadata:
 | 
			
		||||
  annotations:
 | 
			
		||||
    cert-manager.io/inject-ca-from: rancher-turtles-system/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
    cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
    controller-gen.kubebuilder.io/version: v0.14.0
 | 
			
		||||
  labels:
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
@@ -306,8 +294,6 @@ spec:
 | 
			
		||||
                    type: string
 | 
			
		||||
                  insecure:
 | 
			
		||||
                    type: boolean
 | 
			
		||||
                  location:
 | 
			
		||||
                    type: string
 | 
			
		||||
                  region:
 | 
			
		||||
                    type: string
 | 
			
		||||
                  s3CredentialSecret:
 | 
			
		||||
@@ -337,7 +323,7 @@ metadata:
 | 
			
		||||
    app.kubernetes.io/part-of: rancher-turtles
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-manager
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: rbac.authorization.k8s.io/v1
 | 
			
		||||
kind: Role
 | 
			
		||||
@@ -351,7 +337,7 @@ metadata:
 | 
			
		||||
    app.kubernetes.io/part-of: rancher-turtles
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-leader-election-role
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
rules:
 | 
			
		||||
- apiGroups:
 | 
			
		||||
  - ""
 | 
			
		||||
@@ -600,7 +586,7 @@ metadata:
 | 
			
		||||
    app.kubernetes.io/part-of: rancher-turtles
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-leader-election-rolebinding
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
roleRef:
 | 
			
		||||
  apiGroup: rbac.authorization.k8s.io
 | 
			
		||||
  kind: Role
 | 
			
		||||
@@ -608,7 +594,7 @@ roleRef:
 | 
			
		||||
subjects:
 | 
			
		||||
- kind: ServiceAccount
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-manager
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: rbac.authorization.k8s.io/v1
 | 
			
		||||
kind: ClusterRoleBinding
 | 
			
		||||
@@ -629,7 +615,7 @@ roleRef:
 | 
			
		||||
subjects:
 | 
			
		||||
- kind: ServiceAccount
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-manager
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
@@ -637,7 +623,7 @@ metadata:
 | 
			
		||||
  labels:
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-webhook-service
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
spec:
 | 
			
		||||
  ports:
 | 
			
		||||
  - port: 443
 | 
			
		||||
@@ -652,7 +638,7 @@ metadata:
 | 
			
		||||
    control-plane: controller-manager
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-controller-manager
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
spec:
 | 
			
		||||
  replicas: 1
 | 
			
		||||
  selector:
 | 
			
		||||
@@ -671,7 +657,7 @@ spec:
 | 
			
		||||
      - args:
 | 
			
		||||
        - --leader-elect
 | 
			
		||||
        command:
 | 
			
		||||
        - /manager
 | 
			
		||||
        - ./etcd-snapshot-restore
 | 
			
		||||
        env:
 | 
			
		||||
        - name: POD_NAMESPACE
 | 
			
		||||
          valueFrom:
 | 
			
		||||
@@ -685,8 +671,13 @@ spec:
 | 
			
		||||
          valueFrom:
 | 
			
		||||
            fieldRef:
 | 
			
		||||
              fieldPath: metadata.uid
 | 
			
		||||
        image: ghcr.io/rancher/turtles-etcd-snapshot-restore:dev
 | 
			
		||||
        imagePullPolicy: IfNotPresent
 | 
			
		||||
        {{- $imageVersion := index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "imageVersion" -}}
 | 
			
		||||
        {{- if contains "sha256:" $imageVersion }}
 | 
			
		||||
        image: {{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "image" }}@{{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "imageVersion" }}
 | 
			
		||||
        {{- else }}
 | 
			
		||||
        image: {{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "image" }}:{{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "imageVersion" }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        imagePullPolicy: '{{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "imagePullPolicy" }}'
 | 
			
		||||
        livenessProbe:
 | 
			
		||||
          httpGet:
 | 
			
		||||
            path: /healthz
 | 
			
		||||
@@ -733,11 +724,11 @@ metadata:
 | 
			
		||||
  labels:
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
spec:
 | 
			
		||||
  dnsNames:
 | 
			
		||||
  - rancher-turtles-etcdsnapshotrestore-webhook-service.rancher-turtles-system.svc
 | 
			
		||||
  - rancher-turtles-etcdsnapshotrestore-webhook-service.rancher-turtles-system.svc.cluster.local
 | 
			
		||||
  - rancher-turtles-etcdsnapshotrestore-webhook-service.{{ index .Values "rancherTurtles" "namespace" }}.svc
 | 
			
		||||
  - rancher-turtles-etcdsnapshotrestore-webhook-service.{{ index .Values "rancherTurtles" "namespace" }}.svc.cluster.local
 | 
			
		||||
  issuerRef:
 | 
			
		||||
    kind: Issuer
 | 
			
		||||
    name: rancher-turtles-etcdsnapshotrestore-selfsigned-issuer
 | 
			
		||||
@@ -749,7 +740,7 @@ metadata:
 | 
			
		||||
  labels:
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-selfsigned-issuer
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
spec:
 | 
			
		||||
  selfSigned: {}
 | 
			
		||||
---
 | 
			
		||||
@@ -757,7 +748,7 @@ apiVersion: admissionregistration.k8s.io/v1
 | 
			
		||||
kind: MutatingWebhookConfiguration
 | 
			
		||||
metadata:
 | 
			
		||||
  annotations:
 | 
			
		||||
    cert-manager.io/inject-ca-from: rancher-turtles-system/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
    cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
  labels:
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-mutating-webhook-configuration
 | 
			
		||||
@@ -767,7 +758,7 @@ webhooks:
 | 
			
		||||
  clientConfig:
 | 
			
		||||
    service:
 | 
			
		||||
      name: rancher-turtles-etcdsnapshotrestore-webhook-service
 | 
			
		||||
      namespace: rancher-turtles-system
 | 
			
		||||
      namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
      path: /mutate-bootstrap-cluster-x-k8s-io-v1beta1-rke2config
 | 
			
		||||
  failurePolicy: Fail
 | 
			
		||||
  name: systemagentrke2config.kb.io
 | 
			
		||||
@@ -787,7 +778,7 @@ apiVersion: admissionregistration.k8s.io/v1
 | 
			
		||||
kind: ValidatingWebhookConfiguration
 | 
			
		||||
metadata:
 | 
			
		||||
  annotations:
 | 
			
		||||
    cert-manager.io/inject-ca-from: rancher-turtles-system/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
    cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert
 | 
			
		||||
  labels:
 | 
			
		||||
    turtles-capi.cattle.io: etcd-restore
 | 
			
		||||
  name: rancher-turtles-etcdsnapshotrestore-validating-webhook-configuration
 | 
			
		||||
@@ -797,7 +788,7 @@ webhooks:
 | 
			
		||||
  clientConfig:
 | 
			
		||||
    service:
 | 
			
		||||
      name: rancher-turtles-etcdsnapshotrestore-webhook-service
 | 
			
		||||
      namespace: rancher-turtles-system
 | 
			
		||||
      namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
      path: /validate-turtles-capi-cattle-io-v1alpha1-etcdmachinesnapshot
 | 
			
		||||
  failurePolicy: Fail
 | 
			
		||||
  matchPolicy: Equivalent
 | 
			
		||||
@@ -818,7 +809,7 @@ webhooks:
 | 
			
		||||
  clientConfig:
 | 
			
		||||
    service:
 | 
			
		||||
      name: rancher-turtles-etcdsnapshotrestore-webhook-service
 | 
			
		||||
      namespace: rancher-turtles-system
 | 
			
		||||
      namespace: {{ index .Values "rancherTurtles" "namespace" }}
 | 
			
		||||
      path: /validate-turtles-capi-cattle-io-v1alpha1-etcdsnapshotrestore
 | 
			
		||||
  failurePolicy: Fail
 | 
			
		||||
  matchPolicy: Equivalent
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
rancherTurtles:
 | 
			
		||||
  image: registry.rancher.com/rancher/rancher/turtles
 | 
			
		||||
  imageVersion: v0.13.0
 | 
			
		||||
  imageVersion: v0.14.1
 | 
			
		||||
  imagePullPolicy: IfNotPresent
 | 
			
		||||
  namespace: rancher-turtles-system
 | 
			
		||||
  managerArguments: []
 | 
			
		||||
@@ -25,6 +25,9 @@ rancherTurtles:
 | 
			
		||||
      enabled: false
 | 
			
		||||
    etcd-snapshot-restore:
 | 
			
		||||
      enabled: false
 | 
			
		||||
      image: registry.rancher.com/rancher/rancher/turtles
 | 
			
		||||
      imageVersion: v0.14.1
 | 
			
		||||
      imagePullPolicy: IfNotPresent
 | 
			
		||||
    addon-provider-fleet:
 | 
			
		||||
      enabled: false
 | 
			
		||||
cluster-api-operator:
 | 
			
		||||
@@ -52,40 +55,35 @@ cluster-api-operator:
 | 
			
		||||
        readOnly: true
 | 
			
		||||
  cluster-api:
 | 
			
		||||
    enabled: true
 | 
			
		||||
    version: "v1.7.7"
 | 
			
		||||
    configSecret:
 | 
			
		||||
      name: ""
 | 
			
		||||
      defaultName: capi-env-variables
 | 
			
		||||
    core:
 | 
			
		||||
      namespace: capi-system
 | 
			
		||||
      imageUrl: "registry.rancher.com/rancher/cluster-api-controller:v1.7.7"
 | 
			
		||||
      fetchConfig:
 | 
			
		||||
        url: ""
 | 
			
		||||
        selector: ""
 | 
			
		||||
    rke2:
 | 
			
		||||
      enabled: true
 | 
			
		||||
      version: "v0.8.0"
 | 
			
		||||
      bootstrap:
 | 
			
		||||
        namespace: rke2-bootstrap-system
 | 
			
		||||
        imageUrl: "registry.rancher.com/rancher/cluster-api-provider-rke2-bootstrap:v0.8.0"
 | 
			
		||||
        fetchConfig:
 | 
			
		||||
          url: ""
 | 
			
		||||
          selector: ""
 | 
			
		||||
      controlPlane:
 | 
			
		||||
        namespace: rke2-control-plane-system
 | 
			
		||||
        imageUrl: "registry.rancher.com/rancher/cluster-api-provider-rke2-controlplane:v0.8.0"
 | 
			
		||||
        fetchConfig:
 | 
			
		||||
          url: ""
 | 
			
		||||
          selector: ""
 | 
			
		||||
    metal3:
 | 
			
		||||
      enabled: true
 | 
			
		||||
      version: "v1.7.2"
 | 
			
		||||
      version: "v1.8.2"
 | 
			
		||||
      infrastructure:
 | 
			
		||||
        namespace: capm3-system
 | 
			
		||||
        imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%cluster-api-provider-metal3:1.7.2"
 | 
			
		||||
        imageUrl: "registry.rancher.com/rancher/cluster-api-metal3-controller:v1.8.2"
 | 
			
		||||
        fetchConfig:
 | 
			
		||||
          url: ""
 | 
			
		||||
          selector: ""
 | 
			
		||||
      ipam:
 | 
			
		||||
        namespace: capm3-system
 | 
			
		||||
        imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%ip-address-manager:1.7.2"
 | 
			
		||||
        imageUrl: "registry.rancher.com/rancher/cluster-api-metal3-ipam-controller:v1.8.1"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%release-manifest:3.2.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%release-manifest:3.2.2
 | 
			
		||||
ARG SLE_VERSION
 | 
			
		||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION
 | 
			
		||||
 | 
			
		||||
@@ -7,11 +7,11 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION
 | 
			
		||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
 | 
			
		||||
LABEL org.opencontainers.image.title="SUSE Edge Release Manifest"
 | 
			
		||||
LABEL org.opencontainers.image.description="Release Manifest containing information about a specific SUSE Edge release"
 | 
			
		||||
LABEL org.opencontainers.image.version="3.2.0"
 | 
			
		||||
LABEL org.opencontainers.image.version="3.2.2"
 | 
			
		||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
 | 
			
		||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%release-manifest:3.2.0"
 | 
			
		||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%release-manifest:3.2.2"
 | 
			
		||||
LABEL org.openbuildservice.disturl="%DISTURL%"
 | 
			
		||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
 | 
			
		||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
    <param name="file">Dockerfile</param>
 | 
			
		||||
    <param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
 | 
			
		||||
    <param name="var">IMG_PREFIX</param>
 | 
			
		||||
    <param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
 | 
			
		||||
    <param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %manifest_repo)</param>
 | 
			
		||||
    <param name="var">IMG_REPO</param>
 | 
			
		||||
    <param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
 | 
			
		||||
    <param name="var">SUPPORT_LEVEL</param>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,104 +1,177 @@
 | 
			
		||||
apiVersion: lifecycle.suse.com/v1alpha1
 | 
			
		||||
kind: ReleaseManifest
 | 
			
		||||
metadata:
 | 
			
		||||
  name: release-manifest-3-2-0
 | 
			
		||||
  name: release-manifest-3-2-2
 | 
			
		||||
spec:
 | 
			
		||||
  releaseVersion: 3.2.0
 | 
			
		||||
  releaseVersion: 3.2.2
 | 
			
		||||
  components:
 | 
			
		||||
    kubernetes:
 | 
			
		||||
      k3s:
 | 
			
		||||
        version: v1.31.2+k3s1
 | 
			
		||||
        version: v1.31.13+k3s1
 | 
			
		||||
        coreComponents:
 | 
			
		||||
          - name: traefik-crd
 | 
			
		||||
            version: 27.0.201+up27.0.2
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: traefik
 | 
			
		||||
            version: 27.0.201+up27.0.2
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: local-path-provisioner
 | 
			
		||||
            containers:
 | 
			
		||||
              - name: local-path-provisioner
 | 
			
		||||
                image: rancher/local-path-provisioner:v0.0.31
 | 
			
		||||
            type: Deployment
 | 
			
		||||
          - name: coredns
 | 
			
		||||
            containers:
 | 
			
		||||
              - name: coredns
 | 
			
		||||
                image: rancher/mirrored-coredns-coredns:1.12.3
 | 
			
		||||
            type: Deployment
 | 
			
		||||
          - name: metrics-server
 | 
			
		||||
            containers:
 | 
			
		||||
              - name: metrics-server
 | 
			
		||||
                image: rancher/mirrored-metrics-server:v0.8.0
 | 
			
		||||
            type: Deployment
 | 
			
		||||
      rke2:
 | 
			
		||||
        version: v1.31.2+rke2r1
 | 
			
		||||
        version: v1.31.13+rke2r1
 | 
			
		||||
        coreComponents:
 | 
			
		||||
          - name: rke2-cilium
 | 
			
		||||
            version: 1.18.103
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rke2-canal
 | 
			
		||||
            version: v3.30.3-build2025090900
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rke2-calico-crd
 | 
			
		||||
            version: v3.30.300
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rke2-calico
 | 
			
		||||
            version: v3.30.300
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rke2-coredns
 | 
			
		||||
            version: 1.43.302
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rke2-ingress-nginx
 | 
			
		||||
            version: 4.12.600
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rke2-metrics-server
 | 
			
		||||
            version: 3.13.001
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rancher-vsphere-csi
 | 
			
		||||
            version: 3.5.0-rancher100
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rancher-vsphere-cpi
 | 
			
		||||
            version: 1.12.100
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: harvester-cloud-provider
 | 
			
		||||
            version: 0.2.1000
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: harvester-csi-driver
 | 
			
		||||
            version: 0.1.2400
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rke2-snapshot-controller-crd
 | 
			
		||||
            version: 4.0.003
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rke2-snapshot-controller
 | 
			
		||||
            version: 4.0.003
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
          - name: rke2-snapshot-validation-webhook
 | 
			
		||||
            version: 0.0.0
 | 
			
		||||
            type: HelmChart
 | 
			
		||||
    operatingSystem:
 | 
			
		||||
      version: "6.0"
 | 
			
		||||
      zypperID: "SL-Micro"
 | 
			
		||||
      cpeScheme: "cpe:/o:suse:sl-micro:6.0"
 | 
			
		||||
      prettyName: "SUSE Linux Micro 6.0"
 | 
			
		||||
      version: '6.0'
 | 
			
		||||
      zypperID: SL-Micro
 | 
			
		||||
      cpeScheme: cpe:/o:suse:sl-micro:6.0
 | 
			
		||||
      prettyName: SUSE Linux Micro 6.0
 | 
			
		||||
      supportedArchs:
 | 
			
		||||
        - "x86_64"
 | 
			
		||||
        - "aarch64"
 | 
			
		||||
        - x86_64
 | 
			
		||||
        - aarch64
 | 
			
		||||
    workloads:
 | 
			
		||||
      helm:
 | 
			
		||||
        - prettyName: Rancher
 | 
			
		||||
          releaseName: rancher
 | 
			
		||||
          chart: rancher
 | 
			
		||||
          version: v2.10.0
 | 
			
		||||
          repository: https://releases.rancher.com/server-charts/stable
 | 
			
		||||
          version: 2.10.10
 | 
			
		||||
          repository: https://charts.rancher.com/server-charts/prime
 | 
			
		||||
          values:
 | 
			
		||||
            postDelete:
 | 
			
		||||
              enabled: false
 | 
			
		||||
        - prettyName: Longhorn
 | 
			
		||||
          releaseName: longhorn
 | 
			
		||||
          chart: longhorn
 | 
			
		||||
          version: 104.2.1+up1.7.2
 | 
			
		||||
          version: 105.1.1+up1.7.3
 | 
			
		||||
          repository: https://charts.rancher.io
 | 
			
		||||
          dependencyCharts:
 | 
			
		||||
            - releaseName: longhorn-crd
 | 
			
		||||
              chart: longhorn-crd
 | 
			
		||||
              version: 104.2.1+up1.7.2
 | 
			
		||||
              version: 105.1.1+up1.7.3
 | 
			
		||||
              repository: https://charts.rancher.io
 | 
			
		||||
        - prettyName: MetalLB
 | 
			
		||||
          releaseName: metallb
 | 
			
		||||
          chart: %%CHART_REPO%%/%%IMG_PREFIX%%metallb-chart
 | 
			
		||||
          version: %%CHART_MAJOR%%.0.0+up0.14.9
 | 
			
		||||
          chart: '%%CHART_REPO%%/%%IMG_PREFIX%%metallb-chart'
 | 
			
		||||
          version: '%%CHART_MAJOR%%.0.1+up0.14.9'
 | 
			
		||||
        - prettyName: CDI
 | 
			
		||||
          releaseName: cdi
 | 
			
		||||
          chart: %%CHART_REPO%%/%%IMG_PREFIX%%cdi-chart
 | 
			
		||||
          version: %%CHART_MAJOR%%.0.0+up0.4.0
 | 
			
		||||
          chart: '%%CHART_REPO%%/%%IMG_PREFIX%%cdi-chart'
 | 
			
		||||
          version: '%%CHART_MAJOR%%.0.0+up0.4.0'
 | 
			
		||||
        - prettyName: KubeVirt
 | 
			
		||||
          releaseName: kubevirt
 | 
			
		||||
          chart: %%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-chart
 | 
			
		||||
          version: %%CHART_MAJOR%%.0.0+up0.4.0
 | 
			
		||||
          chart: '%%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-chart'
 | 
			
		||||
          version: '%%CHART_MAJOR%%.0.0+up0.4.0'
 | 
			
		||||
          addonCharts:
 | 
			
		||||
            - releaseName: kubevirt-dashboard-extension
 | 
			
		||||
              chart: %%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-dashboard-extension-chart
 | 
			
		||||
              version: %%CHART_MAJOR%%.0.0+up1.2.0
 | 
			
		||||
              chart: '%%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-dashboard-extension-chart'
 | 
			
		||||
              version: '%%CHART_MAJOR%%.0.0+up1.2.1'
 | 
			
		||||
        - prettyName: NeuVector
 | 
			
		||||
          releaseName: neuvector
 | 
			
		||||
          chart: neuvector
 | 
			
		||||
          version: 104.0.2+up2.8.0
 | 
			
		||||
          version: 105.0.5+up2.8.8
 | 
			
		||||
          repository: https://charts.rancher.io
 | 
			
		||||
          dependencyCharts:
 | 
			
		||||
            - releaseName: neuvector-crd
 | 
			
		||||
              chart: neuvector-crd
 | 
			
		||||
              version: 104.0.2+up2.8.0
 | 
			
		||||
              version: 105.0.5+up2.8.8
 | 
			
		||||
              repository: https://charts.rancher.io
 | 
			
		||||
          addonCharts:
 | 
			
		||||
            - releaseName: neuvector-ui-ext
 | 
			
		||||
              chart: neuvector-ui-ext
 | 
			
		||||
              repository: https://github.com/rancher/ui-plugin-charts/raw/main
 | 
			
		||||
              version: 2.0.0
 | 
			
		||||
              version: 2.1.3
 | 
			
		||||
        - prettyName: EndpointCopierOperator
 | 
			
		||||
          releaseName: endpoint-copier-operator
 | 
			
		||||
          chart: %%CHART_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator-chart
 | 
			
		||||
          version: %%CHART_MAJOR%%.0.0+up0.2.1
 | 
			
		||||
          chart: '%%CHART_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator-chart'
 | 
			
		||||
          version: '%%CHART_MAJOR%%.0.0+up0.2.1'
 | 
			
		||||
        - prettyName: Elemental
 | 
			
		||||
          releaseName: elemental-operator
 | 
			
		||||
          chart: oci://registry.suse.com/rancher/elemental-operator-chart
 | 
			
		||||
          version: 1.6.5
 | 
			
		||||
          version: 1.7.3
 | 
			
		||||
          dependencyCharts:
 | 
			
		||||
            - releaseName: elemental-operator-crds
 | 
			
		||||
              chart: oci://registry.suse.com/rancher/elemental-operator-crds-chart
 | 
			
		||||
              version: 1.6.5
 | 
			
		||||
              version: 1.7.3
 | 
			
		||||
          addonCharts:
 | 
			
		||||
            - releaseName: elemental
 | 
			
		||||
              chart: elemental
 | 
			
		||||
              repository: https://github.com/rancher/ui-plugin-charts/raw/main
 | 
			
		||||
              version: 3.0.0
 | 
			
		||||
        - prettyName: SRIOV
 | 
			
		||||
          releaseName: sriov-network-operator
 | 
			
		||||
          chart: %%CHART_REPO%%/%%IMG_PREFIX%%sriov-network-operator-chart
 | 
			
		||||
          version: %%CHART_MAJOR%%.0.0+up1.4.0
 | 
			
		||||
          chart: '%%CHART_REPO%%/%%IMG_PREFIX%%sriov-network-operator-chart'
 | 
			
		||||
          version: '%%CHART_MAJOR%%.0.0+up1.4.0'
 | 
			
		||||
          dependencyCharts:
 | 
			
		||||
            - releaseName: sriov-crd
 | 
			
		||||
              chart: %%CHART_REPO%%/%%IMG_PREFIX%%sriov-crd-chart
 | 
			
		||||
              version: %%CHART_MAJOR%%.0.0+up1.4.0
 | 
			
		||||
              chart: '%%CHART_REPO%%/%%IMG_PREFIX%%sriov-crd-chart'
 | 
			
		||||
              version: '%%CHART_MAJOR%%.0.0+up1.4.0'
 | 
			
		||||
        - prettyName: Akri
 | 
			
		||||
          releaseName: akri
 | 
			
		||||
          chart: %%CHART_REPO%%/%%IMG_PREFIX%%akri-chart
 | 
			
		||||
          version: %%CHART_MAJOR%%.0.0+up0.12.20
 | 
			
		||||
          chart: '%%CHART_REPO%%/%%IMG_PREFIX%%akri-chart'
 | 
			
		||||
          version: '%%CHART_MAJOR%%.0.0+up0.12.20'
 | 
			
		||||
          addonCharts:
 | 
			
		||||
            - releaseName: akri-dashboard-extension
 | 
			
		||||
              chart: %%CHART_REPO%%/%%IMG_PREFIX%%akri-dashboard-extension-chart
 | 
			
		||||
              version: %%CHART_MAJOR%%.0.0+up1.1.0
 | 
			
		||||
              chart: '%%CHART_REPO%%/%%IMG_PREFIX%%akri-dashboard-extension-chart'
 | 
			
		||||
              version: '%%CHART_MAJOR%%.0.0+up1.2.1'
 | 
			
		||||
        - prettyName: Metal3
 | 
			
		||||
          releaseName: metal3
 | 
			
		||||
          chart: %%CHART_REPO%%/%%IMG_PREFIX%%metal3-chart
 | 
			
		||||
          version: %%CHART_MAJOR%%.0.0+up0.9.0
 | 
			
		||||
          chart: '%%CHART_REPO%%/%%IMG_PREFIX%%metal3-chart'
 | 
			
		||||
          version: '%%CHART_MAJOR%%.0.1+up0.9.4'
 | 
			
		||||
        - prettyName: RancherTurtles
 | 
			
		||||
          releaseName: rancher-turtles
 | 
			
		||||
          chart: %%CHART_REPO%%/%%IMG_PREFIX%%rancher-turtles-chart
 | 
			
		||||
          version: %%CHART_MAJOR%%.0.0+up0.4.0
 | 
			
		||||
          chart: '%%CHART_REPO%%/%%IMG_PREFIX%%rancher-turtles-chart'
 | 
			
		||||
          version: '%%CHART_MAJOR%%.0.0+up0.14.1'
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.0
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.0-%RELEASE%
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.1
 | 
			
		||||
#!BuildTag: %%IMG_PREFIX%%upgrade-controller-chart:%%CHART_MAJOR%%.0.0_up0.1.1-%RELEASE%
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
appVersion: 0.1.0
 | 
			
		||||
appVersion: 0.1.1
 | 
			
		||||
dependencies:
 | 
			
		||||
- condition: crds.enabled
 | 
			
		||||
  name: lifecycle-crds
 | 
			
		||||
  repository: file://./charts/lifecycle-crds
 | 
			
		||||
  version: 0.1.0
 | 
			
		||||
  version: 0.1.1
 | 
			
		||||
description: A Helm chart for Upgrade Controller
 | 
			
		||||
name: upgrade-controller
 | 
			
		||||
type: application
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up0.1.0"
 | 
			
		||||
version: "%%CHART_MAJOR%%.0.0+up0.1.1"
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,8 @@
 | 
			
		||||
    <param name="var">IMG_PREFIX</param>
 | 
			
		||||
    <param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
 | 
			
		||||
    <param name="var">IMG_REPO</param>
 | 
			
		||||
    <param name="eval">MANIFEST_REPO=$(rpm --macros=/root/.rpmmacros -E %manifest_repo)</param>
 | 
			
		||||
    <param name="var">MANIFEST_REPO</param>
 | 
			
		||||
  </service>
 | 
			
		||||
  <service name="replace_using_env" mode="buildtime">
 | 
			
		||||
    <param name="file">Chart.yaml</param>
 | 
			
		||||
@@ -15,4 +17,3 @@
 | 
			
		||||
    <param name="var">CHART_MAJOR</param>
 | 
			
		||||
  </service>
 | 
			
		||||
</services>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
appVersion: 0.1.0
 | 
			
		||||
appVersion: 0.1.1
 | 
			
		||||
description: A Helm chart containing SUSE Lifecycle CRDs
 | 
			
		||||
name: lifecycle-crds
 | 
			
		||||
type: application
 | 
			
		||||
version: 0.1.0
 | 
			
		||||
version: 0.1.1
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,35 @@ spec:
 | 
			
		||||
                      properties:
 | 
			
		||||
                        k3s:
 | 
			
		||||
                          properties:
 | 
			
		||||
                            coreComponents:
 | 
			
		||||
                              items:
 | 
			
		||||
                                properties:
 | 
			
		||||
                                  containers:
 | 
			
		||||
                                    items:
 | 
			
		||||
                                      properties:
 | 
			
		||||
                                        image:
 | 
			
		||||
                                          type: string
 | 
			
		||||
                                        name:
 | 
			
		||||
                                          type: string
 | 
			
		||||
                                      required:
 | 
			
		||||
                                        - image
 | 
			
		||||
                                        - name
 | 
			
		||||
                                      type: object
 | 
			
		||||
                                    type: array
 | 
			
		||||
                                  name:
 | 
			
		||||
                                    type: string
 | 
			
		||||
                                  type:
 | 
			
		||||
                                    enum:
 | 
			
		||||
                                      - HelmChart
 | 
			
		||||
                                      - Deployment
 | 
			
		||||
                                    type: string
 | 
			
		||||
                                  version:
 | 
			
		||||
                                    type: string
 | 
			
		||||
                                required:
 | 
			
		||||
                                  - name
 | 
			
		||||
                                  - type
 | 
			
		||||
                                type: object
 | 
			
		||||
                              type: array
 | 
			
		||||
                            version:
 | 
			
		||||
                              type: string
 | 
			
		||||
                          required:
 | 
			
		||||
@@ -50,6 +79,35 @@ spec:
 | 
			
		||||
                          type: object
 | 
			
		||||
                        rke2:
 | 
			
		||||
                          properties:
 | 
			
		||||
                            coreComponents:
 | 
			
		||||
                              items:
 | 
			
		||||
                                properties:
 | 
			
		||||
                                  containers:
 | 
			
		||||
                                    items:
 | 
			
		||||
                                      properties:
 | 
			
		||||
                                        image:
 | 
			
		||||
                                          type: string
 | 
			
		||||
                                        name:
 | 
			
		||||
                                          type: string
 | 
			
		||||
                                      required:
 | 
			
		||||
                                        - image
 | 
			
		||||
                                        - name
 | 
			
		||||
                                      type: object
 | 
			
		||||
                                    type: array
 | 
			
		||||
                                  name:
 | 
			
		||||
                                    type: string
 | 
			
		||||
                                  type:
 | 
			
		||||
                                    enum:
 | 
			
		||||
                                      - HelmChart
 | 
			
		||||
                                      - Deployment
 | 
			
		||||
                                    type: string
 | 
			
		||||
                                  version:
 | 
			
		||||
                                    type: string
 | 
			
		||||
                                required:
 | 
			
		||||
                                  - name
 | 
			
		||||
                                  - type
 | 
			
		||||
                                type: object
 | 
			
		||||
                              type: array
 | 
			
		||||
                            version:
 | 
			
		||||
                              type: string
 | 
			
		||||
                          required:
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,14 @@ rules:
 | 
			
		||||
  - customresourcedefinitions
 | 
			
		||||
  verbs:
 | 
			
		||||
  - get
 | 
			
		||||
- apiGroups:
 | 
			
		||||
  - apps
 | 
			
		||||
  resources:
 | 
			
		||||
  - deployments
 | 
			
		||||
  verbs:
 | 
			
		||||
  - get
 | 
			
		||||
  - list
 | 
			
		||||
  - watch
 | 
			
		||||
- apiGroups:
 | 
			
		||||
  - batch
 | 
			
		||||
  resources:
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ image:
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  releaseManifest:
 | 
			
		||||
    image: %%IMG_REPO%%/%%IMG_PREFIX%%release-manifest
 | 
			
		||||
    image: %%MANIFEST_REPO%%/%%IMG_PREFIX%%release-manifest
 | 
			
		||||
  kubectl:
 | 
			
		||||
    image: %%IMG_REPO%%/%%IMG_PREFIX%%kubectl
 | 
			
		||||
    version: 1.30.3
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user