forked from suse-edge/Factory
Compare commits
17 Commits
Author | SHA256 | Date | |
---|---|---|---|
b1dfe698ff | |||
9581e030ce | |||
76036c2dd8 | |||
0c6db5d5cc | |||
0b03d14cee | |||
9f2dc045e9 | |||
|
f90f614746 | ||
35f06da226 | |||
8dd6d7d9d7 | |||
f9c5a29a9f | |||
1b83b54b58 | |||
c6b64a252f | |||
689c80ffcc | |||
d8745fe060 | |||
9e39bdcf7f | |||
9e376ffb74 | |||
0fc166ff06 |
@@ -1,23 +0,0 @@
|
|||||||
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-PyYAML
|
|
||||||
- name: Check release manifest
|
|
||||||
run: |
|
|
||||||
python3 .obs/manifest-check.py
|
|
@@ -1,3 +1,3 @@
|
|||||||
PROJECT = "isv:SUSE:Edge:Factory"
|
PROJECT = "isv:SUSE:Edge:Factory:Devel"
|
||||||
REPOSITORY = "https://src.opensuse.org/suse-edge/Factory"
|
REPOSITORY = "https://src.opensuse.org/suse-edge/Factory"
|
||||||
BRANCH = "main"
|
BRANCH = "devel"
|
||||||
|
@@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/python3
|
|
||||||
|
|
||||||
import yaml
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def get_chart_version(chart_name: str) -> str:
|
|
||||||
with open(f"./{chart_name}-chart/Chart.yaml") as f:
|
|
||||||
chart = yaml.safe_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%%/%%CHART_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.safe_load(f)
|
|
||||||
charts = {}
|
|
||||||
for chart in manifest["spec"]["components"]["workloads"]["helm"]:
|
|
||||||
charts.update(get_charts(chart))
|
|
||||||
return charts
|
|
||||||
|
|
||||||
def main():
|
|
||||||
print("Checking charts versions in release manifest")
|
|
||||||
success = True
|
|
||||||
charts = get_charts_list()
|
|
||||||
for chart in charts:
|
|
||||||
expected_version = get_chart_version(chart)
|
|
||||||
if expected_version != charts[chart]:
|
|
||||||
success = False
|
|
||||||
print(f"{chart}: Expected: {expected_version}, Got: {charts[chart]}")
|
|
||||||
if not success:
|
|
||||||
sys.exit(1)
|
|
||||||
else:
|
|
||||||
print("All local charts in release manifest are using the right version")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
65
.obs/trigger_package.py
Normal file
65
.obs/trigger_package.py
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from sync_packages import get_local_packages
|
||||||
|
from common import PROJECT
|
||||||
|
|
||||||
|
def get_service_repo(package):
|
||||||
|
with open(f"{package}/_service") as service:
|
||||||
|
root = ET.parse(service).getroot()
|
||||||
|
for service in root.findall("service"):
|
||||||
|
if service.get("mode") in ["manual", "disabled"]:
|
||||||
|
continue
|
||||||
|
if service.get("name") not in ["obs_scm", "tar_scm"]:
|
||||||
|
continue
|
||||||
|
ref = service.find("param[@name='revision']").text
|
||||||
|
repo = service.find("param[@name='url']").text
|
||||||
|
return (repo, ref)
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def get_remote_ref(project, package):
|
||||||
|
files = subprocess.run(["osc", "ls", "-e", project, package], encoding='utf-8' , capture_output=True).stdout.splitlines()
|
||||||
|
for filename in files:
|
||||||
|
if filename.startswith("_service") and filename.endswith(".obsinfo"):
|
||||||
|
obsinfo = subprocess.run(["osc", "cat", project, package, filename], encoding='utf-8' , capture_output=True).stdout.splitlines()
|
||||||
|
for line in obsinfo:
|
||||||
|
if line.startswith("commit:"):
|
||||||
|
return line.split(':')[-1].strip()
|
||||||
|
|
||||||
|
def get_upstream_ref(repo, ref):
|
||||||
|
refs = subprocess.run(["git", "ls-remote", repo, ref, f"{ref}^{{}}"], encoding='utf-8' , capture_output=True).stdout.splitlines()
|
||||||
|
refpath = ref.split('/')
|
||||||
|
best = None
|
||||||
|
for rref in refs:
|
||||||
|
value = rref.split('\t')
|
||||||
|
(sha, name) = (value[0].strip(), value[1].strip())
|
||||||
|
namepath = name.split('/')
|
||||||
|
if len(namepath) == len(refpath) or len(namepath) - 2 == len(refpath):
|
||||||
|
if name.endswith(ref) and best is None:
|
||||||
|
best = sha
|
||||||
|
if name.endswith("^{}"):
|
||||||
|
best = sha
|
||||||
|
return best
|
||||||
|
|
||||||
|
def trigger_service(project, package):
|
||||||
|
subprocess.run(["osc", "service", "remoterun", project, package], encoding="utf-8",check=True)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
packages = get_local_packages()
|
||||||
|
for package in packages:
|
||||||
|
try:
|
||||||
|
(repo, ref) = get_service_repo(package)
|
||||||
|
print(f"{package} uses {repo} at {ref}")
|
||||||
|
except: # Package is not using server side scm service
|
||||||
|
continue
|
||||||
|
remote_ref = get_remote_ref(PROJECT, package)
|
||||||
|
upstream_ref = get_upstream_ref(repo, ref)
|
||||||
|
if upstream_ref != remote_ref:
|
||||||
|
print(f"\t{package} needs a refresh")
|
||||||
|
print(f"\tOBS ref is {remote_ref}")
|
||||||
|
print(f"\tgit ref is {upstream_ref}")
|
||||||
|
trigger_service(PROJECT, package)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
16
_config
16
_config
@@ -60,7 +60,6 @@ BuildFlags: onlybuild:release-manifest-image
|
|||||||
BuildFlags: excludebuild:endpoint-copier-operator-image
|
BuildFlags: excludebuild:endpoint-copier-operator-image
|
||||||
BuildFlags: excludebuild:ironic-image
|
BuildFlags: excludebuild:ironic-image
|
||||||
BuildFlags: excludebuild:ironic-ipa-downloader-image
|
BuildFlags: excludebuild:ironic-ipa-downloader-image
|
||||||
BuildFlags: excludebuild:kiwi-builder-image
|
|
||||||
BuildFlags: excludebuild:kubectl-image
|
BuildFlags: excludebuild:kubectl-image
|
||||||
BuildFlags: excludebuild:kube-rbac-proxy-image
|
BuildFlags: excludebuild:kube-rbac-proxy-image
|
||||||
BuildFlags: excludebuild:metallb-controller-image
|
BuildFlags: excludebuild:metallb-controller-image
|
||||||
@@ -109,12 +108,7 @@ BuildFlags: onlybuild:release-manifest-image
|
|||||||
|
|
||||||
# Publish multi-arch container images only once all archs have been built
|
# Publish multi-arch container images only once all archs have been built
|
||||||
PublishFlags: archsync
|
PublishFlags: archsync
|
||||||
|
|
||||||
# skopeo and umoci are used by build scripts to list packages
|
|
||||||
Substitute: system-packages:podman podman buildah createrepo_c release-compare skopeo umoci
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if "%_repository" == "images"
|
|
||||||
# skopeo and umoci are used by build scripts to list packages
|
# skopeo and umoci are used by build scripts to list packages
|
||||||
Substitute: system-packages:podman podman buildah createrepo_c release-compare edge-build-checks skopeo umoci
|
Substitute: system-packages:podman podman buildah createrepo_c release-compare edge-build-checks skopeo umoci
|
||||||
|
|
||||||
@@ -128,8 +122,6 @@ BuildFlags: onlybuild:release-manifest-image
|
|||||||
Patterntype: none
|
Patterntype: none
|
||||||
BuildFlags: dockerarg:SLE_VERSION=16.0
|
BuildFlags: dockerarg:SLE_VERSION=16.0
|
||||||
BuildFlags: onlybuild:kiwi-builder-image
|
BuildFlags: onlybuild:kiwi-builder-image
|
||||||
|
|
||||||
Substitute: system-packages:podman podman buildah createrepo_c release-compare skopeo umoci
|
|
||||||
|
|
||||||
# Publish multi-arch container images only once all archs have been built
|
# Publish multi-arch container images only once all archs have been built
|
||||||
PublishFlags: archsync
|
PublishFlags: archsync
|
||||||
@@ -148,13 +140,7 @@ BuildFlags: onlybuild:release-manifest-image
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%else
|
%else
|
||||||
%if "%{sub %{reverse %_project} 1 7}" != "%{reverse :ToTest}" && "%{sub %{reverse %_project} 1 9}" != "%{reverse :Snapshot}"
|
BuildFlags: excludebuild:kiwi-builder-image
|
||||||
BuildFlags: excludebuild:kiwi-builder-image
|
|
||||||
%else
|
|
||||||
%ifarch aarch64
|
|
||||||
BuildFlags: onlybuild:kiwi-builder-image
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
|
3
_meta
3
_meta
@@ -23,9 +23,6 @@
|
|||||||
<disable/>
|
<disable/>
|
||||||
<enable repository="charts"/>
|
<enable repository="charts"/>
|
||||||
<enable repository="test_manifest_images"/>
|
<enable repository="test_manifest_images"/>
|
||||||
{%- if for_release %}
|
|
||||||
<enable repository="releasecharts"/>
|
|
||||||
{%- endif %}
|
|
||||||
</build>
|
</build>
|
||||||
<publish>
|
<publish>
|
||||||
<disable repository="phantomcharts"/>
|
<disable repository="phantomcharts"/>
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.2_up1.3.1
|
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.1
|
||||||
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.2_up1.3.1-%RELEASE%
|
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.0
|
||||||
|
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.0-%RELEASE%
|
||||||
annotations:
|
annotations:
|
||||||
catalog.cattle.io/certified: rancher
|
catalog.cattle.io/certified: rancher
|
||||||
catalog.cattle.io/namespace: cattle-ui-plugin-system
|
catalog.cattle.io/namespace: cattle-ui-plugin-system
|
||||||
@@ -9,13 +10,13 @@ annotations:
|
|||||||
catalog.cattle.io/ui-component: plugins
|
catalog.cattle.io/ui-component: plugins
|
||||||
catalog.cattle.io/display-name: Akri
|
catalog.cattle.io/display-name: Akri
|
||||||
catalog.cattle.io/rancher-version: '>= 2.11.0-0'
|
catalog.cattle.io/rancher-version: '>= 2.11.0-0'
|
||||||
catalog.cattle.io/ui-extensions-version: '>= 3.0.2 < 4.0.0'
|
catalog.cattle.io/ui-extensions-version: '>= 3.0.4 < 4.0.0'
|
||||||
catalog.cattle.io/kube-version: '>= v1.26.0-0'
|
catalog.cattle.io/kube-version: '>= v1.26.0-0'
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: 303.0.2+up1.3.1
|
appVersion: 303.0.1+up1.3.0
|
||||||
description: 'SUSE Edge: Akri extension for Rancher Dashboard'
|
description: 'SUSE Edge: Akri extension for Rancher Dashboard'
|
||||||
name: akri-dashboard-extension
|
name: akri-dashboard-extension
|
||||||
type: application
|
type: application
|
||||||
version: "%%CHART_MAJOR%%.0.2+up1.3.1"
|
version: "%%CHART_MAJOR%%.0.1+up1.3.0"
|
||||||
icon: >-
|
icon: >-
|
||||||
https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg
|
https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg
|
||||||
|
@@ -8,7 +8,7 @@ spec:
|
|||||||
plugin:
|
plugin:
|
||||||
name: {{ include "extension-server.fullname" . }}
|
name: {{ include "extension-server.fullname" . }}
|
||||||
version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }}
|
version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }}
|
||||||
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/akri-dashboard-extension/303.0.2+up1.3.1
|
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/akri-dashboard-extension/303.0.1+up1.3.0
|
||||||
noCache: {{ .Values.plugin.noCache }}
|
noCache: {{ .Values.plugin.noCache }}
|
||||||
noAuth: {{ .Values.plugin.noAuth }}
|
noAuth: {{ .Values.plugin.noAuth }}
|
||||||
metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
|
metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
|
||||||
|
@@ -8,5 +8,5 @@ plugin:
|
|||||||
metadata:
|
metadata:
|
||||||
catalog.cattle.io/display-name: Akri
|
catalog.cattle.io/display-name: Akri
|
||||||
catalog.cattle.io/rancher-version: ">= 2.11.0-0"
|
catalog.cattle.io/rancher-version: ">= 2.11.0-0"
|
||||||
catalog.cattle.io/ui-extensions-version: ">= 3.0.2 < 4.0.0"
|
catalog.cattle.io/ui-extensions-version: ">= 3.0.4 < 4.0.0"
|
||||||
catalog.cattle.io/kube-version: ">= v1.26.0-0"
|
catalog.cattle.io/kube-version: ">= v1.26.0-0"
|
||||||
|
@@ -1,13 +1,13 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#!BuildTag: %%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%.0
|
#!BuildTag: %%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%
|
||||||
#!BuildTag: %%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%.0-%RELEASE%
|
#!BuildTag: %%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%-%RELEASE%
|
||||||
#!BuildVersion: 15.6
|
#!BuildVersion: 15.6
|
||||||
ARG SLE_VERSION
|
ARG SLE_VERSION
|
||||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||||
COPY --from=micro / /installroot/
|
COPY --from=micro / /installroot/
|
||||||
RUN zypper --installroot /installroot --non-interactive install --no-recommends baremetal-operator inotify-tools procps iproute2 bind-utils vim shadow; zypper -n clean; rm -rf /var/log/*
|
RUN zypper --installroot /installroot --non-interactive install --no-recommends baremetal-operator iproute2 bind-utils vim shadow; zypper -n clean; rm -rf /var/log/*
|
||||||
|
|
||||||
FROM micro AS final
|
FROM micro AS final
|
||||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
@@ -19,7 +19,7 @@ LABEL org.opencontainers.image.version="%%baremetal-operator_version%%"
|
|||||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%.1-%RELEASE%"
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%-%RELEASE%"
|
||||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
@@ -29,8 +29,6 @@ LABEL com.suse.release-stage="released"
|
|||||||
# endlabelprefix
|
# endlabelprefix
|
||||||
|
|
||||||
COPY --from=base /installroot /
|
COPY --from=base /installroot /
|
||||||
COPY bmo-run /usr/bin/bmo-run
|
|
||||||
RUN chmod +x /usr/bin/bmo-run
|
|
||||||
RUN groupadd -r -g 11000 bmo
|
RUN groupadd -r -g 11000 bmo
|
||||||
RUN useradd -u 11000 -g 11000 bmo
|
RUN useradd -u 11000 -g 11000 bmo
|
||||||
ENTRYPOINT [ "/usr/bin/bmo-run" ]
|
ENTRYPOINT [ "/usr/bin/baremetal-operator" ]
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
export RESTART_CONTAINER_CERTIFICATE_UPDATED=${RESTART_CONTAINER_CERTIFICATE_UPDATED:-"false"}
|
|
||||||
export IRONIC_CACERT_FILE=${IRONIC_CACERT_FILE:-"/opt/metal3/certs/ca/tls.crt"}
|
|
||||||
|
|
||||||
if [[ "${RESTART_CONTAINER_CERTIFICATE_UPDATED}" == "true" ]]; then
|
|
||||||
# shellcheck disable=SC2034
|
|
||||||
inotifywait -m -e delete_self "${IRONIC_CACERT_FILE}" | while read -r file event; do
|
|
||||||
kill $(pgrep baremetal-opera)
|
|
||||||
done &
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec /usr/bin/baremetal-operator $@
|
|
@@ -1,529 +0,0 @@
|
|||||||
From 19cbf4febbf042248266188e3629e0c88e06906a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nicolas Belouin <nicolas.belouin@suse.com>
|
|
||||||
Date: Thu, 26 Jun 2025 09:37:19 +0200
|
|
||||||
Subject: [PATCH] Allow configuring different IPA images per architecture
|
|
||||||
|
|
||||||
When using multiple architectures, having a way to set the Ironic
|
|
||||||
"bootloader" (a.k.a EFI partition) accordingly is important, so this
|
|
||||||
commit adds a new `DEPLOY_BOOTLOADER_URL` variable to set this Ironic
|
|
||||||
option.
|
|
||||||
|
|
||||||
This commit adds a set of new environment variables allowing to specify
|
|
||||||
different URLs per target CPU architecture for the IPA image:
|
|
||||||
- `DEPLOY_KERNEL_URL_<ARCH>`
|
|
||||||
- `DEPLOY_RAMDISK_URL_<ARCH>`
|
|
||||||
- `DEPLOY_ISO_URL_<ARCH>`
|
|
||||||
- `DEPLOY_BOOTLOADER_URL_<ARCH>`
|
|
||||||
|
|
||||||
Non suffixed variables are used as defaults, if there is no architecture
|
|
||||||
specific image(s) defined for the BMH CPU architecture.
|
|
||||||
|
|
||||||
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
|
|
||||||
---
|
|
||||||
.../metal3.io/baremetalhost_controller.go | 1 +
|
|
||||||
pkg/imageprovider/imageprovider.go | 1 +
|
|
||||||
pkg/provisioner/ironic/factory.go | 61 ++++++++++----
|
|
||||||
pkg/provisioner/ironic/factory_test.go | 25 ++++--
|
|
||||||
pkg/provisioner/ironic/ironic.go | 46 ++++++++---
|
|
||||||
pkg/provisioner/ironic/ironic_test.go | 10 ++-
|
|
||||||
pkg/provisioner/ironic/register_test.go | 80 ++++++++++++-------
|
|
||||||
pkg/provisioner/provisioner.go | 1 +
|
|
||||||
8 files changed, 160 insertions(+), 65 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/internal/controller/metal3.io/baremetalhost_controller.go b/internal/controller/metal3.io/baremetalhost_controller.go
|
|
||||||
index d04bb618..a4ea9d19 100644
|
|
||||||
--- a/internal/controller/metal3.io/baremetalhost_controller.go
|
|
||||||
+++ b/internal/controller/metal3.io/baremetalhost_controller.go
|
|
||||||
@@ -847,6 +847,7 @@ func (r *BareMetalHostReconciler) registerHost(prov provisioner.Provisioner, inf
|
|
||||||
PreprovisioningNetworkData: preprovisioningNetworkData,
|
|
||||||
HasCustomDeploy: hasCustomDeploy(info.host),
|
|
||||||
DisablePowerOff: info.host.Spec.DisablePowerOff,
|
|
||||||
+ CPUArchitecture: getHostArchitecture(info.host),
|
|
||||||
},
|
|
||||||
credsChanged,
|
|
||||||
info.host.Status.ErrorType == metal3api.RegistrationError)
|
|
||||||
diff --git a/pkg/imageprovider/imageprovider.go b/pkg/imageprovider/imageprovider.go
|
|
||||||
index 459fdf2d..f307c041 100644
|
|
||||||
--- a/pkg/imageprovider/imageprovider.go
|
|
||||||
+++ b/pkg/imageprovider/imageprovider.go
|
|
||||||
@@ -20,6 +20,7 @@ type ImageData struct {
|
|
||||||
type GeneratedImage struct {
|
|
||||||
ImageURL string
|
|
||||||
KernelURL string
|
|
||||||
+ BootloaderURL string
|
|
||||||
ExtraKernelParams string
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/pkg/provisioner/ironic/factory.go b/pkg/provisioner/ironic/factory.go
|
|
||||||
index 95cc21b4..5f4189bb 100644
|
|
||||||
--- a/pkg/provisioner/ironic/factory.go
|
|
||||||
+++ b/pkg/provisioner/ironic/factory.go
|
|
||||||
@@ -58,9 +58,10 @@ func (f *ironicProvisionerFactory) init(havePreprovImgBuilder bool) error {
|
|
||||||
f.log.Info("ironic settings",
|
|
||||||
"endpoint", ironicEndpoint,
|
|
||||||
"ironicAuthType", ironicAuth.Type,
|
|
||||||
- "deployKernelURL", f.config.deployKernelURL,
|
|
||||||
- "deployRamdiskURL", f.config.deployRamdiskURL,
|
|
||||||
- "deployISOURL", f.config.deployISOURL,
|
|
||||||
+ "defaultDeployKernelURL", f.config.defaultDeployConfig.kernelURL,
|
|
||||||
+ "defaultDeployRamdiskURL", f.config.defaultDeployConfig.ramdiskURL,
|
|
||||||
+ "defaultDeployISOURL", f.config.defaultDeployConfig.ISOURL,
|
|
||||||
+ "defaultDeployBootloaderURL", f.config.defaultDeployConfig.bootloaderURL,
|
|
||||||
"liveISOForcePersistentBootDevice", f.config.liveISOForcePersistentBootDevice,
|
|
||||||
"CACertFile", tlsConf.TrustedCAFile,
|
|
||||||
"ClientCertFile", tlsConf.ClientCertificateFile,
|
|
||||||
@@ -105,27 +106,55 @@ func (f ironicProvisionerFactory) NewProvisioner(ctx context.Context, hostData p
|
|
||||||
return f.ironicProvisioner(ctx, hostData, publisher)
|
|
||||||
}
|
|
||||||
|
|
||||||
-func loadConfigFromEnv(havePreprovImgBuilder bool) (ironicConfig, error) {
|
|
||||||
- c := ironicConfig{
|
|
||||||
- havePreprovImgBuilder: havePreprovImgBuilder,
|
|
||||||
+func loadDeployURLFromEnv(arch string, havePreprovImgBuilder bool) (ironicDeployConfig, error) {
|
|
||||||
+ c := ironicDeployConfig{}
|
|
||||||
+ var suffix string
|
|
||||||
+ if arch != "" {
|
|
||||||
+ suffix = "_" + strings.ToUpper(arch)
|
|
||||||
}
|
|
||||||
+ c.kernelURL = os.Getenv("DEPLOY_KERNEL_URL" + suffix)
|
|
||||||
+ c.ramdiskURL = os.Getenv("DEPLOY_RAMDISK_URL" + suffix)
|
|
||||||
+ c.ISOURL = os.Getenv("DEPLOY_ISO_URL" + suffix)
|
|
||||||
+ c.bootloaderURL = os.Getenv("DEPLOY_BOOTLOADER_URL" + suffix)
|
|
||||||
|
|
||||||
- c.deployKernelURL = os.Getenv("DEPLOY_KERNEL_URL")
|
|
||||||
- c.deployRamdiskURL = os.Getenv("DEPLOY_RAMDISK_URL")
|
|
||||||
- c.deployISOURL = os.Getenv("DEPLOY_ISO_URL")
|
|
||||||
if !havePreprovImgBuilder {
|
|
||||||
- if c.deployISOURL == "" &&
|
|
||||||
- (c.deployKernelURL == "" || c.deployRamdiskURL == "") {
|
|
||||||
- return c, errors.New("either DEPLOY_KERNEL_URL and DEPLOY_RAMDISK_URL or DEPLOY_ISO_URL must be set")
|
|
||||||
- }
|
|
||||||
- if (c.deployKernelURL == "" && c.deployRamdiskURL != "") ||
|
|
||||||
- (c.deployKernelURL != "" && c.deployRamdiskURL == "") {
|
|
||||||
+ if (c.kernelURL == "" && c.ramdiskURL != "") ||
|
|
||||||
+ (c.kernelURL != "" && c.ramdiskURL == "") {
|
|
||||||
return c, errors.New("DEPLOY_KERNEL_URL and DEPLOY_RAMDISK_URL can only be set together")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- if c.deployKernelURL == "" && c.deployRamdiskURL != "" {
|
|
||||||
+ if c.kernelURL == "" && c.ramdiskURL != "" {
|
|
||||||
return c, errors.New("DEPLOY_RAMDISK_URL requires DEPLOY_KERNEL_URL to be set also")
|
|
||||||
}
|
|
||||||
+ return c, nil
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+func loadConfigFromEnv(havePreprovImgBuilder bool) (ironicConfig, error) {
|
|
||||||
+ c := ironicConfig{
|
|
||||||
+ havePreprovImgBuilder: havePreprovImgBuilder,
|
|
||||||
+ archDeployConfig: make(map[string]ironicDeployConfig),
|
|
||||||
+ }
|
|
||||||
+ var err error
|
|
||||||
+ c.defaultDeployConfig, err = loadDeployURLFromEnv("", havePreprovImgBuilder)
|
|
||||||
+ if err != nil {
|
|
||||||
+ return c, err
|
|
||||||
+ }
|
|
||||||
+ for _, arch := range supportedArch {
|
|
||||||
+ archDeployConfig, err := loadDeployURLFromEnv(arch, havePreprovImgBuilder)
|
|
||||||
+ // Only register valid arch specific deploy configuration
|
|
||||||
+ if archDeployConfig.ISOURL != "" || (archDeployConfig.kernelURL != "" && archDeployConfig.ramdiskURL != "") {
|
|
||||||
+ c.archDeployConfig[arch] = archDeployConfig
|
|
||||||
+ }
|
|
||||||
+ if err != nil {
|
|
||||||
+ return c, err
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ if !havePreprovImgBuilder {
|
|
||||||
+ if c.defaultDeployConfig.ISOURL == "" &&
|
|
||||||
+ (c.defaultDeployConfig.kernelURL == "" || c.defaultDeployConfig.ramdiskURL == "") {
|
|
||||||
+ return c, errors.New("either DEPLOY_KERNEL_URL and DEPLOY_RAMDISK_URL or DEPLOY_ISO_URL must be set")
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
c.maxBusyHosts = 20
|
|
||||||
if maxHostsStr := os.Getenv("PROVISIONING_LIMIT"); maxHostsStr != "" {
|
|
||||||
diff --git a/pkg/provisioner/ironic/factory_test.go b/pkg/provisioner/ironic/factory_test.go
|
|
||||||
index db47d8b2..acdedf1c 100644
|
|
||||||
--- a/pkg/provisioner/ironic/factory_test.go
|
|
||||||
+++ b/pkg/provisioner/ironic/factory_test.go
|
|
||||||
@@ -14,6 +14,11 @@ type EnvFixture struct {
|
|
||||||
kernelURL string
|
|
||||||
ramdiskURL string
|
|
||||||
isoURL string
|
|
||||||
+ bootloaderURL string
|
|
||||||
+ aarch64kernelURL string
|
|
||||||
+ aarch64ramdiskURL string
|
|
||||||
+ aarch64isoURL string
|
|
||||||
+ aarch64bootloaderURL string
|
|
||||||
liveISOForcePersistentBootDevice string
|
|
||||||
ironicCACertFile string
|
|
||||||
ironicClientCertFile string
|
|
||||||
@@ -49,6 +54,11 @@ func (f *EnvFixture) SetUp() {
|
|
||||||
f.replace("DEPLOY_KERNEL_URL", f.kernelURL)
|
|
||||||
f.replace("DEPLOY_RAMDISK_URL", f.ramdiskURL)
|
|
||||||
f.replace("DEPLOY_ISO_URL", f.isoURL)
|
|
||||||
+ f.replace("DEPLOY_BOOTLOADER_URL", f.bootloaderURL)
|
|
||||||
+ f.replace("DEPLOY_KERNEL_URL_AARCH64", f.aarch64kernelURL)
|
|
||||||
+ f.replace("DEPLOY_RAMDISK_URL_AARCH64", f.aarch64ramdiskURL)
|
|
||||||
+ f.replace("DEPLOY_ISO_URL_AARCH64", f.aarch64isoURL)
|
|
||||||
+ f.replace("DEPLOY_BOOTLOADER_URL_AARCH64", f.aarch64bootloaderURL)
|
|
||||||
f.replace("LIVE_ISO_FORCE_PERSISTENT_BOOT_DEVICE", f.liveISOForcePersistentBootDevice)
|
|
||||||
f.replace("IRONIC_CACERT_FILE", f.ironicCACertFile)
|
|
||||||
f.replace("IRONIC_CLIENT_CERT_FILE", f.ironicClientCertFile)
|
|
||||||
@@ -58,9 +68,14 @@ func (f *EnvFixture) SetUp() {
|
|
||||||
}
|
|
||||||
func (f EnvFixture) VerifyConfig(t *testing.T, c ironicConfig, _ string) {
|
|
||||||
t.Helper()
|
|
||||||
- assert.Equal(t, f.kernelURL, c.deployKernelURL)
|
|
||||||
- assert.Equal(t, f.ramdiskURL, c.deployRamdiskURL)
|
|
||||||
- assert.Equal(t, f.isoURL, c.deployISOURL)
|
|
||||||
+ assert.Equal(t, f.kernelURL, c.defaultDeployConfig.kernelURL)
|
|
||||||
+ assert.Equal(t, f.ramdiskURL, c.defaultDeployConfig.ramdiskURL)
|
|
||||||
+ assert.Equal(t, f.isoURL, c.defaultDeployConfig.ISOURL)
|
|
||||||
+ assert.Equal(t, f.bootloaderURL, c.defaultDeployConfig.bootloaderURL)
|
|
||||||
+ assert.Equal(t, f.aarch64kernelURL, c.archDeployConfig["aarch64"].kernelURL)
|
|
||||||
+ assert.Equal(t, f.aarch64ramdiskURL, c.archDeployConfig["aarch64"].ramdiskURL)
|
|
||||||
+ assert.Equal(t, f.aarch64isoURL, c.archDeployConfig["aarch64"].ISOURL)
|
|
||||||
+ assert.Equal(t, f.aarch64bootloaderURL, c.archDeployConfig["aarch64"].bootloaderURL)
|
|
||||||
assert.Equal(t, f.liveISOForcePersistentBootDevice, c.liveISOForcePersistentBootDevice)
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -108,14 +123,14 @@ func TestLoadConfigFromEnv(t *testing.T) {
|
|
||||||
env: EnvFixture{
|
|
||||||
kernelURL: "http://kernel",
|
|
||||||
},
|
|
||||||
- expectedError: "either DEPLOY_KERNEL_URL and DEPLOY_RAMDISK_URL or DEPLOY_ISO_URL must be set",
|
|
||||||
+ expectedError: "DEPLOY_KERNEL_URL and DEPLOY_RAMDISK_URL can only be set together",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "only ramdisk",
|
|
||||||
env: EnvFixture{
|
|
||||||
ramdiskURL: "http://ramdisk",
|
|
||||||
},
|
|
||||||
- expectedError: "either DEPLOY_KERNEL_URL and DEPLOY_RAMDISK_URL or DEPLOY_ISO_URL must be set",
|
|
||||||
+ expectedError: "DEPLOY_KERNEL_URL and DEPLOY_RAMDISK_URL can only be set together",
|
|
||||||
expectedImgBuildError: "DEPLOY_RAMDISK_URL requires DEPLOY_KERNEL_URL to be set also",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
diff --git a/pkg/provisioner/ironic/ironic.go b/pkg/provisioner/ironic/ironic.go
|
|
||||||
index 4bc753f2..52d03479 100644
|
|
||||||
--- a/pkg/provisioner/ironic/ironic.go
|
|
||||||
+++ b/pkg/provisioner/ironic/ironic.go
|
|
||||||
@@ -30,6 +30,7 @@ var (
|
|
||||||
subscriptionRequeueDelay = time.Second * 10
|
|
||||||
introspectionRequeueDelay = time.Second * 15
|
|
||||||
softPowerOffTimeout = time.Second * 180
|
|
||||||
+ supportedArch = [...]string{"x86_64", "aarch64"}
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
@@ -41,6 +42,7 @@ const (
|
|
||||||
nameSeparator = "~"
|
|
||||||
customDeployPriority = 80
|
|
||||||
|
|
||||||
+ bootloaderKey = "bootloader"
|
|
||||||
deployKernelKey = "deploy_kernel"
|
|
||||||
deployRamdiskKey = "deploy_ramdisk"
|
|
||||||
deployISOKey = "deploy_iso"
|
|
||||||
@@ -61,11 +63,17 @@ func NewMacAddressConflictError(address, node string) error {
|
|
||||||
return macAddressConflictError{Address: address, ExistingNode: node}
|
|
||||||
}
|
|
||||||
|
|
||||||
+type ironicDeployConfig struct {
|
|
||||||
+ kernelURL string
|
|
||||||
+ ramdiskURL string
|
|
||||||
+ bootloaderURL string
|
|
||||||
+ ISOURL string
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
type ironicConfig struct {
|
|
||||||
havePreprovImgBuilder bool
|
|
||||||
- deployKernelURL string
|
|
||||||
- deployRamdiskURL string
|
|
||||||
- deployISOURL string
|
|
||||||
+ defaultDeployConfig ironicDeployConfig
|
|
||||||
+ archDeployConfig map[string]ironicDeployConfig
|
|
||||||
liveISOForcePersistentBootDevice string
|
|
||||||
maxBusyHosts int
|
|
||||||
externalURL string
|
|
||||||
@@ -318,7 +326,7 @@ func (p *ironicProvisioner) createPXEEnabledNodePort(uuid, macAddress string) er
|
|
||||||
func (p *ironicProvisioner) configureImages(data provisioner.ManagementAccessData, ironicNode *nodes.Node, bmcAccess bmc.AccessDetails) (result provisioner.Result, err error) {
|
|
||||||
updater := clients.UpdateOptsBuilder(p.log)
|
|
||||||
|
|
||||||
- deployImageInfo := setDeployImage(p.config, bmcAccess, data.PreprovisioningImage)
|
|
||||||
+ deployImageInfo := setDeployImage(p.config, bmcAccess, data.PreprovisioningImage, data.CPUArchitecture)
|
|
||||||
updater.SetDriverInfoOpts(deployImageInfo, ironicNode)
|
|
||||||
|
|
||||||
// NOTE(dtantsur): It is risky to update image information for active nodes since it may affect the ability to clean up.
|
|
||||||
@@ -430,14 +438,20 @@ func setExternalURL(p *ironicProvisioner, driverInfo map[string]interface{}) map
|
|
||||||
return driverInfo
|
|
||||||
}
|
|
||||||
|
|
||||||
-func setDeployImage(config ironicConfig, accessDetails bmc.AccessDetails, hostImage *provisioner.PreprovisioningImage) clients.UpdateOptsData {
|
|
||||||
+func setDeployImage(config ironicConfig, accessDetails bmc.AccessDetails, hostImage *provisioner.PreprovisioningImage, cpuArch string) clients.UpdateOptsData {
|
|
||||||
deployImageInfo := clients.UpdateOptsData{
|
|
||||||
+ bootloaderKey: nil,
|
|
||||||
deployKernelKey: nil,
|
|
||||||
deployRamdiskKey: nil,
|
|
||||||
deployISOKey: nil,
|
|
||||||
kernelParamsKey: nil,
|
|
||||||
}
|
|
||||||
|
|
||||||
+ deployConfig, ok := config.archDeployConfig[cpuArch]
|
|
||||||
+ if !ok {
|
|
||||||
+ deployConfig = config.defaultDeployConfig
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
allowISO := accessDetails.SupportsISOPreprovisioningImage()
|
|
||||||
|
|
||||||
if hostImage != nil {
|
|
||||||
@@ -450,10 +464,15 @@ func setDeployImage(config ironicConfig, accessDetails bmc.AccessDetails, hostIm
|
|
||||||
case metal3api.ImageFormatInitRD:
|
|
||||||
if hostImage.KernelURL != "" {
|
|
||||||
deployImageInfo[deployKernelKey] = hostImage.KernelURL
|
|
||||||
- } else if config.deployKernelURL == "" {
|
|
||||||
+ } else if deployConfig.kernelURL == "" {
|
|
||||||
return nil
|
|
||||||
} else {
|
|
||||||
- deployImageInfo[deployKernelKey] = config.deployKernelURL
|
|
||||||
+ deployImageInfo[deployKernelKey] = deployConfig.kernelURL
|
|
||||||
+ }
|
|
||||||
+ if hostImage.BootloaderURL != "" {
|
|
||||||
+ deployImageInfo[bootloaderKey] = hostImage.BootloaderURL
|
|
||||||
+ } else if deployConfig.bootloaderURL != "" {
|
|
||||||
+ deployImageInfo[bootloaderKey] = deployConfig.bootloaderURL
|
|
||||||
}
|
|
||||||
deployImageInfo[deployRamdiskKey] = hostImage.ImageURL
|
|
||||||
if hostImage.ExtraKernelParams != "" {
|
|
||||||
@@ -465,13 +484,16 @@ func setDeployImage(config ironicConfig, accessDetails bmc.AccessDetails, hostIm
|
|
||||||
}
|
|
||||||
|
|
||||||
if !config.havePreprovImgBuilder {
|
|
||||||
- if allowISO && config.deployISOURL != "" {
|
|
||||||
- deployImageInfo[deployISOKey] = config.deployISOURL
|
|
||||||
+ if allowISO && deployConfig.ISOURL != "" {
|
|
||||||
+ deployImageInfo[deployISOKey] = deployConfig.ISOURL
|
|
||||||
return deployImageInfo
|
|
||||||
}
|
|
||||||
- if config.deployKernelURL != "" && config.deployRamdiskURL != "" {
|
|
||||||
- deployImageInfo[deployKernelKey] = config.deployKernelURL
|
|
||||||
- deployImageInfo[deployRamdiskKey] = config.deployRamdiskURL
|
|
||||||
+ if deployConfig.kernelURL != "" && deployConfig.ramdiskURL != "" {
|
|
||||||
+ deployImageInfo[deployKernelKey] = deployConfig.kernelURL
|
|
||||||
+ deployImageInfo[deployRamdiskKey] = deployConfig.ramdiskURL
|
|
||||||
+ if deployConfig.bootloaderURL != "" {
|
|
||||||
+ deployImageInfo[bootloaderKey] = deployConfig.bootloaderURL
|
|
||||||
+ }
|
|
||||||
return deployImageInfo
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/pkg/provisioner/ironic/ironic_test.go b/pkg/provisioner/ironic/ironic_test.go
|
|
||||||
index a8759c44..f65592e6 100644
|
|
||||||
--- a/pkg/provisioner/ironic/ironic_test.go
|
|
||||||
+++ b/pkg/provisioner/ironic/ironic_test.go
|
|
||||||
@@ -27,10 +27,12 @@ func newTestProvisionerFactory() ironicProvisionerFactory {
|
|
||||||
return ironicProvisionerFactory{
|
|
||||||
log: logf.Log,
|
|
||||||
config: ironicConfig{
|
|
||||||
- deployKernelURL: "http://deploy.test/ipa.kernel",
|
|
||||||
- deployRamdiskURL: "http://deploy.test/ipa.initramfs",
|
|
||||||
- deployISOURL: "http://deploy.test/ipa.iso",
|
|
||||||
- maxBusyHosts: 20,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: "http://deploy.test/ipa.kernel",
|
|
||||||
+ ramdiskURL: "http://deploy.test/ipa.initramfs",
|
|
||||||
+ ISOURL: "http://deploy.test/ipa.iso",
|
|
||||||
+ },
|
|
||||||
+ maxBusyHosts: 20,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/pkg/provisioner/ironic/register_test.go b/pkg/provisioner/ironic/register_test.go
|
|
||||||
index c7d6bc75..9ded5946 100644
|
|
||||||
--- a/pkg/provisioner/ironic/register_test.go
|
|
||||||
+++ b/pkg/provisioner/ironic/register_test.go
|
|
||||||
@@ -1112,9 +1112,11 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "iso no imgbuilder",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: false,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
- deployRamdiskURL: localRamdisk,
|
|
||||||
- deployISOURL: localIso,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ ramdiskURL: localRamdisk,
|
|
||||||
+ ISOURL: localIso,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: isoDriver,
|
|
||||||
ExpectBuild: false,
|
|
||||||
@@ -1125,8 +1127,10 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "no imgbuilder no iso",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: false,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
- deployRamdiskURL: localRamdisk,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ ramdiskURL: localRamdisk,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: isoDriver,
|
|
||||||
ExpectBuild: false,
|
|
||||||
@@ -1137,9 +1141,11 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "pxe no imgbuilder",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: false,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
- deployRamdiskURL: localRamdisk,
|
|
||||||
- deployISOURL: localIso,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ ramdiskURL: localRamdisk,
|
|
||||||
+ ISOURL: localIso,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: pxeDriver,
|
|
||||||
ExpectBuild: false,
|
|
||||||
@@ -1150,9 +1156,11 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "iso no build",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: true,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
- deployRamdiskURL: localRamdisk,
|
|
||||||
- deployISOURL: localIso,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ ramdiskURL: localRamdisk,
|
|
||||||
+ ISOURL: localIso,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: isoDriver,
|
|
||||||
ExpectISO: false,
|
|
||||||
@@ -1162,9 +1170,11 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "iso build",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: true,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
- deployRamdiskURL: localRamdisk,
|
|
||||||
- deployISOURL: localIso,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ ramdiskURL: localRamdisk,
|
|
||||||
+ ISOURL: localIso,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: isoDriver,
|
|
||||||
Image: &provisioner.PreprovisioningImage{
|
|
||||||
@@ -1181,9 +1191,11 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "pxe build",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: true,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
- deployRamdiskURL: localRamdisk,
|
|
||||||
- deployISOURL: localIso,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ ramdiskURL: localRamdisk,
|
|
||||||
+ ISOURL: localIso,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: pxeDriver,
|
|
||||||
Image: &provisioner.PreprovisioningImage{
|
|
||||||
@@ -1200,9 +1212,11 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "pxe build with new kernel and kernel params",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: true,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
- deployRamdiskURL: localRamdisk,
|
|
||||||
- deployISOURL: localIso,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ ramdiskURL: localRamdisk,
|
|
||||||
+ ISOURL: localIso,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: pxeDriver,
|
|
||||||
Image: &provisioner.PreprovisioningImage{
|
|
||||||
@@ -1223,9 +1237,11 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "pxe iso build",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: true,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
- deployRamdiskURL: localRamdisk,
|
|
||||||
- deployISOURL: localIso,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ ramdiskURL: localRamdisk,
|
|
||||||
+ ISOURL: localIso,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: pxeDriver,
|
|
||||||
Image: &provisioner.PreprovisioningImage{
|
|
||||||
@@ -1242,7 +1258,9 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "pxe build no kernel",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: true,
|
|
||||||
- deployISOURL: localIso,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ ISOURL: localIso,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: pxeDriver,
|
|
||||||
Image: &provisioner.PreprovisioningImage{
|
|
||||||
@@ -1273,7 +1291,9 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "pxe iso build no initrd",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: true,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: pxeDriver,
|
|
||||||
Image: &provisioner.PreprovisioningImage{
|
|
||||||
@@ -1289,7 +1309,9 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "no build no initrd",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: true,
|
|
||||||
- deployKernelURL: localKernel,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ kernelURL: localKernel,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: pxeDriver,
|
|
||||||
ExpectISO: false,
|
|
||||||
@@ -1299,7 +1321,9 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
Scenario: "pxe no imgbuilder no pxe",
|
|
||||||
Config: ironicConfig{
|
|
||||||
havePreprovImgBuilder: false,
|
|
||||||
- deployISOURL: localIso,
|
|
||||||
+ defaultDeployConfig: ironicDeployConfig{
|
|
||||||
+ ISOURL: localIso,
|
|
||||||
+ },
|
|
||||||
},
|
|
||||||
Driver: pxeDriver,
|
|
||||||
ExpectISO: false,
|
|
||||||
@@ -1318,7 +1342,7 @@ func TestSetDeployImage(t *testing.T) {
|
|
||||||
|
|
||||||
for _, tc := range testCases {
|
|
||||||
t.Run(tc.Scenario, func(t *testing.T) {
|
|
||||||
- opts := setDeployImage(tc.Config, tc.Driver, tc.Image)
|
|
||||||
+ opts := setDeployImage(tc.Config, tc.Driver, tc.Image, "x86_64")
|
|
||||||
|
|
||||||
switch {
|
|
||||||
case tc.ExpectISO:
|
|
||||||
diff --git a/pkg/provisioner/provisioner.go b/pkg/provisioner/provisioner.go
|
|
||||||
index faddd0fd..f7f55c0d 100644
|
|
||||||
--- a/pkg/provisioner/provisioner.go
|
|
||||||
+++ b/pkg/provisioner/provisioner.go
|
|
||||||
@@ -82,6 +82,7 @@ type ManagementAccessData struct {
|
|
||||||
PreprovisioningNetworkData string
|
|
||||||
HasCustomDeploy bool
|
|
||||||
DisablePowerOff bool
|
|
||||||
+ CPUArchitecture string
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdoptData struct {
|
|
||||||
--
|
|
||||||
2.50.0
|
|
||||||
|
|
@@ -2,7 +2,7 @@
|
|||||||
<service name="obs_scm">
|
<service name="obs_scm">
|
||||||
<param name="url">https://github.com/metal3-io/baremetal-operator</param>
|
<param name="url">https://github.com/metal3-io/baremetal-operator</param>
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="revision">v0.10.2</param>
|
<param name="revision">v0.9.1</param>
|
||||||
<param name="version">_auto_</param>
|
<param name="version">_auto_</param>
|
||||||
<param name="versionformat">@PARENT_TAG@</param>
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
<param name="changesgenerate">enable</param>
|
<param name="changesgenerate">enable</param>
|
||||||
|
@@ -17,15 +17,14 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: baremetal-operator
|
Name: baremetal-operator
|
||||||
Version: 0.10.2
|
Version: 0.9.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Implements a Kubernetes API for managing bare metal hosts
|
Summary: Implements a Kubernetes API for managing bare metal hosts
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
URL: https://github.com/metal3-io/baremetal-operator
|
URL: https://github.com/metal3-io/baremetal-operator
|
||||||
Patch0: 0001-Allow-configuring-different-IPA-images-per-architect.patch
|
|
||||||
Source: baremetal-operator-%{version}.tar
|
Source: baremetal-operator-%{version}.tar
|
||||||
Source1: vendor.tar.gz
|
Source1: vendor.tar.gz
|
||||||
BuildRequires: golang(API) = 1.24
|
BuildRequires: golang(API) = 1.23
|
||||||
ExcludeArch: s390
|
ExcludeArch: s390
|
||||||
ExcludeArch: %{ix86}
|
ExcludeArch: %{ix86}
|
||||||
|
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
#!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.5.0
|
#!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.4.0
|
||||||
#!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.5.0-%RELEASE%
|
#!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.4.0-%RELEASE%
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: 1.61.0
|
appVersion: 1.60.1
|
||||||
description: A Helm chart for Containerized Data Importer (CDI)
|
description: A Helm chart for Containerized Data Importer (CDI)
|
||||||
icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/kubevirt/icon/color/kubevirt-icon-color.svg
|
icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/kubevirt/icon/color/kubevirt-icon-color.svg
|
||||||
name: cdi
|
name: cdi
|
||||||
type: application
|
type: application
|
||||||
version: "%%CHART_MAJOR%%.0.0+up0.5.0"
|
version: "%%CHART_MAJOR%%.0.0+up0.4.0"
|
||||||
|
@@ -5079,4 +5079,4 @@ spec:
|
|||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
storage: true
|
storage: true
|
||||||
subresources: {}
|
subresources: {}
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
Verify that all CDI components are installed correctly:
|
Verify that all CDI components are installed correctly:
|
||||||
kubectl get all -n {{ .Release.Namespace }}
|
kubectl get all -n {{ .Release.Namespace }}
|
||||||
|
@@ -59,4 +59,4 @@ Create the name of the service account to use
|
|||||||
{{- else }}
|
{{- else }}
|
||||||
{{- default "default" .Values.serviceAccount.name }}
|
{{- default "default" .Values.serviceAccount.name }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@@ -44,4 +44,4 @@
|
|||||||
{{/* CRD uninstalling hook name */}}
|
{{/* CRD uninstalling hook name */}}
|
||||||
{{- define "cdi.crdUninstallHook.name" -}}
|
{{- define "cdi.crdUninstallHook.name" -}}
|
||||||
{{ include "cdi.fullname" . }}-crd-uninstall
|
{{ include "cdi.fullname" . }}-crd-uninstall
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@@ -606,7 +606,17 @@ spec:
|
|||||||
prometheus.cdi.kubevirt.io: "true"
|
prometheus.cdi.kubevirt.io: "true"
|
||||||
spec:
|
spec:
|
||||||
affinity:
|
affinity:
|
||||||
{{- .Values.deployment.affinity | toYaml | nindent 8 }}
|
podAffinity:
|
||||||
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
- podAffinityTerm:
|
||||||
|
labelSelector:
|
||||||
|
matchExpressions:
|
||||||
|
- key: cdi.kubevirt.io
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- cdi-operator
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
weight: 1
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
- name: DEPLOY_CLUSTER_RESOURCES
|
- name: DEPLOY_CLUSTER_RESOURCES
|
||||||
@@ -640,7 +650,9 @@ spec:
|
|||||||
name: metrics
|
name: metrics
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
resources:
|
resources:
|
||||||
{{- .Values.deployment.resources | toYaml | nindent 12 }}
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 150Mi
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -649,8 +661,6 @@ spec:
|
|||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
terminationMessagePath: /dev/termination-log
|
|
||||||
terminationMessagePolicy: File
|
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/os: linux
|
kubernetes.io/os: linux
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -658,4 +668,4 @@ spec:
|
|||||||
serviceAccountName: cdi-operator
|
serviceAccountName: cdi-operator
|
||||||
tolerations:
|
tolerations:
|
||||||
- key: CriticalAddonsOnly
|
- key: CriticalAddonsOnly
|
||||||
operator: Exists
|
operator: Exists
|
||||||
|
@@ -66,4 +66,4 @@ spec:
|
|||||||
- deployments/cdi-apiserver
|
- deployments/cdi-apiserver
|
||||||
- deployments/cdi-deployment
|
- deployments/cdi-deployment
|
||||||
- deployments/cdi-uploadproxy
|
- deployments/cdi-uploadproxy
|
||||||
- --timeout=60s
|
- --timeout=60s
|
||||||
|
@@ -18,4 +18,4 @@ spec:
|
|||||||
{{- with .Values.cdi.workload }}
|
{{- with .Values.cdi.workload }}
|
||||||
workload:
|
workload:
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@@ -52,4 +52,4 @@ spec:
|
|||||||
- customresourcedefinitions
|
- customresourcedefinitions
|
||||||
- cdis.cdi.kubevirt.io
|
- cdis.cdi.kubevirt.io
|
||||||
securityContext:
|
securityContext:
|
||||||
{{- toYaml .Values.hookSecurityContext | nindent 12 }}
|
{{- toYaml .Values.hookSecurityContext | nindent 12 }}
|
||||||
|
@@ -77,4 +77,4 @@ spec:
|
|||||||
name: cdi-crd-manifest
|
name: cdi-crd-manifest
|
||||||
items:
|
items:
|
||||||
- key: crd
|
- key: crd
|
||||||
path: crd.yaml
|
path: crd.yaml
|
||||||
|
@@ -53,4 +53,4 @@ spec:
|
|||||||
- label
|
- label
|
||||||
- namespace
|
- namespace
|
||||||
- {{ .Release.Namespace }}
|
- {{ .Release.Namespace }}
|
||||||
- cdi.kubevirt.io=
|
- cdi.kubevirt.io=
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
deployment:
|
deployment:
|
||||||
version: 1.61.0-150600.3.12.1
|
version: 1.60.1-150600.3.9.1
|
||||||
operatorImage: registry.suse.com/suse/sles/15.6/cdi-operator
|
operatorImage: registry.suse.com/suse/sles/15.6/cdi-operator
|
||||||
controllerImage: registry.suse.com/suse/sles/15.6/cdi-controller
|
controllerImage: registry.suse.com/suse/sles/15.6/cdi-controller
|
||||||
importerImage: registry.suse.com/suse/sles/15.6/cdi-importer
|
importerImage: registry.suse.com/suse/sles/15.6/cdi-importer
|
||||||
@@ -8,22 +8,6 @@ deployment:
|
|||||||
uploadserverImage: registry.suse.com/suse/sles/15.6/cdi-uploadserver
|
uploadserverImage: registry.suse.com/suse/sles/15.6/cdi-uploadserver
|
||||||
uploadproxyImage: registry.suse.com/suse/sles/15.6/cdi-uploadproxy
|
uploadproxyImage: registry.suse.com/suse/sles/15.6/cdi-uploadproxy
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
affinity:
|
|
||||||
podAffinity:
|
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
- podAffinityTerm:
|
|
||||||
labelSelector:
|
|
||||||
matchExpressions:
|
|
||||||
- key: cdi.kubevirt.io
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- cdi-operator
|
|
||||||
topologyKey: kubernetes.io/hostname
|
|
||||||
weight: 1
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 150Mi
|
|
||||||
|
|
||||||
cdi:
|
cdi:
|
||||||
config:
|
config:
|
||||||
@@ -51,4 +35,4 @@ hookSecurityContext:
|
|||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
drop:
|
drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
@@ -8,7 +8,6 @@ import pprint
|
|||||||
|
|
||||||
AUTHORIZED_REPOS = [
|
AUTHORIZED_REPOS = [
|
||||||
"registry.suse.com/suse/sles/",
|
"registry.suse.com/suse/sles/",
|
||||||
"registry.suse.com/rancher",
|
|
||||||
"registry.rancher.com",
|
"registry.rancher.com",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.2.1
|
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:%PACKAGE_VERSION%
|
||||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.2.1-%RELEASE%
|
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:%PACKAGE_VERSION%-%RELEASE%
|
||||||
#!BuildVersion: 15.6
|
#!BuildVersion: 15.6
|
||||||
ARG SLE_VERSION
|
ARG SLE_VERSION
|
||||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION
|
||||||
@@ -15,11 +15,11 @@ RUN zypper --non-interactive install --no-recommends edge-image-builder qemu-x86
|
|||||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
LABEL org.opencontainers.image.title="SLE edge-image-builder Container Image"
|
LABEL org.opencontainers.image.title="SLE edge-image-builder Container Image"
|
||||||
LABEL org.opencontainers.image.description="edge-image-builder based on the SLE Base Container Image."
|
LABEL org.opencontainers.image.description="edge-image-builder based on the SLE Base Container Image."
|
||||||
LABEL org.opencontainers.image.version="1.2.1"
|
LABEL org.opencontainers.image.version="%PACKAGE_VERSION%"
|
||||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.2.1-%RELEASE%"
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:%PACKAGE_VERSION%-%RELEASE%"
|
||||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
@@ -1,5 +1,10 @@
|
|||||||
<services>
|
<services>
|
||||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||||
|
<service name="replace_using_package_version" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%PACKAGE_VERSION%</param>
|
||||||
|
<param name="package">edge-image-builder</param>
|
||||||
|
</service>
|
||||||
<service name="replace_using_env" mode="buildtime">
|
<service name="replace_using_env" mode="buildtime">
|
||||||
<param name="file">Dockerfile</param>
|
<param name="file">Dockerfile</param>
|
||||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
@@ -5,7 +5,7 @@ metallb:
|
|||||||
endpoint-copier-operator:
|
endpoint-copier-operator:
|
||||||
chart: endpoint-copier-operator
|
chart: endpoint-copier-operator
|
||||||
repository: "%%CHART_REPO%%/%%CHART_PREFIX%%"
|
repository: "%%CHART_REPO%%/%%CHART_PREFIX%%"
|
||||||
version: "%%CHART_MAJOR%%.0.1+up0.3.0"
|
version: "%%CHART_MAJOR%%.0.0+up0.2.1"
|
||||||
kubernetes:
|
kubernetes:
|
||||||
k3s:
|
k3s:
|
||||||
selinuxPackage: k3s-selinux-1.6-1.slemicro.noarch
|
selinuxPackage: k3s-selinux-1.6-1.slemicro.noarch
|
||||||
|
@@ -1,15 +1,12 @@
|
|||||||
<services>
|
<services>
|
||||||
<service name="obs_scm">
|
<service name="obs_scm">
|
||||||
<param name="url">https://github.com/suse-edge/edge-image-builder.git</param>
|
<param name="url">https://github.com/suse-edge/edge-image-builder.git</param>
|
||||||
|
<param name="versionformat">@PARENT_TAG@_%h.%ad</param>
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="exclude">.git</param>
|
<param name="exclude">.git</param>
|
||||||
<param name="revision">v1.2.1</param>
|
<param name="revision">main</param>
|
||||||
<!-- Uncomment and set this For Pre-Release Version -->
|
<param name="versionrewrite-pattern">v(.*)</param>
|
||||||
<!-- <param name="version">1.2.0~rc1</param> -->
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
<!-- Uncomment and this for regular version -->
|
|
||||||
<param name="versionformat">@PARENT_TAG@</param>
|
|
||||||
<param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param>
|
|
||||||
<param name="versionrewrite-replacement">\1.\2.\3</param>
|
|
||||||
<param name="changesgenerate">enable</param>
|
<param name="changesgenerate">enable</param>
|
||||||
</service>
|
</service>
|
||||||
<service mode="buildtime" name="tar">
|
<service mode="buildtime" name="tar">
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: edge-image-builder
|
Name: edge-image-builder
|
||||||
Version: 1.2.1
|
Version: 0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Edge Image Builder
|
Summary: Edge Image Builder
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
#!BuildTag: %%CHART_PREFIX%%endpoint-copier-operator:%%CHART_MAJOR%%.0.1_up0.3.0
|
#!BuildTag: %%CHART_PREFIX%%endpoint-copier-operator:%%CHART_MAJOR%%.0.0_up0.2.1
|
||||||
#!BuildTag: %%CHART_PREFIX%%endpoint-copier-operator:%%CHART_MAJOR%%.0.1_up0.3.0-%RELEASE%
|
#!BuildTag: %%CHART_PREFIX%%endpoint-copier-operator:%%CHART_MAJOR%%.0.0_up0.2.1-%RELEASE%
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: v0.3.0
|
appVersion: v0.2.0
|
||||||
description: A Helm chart for Kubernetes
|
description: A Helm chart for Kubernetes
|
||||||
name: endpoint-copier-operator
|
name: endpoint-copier-operator
|
||||||
type: application
|
type: application
|
||||||
version: "%%CHART_MAJOR%%.0.1+up0.3.0"
|
version: "%%CHART_MAJOR%%.0.0+up0.2.1"
|
||||||
|
@@ -20,23 +20,8 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
{{- include "endpoint-copier-operator.selectorLabels" . | nindent 8 }}
|
{{- include "endpoint-copier-operator.selectorLabels" . | nindent 8 }}
|
||||||
spec:
|
spec:
|
||||||
{{- if .Values.priorityClassName }}
|
|
||||||
priorityClassName: {{ .Values.priorityClassName }}
|
|
||||||
{{- end }}
|
|
||||||
securityContext:
|
securityContext:
|
||||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||||
{{- with .Values.nodeSelector }}
|
|
||||||
nodeSelector:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.affinity }}
|
|
||||||
affinity:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.tolerations }}
|
|
||||||
tolerations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
containers:
|
containers:
|
||||||
- command:
|
- command:
|
||||||
- /manager
|
- /manager
|
||||||
|
@@ -7,9 +7,9 @@ metadata:
|
|||||||
name: {{ include "endpoint-copier-operator.fullname" . }}
|
name: {{ include "endpoint-copier-operator.fullname" . }}
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- "discovery.k8s.io"
|
- ""
|
||||||
resources:
|
resources:
|
||||||
- endpointslices
|
- endpoints
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- delete
|
- delete
|
||||||
|
@@ -8,7 +8,7 @@ image:
|
|||||||
repository: %%IMG_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator
|
repository: %%IMG_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
# Overrides the image tag whose default is the chart appVersion.
|
# Overrides the image tag whose default is the chart appVersion.
|
||||||
tag: "0.3.0"
|
tag: "0.2.0"
|
||||||
|
|
||||||
nameOverride: "endpoint-copier-operator"
|
nameOverride: "endpoint-copier-operator"
|
||||||
fullnameOverride: "endpoint-copier-operator"
|
fullnameOverride: "endpoint-copier-operator"
|
||||||
@@ -29,8 +29,6 @@ podSecurityContext:
|
|||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
|
|
||||||
priorityClassName: "system-cluster-critical"
|
|
||||||
|
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -39,11 +37,11 @@ securityContext:
|
|||||||
|
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 100m
|
cpu: 500m
|
||||||
memory: 64Mi
|
memory: 128Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 5m
|
cpu: 10m
|
||||||
memory: 32Mi
|
memory: 64Mi
|
||||||
|
|
||||||
autoscaling:
|
autoscaling:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
<service name="obs_scm">
|
<service name="obs_scm">
|
||||||
<param name="url">https://github.com/suse-edge/endpoint-copier-operator</param>
|
<param name="url">https://github.com/suse-edge/endpoint-copier-operator</param>
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="revision">v0.3.0</param>
|
<param name="revision">v0.2.0</param>
|
||||||
<param name="version">_auto_</param>
|
<param name="version">_auto_</param>
|
||||||
<param name="versionformat">@PARENT_TAG@</param>
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
<param name="changesgenerate">enable</param>
|
<param name="changesgenerate">enable</param>
|
||||||
|
@@ -17,14 +17,14 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: endpoint-copier-operator
|
Name: endpoint-copier-operator
|
||||||
Version: 0.3.0
|
Version: 0.2.0
|
||||||
Release: 0.3.0
|
Release: 0.2.0
|
||||||
Summary: Implements a Kubernetes API for copying endpoint resources
|
Summary: Implements a Kubernetes API for copying endpoint resources
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
URL: https://github.com/suse-edge/endpoint-copier-operator
|
URL: https://github.com/suse-edge/endpoint-copier-operator
|
||||||
Source: endpoint-copier-operator-%{version}.tar
|
Source: endpoint-copier-operator-%{version}.tar
|
||||||
Source1: vendor.tar.gz
|
Source1: vendor.tar.gz
|
||||||
BuildRequires: golang(API) = 1.24
|
BuildRequires: golang(API) = 1.20
|
||||||
ExcludeArch: s390
|
ExcludeArch: s390
|
||||||
ExcludeArch: %{ix86}
|
ExcludeArch: %{ix86}
|
||||||
|
|
||||||
|
57
ironic-image/inspector-apache.conf.j2
Normal file
57
ironic-image/inspector-apache.conf.j2
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
|
||||||
|
{% if env.LISTEN_ALL_INTERFACES | lower == "true" %}
|
||||||
|
Listen {{ env.IRONIC_INSPECTOR_LISTEN_PORT }}
|
||||||
|
<VirtualHost *:{{ env.IRONIC_INSPECTOR_LISTEN_PORT }}>
|
||||||
|
{% else %}
|
||||||
|
Listen {{ env.IRONIC_URL_HOST }}:{{ env.IRONIC_INSPECTOR_LISTEN_PORT }}
|
||||||
|
<VirtualHost {{ env.IRONIC_URL_HOST }}:{{ env.IRONIC_INSPECTOR_LISTEN_PORT }}>
|
||||||
|
{% endif %}
|
||||||
|
{% if env.IRONIC_INSPECTOR_PRIVATE_PORT == "unix" %}
|
||||||
|
ProxyPass "/" "unix:/shared/inspector.sock|http://127.0.0.1/"
|
||||||
|
ProxyPassReverse "/" "unix:/shared/inspector.sock|http://127.0.0.1/"
|
||||||
|
{% else %}
|
||||||
|
ProxyPass "/" "http://127.0.0.1:{{ env.IRONIC_INSPECTOR_PRIVATE_PORT }}/"
|
||||||
|
ProxyPassReverse "/" "http://127.0.0.1:{{ env.IRONIC_INSPECTOR_PRIVATE_PORT }}/"
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
SetEnv APACHE_RUN_USER ironic-suse
|
||||||
|
SetEnv APACHE_RUN_GROUP ironic-suse
|
||||||
|
|
||||||
|
ErrorLog /dev/stdout
|
||||||
|
LogLevel debug
|
||||||
|
CustomLog /dev/stdout combined
|
||||||
|
|
||||||
|
SSLEngine On
|
||||||
|
SSLProtocol {{ env.IRONIC_SSL_PROTOCOL }}
|
||||||
|
SSLCertificateFile {{ env.IRONIC_INSPECTOR_CERT_FILE }}
|
||||||
|
SSLCertificateKeyFile {{ env.IRONIC_INSPECTOR_KEY_FILE }}
|
||||||
|
|
||||||
|
{% if "INSPECTOR_HTPASSWD" in env and env.INSPECTOR_HTPASSWD | length %}
|
||||||
|
<Location / >
|
||||||
|
AuthType Basic
|
||||||
|
AuthName "Restricted area"
|
||||||
|
AuthUserFile "/etc/ironic-inspector/htpasswd"
|
||||||
|
Require valid-user
|
||||||
|
</Location>
|
||||||
|
|
||||||
|
<Location ~ "^/(v1/?)?$" >
|
||||||
|
Require all granted
|
||||||
|
</Location>
|
||||||
|
|
||||||
|
<Location /v1/continue >
|
||||||
|
Require all granted
|
||||||
|
</Location>
|
||||||
|
{% endif %}
|
||||||
|
</VirtualHost>
|
68
ironic-image/ironic-inspector.conf.j2
Normal file
68
ironic-image/ironic-inspector.conf.j2
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
auth_strategy = noauth
|
||||||
|
debug = true
|
||||||
|
transport_url = fake://
|
||||||
|
use_stderr = true
|
||||||
|
{% if env.INSPECTOR_REVERSE_PROXY_SETUP == "true" %}
|
||||||
|
{% if env.IRONIC_INSPECTOR_PRIVATE_PORT == "unix" %}
|
||||||
|
listen_unix_socket = /shared/inspector.sock
|
||||||
|
# NOTE(dtantsur): this is not ideal, but since the socket is accessed from
|
||||||
|
# another container, we need to make it world-writeable.
|
||||||
|
listen_unix_socket_mode = 0666
|
||||||
|
{% else %}
|
||||||
|
listen_port = {{ env.IRONIC_INSPECTOR_PRIVATE_PORT }}
|
||||||
|
listen_address = 127.0.0.1
|
||||||
|
{% endif %}
|
||||||
|
{% elif env.LISTEN_ALL_INTERFACES | lower == "true" %}
|
||||||
|
listen_port = {{ env.IRONIC_INSPECTOR_LISTEN_PORT }}
|
||||||
|
listen_address = ::
|
||||||
|
{% else %}
|
||||||
|
listen_port = {{ env.IRONIC_INSPECTOR_LISTEN_PORT }}
|
||||||
|
listen_address = {{ env.IRONIC_IP }}
|
||||||
|
{% endif %}
|
||||||
|
host = {{ env.IRONIC_IP }}
|
||||||
|
{% if env.IRONIC_INSPECTOR_TLS_SETUP == "true" and env.INSPECTOR_REVERSE_PROXY_SETUP == "false" %}
|
||||||
|
use_ssl = true
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[database]
|
||||||
|
connection = sqlite:////var/lib/ironic-inspector/ironic-inspector.db
|
||||||
|
|
||||||
|
{% if env.IRONIC_INSPECTOR_ENABLE_DISCOVERY == "true" %}
|
||||||
|
[discovery]
|
||||||
|
enroll_node_driver = ipmi
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[ironic]
|
||||||
|
auth_type = none
|
||||||
|
endpoint_override = {{ env.IRONIC_BASE_URL }}
|
||||||
|
{% if env.IRONIC_TLS_SETUP == "true" %}
|
||||||
|
cafile = {{ env.IRONIC_CACERT_FILE }}
|
||||||
|
insecure = {{ env.IRONIC_INSECURE }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[processing]
|
||||||
|
add_ports = all
|
||||||
|
always_store_ramdisk_logs = true
|
||||||
|
keep_ports = present
|
||||||
|
{% if env.IRONIC_INSPECTOR_ENABLE_DISCOVERY == "true" %}
|
||||||
|
node_not_found_hook = enroll
|
||||||
|
{% endif %}
|
||||||
|
permit_active_introspection = true
|
||||||
|
power_off = false
|
||||||
|
processing_hooks = $default_processing_hooks,lldp_basic
|
||||||
|
ramdisk_logs_dir = /shared/log/ironic-inspector/ramdisk
|
||||||
|
store_data = database
|
||||||
|
|
||||||
|
[pxe_filter]
|
||||||
|
driver = noop
|
||||||
|
|
||||||
|
[service_catalog]
|
||||||
|
auth_type = none
|
||||||
|
endpoint_override = {{ env.IRONIC_INSPECTOR_BASE_URL }}
|
||||||
|
|
||||||
|
{% if env.IRONIC_INSPECTOR_TLS_SETUP == "true" and env.INSPECTOR_REVERSE_PROXY_SETUP == "false" %}
|
||||||
|
[ssl]
|
||||||
|
cert_file = {{ env.IRONIC_INSPECTOR_CERT_FILE }}
|
||||||
|
key_file = {{ env.IRONIC_INSPECTOR_KEY_FILE }}
|
||||||
|
{% endif %}
|
13
ironic-image/runironic-api
Normal file
13
ironic-image/runironic-api
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
export IRONIC_DEPLOYMENT="API"
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. /bin/configure-ironic.sh
|
||||||
|
|
||||||
|
export IRONIC_REVERSE_PROXY_SETUP=false
|
||||||
|
|
||||||
|
python3 -c 'import os; import sys; import jinja2; sys.stdout.write(jinja2.Template(sys.stdin.read()).render(env=os.environ))' < /tmp/httpd-ironic-api.conf.j2 > /etc/httpd/conf.d/ironic.conf
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. /bin/runhttpd
|
20
ironic-image/runironic-conductor
Normal file
20
ironic-image/runironic-conductor
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
export IRONIC_DEPLOYMENT="Conductor"
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. /bin/configure-ironic.sh
|
||||||
|
|
||||||
|
# Ramdisk logs
|
||||||
|
mkdir -p /shared/log/ironic/deploy
|
||||||
|
|
||||||
|
run_ironic_dbsync
|
||||||
|
|
||||||
|
if [[ "$IRONIC_TLS_SETUP" == "true" ]] && [[ "${RESTART_CONTAINER_CERTIFICATE_UPDATED}" == "true" ]]; then
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
inotifywait -m -e delete_self "${IRONIC_CERT_FILE}" | while read -r file event; do
|
||||||
|
kill $(pgrep ironic)
|
||||||
|
done &
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec /usr/bin/ironic-conductor
|
62
ironic-image/runironic-inspector
Normal file
62
ironic-image/runironic-inspector
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
CONFIG=/etc/ironic-inspector/ironic-inspector.conf
|
||||||
|
|
||||||
|
export IRONIC_INSPECTOR_ENABLE_DISCOVERY=${IRONIC_INSPECTOR_ENABLE_DISCOVERY:-false}
|
||||||
|
export INSPECTOR_REVERSE_PROXY_SETUP=${INSPECTOR_REVERSE_PROXY_SETUP:-false}
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. /bin/tls-common.sh
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. /bin/ironic-common.sh
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. /bin/auth-common.sh
|
||||||
|
|
||||||
|
if [[ "$USE_IRONIC_INSPECTOR" == "false" ]]; then
|
||||||
|
echo "FATAL: ironic-inspector is disabled via USE_IRONIC_INSPECTOR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
wait_for_interface_or_ip
|
||||||
|
|
||||||
|
IRONIC_INSPECTOR_PORT=${IRONIC_INSPECTOR_ACCESS_PORT}
|
||||||
|
if [[ "$IRONIC_INSPECTOR_TLS_SETUP" == "true" ]]; then
|
||||||
|
if [[ "${INSPECTOR_REVERSE_PROXY_SETUP}" == "true" ]] && [[ "${IRONIC_INSPECTOR_PRIVATE_PORT}" != "unix" ]]; then
|
||||||
|
IRONIC_INSPECTOR_PORT=$IRONIC_INSPECTOR_PRIVATE_PORT
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
export INSPECTOR_REVERSE_PROXY_SETUP="false" # If TLS is not used, we have no reason to use the reverse proxy
|
||||||
|
fi
|
||||||
|
|
||||||
|
export IRONIC_INSPECTOR_BASE_URL="${IRONIC_INSPECTOR_SCHEME}://${IRONIC_URL_HOST}:${IRONIC_INSPECTOR_PORT}"
|
||||||
|
export IRONIC_BASE_URL="${IRONIC_SCHEME}://${IRONIC_URL_HOST}:${IRONIC_ACCESS_PORT}"
|
||||||
|
|
||||||
|
build_j2_config()
|
||||||
|
{
|
||||||
|
local CONFIG_FILE="$1"
|
||||||
|
python3 -c 'import os; import sys; import jinja2; sys.stdout.write(jinja2.Template(sys.stdin.read()).render(env=os.environ))' < "$CONFIG_FILE.j2"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Merge with the original configuration file from the package.
|
||||||
|
build_j2_config "$CONFIG" | crudini --merge "$CONFIG"
|
||||||
|
|
||||||
|
configure_inspector_auth
|
||||||
|
|
||||||
|
configure_client_basic_auth ironic "${CONFIG}"
|
||||||
|
|
||||||
|
ironic-inspector-dbsync --config-file "${CONFIG}" upgrade
|
||||||
|
|
||||||
|
if [[ "$INSPECTOR_REVERSE_PROXY_SETUP" == "false" ]] && [[ "${RESTART_CONTAINER_CERTIFICATE_UPDATED}" == "true" ]]; then
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
inotifywait -m -e delete_self "${IRONIC_INSPECTOR_CERT_FILE}" | while read -r file event; do
|
||||||
|
kill $(pgrep ironic)
|
||||||
|
done &
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure ironic traffic bypasses any proxies
|
||||||
|
export NO_PROXY="${NO_PROXY:-},$IRONIC_IP"
|
||||||
|
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
exec /usr/bin/ironic-inspector
|
@@ -1,6 +1,7 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.7
|
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.7-%RELEASE%
|
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3-%RELEASE%
|
||||||
|
#!BuildVersion: 15.6
|
||||||
ARG SLE_VERSION
|
ARG SLE_VERSION
|
||||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
@@ -18,11 +19,11 @@ FROM micro AS final
|
|||||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
LABEL org.opencontainers.image.title="SLE Based Ironic IPA Downloader Container Image"
|
LABEL org.opencontainers.image.title="SLE Based Ironic IPA Downloader Container Image"
|
||||||
LABEL org.opencontainers.image.description="ironic-ipa-downloader based on the SLE Base Container Image."
|
LABEL org.opencontainers.image.description="ironic-ipa-downloader based on the SLE Base Container Image."
|
||||||
LABEL org.opencontainers.image.version="3.0.6"
|
LABEL org.opencontainers.image.version="3.0.3"
|
||||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
||||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.7-%RELEASE%"
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.3-%RELEASE%"
|
||||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
@@ -1,45 +0,0 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-aarch64:3.0.7
|
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-aarch64:3.0.7-%RELEASE%
|
|
||||||
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 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-aarch64 tar gawk curl xz zstd shadow cpio findutils
|
|
||||||
|
|
||||||
RUN cp /usr/bin/getopt /installroot/
|
|
||||||
|
|
||||||
FROM micro AS final
|
|
||||||
|
|
||||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
|
||||||
# labelprefix=com.suse.application.ironic
|
|
||||||
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.6"
|
|
||||||
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.7-%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 cp /getopt /usr/bin/
|
|
||||||
RUN cp /srv/tftpboot/openstack-ironic-image/initrd*.zst /tmp
|
|
||||||
RUN cp /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel /tmp
|
|
||||||
RUN sha256sum /srv/tftpboot/openstack-ironic-image/initrd*.zst /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel > /tmp/images.sha256
|
|
||||||
# configure non-root user
|
|
||||||
COPY configure-nonroot.sh /bin/
|
|
||||||
RUN set -euo pipefail; chmod +x /bin/configure-nonroot.sh
|
|
||||||
RUN set -euo pipefail; /bin/configure-nonroot.sh && rm -f /bin/configure-nonroot.sh
|
|
||||||
COPY get-resource.sh /usr/local/bin/get-resource.sh
|
|
||||||
|
|
||||||
RUN set -euo pipefail; chmod +x /usr/local/bin/get-resource.sh
|
|
@@ -1,45 +0,0 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-x86_64:3.0.7
|
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-x86_64:3.0.7-%RELEASE%
|
|
||||||
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 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 tar gawk curl xz zstd shadow cpio findutils
|
|
||||||
|
|
||||||
RUN cp /usr/bin/getopt /installroot/
|
|
||||||
|
|
||||||
FROM micro AS final
|
|
||||||
|
|
||||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
|
||||||
# labelprefix=com.suse.application.ironic
|
|
||||||
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.6"
|
|
||||||
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.7-%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 cp /getopt /usr/bin/
|
|
||||||
RUN cp /srv/tftpboot/openstack-ironic-image/initrd*.zst /tmp
|
|
||||||
RUN cp /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel /tmp
|
|
||||||
RUN sha256sum /srv/tftpboot/openstack-ironic-image/initrd*.zst /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel > /tmp/images.sha256
|
|
||||||
# configure non-root user
|
|
||||||
COPY configure-nonroot.sh /bin/
|
|
||||||
RUN set -euo pipefail; chmod +x /bin/configure-nonroot.sh
|
|
||||||
RUN set -euo pipefail; /bin/configure-nonroot.sh && rm -f /bin/configure-nonroot.sh
|
|
||||||
COPY get-resource.sh /usr/local/bin/get-resource.sh
|
|
||||||
|
|
||||||
RUN set -euo pipefail; chmod +x /usr/local/bin/get-resource.sh
|
|
@@ -1,4 +0,0 @@
|
|||||||
<multibuild>
|
|
||||||
<flavor>x86_64</flavor>
|
|
||||||
<flavor>aarch64</flavor>
|
|
||||||
</multibuild>
|
|
@@ -2,8 +2,6 @@
|
|||||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||||
<service mode="buildtime" name="docker_label_helper"/>
|
<service mode="buildtime" name="docker_label_helper"/>
|
||||||
<service name="replace_using_env" mode="buildtime">
|
<service name="replace_using_env" mode="buildtime">
|
||||||
<param name="file">Dockerfile.aarch64</param>
|
|
||||||
<param name="file">Dockerfile.x86_64</param>
|
|
||||||
<param name="file">Dockerfile</param>
|
<param name="file">Dockerfile</param>
|
||||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
<param name="var">IMG_PREFIX</param>
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
@@ -26,15 +26,11 @@ if [ -z "${IPA_BASEURI}" ]; then
|
|||||||
IMAGE_CHANGED=1
|
IMAGE_CHANGED=1
|
||||||
# SLES BASED IPA - ironic-ipa-ramdisk-x86_64 and ironic-ipa-ramdisk-aarch64 packages
|
# SLES BASED IPA - ironic-ipa-ramdisk-x86_64 and ironic-ipa-ramdisk-aarch64 packages
|
||||||
mkdir -p /shared/html/images
|
mkdir -p /shared/html/images
|
||||||
if [ -f /tmp/initrd-x86_64.zst ]; then
|
cp /tmp/initrd-x86_64.zst /shared/html/images/ironic-python-agent-x86_64.initramfs
|
||||||
cp /tmp/initrd-x86_64.zst /shared/html/images/ironic-python-agent-x86_64.initramfs
|
cp /tmp/openstack-ironic-image.x86_64*.kernel /shared/html/images/ironic-python-agent-x86_64.kernel
|
||||||
cp /tmp/openstack-ironic-image.x86_64*.kernel /shared/html/images/ironic-python-agent-x86_64.kernel
|
|
||||||
fi
|
|
||||||
# Use arm64 as destination for iPXE compatibility
|
# Use arm64 as destination for iPXE compatibility
|
||||||
if [ -f /tmp/initrd-aarch64.zst ]; then
|
cp /tmp/initrd-aarch64.zst /shared/html/images/ironic-python-agent-arm64.initramfs
|
||||||
cp /tmp/initrd-aarch64.zst /shared/html/images/ironic-python-agent-arm64.initramfs
|
cp /tmp/openstack-ironic-image.aarch64*.kernel /shared/html/images/ironic-python-agent-arm64.kernel
|
||||||
cp /tmp/openstack-ironic-image.aarch64*.kernel /shared/html/images/ironic-python-agent-arm64.kernel
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp /tmp/images.sha256 /shared/images.sha256
|
cp /tmp/images.sha256 /shared/images.sha256
|
||||||
else
|
else
|
||||||
|
@@ -13,6 +13,11 @@ echo "Configure image: [$kiwi_iname]..."
|
|||||||
#------------------------------------------
|
#------------------------------------------
|
||||||
baseSetupBuildDay
|
baseSetupBuildDay
|
||||||
|
|
||||||
|
#======================================
|
||||||
|
# Mount system filesystems
|
||||||
|
#--------------------------------------
|
||||||
|
#baseMount
|
||||||
|
|
||||||
#==========================================
|
#==========================================
|
||||||
# remove unneded kernel files
|
# remove unneded kernel files
|
||||||
#------------------------------------------
|
#------------------------------------------
|
||||||
@@ -34,8 +39,12 @@ suseImportBuildKey
|
|||||||
#--------------------------------------
|
#--------------------------------------
|
||||||
baseInsertService openstack-ironic-python-agent
|
baseInsertService openstack-ironic-python-agent
|
||||||
baseInsertService suse-ironic-image-setup
|
baseInsertService suse-ironic-image-setup
|
||||||
|
baseInsertService suse-network-setup
|
||||||
baseInsertService sshd
|
baseInsertService sshd
|
||||||
baseInsertService NetworkManager
|
baseInsertService NetworkManager
|
||||||
|
#suseInsertService sshd
|
||||||
|
#suseInsertService openstack-ironic-python-agent
|
||||||
|
#suseInsertService suse-ironic-image-setup
|
||||||
|
|
||||||
echo 'DEFAULT_TIMEZONE="UTC"' >> /etc/sysconfig/clock
|
echo 'DEFAULT_TIMEZONE="UTC"' >> /etc/sysconfig/clock
|
||||||
baseUpdateSysConfig /etc/sysconfig/clock HWCLOCK "-u"
|
baseUpdateSysConfig /etc/sysconfig/clock HWCLOCK "-u"
|
||||||
@@ -55,7 +64,42 @@ sed -E 's/^(ExecStart=.*\/agetty).*(--noclear.*)/\1 \2 --autologin root/' /usr/l
|
|||||||
#------------------------------------------
|
#------------------------------------------
|
||||||
echo 'tmpfs /tmp tmpfs size=3G 0 0' >> /etc/fstab
|
echo 'tmpfs /tmp tmpfs size=3G 0 0' >> /etc/fstab
|
||||||
|
|
||||||
|
#==========================================
|
||||||
|
# remove package docs and manuals
|
||||||
|
#------------------------------------------
|
||||||
|
#baseStripDocs
|
||||||
|
#baseStripMans
|
||||||
|
#baseStripInfos
|
||||||
|
|
||||||
|
#======================================
|
||||||
|
# only basic version of vim is
|
||||||
|
# installed; no syntax highlighting
|
||||||
|
#--------------------------------------
|
||||||
|
sed -i -e's/^syntax on/" syntax on/' /etc/vimrc
|
||||||
|
|
||||||
|
#======================================
|
||||||
|
# Remove yast if not in use
|
||||||
|
#--------------------------------------
|
||||||
|
#suseRemoveYaST
|
||||||
|
|
||||||
|
#======================================
|
||||||
|
# Remove package manager
|
||||||
|
#--------------------------------------
|
||||||
|
#suseStripPackager
|
||||||
|
|
||||||
|
#rm -f usr/lib/perl5/*/*/auto/Encode/??/??.so # 9MB
|
||||||
|
|
||||||
|
#======================================
|
||||||
|
# Umount kernel filesystems
|
||||||
|
#--------------------------------------
|
||||||
|
#baseCleanMount
|
||||||
|
|
||||||
ln -s /sbin/init /init
|
ln -s /sbin/init /init
|
||||||
|
|
||||||
|
#==========================================
|
||||||
|
# umount
|
||||||
|
#------------------------------------------
|
||||||
|
umount /proc >/dev/null 2>&1
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
@@ -12,7 +12,6 @@
|
|||||||
<locale>en_US</locale>
|
<locale>en_US</locale>
|
||||||
<packagemanager>zypper</packagemanager>
|
<packagemanager>zypper</packagemanager>
|
||||||
<rpm-check-signatures>false</rpm-check-signatures>
|
<rpm-check-signatures>false</rpm-check-signatures>
|
||||||
<rpm-excludedocs>true</rpm-excludedocs>
|
|
||||||
<timezone>UTC</timezone>
|
<timezone>UTC</timezone>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</preferences>
|
</preferences>
|
||||||
@@ -103,25 +102,64 @@
|
|||||||
<package name="libxcb-render0"/>
|
<package name="libxcb-render0"/>
|
||||||
<package name="libxcb-shm0"/>
|
<package name="libxcb-shm0"/>
|
||||||
<package name="libxcb1"/>
|
<package name="libxcb1"/>
|
||||||
<package name="kernel-firmware-amdgpu"/>
|
<package name="plymouth"/>
|
||||||
<package name="kernel-firmware-ath10k"/>
|
<package name="plymouth-branding-SLE"/>
|
||||||
<package name="kernel-firmware-ath11k"/>
|
|
||||||
<package name="kernel-firmware-ath12k"/>
|
|
||||||
<package name="kernel-firmware-atheros"/>
|
|
||||||
<package name="kernel-firmware-bluetooth"/>
|
|
||||||
<package name="kernel-firmware-brcm"/>
|
|
||||||
<package name="kernel-firmware-i915"/>
|
|
||||||
<package name="kernel-firmware-iwlwifi"/>
|
|
||||||
<package name="kernel-firmware-media"/>
|
|
||||||
<package name="kernel-firmware-nvidia"/>
|
|
||||||
<package name="kernel-firmware-qcom"/>
|
|
||||||
<package name="kernel-firmware-radeon"/>
|
|
||||||
<package name="kernel-firmware-realtek"/>
|
|
||||||
<package name="kernel-firmware-sound"/>
|
|
||||||
<package name="kernel-firmware-ti"/>
|
|
||||||
<package name="kernel-firmware-ueagle"/>
|
|
||||||
</packages>
|
</packages>
|
||||||
|
|
||||||
|
<packages type="image">
|
||||||
|
<package name="checkmedia"/>
|
||||||
|
<package name="plymouth-branding-SLE"/>
|
||||||
|
<package name="plymouth-dracut"/>
|
||||||
|
<package name="plymouth-theme-bgrt"/>
|
||||||
|
<package name="grub2-branding-SLE"/>
|
||||||
|
<package name="iputils"/>
|
||||||
|
<package name="vim"/>
|
||||||
|
<package name="grub2"/>
|
||||||
|
<package name="grub2-x86_64-efi" arch="x86_64"/>
|
||||||
|
<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"/>
|
||||||
|
<package name="fonts-config"/>
|
||||||
|
<package name="openssh"/>
|
||||||
|
<package name="iproute2"/>
|
||||||
|
<package name="which"/>
|
||||||
|
<package name="kernel-firmware"/>
|
||||||
|
<package name="kernel-default"/>
|
||||||
|
<package name="NetworkManager"/>
|
||||||
|
<package name="nm-configurator"/>
|
||||||
|
<package name="timezone"/>
|
||||||
|
<package name="haveged"/>
|
||||||
|
<!-- ironic-python-agent specific -->
|
||||||
|
<package name="openstack-ironic-python-agent"/>
|
||||||
|
<package name="hdparm"/>
|
||||||
|
<package name="qemu-tools"/>
|
||||||
|
<package name="python311-proliantutils"/>
|
||||||
|
<package name="lshw"/>
|
||||||
|
<package name="dmidecode"/>
|
||||||
|
<package name="efibootmgr"/>
|
||||||
|
<package name="gptfdisk"/>
|
||||||
|
<package name="open-iscsi"/>
|
||||||
|
<package name="hwinfo"/>
|
||||||
|
<package name="ipmitool"/>
|
||||||
|
<package name="iputils"/>
|
||||||
|
<package name="lvm2"/>
|
||||||
|
<package name="net-tools"/>
|
||||||
|
<package name="ntp"/>
|
||||||
|
<package name="parted"/>
|
||||||
|
<package name="psmisc"/>
|
||||||
|
<package name="timezone"/>
|
||||||
|
<package name="which"/>
|
||||||
|
<package name="kbd"/>
|
||||||
|
</packages>
|
||||||
|
|
||||||
|
<packages type="kis">
|
||||||
|
<package name="dracut-kiwi-oem-repart"/>
|
||||||
|
<package name="dracut-kiwi-oem-dump"/>
|
||||||
|
</packages>
|
||||||
|
|
||||||
<packages type="bootstrap">
|
<packages type="bootstrap">
|
||||||
<package name="glibc-locale"/>
|
<package name="glibc-locale"/>
|
||||||
<package name="udev"/>
|
<package name="udev"/>
|
||||||
@@ -129,50 +167,5 @@
|
|||||||
<package name="cracklib-dict-full"/>
|
<package name="cracklib-dict-full"/>
|
||||||
<package name="ca-certificates"/>
|
<package name="ca-certificates"/>
|
||||||
<package name="sles-release"/>
|
<package name="sles-release"/>
|
||||||
|
|
||||||
<package name="checkmedia"/>
|
|
||||||
<package name="fontconfig"/>
|
|
||||||
<package name="fonts-config"/>
|
|
||||||
<package name="grub2-arm64-efi" arch="aarch64"/>
|
|
||||||
<package name="grub2-branding-SLE"/>
|
|
||||||
<package name="grub2-i386-pc" arch="x86_64"/>
|
|
||||||
<package name="grub2-x86_64-efi" arch="x86_64"/>
|
|
||||||
<package name="grub2"/>
|
|
||||||
<package name="iproute2"/>
|
|
||||||
<package name="iputils"/>
|
|
||||||
<package name="kernel-default"/>
|
|
||||||
<package name="kernel-firmware-all"/>
|
|
||||||
<package name="lvm2"/>
|
|
||||||
<package name="NetworkManager"/>
|
|
||||||
<package name="nm-configurator"/>
|
|
||||||
<package name="openssh"/>
|
|
||||||
<package name="timezone"/>
|
|
||||||
<package name="which"/>
|
|
||||||
<!-- ironic-python-agent specific -->
|
|
||||||
<package name="dmidecode"/>
|
|
||||||
<package name="efibootmgr"/>
|
|
||||||
<package name="gptfdisk"/>
|
|
||||||
<package name="hdparm"/>
|
|
||||||
<package name="hwinfo"/>
|
|
||||||
<package name="ipmitool"/>
|
|
||||||
<package name="iputils"/>
|
|
||||||
<package name="kbd"/>
|
|
||||||
<package name="lshw"/>
|
|
||||||
<package name="lvm2"/>
|
|
||||||
<package name="net-tools"/>
|
|
||||||
<package name="ntp"/>
|
|
||||||
<package name="open-iscsi"/>
|
|
||||||
<package name="openstack-ironic-python-agent"/>
|
|
||||||
<package name="parted"/>
|
|
||||||
<package name="psmisc"/>
|
|
||||||
<package name="python311-proliantutils"/>
|
|
||||||
<package name="qemu-tools"/>
|
|
||||||
<package name="timezone"/>
|
|
||||||
<package name="which"/>
|
|
||||||
</packages>
|
</packages>
|
||||||
|
|
||||||
<packages type="kis">
|
|
||||||
<package name="dracut-kiwi-oem-repart"/>
|
|
||||||
<package name="dracut-kiwi-oem-dump"/>
|
|
||||||
</packages>
|
|
||||||
</image>
|
</image>
|
||||||
|
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: ironic-ipa-ramdisk
|
Name: ironic-ipa-ramdisk
|
||||||
Version: 3.0.7
|
Version: 3.0.3
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Kernel and ramdisk image for OpenStack Ironic
|
Summary: Kernel and ramdisk image for OpenStack Ironic
|
||||||
License: SUSE-EULA
|
License: SUSE-EULA
|
||||||
@@ -27,7 +27,7 @@ Group: System/Management
|
|||||||
URL: https://github.com/SUSE-Cloud/
|
URL: https://github.com/SUSE-Cloud/
|
||||||
Source0: config.sh
|
Source0: config.sh
|
||||||
Source10: ironic-ipa-ramdisk.kiwi
|
Source10: ironic-ipa-ramdisk.kiwi
|
||||||
Source20: root
|
Source20: root.tar.bz2
|
||||||
|
|
||||||
BuildRequires: -post-build-checks
|
BuildRequires: -post-build-checks
|
||||||
BuildRequires: bash
|
BuildRequires: bash
|
||||||
@@ -38,7 +38,7 @@ BuildArch: noarch
|
|||||||
|
|
||||||
BuildRequires: checkmedia
|
BuildRequires: checkmedia
|
||||||
BuildRequires: acl
|
BuildRequires: acl
|
||||||
BuildRequires: ca-certificates-mozilla-prebuilt
|
BuildRequires: ca-certificates
|
||||||
BuildRequires: cracklib-dict-full
|
BuildRequires: cracklib-dict-full
|
||||||
BuildRequires: cron
|
BuildRequires: cron
|
||||||
BuildRequires: dbus-1
|
BuildRequires: dbus-1
|
||||||
@@ -62,7 +62,7 @@ BuildRequires: ipmitool
|
|||||||
BuildRequires: iproute2
|
BuildRequires: iproute2
|
||||||
BuildRequires: iputils
|
BuildRequires: iputils
|
||||||
BuildRequires: kernel-default
|
BuildRequires: kernel-default
|
||||||
BuildRequires: kernel-firmware-all
|
BuildRequires: kernel-firmware
|
||||||
BuildRequires: lvm2
|
BuildRequires: lvm2
|
||||||
BuildRequires: net-tools
|
BuildRequires: net-tools
|
||||||
BuildRequires: ntp
|
BuildRequires: ntp
|
||||||
@@ -123,13 +123,13 @@ Kernel and ramdisk image for use with Metal3
|
|||||||
For %{_arch}
|
For %{_arch}
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
mkdir -p /tmp/openstack-ironic-image/build /tmp/openstack-ironic-image/img
|
mkdir -p /tmp/openstack-ironic-image/build /tmp/openstack-ironic-image/root /tmp/openstack-ironic-image/img
|
||||||
|
|
||||||
cp -a %{SOURCE0} /tmp/openstack-ironic-image/config.sh
|
cp -a %{SOURCE0} /tmp/openstack-ironic-image/config.sh
|
||||||
|
|
||||||
cp -a %{SOURCE10} /tmp/openstack-ironic-image/config.kiwi
|
cp -a %{SOURCE10} /tmp/openstack-ironic-image/config.kiwi
|
||||||
|
|
||||||
cp -ar %{SOURCE20} /tmp/openstack-ironic-image/root
|
tar -xC /tmp/openstack-ironic-image/root -f %{SOURCE20}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
if ! which kiwi; then
|
if ! which kiwi; then
|
||||||
|
BIN
ironic-ipa-ramdisk/root.tar.bz2
(Stored with Git LFS)
Normal file
BIN
ironic-ipa-ramdisk/root.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -1,24 +0,0 @@
|
|||||||
# WARNING: This file has been modified by the diskimage-builder
|
|
||||||
# dhcp-all-interfaces element as this machine is likely running
|
|
||||||
# a ramdisk or needs to attempt auto-configuration on all interfaces.
|
|
||||||
[main]
|
|
||||||
# This makes sense even with dhcp on all interfaces in the event
|
|
||||||
# that the configuration has been or is being supplied via external means.
|
|
||||||
ignore-carrier=*
|
|
||||||
# Use dhclient as was done previously to the Centos8/RHEL8 RPM defaults.
|
|
||||||
# This is because dhclient shuts the interface down after a retry attempt
|
|
||||||
# which allows the link state to reset with some switches, which may be
|
|
||||||
# important for the ramdisk to recover networking.
|
|
||||||
dhcp=dhclient
|
|
||||||
|
|
||||||
[connection]
|
|
||||||
# Keep retrying, this is important for this important espescialy for
|
|
||||||
# ramdisks in environments where varying switch configurations may
|
|
||||||
# cause traffic to be blocked or intermittent connectivity failures
|
|
||||||
# such as those at an edge site may cause issues.
|
|
||||||
autoconnect-retries=-1
|
|
||||||
# Set the timeout. Diskimage-builder dhcp-all-interfaces has a 30
|
|
||||||
# second default. NetworkManager, by default, is 45 seconds.
|
|
||||||
# In some cases where ramdisks are in use, 60 seconds is advisable.
|
|
||||||
ipv4.dhcp-timeout=30
|
|
||||||
ipv6.dhcp-timeout=30
|
|
@@ -1 +0,0 @@
|
|||||||
ironic-python-agent/ironic-python-agent.conf.d
|
|
@@ -1 +0,0 @@
|
|||||||
SUSE Ironic Python Agent Ramdisk - terminal \l
|
|
@@ -1,2 +0,0 @@
|
|||||||
# avoid problems with multiple network interfaces
|
|
||||||
net.ipv4.conf.all.rp_filter=0
|
|
@@ -1,7 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
#WantsMountsFor=/mnt/ipa
|
|
||||||
After=mnt-ipa.mount
|
|
||||||
Wants=mnt-ipa.mount
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStartPre=-/usr/local/bin/suse-network-setup.sh
|
|
@@ -1,7 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=config-2 rom consumed by IPA for networking configuration
|
|
||||||
|
|
||||||
[Mount]
|
|
||||||
What=/dev/ipa
|
|
||||||
Where=/mnt/ipa
|
|
||||||
TimeoutSec=30
|
|
@@ -1,12 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Setup ironic-python-agent image
|
|
||||||
After=getty.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
ExecStart=/usr/local/bin/suse-ironic-image-setup.sh
|
|
||||||
StandardOutput=journal+console
|
|
||||||
RemainAfterExit=true
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
@@ -1,3 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Before=local-fs.target
|
|
||||||
WantedBy=local-fs.target
|
|
@@ -1 +0,0 @@
|
|||||||
ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_FS_LABEL}=="config-2", ENV{ID_FS_PUBLISHER_ID}=="?*", PROGRAM="/usr/local/bin/suse-test-config-2.sh", SYMLINK+="ipa"
|
|
@@ -1,52 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
PARAMS=$(</proc/cmdline)
|
|
||||||
# find vfloppy device (based on IPA code)
|
|
||||||
VMEDIA_DEVICE=$(find /dev/disk/by-label -iname ir-vfd-dev)
|
|
||||||
# read params from vmedia and prepend them to params from kernel cmdline
|
|
||||||
if [[ -b "$VMEDIA_DEVICE" ]]; then
|
|
||||||
VMEDIA_MOUNT=$(mktemp -d)
|
|
||||||
if mount -o loop $VMEDIA_DEVICE $VMEDIA_MOUNT; then
|
|
||||||
# parameters.txt has one param per line, reformat to match cmdline
|
|
||||||
VMEDIA_PARAMS=$(cat $VMEDIA_MOUNT/parameters.txt | tr '\n' ' ')
|
|
||||||
umount $VMEDIA_MOUNT
|
|
||||||
PARAMS="$VMEDIA_PARAMS $PARAMS"
|
|
||||||
fi
|
|
||||||
rmdir $VMEDIA_MOUNT
|
|
||||||
fi
|
|
||||||
|
|
||||||
# resize /tmp
|
|
||||||
if [[ $PARAMS =~ suse.tmpsize=([^ ]+) ]]; then
|
|
||||||
echo "Resizing /tmp to ${BASH_REMATCH[1]}..."
|
|
||||||
mount -o remount,size=${BASH_REMATCH[1]} /tmp
|
|
||||||
fi
|
|
||||||
# deploy authorized sshkey from kernel command line
|
|
||||||
if [[ $PARAMS =~ sshkey=\"([^\"]+)\" ]]; then
|
|
||||||
echo "Adding authorized SSH key..."
|
|
||||||
(umask 077 ; mkdir -p /root/.ssh)
|
|
||||||
echo "${BASH_REMATCH[1]}" >> /root/.ssh/authorized_keys
|
|
||||||
fi
|
|
||||||
# Inject certs
|
|
||||||
if [[ $PARAMS =~ tls.enabled=(true|True) ]]; then
|
|
||||||
cp /etc/ironic-python-agent.d/ca-certs/* /etc/pki/trust/anchors/
|
|
||||||
cp /etc/ironic-python-agent.d/ca-certs/* /usr/share/pki/trust/anchors/
|
|
||||||
update-ca-certificates
|
|
||||||
fi
|
|
||||||
# autologin root on given console (default tty1) if suse.autologin or coreos.autologin is enabled
|
|
||||||
if [[ $PARAMS =~ (suse|coreos)\.autologin=?([^ ]*) ]]; then
|
|
||||||
tty="${BASH_REMATCH[2]:-tty1}"
|
|
||||||
echo "Enabling autologin on $tty..."
|
|
||||||
systemctl stop getty@$tty
|
|
||||||
systemctl disable getty@$tty
|
|
||||||
systemctl start autologin@$tty
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Append to /etc/hosts
|
|
||||||
# hosts.append=1.2.3.4_foo,4.5.6.7_foo2
|
|
||||||
if [[ $PARAMS =~ hosts.append=([^ ]+) ]]; then
|
|
||||||
HOSTS=${BASH_REMATCH[1]}
|
|
||||||
echo "Appending to hosts ${HOSTS}..."
|
|
||||||
for h in ${HOSTS/,/ }; do
|
|
||||||
echo "${h/_/ }" >> /etc/hosts
|
|
||||||
done
|
|
||||||
cat /etc/hosts
|
|
||||||
fi
|
|
@@ -1,24 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Inspired by/based on glean-early.sh
|
|
||||||
# https://opendev.org/opendev/glean/src/branch/master/glean/init/glean-early.sh
|
|
||||||
|
|
||||||
# NOTE(TheJulia): We care about iso images, and would expect lower case as a
|
|
||||||
# result. In the case of VFAT partitions, they would be upper case.
|
|
||||||
|
|
||||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
|
||||||
NETWORK_DATA_FILE="/mnt/ipa/openstack/latest/network_data.json"
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -f "${NETWORK_DATA_FILE}" ]; then
|
|
||||||
echo "No network_data.json found, skipping network configuration"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p /tmp/nmc/{desired,generated}
|
|
||||||
cp ${NETWORK_DATA_FILE} /tmp/nmc/desired/_all.yaml
|
|
||||||
|
|
||||||
nmc generate --config-dir /tmp/nmc/desired --output-dir /tmp/nmc/generated
|
|
||||||
nmc apply --config-dir /tmp/nmc/generated
|
|
@@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
|
||||||
|
|
||||||
# Transform the ID from the drive being considered to lower case
|
|
||||||
device_publisher_id=$(echo ${ID_FS_PUBLISHER_ID} | tr '[A-Z]' '[a-z]')
|
|
||||||
|
|
||||||
# Retrieve the publisher ID from the command line and convert to lower case
|
|
||||||
cmdline_publisher_id=""
|
|
||||||
if grep -q "ir_pub_id" /proc/cmdline; then
|
|
||||||
cmdline_publisher_id=$(cat /proc/cmdline | sed -e 's/^.*ir_pub_id=//' -e 's/ .*$//')
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Is this the filesystem we are looking for?
|
|
||||||
if [[ "${cmdline_publisher_id}" == "${device_publisher_id}" ]]; then
|
|
||||||
# It is the device we are looking for, return success
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
# Not a match, return failure
|
|
||||||
exit 1
|
|
||||||
fi
|
|
@@ -1,7 +1,6 @@
|
|||||||
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.2.12.0-%RELEASE%
|
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.0-%RELEASE%
|
||||||
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.2.12.0
|
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.0
|
||||||
|
|
||||||
# Base image version, should match the tag above
|
|
||||||
ARG KIWIVERSION="10.2.12"
|
ARG KIWIVERSION="10.2.12"
|
||||||
FROM registry.suse.com/bci/kiwi:${KIWIVERSION}
|
FROM registry.suse.com/bci/kiwi:${KIWIVERSION}
|
||||||
ARG KIWIVERSION
|
ARG KIWIVERSION
|
||||||
@@ -11,11 +10,11 @@ ARG KIWIVERSION
|
|||||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
LABEL org.opencontainers.image.title="SLE Kiwi Builder Container Image"
|
LABEL org.opencontainers.image.title="SLE Kiwi Builder Container Image"
|
||||||
LABEL org.opencontainers.image.description="kiwi-builder based on the SLE Base Container Image."
|
LABEL org.opencontainers.image.description="kiwi-builder based on the SLE Base Container Image."
|
||||||
LABEL org.opencontainers.image.version="${KIWIVERSION}"
|
LABEL org.opencontainers.image.version="%%kiwi_version%%"
|
||||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
||||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:${KIWIVERSION}.0-%RELEASE%"
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.0-%RELEASE%"
|
||||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
@@ -24,6 +23,9 @@ LABEL com.suse.image-type="application"
|
|||||||
LABEL com.suse.release-stage="released"
|
LABEL com.suse.release-stage="released"
|
||||||
# endlabelprefix
|
# endlabelprefix
|
||||||
|
|
||||||
|
# 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
|
# Copy build script into image and make it executable
|
||||||
ADD build-image.sh /usr/bin/build-image
|
ADD build-image.sh /usr/bin/build-image
|
||||||
RUN chmod a+x /usr/bin/build-image
|
RUN chmod a+x /usr/bin/build-image
|
||||||
|
@@ -2,8 +2,14 @@
|
|||||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||||
<service name="docker_label_helper" mode="buildtime"/>
|
<service name="docker_label_helper" mode="buildtime"/>
|
||||||
<service name="replace_using_env" mode="buildtime">
|
<service name="replace_using_env" mode="buildtime">
|
||||||
<param name="file">Dockerfile</param>
|
|
||||||
<param name="file">README</param>
|
<param name="file">README</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</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="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
<param name="var">IMG_PREFIX</param>
|
<param name="var">IMG_PREFIX</param>
|
||||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
@@ -11,4 +17,14 @@
|
|||||||
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||||
<param name="var">SUPPORT_LEVEL</param>
|
<param name="var">SUPPORT_LEVEL</param>
|
||||||
</service>
|
</service>
|
||||||
|
<service mode="buildtime" name="replace_using_package_version">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%%kiwi_version%%</param>
|
||||||
|
<param name="package">python3-kiwi</param>
|
||||||
|
</service>
|
||||||
|
<service mode="buildtime" name="replace_using_package_version">
|
||||||
|
<param name="file">README</param>
|
||||||
|
<param name="regex">%%kiwi_version%%</param>
|
||||||
|
<param name="package">python3-kiwi</param>
|
||||||
|
</service>
|
||||||
</services>
|
</services>
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#!BuildTag: %%IMG_PREFIX%%kubectl:1.32.4
|
#!BuildTag: %%IMG_PREFIX%%kubectl:1.30.3
|
||||||
#!BuildTag: %%IMG_PREFIX%%kubectl:1.32.4-%RELEASE%
|
#!BuildTag: %%IMG_PREFIX%%kubectl:1.30.3-%RELEASE%
|
||||||
#!BuildVersion: 15.6
|
#!BuildVersion: 15.6
|
||||||
ARG SLE_VERSION
|
ARG SLE_VERSION
|
||||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
@@ -16,11 +16,11 @@ FROM micro AS final
|
|||||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
LABEL org.opencontainers.image.title="SLE kubectl image"
|
LABEL org.opencontainers.image.title="SLE kubectl image"
|
||||||
LABEL org.opencontainers.image.description="kubectl on the SLE Base Container Image."
|
LABEL org.opencontainers.image.description="kubectl on the SLE Base Container Image."
|
||||||
LABEL org.opencontainers.image.version="1.32.4"
|
LABEL org.opencontainers.image.version="1.30.3"
|
||||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
||||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kubectl:1.32.4-%RELEASE%"
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kubectl:1.30.3-%RELEASE%"
|
||||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
%global debug_package %{nil}
|
%global debug_package %{nil}
|
||||||
|
|
||||||
Name: kubectl
|
Name: kubectl
|
||||||
Version: 1.32.4
|
Version: 1.30.3
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Command-line utility for interacting with a Kubernetes cluster
|
Summary: Command-line utility for interacting with a Kubernetes cluster
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ Group: admin
|
|||||||
Packager: Kubernetes Authors <dev@kubernetes.io>
|
Packager: Kubernetes Authors <dev@kubernetes.io>
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
URL: https://kubernetes.io
|
URL: https://kubernetes.io
|
||||||
Source0: %{name}_%{version}.orig.tar.gz
|
Source0: kubectl_%{version}.orig.tar.gz
|
||||||
|
|
||||||
%description
|
%description
|
||||||
%{summary}.
|
%{summary}.
|
||||||
|
BIN
kubectl/kubectl_1.30.3.orig.tar.gz
(Stored with Git LFS)
Normal file
BIN
kubectl/kubectl_1.30.3.orig.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
kubectl/kubectl_1.32.4.orig.tar.gz
(Stored with Git LFS)
BIN
kubectl/kubectl_1.32.4.orig.tar.gz
(Stored with Git LFS)
Binary file not shown.
@@ -1,5 +1,6 @@
|
|||||||
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.2_up1.3.2
|
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.1
|
||||||
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.2_up1.3.2-%RELEASE%
|
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.1
|
||||||
|
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.1-%RELEASE%
|
||||||
annotations:
|
annotations:
|
||||||
catalog.cattle.io/certified: rancher
|
catalog.cattle.io/certified: rancher
|
||||||
catalog.cattle.io/namespace: cattle-ui-plugin-system
|
catalog.cattle.io/namespace: cattle-ui-plugin-system
|
||||||
@@ -9,13 +10,13 @@ annotations:
|
|||||||
catalog.cattle.io/ui-component: plugins
|
catalog.cattle.io/ui-component: plugins
|
||||||
catalog.cattle.io/display-name: KubeVirt
|
catalog.cattle.io/display-name: KubeVirt
|
||||||
catalog.cattle.io/rancher-version: '>= 2.11.0-0'
|
catalog.cattle.io/rancher-version: '>= 2.11.0-0'
|
||||||
catalog.cattle.io/ui-extensions-version: '>= 3.0.2 < 4.0.0'
|
catalog.cattle.io/ui-extensions-version: '>= 3.0.4 < 4.0.0'
|
||||||
catalog.cattle.io/kube-version: '>= v1.26.0-0'
|
catalog.cattle.io/kube-version: '>= v1.26.0-0'
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: 303.0.2+up1.3.2
|
appVersion: 303.0.1+up1.3.1
|
||||||
description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard'
|
description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard'
|
||||||
name: kubevirt-dashboard-extension
|
name: kubevirt-dashboard-extension
|
||||||
type: application
|
type: application
|
||||||
version: "%%CHART_MAJOR%%.0.2+up1.3.2"
|
version: "%%CHART_MAJOR%%.0.1+up1.3.1"
|
||||||
icon: >-
|
icon: >-
|
||||||
https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg
|
https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg
|
||||||
|
@@ -8,7 +8,7 @@ spec:
|
|||||||
plugin:
|
plugin:
|
||||||
name: {{ include "extension-server.fullname" . }}
|
name: {{ include "extension-server.fullname" . }}
|
||||||
version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }}
|
version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }}
|
||||||
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/303.0.2+up1.3.2
|
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/303.0.1+up1.3.1
|
||||||
noCache: {{ .Values.plugin.noCache }}
|
noCache: {{ .Values.plugin.noCache }}
|
||||||
noAuth: {{ .Values.plugin.noAuth }}
|
noAuth: {{ .Values.plugin.noAuth }}
|
||||||
metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
|
metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
|
||||||
|
@@ -8,5 +8,5 @@ plugin:
|
|||||||
metadata:
|
metadata:
|
||||||
catalog.cattle.io/display-name: KubeVirt
|
catalog.cattle.io/display-name: KubeVirt
|
||||||
catalog.cattle.io/rancher-version: ">= 2.11.0-0"
|
catalog.cattle.io/rancher-version: ">= 2.11.0-0"
|
||||||
catalog.cattle.io/ui-extensions-version: ">= 3.0.2 < 4.0.0"
|
catalog.cattle.io/ui-extensions-version: ">= 3.0.4 < 4.0.0"
|
||||||
catalog.cattle.io/kube-version: ">= v1.26.0-0"
|
catalog.cattle.io/kube-version: ">= v1.26.0-0"
|
||||||
|
@@ -1,28 +1,28 @@
|
|||||||
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.8_up0.11.6
|
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.2_up0.11.0
|
||||||
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.8_up0.11.6-%RELEASE%
|
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.2_up0.11.0-%RELEASE%
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: 0.11.6
|
appVersion: 0.11.0
|
||||||
dependencies:
|
dependencies:
|
||||||
- alias: metal3-baremetal-operator
|
- alias: metal3-baremetal-operator
|
||||||
name: baremetal-operator
|
name: baremetal-operator
|
||||||
repository: file://./charts/baremetal-operator
|
repository: file://./charts/baremetal-operator
|
||||||
version: 0.9.2
|
version: 0.9.1
|
||||||
- alias: metal3-ironic
|
- alias: metal3-ironic
|
||||||
name: ironic
|
name: ironic
|
||||||
repository: file://./charts/ironic
|
repository: file://./charts/ironic
|
||||||
version: 0.10.5
|
version: 0.10.0
|
||||||
- alias: metal3-mariadb
|
- alias: metal3-mariadb
|
||||||
condition: global.enable_mariadb
|
condition: global.enable_mariadb
|
||||||
name: mariadb
|
name: mariadb
|
||||||
repository: file://./charts/mariadb
|
repository: file://./charts/mariadb
|
||||||
version: 0.6.0
|
version: 0.5.4
|
||||||
- alias: metal3-media
|
- alias: metal3-media
|
||||||
condition: global.enable_metal3_media_server
|
condition: global.enable_metal3_media_server
|
||||||
name: media
|
name: media
|
||||||
repository: file://./charts/media
|
repository: file://./charts/media
|
||||||
version: 0.6.2
|
version: 0.6.1
|
||||||
description: A Helm chart that installs all of the dependencies needed for Metal3
|
description: A Helm chart that installs all of the dependencies needed for Metal3
|
||||||
icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg
|
icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg
|
||||||
name: metal3
|
name: metal3
|
||||||
type: application
|
type: application
|
||||||
version: "%%CHART_MAJOR%%.0.8+up0.11.6"
|
version: "%%CHART_MAJOR%%.0.2+up0.11.0"
|
||||||
|
@@ -3,4 +3,4 @@ appVersion: 0.9.1
|
|||||||
description: A Helm chart for baremetal-operator, used by Metal3
|
description: A Helm chart for baremetal-operator, used by Metal3
|
||||||
name: baremetal-operator
|
name: baremetal-operator
|
||||||
type: application
|
type: application
|
||||||
version: 0.9.2
|
version: 0.9.1
|
||||||
|
@@ -10,25 +10,18 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
data:
|
data:
|
||||||
IRONIC_ENDPOINT: "{{ $protocol }}://{{ $ironicApiHost }}/v1/"
|
IRONIC_ENDPOINT: "{{ $protocol }}://{{ $ironicApiHost }}/v1/"
|
||||||
|
RESTART_CONTAINER_CERTIFICATE_UPDATED: "false"
|
||||||
# Switch VMedia to HTTP if enable_vmedia_tls is false
|
# Switch VMedia to HTTP if enable_vmedia_tls is false
|
||||||
{{- if and $enableTLS $enableVMediaTLS }}
|
{{- if and $enableTLS $enableVMediaTLS }}
|
||||||
{{- $ironicBootHost = print $ironicIP ":" .Values.global.vmediaTLSPort }}
|
{{- $ironicBootHost = print $ironicIP ":" .Values.global.vmediaTLSPort }}
|
||||||
{{- $ironicCacheHost = print $ironicIP ":" .Values.global.vmediaTLSPort }}
|
{{- $ironicCacheHost = print $ironicIP ":" .Values.global.vmediaTLSPort }}
|
||||||
{{- $protocol = "https" }}
|
{{- $protocol = "https" }}
|
||||||
RESTART_CONTAINER_CERTIFICATE_UPDATED: "true"
|
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- $protocol = "http" }}
|
{{- $protocol = "http" }}
|
||||||
RESTART_CONTAINER_CERTIFICATE_UPDATED: "false"
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
CACHEURL: "{{ $protocol }}://{{ $ironicCacheHost }}/images"
|
CACHEURL: "{{ $protocol }}://{{ $ironicCacheHost }}/images"
|
||||||
DEPLOY_KERNEL_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.kernel"
|
DEPLOY_KERNEL_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.kernel"
|
||||||
DEPLOY_RAMDISK_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.initramfs"
|
DEPLOY_RAMDISK_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.initramfs"
|
||||||
DEPLOY_KERNEL_URL_X86_64: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-x86_64.kernel"
|
|
||||||
DEPLOY_RAMDISK_URL_X86_64: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-x86_64.initramfs"
|
|
||||||
DEPLOY_BOOTLOADER_URL_X86_64: "{{ $protocol }}://{{ $ironicBootHost }}/uefi_esp-x86_64.img"
|
|
||||||
DEPLOY_KERNEL_URL_AARCH64: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-arm64.kernel"
|
|
||||||
DEPLOY_RAMDISK_URL_AARCH64: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-arm64.initramfs"
|
|
||||||
DEPLOY_BOOTLOADER_URL_AARCH64: "{{ $protocol }}://{{ $ironicBootHost }}/uefi_esp-arm64.img"
|
|
||||||
DEPLOY_ARCHITECTURE: "{{ $deployArch }}"
|
DEPLOY_ARCHITECTURE: "{{ $deployArch }}"
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
metadata:
|
metadata:
|
||||||
|
@@ -0,0 +1,19 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
controller_manager_config.yaml: |
|
||||||
|
apiVersion: controller-runtime.sigs.k8s.io/v1alpha1
|
||||||
|
kind: ControllerManagerConfig
|
||||||
|
health:
|
||||||
|
healthProbeBindAddress: :9440
|
||||||
|
metrics:
|
||||||
|
bindAddress: 127.0.0.1:8085
|
||||||
|
webhook:
|
||||||
|
port: 9443
|
||||||
|
leaderElection:
|
||||||
|
leaderElect: true
|
||||||
|
resourceName: a9498140.metal3.io
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: baremetal-operator-manager-config
|
||||||
|
labels:
|
||||||
|
{{- include "baremetal-operator.labels" . | nindent 4 }}
|
@@ -17,8 +17,6 @@ spec:
|
|||||||
control-plane: controller-manager
|
control-plane: controller-manager
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
|
||||||
checksum/config-env: {{ include (print $.Template.BasePath "/configmap-ironic.yaml") . | sha256sum }}
|
|
||||||
labels:
|
labels:
|
||||||
{{- include "baremetal-operator.selectorLabels" . | nindent 8 }}
|
{{- include "baremetal-operator.selectorLabels" . | nindent 8 }}
|
||||||
control-plane: controller-manager
|
control-plane: controller-manager
|
||||||
|
@@ -22,13 +22,15 @@ global:
|
|||||||
# Comment this out when pinning the baremetal-operator container to a specfic host.
|
# Comment this out when pinning the baremetal-operator container to a specfic host.
|
||||||
nodeSelector: {}
|
nodeSelector: {}
|
||||||
|
|
||||||
|
enable_tls: false
|
||||||
|
|
||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
|
|
||||||
images:
|
images:
|
||||||
baremetalOperator:
|
baremetalOperator:
|
||||||
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/baremetal-operator
|
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/baremetal-operator
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
tag: "0.10.2.0"
|
tag: "0.9.1"
|
||||||
|
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
nameOverride: "manger"
|
nameOverride: "manger"
|
||||||
|
@@ -3,4 +3,4 @@ appVersion: 26.1.2
|
|||||||
description: A Helm chart for Ironic, used by Metal3
|
description: A Helm chart for Ironic, used by Metal3
|
||||||
name: ironic
|
name: ironic
|
||||||
type: application
|
type: application
|
||||||
version: 0.10.5
|
version: 0.10.0
|
||||||
|
@@ -14,11 +14,10 @@ spec:
|
|||||||
type: Recreate
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
|
{{- with .Values.podAnnotations }}
|
||||||
annotations:
|
annotations:
|
||||||
checksum/config-env: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- with .Values.podAnnotations }}
|
{{- end }}
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
labels:
|
||||||
{{- include "ironic.selectorLabels" . | nindent 8 }}
|
{{- include "ironic.selectorLabels" . | nindent 8 }}
|
||||||
spec:
|
spec:
|
||||||
|
@@ -50,6 +50,8 @@ global:
|
|||||||
# Comment this out when pinning the pdns containers to a specfic host.
|
# Comment this out when pinning the pdns containers to a specfic host.
|
||||||
nodeSelector: {}
|
nodeSelector: {}
|
||||||
|
|
||||||
|
enable_tls: false
|
||||||
|
|
||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
|
|
||||||
images:
|
images:
|
||||||
@@ -60,7 +62,7 @@ images:
|
|||||||
ironicIPADownloader:
|
ironicIPADownloader:
|
||||||
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader
|
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
tag: 3.0.7
|
tag: 3.0.3
|
||||||
|
|
||||||
nameOverride: ""
|
nameOverride: ""
|
||||||
fullnameOverride: ""
|
fullnameOverride: ""
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: "10.11"
|
appVersion: 10.6.7
|
||||||
description: A Helm chart for MariaDB, used by Metal3
|
description: A Helm chart for MariaDB, used by Metal3
|
||||||
name: mariadb
|
name: mariadb
|
||||||
type: application
|
type: application
|
||||||
version: 0.6.0
|
version: 0.5.4
|
||||||
|
@@ -1,13 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: mariadb-config
|
|
||||||
labels:
|
|
||||||
{{- include "mariadb.labels" . | nindent 4 }}
|
|
||||||
data:
|
|
||||||
ironic.conf: |
|
|
||||||
[mariadb]
|
|
||||||
max_connections 64
|
|
||||||
max_heap_table_size 1M
|
|
||||||
innodb_buffer_pool_size 5M
|
|
||||||
innodb_log_buffer_size 512K
|
|
@@ -5,7 +5,4 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
{{- include "mariadb.labels" . | nindent 4 }}
|
{{- include "mariadb.labels" . | nindent 4 }}
|
||||||
data:
|
data:
|
||||||
MARIADB_USER: ironic
|
RESTART_CONTAINER_CERTIFICATE_UPDATED: "false"
|
||||||
MARIADB_RANDOM_ROOT_PASSWORD: "yes"
|
|
||||||
MARIADB_DATABASE: ironic
|
|
||||||
MARIADB_AUTO_UPGRADE: "yes"
|
|
||||||
|
@@ -25,50 +25,23 @@ spec:
|
|||||||
serviceAccountName: {{ include "mariadb.serviceAccountName" . }}
|
serviceAccountName: {{ include "mariadb.serviceAccountName" . }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||||
initContainers:
|
|
||||||
# This would run during entrypoint if run as root
|
|
||||||
- name: set-volume-owners
|
|
||||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
|
||||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
|
||||||
securityContext:
|
|
||||||
runAsUser: 0
|
|
||||||
allowPrivilegeEscalation: true
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
add:
|
|
||||||
- CHOWN
|
|
||||||
- FOWNER
|
|
||||||
- DAC_OVERRIDE
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
volumeMounts:
|
|
||||||
- name: mariadb-conf
|
|
||||||
mountPath: /etc/mysql/conf.d
|
|
||||||
- name: mariadb-run
|
|
||||||
mountPath: /run/mysql
|
|
||||||
{{- $volmounts }}
|
|
||||||
command: ['bash', '-c', 'source /usr/local/bin/docker-entrypoint.sh && docker_create_db_directories']
|
|
||||||
env:
|
|
||||||
- name: DATADIR
|
|
||||||
value: /var/lib/mysql
|
|
||||||
- name: SOCKET
|
|
||||||
value: /run/mysql/mysql.sock
|
|
||||||
containers:
|
containers:
|
||||||
- name: mariadb
|
- name: mariadb
|
||||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: mariadb-cm
|
|
||||||
env:
|
env:
|
||||||
- name: MARIADB_PASSWORD
|
- name: MARIADB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: password
|
key: password
|
||||||
name: ironic-mariadb
|
name: ironic-mariadb
|
||||||
|
- name: RESTART_CONTAINER_CERTIFICATE_UPDATED
|
||||||
|
valueFrom:
|
||||||
|
configMapKeyRef:
|
||||||
|
name: mariadb-cm
|
||||||
|
key: RESTART_CONTAINER_CERTIFICATE_UPDATED
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
exec:
|
exec:
|
||||||
@@ -79,9 +52,9 @@ spec:
|
|||||||
livenessProbe:
|
livenessProbe:
|
||||||
exec:
|
exec:
|
||||||
command:
|
command:
|
||||||
- healthcheck.sh
|
- sh
|
||||||
- --connect
|
- -c
|
||||||
- --innodb_initialized
|
- mysqladmin status -uironic -p$(printenv MARIADB_PASSWORD)
|
||||||
failureThreshold: 10
|
failureThreshold: 10
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 30
|
periodSeconds: 30
|
||||||
@@ -94,29 +67,19 @@ spec:
|
|||||||
readinessProbe:
|
readinessProbe:
|
||||||
exec:
|
exec:
|
||||||
command:
|
command:
|
||||||
- healthcheck.sh
|
- sh
|
||||||
- --connect
|
- -c
|
||||||
- --innodb_initialized
|
- mysqladmin status -uironic -p$(printenv MARIADB_PASSWORD)
|
||||||
failureThreshold: 10
|
failureThreshold: 10
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 30
|
periodSeconds: 30
|
||||||
successThreshold: 1
|
successThreshold: 1
|
||||||
timeoutSeconds: 10
|
timeoutSeconds: 10
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: mariadb-conf
|
|
||||||
mountPath: /etc/mysql/conf.d
|
|
||||||
- name: mariadb-run
|
|
||||||
mountPath: /run/mysql
|
|
||||||
{{- $volmounts }}
|
{{- $volmounts }}
|
||||||
{{- with .Values.global.nodeSelector }}
|
{{- with .Values.global.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
volumes:
|
volumes:
|
||||||
- name: mariadb-conf
|
|
||||||
configMap:
|
|
||||||
name: mariadb-config
|
|
||||||
- name: mariadb-run
|
|
||||||
emptyDir:
|
|
||||||
sizeLimit: 20Mi
|
|
||||||
{{- $volumes }}
|
{{- $volumes }}
|
||||||
|
@@ -12,9 +12,9 @@ service:
|
|||||||
targetPort: 3306
|
targetPort: 3306
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: registry.suse.com/suse/mariadb
|
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/suse/mariadb
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
tag: 10.11
|
tag: 10.6.15.1
|
||||||
|
|
||||||
nameOverride: ""
|
nameOverride: ""
|
||||||
fullnameOverride: ""
|
fullnameOverride: ""
|
||||||
@@ -31,8 +31,8 @@ serviceAccount:
|
|||||||
podAnnotations: {}
|
podAnnotations: {}
|
||||||
|
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
runAsUser: 60
|
runAsUser: 10060
|
||||||
fsGroup: 60
|
fsGroup: 10060
|
||||||
|
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -60,7 +60,6 @@ persistence:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: mariadb-data-volume
|
- name: mariadb-data-volume
|
||||||
mountPath: /var/lib/mysql
|
mountPath: /var/lib/mysql
|
||||||
subPath: data
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: mariadb-data-volume
|
- name: mariadb-data-volume
|
||||||
|
@@ -3,4 +3,4 @@ appVersion: 1.16.0
|
|||||||
description: A Helm chart for Media, used by Metal3
|
description: A Helm chart for Media, used by Metal3
|
||||||
name: media
|
name: media
|
||||||
type: application
|
type: application
|
||||||
version: 0.6.2
|
version: 0.6.1
|
||||||
|
@@ -24,7 +24,7 @@ replicaCount: 1
|
|||||||
image:
|
image:
|
||||||
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic
|
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
tag: 26.1.2.4
|
tag: 26.1.2.2
|
||||||
|
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
nameOverride: ""
|
nameOverride: ""
|
||||||
|
@@ -115,8 +115,8 @@ metal3-mariadb:
|
|||||||
persistence:
|
persistence:
|
||||||
storageClass: ""
|
storageClass: ""
|
||||||
image:
|
image:
|
||||||
repository: "registry.suse.com/suse/mariadb"
|
repository: "registry.suse.com/edge/mariadb"
|
||||||
tag: "10.11"
|
tag: "10.6.15.1"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Baremetal Operator
|
# Baremetal Operator
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
<param name="url">https://github.com/suse-edge/nm-configurator.git</param>
|
<param name="url">https://github.com/suse-edge/nm-configurator.git</param>
|
||||||
<param name="versionformat">@PARENT_TAG@</param>
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="revision">v0.3.3</param>
|
<param name="revision">v0.3.2</param>
|
||||||
<param name="match-tag">*</param>
|
<param name="match-tag">*</param>
|
||||||
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
|
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
|
||||||
<param name="versionrewrite-replacement">\1</param>
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
<servicedata>
|
<servicedata>
|
||||||
<service name="tar_scm">
|
<service name="tar_scm">
|
||||||
<param name="url">https://github.com/suse-edge/nm-configurator.git</param>
|
<param name="url">https://github.com/suse-edge/nm-configurator.git</param>
|
||||||
<param name="changesrevision">4563857d761c6d83e4013721f68ec4ac5828a1a7</param></service></servicedata>
|
<param name="changesrevision">747301ba15a28e758d1f06070dc7ff29a5e80242</param></service></servicedata>
|
BIN
nm-configurator/nm-configurator-0.3.2.obscpio
(Stored with Git LFS)
Normal file
BIN
nm-configurator/nm-configurator-0.3.2.obscpio
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
nm-configurator/nm-configurator-0.3.3.obscpio
(Stored with Git LFS)
BIN
nm-configurator/nm-configurator-0.3.3.obscpio
(Stored with Git LFS)
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
name: nm-configurator
|
name: nm-configurator
|
||||||
version: 0.3.3
|
version: 0.3.2
|
||||||
mtime: 1748341626
|
mtime: 1744218621
|
||||||
commit: 4563857d761c6d83e4013721f68ec4ac5828a1a7
|
commit: 747301ba15a28e758d1f06070dc7ff29a5e80242
|
||||||
|
BIN
nm-configurator/vendor.tar.xz
(Stored with Git LFS)
BIN
nm-configurator/vendor.tar.xz
(Stored with Git LFS)
Binary file not shown.
@@ -1,10 +1,10 @@
|
|||||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.4_up0.20.0
|
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.0_up0.17.0
|
||||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.4_up0.20.0-%RELEASE%
|
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.0_up0.17.0-%RELEASE%
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: 0.20.0
|
appVersion: 0.17.0
|
||||||
description: Rancher Turtles utility chart for airgap scenarios
|
description: Rancher Turtles utility chart for airgap scenarios
|
||||||
home: https://github.com/rancher/turtles/
|
home: https://github.com/rancher/turtles/
|
||||||
icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg
|
icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg
|
||||||
name: rancher-turtles-airgap-resources
|
name: rancher-turtles-airgap-resources
|
||||||
type: application
|
type: application
|
||||||
version: "%%CHART_MAJOR%%.0.4+up0.20.0"
|
version: "%%CHART_MAJOR%%.0.0+up0.17.0"
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||||
<service name="replace_using_env" mode="buildtime">
|
<service name="replace_using_env" mode="buildtime">
|
||||||
<param name="file">Chart.yaml</param>
|
<param name="file">Chart.yaml</param>
|
||||||
<param name="eval">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?chart_prefix})</param>
|
<param name="eval">CHART_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
<param name="var">CHART_PREFIX</param>
|
<param name="var">CHART_PREFIX</param>
|
||||||
<param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param>
|
<param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param>
|
||||||
<param name="var">CHART_MAJOR</param>
|
<param name="var">CHART_MAJOR</param>
|
||||||
|
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user