forked from suse-edge/Factory
Compare commits
17 Commits
Author | SHA256 | Date | |
---|---|---|---|
b1dfe698ff | |||
9581e030ce | |||
76036c2dd8 | |||
0c6db5d5cc | |||
0b03d14cee | |||
9f2dc045e9 | |||
|
f90f614746 | ||
35f06da226 | |||
8dd6d7d9d7 | |||
f9c5a29a9f | |||
1b83b54b58 | |||
c6b64a252f | |||
689c80ffcc | |||
d8745fe060 | |||
9e39bdcf7f | |||
9e376ffb74 | |||
0fc166ff06 |
@@ -1,23 +0,0 @@
|
||||
name: Check Release Manifest Local Charts Versions
|
||||
on:
|
||||
pull_request:
|
||||
branches-ignore:
|
||||
- "devel"
|
||||
|
||||
|
||||
jobs:
|
||||
sync-pr-project:
|
||||
name: "Check Release Manifest Local Charts Versions"
|
||||
runs-on: tumbleweed
|
||||
steps:
|
||||
# Waiting on PR to get merged for support in upstream action/checkout action
|
||||
- uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
|
||||
name: Checkout repository
|
||||
with:
|
||||
object-format: 'sha256'
|
||||
- name: Setup dependencies
|
||||
run: |
|
||||
zypper in -y python3-PyYAML
|
||||
- name: Check release manifest
|
||||
run: |
|
||||
python3 .obs/manifest-check.py
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
*/.osc
|
||||
*/__pycache__
|
||||
.venv/
|
||||
.venv/
|
||||
.idea/
|
@@ -1,3 +1,3 @@
|
||||
PROJECT = "isv:SUSE:Edge:3.3"
|
||||
PROJECT = "isv:SUSE:Edge:Factory:Devel"
|
||||
REPOSITORY = "https://src.opensuse.org/suse-edge/Factory"
|
||||
BRANCH = "3.3"
|
||||
BRANCH = "devel"
|
||||
|
@@ -1,45 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import yaml
|
||||
import sys
|
||||
|
||||
def get_chart_version(chart_name: str) -> str:
|
||||
with open(f"./{chart_name}-chart/Chart.yaml") as f:
|
||||
chart = yaml.safe_load(f)
|
||||
return chart["version"]
|
||||
|
||||
def get_charts(chart):
|
||||
if not chart["chart"].startswith("%%CHART_REPO%%"):
|
||||
# Not a locally managed chart
|
||||
return {}
|
||||
|
||||
chart_name = chart["chart"][len("%%CHART_REPO%%/%%CHART_PREFIX%%"):]
|
||||
charts = { chart_name: chart["version"] }
|
||||
for child_chart in chart.get("dependencyCharts", []) + chart.get("addonCharts", []):
|
||||
charts.update(get_charts(child_chart))
|
||||
return charts
|
||||
|
||||
def get_charts_list():
|
||||
with open("./release-manifest-image/release_manifest.yaml") as f:
|
||||
manifest = yaml.safe_load(f)
|
||||
charts = {}
|
||||
for chart in manifest["spec"]["components"]["workloads"]["helm"]:
|
||||
charts.update(get_charts(chart))
|
||||
return charts
|
||||
|
||||
def main():
|
||||
print("Checking charts versions in release manifest")
|
||||
success = True
|
||||
charts = get_charts_list()
|
||||
for chart in charts:
|
||||
expected_version = get_chart_version(chart)
|
||||
if expected_version != charts[chart]:
|
||||
success = False
|
||||
print(f"{chart}: Expected: {expected_version}, Got: {charts[chart]}")
|
||||
if not success:
|
||||
sys.exit(1)
|
||||
else:
|
||||
print("All local charts in release manifest are using the right version")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
65
.obs/trigger_package.py
Normal file
65
.obs/trigger_package.py
Normal file
@@ -0,0 +1,65 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
import subprocess
|
||||
|
||||
from sync_packages import get_local_packages
|
||||
from common import PROJECT
|
||||
|
||||
def get_service_repo(package):
|
||||
with open(f"{package}/_service") as service:
|
||||
root = ET.parse(service).getroot()
|
||||
for service in root.findall("service"):
|
||||
if service.get("mode") in ["manual", "disabled"]:
|
||||
continue
|
||||
if service.get("name") not in ["obs_scm", "tar_scm"]:
|
||||
continue
|
||||
ref = service.find("param[@name='revision']").text
|
||||
repo = service.find("param[@name='url']").text
|
||||
return (repo, ref)
|
||||
return None
|
||||
|
||||
|
||||
def get_remote_ref(project, package):
|
||||
files = subprocess.run(["osc", "ls", "-e", project, package], encoding='utf-8' , capture_output=True).stdout.splitlines()
|
||||
for filename in files:
|
||||
if filename.startswith("_service") and filename.endswith(".obsinfo"):
|
||||
obsinfo = subprocess.run(["osc", "cat", project, package, filename], encoding='utf-8' , capture_output=True).stdout.splitlines()
|
||||
for line in obsinfo:
|
||||
if line.startswith("commit:"):
|
||||
return line.split(':')[-1].strip()
|
||||
|
||||
def get_upstream_ref(repo, ref):
|
||||
refs = subprocess.run(["git", "ls-remote", repo, ref, f"{ref}^{{}}"], encoding='utf-8' , capture_output=True).stdout.splitlines()
|
||||
refpath = ref.split('/')
|
||||
best = None
|
||||
for rref in refs:
|
||||
value = rref.split('\t')
|
||||
(sha, name) = (value[0].strip(), value[1].strip())
|
||||
namepath = name.split('/')
|
||||
if len(namepath) == len(refpath) or len(namepath) - 2 == len(refpath):
|
||||
if name.endswith(ref) and best is None:
|
||||
best = sha
|
||||
if name.endswith("^{}"):
|
||||
best = sha
|
||||
return best
|
||||
|
||||
def trigger_service(project, package):
|
||||
subprocess.run(["osc", "service", "remoterun", project, package], encoding="utf-8",check=True)
|
||||
|
||||
def main():
|
||||
packages = get_local_packages()
|
||||
for package in packages:
|
||||
try:
|
||||
(repo, ref) = get_service_repo(package)
|
||||
print(f"{package} uses {repo} at {ref}")
|
||||
except: # Package is not using server side scm service
|
||||
continue
|
||||
remote_ref = get_remote_ref(PROJECT, package)
|
||||
upstream_ref = get_upstream_ref(repo, ref)
|
||||
if upstream_ref != remote_ref:
|
||||
print(f"\t{package} needs a refresh")
|
||||
print(f"\tOBS ref is {remote_ref}")
|
||||
print(f"\tgit ref is {upstream_ref}")
|
||||
trigger_service(PROJECT, package)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@@ -1,6 +1,6 @@
|
||||
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.2
|
||||
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.2_up1.3.1
|
||||
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.2_up1.3.1-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.1
|
||||
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.0
|
||||
#!BuildTag: %%CHART_PREFIX%%akri-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.0-%RELEASE%
|
||||
annotations:
|
||||
catalog.cattle.io/certified: rancher
|
||||
catalog.cattle.io/namespace: cattle-ui-plugin-system
|
||||
@@ -10,13 +10,13 @@ annotations:
|
||||
catalog.cattle.io/ui-component: plugins
|
||||
catalog.cattle.io/display-name: Akri
|
||||
catalog.cattle.io/rancher-version: '>= 2.11.0-0'
|
||||
catalog.cattle.io/ui-extensions-version: '>= 3.0.2 < 4.0.0'
|
||||
catalog.cattle.io/ui-extensions-version: '>= 3.0.4 < 4.0.0'
|
||||
catalog.cattle.io/kube-version: '>= v1.26.0-0'
|
||||
apiVersion: v2
|
||||
appVersion: 303.0.2+up1.3.1
|
||||
appVersion: 303.0.1+up1.3.0
|
||||
description: 'SUSE Edge: Akri extension for Rancher Dashboard'
|
||||
name: akri-dashboard-extension
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.2+up1.3.1"
|
||||
version: "%%CHART_MAJOR%%.0.1+up1.3.0"
|
||||
icon: >-
|
||||
https://raw.githubusercontent.com/cncf/artwork/main/projects/akri/icon/color/akri-icon-color.svg
|
||||
|
@@ -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/303.0.2+up1.3.1
|
||||
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/akri-dashboard-extension/303.0.1+up1.3.0
|
||||
noCache: {{ .Values.plugin.noCache }}
|
||||
noAuth: {{ .Values.plugin.noAuth }}
|
||||
metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
|
||||
|
@@ -8,5 +8,5 @@ plugin:
|
||||
metadata:
|
||||
catalog.cattle.io/display-name: Akri
|
||||
catalog.cattle.io/rancher-version: ">= 2.11.0-0"
|
||||
catalog.cattle.io/ui-extensions-version: ">= 3.0.2 < 4.0.0"
|
||||
catalog.cattle.io/ui-extensions-version: ">= 3.0.4 < 4.0.0"
|
||||
catalog.cattle.io/kube-version: ">= v1.26.0-0"
|
||||
|
@@ -1,9 +1,9 @@
|
||||
#!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.5.0
|
||||
#!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.5.0-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.4.0
|
||||
#!BuildTag: %%CHART_PREFIX%%cdi:%%CHART_MAJOR%%.0.0_up0.4.0-%RELEASE%
|
||||
apiVersion: v2
|
||||
appVersion: 1.61.0
|
||||
appVersion: 1.60.1
|
||||
description: A Helm chart for Containerized Data Importer (CDI)
|
||||
icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/kubevirt/icon/color/kubevirt-icon-color.svg
|
||||
name: cdi
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.5.0"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.4.0"
|
||||
|
@@ -5079,4 +5079,4 @@ spec:
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources: {}
|
||||
subresources: {}
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Verify that all CDI components are installed correctly:
|
||||
kubectl get all -n {{ .Release.Namespace }}
|
||||
kubectl get all -n {{ .Release.Namespace }}
|
||||
|
@@ -59,4 +59,4 @@ Create the name of the service account to use
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -44,4 +44,4 @@
|
||||
{{/* CRD uninstalling hook name */}}
|
||||
{{- define "cdi.crdUninstallHook.name" -}}
|
||||
{{ include "cdi.fullname" . }}-crd-uninstall
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -606,7 +606,17 @@ spec:
|
||||
prometheus.cdi.kubevirt.io: "true"
|
||||
spec:
|
||||
affinity:
|
||||
{{- .Values.deployment.affinity | toYaml | nindent 8 }}
|
||||
podAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- podAffinityTerm:
|
||||
labelSelector:
|
||||
matchExpressions:
|
||||
- key: cdi.kubevirt.io
|
||||
operator: In
|
||||
values:
|
||||
- cdi-operator
|
||||
topologyKey: kubernetes.io/hostname
|
||||
weight: 1
|
||||
containers:
|
||||
- env:
|
||||
- name: DEPLOY_CLUSTER_RESOURCES
|
||||
@@ -640,7 +650,9 @@ spec:
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
resources:
|
||||
{{- .Values.deployment.resources | toYaml | nindent 12 }}
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 150Mi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
@@ -649,8 +661,6 @@ spec:
|
||||
runAsNonRoot: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
terminationMessagePath: /dev/termination-log
|
||||
terminationMessagePolicy: File
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
securityContext:
|
||||
@@ -658,4 +668,4 @@ spec:
|
||||
serviceAccountName: cdi-operator
|
||||
tolerations:
|
||||
- key: CriticalAddonsOnly
|
||||
operator: Exists
|
||||
operator: Exists
|
||||
|
@@ -66,4 +66,4 @@ spec:
|
||||
- deployments/cdi-apiserver
|
||||
- deployments/cdi-deployment
|
||||
- deployments/cdi-uploadproxy
|
||||
- --timeout=60s
|
||||
- --timeout=60s
|
||||
|
@@ -18,4 +18,4 @@ spec:
|
||||
{{- with .Values.cdi.workload }}
|
||||
workload:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -52,4 +52,4 @@ spec:
|
||||
- customresourcedefinitions
|
||||
- cdis.cdi.kubevirt.io
|
||||
securityContext:
|
||||
{{- toYaml .Values.hookSecurityContext | nindent 12 }}
|
||||
{{- toYaml .Values.hookSecurityContext | nindent 12 }}
|
||||
|
@@ -77,4 +77,4 @@ spec:
|
||||
name: cdi-crd-manifest
|
||||
items:
|
||||
- key: crd
|
||||
path: crd.yaml
|
||||
path: crd.yaml
|
||||
|
@@ -53,4 +53,4 @@ spec:
|
||||
- label
|
||||
- namespace
|
||||
- {{ .Release.Namespace }}
|
||||
- cdi.kubevirt.io=
|
||||
- cdi.kubevirt.io=
|
||||
|
@@ -1,5 +1,5 @@
|
||||
deployment:
|
||||
version: 1.61.0-150600.3.12.1
|
||||
version: 1.60.1-150600.3.9.1
|
||||
operatorImage: registry.suse.com/suse/sles/15.6/cdi-operator
|
||||
controllerImage: registry.suse.com/suse/sles/15.6/cdi-controller
|
||||
importerImage: registry.suse.com/suse/sles/15.6/cdi-importer
|
||||
@@ -8,22 +8,6 @@ deployment:
|
||||
uploadserverImage: registry.suse.com/suse/sles/15.6/cdi-uploadserver
|
||||
uploadproxyImage: registry.suse.com/suse/sles/15.6/cdi-uploadproxy
|
||||
pullPolicy: IfNotPresent
|
||||
affinity:
|
||||
podAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- podAffinityTerm:
|
||||
labelSelector:
|
||||
matchExpressions:
|
||||
- key: cdi.kubevirt.io
|
||||
operator: In
|
||||
values:
|
||||
- cdi-operator
|
||||
topologyKey: kubernetes.io/hostname
|
||||
weight: 1
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 150Mi
|
||||
|
||||
cdi:
|
||||
config:
|
||||
@@ -51,4 +35,4 @@ hookSecurityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
- ALL
|
||||
|
@@ -8,7 +8,6 @@ import pprint
|
||||
|
||||
AUTHORIZED_REPOS = [
|
||||
"registry.suse.com/suse/sles/",
|
||||
"registry.suse.com/rancher",
|
||||
"registry.rancher.com",
|
||||
]
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.2.0
|
||||
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.2.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.2.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.2.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,15 +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@_%h.%ad</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="exclude">.git</param>
|
||||
<param name="revision">v1.2.0</param>
|
||||
<!-- Uncomment and set this For Pre-Release Version -->
|
||||
<!-- <param name="version">1.2.0~rc1</param> -->
|
||||
<!-- Uncomment and this for regular version -->
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param>
|
||||
<param name="versionrewrite-replacement">\1.\2.\3</param>
|
||||
<param name="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">
|
||||
|
@@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: edge-image-builder
|
||||
Version: 1.2.0
|
||||
Version: 0
|
||||
Release: 0
|
||||
Summary: Edge Image Builder
|
||||
License: Apache-2.0
|
||||
|
@@ -1,6 +1,7 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.6
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.6-%RELEASE%
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3-%RELEASE%
|
||||
#!BuildVersion: 15.6
|
||||
ARG SLE_VERSION
|
||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||
|
||||
@@ -18,11 +19,11 @@ FROM micro AS final
|
||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||
LABEL org.opencontainers.image.title="SLE Based Ironic IPA Downloader Container Image"
|
||||
LABEL org.opencontainers.image.description="ironic-ipa-downloader based on the SLE Base Container Image."
|
||||
LABEL org.opencontainers.image.version="3.0.6"
|
||||
LABEL org.opencontainers.image.version="3.0.3"
|
||||
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.6-%RELEASE%"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.3-%RELEASE%"
|
||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||
|
@@ -1,45 +0,0 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-aarch64:3.0.6
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-aarch64:3.0.6-%RELEASE%
|
||||
ARG SLE_VERSION
|
||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||
|
||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||
COPY --from=micro / /installroot/
|
||||
RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf
|
||||
RUN zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-aarch64 tar gawk curl xz zstd shadow cpio findutils
|
||||
|
||||
RUN cp /usr/bin/getopt /installroot/
|
||||
|
||||
FROM micro AS final
|
||||
|
||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||
# labelprefix=com.suse.application.ironic
|
||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||
LABEL org.opencontainers.image.title="SLE Based Ironic IPA Downloader Container Image"
|
||||
LABEL org.opencontainers.image.description="ironic-ipa-downloader based on the SLE Base Container Image."
|
||||
LABEL org.opencontainers.image.version="3.0.6"
|
||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.6-%RELEASE%"
|
||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||
LABEL com.suse.image-type="application"
|
||||
LABEL com.suse.release-stage="released"
|
||||
# endlabelprefix
|
||||
|
||||
COPY --from=base /installroot /
|
||||
RUN cp /getopt /usr/bin/
|
||||
RUN cp /srv/tftpboot/openstack-ironic-image/initrd*.zst /tmp
|
||||
RUN cp /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel /tmp
|
||||
RUN sha256sum /srv/tftpboot/openstack-ironic-image/initrd*.zst /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel > /tmp/images.sha256
|
||||
# configure non-root user
|
||||
COPY configure-nonroot.sh /bin/
|
||||
RUN set -euo pipefail; chmod +x /bin/configure-nonroot.sh
|
||||
RUN set -euo pipefail; /bin/configure-nonroot.sh && rm -f /bin/configure-nonroot.sh
|
||||
COPY get-resource.sh /usr/local/bin/get-resource.sh
|
||||
|
||||
RUN set -euo pipefail; chmod +x /usr/local/bin/get-resource.sh
|
@@ -1,45 +0,0 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-x86_64:3.0.6
|
||||
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader-x86_64:3.0.6-%RELEASE%
|
||||
ARG SLE_VERSION
|
||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||
|
||||
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||
COPY --from=micro / /installroot/
|
||||
RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf
|
||||
RUN zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-x86_64 tar gawk curl xz zstd shadow cpio findutils
|
||||
|
||||
RUN cp /usr/bin/getopt /installroot/
|
||||
|
||||
FROM micro AS final
|
||||
|
||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||
# labelprefix=com.suse.application.ironic
|
||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||
LABEL org.opencontainers.image.title="SLE Based Ironic IPA Downloader Container Image"
|
||||
LABEL org.opencontainers.image.description="ironic-ipa-downloader based on the SLE Base Container Image."
|
||||
LABEL org.opencontainers.image.version="3.0.6"
|
||||
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
|
||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.6-%RELEASE%"
|
||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||
LABEL com.suse.image-type="application"
|
||||
LABEL com.suse.release-stage="released"
|
||||
# endlabelprefix
|
||||
|
||||
COPY --from=base /installroot /
|
||||
RUN cp /getopt /usr/bin/
|
||||
RUN cp /srv/tftpboot/openstack-ironic-image/initrd*.zst /tmp
|
||||
RUN cp /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel /tmp
|
||||
RUN sha256sum /srv/tftpboot/openstack-ironic-image/initrd*.zst /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel > /tmp/images.sha256
|
||||
# configure non-root user
|
||||
COPY configure-nonroot.sh /bin/
|
||||
RUN set -euo pipefail; chmod +x /bin/configure-nonroot.sh
|
||||
RUN set -euo pipefail; /bin/configure-nonroot.sh && rm -f /bin/configure-nonroot.sh
|
||||
COPY get-resource.sh /usr/local/bin/get-resource.sh
|
||||
|
||||
RUN set -euo pipefail; chmod +x /usr/local/bin/get-resource.sh
|
@@ -1,4 +0,0 @@
|
||||
<multibuild>
|
||||
<flavor>x86_64</flavor>
|
||||
<flavor>aarch64</flavor>
|
||||
</multibuild>
|
@@ -2,8 +2,6 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service mode="buildtime" name="docker_label_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile.aarch64</param>
|
||||
<param name="file">Dockerfile.x86_64</param>
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
|
@@ -26,15 +26,11 @@ if [ -z "${IPA_BASEURI}" ]; then
|
||||
IMAGE_CHANGED=1
|
||||
# SLES BASED IPA - ironic-ipa-ramdisk-x86_64 and ironic-ipa-ramdisk-aarch64 packages
|
||||
mkdir -p /shared/html/images
|
||||
if [ -f /tmp/initrd-x86_64.zst ]; then
|
||||
cp /tmp/initrd-x86_64.zst /shared/html/images/ironic-python-agent-x86_64.initramfs
|
||||
cp /tmp/openstack-ironic-image.x86_64*.kernel /shared/html/images/ironic-python-agent-x86_64.kernel
|
||||
fi
|
||||
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
|
||||
if [ -f /tmp/initrd-aarch64.zst ]; then
|
||||
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
|
||||
fi
|
||||
cp /tmp/initrd-aarch64.zst /shared/html/images/ironic-python-agent-arm64.initramfs
|
||||
cp /tmp/openstack-ironic-image.aarch64*.kernel /shared/html/images/ironic-python-agent-arm64.kernel
|
||||
|
||||
cp /tmp/images.sha256 /shared/images.sha256
|
||||
else
|
||||
|
@@ -13,6 +13,11 @@ echo "Configure image: [$kiwi_iname]..."
|
||||
#------------------------------------------
|
||||
baseSetupBuildDay
|
||||
|
||||
#======================================
|
||||
# Mount system filesystems
|
||||
#--------------------------------------
|
||||
#baseMount
|
||||
|
||||
#==========================================
|
||||
# remove unneded kernel files
|
||||
#------------------------------------------
|
||||
@@ -34,8 +39,12 @@ suseImportBuildKey
|
||||
#--------------------------------------
|
||||
baseInsertService openstack-ironic-python-agent
|
||||
baseInsertService suse-ironic-image-setup
|
||||
baseInsertService suse-network-setup
|
||||
baseInsertService sshd
|
||||
baseInsertService NetworkManager
|
||||
#suseInsertService sshd
|
||||
#suseInsertService openstack-ironic-python-agent
|
||||
#suseInsertService suse-ironic-image-setup
|
||||
|
||||
echo 'DEFAULT_TIMEZONE="UTC"' >> /etc/sysconfig/clock
|
||||
baseUpdateSysConfig /etc/sysconfig/clock HWCLOCK "-u"
|
||||
@@ -55,7 +64,42 @@ sed -E 's/^(ExecStart=.*\/agetty).*(--noclear.*)/\1 \2 --autologin root/' /usr/l
|
||||
#------------------------------------------
|
||||
echo 'tmpfs /tmp tmpfs size=3G 0 0' >> /etc/fstab
|
||||
|
||||
#==========================================
|
||||
# remove package docs and manuals
|
||||
#------------------------------------------
|
||||
#baseStripDocs
|
||||
#baseStripMans
|
||||
#baseStripInfos
|
||||
|
||||
#======================================
|
||||
# only basic version of vim is
|
||||
# installed; no syntax highlighting
|
||||
#--------------------------------------
|
||||
sed -i -e's/^syntax on/" syntax on/' /etc/vimrc
|
||||
|
||||
#======================================
|
||||
# Remove yast if not in use
|
||||
#--------------------------------------
|
||||
#suseRemoveYaST
|
||||
|
||||
#======================================
|
||||
# Remove package manager
|
||||
#--------------------------------------
|
||||
#suseStripPackager
|
||||
|
||||
#rm -f usr/lib/perl5/*/*/auto/Encode/??/??.so # 9MB
|
||||
|
||||
#======================================
|
||||
# Umount kernel filesystems
|
||||
#--------------------------------------
|
||||
#baseCleanMount
|
||||
|
||||
ln -s /sbin/init /init
|
||||
|
||||
#==========================================
|
||||
# umount
|
||||
#------------------------------------------
|
||||
umount /proc >/dev/null 2>&1
|
||||
|
||||
exit 0
|
||||
|
||||
|
@@ -12,7 +12,6 @@
|
||||
<locale>en_US</locale>
|
||||
<packagemanager>zypper</packagemanager>
|
||||
<rpm-check-signatures>false</rpm-check-signatures>
|
||||
<rpm-excludedocs>true</rpm-excludedocs>
|
||||
<timezone>UTC</timezone>
|
||||
<version>1.0.0</version>
|
||||
</preferences>
|
||||
@@ -103,25 +102,64 @@
|
||||
<package name="libxcb-render0"/>
|
||||
<package name="libxcb-shm0"/>
|
||||
<package name="libxcb1"/>
|
||||
<package name="kernel-firmware-amdgpu"/>
|
||||
<package name="kernel-firmware-ath10k"/>
|
||||
<package name="kernel-firmware-ath11k"/>
|
||||
<package name="kernel-firmware-ath12k"/>
|
||||
<package name="kernel-firmware-atheros"/>
|
||||
<package name="kernel-firmware-bluetooth"/>
|
||||
<package name="kernel-firmware-brcm"/>
|
||||
<package name="kernel-firmware-i915"/>
|
||||
<package name="kernel-firmware-iwlwifi"/>
|
||||
<package name="kernel-firmware-media"/>
|
||||
<package name="kernel-firmware-nvidia"/>
|
||||
<package name="kernel-firmware-qcom"/>
|
||||
<package name="kernel-firmware-radeon"/>
|
||||
<package name="kernel-firmware-realtek"/>
|
||||
<package name="kernel-firmware-sound"/>
|
||||
<package name="kernel-firmware-ti"/>
|
||||
<package name="kernel-firmware-ueagle"/>
|
||||
<package name="plymouth"/>
|
||||
<package name="plymouth-branding-SLE"/>
|
||||
</packages>
|
||||
|
||||
<packages type="image">
|
||||
<package name="checkmedia"/>
|
||||
<package name="plymouth-branding-SLE"/>
|
||||
<package name="plymouth-dracut"/>
|
||||
<package name="plymouth-theme-bgrt"/>
|
||||
<package name="grub2-branding-SLE"/>
|
||||
<package name="iputils"/>
|
||||
<package name="vim"/>
|
||||
<package name="grub2"/>
|
||||
<package name="grub2-x86_64-efi" arch="x86_64"/>
|
||||
<package name="grub2-arm64-efi" arch="aarch64"/>
|
||||
<package name="grub2-i386-pc" arch="x86_64"/>
|
||||
<package name="syslinux" arch="x86_64"/>
|
||||
<package name="lvm2"/>
|
||||
<package name="plymouth"/>
|
||||
<package name="fontconfig"/>
|
||||
<package name="fonts-config"/>
|
||||
<package name="openssh"/>
|
||||
<package name="iproute2"/>
|
||||
<package name="which"/>
|
||||
<package name="kernel-firmware"/>
|
||||
<package name="kernel-default"/>
|
||||
<package name="NetworkManager"/>
|
||||
<package name="nm-configurator"/>
|
||||
<package name="timezone"/>
|
||||
<package name="haveged"/>
|
||||
<!-- ironic-python-agent specific -->
|
||||
<package name="openstack-ironic-python-agent"/>
|
||||
<package name="hdparm"/>
|
||||
<package name="qemu-tools"/>
|
||||
<package name="python311-proliantutils"/>
|
||||
<package name="lshw"/>
|
||||
<package name="dmidecode"/>
|
||||
<package name="efibootmgr"/>
|
||||
<package name="gptfdisk"/>
|
||||
<package name="open-iscsi"/>
|
||||
<package name="hwinfo"/>
|
||||
<package name="ipmitool"/>
|
||||
<package name="iputils"/>
|
||||
<package name="lvm2"/>
|
||||
<package name="net-tools"/>
|
||||
<package name="ntp"/>
|
||||
<package name="parted"/>
|
||||
<package name="psmisc"/>
|
||||
<package name="timezone"/>
|
||||
<package name="which"/>
|
||||
<package name="kbd"/>
|
||||
</packages>
|
||||
|
||||
<packages type="kis">
|
||||
<package name="dracut-kiwi-oem-repart"/>
|
||||
<package name="dracut-kiwi-oem-dump"/>
|
||||
</packages>
|
||||
|
||||
<packages type="bootstrap">
|
||||
<package name="glibc-locale"/>
|
||||
<package name="udev"/>
|
||||
@@ -129,50 +167,5 @@
|
||||
<package name="cracklib-dict-full"/>
|
||||
<package name="ca-certificates"/>
|
||||
<package name="sles-release"/>
|
||||
|
||||
<package name="checkmedia"/>
|
||||
<package name="fontconfig"/>
|
||||
<package name="fonts-config"/>
|
||||
<package name="grub2-arm64-efi" arch="aarch64"/>
|
||||
<package name="grub2-branding-SLE"/>
|
||||
<package name="grub2-i386-pc" arch="x86_64"/>
|
||||
<package name="grub2-x86_64-efi" arch="x86_64"/>
|
||||
<package name="grub2"/>
|
||||
<package name="iproute2"/>
|
||||
<package name="iputils"/>
|
||||
<package name="kernel-default"/>
|
||||
<package name="kernel-firmware-all"/>
|
||||
<package name="lvm2"/>
|
||||
<package name="NetworkManager"/>
|
||||
<package name="nm-configurator"/>
|
||||
<package name="openssh"/>
|
||||
<package name="timezone"/>
|
||||
<package name="which"/>
|
||||
<!-- ironic-python-agent specific -->
|
||||
<package name="dmidecode"/>
|
||||
<package name="efibootmgr"/>
|
||||
<package name="gptfdisk"/>
|
||||
<package name="hdparm"/>
|
||||
<package name="hwinfo"/>
|
||||
<package name="ipmitool"/>
|
||||
<package name="iputils"/>
|
||||
<package name="kbd"/>
|
||||
<package name="lshw"/>
|
||||
<package name="lvm2"/>
|
||||
<package name="net-tools"/>
|
||||
<package name="ntp"/>
|
||||
<package name="open-iscsi"/>
|
||||
<package name="openstack-ironic-python-agent"/>
|
||||
<package name="parted"/>
|
||||
<package name="psmisc"/>
|
||||
<package name="python311-proliantutils"/>
|
||||
<package name="qemu-tools"/>
|
||||
<package name="timezone"/>
|
||||
<package name="which"/>
|
||||
</packages>
|
||||
|
||||
<packages type="kis">
|
||||
<package name="dracut-kiwi-oem-repart"/>
|
||||
<package name="dracut-kiwi-oem-dump"/>
|
||||
</packages>
|
||||
</image>
|
||||
|
@@ -19,7 +19,7 @@
|
||||
|
||||
|
||||
Name: ironic-ipa-ramdisk
|
||||
Version: 3.0.6
|
||||
Version: 3.0.3
|
||||
Release: 0
|
||||
Summary: Kernel and ramdisk image for OpenStack Ironic
|
||||
License: SUSE-EULA
|
||||
@@ -27,7 +27,7 @@ Group: System/Management
|
||||
URL: https://github.com/SUSE-Cloud/
|
||||
Source0: config.sh
|
||||
Source10: ironic-ipa-ramdisk.kiwi
|
||||
Source20: root
|
||||
Source20: root.tar.bz2
|
||||
|
||||
BuildRequires: -post-build-checks
|
||||
BuildRequires: bash
|
||||
@@ -38,7 +38,7 @@ BuildArch: noarch
|
||||
|
||||
BuildRequires: checkmedia
|
||||
BuildRequires: acl
|
||||
BuildRequires: ca-certificates-mozilla-prebuilt
|
||||
BuildRequires: ca-certificates
|
||||
BuildRequires: cracklib-dict-full
|
||||
BuildRequires: cron
|
||||
BuildRequires: dbus-1
|
||||
@@ -62,7 +62,7 @@ BuildRequires: ipmitool
|
||||
BuildRequires: iproute2
|
||||
BuildRequires: iputils
|
||||
BuildRequires: kernel-default
|
||||
BuildRequires: kernel-firmware-all
|
||||
BuildRequires: kernel-firmware
|
||||
BuildRequires: lvm2
|
||||
BuildRequires: net-tools
|
||||
BuildRequires: ntp
|
||||
@@ -123,13 +123,13 @@ Kernel and ramdisk image for use with Metal3
|
||||
For %{_arch}
|
||||
|
||||
%prep
|
||||
mkdir -p /tmp/openstack-ironic-image/build /tmp/openstack-ironic-image/img
|
||||
mkdir -p /tmp/openstack-ironic-image/build /tmp/openstack-ironic-image/root /tmp/openstack-ironic-image/img
|
||||
|
||||
cp -a %{SOURCE0} /tmp/openstack-ironic-image/config.sh
|
||||
|
||||
cp -a %{SOURCE10} /tmp/openstack-ironic-image/config.kiwi
|
||||
|
||||
cp -ar %{SOURCE20} /tmp/openstack-ironic-image/root
|
||||
tar -xC /tmp/openstack-ironic-image/root -f %{SOURCE20}
|
||||
|
||||
%build
|
||||
if ! which kiwi; then
|
||||
|
BIN
ironic-ipa-ramdisk/root.tar.bz2
(Stored with Git LFS)
Normal file
BIN
ironic-ipa-ramdisk/root.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -1,24 +0,0 @@
|
||||
# WARNING: This file has been modified by the diskimage-builder
|
||||
# dhcp-all-interfaces element as this machine is likely running
|
||||
# a ramdisk or needs to attempt auto-configuration on all interfaces.
|
||||
[main]
|
||||
# This makes sense even with dhcp on all interfaces in the event
|
||||
# that the configuration has been or is being supplied via external means.
|
||||
ignore-carrier=*
|
||||
# Use dhclient as was done previously to the Centos8/RHEL8 RPM defaults.
|
||||
# This is because dhclient shuts the interface down after a retry attempt
|
||||
# which allows the link state to reset with some switches, which may be
|
||||
# important for the ramdisk to recover networking.
|
||||
dhcp=dhclient
|
||||
|
||||
[connection]
|
||||
# Keep retrying, this is important for this important espescialy for
|
||||
# ramdisks in environments where varying switch configurations may
|
||||
# cause traffic to be blocked or intermittent connectivity failures
|
||||
# such as those at an edge site may cause issues.
|
||||
autoconnect-retries=-1
|
||||
# Set the timeout. Diskimage-builder dhcp-all-interfaces has a 30
|
||||
# second default. NetworkManager, by default, is 45 seconds.
|
||||
# In some cases where ramdisks are in use, 60 seconds is advisable.
|
||||
ipv4.dhcp-timeout=30
|
||||
ipv6.dhcp-timeout=30
|
@@ -1 +0,0 @@
|
||||
ironic-python-agent/ironic-python-agent.conf.d
|
@@ -1 +0,0 @@
|
||||
SUSE Ironic Python Agent Ramdisk - terminal \l
|
@@ -1,2 +0,0 @@
|
||||
# avoid problems with multiple network interfaces
|
||||
net.ipv4.conf.all.rp_filter=0
|
@@ -1,7 +0,0 @@
|
||||
[Unit]
|
||||
#WantsMountsFor=/mnt/ipa
|
||||
After=mnt-ipa.mount
|
||||
Wants=mnt-ipa.mount
|
||||
|
||||
[Service]
|
||||
ExecStartPre=-/usr/local/bin/suse-network-setup.sh
|
@@ -1,7 +0,0 @@
|
||||
[Unit]
|
||||
Description=config-2 rom consumed by IPA for networking configuration
|
||||
|
||||
[Mount]
|
||||
What=/dev/ipa
|
||||
Where=/mnt/ipa
|
||||
TimeoutSec=30
|
@@ -1,12 +0,0 @@
|
||||
[Unit]
|
||||
Description=Setup ironic-python-agent image
|
||||
After=getty.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/local/bin/suse-ironic-image-setup.sh
|
||||
StandardOutput=journal+console
|
||||
RemainAfterExit=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@@ -1,3 +0,0 @@
|
||||
[Unit]
|
||||
Before=local-fs.target
|
||||
WantedBy=local-fs.target
|
@@ -1 +0,0 @@
|
||||
ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_FS_LABEL}=="config-2", ENV{ID_FS_PUBLISHER_ID}=="?*", PROGRAM="/usr/local/bin/suse-test-config-2.sh", SYMLINK+="ipa"
|
@@ -1,52 +0,0 @@
|
||||
#!/bin/sh
|
||||
PARAMS=$(</proc/cmdline)
|
||||
# find vfloppy device (based on IPA code)
|
||||
VMEDIA_DEVICE=$(find /dev/disk/by-label -iname ir-vfd-dev)
|
||||
# read params from vmedia and prepend them to params from kernel cmdline
|
||||
if [[ -b "$VMEDIA_DEVICE" ]]; then
|
||||
VMEDIA_MOUNT=$(mktemp -d)
|
||||
if mount -o loop $VMEDIA_DEVICE $VMEDIA_MOUNT; then
|
||||
# parameters.txt has one param per line, reformat to match cmdline
|
||||
VMEDIA_PARAMS=$(cat $VMEDIA_MOUNT/parameters.txt | tr '\n' ' ')
|
||||
umount $VMEDIA_MOUNT
|
||||
PARAMS="$VMEDIA_PARAMS $PARAMS"
|
||||
fi
|
||||
rmdir $VMEDIA_MOUNT
|
||||
fi
|
||||
|
||||
# resize /tmp
|
||||
if [[ $PARAMS =~ suse.tmpsize=([^ ]+) ]]; then
|
||||
echo "Resizing /tmp to ${BASH_REMATCH[1]}..."
|
||||
mount -o remount,size=${BASH_REMATCH[1]} /tmp
|
||||
fi
|
||||
# deploy authorized sshkey from kernel command line
|
||||
if [[ $PARAMS =~ sshkey=\"([^\"]+)\" ]]; then
|
||||
echo "Adding authorized SSH key..."
|
||||
(umask 077 ; mkdir -p /root/.ssh)
|
||||
echo "${BASH_REMATCH[1]}" >> /root/.ssh/authorized_keys
|
||||
fi
|
||||
# Inject certs
|
||||
if [[ $PARAMS =~ tls.enabled=(true|True) ]]; then
|
||||
cp /etc/ironic-python-agent.d/ca-certs/* /etc/pki/trust/anchors/
|
||||
cp /etc/ironic-python-agent.d/ca-certs/* /usr/share/pki/trust/anchors/
|
||||
update-ca-certificates
|
||||
fi
|
||||
# autologin root on given console (default tty1) if suse.autologin or coreos.autologin is enabled
|
||||
if [[ $PARAMS =~ (suse|coreos)\.autologin=?([^ ]*) ]]; then
|
||||
tty="${BASH_REMATCH[2]:-tty1}"
|
||||
echo "Enabling autologin on $tty..."
|
||||
systemctl stop getty@$tty
|
||||
systemctl disable getty@$tty
|
||||
systemctl start autologin@$tty
|
||||
fi
|
||||
|
||||
# Append to /etc/hosts
|
||||
# hosts.append=1.2.3.4_foo,4.5.6.7_foo2
|
||||
if [[ $PARAMS =~ hosts.append=([^ ]+) ]]; then
|
||||
HOSTS=${BASH_REMATCH[1]}
|
||||
echo "Appending to hosts ${HOSTS}..."
|
||||
for h in ${HOSTS/,/ }; do
|
||||
echo "${h/_/ }" >> /etc/hosts
|
||||
done
|
||||
cat /etc/hosts
|
||||
fi
|
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
# Inspired by/based on glean-early.sh
|
||||
# https://opendev.org/opendev/glean/src/branch/master/glean/init/glean-early.sh
|
||||
|
||||
# NOTE(TheJulia): We care about iso images, and would expect lower case as a
|
||||
# result. In the case of VFAT partitions, they would be upper case.
|
||||
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
NETWORK_DATA_FILE="/mnt/ipa/openstack/latest/network_data.json"
|
||||
|
||||
|
||||
if [ ! -f "${NETWORK_DATA_FILE}" ]; then
|
||||
echo "No network_data.json found, skipping network configuration"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p /tmp/nmc/{desired,generated}
|
||||
cp ${NETWORK_DATA_FILE} /tmp/nmc/desired/_all.yaml
|
||||
|
||||
nmc generate --config-dir /tmp/nmc/desired --output-dir /tmp/nmc/generated
|
||||
nmc apply --config-dir /tmp/nmc/generated
|
@@ -1,23 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
|
||||
# Transform the ID from the drive being considered to lower case
|
||||
device_publisher_id=$(echo ${ID_FS_PUBLISHER_ID} | tr '[A-Z]' '[a-z]')
|
||||
|
||||
# Retrieve the publisher ID from the command line and convert to lower case
|
||||
cmdline_publisher_id=""
|
||||
if grep -q "ir_pub_id" /proc/cmdline; then
|
||||
cmdline_publisher_id=$(cat /proc/cmdline | sed -e 's/^.*ir_pub_id=//' -e 's/ .*$//')
|
||||
fi
|
||||
|
||||
# Is this the filesystem we are looking for?
|
||||
if [[ "${cmdline_publisher_id}" == "${device_publisher_id}" ]]; then
|
||||
# It is the device we are looking for, return success
|
||||
exit 0
|
||||
else
|
||||
# Not a match, return failure
|
||||
exit 1
|
||||
fi
|
@@ -1,6 +1,6 @@
|
||||
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.2
|
||||
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.2_up1.3.2
|
||||
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.2_up1.3.2-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.1
|
||||
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.1
|
||||
#!BuildTag: %%CHART_PREFIX%%kubevirt-dashboard-extension:%%CHART_MAJOR%%.0.1_up1.3.1-%RELEASE%
|
||||
annotations:
|
||||
catalog.cattle.io/certified: rancher
|
||||
catalog.cattle.io/namespace: cattle-ui-plugin-system
|
||||
@@ -10,13 +10,13 @@ annotations:
|
||||
catalog.cattle.io/ui-component: plugins
|
||||
catalog.cattle.io/display-name: KubeVirt
|
||||
catalog.cattle.io/rancher-version: '>= 2.11.0-0'
|
||||
catalog.cattle.io/ui-extensions-version: '>= 3.0.2 < 4.0.0'
|
||||
catalog.cattle.io/ui-extensions-version: '>= 3.0.4 < 4.0.0'
|
||||
catalog.cattle.io/kube-version: '>= v1.26.0-0'
|
||||
apiVersion: v2
|
||||
appVersion: 303.0.2+up1.3.2
|
||||
appVersion: 303.0.1+up1.3.1
|
||||
description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard'
|
||||
name: kubevirt-dashboard-extension
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.2+up1.3.2"
|
||||
version: "%%CHART_MAJOR%%.0.1+up1.3.1"
|
||||
icon: >-
|
||||
https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg
|
||||
|
@@ -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/303.0.2+up1.3.2
|
||||
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/303.0.1+up1.3.1
|
||||
noCache: {{ .Values.plugin.noCache }}
|
||||
noAuth: {{ .Values.plugin.noAuth }}
|
||||
metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}
|
||||
|
@@ -8,5 +8,5 @@ plugin:
|
||||
metadata:
|
||||
catalog.cattle.io/display-name: KubeVirt
|
||||
catalog.cattle.io/rancher-version: ">= 2.11.0-0"
|
||||
catalog.cattle.io/ui-extensions-version: ">= 3.0.2 < 4.0.0"
|
||||
catalog.cattle.io/ui-extensions-version: ">= 3.0.4 < 4.0.0"
|
||||
catalog.cattle.io/kube-version: ">= v1.26.0-0"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.5_up0.11.3
|
||||
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.5_up0.11.3-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.2_up0.11.0
|
||||
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.2_up0.11.0-%RELEASE%
|
||||
apiVersion: v2
|
||||
appVersion: 0.11.3
|
||||
appVersion: 0.11.0
|
||||
dependencies:
|
||||
- alias: metal3-baremetal-operator
|
||||
name: baremetal-operator
|
||||
@@ -10,7 +10,7 @@ dependencies:
|
||||
- alias: metal3-ironic
|
||||
name: ironic
|
||||
repository: file://./charts/ironic
|
||||
version: 0.10.3
|
||||
version: 0.10.0
|
||||
- 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.5+up0.11.3"
|
||||
version: "%%CHART_MAJOR%%.0.2+up0.11.0"
|
||||
|
@@ -22,6 +22,8 @@ global:
|
||||
# Comment this out when pinning the baremetal-operator container to a specfic host.
|
||||
nodeSelector: {}
|
||||
|
||||
enable_tls: false
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
images:
|
||||
|
@@ -3,4 +3,4 @@ appVersion: 26.1.2
|
||||
description: A Helm chart for Ironic, used by Metal3
|
||||
name: ironic
|
||||
type: application
|
||||
version: 0.10.3
|
||||
version: 0.10.0
|
||||
|
@@ -50,6 +50,8 @@ global:
|
||||
# Comment this out when pinning the pdns containers to a specfic host.
|
||||
nodeSelector: {}
|
||||
|
||||
enable_tls: false
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
images:
|
||||
@@ -60,7 +62,7 @@ images:
|
||||
ironicIPADownloader:
|
||||
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader
|
||||
pullPolicy: IfNotPresent
|
||||
tag: 3.0.6
|
||||
tag: 3.0.3
|
||||
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
@@ -1,10 +1,10 @@
|
||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.2_up0.19.0
|
||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.2_up0.19.0-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.0_up0.17.0
|
||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.0_up0.17.0-%RELEASE%
|
||||
apiVersion: v2
|
||||
appVersion: 0.19.0
|
||||
appVersion: 0.17.0
|
||||
description: Rancher Turtles utility chart for airgap scenarios
|
||||
home: https://github.com/rancher/turtles/
|
||||
icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg
|
||||
name: rancher-turtles-airgap-resources
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.2+up0.19.0"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.17.0"
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1,876 +1,11 @@
|
||||
apiVersion: v1
|
||||
data:
|
||||
components: |
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
control-plane: controller-manager
|
||||
name: caapf-system
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
name: fleetaddonconfigs.addons.cluster.x-k8s.io
|
||||
spec:
|
||||
group: addons.cluster.x-k8s.io
|
||||
names:
|
||||
categories: []
|
||||
kind: FleetAddonConfig
|
||||
plural: fleetaddonconfigs
|
||||
shortNames: []
|
||||
singular: fleetaddonconfig
|
||||
scope: Cluster
|
||||
versions:
|
||||
- additionalPrinterColumns: []
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: Auto-generated derived type for FleetAddonConfigSpec via `CustomResource`
|
||||
properties:
|
||||
spec:
|
||||
description: This provides a config for fleet addon functionality
|
||||
properties:
|
||||
cluster:
|
||||
description: |-
|
||||
Enable Cluster config funtionality.
|
||||
|
||||
This will create Fleet Cluster for each Cluster with the same name. In case the cluster specifies topology.class, the name of the ClusterClass will be added to the Fleet Cluster labels.
|
||||
nullable: true
|
||||
properties:
|
||||
agentEnvVars:
|
||||
description: AgentEnvVars are extra environment variables to be
|
||||
added to the agent deployment.
|
||||
items:
|
||||
description: EnvVar represents an environment variable present
|
||||
in a Container.
|
||||
properties:
|
||||
name:
|
||||
description: Name of the environment variable. Must be a
|
||||
C_IDENTIFIER.
|
||||
type: string
|
||||
value:
|
||||
description: 'Variable references $(VAR_NAME) are expanded
|
||||
using the previously defined environment variables in
|
||||
the container and any service environment variables. If
|
||||
a variable cannot be resolved, the reference in the input
|
||||
string will be unchanged. Double $$ are reduced to a single
|
||||
$, which allows for escaping the $(VAR_NAME) syntax: i.e.
|
||||
"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
|
||||
Escaped references will never be expanded, regardless
|
||||
of whether the variable exists or not. Defaults to "".'
|
||||
nullable: true
|
||||
type: string
|
||||
valueFrom:
|
||||
description: Source for the environment variable's value.
|
||||
Cannot be used if value is not empty.
|
||||
nullable: true
|
||||
properties:
|
||||
configMapKeyRef:
|
||||
description: Selects a key of a ConfigMap.
|
||||
nullable: true
|
||||
properties:
|
||||
key:
|
||||
description: The key to select.
|
||||
type: string
|
||||
name:
|
||||
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'
|
||||
nullable: true
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the ConfigMap or its
|
||||
key must be defined
|
||||
nullable: true
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
fieldRef:
|
||||
description: 'Selects a field of the pod: supports metadata.name,
|
||||
metadata.namespace, `metadata.labels[''<KEY>'']`,
|
||||
`metadata.annotations[''<KEY>'']`, spec.nodeName,
|
||||
spec.serviceAccountName, status.hostIP, status.podIP,
|
||||
status.podIPs.'
|
||||
nullable: true
|
||||
properties:
|
||||
apiVersion:
|
||||
description: Version of the schema the FieldPath
|
||||
is written in terms of, defaults to "v1".
|
||||
nullable: true
|
||||
type: string
|
||||
fieldPath:
|
||||
description: Path of the field to select in the
|
||||
specified API version.
|
||||
type: string
|
||||
required:
|
||||
- fieldPath
|
||||
type: object
|
||||
resourceFieldRef:
|
||||
description: 'Selects a resource of the container: only
|
||||
resources limits and requests (limits.cpu, limits.memory,
|
||||
limits.ephemeral-storage, requests.cpu, requests.memory
|
||||
and requests.ephemeral-storage) are currently supported.'
|
||||
nullable: true
|
||||
properties:
|
||||
containerName:
|
||||
description: 'Container name: required for volumes,
|
||||
optional for env vars'
|
||||
nullable: true
|
||||
type: string
|
||||
divisor:
|
||||
description: Specifies the output format of the
|
||||
exposed resources, defaults to "1"
|
||||
nullable: true
|
||||
x-kubernetes-int-or-string: true
|
||||
resource:
|
||||
description: 'Required: resource to select'
|
||||
type: string
|
||||
required:
|
||||
- resource
|
||||
type: object
|
||||
secretKeyRef:
|
||||
description: Selects a key of a secret in the pod's
|
||||
namespace
|
||||
nullable: true
|
||||
properties:
|
||||
key:
|
||||
description: The key of the secret to select from. Must
|
||||
be a valid secret key.
|
||||
type: string
|
||||
name:
|
||||
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'
|
||||
nullable: true
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the Secret or its key
|
||||
must be defined
|
||||
nullable: true
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
type: object
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
nullable: true
|
||||
type: array
|
||||
agentNamespace:
|
||||
description: Namespace selection for the fleet agent
|
||||
nullable: true
|
||||
type: string
|
||||
agentTolerations:
|
||||
description: Agent taint toleration settings for every cluster
|
||||
items:
|
||||
description: The pod this Toleration is attached to tolerates
|
||||
any taint that matches the triple <key,value,effect> using
|
||||
the matching operator <operator>.
|
||||
properties:
|
||||
effect:
|
||||
description: Effect indicates the taint effect to match.
|
||||
Empty means match all taint effects. When specified, allowed
|
||||
values are NoSchedule, PreferNoSchedule and NoExecute.
|
||||
nullable: true
|
||||
type: string
|
||||
key:
|
||||
description: Key is the taint key that the toleration applies
|
||||
to. Empty means match all taint keys. If the key is empty,
|
||||
operator must be Exists; this combination means to match
|
||||
all values and all keys.
|
||||
nullable: true
|
||||
type: string
|
||||
operator:
|
||||
description: Operator represents a key's relationship to
|
||||
the value. Valid operators are Exists and Equal. Defaults
|
||||
to Equal. Exists is equivalent to wildcard for value,
|
||||
so that a pod can tolerate all taints of a particular
|
||||
category.
|
||||
nullable: true
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
description: TolerationSeconds represents the period of
|
||||
time the toleration (which must be of effect NoExecute,
|
||||
otherwise this field is ignored) tolerates the taint.
|
||||
By default, it is not set, which means tolerate the taint
|
||||
forever (do not evict). Zero and negative values will
|
||||
be treated as 0 (evict immediately) by the system.
|
||||
format: int64
|
||||
nullable: true
|
||||
type: integer
|
||||
value:
|
||||
description: Value is the taint value the toleration matches
|
||||
to. If the operator is Exists, the value should be empty,
|
||||
otherwise just a regular string.
|
||||
nullable: true
|
||||
type: string
|
||||
type: object
|
||||
nullable: true
|
||||
type: array
|
||||
applyClassGroup:
|
||||
description: Apply a ClusterGroup for a ClusterClass referenced
|
||||
from a different namespace.
|
||||
nullable: true
|
||||
type: boolean
|
||||
hostNetwork:
|
||||
description: 'Host network allows to deploy agent configuration
|
||||
using hostNetwork: true setting which eludes dependency on the
|
||||
CNI configuration for the cluster.'
|
||||
nullable: true
|
||||
type: boolean
|
||||
namespaceSelector:
|
||||
description: Namespace label selector. If set, only clusters in
|
||||
the namespace matching label selector will be imported.
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of label selector
|
||||
requirements. The requirements are ANDed.
|
||||
items:
|
||||
description: A label selector requirement is a selector
|
||||
that contains values, a key, and an operator that relates
|
||||
the key and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that the selector
|
||||
applies to.
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a key's relationship
|
||||
to a set of values. Valid operators are In, NotIn,
|
||||
Exists and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of string values. If
|
||||
the operator is In or NotIn, the values array must
|
||||
be non-empty. If the operator is Exists or DoesNotExist,
|
||||
the values array must be empty. This array is replaced
|
||||
during a strategic merge patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: matchLabels is a map of {key,value} pairs. A
|
||||
single {key,value} in the matchLabels map is equivalent
|
||||
to an element of matchExpressions, whose key field is "key",
|
||||
the operator is "In", and the values array contains only
|
||||
"value". The requirements are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
naming:
|
||||
description: Naming settings for the fleet cluster
|
||||
nullable: true
|
||||
properties:
|
||||
prefix:
|
||||
description: Specify a prefix for the Cluster name, applied
|
||||
to created Fleet cluster
|
||||
nullable: true
|
||||
type: string
|
||||
suffix:
|
||||
description: Specify a suffix for the Cluster name, applied
|
||||
to created Fleet cluster
|
||||
nullable: true
|
||||
type: string
|
||||
type: object
|
||||
patchResource:
|
||||
description: Allow to patch resources, maintaining the desired
|
||||
state. If is not set, resources will only be re-created in case
|
||||
of removal.
|
||||
nullable: true
|
||||
type: boolean
|
||||
selector:
|
||||
description: Cluster label selector. If set, only clusters matching
|
||||
label selector will be imported.
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of label selector
|
||||
requirements. The requirements are ANDed.
|
||||
items:
|
||||
description: A label selector requirement is a selector
|
||||
that contains values, a key, and an operator that relates
|
||||
the key and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that the selector
|
||||
applies to.
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a key's relationship
|
||||
to a set of values. Valid operators are In, NotIn,
|
||||
Exists and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of string values. If
|
||||
the operator is In or NotIn, the values array must
|
||||
be non-empty. If the operator is Exists or DoesNotExist,
|
||||
the values array must be empty. This array is replaced
|
||||
during a strategic merge patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: matchLabels is a map of {key,value} pairs. A
|
||||
single {key,value} in the matchLabels map is equivalent
|
||||
to an element of matchExpressions, whose key field is "key",
|
||||
the operator is "In", and the values array contains only
|
||||
"value". The requirements are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
setOwnerReferences:
|
||||
description: Setting to disable setting owner references on the
|
||||
created resources
|
||||
nullable: true
|
||||
type: boolean
|
||||
required:
|
||||
- namespaceSelector
|
||||
- selector
|
||||
type: object
|
||||
clusterClass:
|
||||
description: |-
|
||||
Enable clusterClass controller functionality.
|
||||
|
||||
This will create Fleet ClusterGroups for each ClusterClaster with the same name.
|
||||
nullable: true
|
||||
properties:
|
||||
patchResource:
|
||||
description: Allow to patch resources, maintaining the desired
|
||||
state. If is not set, resources will only be re-created in case
|
||||
of removal.
|
||||
nullable: true
|
||||
type: boolean
|
||||
setOwnerReferences:
|
||||
description: Setting to disable setting owner references on the
|
||||
created resources
|
||||
nullable: true
|
||||
type: boolean
|
||||
type: object
|
||||
config:
|
||||
nullable: true
|
||||
properties:
|
||||
featureGates:
|
||||
description: feature gates controlling experimental features
|
||||
nullable: true
|
||||
properties:
|
||||
configMap:
|
||||
description: FeaturesConfigMap references a ConfigMap where
|
||||
to apply feature flags. If a ConfigMap is referenced, the
|
||||
controller will update it instead of upgrading the Fleet
|
||||
chart.
|
||||
nullable: true
|
||||
properties:
|
||||
ref:
|
||||
description: ObjectReference contains enough information
|
||||
to let you inspect or modify the referred object.
|
||||
nullable: true
|
||||
properties:
|
||||
apiVersion:
|
||||
description: API version of the referent.
|
||||
type: string
|
||||
fieldPath:
|
||||
description: 'If referring to a piece of an object
|
||||
instead of an entire object, this string should
|
||||
contain a valid JSON/Go field access statement,
|
||||
such as desiredState.manifest.containers[2]. For
|
||||
example, if the object reference is to a container
|
||||
within a pod, this would take on a value like: "spec.containers{name}"
|
||||
(where "name" refers to the name of the container
|
||||
that triggered the event) or if no container name
|
||||
is specified "spec.containers[2]" (container with
|
||||
index 2 in this pod). This syntax is chosen only
|
||||
to have some well-defined way of referencing a part
|
||||
of an object.'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
|
||||
type: string
|
||||
namespace:
|
||||
description: 'Namespace of the referent. More info:
|
||||
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
||||
type: string
|
||||
resourceVersion:
|
||||
description: 'Specific resourceVersion to which this
|
||||
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
||||
type: string
|
||||
uid:
|
||||
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
experimentalHelmOps:
|
||||
description: Enables experimental Helm operations support.
|
||||
type: boolean
|
||||
experimentalOciStorage:
|
||||
description: Enables experimental OCI storage support.
|
||||
type: boolean
|
||||
required:
|
||||
- experimentalHelmOps
|
||||
- experimentalOciStorage
|
||||
type: object
|
||||
server:
|
||||
description: fleet server url configuration options
|
||||
nullable: true
|
||||
oneOf:
|
||||
- required:
|
||||
- inferLocal
|
||||
- required:
|
||||
- custom
|
||||
properties:
|
||||
custom:
|
||||
properties:
|
||||
apiServerCaConfigRef:
|
||||
description: ObjectReference contains enough information
|
||||
to let you inspect or modify the referred object.
|
||||
nullable: true
|
||||
properties:
|
||||
apiVersion:
|
||||
description: API version of the referent.
|
||||
type: string
|
||||
fieldPath:
|
||||
description: 'If referring to a piece of an object
|
||||
instead of an entire object, this string should
|
||||
contain a valid JSON/Go field access statement,
|
||||
such as desiredState.manifest.containers[2]. For
|
||||
example, if the object reference is to a container
|
||||
within a pod, this would take on a value like: "spec.containers{name}"
|
||||
(where "name" refers to the name of the container
|
||||
that triggered the event) or if no container name
|
||||
is specified "spec.containers[2]" (container with
|
||||
index 2 in this pod). This syntax is chosen only
|
||||
to have some well-defined way of referencing a part
|
||||
of an object.'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
|
||||
type: string
|
||||
namespace:
|
||||
description: 'Namespace of the referent. More info:
|
||||
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
||||
type: string
|
||||
resourceVersion:
|
||||
description: 'Specific resourceVersion to which this
|
||||
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
|
||||
type: string
|
||||
uid:
|
||||
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
||||
type: string
|
||||
type: object
|
||||
apiServerUrl:
|
||||
nullable: true
|
||||
type: string
|
||||
type: object
|
||||
inferLocal:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
install:
|
||||
nullable: true
|
||||
oneOf:
|
||||
- required:
|
||||
- followLatest
|
||||
- required:
|
||||
- version
|
||||
properties:
|
||||
followLatest:
|
||||
description: Follow the latest version of the chart on install
|
||||
type: boolean
|
||||
version:
|
||||
description: Use specific version to install
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-validations: []
|
||||
status:
|
||||
nullable: true
|
||||
properties:
|
||||
conditions:
|
||||
description: conditions represents the observations of a Fleet addon
|
||||
current state.
|
||||
items:
|
||||
description: Condition contains details for one aspect of the current
|
||||
state of this API Resource.
|
||||
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.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: message is a human readable message indicating
|
||||
details about the transition. This may be an empty string.
|
||||
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.
|
||||
format: int64
|
||||
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.
|
||||
This field may not be empty.
|
||||
type: string
|
||||
status:
|
||||
description: status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||
type: string
|
||||
required:
|
||||
- lastTransitionTime
|
||||
- message
|
||||
- reason
|
||||
- status
|
||||
- type
|
||||
type: object
|
||||
type: array
|
||||
installedVersion:
|
||||
nullable: true
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
title: FleetAddonConfig_kube_validation
|
||||
type: object
|
||||
x-kubernetes-validations:
|
||||
- rule: self.metadata.name == 'fleet-addon-config'
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
name: caapf-controller-manager
|
||||
namespace: caapf-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
name: caapf-helm-manager
|
||||
namespace: caapf-system
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
name: caapf-leader-election-role
|
||||
namespace: caapf-system
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
name: caapf-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- addons.cluster.x-k8s.io
|
||||
resources:
|
||||
- fleetaddonconfigs
|
||||
- fleetaddonconfigs/status
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
verbs:
|
||||
- list
|
||||
- get
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- events.k8s.io
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- endpoints
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- get
|
||||
- watch
|
||||
- apiGroups:
|
||||
- authentication.k8s.io
|
||||
resources:
|
||||
- tokenreviews
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- authorization.k8s.io
|
||||
resources:
|
||||
- subjectaccessreviews
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- bootstrap.cluster.x-k8s.io
|
||||
- clusterctl.cluster.x-k8s.io
|
||||
- controlplane.cluster.x-k8s.io
|
||||
- infrastructure.cluster.x-k8s.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cluster.x-k8s.io
|
||||
resources:
|
||||
- clusters
|
||||
- clusterclasses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- patch
|
||||
- apiGroups:
|
||||
- fleet.cattle.io
|
||||
resources:
|
||||
- clusters
|
||||
- clustergroups
|
||||
- clusterregistrationtokens
|
||||
- bundlenamespacemappings
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- fleet.cattle.io
|
||||
resources:
|
||||
- bundlenamespacemappings
|
||||
verbs:
|
||||
- delete
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
name: caapf-helm-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cluster-admin
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: caapf-helm-manager
|
||||
namespace: caapf-system
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
name: caapf-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: caapf-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: caapf-controller-manager
|
||||
namespace: caapf-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
annotations:
|
||||
kubernetes.io/service-account.name: caapf-helm-manager
|
||||
labels:
|
||||
cluster.x-k8s.io/fleet-addon-registration: "true"
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
name: caapf-helm-manager
|
||||
namespace: caapf-system
|
||||
type: kubernetes.io/service-account-token
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
control-plane: controller-manager
|
||||
name: caapf-controller-manager
|
||||
namespace: caapf-system
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
control-plane: controller-manager
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/default-container: manager
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: fleet
|
||||
control-plane: controller-manager
|
||||
spec:
|
||||
containers:
|
||||
- image: ghcr.io/rancher-sandbox/cluster-api-addon-provider-fleet:v0.8.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: 8443
|
||||
name: http
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
- args:
|
||||
- --helm-install
|
||||
image: ghcr.io/rancher-sandbox/cluster-api-addon-provider-fleet:v0.8.1
|
||||
name: helm-manager
|
||||
volumeMounts:
|
||||
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
|
||||
name: helm-kubeconfig
|
||||
readOnly: true
|
||||
serviceAccountName: caapf-controller-manager
|
||||
terminationGracePeriodSeconds: 10
|
||||
volumes:
|
||||
- name: helm-kubeconfig
|
||||
secret:
|
||||
secretName: caapf-helm-manager
|
||||
metadata: |
|
||||
apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
|
||||
releaseSeries:
|
||||
- major: 0
|
||||
minor: 1
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 2
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 3
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 4
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 5
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 6
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 7
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 8
|
||||
contract: v1beta1
|
||||
components: Not Found
|
||||
metadata: Not Found
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: v0.8.1
|
||||
name: v0.6.0
|
||||
namespace: rancher-turtles-system
|
||||
labels:
|
||||
provider-components: fleet
|
||||
|
@@ -22,7 +22,7 @@ data:
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: rke2-bootstrap-system/rke2-bootstrap-serving-cert
|
||||
controller-gen.kubebuilder.io/version: v0.17.3
|
||||
controller-gen.kubebuilder.io/version: v0.16.1
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: bootstrap-rke2
|
||||
cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1
|
||||
@@ -1218,7 +1218,7 @@ data:
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: rke2-bootstrap-system/rke2-bootstrap-serving-cert
|
||||
controller-gen.kubebuilder.io/version: v0.17.3
|
||||
controller-gen.kubebuilder.io/version: v0.16.1
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: bootstrap-rke2
|
||||
cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1
|
||||
@@ -2525,11 +2525,9 @@ data:
|
||||
- --leader-elect
|
||||
- --diagnostics-address=${CAPRKE2_DIAGNOSTICS_ADDRESS:=:8443}
|
||||
- --insecure-diagnostics=${CAPRKE2_INSECURE_DIAGNOSTICS:=false}
|
||||
- --feature-gates=MachinePool=${EXP_MACHINE_POOL:=true}
|
||||
- --v=${CAPRKE2_DEBUG_LEVEL:=0}
|
||||
command:
|
||||
- /manager
|
||||
image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.15.1
|
||||
image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.12.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
@@ -2752,19 +2750,10 @@ data:
|
||||
- major: 0
|
||||
minor: 12
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 13
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 14
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 15
|
||||
contract: v1beta1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: v0.15.1
|
||||
name: v0.12.0
|
||||
namespace: rke2-bootstrap-system
|
||||
labels:
|
||||
provider-components: rke2-bootstrap
|
||||
|
@@ -22,7 +22,7 @@ data:
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: rke2-control-plane-system/rke2-control-plane-serving-cert
|
||||
controller-gen.kubebuilder.io/version: v0.17.3
|
||||
controller-gen.kubebuilder.io/version: v0.16.1
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: control-plane-rke2
|
||||
cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1
|
||||
@@ -1744,23 +1744,12 @@ data:
|
||||
More info: http://kubernetes.io/docs/user-guide/labels
|
||||
type: object
|
||||
type: object
|
||||
nodeDeletionTimeout:
|
||||
description: |-
|
||||
nodeDeletionTimeout defines how long the machine controller will attempt to delete the Node that the Machine
|
||||
hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely.
|
||||
If no value is provided, the default value for this property of the Machine resource will be used.
|
||||
type: string
|
||||
nodeDrainTimeout:
|
||||
description: |-
|
||||
NodeDrainTimeout is the total amount of time that the controller will spend on draining a controlplane node
|
||||
The default value is 0, meaning that the node can be drained without any time limitations.
|
||||
NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
|
||||
type: string
|
||||
nodeVolumeDetachTimeout:
|
||||
description: |-
|
||||
nodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes
|
||||
to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations.
|
||||
type: string
|
||||
required:
|
||||
- infrastructureRef
|
||||
type: object
|
||||
@@ -1985,54 +1974,6 @@ data:
|
||||
- control-plane-endpoint
|
||||
- ""
|
||||
type: string
|
||||
remediationStrategy:
|
||||
description: remediationStrategy is the RemediationStrategy that controls
|
||||
how control plane machine remediation happens.
|
||||
properties:
|
||||
maxRetry:
|
||||
description: "maxRetry is the Max number of retries while attempting
|
||||
to remediate an unhealthy machine.\nA retry happens when a machine
|
||||
that was created as a replacement for an unhealthy machine also
|
||||
fails.\nFor example, given a control plane with three machines
|
||||
M1, M2, M3:\n\n\tM1 become unhealthy; remediation happens, and
|
||||
M1-1 is created as a replacement.\n\tIf M1-1 (replacement of
|
||||
M1) has problems while bootstrapping it will become unhealthy,
|
||||
and then be\n\tremediated; such operation is considered a retry,
|
||||
remediation-retry #1.\n\tIf M1-2 (replacement of M1-1) becomes
|
||||
unhealthy, remediation-retry #2 will happen, etc.\n\nA retry
|
||||
could happen only after RetryPeriod from the previous retry.\nIf
|
||||
a machine is marked as unhealthy after MinHealthyPeriod from
|
||||
the previous remediation expired,\nthis is not considered a
|
||||
retry anymore because the new issue is assumed unrelated from
|
||||
the previous one.\n\nIf not set, the remedation will be retried
|
||||
infinitely."
|
||||
format: int32
|
||||
type: integer
|
||||
minHealthyPeriod:
|
||||
description: "minHealthyPeriod defines the duration after which
|
||||
RKE2ControlPlane will consider any failure to a machine unrelated\nfrom
|
||||
the previous one. In this case the remediation is not considered
|
||||
a retry anymore, and thus the retry\ncounter restarts from 0.
|
||||
For example, assuming MinHealthyPeriod is set to 1h (default)\n\n\tM1
|
||||
become unhealthy; remediation happens, and M1-1 is created as
|
||||
a replacement.\n\tIf M1-1 (replacement of M1) has problems within
|
||||
the 1hr after the creation, also\n\tthis machine will be remediated
|
||||
and this operation is considered a retry - a problem related\n\tto
|
||||
the original issue happened to M1 -.\n\n\tIf instead the problem
|
||||
on M1-1 is happening after MinHealthyPeriod expired, e.g. four
|
||||
days after\n\tm1-1 has been created as a remediation of M1,
|
||||
the problem on M1-1 is considered unrelated to\n\tthe original
|
||||
issue happened to M1.\n\nIf not set, this value is defaulted
|
||||
to 1h."
|
||||
type: string
|
||||
retryPeriod:
|
||||
description: |-
|
||||
retryPeriod is the duration that RKE2ControlPlane should wait before remediating a machine being created as a replacement
|
||||
for an unhealthy machine (a retry).
|
||||
|
||||
If not set, a retry will happen immediately.
|
||||
type: string
|
||||
type: object
|
||||
replicas:
|
||||
description: Replicas is the number of replicas for the Control Plane.
|
||||
format: int32
|
||||
@@ -2244,15 +2185,9 @@ data:
|
||||
- rke2-coredns
|
||||
- rke2-ingress-nginx
|
||||
- rke2-metrics-server
|
||||
- rke2-snapshot-controller
|
||||
- rke2-snapshot-controller-crd
|
||||
- rke2-snapshot-validation-webhook
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
embeddedRegistry:
|
||||
description: EmbeddedRegistry enables the embedded registry.
|
||||
type: boolean
|
||||
etcd:
|
||||
description: Etcd defines optional custom configuration of ETCD.
|
||||
properties:
|
||||
@@ -2606,42 +2541,14 @@ data:
|
||||
description: Initialized indicates the target cluster has completed
|
||||
initialization.
|
||||
type: boolean
|
||||
lastRemediation:
|
||||
description: lastRemediation stores info about last remediation performed.
|
||||
properties:
|
||||
machine:
|
||||
description: machine is the machine name of the latest machine
|
||||
being remediated.
|
||||
maxLength: 253
|
||||
minLength: 1
|
||||
type: string
|
||||
retryCount:
|
||||
description: |-
|
||||
retryCount used to keep track of remediation retry for the last remediated machine.
|
||||
A retry happens when a machine that was created as a replacement for an unhealthy machine also fails.
|
||||
type: integer
|
||||
timestamp:
|
||||
description: timestamp is when last remediation happened. It is
|
||||
represented in RFC3339 form and is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
required:
|
||||
- machine
|
||||
- retryCount
|
||||
- timestamp
|
||||
type: object
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed
|
||||
by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
ready:
|
||||
description: |-
|
||||
Ready denotes that the RKE2ControlPlane API Server became ready during initial provisioning
|
||||
to receive requests.
|
||||
NOTE: this field is part of the Cluster API contract and it is used to orchestrate provisioning.
|
||||
The value of this field is never updated after provisioning is completed. Please use conditions
|
||||
to check the operational state of the control plane.
|
||||
description: Ready indicates the BootstrapData field is ready to be
|
||||
consumed.
|
||||
type: boolean
|
||||
readyReplicas:
|
||||
description: ReadyReplicas is the number of replicas current attached
|
||||
@@ -2682,7 +2589,7 @@ data:
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: rke2-control-plane-system/rke2-control-plane-serving-cert
|
||||
controller-gen.kubebuilder.io/version: v0.17.3
|
||||
controller-gen.kubebuilder.io/version: v0.16.1
|
||||
labels:
|
||||
cluster.x-k8s.io/provider: control-plane-rke2
|
||||
cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1
|
||||
@@ -3245,23 +3152,12 @@ data:
|
||||
More info: http://kubernetes.io/docs/user-guide/labels
|
||||
type: object
|
||||
type: object
|
||||
nodeDeletionTimeout:
|
||||
description: |-
|
||||
nodeDeletionTimeout defines how long the machine controller will attempt to delete the Node that the Machine
|
||||
hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely.
|
||||
If no value is provided, the default value for this property of the Machine resource will be used.
|
||||
type: string
|
||||
nodeDrainTimeout:
|
||||
description: |-
|
||||
NodeDrainTimeout is the total amount of time that the controller will spend on draining a controlplane node
|
||||
The default value is 0, meaning that the node can be drained without any time limitations.
|
||||
NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`
|
||||
type: string
|
||||
nodeVolumeDetachTimeout:
|
||||
description: |-
|
||||
nodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes
|
||||
to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations.
|
||||
type: string
|
||||
required:
|
||||
- infrastructureRef
|
||||
type: object
|
||||
@@ -3488,57 +3384,6 @@ data:
|
||||
- control-plane-endpoint
|
||||
- ""
|
||||
type: string
|
||||
remediationStrategy:
|
||||
description: remediationStrategy is the RemediationStrategy
|
||||
that controls how control plane machine remediation happens.
|
||||
properties:
|
||||
maxRetry:
|
||||
description: "maxRetry is the Max number of retries while
|
||||
attempting to remediate an unhealthy machine.\nA retry
|
||||
happens when a machine that was created as a replacement
|
||||
for an unhealthy machine also fails.\nFor example, given
|
||||
a control plane with three machines M1, M2, M3:\n\n\tM1
|
||||
become unhealthy; remediation happens, and M1-1 is created
|
||||
as a replacement.\n\tIf M1-1 (replacement of M1) has
|
||||
problems while bootstrapping it will become unhealthy,
|
||||
and then be\n\tremediated; such operation is considered
|
||||
a retry, remediation-retry #1.\n\tIf M1-2 (replacement
|
||||
of M1-1) becomes unhealthy, remediation-retry #2 will
|
||||
happen, etc.\n\nA retry could happen only after RetryPeriod
|
||||
from the previous retry.\nIf a machine is marked as
|
||||
unhealthy after MinHealthyPeriod from the previous remediation
|
||||
expired,\nthis is not considered a retry anymore because
|
||||
the new issue is assumed unrelated from the previous
|
||||
one.\n\nIf not set, the remedation will be retried infinitely."
|
||||
format: int32
|
||||
type: integer
|
||||
minHealthyPeriod:
|
||||
description: "minHealthyPeriod defines the duration after
|
||||
which RKE2ControlPlane will consider any failure to
|
||||
a machine unrelated\nfrom the previous one. In this
|
||||
case the remediation is not considered a retry anymore,
|
||||
and thus the retry\ncounter restarts from 0. For example,
|
||||
assuming MinHealthyPeriod is set to 1h (default)\n\n\tM1
|
||||
become unhealthy; remediation happens, and M1-1 is created
|
||||
as a replacement.\n\tIf M1-1 (replacement of M1) has
|
||||
problems within the 1hr after the creation, also\n\tthis
|
||||
machine will be remediated and this operation is considered
|
||||
a retry - a problem related\n\tto the original issue
|
||||
happened to M1 -.\n\n\tIf instead the problem on M1-1
|
||||
is happening after MinHealthyPeriod expired, e.g. four
|
||||
days after\n\tm1-1 has been created as a remediation
|
||||
of M1, the problem on M1-1 is considered unrelated to\n\tthe
|
||||
original issue happened to M1.\n\nIf not set, this value
|
||||
is defaulted to 1h."
|
||||
type: string
|
||||
retryPeriod:
|
||||
description: |-
|
||||
retryPeriod is the duration that RKE2ControlPlane should wait before remediating a machine being created as a replacement
|
||||
for an unhealthy machine (a retry).
|
||||
|
||||
If not set, a retry will happen immediately.
|
||||
type: string
|
||||
type: object
|
||||
replicas:
|
||||
description: Replicas is the number of replicas for the Control
|
||||
Plane.
|
||||
@@ -3756,15 +3601,9 @@ data:
|
||||
- rke2-coredns
|
||||
- rke2-ingress-nginx
|
||||
- rke2-metrics-server
|
||||
- rke2-snapshot-controller
|
||||
- rke2-snapshot-controller-crd
|
||||
- rke2-snapshot-validation-webhook
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
embeddedRegistry:
|
||||
description: EmbeddedRegistry enables the embedded registry.
|
||||
type: boolean
|
||||
etcd:
|
||||
description: Etcd defines optional custom configuration
|
||||
of ETCD.
|
||||
@@ -4135,42 +3974,14 @@ data:
|
||||
description: Initialized indicates the target cluster has completed
|
||||
initialization.
|
||||
type: boolean
|
||||
lastRemediation:
|
||||
description: lastRemediation stores info about last remediation performed.
|
||||
properties:
|
||||
machine:
|
||||
description: machine is the machine name of the latest machine
|
||||
being remediated.
|
||||
maxLength: 253
|
||||
minLength: 1
|
||||
type: string
|
||||
retryCount:
|
||||
description: |-
|
||||
retryCount used to keep track of remediation retry for the last remediated machine.
|
||||
A retry happens when a machine that was created as a replacement for an unhealthy machine also fails.
|
||||
type: integer
|
||||
timestamp:
|
||||
description: timestamp is when last remediation happened. It is
|
||||
represented in RFC3339 form and is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
required:
|
||||
- machine
|
||||
- retryCount
|
||||
- timestamp
|
||||
type: object
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed
|
||||
by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
ready:
|
||||
description: |-
|
||||
Ready denotes that the RKE2ControlPlane API Server became ready during initial provisioning
|
||||
to receive requests.
|
||||
NOTE: this field is part of the Cluster API contract and it is used to orchestrate provisioning.
|
||||
The value of this field is never updated after provisioning is completed. Please use conditions
|
||||
to check the operational state of the control plane.
|
||||
description: Ready indicates the BootstrapData field is ready to be
|
||||
consumed.
|
||||
type: boolean
|
||||
readyReplicas:
|
||||
description: ReadyReplicas is the number of replicas current attached
|
||||
@@ -4286,14 +4097,6 @@ data:
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- authentication.k8s.io
|
||||
resources:
|
||||
@@ -4445,7 +4248,6 @@ data:
|
||||
- --leader-elect
|
||||
- --diagnostics-address=${CAPRKE2_DIAGNOSTICS_ADDRESS:=:8443}
|
||||
- --insecure-diagnostics=${CAPRKE2_INSECURE_DIAGNOSTICS:=false}
|
||||
- --v=${CAPRKE2_DEBUG_LEVEL:=0}
|
||||
command:
|
||||
- /manager
|
||||
env:
|
||||
@@ -4461,7 +4263,7 @@ data:
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.uid
|
||||
image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.15.1
|
||||
image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.12.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
@@ -4691,19 +4493,10 @@ data:
|
||||
- major: 0
|
||||
minor: 12
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 13
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 14
|
||||
contract: v1beta1
|
||||
- major: 0
|
||||
minor: 15
|
||||
contract: v1beta1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: v0.15.1
|
||||
name: v0.12.0
|
||||
namespace: rke2-control-plane-system
|
||||
labels:
|
||||
provider-components: rke2-control-plane
|
||||
|
@@ -1,6 +1,6 @@
|
||||
dependencies:
|
||||
- name: cluster-api-operator
|
||||
repository: https://kubernetes-sigs.github.io/cluster-api-operator
|
||||
version: 0.18.1
|
||||
digest: sha256:7ad59ce8888c32723b4ef1ae5f334fdff00a8aba87e6f1de76d605f134bff354
|
||||
generated: "2025-04-29T09:14:10.14953774Z"
|
||||
version: 0.17.0
|
||||
digest: sha256:c564dd1edce5e74cf5747adfa2477b3f0b9bae2b17a21b4c7312b2c1adbda64e
|
||||
generated: "2025-02-27T10:39:03.203623466Z"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.2_up0.19.0
|
||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.2_up0.19.0-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.0_up0.17.0
|
||||
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.0_up0.17.0-%RELEASE%
|
||||
annotations:
|
||||
catalog.cattle.io/certified: rancher
|
||||
catalog.cattle.io/display-name: Rancher Turtles - the Cluster API Extension
|
||||
@@ -7,12 +7,12 @@ annotations:
|
||||
catalog.cattle.io/namespace: rancher-turtles-system
|
||||
catalog.cattle.io/os: linux
|
||||
catalog.cattle.io/permits-os: linux
|
||||
catalog.cattle.io/rancher-version: '>= 2.11.0-1'
|
||||
catalog.cattle.io/rancher-version: '>= 2.10.0-1'
|
||||
catalog.cattle.io/release-name: rancher-turtles
|
||||
catalog.cattle.io/scope: management
|
||||
catalog.cattle.io/type: cluster-tool
|
||||
apiVersion: v2
|
||||
appVersion: 0.19.0
|
||||
appVersion: 0.17.0
|
||||
dependencies:
|
||||
- condition: cluster-api-operator.enabled
|
||||
name: cluster-api-operator
|
||||
@@ -29,4 +29,4 @@ keywords:
|
||||
- provisioning
|
||||
name: rancher-turtles
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.2+up0.19.0"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.17.0"
|
||||
|
@@ -1,14 +1,4 @@
|
||||
## Changes since v0.19.0-rc.1
|
||||
---
|
||||
## :chart_with_upwards_trend: Overview
|
||||
- 4 new commits merged
|
||||
|
||||
:book: Additionally, there has been 1 contribution to our documentation and book. (#1325)
|
||||
|
||||
## :question: Sort these by hand
|
||||
- chart: Add helm chart values validation (#1320)
|
||||
- Dependency: Revert dependency bumps (#1328)
|
||||
- MULTIPLE_AREAS[documentation|azure]: Use predictable resourceGroup for AKS nodes (#1327)
|
||||
|
||||
|
||||
_Thanks to all our contributors!_ 😊
|
||||
gh: To use GitHub CLI in a GitHub Actions workflow, set the GH_TOKEN environment variable. Example:
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
: exit status 4
|
||||
|
@@ -13,9 +13,9 @@ spec:
|
||||
deployment:
|
||||
containers:
|
||||
- name: manager
|
||||
imageUrl: "registry.rancher.com/rancher/cluster-api-addon-provider-fleet:v0.8.1"
|
||||
imageUrl: registry.rancher.com/rancher/cluster-api-fleet-controller:v0.6.0
|
||||
- name: helm-manager
|
||||
imageUrl: "registry.rancher.com/rancher/cluster-api-addon-provider-fleet:v0.8.1"
|
||||
imageUrl: registry.rancher.com/rancher/cluster-api-fleet-controller:v0.6.0
|
||||
additionalManifests:
|
||||
name: fleet-addon-config
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
@@ -35,22 +35,10 @@ data:
|
||||
metadata:
|
||||
name: fleet-addon-config
|
||||
spec:
|
||||
config:
|
||||
featureGates:
|
||||
configMap:
|
||||
ref:
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
name: rancher-config
|
||||
namespace: cattle-system
|
||||
experimentalOciStorage: true
|
||||
experimentalHelmOps: true
|
||||
clusterClass:
|
||||
patchResource: true
|
||||
setOwnerReferences: true
|
||||
cluster:
|
||||
agentNamespace: cattle-fleet-system
|
||||
applyClassGroup: true
|
||||
patchResource: true
|
||||
setOwnerReferences: true
|
||||
hostNetwork: true
|
||||
|
@@ -1,367 +0,0 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Helm Chart Values Schema",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"turtlesUI": {
|
||||
"type": "object",
|
||||
"description": "Manages the UI component.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Turn UI on or off."
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"default": "0.8.2",
|
||||
"description": "UI version to use."
|
||||
}
|
||||
}
|
||||
},
|
||||
"rancherTurtles": {
|
||||
"type": "object",
|
||||
"description": "Sets up the cluster management controller.",
|
||||
"properties": {
|
||||
"image": {
|
||||
"type": "string",
|
||||
"default": "controller",
|
||||
"description": "Controller container image."
|
||||
},
|
||||
"imageVersion": {
|
||||
"type": "string",
|
||||
"default": "v0.0.0",
|
||||
"description": "Image tag."
|
||||
},
|
||||
"imagePullPolicy": {
|
||||
"type": "string",
|
||||
"default": "IfNotPresent",
|
||||
"description": "Specify image pull policy."
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"default": "rancher-turtles-system",
|
||||
"description": "Namespace for Turtles to run."
|
||||
},
|
||||
"managerArguments": {
|
||||
"type": "array",
|
||||
"default": [],
|
||||
"description": "Extra args for the controller.",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"imagePullSecrets": {
|
||||
"type": "array",
|
||||
"default": [],
|
||||
"description": "Secrets for private registries.",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"rancherInstalled": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "True if Rancher is already installed in the cluster."
|
||||
},
|
||||
"kubectlImage": {
|
||||
"type": "string",
|
||||
"default": "registry.k8s.io/kubernetes/kubectl:v1.30.0",
|
||||
"description": "Image for kubectl tasks."
|
||||
},
|
||||
"features": {
|
||||
"type": "object",
|
||||
"description": "Optional and experimental features.",
|
||||
"properties": {
|
||||
"day2operations": {
|
||||
"type": "object",
|
||||
"description": "Alpha feature.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Turn on or off."
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"default": "controller",
|
||||
"description": "Image for day-2 ops."
|
||||
},
|
||||
"imageVersion": {
|
||||
"type": "string",
|
||||
"default": "v0.0.0",
|
||||
"description": "Image tag."
|
||||
},
|
||||
"imagePullPolicy": {
|
||||
"type": "string",
|
||||
"default": "IfNotPresent",
|
||||
"description": "Specify image pull policy."
|
||||
},
|
||||
"etcdBackupRestore": {
|
||||
"type": "object",
|
||||
"description": "Manages etcd backup/restore.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Turn on (true) or off (false)."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"addon-provider-fleet": {
|
||||
"type": "object",
|
||||
"description": "Beta feature for fleet addons.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Turn on or off."
|
||||
}
|
||||
}
|
||||
},
|
||||
"agent-tls-mode": {
|
||||
"type": "object",
|
||||
"description": "Alpha feature for agent TLS.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Turn on or off."
|
||||
}
|
||||
}
|
||||
},
|
||||
"clusterclass-operations": {
|
||||
"type": "object",
|
||||
"description": "Alpha feature. Not ready for testing yet.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Turn on or off."
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"default": "controller",
|
||||
"description": "Image for cluster class ops."
|
||||
},
|
||||
"imageVersion": {
|
||||
"type": "string",
|
||||
"default": "v0.0.0",
|
||||
"description": "Image tag."
|
||||
},
|
||||
"imagePullPolicy": {
|
||||
"type": "string",
|
||||
"default": "IfNotPresent",
|
||||
"description": "Pull policy."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"cluster-api-operator": {
|
||||
"type": "object",
|
||||
"description": "Manages Cluster API components.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Turn on or off."
|
||||
},
|
||||
"cert-manager": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Turn on or off."
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"type": "array",
|
||||
"description": "Volumes for operator pods (certs, config).",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"oneOf": [
|
||||
{
|
||||
"required": ["name", "secret"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"secret": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"defaultMode": {
|
||||
"type": "integer",
|
||||
"default": 420,
|
||||
"description": "File permissions."
|
||||
},
|
||||
"secretName": {
|
||||
"type": "string",
|
||||
"default": "capi-operator-webhook-service-cert",
|
||||
"description": "Secret for webhook certs."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": ["name", "configMap"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"configMap": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"default": "clusterctl-config",
|
||||
"description": "ConfigMap for clusterctl."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"image": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"manager": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"repository": {
|
||||
"type": "string",
|
||||
"default": "registry.rancher.com/rancher/cluster-api-operator",
|
||||
"description": "Image repo."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumeMounts": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"manager": {
|
||||
"type": "array",
|
||||
"description": "Mount volumes to pods.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"mountPath": { "type": "string" },
|
||||
"name": { "type": "string" },
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Mount as read-only."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"cleanup": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Enable cleanup tasks."
|
||||
},
|
||||
"cluster-api": {
|
||||
"type": "object",
|
||||
"description": "Cluster API component settings.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Turn on or off."
|
||||
},
|
||||
"configSecret": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"default": "",
|
||||
"description": "Custom secret name (if overriding)."
|
||||
},
|
||||
"defaultName": {
|
||||
"type": "string",
|
||||
"default": "capi-env-variables",
|
||||
"description": "Default secret name."
|
||||
}
|
||||
}
|
||||
},
|
||||
"core": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"default": "capi-system",
|
||||
"description": "Core component namespace."
|
||||
},
|
||||
"imageUrl": {
|
||||
"type": "string",
|
||||
"default": "",
|
||||
"description": "Custom image URL."
|
||||
},
|
||||
"fetchConfig": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"url": { "type": "string", "default": "" },
|
||||
"selector": { "type": "string", "default": "" }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"rke2": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Turn on or off."
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"default": "",
|
||||
"description": "RKE2 version."
|
||||
},
|
||||
"bootstrap": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"default": "rke2-bootstrap-system"
|
||||
},
|
||||
"imageUrl": { "type": "string", "default": "" },
|
||||
"fetchConfig": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"url": { "type": "string", "default": "" },
|
||||
"selector": { "type": "string", "default": "" }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"controlPlane": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"default": "rke2-control-plane-system"
|
||||
},
|
||||
"imageUrl": { "type": "string", "default": "" },
|
||||
"fetchConfig": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"url": { "type": "string", "default": "" },
|
||||
"selector": { "type": "string", "default": "" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,152 +1,83 @@
|
||||
# turtlesUI: Manages the UI component.
|
||||
turtlesUI:
|
||||
# enabled: Turn UI on or off.
|
||||
enabled: false
|
||||
# version: UI version to use.
|
||||
version: 0.8.2
|
||||
|
||||
# rancherTurtles: Sets up the cluster management controller.
|
||||
version: v0.8.2
|
||||
rancherTurtles:
|
||||
# image: registry.rancher.com/rancher/rancher/turtles
|
||||
image: registry.rancher.com/rancher/rancher/turtles
|
||||
# imageVersion: v0.19.0
|
||||
imageVersion: v0.19.0
|
||||
# imagePullPolicy: IfNotPresent
|
||||
imageVersion: v0.17.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
# namespace: Select namespace for Turtles to run.
|
||||
namespace: rancher-turtles-system
|
||||
# managerArguments: Extra args for the controller.
|
||||
managerArguments: []
|
||||
# imagePullSecrets: Secrets for private registries.
|
||||
imagePullSecrets: []
|
||||
# rancherInstalled: True if Rancher already installed is in the cluster, this is the preferred installation way.
|
||||
rancherInstalled: false
|
||||
# kubectlImage: Image for kubectl tasks.
|
||||
kubectlImage: "%%IMG_REPO%%/%%IMG_PREFIX%%kubectl:1.30.3"
|
||||
# features: Optional and experimental features.
|
||||
features:
|
||||
# day2operations: Alpha feature.
|
||||
day2operations:
|
||||
# enabled: Turn on or off.
|
||||
enabled: false
|
||||
# image: registry.rancher.com/rancher/rancher/turtles
|
||||
image: registry.rancher.com/rancher/rancher/turtles
|
||||
# imageVersion: v0.19.0
|
||||
imageVersion: v0.19.0
|
||||
# imagePullPolicy: IfNotPresent
|
||||
imageVersion: v0.17.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
# etcdBackupRestore: Alpha feature. Manages etcd backup/restore.
|
||||
etcdBackupRestore:
|
||||
# enabled: Turn on (true) or off (false).
|
||||
enabled: false
|
||||
# addon-provider-fleet: Beta feature for fleet addons.
|
||||
# beta feature, see documentation for more information on feature stages
|
||||
addon-provider-fleet:
|
||||
# enabled: Turn on or off.
|
||||
enabled: true
|
||||
# agent-tls-mode: Alpha feature for agent TLS.
|
||||
# alpha feature, see documentation for more information on feature stages
|
||||
agent-tls-mode:
|
||||
# enabled: Turn on or off.
|
||||
enabled: false
|
||||
# clusterclass-operations: Alpha feature. Manages cluster class ops. Not ready for testing yet.
|
||||
clusterclass-operations:
|
||||
# enabled: Turn on or off.
|
||||
enabled: false
|
||||
# image: registry.rancher.com/rancher/rancher/turtles
|
||||
image: registry.rancher.com/rancher/rancher/turtles
|
||||
# imageVersion: v0.19.0
|
||||
imageVersion: v0.19.0
|
||||
# imagePullPolicy: IfNotPresent
|
||||
imageVersion: v0.17.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
|
||||
# cluster-api-operator: Manages Cluster API components.
|
||||
cluster-api-operator:
|
||||
# enabled: Turn on or off.
|
||||
enabled: true
|
||||
# cert-manager: Cert-manager integration.
|
||||
cert-manager:
|
||||
# enabled: Turn on or off.
|
||||
enabled: false
|
||||
# volumes: Volumes for operator pods (certs, config).
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
# defaultMode: File permissions.
|
||||
defaultMode: 420
|
||||
# secretName: Secret for webhook certs.
|
||||
secretName: capi-operator-webhook-service-cert
|
||||
- name: clusterctl-config
|
||||
configMap:
|
||||
# name: ConfigMap for clusterctl.
|
||||
name: clusterctl-config
|
||||
# image: registry.rancher.com/rancher/rancher/turtles
|
||||
image:
|
||||
manager:
|
||||
# repository: Image repo.
|
||||
repository: registry.rancher.com/rancher/cluster-api-operator
|
||||
# volumeMounts: Mount volumes to pods.
|
||||
volumeMounts:
|
||||
manager:
|
||||
- mountPath: /tmp/k8s-webhook-server/serving-certs
|
||||
name: cert
|
||||
# readOnly: Mount as read-only.
|
||||
readOnly: true
|
||||
- mountPath: /config
|
||||
name: clusterctl-config
|
||||
# readOnly: Mount as read-only.
|
||||
readOnly: true
|
||||
# cleanup: Enable cleanup tasks.
|
||||
cleanup: true
|
||||
# cluster-api: Cluster API component settings.
|
||||
cluster-api:
|
||||
# enabled: Turn on or off.
|
||||
enabled: true
|
||||
# configSecret: Secret for Cluster API config.
|
||||
configSecret:
|
||||
# name: Custom secret name (if overriding).
|
||||
name: ""
|
||||
# defaultName: Default secret name.
|
||||
defaultName: capi-env-variables
|
||||
# core: Core Cluster API settings.
|
||||
core:
|
||||
# namespace: Core component namespace.
|
||||
namespace: capi-system
|
||||
# imageUrl: Custom image URL.
|
||||
imageUrl: ""
|
||||
# fetchConfig: Config fetching settings.
|
||||
fetchConfig:
|
||||
# url: Config fetch URL.
|
||||
url: ""
|
||||
# selector: Config selector.
|
||||
selector: ""
|
||||
# rke2: RKE2 provider settings.
|
||||
rke2:
|
||||
# enabled: Turn on or off.
|
||||
enabled: true
|
||||
# version: RKE2 version.
|
||||
version: "v0.15.1"
|
||||
# bootstrap: RKE2 bootstrap provider.
|
||||
version: ""
|
||||
bootstrap:
|
||||
# namespace: Bootstrap namespace.
|
||||
namespace: rke2-bootstrap-system
|
||||
# imageUrl: Custom image URL.
|
||||
imageUrl: ""
|
||||
# fetchConfig: Config fetching settings.
|
||||
fetchConfig:
|
||||
# url: Config fetch URL.
|
||||
url: ""
|
||||
# selector: Config selector.
|
||||
selector: ""
|
||||
# controlPlane: RKE2 control plane provider.
|
||||
controlPlane:
|
||||
# namespace: Control plane namespace.
|
||||
namespace: rke2-control-plane-system
|
||||
# imageUrl: Custom image URL.
|
||||
imageUrl: ""
|
||||
# fetchConfig: Config fetching settings.
|
||||
fetchConfig:
|
||||
# url: Config fetch URL.
|
||||
url: ""
|
||||
# selector: Config selector.
|
||||
selector: ""
|
||||
metal3:
|
||||
enabled: true
|
||||
|
@@ -7,7 +7,7 @@ spec:
|
||||
components:
|
||||
kubernetes:
|
||||
k3s:
|
||||
version: v1.32.3+k3s1
|
||||
version: v1.32.2+k3s1
|
||||
coreComponents:
|
||||
- name: traefik-crd
|
||||
version: 34.2.1+up34.2.0
|
||||
@@ -31,13 +31,13 @@ spec:
|
||||
image: rancher/mirrored-metrics-server:v0.7.2
|
||||
type: Deployment
|
||||
rke2:
|
||||
version: v1.32.3+rke2r1
|
||||
version: v1.32.2+rke2r1
|
||||
coreComponents:
|
||||
- name: rke2-cilium
|
||||
version: 1.17.100
|
||||
version: 1.17.000
|
||||
type: HelmChart
|
||||
- name: rke2-canal
|
||||
version: v3.29.2-build2025030601
|
||||
version: v3.29.2-build2025021800
|
||||
type: HelmChart
|
||||
- name: rke2-calico-crd
|
||||
version: v3.29.101
|
||||
@@ -46,10 +46,10 @@ spec:
|
||||
version: v3.29.200
|
||||
type: HelmChart
|
||||
- name: rke2-coredns
|
||||
version: 1.39.100
|
||||
version: 1.36.102
|
||||
type: HelmChart
|
||||
- name: rke2-ingress-nginx
|
||||
version: 4.12.100
|
||||
version: 4.12.005
|
||||
type: HelmChart
|
||||
- name: rke2-metrics-server
|
||||
version: 3.12.200
|
||||
@@ -89,46 +89,46 @@ spec:
|
||||
- prettyName: Rancher
|
||||
releaseName: rancher
|
||||
chart: rancher
|
||||
version: 2.11.1
|
||||
repository: https://charts.rancher.com/server-charts/prime
|
||||
version: 2.11.0-alpha11
|
||||
repository: https://releases.rancher.com/server-charts/alpha
|
||||
values:
|
||||
postDelete:
|
||||
enabled: false
|
||||
- prettyName: Longhorn
|
||||
releaseName: longhorn
|
||||
chart: longhorn
|
||||
version: 106.2.0+up1.8.1
|
||||
version: 105.1.1+up1.7.3
|
||||
repository: https://charts.rancher.io
|
||||
dependencyCharts:
|
||||
- releaseName: longhorn-crd
|
||||
chart: longhorn-crd
|
||||
version: 106.2.0+up1.8.1
|
||||
version: 105.1.1+up1.7.3
|
||||
repository: https://charts.rancher.io
|
||||
- prettyName: MetalLB
|
||||
releaseName: metallb
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%metallb"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.14.9"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%metallb
|
||||
version: %%CHART_MAJOR%%.0.0+up0.14.9
|
||||
- prettyName: CDI
|
||||
releaseName: cdi
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%cdi"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.5.0"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%cdi
|
||||
version: %%CHART_MAJOR%%.0.0+up0.4.0
|
||||
- prettyName: KubeVirt
|
||||
releaseName: kubevirt
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%kubevirt"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.5.0"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%kubevirt
|
||||
version: %%CHART_MAJOR%%.0.0+up0.4.0
|
||||
addonCharts:
|
||||
- releaseName: kubevirt-dashboard-extension
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%kubevirt-dashboard-extension"
|
||||
version: "%%CHART_MAJOR%%.0.2+up1.3.2"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%kubevirt-dashboard-extension
|
||||
version: %%CHART_MAJOR%%.0.1+up1.3.1
|
||||
- prettyName: NeuVector
|
||||
releaseName: neuvector
|
||||
chart: neuvector
|
||||
version: 106.0.0+up2.8.5
|
||||
version: 105.0.1+up2.8.4
|
||||
repository: https://charts.rancher.io
|
||||
dependencyCharts:
|
||||
- releaseName: neuvector-crd
|
||||
chart: neuvector-crd
|
||||
version: 106.0.0+up2.8.5
|
||||
version: 105.0.1+up2.8.4
|
||||
repository: https://charts.rancher.io
|
||||
addonCharts:
|
||||
- releaseName: neuvector-ui-ext
|
||||
@@ -137,16 +137,16 @@ spec:
|
||||
version: 2.0.1
|
||||
- prettyName: EndpointCopierOperator
|
||||
releaseName: endpoint-copier-operator
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%endpoint-copier-operator"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.2.1"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%endpoint-copier-operator
|
||||
version: %%CHART_MAJOR%%.0.0+up0.2.1
|
||||
- prettyName: Elemental
|
||||
releaseName: elemental-operator
|
||||
chart: oci://registry.suse.com/rancher/elemental-operator-chart
|
||||
version: 1.6.8
|
||||
version: 1.6.5
|
||||
dependencyCharts:
|
||||
- releaseName: elemental-operator-crds
|
||||
chart: oci://registry.suse.com/rancher/elemental-operator-crds-chart
|
||||
version: 1.6.8
|
||||
version: 1.6.5
|
||||
addonCharts:
|
||||
- releaseName: elemental
|
||||
chart: elemental
|
||||
@@ -154,25 +154,25 @@ spec:
|
||||
version: 3.0.0
|
||||
- prettyName: SRIOV
|
||||
releaseName: sriov-network-operator
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%sriov-network-operator"
|
||||
version: "%%CHART_MAJOR%%.0.2+up1.5.0"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%sriov-network-operator
|
||||
version: %%CHART_MAJOR%%.0.0+up1.4.0
|
||||
dependencyCharts:
|
||||
- releaseName: sriov-crd
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%sriov-crd"
|
||||
version: "%%CHART_MAJOR%%.0.2+up1.5.0"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%sriov-crd
|
||||
version: %%CHART_MAJOR%%.0.0+up1.4.0
|
||||
- prettyName: Akri
|
||||
releaseName: akri
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%akri"
|
||||
version: "%%CHART_MAJOR%%.0.0+up0.12.20"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%akri
|
||||
version: %%CHART_MAJOR%%.0.0+up0.12.20
|
||||
addonCharts:
|
||||
- releaseName: akri-dashboard-extension
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%akri-dashboard-extension"
|
||||
version: "%%CHART_MAJOR%%.0.2+up1.3.1"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%akri-dashboard-extension
|
||||
version: %%CHART_MAJOR%%.0.1+up1.3.0
|
||||
- prettyName: Metal3
|
||||
releaseName: metal3
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%metal3"
|
||||
version: "%%CHART_MAJOR%%.0.5+up0.11.3"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%metal3
|
||||
version: %%CHART_MAJOR%%.0.0+up0.10.0
|
||||
- prettyName: RancherTurtles
|
||||
releaseName: rancher-turtles
|
||||
chart: "%%CHART_REPO%%/%%CHART_PREFIX%%rancher-turtles"
|
||||
version: "%%CHART_MAJOR%%.0.2+up0.19.0"
|
||||
chart: %%CHART_REPO%%/%%CHART_PREFIX%%rancher-turtles
|
||||
version: %%CHART_MAJOR%%.0.0+up0.17.0
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!BuildTag: %%CHART_PREFIX%%sriov-crd:%%CHART_MAJOR%%.0.2_up1.5.0-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%sriov-crd:%%CHART_MAJOR%%.0.2_up1.5.0
|
||||
#!BuildTag: %%CHART_PREFIX%%sriov-crd:%%CHART_MAJOR%%.0.0_up1.4.0-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%sriov-crd:%%CHART_MAJOR%%.0.0_up1.4.0
|
||||
annotations:
|
||||
catalog.cattle.io/experimental: "true"
|
||||
catalog.cattle.io/hidden: "true"
|
||||
@@ -10,4 +10,4 @@ apiVersion: v2
|
||||
description: Installs the CRDs for the SR-IOV operator
|
||||
name: sriov-crd
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.2+up1.5.0"
|
||||
version: "%%CHART_MAJOR%%.0.0+up1.4.0"
|
||||
|
@@ -14,92 +14,92 @@ spec:
|
||||
singular: ovsnetwork
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: OVSNetwork is the Schema for the ovsnetworks 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: OVSNetworkSpec defines the desired state of OVSNetwork
|
||||
properties:
|
||||
bridge:
|
||||
description: |-
|
||||
name of the OVS bridge, if not set OVS will automatically select bridge
|
||||
based on VF PCI address
|
||||
type: string
|
||||
capabilities:
|
||||
description: |-
|
||||
Capabilities to be configured for this network.
|
||||
Capabilities supported: (mac|ips), e.g. '{"mac": true}'
|
||||
type: string
|
||||
interfaceType:
|
||||
description: The type of interface on ovs.
|
||||
type: string
|
||||
ipam:
|
||||
description: IPAM configuration to be used for this network.
|
||||
type: string
|
||||
metaPlugins:
|
||||
description: MetaPluginsConfig configuration to be used in order to
|
||||
chain metaplugins
|
||||
type: string
|
||||
mtu:
|
||||
description: Mtu for the OVS port
|
||||
type: integer
|
||||
networkNamespace:
|
||||
description: Namespace of the NetworkAttachmentDefinition custom resource
|
||||
type: string
|
||||
resourceName:
|
||||
description: OVS Network device plugin endpoint resource name
|
||||
type: string
|
||||
trunk:
|
||||
description: Trunk configuration for the OVS port
|
||||
items:
|
||||
description: TrunkConfig contains configuration for bridge trunk
|
||||
properties:
|
||||
id:
|
||||
maximum: 4095
|
||||
minimum: 0
|
||||
type: integer
|
||||
maxID:
|
||||
maximum: 4095
|
||||
minimum: 0
|
||||
type: integer
|
||||
minID:
|
||||
maximum: 4095
|
||||
minimum: 0
|
||||
type: integer
|
||||
type: object
|
||||
type: array
|
||||
vlan:
|
||||
description: Vlan to assign for the OVS port
|
||||
maximum: 4095
|
||||
minimum: 0
|
||||
type: integer
|
||||
required:
|
||||
- resourceName
|
||||
type: object
|
||||
status:
|
||||
description: OVSNetworkStatus defines the observed state of OVSNetwork
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: OVSNetwork is the Schema for the ovsnetworks 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: OVSNetworkSpec defines the desired state of OVSNetwork
|
||||
properties:
|
||||
bridge:
|
||||
description: |-
|
||||
name of the OVS bridge, if not set OVS will automatically select bridge
|
||||
based on VF PCI address
|
||||
type: string
|
||||
capabilities:
|
||||
description: |-
|
||||
Capabilities to be configured for this network.
|
||||
Capabilities supported: (mac|ips), e.g. '{"mac": true}'
|
||||
type: string
|
||||
interfaceType:
|
||||
description: The type of interface on ovs.
|
||||
type: string
|
||||
ipam:
|
||||
description: IPAM configuration to be used for this network.
|
||||
type: string
|
||||
metaPlugins:
|
||||
description: MetaPluginsConfig configuration to be used in order to
|
||||
chain metaplugins
|
||||
type: string
|
||||
mtu:
|
||||
description: Mtu for the OVS port
|
||||
type: integer
|
||||
networkNamespace:
|
||||
description: Namespace of the NetworkAttachmentDefinition custom resource
|
||||
type: string
|
||||
resourceName:
|
||||
description: OVS Network device plugin endpoint resource name
|
||||
type: string
|
||||
trunk:
|
||||
description: Trunk configuration for the OVS port
|
||||
items:
|
||||
description: TrunkConfig contains configuration for bridge trunk
|
||||
properties:
|
||||
id:
|
||||
maximum: 4095
|
||||
minimum: 0
|
||||
type: integer
|
||||
maxID:
|
||||
maximum: 4095
|
||||
minimum: 0
|
||||
type: integer
|
||||
minID:
|
||||
maximum: 4095
|
||||
minimum: 0
|
||||
type: integer
|
||||
type: object
|
||||
type: array
|
||||
vlan:
|
||||
description: Vlan to assign for the OVS port
|
||||
maximum: 4095
|
||||
minimum: 0
|
||||
type: integer
|
||||
required:
|
||||
- resourceName
|
||||
type: object
|
||||
status:
|
||||
description: OVSNetworkStatus defines the observed state of OVSNetwork
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
|
@@ -14,65 +14,65 @@ spec:
|
||||
singular: sriovibnetwork
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovIBNetwork is the Schema for the sriovibnetworks 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: SriovIBNetworkSpec defines the desired state of SriovIBNetwork
|
||||
properties:
|
||||
capabilities:
|
||||
description: |-
|
||||
Capabilities to be configured for this network.
|
||||
Capabilities supported: (infinibandGUID), e.g. '{"infinibandGUID": true}'
|
||||
type: string
|
||||
ipam:
|
||||
description: IPAM configuration to be used for this network.
|
||||
type: string
|
||||
linkState:
|
||||
description: VF link state (enable|disable|auto)
|
||||
enum:
|
||||
- auto
|
||||
- enable
|
||||
- disable
|
||||
type: string
|
||||
metaPlugins:
|
||||
description: |-
|
||||
MetaPluginsConfig configuration to be used in order to chain metaplugins to the sriov interface returned
|
||||
by the operator.
|
||||
type: string
|
||||
networkNamespace:
|
||||
description: Namespace of the NetworkAttachmentDefinition custom resource
|
||||
type: string
|
||||
resourceName:
|
||||
description: SRIOV Network device plugin endpoint resource name
|
||||
type: string
|
||||
required:
|
||||
- resourceName
|
||||
type: object
|
||||
status:
|
||||
description: SriovIBNetworkStatus defines the observed state of SriovIBNetwork
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovIBNetwork is the Schema for the sriovibnetworks 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: SriovIBNetworkSpec defines the desired state of SriovIBNetwork
|
||||
properties:
|
||||
capabilities:
|
||||
description: |-
|
||||
Capabilities to be configured for this network.
|
||||
Capabilities supported: (infinibandGUID), e.g. '{"infinibandGUID": true}'
|
||||
type: string
|
||||
ipam:
|
||||
description: IPAM configuration to be used for this network.
|
||||
type: string
|
||||
linkState:
|
||||
description: VF link state (enable|disable|auto)
|
||||
enum:
|
||||
- auto
|
||||
- enable
|
||||
- disable
|
||||
type: string
|
||||
metaPlugins:
|
||||
description: |-
|
||||
MetaPluginsConfig configuration to be used in order to chain metaplugins to the sriov interface returned
|
||||
by the operator.
|
||||
type: string
|
||||
networkNamespace:
|
||||
description: Namespace of the NetworkAttachmentDefinition custom resource
|
||||
type: string
|
||||
resourceName:
|
||||
description: SRIOV Network device plugin endpoint resource name
|
||||
type: string
|
||||
required:
|
||||
- resourceName
|
||||
type: object
|
||||
status:
|
||||
description: SriovIBNetworkStatus defines the observed state of SriovIBNetwork
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
|
@@ -14,200 +14,196 @@ spec:
|
||||
singular: sriovnetworknodepolicy
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovNetworkNodePolicy is the Schema for the sriovnetworknodepolicies
|
||||
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: SriovNetworkNodePolicySpec defines the desired state of SriovNetworkNodePolicy
|
||||
properties:
|
||||
bridge:
|
||||
description: |-
|
||||
contains bridge configuration for matching PFs,
|
||||
valid only for eSwitchMode==switchdev
|
||||
properties:
|
||||
ovs:
|
||||
description: contains configuration for the OVS bridge,
|
||||
properties:
|
||||
bridge:
|
||||
description: contains bridge level settings
|
||||
properties:
|
||||
datapathType:
|
||||
description: configure datapath_type field in the Bridge
|
||||
table in OVSDB
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovNetworkNodePolicy is the Schema for the sriovnetworknodepolicies
|
||||
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: SriovNetworkNodePolicySpec defines the desired state of SriovNetworkNodePolicy
|
||||
properties:
|
||||
bridge:
|
||||
description: |-
|
||||
contains bridge configuration for matching PFs,
|
||||
valid only for eSwitchMode==switchdev
|
||||
properties:
|
||||
ovs:
|
||||
description: contains configuration for the OVS bridge,
|
||||
properties:
|
||||
bridge:
|
||||
description: contains bridge level settings
|
||||
properties:
|
||||
datapathType:
|
||||
description: configure datapath_type field in the Bridge
|
||||
table in OVSDB
|
||||
type: string
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: IDs to inject to external_ids field in the
|
||||
Bridge table in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: additional options to inject to other_config
|
||||
field in the bridge table in OVSDB
|
||||
type: object
|
||||
type: object
|
||||
uplink:
|
||||
description: contains settings for uplink (PF)
|
||||
properties:
|
||||
interface:
|
||||
description: contains settings for PF interface in the
|
||||
OVS bridge
|
||||
properties:
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: external_ids field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
mtuRequest:
|
||||
description: mtu_request field in the Interface table
|
||||
in OVSDB
|
||||
type: integer
|
||||
options:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: options field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: other_config field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
type:
|
||||
description: type field in the Interface table in
|
||||
OVSDB
|
||||
description: IDs to inject to external_ids field in the
|
||||
Bridge table in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: additional options to inject to other_config
|
||||
field in the bridge table in OVSDB
|
||||
type: object
|
||||
type: object
|
||||
uplink:
|
||||
description: contains settings for uplink (PF)
|
||||
properties:
|
||||
interface:
|
||||
description: contains settings for PF interface in the
|
||||
OVS bridge
|
||||
properties:
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
deviceType:
|
||||
default: netdevice
|
||||
description: The driver type for configured VFs. Allowed value "netdevice",
|
||||
"vfio-pci". Defaults to netdevice.
|
||||
enum:
|
||||
- netdevice
|
||||
- vfio-pci
|
||||
type: string
|
||||
eSwitchMode:
|
||||
description: NIC Device Mode. Allowed value "legacy","switchdev".
|
||||
enum:
|
||||
- legacy
|
||||
- switchdev
|
||||
type: string
|
||||
excludeTopology:
|
||||
description: Exclude device's NUMA node when advertising this resource
|
||||
by SRIOV network device plugin. Default to false.
|
||||
type: boolean
|
||||
externallyManaged:
|
||||
description: don't create the virtual function only allocated them
|
||||
to the device plugin. Defaults to false.
|
||||
type: boolean
|
||||
isRdma:
|
||||
description: RDMA mode. Defaults to false.
|
||||
type: boolean
|
||||
linkType:
|
||||
description: NIC Link Type. Allowed value "eth", "ETH", "ib", and
|
||||
"IB".
|
||||
enum:
|
||||
- eth
|
||||
- ETH
|
||||
- ib
|
||||
- IB
|
||||
type: string
|
||||
mtu:
|
||||
description: MTU of VF
|
||||
minimum: 1
|
||||
type: integer
|
||||
needVhostNet:
|
||||
description: mount vhost-net device. Defaults to false.
|
||||
type: boolean
|
||||
nicSelector:
|
||||
description: NicSelector selects the NICs to be configured
|
||||
properties:
|
||||
deviceID:
|
||||
description: The device hex code of SR-IoV device. Allowed value
|
||||
"0d58", "1572", "158b", "1013", "1015", "1017", "101b".
|
||||
type: string
|
||||
netFilter:
|
||||
description: Infrastructure Networking selection filter. Allowed
|
||||
value "openstack/NetworkID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
type: string
|
||||
pfNames:
|
||||
description: Name of SR-IoV PF.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
rootDevices:
|
||||
description: PCI address of SR-IoV PF.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
vendor:
|
||||
description: The vendor hex code of SR-IoV device. Allowed value
|
||||
"8086", "15b3".
|
||||
type: string
|
||||
type: object
|
||||
nodeSelector:
|
||||
additionalProperties:
|
||||
description: external_ids field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
options:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: options field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: other_config field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
type:
|
||||
description: type field in the Interface table in
|
||||
OVSDB
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
deviceType:
|
||||
default: netdevice
|
||||
description: The driver type for configured VFs. Allowed value "netdevice",
|
||||
"vfio-pci". Defaults to netdevice.
|
||||
enum:
|
||||
- netdevice
|
||||
- vfio-pci
|
||||
type: string
|
||||
eSwitchMode:
|
||||
description: NIC Device Mode. Allowed value "legacy","switchdev".
|
||||
enum:
|
||||
- legacy
|
||||
- switchdev
|
||||
type: string
|
||||
excludeTopology:
|
||||
description: Exclude device's NUMA node when advertising this resource
|
||||
by SRIOV network device plugin. Default to false.
|
||||
type: boolean
|
||||
externallyManaged:
|
||||
description: don't create the virtual function only allocated them
|
||||
to the device plugin. Defaults to false.
|
||||
type: boolean
|
||||
isRdma:
|
||||
description: RDMA mode. Defaults to false.
|
||||
type: boolean
|
||||
linkType:
|
||||
description: NIC Link Type. Allowed value "eth", "ETH", "ib", and
|
||||
"IB".
|
||||
enum:
|
||||
- eth
|
||||
- ETH
|
||||
- ib
|
||||
- IB
|
||||
type: string
|
||||
mtu:
|
||||
description: MTU of VF
|
||||
minimum: 1
|
||||
type: integer
|
||||
needVhostNet:
|
||||
description: mount vhost-net device. Defaults to false.
|
||||
type: boolean
|
||||
nicSelector:
|
||||
description: NicSelector selects the NICs to be configured
|
||||
properties:
|
||||
deviceID:
|
||||
description: The device hex code of SR-IoV device. Allowed value
|
||||
"0d58", "1572", "158b", "1013", "1015", "1017", "101b".
|
||||
type: string
|
||||
description: NodeSelector selects the nodes to be configured
|
||||
type: object
|
||||
numVfs:
|
||||
description: Number of VFs for each PF
|
||||
minimum: 0
|
||||
type: integer
|
||||
priority:
|
||||
description: Priority of the policy, higher priority policies can
|
||||
override lower ones.
|
||||
maximum: 99
|
||||
minimum: 0
|
||||
type: integer
|
||||
resourceName:
|
||||
description: SRIOV Network device plugin endpoint resource name
|
||||
netFilter:
|
||||
description: Infrastructure Networking selection filter. Allowed
|
||||
value "openstack/NetworkID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
type: string
|
||||
pfNames:
|
||||
description: Name of SR-IoV PF.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
rootDevices:
|
||||
description: PCI address of SR-IoV PF.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
vendor:
|
||||
description: The vendor hex code of SR-IoV device. Allowed value
|
||||
"8086", "15b3".
|
||||
type: string
|
||||
type: object
|
||||
nodeSelector:
|
||||
additionalProperties:
|
||||
type: string
|
||||
vdpaType:
|
||||
description: VDPA device type. Allowed value "virtio", "vhost"
|
||||
enum:
|
||||
- virtio
|
||||
- vhost
|
||||
type: string
|
||||
required:
|
||||
- nicSelector
|
||||
- nodeSelector
|
||||
- numVfs
|
||||
- resourceName
|
||||
type: object
|
||||
status:
|
||||
description: SriovNetworkNodePolicyStatus defines the observed state of
|
||||
SriovNetworkNodePolicy
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
description: NodeSelector selects the nodes to be configured
|
||||
type: object
|
||||
numVfs:
|
||||
description: Number of VFs for each PF
|
||||
minimum: 0
|
||||
type: integer
|
||||
priority:
|
||||
description: Priority of the policy, higher priority policies can
|
||||
override lower ones.
|
||||
maximum: 99
|
||||
minimum: 0
|
||||
type: integer
|
||||
resourceName:
|
||||
description: SRIOV Network device plugin endpoint resource name
|
||||
type: string
|
||||
vdpaType:
|
||||
description: VDPA device type. Allowed value "virtio", "vhost"
|
||||
enum:
|
||||
- virtio
|
||||
- vhost
|
||||
type: string
|
||||
required:
|
||||
- nicSelector
|
||||
- nodeSelector
|
||||
- numVfs
|
||||
- resourceName
|
||||
type: object
|
||||
status:
|
||||
description: SriovNetworkNodePolicyStatus defines the observed state of
|
||||
SriovNetworkNodePolicy
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
|
@@ -14,356 +14,330 @@ spec:
|
||||
singular: sriovnetworknodestate
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.syncStatus
|
||||
name: Sync Status
|
||||
type: string
|
||||
- jsonPath: .metadata.annotations.sriovnetwork\.openshift\.io/desired-state
|
||||
name: Desired Sync State
|
||||
type: string
|
||||
- jsonPath: .metadata.annotations.sriovnetwork\.openshift\.io/current-state
|
||||
name: Current Sync State
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovNetworkNodeState is the Schema for the sriovnetworknodestates
|
||||
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: SriovNetworkNodeStateSpec defines the desired state of SriovNetworkNodeState
|
||||
properties:
|
||||
bridges:
|
||||
description: Bridges contains list of bridges
|
||||
properties:
|
||||
ovs:
|
||||
items:
|
||||
description: OVSConfigExt contains configuration for the concrete
|
||||
OVS bridge
|
||||
properties:
|
||||
bridge:
|
||||
description: bridge-level configuration for the bridge
|
||||
properties:
|
||||
datapathType:
|
||||
description: configure datapath_type field in the Bridge
|
||||
table in OVSDB
|
||||
type: string
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: IDs to inject to external_ids field in
|
||||
the Bridge table in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: additional options to inject to other_config
|
||||
field in the bridge table in OVSDB
|
||||
type: object
|
||||
type: object
|
||||
name:
|
||||
description: name of the bridge
|
||||
type: string
|
||||
uplinks:
|
||||
description: |-
|
||||
uplink-level bridge configuration for each uplink(PF).
|
||||
currently must contain only one element
|
||||
items:
|
||||
description: OVSUplinkConfigExt contains configuration
|
||||
for the concrete OVS uplink(PF)
|
||||
properties:
|
||||
interface:
|
||||
description: configuration from the Interface OVS
|
||||
table for the PF
|
||||
properties:
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: external_ids field in the Interface
|
||||
table in OVSDB
|
||||
type: object
|
||||
mtuRequest:
|
||||
description: mtu_request field in the Interface
|
||||
table in OVSDB
|
||||
type: integer
|
||||
options:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: options field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: other_config field in the Interface
|
||||
table in OVSDB
|
||||
type: object
|
||||
type:
|
||||
description: type field in the Interface table
|
||||
in OVSDB
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: name of the PF interface
|
||||
type: string
|
||||
pciAddress:
|
||||
description: pci address of the PF
|
||||
type: string
|
||||
required:
|
||||
- pciAddress
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
interfaces:
|
||||
items:
|
||||
properties:
|
||||
eSwitchMode:
|
||||
type: string
|
||||
externallyManaged:
|
||||
type: boolean
|
||||
linkType:
|
||||
type: string
|
||||
mtu:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
numVfs:
|
||||
type: integer
|
||||
pciAddress:
|
||||
type: string
|
||||
vfGroups:
|
||||
items:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.syncStatus
|
||||
name: Sync Status
|
||||
type: string
|
||||
- jsonPath: .metadata.annotations.sriovnetwork\.openshift\.io/desired-state
|
||||
name: Desired Sync State
|
||||
type: string
|
||||
- jsonPath: .metadata.annotations.sriovnetwork\.openshift\.io/current-state
|
||||
name: Current Sync State
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovNetworkNodeState is the Schema for the sriovnetworknodestates
|
||||
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: SriovNetworkNodeStateSpec defines the desired state of SriovNetworkNodeState
|
||||
properties:
|
||||
bridges:
|
||||
description: Bridges contains list of bridges
|
||||
properties:
|
||||
ovs:
|
||||
items:
|
||||
description: OVSConfigExt contains configuration for the concrete
|
||||
OVS bridge
|
||||
properties:
|
||||
bridge:
|
||||
description: bridge-level configuration for the bridge
|
||||
properties:
|
||||
deviceType:
|
||||
type: string
|
||||
isRdma:
|
||||
type: boolean
|
||||
mtu:
|
||||
type: integer
|
||||
policyName:
|
||||
type: string
|
||||
resourceName:
|
||||
type: string
|
||||
vdpaType:
|
||||
type: string
|
||||
vfRange:
|
||||
datapathType:
|
||||
description: configure datapath_type field in the Bridge
|
||||
table in OVSDB
|
||||
type: string
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: IDs to inject to external_ids field in
|
||||
the Bridge table in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: additional options to inject to other_config
|
||||
field in the bridge table in OVSDB
|
||||
type: object
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- pciAddress
|
||||
type: object
|
||||
type: array
|
||||
system:
|
||||
properties:
|
||||
rdmaMode:
|
||||
description: RDMA subsystem. Allowed value "shared", "exclusive".
|
||||
enum:
|
||||
- shared
|
||||
- exclusive
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
status:
|
||||
description: SriovNetworkNodeStateStatus defines the observed state of
|
||||
SriovNetworkNodeState
|
||||
properties:
|
||||
bridges:
|
||||
description: Bridges contains list of bridges
|
||||
properties:
|
||||
ovs:
|
||||
items:
|
||||
description: OVSConfigExt contains configuration for the concrete
|
||||
OVS bridge
|
||||
properties:
|
||||
bridge:
|
||||
description: bridge-level configuration for the bridge
|
||||
name:
|
||||
description: name of the bridge
|
||||
type: string
|
||||
uplinks:
|
||||
description: |-
|
||||
uplink-level bridge configuration for each uplink(PF).
|
||||
currently must contain only one element
|
||||
items:
|
||||
description: OVSUplinkConfigExt contains configuration
|
||||
for the concrete OVS uplink(PF)
|
||||
properties:
|
||||
datapathType:
|
||||
description: configure datapath_type field in the Bridge
|
||||
table in OVSDB
|
||||
type: string
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: IDs to inject to external_ids field in
|
||||
the Bridge table in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: additional options to inject to other_config
|
||||
field in the bridge table in OVSDB
|
||||
type: object
|
||||
type: object
|
||||
name:
|
||||
description: name of the bridge
|
||||
type: string
|
||||
uplinks:
|
||||
description: |-
|
||||
uplink-level bridge configuration for each uplink(PF).
|
||||
currently must contain only one element
|
||||
items:
|
||||
description: OVSUplinkConfigExt contains configuration
|
||||
for the concrete OVS uplink(PF)
|
||||
properties:
|
||||
interface:
|
||||
description: configuration from the Interface OVS
|
||||
table for the PF
|
||||
properties:
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: external_ids field in the Interface
|
||||
table in OVSDB
|
||||
type: object
|
||||
mtuRequest:
|
||||
description: mtu_request field in the Interface
|
||||
table in OVSDB
|
||||
type: integer
|
||||
options:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: options field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: other_config field in the Interface
|
||||
table in OVSDB
|
||||
type: object
|
||||
type:
|
||||
description: type field in the Interface table
|
||||
in OVSDB
|
||||
interface:
|
||||
description: configuration from the Interface OVS
|
||||
table for the PF
|
||||
properties:
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: name of the PF interface
|
||||
type: string
|
||||
pciAddress:
|
||||
description: pci address of the PF
|
||||
type: string
|
||||
required:
|
||||
- pciAddress
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
interfaces:
|
||||
items:
|
||||
properties:
|
||||
Vfs:
|
||||
items:
|
||||
properties:
|
||||
Vlan:
|
||||
type: integer
|
||||
assigned:
|
||||
type: string
|
||||
deviceID:
|
||||
type: string
|
||||
driver:
|
||||
type: string
|
||||
guid:
|
||||
type: string
|
||||
mac:
|
||||
type: string
|
||||
mtu:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
pciAddress:
|
||||
type: string
|
||||
representorName:
|
||||
type: string
|
||||
vdpaType:
|
||||
type: string
|
||||
vendor:
|
||||
type: string
|
||||
vfID:
|
||||
type: integer
|
||||
required:
|
||||
description: external_ids field in the Interface
|
||||
table in OVSDB
|
||||
type: object
|
||||
options:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: options field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: other_config field in the Interface
|
||||
table in OVSDB
|
||||
type: object
|
||||
type:
|
||||
description: type field in the Interface table
|
||||
in OVSDB
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: name of the PF interface
|
||||
type: string
|
||||
pciAddress:
|
||||
description: pci address of the PF
|
||||
type: string
|
||||
required:
|
||||
- pciAddress
|
||||
- vfID
|
||||
type: object
|
||||
type: array
|
||||
deviceID:
|
||||
type: string
|
||||
driver:
|
||||
type: string
|
||||
eSwitchMode:
|
||||
type: string
|
||||
externallyManaged:
|
||||
type: boolean
|
||||
linkAdminState:
|
||||
type: string
|
||||
linkSpeed:
|
||||
type: string
|
||||
linkType:
|
||||
type: string
|
||||
mac:
|
||||
type: string
|
||||
mtu:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
netFilter:
|
||||
type: string
|
||||
numVfs:
|
||||
type: integer
|
||||
pciAddress:
|
||||
type: string
|
||||
totalvfs:
|
||||
type: integer
|
||||
vendor:
|
||||
type: string
|
||||
required:
|
||||
- pciAddress
|
||||
type: object
|
||||
type: array
|
||||
lastSyncError:
|
||||
type: string
|
||||
syncStatus:
|
||||
type: string
|
||||
system:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
interfaces:
|
||||
items:
|
||||
properties:
|
||||
rdmaMode:
|
||||
description: RDMA subsystem. Allowed value "shared", "exclusive".
|
||||
enum:
|
||||
- shared
|
||||
- exclusive
|
||||
eSwitchMode:
|
||||
type: string
|
||||
externallyManaged:
|
||||
type: boolean
|
||||
linkType:
|
||||
type: string
|
||||
mtu:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
numVfs:
|
||||
type: integer
|
||||
pciAddress:
|
||||
type: string
|
||||
vfGroups:
|
||||
items:
|
||||
properties:
|
||||
deviceType:
|
||||
type: string
|
||||
isRdma:
|
||||
type: boolean
|
||||
mtu:
|
||||
type: integer
|
||||
policyName:
|
||||
type: string
|
||||
resourceName:
|
||||
type: string
|
||||
vdpaType:
|
||||
type: string
|
||||
vfRange:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- pciAddress
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
type: array
|
||||
type: object
|
||||
status:
|
||||
description: SriovNetworkNodeStateStatus defines the observed state of
|
||||
SriovNetworkNodeState
|
||||
properties:
|
||||
bridges:
|
||||
description: Bridges contains list of bridges
|
||||
properties:
|
||||
ovs:
|
||||
items:
|
||||
description: OVSConfigExt contains configuration for the concrete
|
||||
OVS bridge
|
||||
properties:
|
||||
bridge:
|
||||
description: bridge-level configuration for the bridge
|
||||
properties:
|
||||
datapathType:
|
||||
description: configure datapath_type field in the Bridge
|
||||
table in OVSDB
|
||||
type: string
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: IDs to inject to external_ids field in
|
||||
the Bridge table in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: additional options to inject to other_config
|
||||
field in the bridge table in OVSDB
|
||||
type: object
|
||||
type: object
|
||||
name:
|
||||
description: name of the bridge
|
||||
type: string
|
||||
uplinks:
|
||||
description: |-
|
||||
uplink-level bridge configuration for each uplink(PF).
|
||||
currently must contain only one element
|
||||
items:
|
||||
description: OVSUplinkConfigExt contains configuration
|
||||
for the concrete OVS uplink(PF)
|
||||
properties:
|
||||
interface:
|
||||
description: configuration from the Interface OVS
|
||||
table for the PF
|
||||
properties:
|
||||
externalIDs:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: external_ids field in the Interface
|
||||
table in OVSDB
|
||||
type: object
|
||||
options:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: options field in the Interface table
|
||||
in OVSDB
|
||||
type: object
|
||||
otherConfig:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: other_config field in the Interface
|
||||
table in OVSDB
|
||||
type: object
|
||||
type:
|
||||
description: type field in the Interface table
|
||||
in OVSDB
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: name of the PF interface
|
||||
type: string
|
||||
pciAddress:
|
||||
description: pci address of the PF
|
||||
type: string
|
||||
required:
|
||||
- pciAddress
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
interfaces:
|
||||
items:
|
||||
properties:
|
||||
Vfs:
|
||||
items:
|
||||
properties:
|
||||
Vlan:
|
||||
type: integer
|
||||
assigned:
|
||||
type: string
|
||||
deviceID:
|
||||
type: string
|
||||
driver:
|
||||
type: string
|
||||
guid:
|
||||
type: string
|
||||
mac:
|
||||
type: string
|
||||
mtu:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
pciAddress:
|
||||
type: string
|
||||
representorName:
|
||||
type: string
|
||||
vdpaType:
|
||||
type: string
|
||||
vendor:
|
||||
type: string
|
||||
vfID:
|
||||
type: integer
|
||||
required:
|
||||
- pciAddress
|
||||
- vfID
|
||||
type: object
|
||||
type: array
|
||||
deviceID:
|
||||
type: string
|
||||
driver:
|
||||
type: string
|
||||
eSwitchMode:
|
||||
type: string
|
||||
externallyManaged:
|
||||
type: boolean
|
||||
linkAdminState:
|
||||
type: string
|
||||
linkSpeed:
|
||||
type: string
|
||||
linkType:
|
||||
type: string
|
||||
mac:
|
||||
type: string
|
||||
mtu:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
netFilter:
|
||||
type: string
|
||||
numVfs:
|
||||
type: integer
|
||||
pciAddress:
|
||||
type: string
|
||||
totalvfs:
|
||||
type: integer
|
||||
vendor:
|
||||
type: string
|
||||
required:
|
||||
- pciAddress
|
||||
type: object
|
||||
type: array
|
||||
lastSyncError:
|
||||
type: string
|
||||
syncStatus:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
|
@@ -14,116 +14,110 @@ spec:
|
||||
singular: sriovnetworkpoolconfig
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovNetworkPoolConfig is the Schema for the sriovnetworkpoolconfigs
|
||||
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: SriovNetworkPoolConfigSpec defines the desired state of SriovNetworkPoolConfig
|
||||
properties:
|
||||
maxUnavailable:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: |-
|
||||
maxUnavailable defines either an integer number or percentage
|
||||
of nodes in the pool that can go Unavailable during an update.
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovNetworkPoolConfig is the Schema for the sriovnetworkpoolconfigs
|
||||
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: SriovNetworkPoolConfigSpec defines the desired state of SriovNetworkPoolConfig
|
||||
properties:
|
||||
maxUnavailable:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: |-
|
||||
maxUnavailable defines either an integer number or percentage
|
||||
of nodes in the pool that can go Unavailable during an update.
|
||||
|
||||
|
||||
A value larger than 1 will mean multiple nodes going unavailable during
|
||||
the update, which may affect your workload stress on the remaining nodes.
|
||||
Drain will respect Pod Disruption Budgets (PDBs) such as etcd quorum guards,
|
||||
even if maxUnavailable is greater than one.
|
||||
x-kubernetes-int-or-string: true
|
||||
nodeSelector:
|
||||
description: nodeSelector specifies a label selector for Nodes
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of label selector requirements.
|
||||
The requirements are ANDed.
|
||||
items:
|
||||
description: |-
|
||||
A label selector requirement is a selector that contains values, a key, and an operator that
|
||||
relates the key and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that the selector applies
|
||||
to.
|
||||
type: string
|
||||
operator:
|
||||
description: |-
|
||||
operator represents a key's relationship to a set of values.
|
||||
Valid operators are In, NotIn, Exists and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: |-
|
||||
values is an array of string values. If the operator is In or NotIn,
|
||||
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
||||
the values array must be empty. This array is replaced during a strategic
|
||||
merge patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
A value larger than 1 will mean multiple nodes going unavailable during
|
||||
the update, which may affect your workload stress on the remaining nodes.
|
||||
Drain will respect Pod Disruption Budgets (PDBs) such as etcd quorum guards,
|
||||
even if maxUnavailable is greater than one.
|
||||
x-kubernetes-int-or-string: true
|
||||
nodeSelector:
|
||||
description: nodeSelector specifies a label selector for Nodes
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of label selector requirements.
|
||||
The requirements are ANDed.
|
||||
items:
|
||||
description: |-
|
||||
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
||||
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
||||
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
||||
A label selector requirement is a selector that contains values, a key, and an operator that
|
||||
relates the key and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that the selector applies
|
||||
to.
|
||||
type: string
|
||||
operator:
|
||||
description: |-
|
||||
operator represents a key's relationship to a set of values.
|
||||
Valid operators are In, NotIn, Exists and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: |-
|
||||
values is an array of string values. If the operator is In or NotIn,
|
||||
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
||||
the values array must be empty. This array is replaced during a strategic
|
||||
merge patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
ovsHardwareOffloadConfig:
|
||||
description: OvsHardwareOffloadConfig describes the OVS HWOL configuration
|
||||
for selected Nodes
|
||||
properties:
|
||||
name:
|
||||
description: |-
|
||||
Name is mandatory and must be unique.
|
||||
On Kubernetes:
|
||||
Name is the name of OvsHardwareOffloadConfig
|
||||
On OpenShift:
|
||||
Name is the name of MachineConfigPool to be enabled with OVS hardware offload
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
rdmaMode:
|
||||
description: RDMA subsystem. Allowed value "shared", "exclusive".
|
||||
enum:
|
||||
- shared
|
||||
- exclusive
|
||||
type: string
|
||||
type: object
|
||||
status:
|
||||
description: SriovNetworkPoolConfigStatus defines the observed state of
|
||||
SriovNetworkPoolConfig
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
description: |-
|
||||
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
||||
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
||||
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
ovsHardwareOffloadConfig:
|
||||
description: OvsHardwareOffloadConfig describes the OVS HWOL configuration
|
||||
for selected Nodes
|
||||
properties:
|
||||
name:
|
||||
description: |-
|
||||
Name is mandatory and must be unique.
|
||||
On Kubernetes:
|
||||
Name is the name of OvsHardwareOffloadConfig
|
||||
On OpenShift:
|
||||
Name is the name of MachineConfigPool to be enabled with OVS hardware offload
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
status:
|
||||
description: SriovNetworkPoolConfigStatus defines the observed state of
|
||||
SriovNetworkPoolConfig
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
|
@@ -14,123 +14,123 @@ spec:
|
||||
singular: sriovnetwork
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovNetwork is the Schema for the sriovnetworks 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: SriovNetworkSpec defines the desired state of SriovNetwork
|
||||
properties:
|
||||
capabilities:
|
||||
description: |-
|
||||
Capabilities to be configured for this network.
|
||||
Capabilities supported: (mac|ips), e.g. '{"mac": true}'
|
||||
type: string
|
||||
ipam:
|
||||
description: IPAM configuration to be used for this network.
|
||||
type: string
|
||||
linkState:
|
||||
description: VF link state (enable|disable|auto)
|
||||
enum:
|
||||
- auto
|
||||
- enable
|
||||
- disable
|
||||
type: string
|
||||
logFile:
|
||||
description: |-
|
||||
LogFile sets the log file of the SRIOV CNI plugin logs. If unset (default), this will log to stderr and thus
|
||||
to multus and container runtime logs.
|
||||
type: string
|
||||
logLevel:
|
||||
default: info
|
||||
description: |-
|
||||
LogLevel sets the log level of the SRIOV CNI plugin - either of panic, error, warning, info, debug. Defaults
|
||||
to info if left blank.
|
||||
enum:
|
||||
- panic
|
||||
- error
|
||||
- warning
|
||||
- info
|
||||
- debug
|
||||
- ""
|
||||
type: string
|
||||
maxTxRate:
|
||||
description: Maximum tx rate, in Mbps, for the VF. Defaults to 0 (no
|
||||
rate limiting)
|
||||
minimum: 0
|
||||
type: integer
|
||||
metaPlugins:
|
||||
description: |-
|
||||
MetaPluginsConfig configuration to be used in order to chain metaplugins to the sriov interface returned
|
||||
by the operator.
|
||||
type: string
|
||||
minTxRate:
|
||||
description: Minimum tx rate, in Mbps, for the VF. Defaults to 0 (no
|
||||
rate limiting). min_tx_rate should be <= max_tx_rate.
|
||||
minimum: 0
|
||||
type: integer
|
||||
networkNamespace:
|
||||
description: Namespace of the NetworkAttachmentDefinition custom resource
|
||||
type: string
|
||||
resourceName:
|
||||
description: SRIOV Network device plugin endpoint resource name
|
||||
type: string
|
||||
spoofChk:
|
||||
description: VF spoof check, (on|off)
|
||||
enum:
|
||||
- "on"
|
||||
- "off"
|
||||
type: string
|
||||
trust:
|
||||
description: VF trust mode (on|off)
|
||||
enum:
|
||||
- "on"
|
||||
- "off"
|
||||
type: string
|
||||
vlan:
|
||||
description: VLAN ID to assign for the VF. Defaults to 0.
|
||||
maximum: 4096
|
||||
minimum: 0
|
||||
type: integer
|
||||
vlanProto:
|
||||
description: VLAN proto to assign for the VF. Defaults to 802.1q.
|
||||
enum:
|
||||
- 802.1q
|
||||
- 802.1Q
|
||||
- 802.1ad
|
||||
- 802.1AD
|
||||
type: string
|
||||
vlanQoS:
|
||||
description: VLAN QoS ID to assign for the VF. Defaults to 0.
|
||||
maximum: 7
|
||||
minimum: 0
|
||||
type: integer
|
||||
required:
|
||||
- resourceName
|
||||
type: object
|
||||
status:
|
||||
description: SriovNetworkStatus defines the observed state of SriovNetwork
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovNetwork is the Schema for the sriovnetworks 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: SriovNetworkSpec defines the desired state of SriovNetwork
|
||||
properties:
|
||||
capabilities:
|
||||
description: |-
|
||||
Capabilities to be configured for this network.
|
||||
Capabilities supported: (mac|ips), e.g. '{"mac": true}'
|
||||
type: string
|
||||
ipam:
|
||||
description: IPAM configuration to be used for this network.
|
||||
type: string
|
||||
linkState:
|
||||
description: VF link state (enable|disable|auto)
|
||||
enum:
|
||||
- auto
|
||||
- enable
|
||||
- disable
|
||||
type: string
|
||||
logFile:
|
||||
description: |-
|
||||
LogFile sets the log file of the SRIOV CNI plugin logs. If unset (default), this will log to stderr and thus
|
||||
to multus and container runtime logs.
|
||||
type: string
|
||||
logLevel:
|
||||
default: info
|
||||
description: |-
|
||||
LogLevel sets the log level of the SRIOV CNI plugin - either of panic, error, warning, info, debug. Defaults
|
||||
to info if left blank.
|
||||
enum:
|
||||
- panic
|
||||
- error
|
||||
- warning
|
||||
- info
|
||||
- debug
|
||||
- ""
|
||||
type: string
|
||||
maxTxRate:
|
||||
description: Maximum tx rate, in Mbps, for the VF. Defaults to 0 (no
|
||||
rate limiting)
|
||||
minimum: 0
|
||||
type: integer
|
||||
metaPlugins:
|
||||
description: |-
|
||||
MetaPluginsConfig configuration to be used in order to chain metaplugins to the sriov interface returned
|
||||
by the operator.
|
||||
type: string
|
||||
minTxRate:
|
||||
description: Minimum tx rate, in Mbps, for the VF. Defaults to 0 (no
|
||||
rate limiting). min_tx_rate should be <= max_tx_rate.
|
||||
minimum: 0
|
||||
type: integer
|
||||
networkNamespace:
|
||||
description: Namespace of the NetworkAttachmentDefinition custom resource
|
||||
type: string
|
||||
resourceName:
|
||||
description: SRIOV Network device plugin endpoint resource name
|
||||
type: string
|
||||
spoofChk:
|
||||
description: VF spoof check, (on|off)
|
||||
enum:
|
||||
- "on"
|
||||
- "off"
|
||||
type: string
|
||||
trust:
|
||||
description: VF trust mode (on|off)
|
||||
enum:
|
||||
- "on"
|
||||
- "off"
|
||||
type: string
|
||||
vlan:
|
||||
description: VLAN ID to assign for the VF. Defaults to 0.
|
||||
maximum: 4096
|
||||
minimum: 0
|
||||
type: integer
|
||||
vlanProto:
|
||||
description: VLAN proto to assign for the VF. Defaults to 802.1q.
|
||||
enum:
|
||||
- 802.1q
|
||||
- 802.1Q
|
||||
- 802.1ad
|
||||
- 802.1AD
|
||||
type: string
|
||||
vlanQoS:
|
||||
description: VLAN QoS ID to assign for the VF. Defaults to 0.
|
||||
maximum: 7
|
||||
minimum: 0
|
||||
type: integer
|
||||
required:
|
||||
- resourceName
|
||||
type: object
|
||||
status:
|
||||
description: SriovNetworkStatus defines the observed state of SriovNetwork
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
|
@@ -14,101 +14,101 @@ spec:
|
||||
singular: sriovoperatorconfig
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovOperatorConfig is the Schema for the sriovoperatorconfigs
|
||||
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: SriovOperatorConfigSpec defines the desired state of SriovOperatorConfig
|
||||
properties:
|
||||
configDaemonNodeSelector:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: NodeSelector selects the nodes to be configured
|
||||
type: object
|
||||
configurationMode:
|
||||
description: |-
|
||||
Flag to enable the sriov-network-config-daemon to use a systemd service to configure SR-IOV devices on boot
|
||||
Default mode: daemon
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: SriovOperatorConfig is the Schema for the sriovoperatorconfigs
|
||||
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: SriovOperatorConfigSpec defines the desired state of SriovOperatorConfig
|
||||
properties:
|
||||
configDaemonNodeSelector:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: NodeSelector selects the nodes to be configured
|
||||
type: object
|
||||
configurationMode:
|
||||
description: |-
|
||||
Flag to enable the sriov-network-config-daemon to use a systemd service to configure SR-IOV devices on boot
|
||||
Default mode: daemon
|
||||
enum:
|
||||
- daemon
|
||||
- systemd
|
||||
type: string
|
||||
disableDrain:
|
||||
description: Flag to disable nodes drain during debugging
|
||||
type: boolean
|
||||
disablePlugins:
|
||||
description: DisablePlugins is a list of sriov-network-config-daemon
|
||||
plugins to disable
|
||||
items:
|
||||
description: PluginNameValue defines the plugin name
|
||||
enum:
|
||||
- daemon
|
||||
- systemd
|
||||
- mellanox
|
||||
type: string
|
||||
disableDrain:
|
||||
description: Flag to disable nodes drain during debugging
|
||||
type: array
|
||||
enableInjector:
|
||||
description: Flag to control whether the network resource injector
|
||||
webhook shall be deployed
|
||||
type: boolean
|
||||
enableOperatorWebhook:
|
||||
description: Flag to control whether the operator admission controller
|
||||
webhook shall be deployed
|
||||
type: boolean
|
||||
enableOvsOffload:
|
||||
description: Flag to enable OVS hardware offload. Set to 'true' to
|
||||
provision switchdev-configuration.service and enable OpenvSwitch
|
||||
hw-offload on nodes.
|
||||
type: boolean
|
||||
featureGates:
|
||||
additionalProperties:
|
||||
type: boolean
|
||||
disablePlugins:
|
||||
description: DisablePlugins is a list of sriov-network-config-daemon
|
||||
plugins to disable
|
||||
items:
|
||||
description: PluginNameValue defines the plugin name
|
||||
enum:
|
||||
- mellanox
|
||||
type: string
|
||||
type: array
|
||||
enableInjector:
|
||||
description: Flag to control whether the network resource injector
|
||||
webhook shall be deployed
|
||||
type: boolean
|
||||
enableOperatorWebhook:
|
||||
description: Flag to control whether the operator admission controller
|
||||
webhook shall be deployed
|
||||
type: boolean
|
||||
enableOvsOffload:
|
||||
description: Flag to enable OVS hardware offload. Set to 'true' to
|
||||
provision switchdev-configuration.service and enable OpenvSwitch
|
||||
hw-offload on nodes.
|
||||
type: boolean
|
||||
featureGates:
|
||||
additionalProperties:
|
||||
type: boolean
|
||||
description: FeatureGates to enable experimental features
|
||||
type: object
|
||||
logLevel:
|
||||
description: Flag to control the log verbose level of the operator.
|
||||
Set to '0' to show only the basic logs. And set to '2' to show all
|
||||
the available logs.
|
||||
maximum: 2
|
||||
minimum: 0
|
||||
type: integer
|
||||
useCDI:
|
||||
description: Flag to enable Container Device Interface mode for SR-IOV
|
||||
Network Device Plugin
|
||||
type: boolean
|
||||
type: object
|
||||
status:
|
||||
description: SriovOperatorConfigStatus defines the observed state of SriovOperatorConfig
|
||||
properties:
|
||||
injector:
|
||||
description: Show the runtime status of the network resource injector
|
||||
webhook
|
||||
type: string
|
||||
operatorWebhook:
|
||||
description: Show the runtime status of the operator admission controller
|
||||
webhook
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
description: FeatureGates to enable experimental features
|
||||
type: object
|
||||
logLevel:
|
||||
description: Flag to control the log verbose level of the operator.
|
||||
Set to '0' to show only the basic logs. And set to '2' to show all
|
||||
the available logs.
|
||||
maximum: 2
|
||||
minimum: 0
|
||||
type: integer
|
||||
useCDI:
|
||||
description: Flag to enable Container Device Interface mode for SR-IOV
|
||||
Network Device Plugin
|
||||
type: boolean
|
||||
type: object
|
||||
status:
|
||||
description: SriovOperatorConfigStatus defines the observed state of SriovOperatorConfig
|
||||
properties:
|
||||
injector:
|
||||
description: Show the runtime status of the network resource injector
|
||||
webhook
|
||||
type: string
|
||||
operatorWebhook:
|
||||
description: Show the runtime status of the operator admission controller
|
||||
webhook
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
|
@@ -1,2 +1,10 @@
|
||||
extra_apis:
|
||||
- k8s.cni.cncf.io/v1/NetworkAttachmentDefinition
|
||||
- k8s.cni.cncf.io/v1/NetworkAttachmentDefinition
|
||||
image_exceptions:
|
||||
- rancher/hardened-sriov-network-operator
|
||||
- rancher/hardened-sriov-network-config-daemon
|
||||
- rancher/hardened-sriov-cni
|
||||
- rancher/hardened-ib-sriov-cni
|
||||
- rancher/hardened-sriov-network-device-plugin
|
||||
- rancher/hardened-sriov-network-resources-injector
|
||||
- rancher/hardened-sriov-network-webhook
|
@@ -1,28 +1,28 @@
|
||||
#!BuildTag: %%CHART_PREFIX%%sriov-network-operator:%%CHART_MAJOR%%.0.2_up1.5.0-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%sriov-network-operator:%%CHART_MAJOR%%.0.2_up1.5.0
|
||||
#!BuildTag: %%CHART_PREFIX%%sriov-network-operator:%%CHART_MAJOR%%.0.0_up1.4.0-%RELEASE%
|
||||
#!BuildTag: %%CHART_PREFIX%%sriov-network-operator:%%CHART_MAJOR%%.0.0_up1.4.0
|
||||
annotations:
|
||||
catalog.cattle.io/auto-install: sriov-crd=match
|
||||
catalog.cattle.io/experimental: "true"
|
||||
catalog.cattle.io/namespace: cattle-sriov-system
|
||||
catalog.cattle.io/os: linux
|
||||
catalog.cattle.io/permits-os: linux
|
||||
catalog.cattle.io/upstream-version: 1.5.0
|
||||
catalog.cattle.io/upstream-version: 1.4.0
|
||||
apiVersion: v2
|
||||
appVersion: v1.5.0
|
||||
appVersion: v1.4.0
|
||||
dependencies:
|
||||
- condition: sriov-nfd.enabled
|
||||
name: sriov-nfd
|
||||
repository: file://./charts/sriov-nfd
|
||||
version: 0.15.7
|
||||
- condition: sriov-nfd.enabled
|
||||
name: sriov-nfd
|
||||
repository: file://./charts/sriov-nfd
|
||||
version: 0.15.7
|
||||
description: SR-IOV network operator configures and manages SR-IOV networks in the
|
||||
kubernetes cluster
|
||||
home: https://github.com/k8snetworkplumbingwg/sriov-network-operator
|
||||
icon: https://charts.rancher.io/assets/logos/sr-iov.svg
|
||||
keywords:
|
||||
- sriov
|
||||
kubeVersion: '>= 1.24.0-0'
|
||||
- sriov
|
||||
kubeVersion: '>= 1.16.0-0'
|
||||
name: sriov-network-operator
|
||||
sources:
|
||||
- https://github.com/k8snetworkplumbingwg/sriov-network-operator
|
||||
- https://github.com/k8snetworkplumbingwg/sriov-network-operator
|
||||
type: application
|
||||
version: "%%CHART_MAJOR%%.0.2+up1.5.0"
|
||||
version: "%%CHART_MAJOR%%.0.0+up1.4.0"
|
||||
|
@@ -41,7 +41,7 @@ For additional information and methods for installing Helm, refer to the officia
|
||||
#### Deploy from OCI repo
|
||||
|
||||
```
|
||||
$ helm install -n sriov-network-operator --create-namespace --version 1.3.0 --set sriovOperatorConfig.deploy=true sriov-network-operator oci://ghcr.io/k8snetworkplumbingwg/sriov-network-operator-chart
|
||||
$ helm install -n sriov-network-operator --create-namespace --version 1.3.0 --set sriovOperatorConfig.deploy=true sriov-network-operator oci://ghcr.io/k8snetworkplumbingwg/sriov-network-operator
|
||||
```
|
||||
|
||||
#### Deploy from project sources
|
||||
@@ -51,7 +51,7 @@ $ helm install -n sriov-network-operator --create-namespace --version 1.3.0 --se
|
||||
$ git clone https://github.com/k8snetworkplumbingwg/sriov-network-operator.git ; cd sriov-network-operator
|
||||
|
||||
# Install Operator
|
||||
$ helm install -n sriov-network-operator --create-namespace --wait --set sriovOperatorConfig.deploy=true sriov-network-operator ./deployment/sriov-network-operator-chart
|
||||
$ helm install -n sriov-network-operator --create-namespace --wait --set sriovOperatorConfig.deploy=true sriov-network-operator ./deployment/sriov-network-operator
|
||||
|
||||
# View deployed resources
|
||||
$ kubectl -n sriov-network-operator get pods
|
||||
@@ -123,16 +123,10 @@ This section contains general parameters that apply to both the operator and dae
|
||||
| Name | Type | Default | description |
|
||||
| ---- | ---- | ------- | ----------- |
|
||||
| `sriovOperatorConfig.deploy` | bool | `false` | deploy SriovOperatorConfig custom resource |
|
||||
| `sriovOperatorConfig.configDaemonNodeSelector` | map[string]string | `{}` | node selectors for sriov-network-config-daemon |
|
||||
| `sriovOperatorConfig.configDaemonNodeSelector` | map[string]string | `{}` | node slectors for sriov-network-config-daemon |
|
||||
| `sriovOperatorConfig.logLevel` | int | `2` | log level for both operator and sriov-network-config-daemon |
|
||||
| `sriovOperatorConfig.disableDrain` | bool | `false` | disable node draining when configuring SR-IOV, set to true in case of a single node cluster or any other justifiable reason |
|
||||
| `sriovOperatorConfig.configurationMode` | string | `daemon` | sriov-network-config-daemon configuration mode. either `daemon` or `systemd` |
|
||||
| `sriovOperatorConfig.featureGates` | map[string]bool | `{}` | feature gates to enable/disable |
|
||||
|
||||
**Note**
|
||||
|
||||
When `sriovOperatorConfig.configurationMode` is configured as `systemd`, configurations files and `systemd` service files are created on the node.
|
||||
Upon chart deletion, those files are not cleaned up. For cases where this is not acceptable, users should rather configured the `daemon` mode.
|
||||
|
||||
### Images parameters
|
||||
|
||||
@@ -154,4 +148,4 @@ Please note that any resources deployed using the `extraDeploy` in this Helm cha
|
||||
|
||||
| Name | description |
|
||||
| ---- | ------------|
|
||||
|`extraDeploy`| Array of extra objects to deploy with the release |
|
||||
|`extraDeploy`| Array of extra objects to deploy with the release |
|
||||
|
@@ -4,9 +4,10 @@ This chart is based on the upstream [k8snetworkplumbingwg/sriov-network-operator
|
||||
|
||||
The chart installs the following components:
|
||||
|
||||
- SR-IOV Operator - An operator that helps provision and configure the SR-IOV CNI plugin and SR-IOV Device plugin
|
||||
- SR-IOV Network Config Daemon - A Daemon deployed by the Operator that discovers SR-IOV NICs on each node
|
||||
- SR-IOV Operator - An operator that helps provision and configure the SR-IOV CNI plugin and SR-IOV Device plugin
|
||||
- SR-IOV Network Config Daemon - A Daemon deployed by the Operator that discovers SR-IOV NICs on each node
|
||||
|
||||
Note that SR-IOV requires NICs that support SR-IOV and the activation of specific configuration options in the operating system. Nodes that fulfill these requirements should be labeled with: `feature.node.kubernetes.io/network-sriov.capable=true`.
|
||||
|
||||
The SR-IOV Network Config Daemon will be deployed on such capable nodes. For more information on how to use this feature, refer to our RKE2 networking docs.
|
||||
|
||||
|
@@ -20,4 +20,4 @@
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
.vscode/
|
||||
|
@@ -4,11 +4,11 @@ description: Detects hardware features available on each node in a Kubernetes cl
|
||||
and advertises those features using node labels
|
||||
home: https://github.com/kubernetes-sigs/node-feature-discovery
|
||||
keywords:
|
||||
- feature-discovery
|
||||
- feature-detection
|
||||
- node-labels
|
||||
- feature-discovery
|
||||
- feature-detection
|
||||
- node-labels
|
||||
name: sriov-nfd
|
||||
sources:
|
||||
- https://github.com/kubernetes-sigs/node-feature-discovery
|
||||
- https://github.com/kubernetes-sigs/node-feature-discovery
|
||||
type: application
|
||||
version: 0.15.7
|
||||
version: 0.15.7
|
||||
|
@@ -7,4 +7,4 @@ range of vendor and application specific node labeling needs.
|
||||
|
||||
See
|
||||
[NFD documentation](https://kubernetes-sigs.github.io/node-feature-discovery/v0.15/deployment/helm.html)
|
||||
for deployment instructions.
|
||||
for deployment instructions.
|
||||
|
@@ -14,100 +14,100 @@ spec:
|
||||
singular: nodefeature
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: NodeFeature resource holds the features discovered for one node
|
||||
in the cluster.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: NodeFeature resource holds the features discovered for one node
|
||||
in the cluster.
|
||||
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
|
||||
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: NodeFeatureSpec describes a NodeFeature object.
|
||||
properties:
|
||||
features:
|
||||
description: Features is the full "raw" features data that has been
|
||||
discovered.
|
||||
properties:
|
||||
attributes:
|
||||
additionalProperties:
|
||||
description: AttributeFeatureSet is a set of features having
|
||||
string value.
|
||||
properties:
|
||||
elements:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: NodeFeatureSpec describes a NodeFeature object.
|
||||
properties:
|
||||
features:
|
||||
description: Features is the full "raw" features data that has been
|
||||
discovered.
|
||||
properties:
|
||||
attributes:
|
||||
additionalProperties:
|
||||
description: AttributeFeatureSet is a set of features having
|
||||
string value.
|
||||
properties:
|
||||
elements:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- elements
|
||||
type: object
|
||||
description: Attributes contains all the attribute-type features
|
||||
of the node.
|
||||
type: object
|
||||
flags:
|
||||
additionalProperties:
|
||||
description: FlagFeatureSet is a set of simple features only
|
||||
containing names without values.
|
||||
properties:
|
||||
elements:
|
||||
additionalProperties:
|
||||
description: Nil is a dummy empty struct for protobuf
|
||||
compatibility
|
||||
type: object
|
||||
required:
|
||||
- elements
|
||||
type: object
|
||||
description: Attributes contains all the attribute-type features
|
||||
of the node.
|
||||
type: object
|
||||
required:
|
||||
- elements
|
||||
type: object
|
||||
flags:
|
||||
additionalProperties:
|
||||
description: FlagFeatureSet is a set of simple features only
|
||||
containing names without values.
|
||||
properties:
|
||||
elements:
|
||||
additionalProperties:
|
||||
description: Nil is a dummy empty struct for protobuf
|
||||
compatibility
|
||||
type: object
|
||||
description: Flags contains all the flag-type features of the
|
||||
node.
|
||||
type: object
|
||||
instances:
|
||||
additionalProperties:
|
||||
description: InstanceFeatureSet is a set of features each of
|
||||
which is an instance having multiple attributes.
|
||||
properties:
|
||||
elements:
|
||||
items:
|
||||
description: InstanceFeature represents one instance of
|
||||
a complex features, e.g. a device.
|
||||
properties:
|
||||
attributes:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- attributes
|
||||
type: object
|
||||
required:
|
||||
- elements
|
||||
type: object
|
||||
description: Flags contains all the flag-type features of the
|
||||
node.
|
||||
type: array
|
||||
required:
|
||||
- elements
|
||||
type: object
|
||||
instances:
|
||||
additionalProperties:
|
||||
description: InstanceFeatureSet is a set of features each of
|
||||
which is an instance having multiple attributes.
|
||||
properties:
|
||||
elements:
|
||||
items:
|
||||
description: InstanceFeature represents one instance of
|
||||
a complex features, e.g. a device.
|
||||
properties:
|
||||
attributes:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- attributes
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- elements
|
||||
type: object
|
||||
description: Instances contains all the instance-type features
|
||||
of the node.
|
||||
type: object
|
||||
type: object
|
||||
labels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Labels is the set of node labels that are requested to
|
||||
be created.
|
||||
type: object
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
description: Instances contains all the instance-type features
|
||||
of the node.
|
||||
type: object
|
||||
type: object
|
||||
labels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Labels is the set of node labels that are requested to
|
||||
be created.
|
||||
type: object
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
@@ -122,184 +122,127 @@ spec:
|
||||
listKind: NodeFeatureRuleList
|
||||
plural: nodefeaturerules
|
||||
shortNames:
|
||||
- nfr
|
||||
- nfr
|
||||
singular: nodefeaturerule
|
||||
scope: Cluster
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: NodeFeatureRule resource specifies a configuration for feature-based
|
||||
customization of node objects, such as node labeling.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: NodeFeatureRule resource specifies a configuration for feature-based
|
||||
customization of node objects, such as node labeling.
|
||||
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
|
||||
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: NodeFeatureRuleSpec describes a NodeFeatureRule.
|
||||
properties:
|
||||
rules:
|
||||
description: Rules is a list of node customization rules.
|
||||
items:
|
||||
description: Rule defines a rule for node customization such as
|
||||
labeling.
|
||||
properties:
|
||||
annotations:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Annotations to create if the rule matches.
|
||||
type: object
|
||||
extendedResources:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: ExtendedResources to create if the rule matches.
|
||||
type: object
|
||||
labels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Labels to create if the rule matches.
|
||||
type: object
|
||||
labelsTemplate:
|
||||
description: LabelsTemplate specifies a template to expand for
|
||||
dynamically generating multiple labels. Data (after template
|
||||
expansion) must be keys with an optional value (<key>[=<value>])
|
||||
separated by newlines.
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: NodeFeatureRuleSpec describes a NodeFeatureRule.
|
||||
properties:
|
||||
rules:
|
||||
description: Rules is a list of node customization rules.
|
||||
items:
|
||||
description: Rule defines a rule for node customization such as
|
||||
labeling.
|
||||
properties:
|
||||
annotations:
|
||||
additionalProperties:
|
||||
type: string
|
||||
matchAny:
|
||||
description: MatchAny specifies a list of matchers one of which
|
||||
must match.
|
||||
items:
|
||||
description: MatchAnyElem specifies one sub-matcher of MatchAny.
|
||||
properties:
|
||||
matchFeatures:
|
||||
description: MatchFeatures specifies a set of matcher
|
||||
terms all of which must match.
|
||||
items:
|
||||
description: FeatureMatcherTerm defines requirements
|
||||
against one feature set. All requirements (specified
|
||||
as MatchExpressions) are evaluated against each element
|
||||
in the feature set.
|
||||
properties:
|
||||
feature:
|
||||
description: Feature is the name of the feature
|
||||
set to match against.
|
||||
type: string
|
||||
matchExpressions:
|
||||
additionalProperties:
|
||||
description: MatchExpression specifies an expression
|
||||
to evaluate against a set of input values. It
|
||||
contains an operator that is applied when matching
|
||||
the input and an array of values that the operator
|
||||
evaluates the input against.
|
||||
properties:
|
||||
op:
|
||||
description: Op is the operator to be applied.
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
description: Value is the list of values that
|
||||
the operand evaluates the input against.
|
||||
Value should be empty if the operator is
|
||||
Exists, DoesNotExist, IsTrue or IsFalse.
|
||||
Value should contain exactly one element
|
||||
if the operator is Gt or Lt and exactly
|
||||
two elements if the operator is GtLt. In
|
||||
other cases Value should contain at least
|
||||
one element.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
description: MatchExpressions is the set of per-element
|
||||
expressions evaluated. These match against the
|
||||
value of the specified elements.
|
||||
type: object
|
||||
matchName:
|
||||
description: MatchName in an expression that is
|
||||
matched against the name of each element in the
|
||||
feature set.
|
||||
description: Annotations to create if the rule matches.
|
||||
type: object
|
||||
extendedResources:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: ExtendedResources to create if the rule matches.
|
||||
type: object
|
||||
labels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Labels to create if the rule matches.
|
||||
type: object
|
||||
labelsTemplate:
|
||||
description: LabelsTemplate specifies a template to expand for
|
||||
dynamically generating multiple labels. Data (after template
|
||||
expansion) must be keys with an optional value (<key>[=<value>])
|
||||
separated by newlines.
|
||||
type: string
|
||||
matchAny:
|
||||
description: MatchAny specifies a list of matchers one of which
|
||||
must match.
|
||||
items:
|
||||
description: MatchAnyElem specifies one sub-matcher of MatchAny.
|
||||
properties:
|
||||
matchFeatures:
|
||||
description: MatchFeatures specifies a set of matcher
|
||||
terms all of which must match.
|
||||
items:
|
||||
description: FeatureMatcherTerm defines requirements
|
||||
against one feature set. All requirements (specified
|
||||
as MatchExpressions) are evaluated against each element
|
||||
in the feature set.
|
||||
properties:
|
||||
feature:
|
||||
description: Feature is the name of the feature
|
||||
set to match against.
|
||||
type: string
|
||||
matchExpressions:
|
||||
additionalProperties:
|
||||
description: MatchExpression specifies an expression
|
||||
to evaluate against a set of input values. It
|
||||
contains an operator that is applied when matching
|
||||
the input and an array of values that the operator
|
||||
evaluates the input against.
|
||||
properties:
|
||||
op:
|
||||
description: Op is the operator to be applied.
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
description: Value is the list of values that
|
||||
the operand evaluates the input against. Value
|
||||
should be empty if the operator is Exists,
|
||||
DoesNotExist, IsTrue or IsFalse. Value should
|
||||
contain exactly one element if the operator
|
||||
is Gt or Lt and exactly two elements if the
|
||||
operator is GtLt. In other cases Value should
|
||||
contain at least one element.
|
||||
the operand evaluates the input against.
|
||||
Value should be empty if the operator is
|
||||
Exists, DoesNotExist, IsTrue or IsFalse.
|
||||
Value should contain exactly one element
|
||||
if the operator is Gt or Lt and exactly
|
||||
two elements if the operator is GtLt. In
|
||||
other cases Value should contain at least
|
||||
one element.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
- op
|
||||
type: object
|
||||
required:
|
||||
- feature
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- matchFeatures
|
||||
type: object
|
||||
type: array
|
||||
matchFeatures:
|
||||
description: MatchFeatures specifies a set of matcher terms
|
||||
all of which must match.
|
||||
items:
|
||||
description: FeatureMatcherTerm defines requirements against
|
||||
one feature set. All requirements (specified as MatchExpressions)
|
||||
are evaluated against each element in the feature set.
|
||||
properties:
|
||||
feature:
|
||||
description: Feature is the name of the feature set to
|
||||
match against.
|
||||
type: string
|
||||
matchExpressions:
|
||||
additionalProperties:
|
||||
description: MatchExpression specifies an expression
|
||||
to evaluate against a set of input values. It contains
|
||||
an operator that is applied when matching the input
|
||||
and an array of values that the operator evaluates
|
||||
the input against.
|
||||
properties:
|
||||
op:
|
||||
description: Op is the operator to be applied.
|
||||
enum:
|
||||
description: MatchExpressions is the set of per-element
|
||||
expressions evaluated. These match against the
|
||||
value of the specified elements.
|
||||
type: object
|
||||
matchName:
|
||||
description: MatchName in an expression that is
|
||||
matched against the name of each element in the
|
||||
feature set.
|
||||
properties:
|
||||
op:
|
||||
description: Op is the operator to be applied.
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
@@ -310,42 +253,63 @@ spec:
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
description: Value is the list of values that the
|
||||
operand evaluates the input against. Value should
|
||||
be empty if the operator is Exists, DoesNotExist,
|
||||
IsTrue or IsFalse. Value should contain exactly
|
||||
one element if the operator is Gt or Lt and exactly
|
||||
two elements if the operator is GtLt. In other
|
||||
cases Value should contain at least one element.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
value:
|
||||
description: Value is the list of values that
|
||||
the operand evaluates the input against. Value
|
||||
should be empty if the operator is Exists,
|
||||
DoesNotExist, IsTrue or IsFalse. Value should
|
||||
contain exactly one element if the operator
|
||||
is Gt or Lt and exactly two elements if the
|
||||
operator is GtLt. In other cases Value should
|
||||
contain at least one element.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
description: MatchExpressions is the set of per-element
|
||||
expressions evaluated. These match against the value
|
||||
of the specified elements.
|
||||
type: object
|
||||
required:
|
||||
- feature
|
||||
type: object
|
||||
matchName:
|
||||
description: MatchName in an expression that is matched
|
||||
against the name of each element in the feature set.
|
||||
type: array
|
||||
required:
|
||||
- matchFeatures
|
||||
type: object
|
||||
type: array
|
||||
matchFeatures:
|
||||
description: MatchFeatures specifies a set of matcher terms
|
||||
all of which must match.
|
||||
items:
|
||||
description: FeatureMatcherTerm defines requirements against
|
||||
one feature set. All requirements (specified as MatchExpressions)
|
||||
are evaluated against each element in the feature set.
|
||||
properties:
|
||||
feature:
|
||||
description: Feature is the name of the feature set to
|
||||
match against.
|
||||
type: string
|
||||
matchExpressions:
|
||||
additionalProperties:
|
||||
description: MatchExpression specifies an expression
|
||||
to evaluate against a set of input values. It contains
|
||||
an operator that is applied when matching the input
|
||||
and an array of values that the operator evaluates
|
||||
the input against.
|
||||
properties:
|
||||
op:
|
||||
description: Op is the operator to be applied.
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
description: Value is the list of values that the
|
||||
@@ -353,74 +317,110 @@ spec:
|
||||
be empty if the operator is Exists, DoesNotExist,
|
||||
IsTrue or IsFalse. Value should contain exactly
|
||||
one element if the operator is Gt or Lt and exactly
|
||||
two elements if the operator is GtLt. In other cases
|
||||
Value should contain at least one element.
|
||||
two elements if the operator is GtLt. In other
|
||||
cases Value should contain at least one element.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
- op
|
||||
type: object
|
||||
required:
|
||||
- feature
|
||||
type: object
|
||||
type: array
|
||||
name:
|
||||
description: Name of the rule.
|
||||
type: string
|
||||
taints:
|
||||
description: Taints to create if the rule matches.
|
||||
items:
|
||||
description: The node this Taint is attached to has the "effect"
|
||||
on any pod that does not tolerate the Taint.
|
||||
properties:
|
||||
effect:
|
||||
description: Required. The effect of the taint on pods
|
||||
that do not tolerate the taint. Valid effects are NoSchedule,
|
||||
PreferNoSchedule and NoExecute.
|
||||
type: string
|
||||
key:
|
||||
description: Required. The taint key to be applied to
|
||||
a node.
|
||||
type: string
|
||||
timeAdded:
|
||||
description: TimeAdded represents the time at which the
|
||||
taint was added. It is only written for NoExecute taints.
|
||||
format: date-time
|
||||
type: string
|
||||
value:
|
||||
description: The taint value corresponding to the taint
|
||||
key.
|
||||
type: string
|
||||
required:
|
||||
- effect
|
||||
- key
|
||||
type: object
|
||||
type: array
|
||||
vars:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Vars is the variables to store if the rule matches.
|
||||
Variables do not directly inflict any changes in the node
|
||||
object. However, they can be referenced from other rules enabling
|
||||
more complex rule hierarchies, without exposing intermediary
|
||||
output values as labels.
|
||||
description: MatchExpressions is the set of per-element
|
||||
expressions evaluated. These match against the value
|
||||
of the specified elements.
|
||||
type: object
|
||||
matchName:
|
||||
description: MatchName in an expression that is matched
|
||||
against the name of each element in the feature set.
|
||||
properties:
|
||||
op:
|
||||
description: Op is the operator to be applied.
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
description: Value is the list of values that the
|
||||
operand evaluates the input against. Value should
|
||||
be empty if the operator is Exists, DoesNotExist,
|
||||
IsTrue or IsFalse. Value should contain exactly
|
||||
one element if the operator is Gt or Lt and exactly
|
||||
two elements if the operator is GtLt. In other cases
|
||||
Value should contain at least one element.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
required:
|
||||
- feature
|
||||
type: object
|
||||
varsTemplate:
|
||||
description: VarsTemplate specifies a template to expand for
|
||||
dynamically generating multiple variables. Data (after template
|
||||
expansion) must be keys with an optional value (<key>[=<value>])
|
||||
separated by newlines.
|
||||
type: array
|
||||
name:
|
||||
description: Name of the rule.
|
||||
type: string
|
||||
taints:
|
||||
description: Taints to create if the rule matches.
|
||||
items:
|
||||
description: The node this Taint is attached to has the "effect"
|
||||
on any pod that does not tolerate the Taint.
|
||||
properties:
|
||||
effect:
|
||||
description: Required. The effect of the taint on pods
|
||||
that do not tolerate the taint. Valid effects are NoSchedule,
|
||||
PreferNoSchedule and NoExecute.
|
||||
type: string
|
||||
key:
|
||||
description: Required. The taint key to be applied to
|
||||
a node.
|
||||
type: string
|
||||
timeAdded:
|
||||
description: TimeAdded represents the time at which the
|
||||
taint was added. It is only written for NoExecute taints.
|
||||
format: date-time
|
||||
type: string
|
||||
value:
|
||||
description: The taint value corresponding to the taint
|
||||
key.
|
||||
type: string
|
||||
required:
|
||||
- effect
|
||||
- key
|
||||
type: object
|
||||
type: array
|
||||
vars:
|
||||
additionalProperties:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- rules
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
description: Vars is the variables to store if the rule matches.
|
||||
Variables do not directly inflict any changes in the node
|
||||
object. However, they can be referenced from other rules enabling
|
||||
more complex rule hierarchies, without exposing intermediary
|
||||
output values as labels.
|
||||
type: object
|
||||
varsTemplate:
|
||||
description: VarsTemplate specifies a template to expand for
|
||||
dynamically generating multiple variables. Data (after template
|
||||
expansion) must be keys with an optional value (<key>[=<value>])
|
||||
separated by newlines.
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- rules
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
|
@@ -104,4 +104,4 @@ Create the name of the service account which nfd-gc will use
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.gc.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
@@ -10,14 +10,14 @@ spec:
|
||||
secretName: nfd-master-cert
|
||||
subject:
|
||||
organizations:
|
||||
- node-feature-discovery
|
||||
- node-feature-discovery
|
||||
commonName: nfd-master
|
||||
dnsNames:
|
||||
# must match the service name
|
||||
- {{ include "node-feature-discovery.fullname" . }}-master
|
||||
# first one is configured for use by the worker; below are for completeness
|
||||
- {{ include "node-feature-discovery.fullname" . }}-master.{{ include "node-feature-discovery.namespace" . }}.svc
|
||||
- {{ include "node-feature-discovery.fullname" . }}-master.{{ include "node-feature-discovery.namespace" . }}.svc.cluster.local
|
||||
# must match the service name
|
||||
- {{ include "node-feature-discovery.fullname" . }}-master
|
||||
# first one is configured for use by the worker; below are for completeness
|
||||
- {{ include "node-feature-discovery.fullname" . }}-master.{{ include "node-feature-discovery.namespace" . }}.svc
|
||||
- {{ include "node-feature-discovery.fullname" . }}-master.{{ include "node-feature-discovery.namespace" . }}.svc.cluster.local
|
||||
issuerRef:
|
||||
name: nfd-ca-issuer
|
||||
kind: Issuer
|
||||
@@ -34,10 +34,10 @@ spec:
|
||||
secretName: nfd-worker-cert
|
||||
subject:
|
||||
organizations:
|
||||
- node-feature-discovery
|
||||
- node-feature-discovery
|
||||
commonName: nfd-worker
|
||||
dnsNames:
|
||||
- {{ include "node-feature-discovery.fullname" . }}-worker.{{ include "node-feature-discovery.namespace" . }}.svc.cluster.local
|
||||
- {{ include "node-feature-discovery.fullname" . }}-worker.{{ include "node-feature-discovery.namespace" . }}.svc.cluster.local
|
||||
issuerRef:
|
||||
name: nfd-ca-issuer
|
||||
kind: Issuer
|
||||
@@ -55,14 +55,14 @@ spec:
|
||||
secretName: nfd-topology-updater-cert
|
||||
subject:
|
||||
organizations:
|
||||
- node-feature-discovery
|
||||
- node-feature-discovery
|
||||
commonName: nfd-topology-updater
|
||||
dnsNames:
|
||||
- {{ include "node-feature-discovery.fullname" . }}-topology-updater.{{ include "node-feature-discovery.namespace" . }}.svc.cluster.local
|
||||
- {{ include "node-feature-discovery.fullname" . }}-topology-updater.{{ include "node-feature-discovery.namespace" . }}.svc.cluster.local
|
||||
issuerRef:
|
||||
name: nfd-ca-issuer
|
||||
kind: Issuer
|
||||
group: cert-manager.io
|
||||
{{- end }}
|
||||
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -1,8 +1,8 @@
|
||||
{{- if .Values.tls.certManager }}
|
||||
# See https://cert-manager.io/docs/configuration/selfsigned/#bootstrapping-ca-issuers
|
||||
# - Create a self signed issuer
|
||||
# - Use this to create a CA cert
|
||||
# - Use this to now create a CA issuer
|
||||
# See https://cert-manager.io/docs/configuration/selfsigned/#bootstrapping-ca-issuers
|
||||
# - Create a self signed issuer
|
||||
# - Use this to create a CA cert
|
||||
# - Use this to now create a CA issuer
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Issuer
|
||||
@@ -23,7 +23,7 @@ spec:
|
||||
secretName: nfd-ca-cert
|
||||
subject:
|
||||
organizations:
|
||||
- node-feature-discovery
|
||||
- node-feature-discovery
|
||||
commonName: nfd-ca-cert
|
||||
issuerRef:
|
||||
name: nfd-ca-bootstrap
|
||||
@@ -39,4 +39,4 @@ metadata:
|
||||
spec:
|
||||
ca:
|
||||
secretName: nfd-ca-cert
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -6,40 +6,40 @@ metadata:
|
||||
labels:
|
||||
{{- include "node-feature-discovery.labels" . | nindent 4 }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
- nodes/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- list
|
||||
- apiGroups:
|
||||
- nfd.k8s-sigs.io
|
||||
resources:
|
||||
- nodefeatures
|
||||
- nodefeaturerules
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
resourceNames:
|
||||
- "nfd-master.nfd.kubernetes.io"
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
- nodes/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- list
|
||||
- apiGroups:
|
||||
- nfd.k8s-sigs.io
|
||||
resources:
|
||||
- nodefeatures
|
||||
- nodefeaturerules
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
resourceNames:
|
||||
- "nfd-master.nfd.kubernetes.io"
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
{{- end }}
|
||||
|
||||
{{- if and .Values.topologyUpdater.enable .Values.topologyUpdater.rbac.create }}
|
||||
@@ -51,33 +51,33 @@ metadata:
|
||||
labels:
|
||||
{{- include "node-feature-discovery.labels" . | nindent 4 }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes/proxy
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- topology.node.k8s.io
|
||||
resources:
|
||||
- noderesourcetopologies
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes/proxy
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- topology.node.k8s.io
|
||||
resources:
|
||||
- noderesourcetopologies
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- update
|
||||
{{- end }}
|
||||
|
||||
{{- if and .Values.gc.enable .Values.gc.rbac.create (or .Values.enableNodeFeatureApi .Values.topologyUpdater.enable) }}
|
||||
@@ -89,31 +89,31 @@ metadata:
|
||||
labels:
|
||||
{{- include "node-feature-discovery.labels" . | nindent 4 }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes/proxy
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- topology.node.k8s.io
|
||||
resources:
|
||||
- noderesourcetopologies
|
||||
verbs:
|
||||
- delete
|
||||
- list
|
||||
- apiGroups:
|
||||
- nfd.k8s-sigs.io
|
||||
resources:
|
||||
- nodefeatures
|
||||
verbs:
|
||||
- delete
|
||||
- list
|
||||
{{- end }}
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes/proxy
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- topology.node.k8s.io
|
||||
resources:
|
||||
- noderesourcetopologies
|
||||
verbs:
|
||||
- delete
|
||||
- list
|
||||
- apiGroups:
|
||||
- nfd.k8s-sigs.io
|
||||
resources:
|
||||
- nodefeatures
|
||||
verbs:
|
||||
- delete
|
||||
- list
|
||||
{{- end }}
|
||||
|
@@ -10,9 +10,9 @@ roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ include "node-feature-discovery.fullname" . }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "node-feature-discovery.master.serviceAccountName" . }}
|
||||
namespace: {{ include "node-feature-discovery.namespace" . }}
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "node-feature-discovery.master.serviceAccountName" . }}
|
||||
namespace: {{ include "node-feature-discovery.namespace" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- if and .Values.topologyUpdater.enable .Values.topologyUpdater.rbac.create }}
|
||||
@@ -28,9 +28,9 @@ roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ include "node-feature-discovery.fullname" . }}-topology-updater
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "node-feature-discovery.topologyUpdater.serviceAccountName" . }}
|
||||
namespace: {{ include "node-feature-discovery.namespace" . }}
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "node-feature-discovery.topologyUpdater.serviceAccountName" . }}
|
||||
namespace: {{ include "node-feature-discovery.namespace" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- if and .Values.gc.enable .Values.gc.rbac.create (or .Values.enableNodeFeatureApi .Values.topologyUpdater.enable) }}
|
||||
@@ -46,7 +46,7 @@ roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ include "node-feature-discovery.fullname" . }}-gc
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "node-feature-discovery.gc.serviceAccountName" . }}
|
||||
namespace: {{ include "node-feature-discovery.namespace" . }}
|
||||
{{- end }}
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "node-feature-discovery.gc.serviceAccountName" . }}
|
||||
namespace: {{ include "node-feature-discovery.namespace" . }}
|
||||
{{- end }}
|
||||
|
@@ -53,15 +53,15 @@ spec:
|
||||
periodSeconds: 10
|
||||
failureThreshold: 10
|
||||
ports:
|
||||
- containerPort: {{ .Values.master.port | default "8080" }}
|
||||
name: grpc
|
||||
- containerPort: {{ .Values.master.metricsPort | default "8081" }}
|
||||
name: metrics
|
||||
- containerPort: {{ .Values.master.port | default "8080" }}
|
||||
name: grpc
|
||||
- containerPort: {{ .Values.master.metricsPort | default "8081" }}
|
||||
name: metrics
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
command:
|
||||
- "nfd-master"
|
||||
resources:
|
||||
@@ -142,4 +142,4 @@ spec:
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -36,31 +36,31 @@ spec:
|
||||
securityContext:
|
||||
{{- toYaml .Values.gc.podSecurityContext | nindent 8 }}
|
||||
containers:
|
||||
- name: gc
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
command:
|
||||
- "nfd-gc"
|
||||
args:
|
||||
- name: gc
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
command:
|
||||
- "nfd-gc"
|
||||
args:
|
||||
{{- if .Values.gc.interval | empty | not }}
|
||||
- "-gc-interval={{ .Values.gc.interval }}"
|
||||
- "-gc-interval={{ .Values.gc.interval }}"
|
||||
{{- end }}
|
||||
resources:
|
||||
resources:
|
||||
{{- toYaml .Values.gc.resources | nindent 12 }}
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop: [ "ALL" ]
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
ports:
|
||||
- name: metrics
|
||||
containerPort: {{ .Values.gc.metricsPort | default "8081"}}
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop: [ "ALL" ]
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
ports:
|
||||
- name: metrics
|
||||
containerPort: {{ .Values.gc.metricsPort | default "8081"}}
|
||||
|
||||
{{- with .Values.gc.nodeSelector }}
|
||||
nodeSelector:
|
||||
@@ -74,4 +74,4 @@ spec:
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -9,4 +9,4 @@ metadata:
|
||||
data:
|
||||
nfd-master.conf: |-
|
||||
{{- .Values.master.config | toYaml | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -7,4 +7,4 @@ metadata:
|
||||
{{- include "node-feature-discovery.labels" . | nindent 4 }}
|
||||
data:
|
||||
nfd-topology-updater.conf: |-
|
||||
{{- .Values.topologyUpdater.config | toYaml | nindent 4 }}
|
||||
{{- .Values.topologyUpdater.config | toYaml | nindent 4 }}
|
||||
|
@@ -9,4 +9,4 @@ metadata:
|
||||
data:
|
||||
nfd-worker.conf: |-
|
||||
{{- .Values.worker.config | toYaml | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -18,9 +18,9 @@ spec:
|
||||
scheme: http
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ include "node-feature-discovery.namespace" . }}
|
||||
- {{ include "node-feature-discovery.namespace" . }}
|
||||
selector:
|
||||
matchExpressions:
|
||||
- {key: app.kubernetes.io/instance, operator: In, values: ["{{ .Release.Name }}"]}
|
||||
- {key: app.kubernetes.io/name, operator: In, values: ["{{ include "node-feature-discovery.name" . }}"]}
|
||||
{{- end }}
|
||||
- {key: app.kubernetes.io/instance, operator: In, values: ["{{ .Release.Name }}"]}
|
||||
- {key: app.kubernetes.io/name, operator: In, values: ["{{ include "node-feature-discovery.name" . }}"]}
|
||||
{{- end }}
|
||||
|
@@ -7,18 +7,18 @@ metadata:
|
||||
labels:
|
||||
{{- include "node-feature-discovery.labels" . | nindent 4 }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- nfd.k8s-sigs.io
|
||||
resources:
|
||||
- nodefeatures
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
{{- end }}
|
||||
- apiGroups:
|
||||
- nfd.k8s-sigs.io
|
||||
resources:
|
||||
- nodefeatures
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
{{- end }}
|
||||
|
@@ -11,7 +11,8 @@ roleRef:
|
||||
kind: Role
|
||||
name: {{ include "node-feature-discovery.fullname" . }}-worker
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "node-feature-discovery.worker.serviceAccountName" . }}
|
||||
namespace: {{ include "node-feature-discovery.namespace" . }}
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "node-feature-discovery.worker.serviceAccountName" . }}
|
||||
namespace: {{ include "node-feature-discovery.namespace" . }}
|
||||
{{- end }}
|
||||
|
||||
|
@@ -17,4 +17,4 @@ spec:
|
||||
selector:
|
||||
{{- include "node-feature-discovery.selectorLabels" . | nindent 4 }}
|
||||
role: master
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
|
@@ -55,4 +55,4 @@ metadata:
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -14,265 +14,265 @@ spec:
|
||||
listKind: NodeResourceTopologyList
|
||||
plural: noderesourcetopologies
|
||||
shortNames:
|
||||
- node-res-topo
|
||||
- node-res-topo
|
||||
singular: noderesourcetopology
|
||||
scope: Cluster
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: NodeResourceTopology describes node resources and their topology.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: NodeResourceTopology describes node resources and their topology.
|
||||
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
|
||||
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
|
||||
topologyPolicies:
|
||||
items:
|
||||
type: string
|
||||
metadata:
|
||||
type: array
|
||||
zones:
|
||||
description: ZoneList contains an array of Zone objects.
|
||||
items:
|
||||
description: Zone represents a resource topology zone, e.g. socket,
|
||||
node, die or core.
|
||||
properties:
|
||||
attributes:
|
||||
description: AttributeList contains an array of AttributeInfo objects.
|
||||
items:
|
||||
description: AttributeInfo contains one attribute of a Zone.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
costs:
|
||||
description: CostList contains an array of CostInfo objects.
|
||||
items:
|
||||
description: CostInfo describes the cost (or distance) between
|
||||
two Zones.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
format: int64
|
||||
type: integer
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
name:
|
||||
type: string
|
||||
parent:
|
||||
type: string
|
||||
resources:
|
||||
description: ResourceInfoList contains an array of ResourceInfo
|
||||
objects.
|
||||
items:
|
||||
description: ResourceInfo contains information about one resource
|
||||
type.
|
||||
properties:
|
||||
allocatable:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Allocatable quantity of the resource, corresponding
|
||||
to allocatable in node status, i.e. total amount of this
|
||||
resource available to be used by pods.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
available:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Available is the amount of this resource currently
|
||||
available for new (to be scheduled) pods, i.e. Allocatable
|
||||
minus the resources reserved by currently running pods.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
capacity:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Capacity of the resource, corresponding to capacity
|
||||
in node status, i.e. total amount of this resource that
|
||||
the node has.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
name:
|
||||
description: Name of the resource.
|
||||
type: string
|
||||
required:
|
||||
- allocatable
|
||||
- available
|
||||
- capacity
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- type
|
||||
type: object
|
||||
topologyPolicies:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
zones:
|
||||
description: ZoneList contains an array of Zone objects.
|
||||
items:
|
||||
description: Zone represents a resource topology zone, e.g. socket,
|
||||
node, die or core.
|
||||
properties:
|
||||
attributes:
|
||||
description: AttributeList contains an array of AttributeInfo objects.
|
||||
items:
|
||||
description: AttributeInfo contains one attribute of a Zone.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
costs:
|
||||
description: CostList contains an array of CostInfo objects.
|
||||
items:
|
||||
description: CostInfo describes the cost (or distance) between
|
||||
two Zones.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
format: int64
|
||||
type: integer
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
name:
|
||||
type: string
|
||||
parent:
|
||||
type: string
|
||||
resources:
|
||||
description: ResourceInfoList contains an array of ResourceInfo
|
||||
objects.
|
||||
items:
|
||||
description: ResourceInfo contains information about one resource
|
||||
type.
|
||||
properties:
|
||||
allocatable:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Allocatable quantity of the resource, corresponding
|
||||
to allocatable in node status, i.e. total amount of this
|
||||
resource available to be used by pods.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
available:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Available is the amount of this resource currently
|
||||
available for new (to be scheduled) pods, i.e. Allocatable
|
||||
minus the resources reserved by currently running pods.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
capacity:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Capacity of the resource, corresponding to capacity
|
||||
in node status, i.e. total amount of this resource that
|
||||
the node has.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
name:
|
||||
description: Name of the resource.
|
||||
type: string
|
||||
required:
|
||||
- allocatable
|
||||
- available
|
||||
- capacity
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- type
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- topologyPolicies
|
||||
- zones
|
||||
type: object
|
||||
served: true
|
||||
storage: false
|
||||
- name: v1alpha2
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: NodeResourceTopology describes node resources and their topology.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
type: array
|
||||
required:
|
||||
- topologyPolicies
|
||||
- zones
|
||||
type: object
|
||||
served: true
|
||||
storage: false
|
||||
- name: v1alpha2
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: NodeResourceTopology describes node resources and their topology.
|
||||
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
|
||||
attributes:
|
||||
description: AttributeList contains an array of AttributeInfo objects.
|
||||
items:
|
||||
description: AttributeInfo contains one attribute of a Zone.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
type: string
|
||||
attributes:
|
||||
description: AttributeList contains an array of AttributeInfo objects.
|
||||
items:
|
||||
description: AttributeInfo contains one attribute of a Zone.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
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
|
||||
topologyPolicies:
|
||||
description: 'DEPRECATED (to be removed in v1beta1): use top level attributes
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
topologyPolicies:
|
||||
description: 'DEPRECATED (to be removed in v1beta1): use top level attributes
|
||||
if needed'
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
zones:
|
||||
description: ZoneList contains an array of Zone objects.
|
||||
items:
|
||||
description: Zone represents a resource topology zone, e.g. socket,
|
||||
node, die or core.
|
||||
properties:
|
||||
attributes:
|
||||
description: AttributeList contains an array of AttributeInfo objects.
|
||||
items:
|
||||
description: AttributeInfo contains one attribute of a Zone.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
costs:
|
||||
description: CostList contains an array of CostInfo objects.
|
||||
items:
|
||||
description: CostInfo describes the cost (or distance) between
|
||||
two Zones.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
format: int64
|
||||
type: integer
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
name:
|
||||
type: string
|
||||
parent:
|
||||
type: string
|
||||
resources:
|
||||
description: ResourceInfoList contains an array of ResourceInfo
|
||||
objects.
|
||||
items:
|
||||
description: ResourceInfo contains information about one resource
|
||||
type.
|
||||
properties:
|
||||
allocatable:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Allocatable quantity of the resource, corresponding
|
||||
to allocatable in node status, i.e. total amount of this
|
||||
resource available to be used by pods.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
available:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Available is the amount of this resource currently
|
||||
available for new (to be scheduled) pods, i.e. Allocatable
|
||||
minus the resources reserved by currently running pods.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
capacity:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Capacity of the resource, corresponding to capacity
|
||||
in node status, i.e. total amount of this resource that
|
||||
the node has.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
name:
|
||||
description: Name of the resource.
|
||||
type: string
|
||||
required:
|
||||
- allocatable
|
||||
- available
|
||||
- capacity
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- type
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- zones
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
zones:
|
||||
description: ZoneList contains an array of Zone objects.
|
||||
items:
|
||||
description: Zone represents a resource topology zone, e.g. socket,
|
||||
node, die or core.
|
||||
properties:
|
||||
attributes:
|
||||
description: AttributeList contains an array of AttributeInfo objects.
|
||||
items:
|
||||
description: AttributeInfo contains one attribute of a Zone.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
costs:
|
||||
description: CostList contains an array of CostInfo objects.
|
||||
items:
|
||||
description: CostInfo describes the cost (or distance) between
|
||||
two Zones.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
format: int64
|
||||
type: integer
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
name:
|
||||
type: string
|
||||
parent:
|
||||
type: string
|
||||
resources:
|
||||
description: ResourceInfoList contains an array of ResourceInfo
|
||||
objects.
|
||||
items:
|
||||
description: ResourceInfo contains information about one resource
|
||||
type.
|
||||
properties:
|
||||
allocatable:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Allocatable quantity of the resource, corresponding
|
||||
to allocatable in node status, i.e. total amount of this
|
||||
resource available to be used by pods.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
available:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Available is the amount of this resource currently
|
||||
available for new (to be scheduled) pods, i.e. Allocatable
|
||||
minus the resources reserved by currently running pods.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
capacity:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Capacity of the resource, corresponding to capacity
|
||||
in node status, i.e. total amount of this resource that
|
||||
the node has.
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
name:
|
||||
description: Name of the resource.
|
||||
type: string
|
||||
required:
|
||||
- allocatable
|
||||
- available
|
||||
- capacity
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- type
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- zones
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -35,109 +35,109 @@ spec:
|
||||
securityContext:
|
||||
{{- toYaml .Values.topologyUpdater.podSecurityContext | nindent 8 }}
|
||||
containers:
|
||||
- name: topology-updater
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: NODE_ADDRESS
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.hostIP
|
||||
command:
|
||||
- "nfd-topology-updater"
|
||||
args:
|
||||
- "-podresources-socket=/host-var/lib/kubelet-podresources/kubelet.sock"
|
||||
- name: topology-updater
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: NODE_ADDRESS
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.hostIP
|
||||
command:
|
||||
- "nfd-topology-updater"
|
||||
args:
|
||||
- "-podresources-socket=/host-var/lib/kubelet-podresources/kubelet.sock"
|
||||
{{- if .Values.topologyUpdater.updateInterval | empty | not }}
|
||||
- "-sleep-interval={{ .Values.topologyUpdater.updateInterval }}"
|
||||
- "-sleep-interval={{ .Values.topologyUpdater.updateInterval }}"
|
||||
{{- else }}
|
||||
- "-sleep-interval=3s"
|
||||
- "-sleep-interval=3s"
|
||||
{{- end }}
|
||||
{{- if .Values.topologyUpdater.watchNamespace | empty | not }}
|
||||
- "-watch-namespace={{ .Values.topologyUpdater.watchNamespace }}"
|
||||
- "-watch-namespace={{ .Values.topologyUpdater.watchNamespace }}"
|
||||
{{- else }}
|
||||
- "-watch-namespace=*"
|
||||
- "-watch-namespace=*"
|
||||
{{- end }}
|
||||
{{- if .Values.tls.enable }}
|
||||
- "-ca-file=/etc/kubernetes/node-feature-discovery/certs/ca.crt"
|
||||
- "-key-file=/etc/kubernetes/node-feature-discovery/certs/tls.key"
|
||||
- "-cert-file=/etc/kubernetes/node-feature-discovery/certs/tls.crt"
|
||||
- "-ca-file=/etc/kubernetes/node-feature-discovery/certs/ca.crt"
|
||||
- "-key-file=/etc/kubernetes/node-feature-discovery/certs/tls.key"
|
||||
- "-cert-file=/etc/kubernetes/node-feature-discovery/certs/tls.crt"
|
||||
{{- end }}
|
||||
{{- if .Values.topologyUpdater.podSetFingerprint }}
|
||||
- "-pods-fingerprint"
|
||||
- "-pods-fingerprint"
|
||||
{{- end }}
|
||||
{{- if .Values.topologyUpdater.kubeletConfigPath | empty | not }}
|
||||
- "-kubelet-config-uri=file:///host-var/kubelet-config"
|
||||
- "-kubelet-config-uri=file:///host-var/kubelet-config"
|
||||
{{- end }}
|
||||
{{- if .Values.topologyUpdater.kubeletStateDir | empty }}
|
||||
# Disable kubelet state tracking by giving an empty path
|
||||
- "-kubelet-state-dir="
|
||||
# Disable kubelet state tracking by giving an empty path
|
||||
- "-kubelet-state-dir="
|
||||
{{- end }}
|
||||
- -metrics={{ .Values.topologyUpdater.metricsPort | default "8081"}}
|
||||
ports:
|
||||
- name: metrics
|
||||
containerPort: {{ .Values.topologyUpdater.metricsPort | default "8081"}}
|
||||
volumeMounts:
|
||||
- -metrics={{ .Values.topologyUpdater.metricsPort | default "8081"}}
|
||||
ports:
|
||||
- name: metrics
|
||||
containerPort: {{ .Values.topologyUpdater.metricsPort | default "8081"}}
|
||||
volumeMounts:
|
||||
{{- if .Values.topologyUpdater.kubeletConfigPath | empty | not }}
|
||||
- name: kubelet-config
|
||||
mountPath: /host-var/kubelet-config
|
||||
- name: kubelet-config
|
||||
mountPath: /host-var/kubelet-config
|
||||
{{- end }}
|
||||
- name: kubelet-podresources-sock
|
||||
mountPath: /host-var/lib/kubelet-podresources/kubelet.sock
|
||||
- name: host-sys
|
||||
mountPath: /host-sys
|
||||
- name: kubelet-podresources-sock
|
||||
mountPath: /host-var/lib/kubelet-podresources/kubelet.sock
|
||||
- name: host-sys
|
||||
mountPath: /host-sys
|
||||
{{- if .Values.topologyUpdater.kubeletStateDir | empty | not }}
|
||||
- name: kubelet-state-files
|
||||
mountPath: /host-var/lib/kubelet
|
||||
readOnly: true
|
||||
- name: kubelet-state-files
|
||||
mountPath: /host-var/lib/kubelet
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
{{- if .Values.tls.enable }}
|
||||
- name: nfd-topology-updater-cert
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery/certs"
|
||||
readOnly: true
|
||||
- name: nfd-topology-updater-cert
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery/certs"
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
- name: nfd-topology-updater-conf
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery"
|
||||
readOnly: true
|
||||
- name: nfd-topology-updater-conf
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery"
|
||||
readOnly: true
|
||||
|
||||
resources:
|
||||
resources:
|
||||
{{- toYaml .Values.topologyUpdater.resources | nindent 12 }}
|
||||
securityContext:
|
||||
securityContext:
|
||||
{{- toYaml .Values.topologyUpdater.securityContext | nindent 12 }}
|
||||
volumes:
|
||||
- name: host-sys
|
||||
hostPath:
|
||||
path: "/sys"
|
||||
- name: host-sys
|
||||
hostPath:
|
||||
path: "/sys"
|
||||
{{- if .Values.topologyUpdater.kubeletConfigPath | empty | not }}
|
||||
- name: kubelet-config
|
||||
hostPath:
|
||||
path: {{ .Values.topologyUpdater.kubeletConfigPath }}
|
||||
- name: kubelet-config
|
||||
hostPath:
|
||||
path: {{ .Values.topologyUpdater.kubeletConfigPath }}
|
||||
{{- end }}
|
||||
- name: kubelet-podresources-sock
|
||||
hostPath:
|
||||
- name: kubelet-podresources-sock
|
||||
hostPath:
|
||||
{{- if .Values.topologyUpdater.kubeletPodResourcesSockPath | empty | not }}
|
||||
path: {{ .Values.topologyUpdater.kubeletPodResourcesSockPath }}
|
||||
path: {{ .Values.topologyUpdater.kubeletPodResourcesSockPath }}
|
||||
{{- else }}
|
||||
path: /var/lib/kubelet/pod-resources/kubelet.sock
|
||||
path: /var/lib/kubelet/pod-resources/kubelet.sock
|
||||
{{- end }}
|
||||
{{- if .Values.topologyUpdater.kubeletStateDir | empty | not }}
|
||||
- name: kubelet-state-files
|
||||
hostPath:
|
||||
path: {{ .Values.topologyUpdater.kubeletStateDir }}
|
||||
- name: kubelet-state-files
|
||||
hostPath:
|
||||
path: {{ .Values.topologyUpdater.kubeletStateDir }}
|
||||
{{- end }}
|
||||
- name: nfd-topology-updater-conf
|
||||
configMap:
|
||||
name: {{ include "node-feature-discovery.fullname" . }}-topology-updater-conf
|
||||
items:
|
||||
- key: nfd-topology-updater.conf
|
||||
path: nfd-topology-updater.conf
|
||||
- name: nfd-topology-updater-conf
|
||||
configMap:
|
||||
name: {{ include "node-feature-discovery.fullname" . }}-topology-updater-conf
|
||||
items:
|
||||
- key: nfd-topology-updater.conf
|
||||
path: nfd-topology-updater.conf
|
||||
{{- if .Values.tls.enable }}
|
||||
- name: nfd-topology-updater-cert
|
||||
secret:
|
||||
secretName: nfd-topology-updater-cert
|
||||
- name: nfd-topology-updater-cert
|
||||
secret:
|
||||
secretName: nfd-topology-updater-cert
|
||||
{{- end }}
|
||||
|
||||
|
||||
@@ -153,4 +153,4 @@ spec:
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -35,76 +35,76 @@ spec:
|
||||
securityContext:
|
||||
{{- toYaml .Values.worker.podSecurityContext | nindent 8 }}
|
||||
containers:
|
||||
- name: worker
|
||||
securityContext:
|
||||
- name: worker
|
||||
securityContext:
|
||||
{{- toYaml .Values.worker.securityContext | nindent 12 }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_UID
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.uid
|
||||
resources:
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_UID
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.uid
|
||||
resources:
|
||||
{{- toYaml .Values.worker.resources | nindent 12 }}
|
||||
command:
|
||||
- "nfd-worker"
|
||||
args:
|
||||
command:
|
||||
- "nfd-worker"
|
||||
args:
|
||||
{{- if not .Values.enableNodeFeatureApi }}
|
||||
- "-server={{ include "node-feature-discovery.fullname" . }}-master:{{ .Values.master.service.port }}"
|
||||
- "-enable-nodefeature-api=false"
|
||||
- "-server={{ include "node-feature-discovery.fullname" . }}-master:{{ .Values.master.service.port }}"
|
||||
- "-enable-nodefeature-api=false"
|
||||
{{- end }}
|
||||
{{- if .Values.tls.enable }}
|
||||
- "-ca-file=/etc/kubernetes/node-feature-discovery/certs/ca.crt"
|
||||
- "-key-file=/etc/kubernetes/node-feature-discovery/certs/tls.key"
|
||||
- "-cert-file=/etc/kubernetes/node-feature-discovery/certs/tls.crt"
|
||||
- "-ca-file=/etc/kubernetes/node-feature-discovery/certs/ca.crt"
|
||||
- "-key-file=/etc/kubernetes/node-feature-discovery/certs/tls.key"
|
||||
- "-cert-file=/etc/kubernetes/node-feature-discovery/certs/tls.crt"
|
||||
{{- end }}
|
||||
- "-metrics={{ .Values.worker.metricsPort | default "8081"}}"
|
||||
ports:
|
||||
- name: metrics
|
||||
containerPort: {{ .Values.worker.metricsPort | default "8081"}}
|
||||
volumeMounts:
|
||||
- name: host-boot
|
||||
mountPath: "/host-boot"
|
||||
readOnly: true
|
||||
- name: host-os-release
|
||||
mountPath: "/host-etc/os-release"
|
||||
readOnly: true
|
||||
- name: host-sys
|
||||
mountPath: "/host-sys"
|
||||
readOnly: true
|
||||
- name: host-usr-lib
|
||||
mountPath: "/host-usr/lib"
|
||||
readOnly: true
|
||||
- name: host-lib
|
||||
mountPath: "/host-lib"
|
||||
readOnly: true
|
||||
- "-metrics={{ .Values.worker.metricsPort | default "8081"}}"
|
||||
ports:
|
||||
- name: metrics
|
||||
containerPort: {{ .Values.worker.metricsPort | default "8081"}}
|
||||
volumeMounts:
|
||||
- name: host-boot
|
||||
mountPath: "/host-boot"
|
||||
readOnly: true
|
||||
- name: host-os-release
|
||||
mountPath: "/host-etc/os-release"
|
||||
readOnly: true
|
||||
- name: host-sys
|
||||
mountPath: "/host-sys"
|
||||
readOnly: true
|
||||
- name: host-usr-lib
|
||||
mountPath: "/host-usr/lib"
|
||||
readOnly: true
|
||||
- name: host-lib
|
||||
mountPath: "/host-lib"
|
||||
readOnly: true
|
||||
{{- if .Values.worker.mountUsrSrc }}
|
||||
- name: host-usr-src
|
||||
mountPath: "/host-usr/src"
|
||||
readOnly: true
|
||||
- name: host-usr-src
|
||||
mountPath: "/host-usr/src"
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
- name: source-d
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery/source.d/"
|
||||
readOnly: true
|
||||
- name: features-d
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery/features.d/"
|
||||
readOnly: true
|
||||
- name: nfd-worker-conf
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery"
|
||||
readOnly: true
|
||||
- name: source-d
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery/source.d/"
|
||||
readOnly: true
|
||||
- name: features-d
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery/features.d/"
|
||||
readOnly: true
|
||||
- name: nfd-worker-conf
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery"
|
||||
readOnly: true
|
||||
{{- if .Values.tls.enable }}
|
||||
- name: nfd-worker-cert
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery/certs"
|
||||
readOnly: true
|
||||
- name: nfd-worker-cert
|
||||
mountPath: "/etc/kubernetes/node-feature-discovery/certs"
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: host-boot
|
||||
@@ -159,4 +159,4 @@ spec:
|
||||
{{- with .Values.worker.priorityClassName }}
|
||||
priorityClassName: {{ . | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user