forked from suse-edge/Factory
Compare commits
17 Commits
remove-dup
...
devel
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
|
||||||
@@ -110,11 +109,6 @@ 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
|
||||||
|
|
||||||
@@ -129,8 +123,6 @@ BuildFlags: onlybuild:release-manifest-image
|
|||||||
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%%.1
|
#!BuildTag: %%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%
|
||||||
#!BuildTag: %%IMG_PREFIX%%baremetal-operator:%%baremetal-operator_version%%.1-%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,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"
|
||||||
|
@@ -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:
|
||||||
|
@@ -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:
|
||||||
|
@@ -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}
|
||||||
|
|
||||||
|
@@ -20,11 +20,11 @@ RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes
|
|||||||
|
|
||||||
#!ArchExclusiveLine: x86_64
|
#!ArchExclusiveLine: x86_64
|
||||||
RUN if [ "$(uname -m)" = "x86_64" ];then \
|
RUN if [ "$(uname -m)" = "x86_64" ];then \
|
||||||
zypper --installroot /installroot --non-interactive install --no-recommends syslinux python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python311-pyinotify python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic openstack-ironic-inspector-api; \
|
zypper --installroot /installroot --non-interactive install --no-recommends syslinux python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi inotify-tools ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic openstack-ironic-inspector-api; \
|
||||||
fi
|
fi
|
||||||
#!ArchExclusiveLine: aarch64
|
#!ArchExclusiveLine: aarch64
|
||||||
RUN if [ "$(uname -m)" = "aarch64" ];then \
|
RUN if [ "$(uname -m)" = "aarch64" ];then \
|
||||||
zypper --installroot /installroot --non-interactive install --no-recommends python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python311-pyinotify python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic openstack-ironic-inspector-api; \
|
zypper --installroot /installroot --non-interactive install --no-recommends python311-devel python311 python311-pip python-dracclient python311-sushy-oem-idrac python311-proliantutils python311-sushy python3-ironicclient git curl sles-release tar gzip vim gawk dnsmasq dosfstools apache2 apache2-mod_wsgi inotify-tools ipcalc ipmitool iproute2 procps qemu-tools sqlite3 util-linux xorriso tftp ipxe-bootimgs python311-sushy-tools crudini openstack-ironic openstack-ironic-inspector-api; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# DATABASE
|
# DATABASE
|
||||||
@@ -32,9 +32,7 @@ RUN mkdir -p /installroot/var/lib/ironic && \
|
|||||||
/installroot/usr/bin/sqlite3 /installroot/var/lib/ironic/ironic.sqlite "pragma journal_mode=wal" && \
|
/installroot/usr/bin/sqlite3 /installroot/var/lib/ironic/ironic.sqlite "pragma journal_mode=wal" && \
|
||||||
zypper --installroot /installroot --non-interactive remove sqlite3
|
zypper --installroot /installroot --non-interactive remove sqlite3
|
||||||
|
|
||||||
# build actual image
|
|
||||||
FROM micro AS final
|
FROM micro AS final
|
||||||
|
|
||||||
MAINTAINER SUSE LLC (https://www.suse.com/)
|
MAINTAINER SUSE LLC (https://www.suse.com/)
|
||||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
LABEL org.opencontainers.image.title="SLE Openstack Ironic Container Image"
|
LABEL org.opencontainers.image.title="SLE Openstack Ironic Container Image"
|
||||||
@@ -64,15 +62,14 @@ RUN echo 'alias mkisofs="xorriso -as mkisofs"' >> ~/.bashrc
|
|||||||
COPY mkisofs_wrapper /usr/bin/mkisofs
|
COPY mkisofs_wrapper /usr/bin/mkisofs
|
||||||
RUN set -euo pipefail; chmod +x /usr/bin/mkisofs
|
RUN set -euo pipefail; chmod +x /usr/bin/mkisofs
|
||||||
|
|
||||||
|
COPY auth-common.sh configure-ironic.sh ironic-common.sh rundnsmasq runhttpd runironic runlogwatch.sh tls-common.sh configure-nonroot.sh ironic-probe.j2 /bin/
|
||||||
|
RUN set -euo pipefail; chmod +x /bin/auth-common.sh; chmod +x /bin/configure-ironic.sh; chmod +x /bin/ironic-common.sh; chmod +x /bin/rundnsmasq; chmod +x /bin/runhttpd; chmod +x /bin/runironic; chmod +x /bin/runlogwatch.sh; chmod +x /bin/tls-common.sh; chmod +x /bin/configure-nonroot.sh;
|
||||||
RUN mkdir -p /tftpboot
|
RUN mkdir -p /tftpboot
|
||||||
RUN mkdir -p $GRUB_DIR
|
RUN mkdir -p $GRUB_DIR
|
||||||
|
|
||||||
COPY scripts/ /bin/
|
# No need to support the Legacy BIOS boot
|
||||||
COPY configure-nonroot.sh /bin/
|
#RUN cp /usr/share/syslinux/pxelinux.0 /tftpboot
|
||||||
RUN set -euo pipefail; chmod +x /bin/configure-ironic.sh /bin/rundnsmasq /bin/runhttpd /bin/runironic /bin/runlogwatch.sh /bin/configure-nonroot.sh
|
#RUN cp /usr/share/syslinux/chain.c32 /tftpboot/
|
||||||
|
|
||||||
COPY ironic-config/inspector.ipxe.j2 ironic-config/httpd-ironic-api.conf.j2 \
|
|
||||||
ironic-config/ipxe_config.template /tmp/
|
|
||||||
|
|
||||||
# IRONIC #
|
# IRONIC #
|
||||||
RUN cp /usr/share/ipxe/undionly.kpxe /tftpboot/undionly.kpxe
|
RUN cp /usr/share/ipxe/undionly.kpxe /tftpboot/undionly.kpxe
|
||||||
@@ -80,29 +77,31 @@ RUN cp /usr/share/ipxe/undionly.kpxe /tftpboot/undionly.kpxe
|
|||||||
RUN if [ "$(uname -m)" = "x86_64" ];then \
|
RUN if [ "$(uname -m)" = "x86_64" ];then \
|
||||||
cp /usr/share/ipxe/ipxe-x86_64.efi /tftpboot/ipxe.efi ;\
|
cp /usr/share/ipxe/ipxe-x86_64.efi /tftpboot/ipxe.efi ;\
|
||||||
fi
|
fi
|
||||||
#!ArchExclusiveLine: aarch64
|
#!ArchExclusiveLine: x86_64
|
||||||
RUN if [ "$(uname -m)" = "aarch64" ]; then\
|
RUN if [ "$(uname -m)" = "aarch64" ]; then\
|
||||||
cp /usr/share/ipxe/snp-arm64.efi /tftpboot/ipxe.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp-arm64.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp.efi ;\
|
cp /usr/share/ipxe/snp-arm64.efi /tftpboot/ipxe.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp-arm64.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp.efi ;\
|
||||||
fi
|
fi
|
||||||
|
|
||||||
COPY --from=base /tmp/esp-x86_64.img /tmp/uefi_esp-x86_64.img
|
COPY --from=base /tmp/esp-x86_64.img /tmp/uefi_esp-x86_64.img
|
||||||
COPY --from=base /tmp/esp-aarch64.img /tmp/uefi_esp-arm64.img
|
COPY --from=base /tmp/esp-aarch64.img /tmp/uefi_esp-arm64.img
|
||||||
|
|
||||||
COPY ironic-config/ironic.conf.j2 /etc/ironic/
|
COPY ironic.conf.j2 /etc/ironic/
|
||||||
COPY ironic-config/network-data-schema-empty.json /etc/ironic/
|
COPY inspector.ipxe.j2 httpd-ironic-api.conf.j2 ipxe_config.template /tmp/
|
||||||
|
COPY network-data-schema-empty.json /etc/ironic/
|
||||||
|
|
||||||
# DNSMASQ
|
# DNSMASQ
|
||||||
COPY ironic-config/dnsmasq.conf.j2 /etc/
|
COPY dnsmasq.conf.j2 /etc/
|
||||||
|
|
||||||
|
# Custom httpd config, removes all but the bare minimum needed modules
|
||||||
|
COPY httpd.conf.j2 /etc/httpd/conf/
|
||||||
|
COPY httpd-modules.conf /etc/httpd/conf.modules.d/
|
||||||
|
COPY apache2-vmedia.conf.j2 /etc/httpd-vmedia.conf.j2
|
||||||
|
COPY apache2-ipxe.conf.j2 /etc/httpd-ipxe.conf.j2
|
||||||
|
|
||||||
# Workaround
|
# Workaround
|
||||||
# Removing the 010-ironic.conf file that comes with the package
|
# Removing the 010-ironic.conf file that comes with the package
|
||||||
RUN rm /etc/ironic/ironic.conf.d/010-ironic.conf
|
RUN rm /etc/ironic/ironic.conf.d/010-ironic.conf
|
||||||
|
|
||||||
# Custom httpd config, removes all but the bare minimum needed modules
|
|
||||||
COPY ironic-config/httpd.conf.j2 /etc/httpd/conf/
|
|
||||||
COPY ironic-config/httpd-modules.conf /etc/httpd/conf.modules.d/
|
|
||||||
COPY ironic-config/apache2-vmedia.conf.j2 /etc/httpd-vmedia.conf.j2
|
|
||||||
COPY ironic-config/apache2-ipxe.conf.j2 /etc/httpd-ipxe.conf.j2
|
|
||||||
|
|
||||||
# configure non-root user and set relevant permissions
|
# configure non-root user and set relevant permissions
|
||||||
RUN configure-nonroot.sh && rm -f /bin/configure-nonroot.sh
|
RUN configure-nonroot.sh && \
|
||||||
|
rm -f /bin/configure-nonroot.sh
|
||||||
|
@@ -84,6 +84,7 @@ echo 'Options set from Environment variables'
|
|||||||
env | grep "^OS_" || true
|
env | grep "^OS_" || true
|
||||||
|
|
||||||
mkdir -p /shared/html
|
mkdir -p /shared/html
|
||||||
|
mkdir -p /shared/ironic_prometheus_exporter
|
||||||
|
|
||||||
configure_json_rpc_auth
|
configure_json_rpc_auth
|
||||||
|
|
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 %}
|
@@ -187,6 +187,11 @@ insecure = {{ env.IRONIC_INSECURE }}
|
|||||||
[nova]
|
[nova]
|
||||||
send_power_notifications = false
|
send_power_notifications = false
|
||||||
|
|
||||||
|
[oslo_messaging_notifications]
|
||||||
|
driver = prometheus_exporter
|
||||||
|
location = /shared/ironic_prometheus_exporter
|
||||||
|
transport_url = fake://
|
||||||
|
|
||||||
[pxe]
|
[pxe]
|
||||||
# NOTE(dtantsur): keep this value at least 3x lower than
|
# NOTE(dtantsur): keep this value at least 3x lower than
|
||||||
# [conductor]deploy_callback_timeout so that at least some retries happen.
|
# [conductor]deploy_callback_timeout so that at least some retries happen.
|
@@ -72,7 +72,7 @@ fi
|
|||||||
# Set up inotify to kill the container (restart) whenever cert files for ironic api change
|
# Set up inotify to kill the container (restart) whenever cert files for ironic api change
|
||||||
if [[ "$IRONIC_TLS_SETUP" == "true" ]] && [[ "${RESTART_CONTAINER_CERTIFICATE_UPDATED}" == "true" ]]; then
|
if [[ "$IRONIC_TLS_SETUP" == "true" ]] && [[ "${RESTART_CONTAINER_CERTIFICATE_UPDATED}" == "true" ]]; then
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
python3.11 -m pyinotify --raw-format -e IN_DELETE_SELF -v "${IRONIC_CERT_FILE}" | while read -r file event; do
|
inotifywait -m -e delete_self "${IRONIC_CERT_FILE}" | while read -r file event; do
|
||||||
kill -WINCH $(pgrep httpd)
|
kill -WINCH $(pgrep httpd)
|
||||||
done &
|
done &
|
||||||
fi
|
fi
|
||||||
@@ -80,7 +80,7 @@ fi
|
|||||||
# Set up inotify to kill the container (restart) whenever cert of httpd for /shared/html/<redifsh;ilo> path change
|
# Set up inotify to kill the container (restart) whenever cert of httpd for /shared/html/<redifsh;ilo> path change
|
||||||
if [[ "$IRONIC_VMEDIA_TLS_SETUP" == "true" ]] && [[ "${RESTART_CONTAINER_CERTIFICATE_UPDATED}" == "true" ]]; then
|
if [[ "$IRONIC_VMEDIA_TLS_SETUP" == "true" ]] && [[ "${RESTART_CONTAINER_CERTIFICATE_UPDATED}" == "true" ]]; then
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
python3.11 -m pyinotify --raw-format -e IN_DELETE_SELF -v "${IRONIC_VMEDIA_CERT_FILE}" | while read -r file event; do
|
inotifywait -m -e delete_self "${IRONIC_VMEDIA_CERT_FILE}" | while read -r file event; do
|
||||||
kill -WINCH $(pgrep httpd)
|
kill -WINCH $(pgrep httpd)
|
||||||
done &
|
done &
|
||||||
fi
|
fi
|
@@ -13,7 +13,7 @@ run_ironic_dbsync
|
|||||||
|
|
||||||
if [[ "$IRONIC_TLS_SETUP" == "true" ]] && [[ "${RESTART_CONTAINER_CERTIFICATE_UPDATED}" == "true" ]]; then
|
if [[ "$IRONIC_TLS_SETUP" == "true" ]] && [[ "${RESTART_CONTAINER_CERTIFICATE_UPDATED}" == "true" ]]; then
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
python3.11 -m pyinotify --raw-format -e IN_DELETE_SELF -v "${IRONIC_CERT_FILE}" | while read -r file event; do
|
inotifywait -m -e delete_self "${IRONIC_CERT_FILE}" | while read -r file event; do
|
||||||
kill $(pgrep ironic)
|
kill $(pgrep ironic)
|
||||||
done &
|
done &
|
||||||
fi
|
fi
|
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
|
12
ironic-image/runironic-exporter
Normal file
12
ironic-image/runironic-exporter
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. /bin/configure-ironic.sh
|
||||||
|
|
||||||
|
FLASK_RUN_HOST=${FLASK_RUN_HOST:-0.0.0.0}
|
||||||
|
FLASK_RUN_PORT=${FLASK_RUN_PORT:-9608}
|
||||||
|
|
||||||
|
export IRONIC_CONFIG="/etc/ironic/ironic.conf"
|
||||||
|
|
||||||
|
exec gunicorn -b "${FLASK_RUN_HOST}:${FLASK_RUN_PORT}" -w 4 \
|
||||||
|
ironic_prometheus_exporter.app.wsgi:application
|
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
|
@@ -11,7 +11,7 @@ while [ ! -d "${LOG_DIR}" ]; do
|
|||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
|
|
||||||
python3.11 -m pyinotify --raw-format -e IN_CLOSE_WRITE -v "${LOG_DIR}" |
|
inotifywait -m "${LOG_DIR}" -e close_write |
|
||||||
while read -r path _action file; do
|
while read -r path _action file; do
|
||||||
echo "************ Contents of ${path}/${file} ramdisk log file bundle **************"
|
echo "************ Contents of ${path}/${file} ramdisk log file bundle **************"
|
||||||
tar -xOzvvf "${path}/${file}" | sed -e "s/^/${file}: /"
|
tar -xOzvvf "${path}/${file}" | sed -e "s/^/${file}: /"
|
@@ -1,6 +1,7 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.8
|
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.8-%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"
|
||||||
@@ -33,6 +34,8 @@ LABEL com.suse.release-stage="released"
|
|||||||
|
|
||||||
COPY --from=base /installroot /
|
COPY --from=base /installroot /
|
||||||
RUN cp /getopt /usr/bin/
|
RUN cp /getopt /usr/bin/
|
||||||
|
RUN cp /srv/tftpboot/openstack-ironic-image/initrd*.zst /tmp
|
||||||
|
RUN cp /srv/tftpboot/openstack-ironic-image/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
|
RUN sha256sum /srv/tftpboot/openstack-ironic-image/initrd*.zst /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel > /tmp/images.sha256
|
||||||
# configure non-root user
|
# configure non-root user
|
||||||
COPY configure-nonroot.sh /bin/
|
COPY configure-nonroot.sh /bin/
|
||||||
|
@@ -1,43 +0,0 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-aarch64:3.0.8
|
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-aarch64:3.0.8-%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 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,43 +0,0 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-x86_64:3.0.8
|
|
||||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-x86_64:3.0.8-%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 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>
|
||||||
|
@@ -6,8 +6,6 @@ export http_proxy=${http_proxy:-$HTTP_PROXY}
|
|||||||
export https_proxy=${https_proxy:-$HTTPS_PROXY}
|
export https_proxy=${https_proxy:-$HTTPS_PROXY}
|
||||||
export no_proxy=${no_proxy:-$NO_PROXY}
|
export no_proxy=${no_proxy:-$NO_PROXY}
|
||||||
|
|
||||||
IMAGES_BASE_PATH="/srv/tftpboot/openstack-ironic-image"
|
|
||||||
|
|
||||||
if [ -d "/tmp/ironic-certificates" ]; then
|
if [ -d "/tmp/ironic-certificates" ]; then
|
||||||
sha256sum /tmp/ironic-certificates/* > /tmp/certificates.sha256
|
sha256sum /tmp/ironic-certificates/* > /tmp/certificates.sha256
|
||||||
if cmp "/shared/certificates.sha256" "/tmp/certificates.sha256"; then
|
if cmp "/shared/certificates.sha256" "/tmp/certificates.sha256"; then
|
||||||
@@ -28,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 ${IMAGES_BASE_PATH}/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 ${IMAGES_BASE_PATH}/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 ${IMAGES_BASE_PATH}/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 ${IMAGES_BASE_PATH}/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,23 +102,62 @@
|
|||||||
<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"/>
|
</packages>
|
||||||
<package name="kernel-firmware-ath12k"/>
|
|
||||||
<package name="kernel-firmware-atheros"/>
|
<packages type="image">
|
||||||
<package name="kernel-firmware-bluetooth"/>
|
<package name="checkmedia"/>
|
||||||
<package name="kernel-firmware-brcm"/>
|
<package name="plymouth-branding-SLE"/>
|
||||||
<package name="kernel-firmware-i915"/>
|
<package name="plymouth-dracut"/>
|
||||||
<package name="kernel-firmware-iwlwifi"/>
|
<package name="plymouth-theme-bgrt"/>
|
||||||
<package name="kernel-firmware-media"/>
|
<package name="grub2-branding-SLE"/>
|
||||||
<package name="kernel-firmware-nvidia"/>
|
<package name="iputils"/>
|
||||||
<package name="kernel-firmware-qcom"/>
|
<package name="vim"/>
|
||||||
<package name="kernel-firmware-radeon"/>
|
<package name="grub2"/>
|
||||||
<package name="kernel-firmware-realtek"/>
|
<package name="grub2-x86_64-efi" arch="x86_64"/>
|
||||||
<package name="kernel-firmware-sound"/>
|
<package name="grub2-arm64-efi" arch="aarch64"/>
|
||||||
<package name="kernel-firmware-ti"/>
|
<package name="grub2-i386-pc" arch="x86_64"/>
|
||||||
<package name="kernel-firmware-ueagle"/>
|
<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>
|
||||||
|
|
||||||
<packages type="bootstrap">
|
<packages type="bootstrap">
|
||||||
@@ -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 type="kis">
|
|
||||||
<package name="dracut-kiwi-oem-repart"/>
|
|
||||||
<package name="dracut-kiwi-oem-dump"/>
|
|
||||||
</packages>
|
</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,15 +10,14 @@
|
|||||||
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"
|
||||||
|
@@ -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.9.1.1"
|
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.8
|
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
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user