forked from suse-edge/Factory
Compare commits
15 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 76036c2dd8 | |||
| 0c6db5d5cc | |||
| 0b03d14cee | |||
| 9f2dc045e9 | |||
|
|
f90f614746 | ||
| 35f06da226 | |||
| 8dd6d7d9d7 | |||
| f9c5a29a9f | |||
| 1b83b54b58 | |||
| c6b64a252f | |||
| 689c80ffcc | |||
| d8745fe060 | |||
| 9e39bdcf7f | |||
| 9e376ffb74 | |||
| 0fc166ff06 |
@@ -1,31 +0,0 @@
|
||||
name: Trigger Devel Packages
|
||||
on:
|
||||
# NOTE (fdegir): Cron is set to run midday every weekday
|
||||
schedule:
|
||||
- cron: "0 12 * * 1-5
|
||||
|
||||
jobs:
|
||||
sync-pr-project:
|
||||
name: "Trigger source services for devel packages that changed"
|
||||
runs-on: tumbleweed
|
||||
steps:
|
||||
- name: Setup OSC
|
||||
run: |
|
||||
mkdir -p ~/.config/osc
|
||||
cat >~/.config/osc/oscrc <<'EOF'
|
||||
[general]
|
||||
apiurl = https://api.opensuse.org
|
||||
|
||||
[https://api.opensuse.org]
|
||||
user=${{ vars.OBS_USERNAME }}
|
||||
pass=${{ secrets.OBS_PASSWORD }}
|
||||
EOF
|
||||
# Waiting on PR to get merged for support in upstream action/checkout action
|
||||
- uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
|
||||
name: Checkout repository
|
||||
with:
|
||||
object-format: 'sha256'
|
||||
ref: 'devel'
|
||||
- name: "Trigger packages"
|
||||
run: |
|
||||
python3 .obs/trigger_package.py
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
*/.osc
|
||||
*/__pycache__
|
||||
.venv/
|
||||
.venv/
|
||||
.idea/
|
||||
@@ -1,3 +1,3 @@
|
||||
PROJECT = "isv:SUSE:Edge:Factory"
|
||||
PROJECT = "isv:SUSE:Edge:Factory:Devel"
|
||||
REPOSITORY = "https://src.opensuse.org/suse-edge/Factory"
|
||||
BRANCH = "main"
|
||||
BRANCH = "devel"
|
||||
|
||||
@@ -8,7 +8,6 @@ def render(base_project, subproject, internal, scm_url=None):
|
||||
context = {
|
||||
"base_project": subproject == "",
|
||||
"title": f"SUSE Edge {version} {subproject}".rstrip(),
|
||||
"ironic_base": "ISV:SUSE:Edge:Ironic" if internal else "Cloud:OpenStack",
|
||||
}
|
||||
if subproject == "ToTest":
|
||||
context["project"] = f"{base_project}:ToTest"
|
||||
|
||||
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()
|
||||
21
_config
21
_config
@@ -58,7 +58,6 @@ BuildFlags: onlybuild:release-manifest-image
|
||||
BuildFlags: excludebuild:endpoint-copier-operator-image
|
||||
BuildFlags: excludebuild:ironic-image
|
||||
BuildFlags: excludebuild:ironic-ipa-downloader-image
|
||||
BuildFlags: excludebuild:kiwi-builder-image
|
||||
BuildFlags: excludebuild:kube-rbac-proxy-image
|
||||
BuildFlags: excludebuild:metallb-controller-image
|
||||
BuildFlags: excludebuild:metallb-speaker-image
|
||||
@@ -70,6 +69,7 @@ BuildFlags: onlybuild:release-manifest-image
|
||||
BuildFlags: onlybuild:baremetal-operator
|
||||
BuildFlags: onlybuild:baremetal-operator-image
|
||||
BuildFlags: onlybuild:ca-certificates-suse
|
||||
BuildFlags: onlybuild:cosign
|
||||
BuildFlags: onlybuild:crudini
|
||||
BuildFlags: onlybuild:edge-image-builder
|
||||
BuildFlags: onlybuild:edge-image-builder-image
|
||||
@@ -87,7 +87,6 @@ BuildFlags: onlybuild:release-manifest-image
|
||||
BuildFlags: onlybuild:metallb-controller-image
|
||||
BuildFlags: onlybuild:metallb-speaker-image
|
||||
BuildFlags: onlybuild:nm-configurator
|
||||
BuildFlags: onlybuild:shim-noarch
|
||||
%endif
|
||||
%endif
|
||||
|
||||
@@ -104,21 +103,6 @@ BuildFlags: onlybuild:release-manifest-image
|
||||
PublishFlags: archsync
|
||||
%endif
|
||||
|
||||
%if "%_repository" == "images_16.0"
|
||||
Prefer: container:sles15-image
|
||||
Type: docker
|
||||
BuildEngine: podman
|
||||
Repotype: none
|
||||
Patterntype: none
|
||||
BuildFlags: dockerarg:SLE_VERSION=16.0
|
||||
BuildFlags: onlybuild:kiwi-builder-image
|
||||
|
||||
# Publish multi-arch container images only once all archs have been built
|
||||
PublishFlags: archsync
|
||||
%endif
|
||||
|
||||
|
||||
|
||||
%if "%_repository" == "charts" || "%_repository" == "phantomcharts" || "%_repository" == "releasecharts"
|
||||
Type: helm
|
||||
Repotype: helm
|
||||
@@ -129,9 +113,6 @@ BuildFlags: onlybuild:release-manifest-image
|
||||
%if "%_repository" == "standard"
|
||||
# for build openstack-ironic-image
|
||||
BuildFlags: allowrootforbuild
|
||||
|
||||
# ironic-ipa-ramdisk are noarch packages that need to be availble to both archs
|
||||
ExportFilter: ^ironic-ipa-ramdisk-.*\.noarch\.rpm$ aarch64 x86_64
|
||||
%endif
|
||||
|
||||
# Enable reproducible builds
|
||||
|
||||
16
_meta
16
_meta
@@ -31,20 +31,14 @@
|
||||
<arch>x86_64</arch>
|
||||
</repository>
|
||||
{%- endif %}
|
||||
{%- for repository in ["images", "images_16.0", "test_manifest_images"] %}
|
||||
{%- for repository in ["images", "test_manifest_images"] %}
|
||||
<repository name="{{ repository }}">
|
||||
{%- if release_project is defined and repository != "test_manifest_images" %}
|
||||
{%- if release_project is defined and repository == "images" %}
|
||||
<releasetarget project="{{ release_project }}" repository="images" trigger="manual"/>
|
||||
{%- endif %}
|
||||
<path project="SUSE:Registry" repository="standard"/>
|
||||
{%- if repository == "images_16.0" %}
|
||||
<path project="SUSE:CA" repository="16.0"/>
|
||||
<path project="SUSE:SLFO:Products:SLES:16.0" repository="standard"/>
|
||||
<path project="SUSE:SLFO:Main:Build" repository="standard"/>
|
||||
{%- else %}
|
||||
<path project="{{ project }}" repository="standard"/>
|
||||
<path project="SUSE:CA" repository="SLE_15_SP6"/>
|
||||
{%- endif %}
|
||||
<path project="SUSE:CA" repository="SLE_15_SP6"/>
|
||||
<path project="{{ project }}" repository="standard"/>
|
||||
<arch>x86_64</arch>
|
||||
<arch>aarch64</arch>
|
||||
</repository>
|
||||
@@ -53,7 +47,7 @@
|
||||
{%- if release_project is defined and not for_release %}
|
||||
<releasetarget project="{{ release_project }}" repository="standard" trigger="manual"/>
|
||||
{%- endif %}
|
||||
<path project="{{ ironic_base }}:2024.2" repository="15.6"/>
|
||||
<path project="Cloud:OpenStack:2024.2" repository="15.6"/>
|
||||
<path project="SUSE:SLE-15-SP6:Update" repository="standard"/>
|
||||
<arch>x86_64</arch>
|
||||
<arch>aarch64</arch>
|
||||
|
||||
@@ -13,9 +13,9 @@ annotations:
|
||||
catalog.cattle.io/ui-component: plugins
|
||||
catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0"
|
||||
apiVersion: v2
|
||||
appVersion: 302.0.0+up1.2.1
|
||||
description: 'SUSE Edge: Akri extension for Rancher Dashboard'
|
||||
appVersion: 1.2.1
|
||||
description: "SUSE Edge: Akri extension for Rancher Dashboard"
|
||||
icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg
|
||||
name: akri-dashboard-extension
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.0+up1.2.1"
|
||||
icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg
|
||||
|
||||
@@ -38,7 +38,7 @@ Common labels
|
||||
helm.sh/chart: {{ include "extension-server.chart" . }}
|
||||
{{ include "extension-server.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | replace "+" "_" | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
@@ -60,4 +60,4 @@ Pkg annotations
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -8,7 +8,7 @@ spec:
|
||||
plugin:
|
||||
name: {{ include "extension-server.fullname" . }}
|
||||
version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }}
|
||||
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/akri-dashboard-extension/302.0.0+up1.2.1
|
||||
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/akri-dashboard-extension/1.2.1
|
||||
noCache: {{ .Values.plugin.noCache }}
|
||||
noAuth: {{ .Values.plugin.noAuth }}
|
||||
metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
|
||||
@@ -2,7 +2,7 @@
|
||||
<service name="obs_scm">
|
||||
<param name="url">https://github.com/metal3-io/baremetal-operator</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="revision">v0.9.1</param>
|
||||
<param name="revision">v0.8.0</param>
|
||||
<param name="version">_auto_</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
|
||||
@@ -17,14 +17,14 @@
|
||||
|
||||
|
||||
Name: baremetal-operator
|
||||
Version: 0.9.1
|
||||
Release: 0
|
||||
Version: 0.8.0
|
||||
Release: 0.8.0
|
||||
Summary: Implements a Kubernetes API for managing bare metal hosts
|
||||
License: Apache-2.0
|
||||
URL: https://github.com/metal3-io/baremetal-operator
|
||||
Source: baremetal-operator-%{version}.tar
|
||||
Source1: vendor.tar.gz
|
||||
BuildRequires: golang(API) = 1.23
|
||||
BuildRequires: golang(API) = 1.22
|
||||
ExcludeArch: s390
|
||||
ExcludeArch: %{ix86}
|
||||
|
||||
|
||||
18
cosign/_service
Normal file
18
cosign/_service
Normal file
@@ -0,0 +1,18 @@
|
||||
<services>
|
||||
<service name="obs_scm">
|
||||
<param name="url">https://github.com/rancher-government-carbide/cosign.git</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="exclude">.get</param>
|
||||
<param name="revision">v2.2.3+carbide.2</param>
|
||||
<param name="versionrewrite-pattern">v(.*)</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
</service>
|
||||
<service mode="buildtime" name="tar">
|
||||
<param name="obsinfo">cosign.obsinfo</param>
|
||||
</service>
|
||||
<service mode="buildtime" name="set_version" />
|
||||
<service name="go_modules">
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
</services>
|
||||
55
cosign/cosign.spec
Normal file
55
cosign/cosign.spec
Normal file
@@ -0,0 +1,55 @@
|
||||
#
|
||||
# spec file for package cosign-rgs
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
%define project https://github.com/hauler-dev/cosign
|
||||
%define revision 49542360ffb5de63f9d2f5856b658651d5538e40
|
||||
|
||||
Name: cosign
|
||||
Version: 0
|
||||
Release: 0
|
||||
Summary: Container Signing, Verification and Storage in an OCI registry
|
||||
License: Apache-2.0
|
||||
URL: https://github.com/rancher-government-carbide/cosign
|
||||
Source: cosign-%{version}.tar
|
||||
Source1: vendor.tar.gz
|
||||
BuildRequires: golang-packaging
|
||||
|
||||
%description
|
||||
|
||||
%prep
|
||||
%setup -q -a1 -n cosign-%{version}
|
||||
|
||||
%build
|
||||
%goprep %{project}
|
||||
|
||||
DATE_FMT="+%%Y-%%m-%%dT%%H:%%M:%%SZ"
|
||||
BUILD_DATE=$(date -u -d "@${SOURCE_DATE_EPOCH}" "${DATE_FMT}" 2>/dev/null || date -u -r "${SOURCE_DATE_EPOCH}" "${DATE_FMT}" 2>/dev/null || date -u "${DATE_FMT}")
|
||||
|
||||
CLI_PKG=sigs.k8s.io/release-utils/version
|
||||
CLI_LDFLAGS="-X ${CLI_PKG}.gitVersion=%{version} -X ${CLI_PKG}.gitCommit=%{revision} -X ${CLI_PKG}.gitTreeState=release -X ${CLI_PKG}.buildDate=${BUILD_DATE}"
|
||||
|
||||
CGO_ENABLED=0 go build -mod=vendor -buildmode=pie -trimpath -ldflags "${CLI_LDFLAGS}" -o cosign ./cmd/cosign
|
||||
|
||||
%install
|
||||
install -D -m 0755 cosign %{buildroot}%{_bindir}/cosign
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc *.md
|
||||
%{_bindir}/cosign
|
||||
|
||||
%changelog
|
||||
@@ -1,5 +1,5 @@
|
||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.0
|
||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.0-%RELEASE%
|
||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:%PACKAGE_VERSION%
|
||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:%PACKAGE_VERSION%-%RELEASE%
|
||||
#!BuildVersion: 15.6
|
||||
ARG SLE_VERSION
|
||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION
|
||||
@@ -15,11 +15,11 @@ RUN zypper --non-interactive install --no-recommends edge-image-builder qemu-x86
|
||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||
LABEL org.opencontainers.image.title="SLE edge-image-builder Container Image"
|
||||
LABEL org.opencontainers.image.description="edge-image-builder based on the SLE Base Container Image."
|
||||
LABEL org.opencontainers.image.version="1.1.0"
|
||||
LABEL org.opencontainers.image.version="%PACKAGE_VERSION%"
|
||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.1.0-%RELEASE%"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:%PACKAGE_VERSION%-%RELEASE%"
|
||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<services>
|
||||
<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">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<services>
|
||||
<service name="obs_scm">
|
||||
<param name="url">https://github.com/suse-edge/edge-image-builder.git</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="versionformat">@PARENT_TAG@_%h.%ad</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="exclude">.git</param>
|
||||
<param name="revision">v1.1.0</param>
|
||||
<param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param>
|
||||
<param name="versionrewrite-replacement">\1.\2.\3</param>
|
||||
<param name="revision">main</param>
|
||||
<param name="versionrewrite-pattern">v(.*)</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
</service>
|
||||
<service mode="buildtime" name="tar">
|
||||
@@ -16,4 +16,4 @@
|
||||
<service name="go_modules">
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
</services>
|
||||
</services>
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: edge-image-builder
|
||||
Version: 1.1.0
|
||||
Version: 0
|
||||
Release: 0
|
||||
Summary: Edge Image Builder
|
||||
License: Apache-2.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
#!BuildTag: %%IMG_PREFIX%%frr:8.5.6
|
||||
#!BuildTag: %%IMG_PREFIX%%frr:8.5.6-%RELEASE%
|
||||
#!BuildVersion: 15.6
|
||||
#!BuildTag: %%IMG_PREFIX%%frr:8.4
|
||||
#!BuildTag: %%IMG_PREFIX%%frr:8.4-%RELEASE%
|
||||
#!BuildVersion: 15.5
|
||||
ARG SLE_VERSION
|
||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||
|
||||
@@ -15,11 +15,11 @@ FROM micro AS final
|
||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||
LABEL org.opencontainers.image.title="FRR Container Image"
|
||||
LABEL org.opencontainers.image.description="frr based on the SLE Base Container Image."
|
||||
LABEL org.opencontainers.image.version="8.5.6"
|
||||
LABEL org.opencontainers.image.version="8.4"
|
||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr:8.5.6-%RELEASE%"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr:8.4-%RELEASE%"
|
||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<service name="obs_scm">
|
||||
<param name="url">https://github.com/metallb/frr-k8s</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="revision">v0.0.16</param>
|
||||
<param name="revision">v0.0.14</param>
|
||||
<param name="version">_auto_</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
|
||||
|
||||
Name: frr-k8s
|
||||
Version: 0.0.16
|
||||
Release: 0.0.16
|
||||
Version: 0.0.14
|
||||
Release: 0.0.14
|
||||
Summary: A kubernetes based daemonset that exposes a subset of the FRR API in a kubernetes compliant manner.
|
||||
License: Apache-2.0
|
||||
URL: https://github.com/metallb/frr-k8s
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="exclude">.get</param>
|
||||
<param name="revision">v1.2.1</param>
|
||||
<param name="revision">v1.0.7</param>
|
||||
<param name="versionrewrite-pattern">v(.*)</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
</service>
|
||||
@@ -15,13 +15,4 @@
|
||||
<service name="go_modules">
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
<service mode="buildtime" name="replace_using_env">
|
||||
<param name="file">hauler.spec</param>
|
||||
<param name="var">SOURCE_COMMIT</param>
|
||||
<param name="eval">
|
||||
SOURCE_COMMIT=$(grep commit hauler.obsinfo | cut -d" " -f2)
|
||||
</param>
|
||||
<param name="verbose">1</param>
|
||||
</service>
|
||||
<service mode="buildtime" name="set_version" />
|
||||
</services>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
%define project github.com/hauler-dev/hauler
|
||||
|
||||
Name: hauler
|
||||
Version: 1.2.1
|
||||
Version: 1.0.7
|
||||
Release: 0
|
||||
Summary: Airgap Swiss Army Knife
|
||||
License: Apache-2.0
|
||||
@@ -26,6 +26,7 @@ URL: https://github.com/hauler-dev/hauler
|
||||
Source: hauler-%{version}.tar
|
||||
Source1: vendor.tar.gz
|
||||
BuildRequires: golang-packaging
|
||||
BuildRequires: cosign
|
||||
|
||||
%description
|
||||
|
||||
@@ -37,18 +38,10 @@ BuildRequires: golang-packaging
|
||||
|
||||
tar -xf %{SOURCE1}
|
||||
|
||||
MODULE=hauler.dev/go/hauler
|
||||
%define buildtime %(date +%%Y-%%m-%%dT%%H:%%M:%%S%%z)
|
||||
%define buildcommit %%SOURCE_COMMIT%%
|
||||
mkdir cmd/hauler/binaries
|
||||
cp `which cosign` cmd/hauler/binaries/cosign-linux-%{go_arch}
|
||||
|
||||
|
||||
go build \
|
||||
-mod=vendor \
|
||||
-buildmode=pie \
|
||||
-o hauler \
|
||||
-ldflags \
|
||||
"-X $MODULE/internal/version.gitVersion=v%{version} -X $MODULE/internal/version.gitCommit=%{buildcommit} -X $MODULE/internal/version.buildDate=%{buildtime}" \
|
||||
./cmd/hauler
|
||||
go build -mod=vendor -buildmode=pie -o hauler ./cmd/hauler
|
||||
|
||||
%install
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.4
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.4-%RELEASE%
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.2
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.2-%RELEASE%
|
||||
#!BuildVersion: 15.6
|
||||
|
||||
ARG SLE_VERSION
|
||||
@@ -8,8 +8,14 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||
|
||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||
|
||||
RUN zypper -n in --no-recommends shim-x86_64 shim-aarch64 grub2-x86_64-efi grub2-arm64-efi dosfstools mtools
|
||||
|
||||
#!ArchExclusiveLine: x86_64
|
||||
RUN if [ "$(uname -m)" = "x86_64" ];then \
|
||||
zypper -n in --no-recommends gcc git make xz-devel shim dosfstools mtools glibc-extra grub2-x86_64-efi grub2; zypper -n clean; rm -rf /var/log/*; \
|
||||
fi
|
||||
#!ArchExclusiveLine: aarch64
|
||||
RUN if [ "$(uname -m)" = "aarch64" ];then \
|
||||
zypper -n rm kubic-locale-archive-2.31-10.36.noarch openssl-1_1-1.1.1l-150500.17.37.1.aarch64; zypper -n in --no-recommends gcc git make xz-devel openssl-3 mokutil shim dosfstools mtools glibc glibc-extra grub2 grub2-arm64-efi; zypper -n clean; rm -rf /var/log/* ;\
|
||||
fi
|
||||
WORKDIR /tmp
|
||||
COPY prepare-efi.sh /bin/
|
||||
RUN set -euo pipefail; chmod +x /bin/prepare-efi.sh
|
||||
@@ -40,8 +46,8 @@ LABEL org.opencontainers.image.description="Openstack Ironic based on the SLE Ba
|
||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||
LABEL org.opencontainers.image.version="26.1.2.4"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.4-%RELEASE%"
|
||||
LABEL org.opencontainers.image.version="26.1.2.2"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.2-%RELEASE%"
|
||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||
@@ -82,8 +88,7 @@ RUN if [ "$(uname -m)" = "aarch64" ]; then\
|
||||
cp /usr/share/ipxe/snp-arm64.efi /tftpboot/ipxe.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp-arm64.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp.efi ;\
|
||||
fi
|
||||
|
||||
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.img /tmp/uefi_esp.img
|
||||
|
||||
COPY ironic.conf.j2 /etc/ironic/
|
||||
COPY inspector.ipxe.j2 httpd-ironic-api.conf.j2 ipxe_config.template /tmp/
|
||||
|
||||
@@ -10,15 +10,17 @@ Listen {{ env.VMEDIA_TLS_PORT }}
|
||||
SSLCertificateFile {{ env.IRONIC_VMEDIA_CERT_FILE }}
|
||||
SSLCertificateKeyFile {{ env.IRONIC_VMEDIA_KEY_FILE }}
|
||||
|
||||
<Directory "/shared">
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
<Directory ~ "/shared/html">
|
||||
Order deny,allow
|
||||
deny from all
|
||||
</Directory>
|
||||
|
||||
<Directory "/shared/html">
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
<Directory ~ "/shared/html/(redfish|ilo)/">
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
<Directory ~ "/shared/html/images/">
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ if [[ -n "$IRONIC_EXTERNAL_IP" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
IMAGE_CACHE_PREFIX="/shared/html/images/ironic-python-agent-${DEPLOY_ARCHITECTURE}"
|
||||
IMAGE_CACHE_PREFIX=/shared/html/images/ironic-python-agent
|
||||
if [[ -f "${IMAGE_CACHE_PREFIX}.kernel" ]] && [[ -f "${IMAGE_CACHE_PREFIX}.initramfs" ]]; then
|
||||
export IRONIC_DEFAULT_KERNEL="${IMAGE_CACHE_PREFIX}.kernel"
|
||||
export IRONIC_DEFAULT_RAMDISK="${IMAGE_CACHE_PREFIX}.initramfs"
|
||||
|
||||
@@ -5,6 +5,6 @@ echo In inspector.ipxe
|
||||
imgfree
|
||||
# NOTE(dtantsur): keep inspection kernel params in [mdns]params in
|
||||
# ironic-inspector-image and configuration in configure-ironic.sh
|
||||
kernel --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent-${buildarch}.kernel ipa-insecure=1 ipa-inspection-collectors={{ env.IRONIC_IPA_COLLECTORS }} systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-enable-vlan-interfaces={{ env.IRONIC_ENABLE_VLAN_INTERFACES }} ipa-inspection-dhcp-all-interfaces=1 ipa-collect-lldp=1 {{ env.INSPECTOR_EXTRA_ARGS }} initrd=ironic-python-agent.initramfs {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} || goto retry_boot
|
||||
initrd --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent-${buildarch}.initramfs || goto retry_boot
|
||||
kernel --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent.kernel ipa-insecure=1 ipa-inspection-collectors={{ env.IRONIC_IPA_COLLECTORS }} systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-enable-vlan-interfaces={{ env.IRONIC_ENABLE_VLAN_INTERFACES }} ipa-inspection-dhcp-all-interfaces=1 ipa-collect-lldp=1 {{ env.INSPECTOR_EXTRA_ARGS }} initrd=ironic-python-agent.initramfs {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} || goto retry_boot
|
||||
initrd --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent.initramfs || goto retry_boot
|
||||
boot
|
||||
|
||||
@@ -83,7 +83,7 @@ send_sensor_data = {{ env.SEND_SENSOR_DATA }}
|
||||
# Power state is checked every 60 seconds and BMC activity should
|
||||
# be avoided more often than once every sixty seconds.
|
||||
send_sensor_data_interval = 160
|
||||
bootloader = {{ env.IRONIC_BOOT_BASE_URL }}/uefi_esp-{{ env.DEPLOY_ARCHITECTURE }}.img
|
||||
bootloader = http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/uefi_esp.img
|
||||
verify_step_priority_override = management.clear_job_queue:90
|
||||
# We don't use this feature, and it creates an additional load on the database
|
||||
node_history = False
|
||||
@@ -112,7 +112,7 @@ default_boot_option = local
|
||||
erase_devices_metadata_priority = 10
|
||||
erase_devices_priority = 0
|
||||
http_root = /shared/html/
|
||||
http_url = {{ env.IRONIC_BOOT_BASE_URL }}
|
||||
http_url = http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}
|
||||
fast_track = {{ env.IRONIC_FAST_TRACK }}
|
||||
{% if env.IRONIC_BOOT_ISO_SOURCE %}
|
||||
ramdisk_image_download_source = {{ env.IRONIC_BOOT_ISO_SOURCE }}
|
||||
|
||||
@@ -2,26 +2,41 @@
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
declare -A efi_arch=(
|
||||
["x86_64"]="X64"
|
||||
["aarch64"]="AA64"
|
||||
)
|
||||
ARCH=$(uname -m)
|
||||
DEST=${2:-/tmp/esp.img}
|
||||
OS=${1:-sles}
|
||||
|
||||
for arch in "${!efi_arch[@]}"; do
|
||||
|
||||
DEST=/tmp/esp-${arch}.img
|
||||
if [ $ARCH = "aarch64" ]; then
|
||||
BOOTEFI=BOOTAA64.EFI
|
||||
GRUBEFI=grubaa64.efi
|
||||
else
|
||||
BOOTEFI=BOOTX64.efi
|
||||
GRUBEFI=grubx64.efi
|
||||
fi
|
||||
|
||||
dd bs=1024 count=6400 if=/dev/zero of=$DEST
|
||||
mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST
|
||||
|
||||
mmd -i $DEST EFI
|
||||
mmd -i $DEST EFI/BOOT
|
||||
|
||||
mcopy -i $DEST -v /usr/share/efi/${arch}/shim.efi ::EFI/BOOT/BOOT${efi_arch[$arch]}.EFI
|
||||
mcopy -i $DEST -v /usr/share/efi/${arch}/grub.efi ::EFI/BOOT/GRUB.EFI
|
||||
|
||||
mdir -i $DEST ::EFI/BOOT;
|
||||
done
|
||||
dd bs=1024 count=6400 if=/dev/zero of=$DEST
|
||||
mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST
|
||||
|
||||
mkdir -p /boot/efi/EFI/BOOT
|
||||
mkdir -p /boot/efi/EFI/$OS
|
||||
if [ $ARCH = "aarch64" ]; then
|
||||
cp -L /usr/share/efi/aarch64/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI
|
||||
cp -L /usr/share/efi/aarch64/grub.efi /boot/efi/EFI/BOOT/grub.efi
|
||||
cp /usr/share/grub2/arm64-efi/grub.efi /boot/efi/EFI/$OS/grubaa64.efi
|
||||
else
|
||||
cp -L /usr/lib64/efi/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI
|
||||
#cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/$GRUBEFI
|
||||
cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/grub.efi
|
||||
fi
|
||||
|
||||
mmd -i $DEST EFI
|
||||
mmd -i $DEST EFI/BOOT
|
||||
mcopy -i $DEST -v /boot/efi/EFI/BOOT/$BOOTEFI ::EFI/BOOT
|
||||
if [ $ARCH = "aarch64" ]; then
|
||||
mcopy -i $DEST -v /boot/efi/EFI/BOOT/grub.efi ::EFI/BOOT
|
||||
mcopy -i $DEST -v /boot/efi/EFI/$OS/$GRUBEFI ::EFI/BOOT
|
||||
else
|
||||
mcopy -i $DEST -v /boot/efi/EFI/$OS/grub.efi ::EFI/BOOT
|
||||
fi
|
||||
mdir -i $DEST ::EFI/BOOT;
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ export INSPECTOR_EXTRA_ARGS
|
||||
|
||||
# Copy files to shared mount
|
||||
render_j2_config /tmp/inspector.ipxe.j2 /shared/html/inspector.ipxe
|
||||
cp /tmp/uefi_esp*.img /shared/html/
|
||||
cp /tmp/uefi_esp.img /shared/html/uefi_esp.img
|
||||
|
||||
# Render the core httpd config
|
||||
render_j2_config /etc/httpd/conf/httpd.conf.j2 /etc/httpd/conf/httpd.conf
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3-%RELEASE%
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%RELEASE%
|
||||
#!BuildVersion: 15.6
|
||||
ARG SLE_VERSION
|
||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||
@@ -8,8 +8,15 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||
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 ironic-ipa-ramdisk-aarch64 tar gawk curl xz zstd shadow cpio findutils
|
||||
|
||||
#!ArchExclusiveLine: x86_64
|
||||
RUN if [ "$(uname -m)" = "x86_64" ];then \
|
||||
zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-x86_64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*; \
|
||||
fi
|
||||
#!ArchExclusiveLine: aarch64
|
||||
RUN if [ "$(uname -m)" = "aarch64" ];then \
|
||||
zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-aarch64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*; \
|
||||
fi
|
||||
#RUN zypper --installroot /installroot --non-interactive install --no-recommends sles-release;
|
||||
RUN cp /usr/bin/getopt /installroot/
|
||||
|
||||
FROM micro AS final
|
||||
@@ -19,11 +26,11 @@ FROM micro AS final
|
||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||
LABEL org.opencontainers.image.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.3"
|
||||
LABEL org.opencontainers.image.version="3.0.1"
|
||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.3-%RELEASE%"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%RELEASE%"
|
||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||
@@ -34,9 +41,8 @@ LABEL com.suse.release-stage="released"
|
||||
|
||||
COPY --from=base /installroot /
|
||||
RUN cp /getopt /usr/bin/
|
||||
RUN cp /srv/tftpboot/openstack-ironic-image/initrd*.zst /tmp
|
||||
RUN cp /srv/tftpboot/openstack-ironic-image/initrd.xz /tmp
|
||||
RUN cp /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel /tmp
|
||||
RUN sha256sum /srv/tftpboot/openstack-ironic-image/initrd*.zst /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel > /tmp/images.sha256
|
||||
# configure non-root user
|
||||
COPY configure-nonroot.sh /bin/
|
||||
RUN set -euo pipefail; chmod +x /bin/configure-nonroot.sh
|
||||
|
||||
@@ -6,33 +6,12 @@ export http_proxy=${http_proxy:-$HTTP_PROXY}
|
||||
export https_proxy=${https_proxy:-$HTTPS_PROXY}
|
||||
export no_proxy=${no_proxy:-$NO_PROXY}
|
||||
|
||||
if [ -d "/tmp/ironic-certificates" ]; then
|
||||
sha256sum /tmp/ironic-certificates/* > /tmp/certificates.sha256
|
||||
if cmp "/shared/certificates.sha256" "/tmp/certificates.sha256"; then
|
||||
CERTS_CHANGED=0
|
||||
else
|
||||
CERTS_CHANGED=1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Which image should we use
|
||||
if [ -z "${IPA_BASEURI}" ]; then
|
||||
if cmp "/shared/images.sha256" "/tmp/images.sha256"; then
|
||||
if [ "${CERTS_CHANGED:-0}" = "0" ]; then
|
||||
# everything is the same exit early
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
IMAGE_CHANGED=1
|
||||
# SLES BASED IPA - ironic-ipa-ramdisk-x86_64 and ironic-ipa-ramdisk-aarch64 packages
|
||||
# SLES BASED IPA - ironic-ipa-ramdisk-x86_64 package
|
||||
mkdir -p /shared/html/images
|
||||
cp /tmp/initrd-x86_64.zst /shared/html/images/ironic-python-agent-x86_64.initramfs
|
||||
cp /tmp/openstack-ironic-image.x86_64*.kernel /shared/html/images/ironic-python-agent-x86_64.kernel
|
||||
# Use arm64 as destination for iPXE compatibility
|
||||
cp /tmp/initrd-aarch64.zst /shared/html/images/ironic-python-agent-arm64.initramfs
|
||||
cp /tmp/openstack-ironic-image.aarch64*.kernel /shared/html/images/ironic-python-agent-arm64.kernel
|
||||
|
||||
cp /tmp/images.sha256 /shared/images.sha256
|
||||
cp /tmp/initrd.xz /shared/html/images/ironic-python-agent.initramfs
|
||||
cp /tmp/openstack-ironic-image*.kernel /shared/html/images/ironic-python-agent.kernel
|
||||
else
|
||||
FILENAME=ironic-python-agent
|
||||
FILENAME_EXT=.tar
|
||||
@@ -46,56 +25,47 @@ else
|
||||
# If we have a CACHEURL and nothing has yet been downloaded
|
||||
# get header info from the cache
|
||||
ls -l
|
||||
if [ -n "$CACHEURL" ] && [ ! -e $FFILENAME.headers ] ; then
|
||||
if [ -n "$CACHEURL" -a ! -e $FFILENAME.headers ] ; then
|
||||
curl -g --verbose --fail -O "$CACHEURL/$FFILENAME.headers" || true
|
||||
fi
|
||||
|
||||
# Download the most recent version of IPA
|
||||
if [ -e $FFILENAME.headers ] ; then
|
||||
ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\r")
|
||||
cd "$TMPDIR"
|
||||
curl -g --verbose --dump-header $FFILENAME.headers -O "$IPA_BASEURI/$FFILENAME" --header "If-None-Match: $ETAG" || cp /shared/html/images/$FFILENAME.headers .
|
||||
cd $TMPDIR
|
||||
curl -g --verbose --dump-header $FFILENAME.headers -O $IPA_BASEURI/$FFILENAME --header "If-None-Match: $ETAG" || cp /shared/html/images/$FFILENAME.headers .
|
||||
# curl didn't download anything because we have the ETag already
|
||||
# but we don't have it in the images directory
|
||||
# Its in the cache, go get it
|
||||
ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r")
|
||||
if [ ! -s $FFILENAME ] && [ ! -e "/shared/html/images/$FILENAME-$ETAG/$FFILENAME" ] ; then
|
||||
if [ ! -s $FFILENAME -a ! -e /shared/html/images/$FILENAME-$ETAG/$FFILENAME ] ; then
|
||||
mv /shared/html/images/$FFILENAME.headers .
|
||||
curl -g --verbose -O "$CACHEURL/$FILENAME-$ETAG/$FFILENAME"
|
||||
fi
|
||||
else
|
||||
cd "$TMPDIR"
|
||||
curl -g --verbose --dump-header $FFILENAME.headers -O "$IPA_BASEURI/$FFILENAME"
|
||||
cd $TMPDIR
|
||||
curl -g --verbose --dump-header $FFILENAME.headers -O $IPA_BASEURI/$FFILENAME
|
||||
fi
|
||||
|
||||
if [ -s $FFILENAME ] ; then
|
||||
tar -xf $FFILENAME
|
||||
xz -d -c -k --fast $FILENAME.initramfs | zstd -c > $FILENAME.initramfs.zstd
|
||||
mv $FILENAME.initramfs.zstd $FILENAME.initramfs
|
||||
ARCH=$(file -b ${FILENAME}.kernel | cut -d ' ' -f 3)
|
||||
if [ "$ARCH" = "x86" ]; then
|
||||
ARCH="x86_64"
|
||||
fi
|
||||
|
||||
ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r")
|
||||
cd -
|
||||
chmod 755 "$TMPDIR"
|
||||
mv "$TMPDIR" "$FILENAME-$ETAG"
|
||||
ln -sf "$FILENAME-$ETAG/$FFILENAME.headers" "$FFILENAME.headers"
|
||||
ln -sf "$FILENAME-$ETAG/$FILENAME.initramfs" "$FILENAME-${ARCH,,}.initramfs"
|
||||
ln -sf "$FILENAME-$ETAG/$FILENAME.kernel" "$FILENAME-${ARCH,,}.kernel"
|
||||
|
||||
IMAGE_CHANGED=1
|
||||
chmod 755 $TMPDIR
|
||||
mv $TMPDIR $FILENAME-$ETAG
|
||||
ln -sf $FILENAME-$ETAG/$FFILENAME.headers $FFILENAME.headers
|
||||
ln -sf $FILENAME-$ETAG/$FILENAME.initramfs $FILENAME.initramfs
|
||||
ln -sf $FILENAME-$ETAG/$FILENAME.kernel $FILENAME.kernel
|
||||
else
|
||||
rm -rf "$TMPDIR"
|
||||
rm -rf $TMPDIR
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${CERTS_CHANGED:-0}" = "1" ] || [ "${IMAGE_CHANGED:-0}" = "1" ]; then
|
||||
if [ -d "/tmp/ironic-certificates" ]; then
|
||||
mkdir -p /tmp/ca/tmp-initrd && cd /tmp/ca/tmp-initrd
|
||||
xz -d -c -k --fast /shared/html/images/ironic-python-agent.initramfs | fakeroot -s ../initrd.fakeroot cpio -i
|
||||
mkdir -p etc/ironic-python-agent.d/ca-certs
|
||||
cp /tmp/ironic-certificates/* etc/ironic-python-agent.d/ca-certs/
|
||||
for initramfs in /shared/html/images/ironic-python-agent-*.initramfs; do
|
||||
find . | cpio -o -H newc --reproducible | zstd -c >> "${initramfs}"
|
||||
done
|
||||
cp /tmp/certificates.sha256 /shared/certificates.sha256
|
||||
find . | fakeroot -i ../initrd.fakeroot cpio -o -H newc | xz --check=crc32 --x86 --lzma2 --fast > /shared/html/images/ironic-python-agent.initramfs
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="7.4" name="openstack-ironic-image">
|
||||
<image schemaversion="7.4" name="openstack-ironic-image-301">
|
||||
<description type="system">
|
||||
<author>Cloud developers</author>
|
||||
<contact>cloud-devel@suse.de</contact>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
|
||||
Name: ironic-ipa-ramdisk
|
||||
Version: 3.0.3
|
||||
Version: 3.0.1
|
||||
Release: 0
|
||||
Summary: Kernel and ramdisk image for OpenStack Ironic
|
||||
License: SUSE-EULA
|
||||
@@ -148,8 +148,10 @@ TDIR=`mktemp -d /tmp/openstack-ironic-image.XXXXX`
|
||||
cd /tmp/openstack-ironic-image/img/build/image-root
|
||||
find . | cpio --create --format=newc --quiet > $TDIR/initrdtmp
|
||||
cd $TDIR
|
||||
zstd initrdtmp -o initrd-%{_arch}.zst
|
||||
INITRD=`ls *.zst | head -1`
|
||||
gzip -9 -f initrdtmp
|
||||
INITRDGZ=`ls *.gz | head -1`
|
||||
gzip -cd $INITRDGZ | xz --check=crc32 -c9 > initrd.xz
|
||||
INITRD=`ls *.xz | head -1`
|
||||
|
||||
ls /tmp/openstack-ironic-image/img/openstack-ironic-image*
|
||||
KERNEL=`ls /tmp/openstack-ironic-image/img/openstack-ironic-image*default*kernel | head -1`
|
||||
|
||||
BIN
ironic-ipa-ramdisk/root.tar.bz2
LFS
BIN
ironic-ipa-ramdisk/root.tar.bz2
LFS
Binary file not shown.
@@ -1,20 +1,18 @@
|
||||
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.0-%RELEASE%
|
||||
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.0
|
||||
|
||||
ARG KIWIVERSION="10.2.12"
|
||||
FROM registry.suse.com/bci/kiwi:${KIWIVERSION}
|
||||
ARG KIWIVERSION
|
||||
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.1
|
||||
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.1-%RELEASE%
|
||||
FROM registry.suse.com/bci/kiwi:10.1.16
|
||||
MAINTAINER SUSE LLC (https://www.suse.com/)
|
||||
|
||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||
# labelprefix=com.suse.application.akri
|
||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||
LABEL org.opencontainers.image.title="SLE Kiwi Builder Container Image"
|
||||
LABEL org.opencontainers.image.description="kiwi-builder based on the SLE Base Container Image."
|
||||
LABEL org.opencontainers.image.version="%%kiwi_version%%"
|
||||
LABEL org.opencontainers.image.version="%PACKAGE_VERSION%"
|
||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.0-%RELEASE%"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:10.1.16.1"
|
||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||
@@ -23,8 +21,8 @@ LABEL com.suse.image-type="application"
|
||||
LABEL com.suse.release-stage="released"
|
||||
# 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; }
|
||||
# Configure Kiwi to use kpartx
|
||||
RUN echo -e "mapper:\n - part_mapper: kpartx" > /etc/kiwi.yml
|
||||
|
||||
# Copy build script into image and make it executable
|
||||
ADD build-image.sh /usr/bin/build-image
|
||||
|
||||
@@ -8,7 +8,7 @@ Please ensure that you're running this on a registered SUSE Linux Micro 6.1 syst
|
||||
|
||||
Next, download the podman image:
|
||||
|
||||
# podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0
|
||||
# podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1
|
||||
|
||||
Make a local output directory (where the images will reside):
|
||||
|
||||
@@ -16,40 +16,40 @@ Make a local output directory (where the images will reside):
|
||||
|
||||
Then, to build a standard "Base" image, run the following in podman:
|
||||
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 build-image
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image
|
||||
|
||||
To build a "Base" SelfInstall ISO, you can add additional flags, for example:
|
||||
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 build-image -p Base-SelfInstall
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Base-SelfInstall
|
||||
|
||||
Then, to build a standard "Default" image, run the following in podman:
|
||||
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 build-image -p Default
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Default
|
||||
|
||||
To build a "Default" SelfInstall ISO, you can add additional flags, for example:
|
||||
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 build-image -p Default-SelfInstall
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Default-SelfInstall
|
||||
|
||||
To build an image with a RealTime kernel, e.g. a RAW disk image ("Default"), use the following:
|
||||
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 build-image -p Base-RT
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Base-RT
|
||||
|
||||
To build an image that supports a large block/sectorsize (4096), use the "-b" flag, for example:
|
||||
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 build-image -p Default-SelfInstall -b
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Default-SelfInstall -b
|
||||
|
||||
# mkdir mydefs/
|
||||
# cp /path/to/SL-Micro.kiwi mydefs/
|
||||
# cp /path/to/config.sh mydefs/
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.0 build-image
|
||||
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image
|
||||
|
||||
All output will be in the local $(pwd)/output directory, for example:
|
||||
|
||||
# ls -1 output/
|
||||
SL-Micro.x86_64-6.1.changes
|
||||
SL-Micro.x86_64-6.1.packages
|
||||
SL-Micro.x86_64-6.1.raw
|
||||
SL-Micro.x86_64-6.1.verified
|
||||
SLE-Micro.x86_64-6.1.changes
|
||||
SLE-Micro.x86_64-6.1.packages
|
||||
SLE-Micro.x86_64-6.1.raw
|
||||
SLE-Micro.x86_64-6.1.verified
|
||||
build
|
||||
kiwi.result
|
||||
kiwi.result.json
|
||||
|
||||
@@ -16,14 +16,4 @@
|
||||
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||
<param name="var">SUPPORT_LEVEL</param>
|
||||
</service>
|
||||
<service mode="buildtime" name="replace_using_package_version">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="regex">%%kiwi_version%%</param>
|
||||
<param name="package">python3-kiwi</param>
|
||||
</service>
|
||||
<service mode="buildtime" name="replace_using_package_version">
|
||||
<param name="file">README</param>
|
||||
<param name="regex">%%kiwi_version%%</param>
|
||||
<param name="package">python3-kiwi</param>
|
||||
</service>
|
||||
</services>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.5.0-%RELEASE%
|
||||
#!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.5.0
|
||||
#!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.4.0-%RELEASE%
|
||||
#!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.4.0
|
||||
apiVersion: v2
|
||||
appVersion: 1.4.0
|
||||
appVersion: 1.3.1
|
||||
description: A Helm chart for KubeVirt
|
||||
icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/kubevirt/icon/color/kubevirt-icon-color.svg
|
||||
name: kubevirt
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.5.0"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.4.0"
|
||||
|
||||
@@ -231,17 +231,6 @@ spec:
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
commonInstancetypesDeployment:
|
||||
description: CommonInstancetypesDeployment controls the deployment
|
||||
of common-instancetypes resources
|
||||
nullable: true
|
||||
properties:
|
||||
enabled:
|
||||
description: Enabled controls the deployment of common-instancetypes
|
||||
resources, defaults to True.
|
||||
nullable: true
|
||||
type: boolean
|
||||
type: object
|
||||
controllerConfiguration:
|
||||
description: |-
|
||||
ReloadableComponentConfiguration holds all generic k8s configuration options which can
|
||||
@@ -423,23 +412,6 @@ spec:
|
||||
description: PullPolicy describes a policy for if/when to pull
|
||||
a container image
|
||||
type: string
|
||||
instancetype:
|
||||
description: Instancetype configuration
|
||||
nullable: true
|
||||
properties:
|
||||
referencePolicy:
|
||||
description: |-
|
||||
ReferencePolicy defines how an instance type or preference should be referenced by the VM after submission, supported values are:
|
||||
reference (default) - Where a copy of the original object is stashed in a ControllerRevision and referenced by the VM.
|
||||
expand - Where the instance type or preference are expanded into the VM if no revisionNames have been populated.
|
||||
expandAll - Where the instance type or preference are expanded into the VM regardless of revisionNames previously being populated.
|
||||
enum:
|
||||
- reference
|
||||
- expand
|
||||
- expandAll
|
||||
nullable: true
|
||||
type: string
|
||||
type: object
|
||||
ksmConfiguration:
|
||||
description: KSMConfiguration holds the information regarding
|
||||
the enabling the KSM in the nodes (if available).
|
||||
@@ -498,9 +470,8 @@ spec:
|
||||
features
|
||||
properties:
|
||||
maxCpuSockets:
|
||||
description: |-
|
||||
MaxCpuSockets provides a MaxSockets value for VMs that do not provide their own.
|
||||
For VMs with more sockets than maximum the MaxSockets will be set to equal number of sockets.
|
||||
description: MaxCpuSockets holds the maximum amount of sockets
|
||||
that can be hotplugged
|
||||
format: int32
|
||||
type: integer
|
||||
maxGuest:
|
||||
@@ -606,7 +577,7 @@ spec:
|
||||
description: |-
|
||||
CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take.
|
||||
If a live-migration takes longer to migrate than this value multiplied by the size of the VMI,
|
||||
the migration will be cancelled, unless AllowPostCopy is true. Defaults to 150
|
||||
the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800
|
||||
format: int64
|
||||
type: integer
|
||||
disableTLS:
|
||||
@@ -669,6 +640,34 @@ spec:
|
||||
ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding.
|
||||
version: v1alphav1
|
||||
properties:
|
||||
claims:
|
||||
description: |-
|
||||
Claims lists the names of resources, defined in spec.resourceClaims,
|
||||
that are used by this container.
|
||||
|
||||
|
||||
This is an alpha field and requires enabling the
|
||||
DynamicResourceAllocation feature gate.
|
||||
|
||||
|
||||
This field is immutable. It can only be set for containers.
|
||||
items:
|
||||
description: ResourceClaim references one entry
|
||||
in PodSpec.ResourceClaims.
|
||||
properties:
|
||||
name:
|
||||
description: |-
|
||||
Name must match the name of one entry in pod.spec.resourceClaims of
|
||||
the Pod where this field is used. It makes that resource available
|
||||
inside a container.
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
x-kubernetes-list-map-keys:
|
||||
- name
|
||||
x-kubernetes-list-type: map
|
||||
limits:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
@@ -697,7 +696,7 @@ spec:
|
||||
domainAttachmentType:
|
||||
description: |-
|
||||
DomainAttachmentType is a standard domain network attachment method kubevirt supports.
|
||||
Supported values: "tap", "managedTap" (since v1.4).
|
||||
Supported values: "tap".
|
||||
The standard domain attachment can be used instead or in addition to the sidecarImage.
|
||||
version: 1alphav1
|
||||
type: string
|
||||
@@ -875,10 +874,37 @@ spec:
|
||||
usually idle and don't require a lot of memory or cpu.
|
||||
properties:
|
||||
resources:
|
||||
description: |-
|
||||
ResourceRequirementsWithoutClaims describes the compute resource requirements.
|
||||
This struct was taken from the k8s.ResourceRequirements and cleaned up the 'Claims' field.
|
||||
description: ResourceRequirements describes the compute
|
||||
resource requirements.
|
||||
properties:
|
||||
claims:
|
||||
description: |-
|
||||
Claims lists the names of resources, defined in spec.resourceClaims,
|
||||
that are used by this container.
|
||||
|
||||
|
||||
This is an alpha field and requires enabling the
|
||||
DynamicResourceAllocation feature gate.
|
||||
|
||||
|
||||
This field is immutable. It can only be set for containers.
|
||||
items:
|
||||
description: ResourceClaim references one entry in
|
||||
PodSpec.ResourceClaims.
|
||||
properties:
|
||||
name:
|
||||
description: |-
|
||||
Name must match the name of one entry in pod.spec.resourceClaims of
|
||||
the Pod where this field is used. It makes that resource available
|
||||
inside a container.
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
x-kubernetes-list-map-keys:
|
||||
- name
|
||||
x-kubernetes-list-type: map
|
||||
limits:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
@@ -932,8 +958,10 @@ spec:
|
||||
MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections.
|
||||
Protocol versions are based on the following most common TLS configurations:
|
||||
|
||||
|
||||
https://ssl-config.mozilla.org/
|
||||
|
||||
|
||||
Note that SSLv3.0 is not a supported protocol version due to well known
|
||||
vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE
|
||||
enum:
|
||||
@@ -1063,13 +1091,10 @@ spec:
|
||||
referenced object inside the same namespace.
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
description: |-
|
||||
Name of the referent.
|
||||
This field is effectively required, but due to backwards compatibility is
|
||||
allowed to be empty. Instances of this type with an empty value here are
|
||||
almost certainly wrong.
|
||||
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||
TODO: Add other useful fields. apiVersion, kind, uid?
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
@@ -1386,7 +1411,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -1401,7 +1426,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -1569,7 +1594,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -1584,7 +1609,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -1750,7 +1775,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -1765,7 +1790,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -1933,7 +1958,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -1948,7 +1973,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -2139,6 +2164,7 @@ spec:
|
||||
BatchEvictionInterval Represents the interval to wait before issuing the next
|
||||
batch of shutdowns
|
||||
|
||||
|
||||
Defaults to 1 minute
|
||||
type: string
|
||||
batchEvictionSize:
|
||||
@@ -2146,6 +2172,7 @@ spec:
|
||||
BatchEvictionSize Represents the number of VMIs that can be forced updated per
|
||||
the BatchShutdownInteral interval
|
||||
|
||||
|
||||
Defaults to 10
|
||||
type: integer
|
||||
workloadUpdateMethods:
|
||||
@@ -2156,6 +2183,7 @@ spec:
|
||||
precedence over more disruptive methods. For example if both LiveMigrate and Shutdown
|
||||
methods are listed, only VMs which are not live migratable will be restarted/shutdown
|
||||
|
||||
|
||||
An empty list defaults to no automated workload updating
|
||||
items:
|
||||
type: string
|
||||
@@ -2463,7 +2491,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -2478,7 +2506,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -2646,7 +2674,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -2661,7 +2689,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -2827,7 +2855,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -2842,7 +2870,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -3010,7 +3038,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -3025,7 +3053,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -3488,17 +3516,6 @@ spec:
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
commonInstancetypesDeployment:
|
||||
description: CommonInstancetypesDeployment controls the deployment
|
||||
of common-instancetypes resources
|
||||
nullable: true
|
||||
properties:
|
||||
enabled:
|
||||
description: Enabled controls the deployment of common-instancetypes
|
||||
resources, defaults to True.
|
||||
nullable: true
|
||||
type: boolean
|
||||
type: object
|
||||
controllerConfiguration:
|
||||
description: |-
|
||||
ReloadableComponentConfiguration holds all generic k8s configuration options which can
|
||||
@@ -3680,23 +3697,6 @@ spec:
|
||||
description: PullPolicy describes a policy for if/when to pull
|
||||
a container image
|
||||
type: string
|
||||
instancetype:
|
||||
description: Instancetype configuration
|
||||
nullable: true
|
||||
properties:
|
||||
referencePolicy:
|
||||
description: |-
|
||||
ReferencePolicy defines how an instance type or preference should be referenced by the VM after submission, supported values are:
|
||||
reference (default) - Where a copy of the original object is stashed in a ControllerRevision and referenced by the VM.
|
||||
expand - Where the instance type or preference are expanded into the VM if no revisionNames have been populated.
|
||||
expandAll - Where the instance type or preference are expanded into the VM regardless of revisionNames previously being populated.
|
||||
enum:
|
||||
- reference
|
||||
- expand
|
||||
- expandAll
|
||||
nullable: true
|
||||
type: string
|
||||
type: object
|
||||
ksmConfiguration:
|
||||
description: KSMConfiguration holds the information regarding
|
||||
the enabling the KSM in the nodes (if available).
|
||||
@@ -3755,9 +3755,8 @@ spec:
|
||||
features
|
||||
properties:
|
||||
maxCpuSockets:
|
||||
description: |-
|
||||
MaxCpuSockets provides a MaxSockets value for VMs that do not provide their own.
|
||||
For VMs with more sockets than maximum the MaxSockets will be set to equal number of sockets.
|
||||
description: MaxCpuSockets holds the maximum amount of sockets
|
||||
that can be hotplugged
|
||||
format: int32
|
||||
type: integer
|
||||
maxGuest:
|
||||
@@ -3863,7 +3862,7 @@ spec:
|
||||
description: |-
|
||||
CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take.
|
||||
If a live-migration takes longer to migrate than this value multiplied by the size of the VMI,
|
||||
the migration will be cancelled, unless AllowPostCopy is true. Defaults to 150
|
||||
the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800
|
||||
format: int64
|
||||
type: integer
|
||||
disableTLS:
|
||||
@@ -3926,6 +3925,34 @@ spec:
|
||||
ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding.
|
||||
version: v1alphav1
|
||||
properties:
|
||||
claims:
|
||||
description: |-
|
||||
Claims lists the names of resources, defined in spec.resourceClaims,
|
||||
that are used by this container.
|
||||
|
||||
|
||||
This is an alpha field and requires enabling the
|
||||
DynamicResourceAllocation feature gate.
|
||||
|
||||
|
||||
This field is immutable. It can only be set for containers.
|
||||
items:
|
||||
description: ResourceClaim references one entry
|
||||
in PodSpec.ResourceClaims.
|
||||
properties:
|
||||
name:
|
||||
description: |-
|
||||
Name must match the name of one entry in pod.spec.resourceClaims of
|
||||
the Pod where this field is used. It makes that resource available
|
||||
inside a container.
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
x-kubernetes-list-map-keys:
|
||||
- name
|
||||
x-kubernetes-list-type: map
|
||||
limits:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
@@ -3954,7 +3981,7 @@ spec:
|
||||
domainAttachmentType:
|
||||
description: |-
|
||||
DomainAttachmentType is a standard domain network attachment method kubevirt supports.
|
||||
Supported values: "tap", "managedTap" (since v1.4).
|
||||
Supported values: "tap".
|
||||
The standard domain attachment can be used instead or in addition to the sidecarImage.
|
||||
version: 1alphav1
|
||||
type: string
|
||||
@@ -4132,10 +4159,37 @@ spec:
|
||||
usually idle and don't require a lot of memory or cpu.
|
||||
properties:
|
||||
resources:
|
||||
description: |-
|
||||
ResourceRequirementsWithoutClaims describes the compute resource requirements.
|
||||
This struct was taken from the k8s.ResourceRequirements and cleaned up the 'Claims' field.
|
||||
description: ResourceRequirements describes the compute
|
||||
resource requirements.
|
||||
properties:
|
||||
claims:
|
||||
description: |-
|
||||
Claims lists the names of resources, defined in spec.resourceClaims,
|
||||
that are used by this container.
|
||||
|
||||
|
||||
This is an alpha field and requires enabling the
|
||||
DynamicResourceAllocation feature gate.
|
||||
|
||||
|
||||
This field is immutable. It can only be set for containers.
|
||||
items:
|
||||
description: ResourceClaim references one entry in
|
||||
PodSpec.ResourceClaims.
|
||||
properties:
|
||||
name:
|
||||
description: |-
|
||||
Name must match the name of one entry in pod.spec.resourceClaims of
|
||||
the Pod where this field is used. It makes that resource available
|
||||
inside a container.
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
x-kubernetes-list-map-keys:
|
||||
- name
|
||||
x-kubernetes-list-type: map
|
||||
limits:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
@@ -4189,8 +4243,10 @@ spec:
|
||||
MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections.
|
||||
Protocol versions are based on the following most common TLS configurations:
|
||||
|
||||
|
||||
https://ssl-config.mozilla.org/
|
||||
|
||||
|
||||
Note that SSLv3.0 is not a supported protocol version due to well known
|
||||
vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE
|
||||
enum:
|
||||
@@ -4320,13 +4376,10 @@ spec:
|
||||
referenced object inside the same namespace.
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
description: |-
|
||||
Name of the referent.
|
||||
This field is effectively required, but due to backwards compatibility is
|
||||
allowed to be empty. Instances of this type with an empty value here are
|
||||
almost certainly wrong.
|
||||
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||
TODO: Add other useful fields. apiVersion, kind, uid?
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
@@ -4643,7 +4696,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -4658,7 +4711,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -4826,7 +4879,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -4841,7 +4894,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -5007,7 +5060,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -5022,7 +5075,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -5190,7 +5243,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -5205,7 +5258,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -5396,6 +5449,7 @@ spec:
|
||||
BatchEvictionInterval Represents the interval to wait before issuing the next
|
||||
batch of shutdowns
|
||||
|
||||
|
||||
Defaults to 1 minute
|
||||
type: string
|
||||
batchEvictionSize:
|
||||
@@ -5403,6 +5457,7 @@ spec:
|
||||
BatchEvictionSize Represents the number of VMIs that can be forced updated per
|
||||
the BatchShutdownInteral interval
|
||||
|
||||
|
||||
Defaults to 10
|
||||
type: integer
|
||||
workloadUpdateMethods:
|
||||
@@ -5413,6 +5468,7 @@ spec:
|
||||
precedence over more disruptive methods. For example if both LiveMigrate and Shutdown
|
||||
methods are listed, only VMs which are not live migratable will be restarted/shutdown
|
||||
|
||||
|
||||
An empty list defaults to no automated workload updating
|
||||
items:
|
||||
type: string
|
||||
@@ -5720,7 +5776,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -5735,7 +5791,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -5903,7 +5959,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -5918,7 +5974,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -6084,7 +6140,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -6099,7 +6155,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -6267,7 +6323,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -6282,7 +6338,7 @@ spec:
|
||||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
||||
@@ -606,35 +606,15 @@ rules:
|
||||
- apiGroups:
|
||||
- snapshot.kubevirt.io
|
||||
resources:
|
||||
- virtualmachinesnapshots
|
||||
- virtualmachinesnapshots/status
|
||||
- virtualmachinesnapshotcontents
|
||||
- virtualmachinesnapshotcontents/status
|
||||
- virtualmachinesnapshotcontents/finalizers
|
||||
- virtualmachinerestores
|
||||
- virtualmachinerestores/status
|
||||
- '*'
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- patch
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- export.kubevirt.io
|
||||
resources:
|
||||
- virtualmachineexports
|
||||
- virtualmachineexports/status
|
||||
- virtualmachineexports/finalizers
|
||||
- '*'
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- patch
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- pool.kubevirt.io
|
||||
resources:
|
||||
@@ -656,12 +636,6 @@ rules:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- kubevirt.io
|
||||
resources:
|
||||
- virtualmachines/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- subresources.kubevirt.io
|
||||
resources:
|
||||
@@ -870,7 +844,6 @@ rules:
|
||||
- virtualmachineinstances/userlist
|
||||
- virtualmachineinstances/sev/fetchcertchain
|
||||
- virtualmachineinstances/sev/querylaunchmeasurement
|
||||
- virtualmachineinstances/usbredir
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
@@ -1019,7 +992,6 @@ rules:
|
||||
- virtualmachineinstances/userlist
|
||||
- virtualmachineinstances/sev/fetchcertchain
|
||||
- virtualmachineinstances/sev/querylaunchmeasurement
|
||||
- virtualmachineinstances/usbredir
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
@@ -1292,7 +1264,7 @@ metadata:
|
||||
name: virt-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.operator.replicas }}
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
kubevirt.io: virt-operator
|
||||
@@ -1307,7 +1279,17 @@ spec:
|
||||
name: virt-operator
|
||||
spec:
|
||||
affinity:
|
||||
{{- .Values.operator.affinity | toYaml | nindent 8 }}
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- podAffinityTerm:
|
||||
labelSelector:
|
||||
matchExpressions:
|
||||
- key: kubevirt.io
|
||||
operator: In
|
||||
values:
|
||||
- virt-operator
|
||||
topologyKey: kubernetes.io/hostname
|
||||
weight: 1
|
||||
containers:
|
||||
- args:
|
||||
- --port
|
||||
@@ -1343,7 +1325,9 @@ spec:
|
||||
initialDelaySeconds: 5
|
||||
timeoutSeconds: 10
|
||||
resources:
|
||||
{{- .Values.operator.resources | toYaml | nindent 12 }}
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 450Mi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
|
||||
@@ -20,10 +20,6 @@ spec:
|
||||
{{- if .Values.kubevirt.uninstallStrategy }}
|
||||
uninstallStrategy: {{ .Values.kubevirt.uninstallStrategy }}
|
||||
{{- end }}
|
||||
{{- with .Values.kubevirt.workloads }}
|
||||
workloads:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.kubevirt.workloadUpdateStrategy }}
|
||||
workloadUpdateStrategy:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
|
||||
@@ -1,24 +1,7 @@
|
||||
operator:
|
||||
image: registry.suse.com/suse/sles/15.6/virt-operator
|
||||
version: 1.4.0-150600.5.15.1
|
||||
replicas: 2
|
||||
version: 1.3.1-150600.5.9.1
|
||||
pullPolicy: IfNotPresent
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- podAffinityTerm:
|
||||
labelSelector:
|
||||
matchExpressions:
|
||||
- key: kubevirt.io
|
||||
operator: In
|
||||
values:
|
||||
- virt-operator
|
||||
topologyKey: kubernetes.io/hostname
|
||||
weight: 1
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 450Mi
|
||||
|
||||
kubevirt:
|
||||
# Holds kubevirt configurations. Same as the virt-configMap.
|
||||
@@ -31,8 +14,6 @@ kubevirt:
|
||||
# Specifies if KubeVirt can be deleted if workloads are still present.
|
||||
# This is mainly a precaution to avoid accidental data loss.
|
||||
uninstallStrategy: ""
|
||||
# Selectors and tolerations that should apply to KubeVirt workloads.
|
||||
workloads: {}
|
||||
# WorkloadUpdateStrategy defines at the cluster level how to handle automated workload updates.
|
||||
workloadUpdateStrategy: {}
|
||||
# Optionally enable ServiceMonitor for prometheus, see
|
||||
|
||||
@@ -13,10 +13,9 @@ annotations:
|
||||
catalog.cattle.io/ui-component: plugins
|
||||
catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0"
|
||||
apiVersion: v2
|
||||
appVersion: 302.0.0+up1.2.1
|
||||
appVersion: 1.2.1
|
||||
description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard'
|
||||
icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg
|
||||
name: kubevirt-dashboard-extension
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.0+up1.2.1"
|
||||
icon: >-
|
||||
https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg
|
||||
|
||||
@@ -38,7 +38,7 @@ Common labels
|
||||
helm.sh/chart: {{ include "extension-server.chart" . }}
|
||||
{{ include "extension-server.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | replace "+" "_" | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
@@ -60,4 +60,4 @@ Pkg annotations
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -8,7 +8,7 @@ spec:
|
||||
plugin:
|
||||
name: {{ include "extension-server.fullname" . }}
|
||||
version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }}
|
||||
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/302.0.0+up1.2.1
|
||||
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/1.2.1
|
||||
noCache: {{ .Values.plugin.noCache }}
|
||||
noAuth: {{ .Values.plugin.noAuth }}
|
||||
metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
|
||||
@@ -1,16 +1,16 @@
|
||||
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.2_up0.11.0
|
||||
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.2_up0.11.0-%RELEASE%
|
||||
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.2
|
||||
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.0_up0.9.2-%RELEASE%
|
||||
apiVersion: v2
|
||||
appVersion: 0.11.0
|
||||
appVersion: 0.9.2
|
||||
dependencies:
|
||||
- alias: metal3-baremetal-operator
|
||||
name: baremetal-operator
|
||||
repository: file://./charts/baremetal-operator
|
||||
version: 0.9.1
|
||||
version: 0.6.1
|
||||
- alias: metal3-ironic
|
||||
name: ironic
|
||||
repository: file://./charts/ironic
|
||||
version: 0.10.0
|
||||
version: 0.9.1
|
||||
- alias: metal3-mariadb
|
||||
condition: global.enable_mariadb
|
||||
name: mariadb
|
||||
@@ -25,4 +25,4 @@ description: A Helm chart that installs all of the dependencies needed for Metal
|
||||
icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg
|
||||
name: metal3
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.2+up0.11.0"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.9.2"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
apiVersion: v2
|
||||
appVersion: 0.9.1
|
||||
appVersion: 0.8.0
|
||||
description: A Helm chart for baremetal-operator, used by Metal3
|
||||
name: baremetal-operator
|
||||
type: application
|
||||
version: 0.9.1
|
||||
version: 0.6.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.5
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
name: bmceventsubscriptions.metal3.io
|
||||
@@ -34,19 +34,14 @@ spec:
|
||||
description: BMCEventSubscription is the Schema for the fast eventing API
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
@@ -62,9 +57,8 @@ spec:
|
||||
description: A reference to a BareMetalHost
|
||||
type: string
|
||||
httpHeadersRef:
|
||||
description: |-
|
||||
A secret containing HTTP headers which should be passed along to the Destination
|
||||
when making a request
|
||||
description: A secret containing HTTP headers which should be passed
|
||||
along to the Destination when making a request
|
||||
properties:
|
||||
name:
|
||||
description: name is unique within a namespace to reference a
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.5
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
name: dataimages.metal3.io
|
||||
spec:
|
||||
group: metal3.io
|
||||
@@ -20,19 +20,14 @@ spec:
|
||||
description: DataImage is the Schema for the dataimages API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
@@ -40,8 +35,7 @@ spec:
|
||||
description: DataImageSpec defines the desired state of DataImage.
|
||||
properties:
|
||||
url:
|
||||
description: |-
|
||||
Url is the address of the dataImage that we want to attach
|
||||
description: Url is the address of the dataImage that we want to attach
|
||||
to a BareMetalHost
|
||||
type: string
|
||||
required:
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.5
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
name: firmwareschemas.metal3.io
|
||||
@@ -22,19 +22,14 @@ spec:
|
||||
description: FirmwareSchema is the Schema for the firmwareschemas API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
@@ -78,9 +73,8 @@ spec:
|
||||
description: Whether or not this setting is read only.
|
||||
type: boolean
|
||||
unique:
|
||||
description: |-
|
||||
Whether or not this setting's value is unique to this node, e.g.
|
||||
a serial number.
|
||||
description: Whether or not this setting's value is unique to
|
||||
this node, e.g. a serial number.
|
||||
type: boolean
|
||||
upper_bound:
|
||||
description: The highest value for an Integer type setting.
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.5
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
name: hardwaredata.metal3.io
|
||||
@@ -29,19 +29,14 @@ spec:
|
||||
description: HardwareData is the Schema for the hardwaredata API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
@@ -52,7 +47,7 @@ spec:
|
||||
description: The hardware discovered on the host during its inspection.
|
||||
properties:
|
||||
cpu:
|
||||
description: Details of the CPU(s) in the system.
|
||||
description: CPU describes one processor on the host.
|
||||
properties:
|
||||
arch:
|
||||
type: string
|
||||
@@ -70,7 +65,7 @@ spec:
|
||||
type: string
|
||||
type: object
|
||||
firmware:
|
||||
description: System firmware information.
|
||||
description: Firmware describes the firmware on the host.
|
||||
properties:
|
||||
bios:
|
||||
description: The BIOS for this firmware
|
||||
@@ -89,15 +84,14 @@ spec:
|
||||
hostname:
|
||||
type: string
|
||||
nics:
|
||||
description: List of network interfaces for the host.
|
||||
items:
|
||||
description: NIC describes one network interface on the host.
|
||||
properties:
|
||||
ip:
|
||||
description: |-
|
||||
The IP address of the interface. This will be an IPv4 or IPv6 address
|
||||
if one is present. If both IPv4 and IPv6 addresses are present in a
|
||||
dual-stack environment, two nics will be output, one with each IP.
|
||||
description: The IP address of the interface. This will
|
||||
be an IPv4 or IPv6 address if one is present. If both
|
||||
IPv4 and IPv6 addresses are present in a dual-stack environment,
|
||||
two nics will be output, one with each IP.
|
||||
type: string
|
||||
mac:
|
||||
description: The device MAC address
|
||||
@@ -140,20 +134,16 @@ spec:
|
||||
type: object
|
||||
type: array
|
||||
ramMebibytes:
|
||||
description: The host's amount of memory in Mebibytes.
|
||||
type: integer
|
||||
storage:
|
||||
description: List of storage (disk, SSD, etc.) available to the
|
||||
host.
|
||||
items:
|
||||
description: Storage describes one storage device (disk, SSD,
|
||||
etc.) on the host.
|
||||
properties:
|
||||
alternateNames:
|
||||
description: |-
|
||||
A list of alternate Linux device names of the disk, e.g. "/dev/sda".
|
||||
Note that this list is not exhaustive, and names may not be stable
|
||||
across reboots.
|
||||
description: A list of alternate Linux device names of the
|
||||
disk, e.g. "/dev/sda". Note that this list is not exhaustive,
|
||||
and names may not be stable across reboots.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
@@ -164,17 +154,15 @@ spec:
|
||||
description: Hardware model
|
||||
type: string
|
||||
name:
|
||||
description: |-
|
||||
A Linux device name of the disk, e.g.
|
||||
"/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". This will be a name
|
||||
that is stable across reboots if one is available.
|
||||
description: A Linux device name of the disk, e.g. "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0".
|
||||
This will be a name that is stable across reboots if one
|
||||
is available.
|
||||
type: string
|
||||
rotational:
|
||||
description: |-
|
||||
Whether this disk represents rotational storage.
|
||||
This field is not recommended for usage, please
|
||||
prefer using 'Type' field instead, this field
|
||||
will be deprecated eventually.
|
||||
description: Whether this disk represents rotational storage.
|
||||
This field is not recommended for usage, please prefer
|
||||
using 'Type' field instead, this field will be deprecated
|
||||
eventually.
|
||||
type: boolean
|
||||
serialNumber:
|
||||
description: The serial number of the device
|
||||
@@ -205,7 +193,8 @@ spec:
|
||||
type: object
|
||||
type: array
|
||||
systemVendor:
|
||||
description: System vendor information.
|
||||
description: HardwareSystemVendor stores details about the whole
|
||||
hardware system.
|
||||
properties:
|
||||
manufacturer:
|
||||
type: string
|
||||
|
||||
@@ -3,9 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.5
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
name: hostfirmwarecomponents.metal3.io
|
||||
spec:
|
||||
group: metal3.io
|
||||
@@ -23,19 +21,14 @@ spec:
|
||||
API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
@@ -89,35 +82,43 @@ spec:
|
||||
description: Track whether updates stored in the spec are valid based
|
||||
on the schema
|
||||
items:
|
||||
description: Condition contains details for one aspect of the current
|
||||
state of this API Resource.
|
||||
description: "Condition contains details for one aspect of the current
|
||||
state of this API Resource. --- This struct is intended for direct
|
||||
use as an array at the field path .status.conditions. For example,
|
||||
\n type FooStatus struct{ // Represents the observations of a
|
||||
foo's current state. // Known .status.conditions.type are: \"Available\",
|
||||
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
|
||||
// +listType=map // +listMapKey=type Conditions []metav1.Condition
|
||||
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
|
||||
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: |-
|
||||
lastTransitionTime is the last time the condition transitioned from one status to another.
|
||||
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
||||
description: lastTransitionTime is the last time the condition
|
||||
transitioned from one status to another. This should be when
|
||||
the underlying condition changed. If that is not known, then
|
||||
using the time when the API field changed is acceptable.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: |-
|
||||
message is a human readable message indicating details about the transition.
|
||||
This may be an empty string.
|
||||
description: message is a human readable message indicating
|
||||
details about the transition. This may be an empty string.
|
||||
maxLength: 32768
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: |-
|
||||
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
||||
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
||||
with respect to the current state of the instance.
|
||||
description: observedGeneration represents the .metadata.generation
|
||||
that the condition was set based upon. For instance, if .metadata.generation
|
||||
is currently 12, but the .status.conditions[x].observedGeneration
|
||||
is 9, the condition is out of date with respect to the current
|
||||
state of the instance.
|
||||
format: int64
|
||||
minimum: 0
|
||||
type: integer
|
||||
reason:
|
||||
description: |-
|
||||
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
||||
Producers of specific condition types may define expected values and meanings for this field,
|
||||
and whether the values are considered a guaranteed API.
|
||||
The value should be a CamelCase string.
|
||||
description: reason contains a programmatic identifier indicating
|
||||
the reason for the condition's last transition. Producers
|
||||
of specific condition types may define expected values and
|
||||
meanings for this field, and whether the values are considered
|
||||
a guaranteed API. The value should be a CamelCase string.
|
||||
This field may not be empty.
|
||||
maxLength: 1024
|
||||
minLength: 1
|
||||
@@ -132,6 +133,10 @@ spec:
|
||||
type: string
|
||||
type:
|
||||
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||
--- Many .condition.type values are consistent across resources
|
||||
like Available, but because arbitrary conditions can be useful
|
||||
(see .node.status.conditions), the ability to deconflict is
|
||||
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
||||
maxLength: 316
|
||||
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
||||
type: string
|
||||
@@ -151,9 +156,8 @@ spec:
|
||||
format: date-time
|
||||
type: string
|
||||
updates:
|
||||
description: |-
|
||||
Updates is the list of all firmware components that should be updated
|
||||
they are specified via name and url fields.
|
||||
description: Updates is the list of all firmware components that should
|
||||
be updated they are specified via name and url fields.
|
||||
items:
|
||||
description: FirmwareUpdate defines a firmware update specification.
|
||||
properties:
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.5
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
name: hostfirmwaresettings.metal3.io
|
||||
@@ -25,19 +25,14 @@ spec:
|
||||
API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
@@ -64,35 +59,43 @@ spec:
|
||||
description: Track whether settings stored in the spec are valid based
|
||||
on the schema
|
||||
items:
|
||||
description: Condition contains details for one aspect of the current
|
||||
state of this API Resource.
|
||||
description: "Condition contains details for one aspect of the current
|
||||
state of this API Resource. --- This struct is intended for direct
|
||||
use as an array at the field path .status.conditions. For example,
|
||||
\n type FooStatus struct{ // Represents the observations of a
|
||||
foo's current state. // Known .status.conditions.type are: \"Available\",
|
||||
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
|
||||
// +listType=map // +listMapKey=type Conditions []metav1.Condition
|
||||
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
|
||||
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: |-
|
||||
lastTransitionTime is the last time the condition transitioned from one status to another.
|
||||
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
||||
description: lastTransitionTime is the last time the condition
|
||||
transitioned from one status to another. This should be when
|
||||
the underlying condition changed. If that is not known, then
|
||||
using the time when the API field changed is acceptable.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: |-
|
||||
message is a human readable message indicating details about the transition.
|
||||
This may be an empty string.
|
||||
description: message is a human readable message indicating
|
||||
details about the transition. This may be an empty string.
|
||||
maxLength: 32768
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: |-
|
||||
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
||||
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
||||
with respect to the current state of the instance.
|
||||
description: observedGeneration represents the .metadata.generation
|
||||
that the condition was set based upon. For instance, if .metadata.generation
|
||||
is currently 12, but the .status.conditions[x].observedGeneration
|
||||
is 9, the condition is out of date with respect to the current
|
||||
state of the instance.
|
||||
format: int64
|
||||
minimum: 0
|
||||
type: integer
|
||||
reason:
|
||||
description: |-
|
||||
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
||||
Producers of specific condition types may define expected values and meanings for this field,
|
||||
and whether the values are considered a guaranteed API.
|
||||
The value should be a CamelCase string.
|
||||
description: reason contains a programmatic identifier indicating
|
||||
the reason for the condition's last transition. Producers
|
||||
of specific condition types may define expected values and
|
||||
meanings for this field, and whether the values are considered
|
||||
a guaranteed API. The value should be a CamelCase string.
|
||||
This field may not be empty.
|
||||
maxLength: 1024
|
||||
minLength: 1
|
||||
@@ -107,6 +110,10 @@ spec:
|
||||
type: string
|
||||
type:
|
||||
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||
--- Many .condition.type values are consistent across resources
|
||||
like Available, but because arbitrary conditions can be useful
|
||||
(see .node.status.conditions), the ability to deconflict is
|
||||
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
||||
maxLength: 316
|
||||
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
||||
type: string
|
||||
@@ -126,9 +133,8 @@ spec:
|
||||
format: date-time
|
||||
type: string
|
||||
schema:
|
||||
description: |-
|
||||
FirmwareSchema is a reference to the Schema used to describe each
|
||||
FirmwareSetting. By default, this will be a Schema in the same
|
||||
description: FirmwareSchema is a reference to the Schema used to describe
|
||||
each FirmwareSetting. By default, this will be a Schema in the same
|
||||
Namespace as the settings but it can be overwritten in the Spec
|
||||
properties:
|
||||
name:
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.5
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
name: hostupdatepolicies.metal3.io
|
||||
spec:
|
||||
group: metal3.io
|
||||
names:
|
||||
kind: HostUpdatePolicy
|
||||
listKind: HostUpdatePolicyList
|
||||
plural: hostupdatepolicies
|
||||
singular: hostupdatepolicy
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: HostUpdatePolicy is the Schema for the hostupdatepolicy API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: HostUpdatePolicySpec defines the desired state of HostUpdatePolicy.
|
||||
properties:
|
||||
firmwareSettings:
|
||||
description: Defines policy for changing firmware settings
|
||||
enum:
|
||||
- onPreparing
|
||||
- onReboot
|
||||
type: string
|
||||
firmwareUpdates:
|
||||
description: Defines policy for updating firmware
|
||||
enum:
|
||||
- onPreparing
|
||||
- onReboot
|
||||
type: string
|
||||
type: object
|
||||
status:
|
||||
description: HostUpdatePolicyStatus defines the observed state of HostUpdatePolicy.
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.5
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
name: preprovisioningimages.metal3.io
|
||||
@@ -34,19 +34,14 @@ spec:
|
||||
API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
@@ -67,9 +62,8 @@ spec:
|
||||
to build the image.
|
||||
type: string
|
||||
networkDataName:
|
||||
description: |-
|
||||
networkDataName is the name of a Secret in the local namespace that
|
||||
contains network data to build in to the image.
|
||||
description: networkDataName is the name of a Secret in the local
|
||||
namespace that contains network data to build in to the image.
|
||||
type: string
|
||||
type: object
|
||||
status:
|
||||
@@ -83,35 +77,43 @@ spec:
|
||||
conditions:
|
||||
description: conditions describe the state of the built image
|
||||
items:
|
||||
description: Condition contains details for one aspect of the current
|
||||
state of this API Resource.
|
||||
description: "Condition contains details for one aspect of the current
|
||||
state of this API Resource. --- This struct is intended for direct
|
||||
use as an array at the field path .status.conditions. For example,
|
||||
\n type FooStatus struct{ // Represents the observations of a
|
||||
foo's current state. // Known .status.conditions.type are: \"Available\",
|
||||
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
|
||||
// +listType=map // +listMapKey=type Conditions []metav1.Condition
|
||||
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
|
||||
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: |-
|
||||
lastTransitionTime is the last time the condition transitioned from one status to another.
|
||||
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
||||
description: lastTransitionTime is the last time the condition
|
||||
transitioned from one status to another. This should be when
|
||||
the underlying condition changed. If that is not known, then
|
||||
using the time when the API field changed is acceptable.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: |-
|
||||
message is a human readable message indicating details about the transition.
|
||||
This may be an empty string.
|
||||
description: message is a human readable message indicating
|
||||
details about the transition. This may be an empty string.
|
||||
maxLength: 32768
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: |-
|
||||
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
||||
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
||||
with respect to the current state of the instance.
|
||||
description: observedGeneration represents the .metadata.generation
|
||||
that the condition was set based upon. For instance, if .metadata.generation
|
||||
is currently 12, but the .status.conditions[x].observedGeneration
|
||||
is 9, the condition is out of date with respect to the current
|
||||
state of the instance.
|
||||
format: int64
|
||||
minimum: 0
|
||||
type: integer
|
||||
reason:
|
||||
description: |-
|
||||
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
||||
Producers of specific condition types may define expected values and meanings for this field,
|
||||
and whether the values are considered a guaranteed API.
|
||||
The value should be a CamelCase string.
|
||||
description: reason contains a programmatic identifier indicating
|
||||
the reason for the condition's last transition. Producers
|
||||
of specific condition types may define expected values and
|
||||
meanings for this field, and whether the values are considered
|
||||
a guaranteed API. The value should be a CamelCase string.
|
||||
This field may not be empty.
|
||||
maxLength: 1024
|
||||
minLength: 1
|
||||
@@ -126,6 +128,10 @@ spec:
|
||||
type: string
|
||||
type:
|
||||
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||
--- Many .condition.type values are consistent across resources
|
||||
like Available, but because arbitrary conditions can be useful
|
||||
(see .node.status.conditions), the ability to deconflict is
|
||||
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
||||
maxLength: 316
|
||||
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
||||
type: string
|
||||
@@ -141,14 +147,13 @@ spec:
|
||||
- type
|
||||
x-kubernetes-list-type: map
|
||||
extraKernelParams:
|
||||
description: |-
|
||||
extraKernelParams is a string with extra parameters to pass to the
|
||||
kernel when booting the image over network. Only makes sense for initrd images.
|
||||
description: extraKernelParams is a string with extra parameters to
|
||||
pass to the kernel when booting the image over network. Only makes
|
||||
sense for initrd images.
|
||||
type: string
|
||||
format:
|
||||
description: |-
|
||||
format is the type of image that is available at the download url:
|
||||
either iso or initrd.
|
||||
description: 'format is the type of image that is available at the
|
||||
download url: either iso or initrd.'
|
||||
enum:
|
||||
- iso
|
||||
- initrd
|
||||
@@ -158,14 +163,12 @@ spec:
|
||||
downloaded.
|
||||
type: string
|
||||
kernelUrl:
|
||||
description: |-
|
||||
kernelUrl is the URL from which the kernel of the image can be downloaded.
|
||||
Only makes sense for initrd images.
|
||||
description: kernelUrl is the URL from which the kernel of the image
|
||||
can be downloaded. Only makes sense for initrd images.
|
||||
type: string
|
||||
networkData:
|
||||
description: |-
|
||||
networkData is a reference to the version of the Secret containing the
|
||||
network data used to build the image.
|
||||
description: networkData is a reference to the version of the Secret
|
||||
containing the network data used to build the image.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
|
||||
@@ -184,23 +184,3 @@ rules:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- metal3.io
|
||||
resources:
|
||||
- hostupdatepolicies
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- metal3.io
|
||||
resources:
|
||||
- hostupdatepolicies/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
|
||||
@@ -6,6 +6,6 @@ metadata:
|
||||
{{- include "baremetal-operator.labels" . | nindent 4 }}
|
||||
rules:
|
||||
- nonResourceURLs:
|
||||
- "/metrics"
|
||||
- /metrics
|
||||
verbs:
|
||||
- get
|
||||
@@ -1,7 +1,7 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ include "baremetal-operator.fullname" . }}-metrics-auth-role
|
||||
name: {{ include "baremetal-operator.fullname" . }}-proxy-role
|
||||
labels:
|
||||
{{- include "baremetal-operator.labels" . | nindent 4 }}
|
||||
rules:
|
||||
@@ -1,13 +1,13 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ include "baremetal-operator.fullname" . }}-metrics-auth-rolebinding
|
||||
name: {{ include "baremetal-operator.fullname" . }}-proxy-rolebinding
|
||||
labels:
|
||||
{{- include "baremetal-operator.labels" . | nindent 4 }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: {{ include "baremetal-operator.fullname" . }}-metrics-auth-role
|
||||
name: {{ include "baremetal-operator.fullname" . }}-proxy-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "baremetal-operator.serviceAccountName" . }}
|
||||
@@ -5,7 +5,6 @@
|
||||
{{- $ironicApiHost := print $ironicIP ":6385" }}
|
||||
{{- $ironicBootHost := print $ironicIP ":6180" }}
|
||||
{{- $ironicCacheHost := print $ironicIP ":6180" }}
|
||||
{{- $deployArch := .Values.global.deployArchitecture }}
|
||||
|
||||
apiVersion: v1
|
||||
data:
|
||||
@@ -20,9 +19,8 @@ data:
|
||||
{{- $protocol = "http" }}
|
||||
{{- end }}
|
||||
CACHEURL: "{{ $protocol }}://{{ $ironicCacheHost }}/images"
|
||||
DEPLOY_KERNEL_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.kernel"
|
||||
DEPLOY_RAMDISK_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.initramfs"
|
||||
DEPLOY_ARCHITECTURE: "{{ $deployArch }}"
|
||||
DEPLOY_KERNEL_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.kernel"
|
||||
DEPLOY_RAMDISK_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.initramfs"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: baremetal-operator-ironic
|
||||
|
||||
@@ -24,8 +24,8 @@ spec:
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --metrics-addr=127.0.0.1:8085
|
||||
- --enable-leader-election
|
||||
- --tls-min-version=TLS13
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
@@ -56,9 +56,6 @@ spec:
|
||||
- containerPort: 9443
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
- containerPort: 8443
|
||||
protocol: TCP
|
||||
name: https
|
||||
readinessProbe:
|
||||
failureThreshold: 10
|
||||
httpGet:
|
||||
@@ -87,6 +84,19 @@ spec:
|
||||
mountPath: "/opt/metal3/certs/ca"
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
- args:
|
||||
- --secure-listen-address=0.0.0.0:8443
|
||||
- --upstream=http://127.0.0.1:8085/
|
||||
- --logtostderr=true
|
||||
- --v=10
|
||||
image: "{{ .Values.images.rbacProxy.repository }}:{{ .Values.images.rbacProxy.tag }}"
|
||||
imagePullPolicy: {{ .Values.images.rbacProxy.pullPolicy }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | nindent 10 }}
|
||||
name: kube-rbac-proxy
|
||||
ports:
|
||||
- containerPort: 8443
|
||||
name: https
|
||||
serviceAccountName: {{ include "baremetal-operator.serviceAccountName" . }}
|
||||
terminationGracePeriodSeconds: 10
|
||||
volumes:
|
||||
|
||||
@@ -28,7 +28,11 @@ images:
|
||||
baremetalOperator:
|
||||
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/baremetal-operator
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "0.9.1"
|
||||
tag: "0.8.0"
|
||||
rbacProxy:
|
||||
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/kube-rbac-proxy
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "0.18.1"
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: "manger"
|
||||
|
||||
@@ -3,4 +3,4 @@ appVersion: 26.1.2
|
||||
description: A Helm chart for Ironic, used by Metal3
|
||||
name: ironic
|
||||
type: application
|
||||
version: 0.10.0
|
||||
version: 0.9.1
|
||||
|
||||
@@ -12,7 +12,6 @@ data:
|
||||
{{- $ironicApiHost := print $ironicIP ":6385" }}
|
||||
{{- $ironicBootHost := print $ironicIP ":6180" }}
|
||||
{{- $ironicCacheHost := print $ironicIP ":6180" }}
|
||||
{{- $deployArch := .Values.global.deployArchitecture }}
|
||||
|
||||
{{- if ( .Values.global.enable_dnsmasq ) }}
|
||||
DNSMASQ_BOOT_SERVER_ADDRESS: {{ $ironicBootHost }}
|
||||
@@ -40,9 +39,8 @@ data:
|
||||
{{- end }}
|
||||
IRONIC_EXTERNAL_HTTP_URL: {{ $protocol }}://{{ $ironicCacheHost }}
|
||||
CACHEURL: {{ $protocol }}://{{ $ironicCacheHost }}/images
|
||||
DEPLOY_KERNEL_URL: {{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.kernel
|
||||
DEPLOY_RAMDISK_URL: {{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.initramfs
|
||||
DEPLOY_ARCHITECTURE: {{ $deployArch }}
|
||||
DEPLOY_KERNEL_URL: {{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.kernel
|
||||
DEPLOY_RAMDISK_URL: {{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.initramfs
|
||||
IRONIC_BOOT_BASE_URL: {{ $protocol }}://{{ $ironicBootHost }}
|
||||
IRONIC_VMEDIA_HTTPD_SERVER_NAME: {{ $ironicBootHost }}
|
||||
ENABLE_PXE_BOOT: "{{ .Values.global.enable_pxe_boot }}"
|
||||
|
||||
@@ -77,6 +77,9 @@ spec:
|
||||
mountPath: "/certs/vmedia"
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
- mountPath: /shared/html/tstcerts
|
||||
name: cert-ironic-ca
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
- name: ironic-log-watch
|
||||
image: {{ .Values.images.ironic.repository }}:{{ .Values.images.ironic.tag }}
|
||||
|
||||
@@ -56,11 +56,11 @@ images:
|
||||
ironic:
|
||||
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic
|
||||
pullPolicy: IfNotPresent
|
||||
tag: 26.1.2.4
|
||||
tag: 26.1.2.2
|
||||
ironicIPADownloader:
|
||||
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader
|
||||
pullPolicy: IfNotPresent
|
||||
tag: 3.0.3
|
||||
tag: 3.0.1
|
||||
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
@@ -63,9 +63,6 @@ global:
|
||||
# Name for the MariaDB service
|
||||
databaseServiceName: metal3-mariadb
|
||||
|
||||
# Architecture for deployed nodes (either x86_64 or arm64)
|
||||
deployArchitecture: x86_64
|
||||
|
||||
# In a multi-node cluster use the node selector to ensure the pods
|
||||
# all run on the same host where the dnsmasqDNSServer and provisioningIP
|
||||
# and /opt/media exist. Uncomment the nodeSelector and update the
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9
|
||||
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9-%RELEASE%
|
||||
apiVersion: v2
|
||||
appVersion: v0.14.9
|
||||
appVersion: v0.14.3
|
||||
dependencies:
|
||||
- condition: crds.enabled
|
||||
name: crds
|
||||
repository: file://./charts/crds
|
||||
version: 0.14.9
|
||||
- alias: metallb-frr-k8s
|
||||
condition: frrk8s.enabled
|
||||
- condition: frrk8s.enabled
|
||||
name: frr-k8s
|
||||
repository: file://./charts/frr-k8s
|
||||
version: 0.0.16
|
||||
version: 0.0.15
|
||||
- condition: crds.enabled
|
||||
name: metallb-crds
|
||||
repository: file://./charts/metallb-crds
|
||||
version: 0.14.8
|
||||
description: A network load-balancer implementation for Kubernetes using standard
|
||||
routing protocols
|
||||
home: https://metallb.universe.tf
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# metallb
|
||||
|
||||
  
|
||||
  
|
||||
|
||||
A network load-balancer implementation for Kubernetes using standard routing protocols
|
||||
|
||||
@@ -16,8 +16,8 @@ Kubernetes: `>= 1.19.0-0`
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| | crds | 0.14.9 |
|
||||
| https://metallb.github.io/frr-k8s | frr-k8s | 0.0.16 |
|
||||
| | crds | 0.14.8 |
|
||||
| https://metallb.github.io/frr-k8s | frr-k8s | 0.0.14 |
|
||||
|
||||
## Values
|
||||
|
||||
@@ -79,17 +79,17 @@ Kubernetes: `>= 1.19.0-0`
|
||||
| prometheus.podMonitor.relabelings | list | `[]` | |
|
||||
| prometheus.prometheusRule.additionalLabels | object | `{}` | |
|
||||
| prometheus.prometheusRule.addressPoolExhausted.enabled | bool | `true` | |
|
||||
| prometheus.prometheusRule.addressPoolExhausted.labels.severity | string | `"critical"` | |
|
||||
| prometheus.prometheusRule.addressPoolExhausted.labels.severity | string | `"alert"` | |
|
||||
| prometheus.prometheusRule.addressPoolUsage.enabled | bool | `true` | |
|
||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[0].labels.severity | string | `"warning"` | |
|
||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[0].percent | int | `75` | |
|
||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[1].labels.severity | string | `"warning"` | |
|
||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[1].percent | int | `85` | |
|
||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[2].labels.severity | string | `"critical"` | |
|
||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[2].labels.severity | string | `"alert"` | |
|
||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[2].percent | int | `95` | |
|
||||
| prometheus.prometheusRule.annotations | object | `{}` | |
|
||||
| prometheus.prometheusRule.bgpSessionDown.enabled | bool | `true` | |
|
||||
| prometheus.prometheusRule.bgpSessionDown.labels.severity | string | `"critical"` | |
|
||||
| prometheus.prometheusRule.bgpSessionDown.labels.severity | string | `"alert"` | |
|
||||
| prometheus.prometheusRule.configNotLoaded.enabled | bool | `true` | |
|
||||
| prometheus.prometheusRule.configNotLoaded.labels.severity | string | `"warning"` | |
|
||||
| prometheus.prometheusRule.enabled | bool | `false` | |
|
||||
@@ -99,7 +99,7 @@ Kubernetes: `>= 1.19.0-0`
|
||||
| prometheus.rbacPrometheus | bool | `true` | |
|
||||
| prometheus.rbacProxy.pullPolicy | string | `nil` | |
|
||||
| prometheus.rbacProxy.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"` | |
|
||||
| prometheus.rbacProxy.tag | string | `"v0.18.0"` | |
|
||||
| prometheus.rbacProxy.tag | string | `"v0.12.0"` | |
|
||||
| prometheus.scrapeAnnotations | bool | `false` | |
|
||||
| prometheus.serviceAccount | string | `""` | |
|
||||
| prometheus.serviceMonitor.controller.additionalLabels | object | `{}` | |
|
||||
@@ -122,7 +122,7 @@ Kubernetes: `>= 1.19.0-0`
|
||||
| speaker.frr.enabled | bool | `true` | |
|
||||
| speaker.frr.image.pullPolicy | string | `nil` | |
|
||||
| speaker.frr.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr"` | |
|
||||
| speaker.frr.image.tag | string | `"8.5.6"` | |
|
||||
| speaker.frr.image.tag | string | `"8.4.2"` | |
|
||||
| speaker.frr.metricsPort | int | `7473` | |
|
||||
| speaker.frr.resources | object | `{}` | |
|
||||
| speaker.frrMetrics.resources | object | `{}` | |
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
# crds
|
||||
|
||||
  
|
||||
|
||||
MetalLB CRDs
|
||||
|
||||
**Homepage:** <https://metallb.universe.tf>
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/metallb/metallb>
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0)
|
||||
@@ -1,23 +0,0 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
@@ -1,6 +0,0 @@
|
||||
dependencies:
|
||||
- name: crds
|
||||
repository: ""
|
||||
version: 0.0.16
|
||||
digest: sha256:b54ee64c5e61f1dd38e89efc87ebd1e36cdb7c4dd7c897d9985040dccd713dba
|
||||
generated: "2024-11-22T11:40:47.152053909+01:00"
|
||||
@@ -1,10 +1,5 @@
|
||||
apiVersion: v2
|
||||
appVersion: v0.0.16
|
||||
dependencies:
|
||||
- condition: crds.enabled
|
||||
name: crds
|
||||
repository: file://./charts/crds
|
||||
version: 0.0.16
|
||||
appVersion: v0.0.14
|
||||
description: A cloud native wrapper of FRR
|
||||
home: https://metallb.universe.tf
|
||||
icon: https://metallb.universe.tf/images/logo/metallb-white.png
|
||||
@@ -13,4 +8,4 @@ name: frr-k8s
|
||||
sources:
|
||||
- https://github.com/metallb/frr-k8s
|
||||
type: application
|
||||
version: 0.0.16
|
||||
version: 0.0.15
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frr-k8s
|
||||
|
||||
  
|
||||
  
|
||||
|
||||
A cloud native wrapper of FRR
|
||||
|
||||
@@ -16,7 +16,7 @@ Kubernetes: `>= 1.19.0-0`
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| | crds | 0.0.16 |
|
||||
| | crds | 0.0.14 |
|
||||
|
||||
## Values
|
||||
|
||||
@@ -27,17 +27,17 @@ Kubernetes: `>= 1.19.0-0`
|
||||
| frrk8s.affinity | object | `{}` | |
|
||||
| frrk8s.alwaysBlock | string | `""` | |
|
||||
| frrk8s.disableCertRotation | bool | `false` | |
|
||||
| frrk8s.frr.acceptIncomingBGPConnections | bool | `false` | |
|
||||
| frrk8s.frr.image.pullPolicy | string | `nil` | |
|
||||
| frrk8s.frr.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr"` | |
|
||||
| frrk8s.frr.image.tag | string | `"8.5.6"` | |
|
||||
| frrk8s.frr.image.repository | string | `"quay.io/frrouting/frr"` | |
|
||||
| frrk8s.frr.image.tag | string | `"9.1.0"` | |
|
||||
| frrk8s.frr.metricsBindAddress | string | `"127.0.0.1"` | |
|
||||
| frrk8s.frr.metricsPort | int | `7573` | |
|
||||
| frrk8s.frr.resources | object | `{}` | |
|
||||
| frrk8s.frr.secureMetricsPort | int | `9141` | |
|
||||
| frrk8s.frrMetrics.resources | object | `{}` | |
|
||||
| frrk8s.healthPort | int | `8081` | |
|
||||
| frrk8s.image.pullPolicy | string | `nil` | |
|
||||
| frrk8s.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr-k8s"` | |
|
||||
| frrk8s.image.repository | string | `"quay.io/metallb/frr-k8s"` | |
|
||||
| frrk8s.image.tag | string | `nil` | |
|
||||
| frrk8s.labels.app | string | `"frr-k8s"` | |
|
||||
| frrk8s.livenessProbe.enabled | bool | `true` | |
|
||||
@@ -77,8 +77,8 @@ Kubernetes: `>= 1.19.0-0`
|
||||
| prometheus.namespace | string | `""` | |
|
||||
| prometheus.rbacPrometheus | bool | `false` | |
|
||||
| prometheus.rbacProxy.pullPolicy | string | `nil` | |
|
||||
| prometheus.rbacProxy.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"` | |
|
||||
| prometheus.rbacProxy.tag | string | `"v0.18.0"` | |
|
||||
| prometheus.rbacProxy.repository | string | `"gcr.io/kubebuilder/kube-rbac-proxy"` | |
|
||||
| prometheus.rbacProxy.tag | string | `"v0.12.0"` | |
|
||||
| prometheus.scrapeAnnotations | bool | `false` | |
|
||||
| prometheus.secureMetricsPort | int | `9140` | |
|
||||
| prometheus.serviceAccount | string | `""` | |
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
@@ -1,10 +0,0 @@
|
||||
apiVersion: v2
|
||||
appVersion: v0.0.16
|
||||
description: FRR K8s CRDs
|
||||
home: https://metallb.universe.tf
|
||||
icon: https://metallb.universe.tf/images/logo/metallb-white.png
|
||||
name: crds
|
||||
sources:
|
||||
- https://github.com/metallb/frr-k8s
|
||||
type: application
|
||||
version: 0.0.16
|
||||
@@ -1,14 +0,0 @@
|
||||
# crds
|
||||
|
||||
  
|
||||
|
||||
FRR-K8s CRDs
|
||||
|
||||
**Homepage:** <https://metallb.universe.tf>
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/metallb/frr-k8s>
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0)
|
||||
@@ -156,9 +156,8 @@ spec:
|
||||
the session with.
|
||||
type: string
|
||||
asn:
|
||||
description: |-
|
||||
ASN is the AS number to use for the local end of the session.
|
||||
ASN and DynamicASN are mutually exclusive and one of them must be specified.
|
||||
description: ASN is the AS number to use for the local
|
||||
end of the session.
|
||||
format: int32
|
||||
maximum: 4294967295
|
||||
minimum: 0
|
||||
@@ -188,17 +187,6 @@ spec:
|
||||
will separate IPv4 and IPv6 route exchanges into
|
||||
distinct BGP sessions.
|
||||
type: boolean
|
||||
dynamicASN:
|
||||
description: |-
|
||||
DynamicASN detects the AS number to use for the local end of the session
|
||||
without explicitly setting it via the ASN field. Limited to:
|
||||
internal - if the neighbor's ASN is different than the router's the connection is denied.
|
||||
external - if the neighbor's ASN is the same as the router's the connection is denied.
|
||||
ASN and DynamicASN are mutually exclusive and one of them must be specified.
|
||||
enum:
|
||||
- internal
|
||||
- external
|
||||
type: string
|
||||
ebgpMultiHop:
|
||||
description: EBGPMultiHop indicates if the BGPPeer
|
||||
is multi-hops away.
|
||||
@@ -378,6 +366,7 @@ spec:
|
||||
type: object
|
||||
required:
|
||||
- address
|
||||
- asn
|
||||
type: object
|
||||
type: array
|
||||
prefixes:
|
||||
@@ -50,7 +50,7 @@ data:
|
||||
#
|
||||
vtysh_enable=yes
|
||||
zebra_options=" -A 127.0.0.1 -s 90000000"
|
||||
bgpd_options=" -A 127.0.0.1 {{ if not .Values.frrk8s.frr.acceptIncomingBGPConnections }} -p 0 {{- end }}"
|
||||
bgpd_options=" -A 127.0.0.1"
|
||||
ospfd_options=" -A 127.0.0.1"
|
||||
ospf6d_options=" -A ::1"
|
||||
ripd_options=" -A 127.0.0.1"
|
||||
@@ -199,6 +199,7 @@ spec:
|
||||
{{- with .Values.frrk8s.logLevel }}
|
||||
- --log-level={{ . }}
|
||||
{{- end }}
|
||||
- --health-probe-bind-address={{.Values.prometheus.metricsBindAddress}}:{{ .Values.frrk8s.healthPort }}
|
||||
{{- if .Values.frrk8s.alwaysBlock }}
|
||||
- --always-block={{ .Values.frrk8s.alwaysBlock }}
|
||||
{{- end }}
|
||||
@@ -221,8 +222,8 @@ spec:
|
||||
{{- if .Values.frrk8s.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
port: monitoring
|
||||
path: /healthz
|
||||
port: {{ .Values.frrk8s.healthPort }}
|
||||
host: {{ .Values.prometheus.metricsBindAddress }}
|
||||
initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }}
|
||||
@@ -233,8 +234,8 @@ spec:
|
||||
{{- if .Values.frrk8s.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
port: monitoring
|
||||
path: /healthz
|
||||
port: {{ .Values.frrk8s.healthPort }}
|
||||
host: {{ .Values.prometheus.metricsBindAddress }}
|
||||
initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }}
|
||||
|
||||
@@ -46,7 +46,7 @@ spec:
|
||||
- "--restart-on-rotator-secret-refresh=true"
|
||||
{{- end }}
|
||||
- "--namespace=$(NAMESPACE)"
|
||||
- "--metrics-bind-address=:{{ .Values.prometheus.metricsPort }}"
|
||||
- --health-probe-bind-address=:8081
|
||||
env:
|
||||
- name: NAMESPACE
|
||||
valueFrom:
|
||||
@@ -63,14 +63,11 @@ spec:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
ports:
|
||||
- containerPort: {{ .Values.prometheus.metricsPort }}
|
||||
name: monitoring
|
||||
{{- if .Values.frrk8s.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
port: monitoring
|
||||
path: /healthz
|
||||
port: 8081
|
||||
initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }}
|
||||
failureThreshold: {{ .Values.frrk8s.livenessProbe.failureThreshold }}
|
||||
@@ -78,8 +75,8 @@ spec:
|
||||
{{- if .Values.frrk8s.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
port: monitoring
|
||||
path: /readyz
|
||||
port: 8081
|
||||
initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }}
|
||||
failureThreshold: {{ .Values.frrk8s.readinessProbe.failureThreshold }}
|
||||
|
||||
@@ -53,7 +53,7 @@ prometheus:
|
||||
# the image to be used for the kuberbacproxy container
|
||||
rbacProxy:
|
||||
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"
|
||||
tag: "0.18.1"
|
||||
tag: "v0.18.0"
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# Prometheus Operator ServiceMonitors.
|
||||
@@ -98,7 +98,7 @@ frrk8s:
|
||||
tolerateMaster: true
|
||||
image:
|
||||
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr-k8s"
|
||||
tag: "v0.0.16"
|
||||
tag: "v0.0.14"
|
||||
pullPolicy: IfNotPresent
|
||||
## @param controller.updateStrategy.type FRR-K8s controller daemonset strategy type
|
||||
## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
|
||||
@@ -132,6 +132,7 @@ frrk8s:
|
||||
podAnnotations: {}
|
||||
labels:
|
||||
app: frr-k8s
|
||||
healthPort: 8081
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
failureThreshold: 3
|
||||
@@ -161,17 +162,15 @@ frrk8s:
|
||||
frr:
|
||||
image:
|
||||
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr"
|
||||
tag: "8.5.6"
|
||||
tag: "8.4"
|
||||
pullPolicy: IfNotPresent
|
||||
metricsBindAddress: 127.0.0.1
|
||||
metricsPort: 7573
|
||||
resources: {}
|
||||
secureMetricsPort: 9141
|
||||
acceptIncomingBGPConnections: false
|
||||
reloader:
|
||||
resources: {}
|
||||
frrMetrics:
|
||||
resources: {}
|
||||
crds:
|
||||
enabled: true
|
||||
validationFailurePolicy: Fail
|
||||
|
||||
@@ -3,8 +3,8 @@ appVersion: v0.14.9
|
||||
description: MetalLB CRDs
|
||||
home: https://metallb.universe.tf
|
||||
icon: https://metallb.universe.tf/images/logo/metallb-white.png
|
||||
name: crds
|
||||
name: metallb-crds
|
||||
sources:
|
||||
- https://github.com/metallb/metallb
|
||||
type: application
|
||||
version: 0.14.9
|
||||
version: 0.14.8
|
||||
11
metallb-chart/charts/metallb-crds/README.md
Normal file
11
metallb-chart/charts/metallb-crds/README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# crds
|
||||
|
||||
  
|
||||
|
||||
MetalLB CRDs
|
||||
|
||||
**Homepage:** <https://metallb.universe.tf>
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/metallb/metallb>
|
||||
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.3
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: bfdprofiles.metallb.io
|
||||
spec:
|
||||
group: metallb.io
|
||||
@@ -123,7 +123,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.3
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: bgpadvertisements.metallb.io
|
||||
spec:
|
||||
group: metallb.io
|
||||
@@ -329,7 +329,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.3
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: bgppeers.metallb.io
|
||||
spec:
|
||||
conversion:
|
||||
@@ -365,8 +365,6 @@ spec:
|
||||
- jsonPath: .spec.ebgpMultiHop
|
||||
name: Multi Hops
|
||||
type: string
|
||||
deprecated: true
|
||||
deprecationWarning: v1beta1 is deprecated, please use v1beta2
|
||||
name: v1beta1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
@@ -528,26 +526,15 @@ spec:
|
||||
default: false
|
||||
description: To set if we want to disable MP BGP that will separate IPv4 and IPv6 route exchanges into distinct BGP sessions.
|
||||
type: boolean
|
||||
dynamicASN:
|
||||
description: |-
|
||||
DynamicASN detects the AS number to use for the remote end of the session
|
||||
without explicitly setting it via the ASN field. Limited to:
|
||||
internal - if the neighbor's ASN is different than MyASN connection is denied.
|
||||
external - if the neighbor's ASN is the same as MyASN the connection is denied.
|
||||
ASN and DynamicASN are mutually exclusive and one of them must be specified.
|
||||
enum:
|
||||
- internal
|
||||
- external
|
||||
type: string
|
||||
ebgpMultiHop:
|
||||
description: To set if the BGPPeer is multi-hops away. Needed for FRR mode only.
|
||||
type: boolean
|
||||
enableGracefulRestart:
|
||||
description: |-
|
||||
EnableGracefulRestart allows BGP peer to continue to forward data packets
|
||||
along known routes while the routing protocol information is being
|
||||
restored. This field is immutable because it requires restart of the BGP
|
||||
session. Supported for FRR mode only.
|
||||
EnableGracefulRestart allows BGP peer to continue to forward data packets along
|
||||
known routes while the routing protocol information is being restored.
|
||||
This field is immutable because it requires restart of the BGP session
|
||||
Supported for FRR mode only.
|
||||
type: boolean
|
||||
x-kubernetes-validations:
|
||||
- message: EnableGracefulRestart cannot be changed after creation
|
||||
@@ -635,9 +622,7 @@ spec:
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
peerASN:
|
||||
description: |-
|
||||
AS number to expect from the remote end of the session.
|
||||
ASN and DynamicASN are mutually exclusive and one of them must be specified.
|
||||
description: AS number to expect from the remote end of the session.
|
||||
format: int32
|
||||
maximum: 4294967295
|
||||
minimum: 0
|
||||
@@ -664,6 +649,7 @@ spec:
|
||||
type: string
|
||||
required:
|
||||
- myASN
|
||||
- peerASN
|
||||
- peerAddress
|
||||
type: object
|
||||
status:
|
||||
@@ -679,7 +665,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.3
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: communities.metallb.io
|
||||
spec:
|
||||
group: metallb.io
|
||||
@@ -744,7 +730,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.3
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: ipaddresspools.metallb.io
|
||||
spec:
|
||||
group: metallb.io
|
||||
@@ -954,7 +940,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.3
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: l2advertisements.metallb.io
|
||||
spec:
|
||||
group: metallb.io
|
||||
@@ -1134,7 +1120,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.3
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: servicel2statuses.metallb.io
|
||||
spec:
|
||||
group: metallb.io
|
||||
@@ -111,4 +111,3 @@ Create the name of the settings Secret to use.
|
||||
{{ .Values.speaker.frr.metricsPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ spec:
|
||||
- name: METALLB_DEPLOYMENT
|
||||
value: {{ template "metallb.fullname" . }}-controller
|
||||
{{- end }}
|
||||
{{- if and .Values.speaker.enabled .Values.speaker.frr.enabled }}
|
||||
{{- if .Values.speaker.frr.enabled }}
|
||||
- name: METALLB_BGP_TYPE
|
||||
value: frr
|
||||
{{- end }}
|
||||
|
||||
@@ -36,7 +36,6 @@ spec:
|
||||
relabelings:
|
||||
{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.speaker.enabled }}
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: PodMonitor
|
||||
@@ -75,7 +74,6 @@ spec:
|
||||
relabelings:
|
||||
{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
---
|
||||
{{- if .Values.prometheus.rbacPrometheus }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
|
||||
@@ -19,8 +19,8 @@ spec:
|
||||
{{- if .Values.prometheus.prometheusRule.staleConfig.enabled }}
|
||||
- alert: MetalLBStaleConfig
|
||||
annotations:
|
||||
summary: {{`'Stale config on {{ $labels.pod }}'`}}
|
||||
description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has a stale config for > 1 minute'`}}
|
||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
||||
}} has a stale config for > 1 minute'`}}
|
||||
expr: metallb_k8s_client_config_stale_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 1
|
||||
for: 1m
|
||||
{{- with .Values.prometheus.prometheusRule.staleConfig.labels }}
|
||||
@@ -31,8 +31,8 @@ spec:
|
||||
{{- if .Values.prometheus.prometheusRule.configNotLoaded.enabled }}
|
||||
- alert: MetalLBConfigNotLoaded
|
||||
annotations:
|
||||
summary: {{`'Config on {{ $labels.pod }} has not been loaded'`}}
|
||||
description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has not loaded for > 1 minute'`}}
|
||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
||||
}} has not loaded for > 1 minute'`}}
|
||||
expr: metallb_k8s_client_config_loaded_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 0
|
||||
for: 1m
|
||||
{{- with .Values.prometheus.prometheusRule.configNotLoaded.labels }}
|
||||
@@ -43,8 +43,8 @@ spec:
|
||||
{{- if .Values.prometheus.prometheusRule.addressPoolExhausted.enabled }}
|
||||
- alert: MetalLBAddressPoolExhausted
|
||||
annotations:
|
||||
summary: {{`'Exhausted address pool on {{ $labels.pod }}'`}}
|
||||
description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has exhausted address pool {{ $labels.pool }} for > 1 minute'`}}
|
||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
||||
}} has exhausted address pool {{ $labels.pool }} for > 1 minute'`}}
|
||||
expr: metallb_allocator_addresses_in_use_total >= on(pool) metallb_allocator_addresses_total
|
||||
for: 1m
|
||||
{{- with .Values.prometheus.prometheusRule.addressPoolExhausted.labels }}
|
||||
@@ -57,8 +57,8 @@ spec:
|
||||
{{- range .Values.prometheus.prometheusRule.addressPoolUsage.thresholds }}
|
||||
- alert: MetalLBAddressPoolUsage{{ .percent }}Percent
|
||||
annotations:
|
||||
summary: {{`'Exhausted address pool on {{ $labels.pod }}'`}}
|
||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has address pool {{ $labels.pool }} past `}}{{ .percent }}{{`% usage for > 1 minute'`}}
|
||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
||||
}} has address pool {{ $labels.pool }} past `}}{{ .percent }}{{`% usage for > 1 minute'`}}
|
||||
expr: ( metallb_allocator_addresses_in_use_total / on(pool) metallb_allocator_addresses_total ) * 100 > {{ .percent }}
|
||||
{{- with .labels }}
|
||||
labels:
|
||||
@@ -69,8 +69,8 @@ spec:
|
||||
{{- if .Values.prometheus.prometheusRule.bgpSessionDown.enabled }}
|
||||
- alert: MetalLBBGPSessionDown
|
||||
annotations:
|
||||
summary: {{`'BGP session down on {{ $labels.pod }}'`}}
|
||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has BGP session {{ $labels.peer }} down for > 1 minute'`}}
|
||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
||||
}} has BGP session {{ $labels.peer }} down for > 1 minute'`}}
|
||||
expr: metallb_bgp_session_up{job=~"{{ template "metallb.fullname" . }}.*"} == 0
|
||||
for: 1m
|
||||
{{- with .Values.prometheus.prometheusRule.bgpSessionDown.labels }}
|
||||
|
||||
@@ -19,11 +19,11 @@ rules:
|
||||
resources: ["events"]
|
||||
verbs: ["create", "patch"]
|
||||
- apiGroups: ["admissionregistration.k8s.io"]
|
||||
resources: ["validatingwebhookconfigurations"]
|
||||
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
|
||||
resourceNames: ["metallb-webhook-configuration"]
|
||||
verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
|
||||
- apiGroups: ["admissionregistration.k8s.io"]
|
||||
resources: ["validatingwebhookconfigurations"]
|
||||
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
|
||||
verbs: ["list", "watch"]
|
||||
- apiGroups: ["apiextensions.k8s.io"]
|
||||
resources: ["customresourcedefinitions"]
|
||||
@@ -41,7 +41,6 @@ rules:
|
||||
resources: ["subjectaccessreviews"]
|
||||
verbs: ["create"]
|
||||
{{- end }}
|
||||
{{- if .Values.speaker.enabled }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
@@ -73,7 +72,7 @@ rules:
|
||||
{{- if or .Values.frrk8s.enabled .Values.frrk8s.external }}
|
||||
- apiGroups: ["frrk8s.metallb.io"]
|
||||
resources: ["frrconfigurations"]
|
||||
verbs: ["get", "list", "watch","create","update","delete"]
|
||||
verbs: ["get", "list", "watch","create","update"]
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
@@ -110,7 +109,6 @@ rules:
|
||||
- apiGroups: ["metallb.io"]
|
||||
resources: ["communities"]
|
||||
verbs: ["get", "list", "watch"]
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
@@ -119,7 +117,7 @@ metadata:
|
||||
namespace: {{ .Release.Namespace | quote }}
|
||||
labels: {{- include "metallb.labels" . | nindent 4 }}
|
||||
rules:
|
||||
{{- if and .Values.speaker.enabled .Values.speaker.memberlist.enabled }}
|
||||
{{- if .Values.speaker.memberlist.enabled }}
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets"]
|
||||
verbs: ["create", "get", "list", "watch"]
|
||||
@@ -168,7 +166,6 @@ roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: {{ template "metallb.fullname" . }}:controller
|
||||
{{- if .Values.speaker.enabled }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
@@ -198,7 +195,6 @@ roleRef:
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "metallb.speaker.serviceAccountName" . }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
|
||||
@@ -13,7 +13,7 @@ metadata:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if and .Values.speaker.enabled .Values.speaker.serviceAccount.create }}
|
||||
{{- if .Values.speaker.serviceAccount.create }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
{{- if and .Values.prometheus.serviceMonitor.enabled .Values.prometheus.podMonitor.enabled }}
|
||||
{{- fail "prometheus.serviceMonitor.enabled and prometheus.podMonitor.enabled cannot both be set" }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.prometheus.serviceMonitor.enabled }}
|
||||
{{- if .Values.speaker.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
@@ -94,7 +89,6 @@ spec:
|
||||
{{- end }}
|
||||
sessionAffinity: None
|
||||
type: ClusterIP
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
@@ -103,6 +97,7 @@ metadata:
|
||||
namespace: {{ .Release.Namespace | quote }}
|
||||
labels:
|
||||
{{- include "metallb.labels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: speaker
|
||||
{{- if .Values.prometheus.serviceMonitor.controller.additionalLabels }}
|
||||
{{ toYaml .Values.prometheus.serviceMonitor.controller.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
|
||||
@@ -45,7 +45,7 @@ prometheus:
|
||||
# certificate to be used.
|
||||
controllerMetricsTLSSecret: ""
|
||||
|
||||
# prometheus doesn't have the permission to scrape all namespaces so we give it permission to scrape metallb's one
|
||||
# prometheus doens't have the permission to scrape all namespaces so we give it permission to scrape metallb's one
|
||||
rbacPrometheus: true
|
||||
|
||||
# the service account used by prometheus
|
||||
@@ -67,7 +67,7 @@ prometheus:
|
||||
# enable support for Prometheus Operator
|
||||
enabled: false
|
||||
|
||||
# optional additional labels for podMonitors
|
||||
# optional additionnal labels for podMonitors
|
||||
additionalLabels: {}
|
||||
|
||||
# optional annotations for podMonitors
|
||||
@@ -146,7 +146,7 @@ prometheus:
|
||||
# enable alertmanager alerts
|
||||
enabled: false
|
||||
|
||||
# optional additional labels for prometheusRules
|
||||
# optional additionnal labels for prometheusRules
|
||||
additionalLabels: {}
|
||||
|
||||
# optional annotations for prometheusRules
|
||||
@@ -168,7 +168,7 @@ prometheus:
|
||||
addressPoolExhausted:
|
||||
enabled: true
|
||||
labels:
|
||||
severity: critical
|
||||
severity: alert
|
||||
|
||||
addressPoolUsage:
|
||||
enabled: true
|
||||
@@ -181,13 +181,13 @@ prometheus:
|
||||
severity: warning
|
||||
- percent: 95
|
||||
labels:
|
||||
severity: critical
|
||||
severity: alert
|
||||
|
||||
# MetalLBBGPSessionDown
|
||||
bgpSessionDown:
|
||||
enabled: true
|
||||
labels:
|
||||
severity: critical
|
||||
severity: alert
|
||||
|
||||
extraAlerts: []
|
||||
|
||||
@@ -201,7 +201,7 @@ controller:
|
||||
# webhookMode: enabled
|
||||
image:
|
||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller"
|
||||
tag: "v0.14.9"
|
||||
tag: "v0.14.8"
|
||||
pullPolicy: IfNotPresent
|
||||
## @param controller.updateStrategy.type Metallb controller deployment strategy type.
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
||||
@@ -282,7 +282,7 @@ speaker:
|
||||
|
||||
image:
|
||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker"
|
||||
tag: "v0.14.9"
|
||||
tag: "v0.14.8"
|
||||
pullPolicy: IfNotPresent
|
||||
## @param speaker.updateStrategy.type Speaker daemonset strategy type
|
||||
## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
|
||||
@@ -346,7 +346,7 @@ speaker:
|
||||
enabled: false
|
||||
image:
|
||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr"
|
||||
tag: "8.5.6"
|
||||
tag: "8.4"
|
||||
pullPolicy: IfNotPresent
|
||||
metricsPort: 7473
|
||||
resources: {}
|
||||
@@ -378,15 +378,3 @@ frrk8s:
|
||||
enabled: false
|
||||
external: false
|
||||
namespace: ""
|
||||
|
||||
# Override any settings for the metallb frr-k8s service here
|
||||
metallb-frr-k8s:
|
||||
prometheus:
|
||||
rbacProxy:
|
||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%kube-rbac-proxy"
|
||||
frrk8s:
|
||||
image:
|
||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr-k8s"
|
||||
frr:
|
||||
image:
|
||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<service name="obs_scm">
|
||||
<param name="url">https://github.com/metallb/metallb</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="revision">v0.14.9</param>
|
||||
<param name="revision">v0.14.8</param>
|
||||
<param name="version">_auto_</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
|
||||
|
||||
Name: metallb
|
||||
Version: 0.14.9
|
||||
Release: 0.14.9
|
||||
Version: 0.14.8
|
||||
Release: 0.14.8
|
||||
Summary: Load Balancer for bare metal Kubernetes clusters
|
||||
License: Apache-2.0
|
||||
URL: https://github.com/metallb/metallb
|
||||
@@ -54,7 +54,7 @@ This package contains the speaker binary.
|
||||
cp ./frr-tools/reloader/frr-reloader.sh frr-reloader.sh
|
||||
|
||||
%build
|
||||
go install -v -mod vendor -buildmode=pie ./controller ./speaker ./frr-tools/metrics ./frr-tools/cp-tool
|
||||
go install -v -mod vendor -buildmode=pie ./controller ./speaker ./frr-tools/metrics
|
||||
mv $HOME/go/bin/metrics $HOME/go/bin/frr-metrics
|
||||
|
||||
%install
|
||||
@@ -63,7 +63,6 @@ mkdir -p %{buildroot}%{_sbindir}/
|
||||
install -D -m 0755 $HOME/go/bin/controller %{buildroot}/
|
||||
install -D -m 0755 $HOME/go/bin/speaker %{buildroot}/
|
||||
install -D -m 0755 $HOME/go/bin/frr-metrics %{buildroot}/
|
||||
install -D -m 0755 $HOME/go/bin/cp-tool %{buildroot}/
|
||||
install -D -m 0755 frr-reloader.sh %{buildroot}/
|
||||
|
||||
%files controller
|
||||
@@ -74,7 +73,6 @@ install -D -m 0755 frr-reloader.sh %{buildroot}/
|
||||
%license LICENSE
|
||||
/speaker
|
||||
/frr-metrics
|
||||
/cp-tool
|
||||
/frr-reloader.sh
|
||||
|
||||
%changelog
|
||||
|
||||
1
nm-configurator/.gitattributes
vendored
Normal file
1
nm-configurator/.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user