forked from suse-edge/Factory
unpack obscpio files
This commit is contained in:
parent
beab68c274
commit
21086b77bb
Binary file not shown.
Binary file not shown.
2
cdi-chart/templates/NOTES.txt
Normal file
2
cdi-chart/templates/NOTES.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Verify that all CDI components are installed correctly:
|
||||
kubectl get all -n {{ .Release.Namespace }}
|
62
cdi-chart/templates/_helpers.tpl
Normal file
62
cdi-chart/templates/_helpers.tpl
Normal file
@ -0,0 +1,62 @@
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "cdi.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "cdi.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- if contains $name .Release.Name }}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "cdi.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "cdi.labels" -}}
|
||||
helm.sh/chart: {{ include "cdi.chart" . }}
|
||||
{{ include "cdi.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "cdi.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "cdi.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "cdi.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
{{- default (include "cdi.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
47
cdi-chart/templates/_hooks.tpl
Normal file
47
cdi-chart/templates/_hooks.tpl
Normal file
@ -0,0 +1,47 @@
|
||||
{{/* Hook annotations */}}
|
||||
{{- define "cdi.hook.annotations" -}}
|
||||
annotations:
|
||||
"helm.sh/hook": {{ .hookType }}
|
||||
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
|
||||
"helm.sh/hook-weight": {{ .hookWeight | quote }}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Namespace modifying hook annotations */}}
|
||||
{{- define "cdi.namespaceHook.annotations" -}}
|
||||
{{ template "cdi.hook.annotations" merge (dict "hookType" "pre-install") . }}
|
||||
{{- end -}}
|
||||
|
||||
{{/* CRD upgrading hook annotations */}}
|
||||
{{- define "cdi.crdUpgradeHook.annotations" -}}
|
||||
{{ template "cdi.hook.annotations" merge (dict "hookType" "pre-upgrade") . }}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Custom resource uninstalling hook annotations */}}
|
||||
{{- define "cdi.crUninstallHook.annotations" -}}
|
||||
{{ template "cdi.hook.annotations" merge (dict "hookType" "pre-delete") . }}
|
||||
{{- end -}}
|
||||
|
||||
{{/* CRD uninstalling hook annotations */}}
|
||||
{{- define "cdi.crdUninstallHook.annotations" -}}
|
||||
{{ template "cdi.hook.annotations" merge (dict "hookType" "post-delete") . }}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Namespace modifying hook name */}}
|
||||
{{- define "cdi.namespaceHook.name" -}}
|
||||
{{ include "cdi.fullname" . }}-namespace-modify
|
||||
{{- end }}
|
||||
|
||||
{{/* CRD upgrading hook name */}}
|
||||
{{- define "cdi.crdUpgradeHook.name" -}}
|
||||
{{ include "cdi.fullname" . }}-crd-upgrade
|
||||
{{- end }}
|
||||
|
||||
{{/* Custom resource uninstalling hook name */}}
|
||||
{{- define "cdi.crUninstallHook.name" -}}
|
||||
{{ include "cdi.fullname" . }}-uninstall
|
||||
{{- end }}
|
||||
|
||||
{{/* CRD uninstalling hook name */}}
|
||||
{{- define "cdi.crdUninstallHook.name" -}}
|
||||
{{ include "cdi.fullname" . }}-crd-uninstall
|
||||
{{- end }}
|
671
cdi-chart/templates/cdi-operator.yaml
Normal file
671
cdi-chart/templates/cdi-operator.yaml
Normal file
@ -0,0 +1,671 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
operator.cdi.kubevirt.io: ""
|
||||
name: cdi-operator-cluster
|
||||
rules:
|
||||
- apiGroups:
|
||||
- rbac.authorization.k8s.io
|
||||
resources:
|
||||
- clusterrolebindings
|
||||
- clusterroles
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- security.openshift.io
|
||||
resources:
|
||||
- securitycontextconstraints
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
- create
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
- customresourcedefinitions/status
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
- upload.cdi.kubevirt.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- validatingwebhookconfigurations
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- create
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resourceNames:
|
||||
- cdi-api-dataimportcron-validate
|
||||
- cdi-api-populator-validate
|
||||
- cdi-api-datavolume-validate
|
||||
- cdi-api-validate
|
||||
- objecttransfer-api-validate
|
||||
resources:
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resourceNames:
|
||||
- cdi-api-datavolume-mutate
|
||||
- cdi-api-pvc-mutate
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apiregistration.k8s.io
|
||||
resources:
|
||||
- apiservices
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- authorization.k8s.io
|
||||
resources:
|
||||
- subjectaccessreviews
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- storageclasses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- snapshot.storage.k8s.io
|
||||
resources:
|
||||
- volumesnapshots
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
resources:
|
||||
- datavolumes
|
||||
verbs:
|
||||
- list
|
||||
- get
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
resources:
|
||||
- datasources
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
resources:
|
||||
- volumeclonesources
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
resources:
|
||||
- storageprofiles
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
resources:
|
||||
- cdis
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
resources:
|
||||
- cdiconfigs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
resources:
|
||||
- cdis/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- deletecollection
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims/finalizers
|
||||
- pods/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- create
|
||||
- apiGroups:
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- storageclasses
|
||||
- csidrivers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- config.openshift.io
|
||||
resources:
|
||||
- proxies
|
||||
- infrastructures
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- config.openshift.io
|
||||
resources:
|
||||
- clusterversions
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- snapshot.storage.k8s.io
|
||||
resources:
|
||||
- volumesnapshots
|
||||
- volumesnapshotclasses
|
||||
- volumesnapshotcontents
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- snapshot.storage.k8s.io
|
||||
resources:
|
||||
- volumesnapshots
|
||||
verbs:
|
||||
- update
|
||||
- deletecollection
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- scheduling.k8s.io
|
||||
resources:
|
||||
- priorityclasses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- image.openshift.io
|
||||
resources:
|
||||
- imagestreams
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- kubevirt.io
|
||||
resources:
|
||||
- virtualmachines/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- forklift.cdi.kubevirt.io
|
||||
resources:
|
||||
- ovirtvolumepopulators
|
||||
- openstackvolumepopulators
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- cdi.kubevirt.io
|
||||
resources:
|
||||
- dataimportcrons
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
operator.cdi.kubevirt.io: ""
|
||||
name: cdi-operator
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cdi-operator-cluster
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: cdi-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
operator.cdi.kubevirt.io: ""
|
||||
name: cdi-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
app: containerized-data-importer
|
||||
app.kubernetes.io/component: storage
|
||||
app.kubernetes.io/managed-by: cdi-operator
|
||||
cdi.kubevirt.io: ""
|
||||
name: cdi-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- rbac.authorization.k8s.io
|
||||
resources:
|
||||
- rolebindings
|
||||
- roles
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- serviceaccounts
|
||||
- configmaps
|
||||
- events
|
||||
- secrets
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments
|
||||
- deployments/finalizers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- route.openshift.io
|
||||
resources:
|
||||
- routes
|
||||
- routes/custom-host
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- apiGroups:
|
||||
- config.openshift.io
|
||||
resources:
|
||||
- proxies
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- monitoring.coreos.com
|
||||
resources:
|
||||
- servicemonitors
|
||||
- prometheusrules
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- get
|
||||
- create
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- cronjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- deletecollection
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- jobs
|
||||
verbs:
|
||||
- create
|
||||
- deletecollection
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- get
|
||||
- create
|
||||
- update
|
||||
- apiGroups:
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingresses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- route.openshift.io
|
||||
resources:
|
||||
- routes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
- endpoints
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: containerized-data-importer
|
||||
app.kubernetes.io/component: storage
|
||||
app.kubernetes.io/managed-by: cdi-operator
|
||||
cdi.kubevirt.io: ""
|
||||
name: cdi-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: cdi-operator
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: cdi-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
cdi.kubevirt.io: cdi-operator
|
||||
name: cdi-operator
|
||||
operator.cdi.kubevirt.io: ""
|
||||
prometheus.cdi.kubevirt.io: "true"
|
||||
name: cdi-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
name: cdi-operator
|
||||
operator.cdi.kubevirt.io: ""
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
cdi.kubevirt.io: cdi-operator
|
||||
name: cdi-operator
|
||||
operator.cdi.kubevirt.io: ""
|
||||
prometheus.cdi.kubevirt.io: "true"
|
||||
spec:
|
||||
affinity:
|
||||
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
|
||||
value: "true"
|
||||
- name: OPERATOR_VERSION
|
||||
value: {{ .Values.deployment.version }}
|
||||
- name: CONTROLLER_IMAGE
|
||||
value: {{ .Values.deployment.controllerImage }}:{{ .Values.deployment.version }}
|
||||
- name: IMPORTER_IMAGE
|
||||
value: {{ .Values.deployment.importerImage }}:{{ .Values.deployment.version }}
|
||||
- name: CLONER_IMAGE
|
||||
value: {{ .Values.deployment.clonerImage }}:{{ .Values.deployment.version }}
|
||||
- name: OVIRT_POPULATOR_IMAGE
|
||||
value: {{ .Values.deployment.importerImage }}:{{ .Values.deployment.version }}
|
||||
- name: APISERVER_IMAGE
|
||||
value: {{ .Values.deployment.apiserverImage }}:{{ .Values.deployment.version }}
|
||||
- name: UPLOAD_SERVER_IMAGE
|
||||
value: {{ .Values.deployment.uploadserverImage }}:{{ .Values.deployment.version }}
|
||||
- name: UPLOAD_PROXY_IMAGE
|
||||
value: {{ .Values.deployment.uploadproxyImage }}:{{ .Values.deployment.version }}
|
||||
- name: VERBOSITY
|
||||
value: "1"
|
||||
- name: PULL_POLICY
|
||||
value: {{ .Values.deployment.pullPolicy }}
|
||||
- name: MONITORING_NAMESPACE
|
||||
image: {{ .Values.deployment.operatorImage }}:{{ .Values.deployment.version }}
|
||||
imagePullPolicy: {{ .Values.deployment.pullPolicy }}
|
||||
name: cdi-operator
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 150Mi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
runAsNonRoot: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
serviceAccountName: cdi-operator
|
||||
tolerations:
|
||||
- key: CriticalAddonsOnly
|
||||
operator: Exists
|
69
cdi-chart/templates/cdi-uninstall-hooks.yaml
Normal file
69
cdi-chart/templates/cdi-uninstall-hooks.yaml
Normal file
@ -0,0 +1,69 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.crUninstallHook.name" . }}
|
||||
{{ template "cdi.crUninstallHook.annotations" (dict "hookWeight" 1) }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ template "cdi.crUninstallHook.name" . }}
|
||||
{{ template "cdi.crUninstallHook.annotations" (dict "hookWeight" 1) }}
|
||||
rules:
|
||||
- apiGroups: [ "cdi.kubevirt.io" ]
|
||||
resources: [ "cdis" ]
|
||||
resourceNames:
|
||||
- "cdi"
|
||||
verbs: [ "delete" ]
|
||||
- apiGroups: [ "apps" ]
|
||||
resources: [ "deployments" ]
|
||||
verbs: [ "get", "list" ]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ template "cdi.crUninstallHook.name" . }}
|
||||
{{ template "cdi.crUninstallHook.annotations" (dict "hookWeight" 2) }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.crUninstallHook.name" . }}
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ template "cdi.crUninstallHook.name" . }}
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.crUninstallHook.name" . }}
|
||||
{{ template "cdi.crUninstallHook.annotations" (dict "hookWeight" 3) }}
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
name: {{ template "cdi.crUninstallHook.name" . }}
|
||||
spec:
|
||||
serviceAccountName: {{ template "cdi.crUninstallHook.name" . }}
|
||||
restartPolicy: {{ .Values.hookRestartPolicy }}
|
||||
containers:
|
||||
- name: {{ template "cdi.crUninstallHook.name" . }}
|
||||
image: {{ .Values.hookImage }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.hookSecurityContext | nindent 12 }}
|
||||
args:
|
||||
- delete
|
||||
- cdi
|
||||
- cdi
|
||||
- name: {{ template "cdi.crUninstallHook.name" . }}-cleanup
|
||||
image: {{ .Values.hookImage }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.hookSecurityContext | nindent 12 }}
|
||||
args:
|
||||
- wait
|
||||
- --for=delete
|
||||
- deployments/cdi-apiserver
|
||||
- deployments/cdi-deployment
|
||||
- deployments/cdi-uploadproxy
|
||||
- --timeout=60s
|
21
cdi-chart/templates/cdi.yaml
Normal file
21
cdi-chart/templates/cdi.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
apiVersion: cdi.kubevirt.io/v1beta1
|
||||
kind: CDI
|
||||
metadata:
|
||||
name: cdi
|
||||
spec:
|
||||
{{- with .Values.cdi.config }}
|
||||
config:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
imagePullPolicy: {{ .Values.cdi.imagePullPolicy }}
|
||||
{{- with .Values.cdi.infra }}
|
||||
infra:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.cdi.uninstallStrategy }}
|
||||
uninstallStrategy: {{ .Values.cdi.uninstallStrategy }}
|
||||
{{- end }}
|
||||
{{- with .Values.cdi.workload }}
|
||||
workload:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
55
cdi-chart/templates/crd-uninstall-hooks.yaml
Normal file
55
cdi-chart/templates/crd-uninstall-hooks.yaml
Normal file
@ -0,0 +1,55 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.crdUninstallHook.name" . }}
|
||||
{{ template "cdi.crdUninstallHook.annotations" (dict "hookWeight" 1) }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ template "cdi.crdUninstallHook.name" . }}
|
||||
{{ template "cdi.crdUninstallHook.annotations" (dict "hookWeight" 1) }}
|
||||
rules:
|
||||
- apiGroups: [ "apiextensions.k8s.io" ]
|
||||
resources: [ "customresourcedefinitions" ]
|
||||
resourceNames:
|
||||
- "cdis.cdi.kubevirt.io"
|
||||
verbs: [ "delete" ]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ template "cdi.crdUninstallHook.name" . }}
|
||||
{{ template "cdi.crdUninstallHook.annotations" (dict "hookWeight" 2) }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.crdUninstallHook.name" . }}
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ template "cdi.crdUninstallHook.name" . }}
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.crdUninstallHook.name" . }}
|
||||
{{ template "cdi.crdUninstallHook.annotations" (dict "hookWeight" 3) }}
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
name: {{ template "cdi.crdUninstallHook.name" . }}
|
||||
spec:
|
||||
serviceAccountName: {{ template "cdi.crdUninstallHook.name" . }}
|
||||
restartPolicy: {{ .Values.hookRestartPolicy }}
|
||||
containers:
|
||||
- name: {{ template "cdi.crdUninstallHook.name" . }}
|
||||
image: {{ .Values.hookImage }}
|
||||
args:
|
||||
- delete
|
||||
- customresourcedefinitions
|
||||
- cdis.cdi.kubevirt.io
|
||||
securityContext:
|
||||
{{- toYaml .Values.hookSecurityContext | nindent 12 }}
|
80
cdi-chart/templates/crd-upgrade-hooks.yaml
Normal file
80
cdi-chart/templates/crd-upgrade-hooks.yaml
Normal file
@ -0,0 +1,80 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: cdi-crd-manifest
|
||||
{{ template "cdi.crdUpgradeHook.annotations" (dict "hookWeight" 1) }}
|
||||
data:
|
||||
crd: |-
|
||||
{{ $.Files.Get "crds/cdi.yaml" | nindent 4 }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.crdUpgradeHook.name" . }}
|
||||
{{ template "cdi.crdUpgradeHook.annotations" (dict "hookWeight" 2) }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ template "cdi.crdUpgradeHook.name" . }}
|
||||
{{ template "cdi.crdUpgradeHook.annotations" (dict "hookWeight" 2) }}
|
||||
rules:
|
||||
- apiGroups: [ "" ]
|
||||
resources: [ "configmaps" ]
|
||||
resourceNames:
|
||||
- "cdi-crd-manifest"
|
||||
verbs: [ "get" ]
|
||||
- apiGroups: [ "apiextensions.k8s.io" ]
|
||||
resources: [ "customresourcedefinitions" ]
|
||||
resourceNames:
|
||||
- "cdis.cdi.kubevirt.io"
|
||||
verbs: [ "get", "patch" ]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ template "cdi.crdUpgradeHook.name" . }}
|
||||
{{ template "cdi.crdUpgradeHook.annotations" (dict "hookWeight" 3) }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.crdUpgradeHook.name" . }}
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ template "cdi.crdUpgradeHook.name" . }}
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.crdUpgradeHook.name" . }}
|
||||
{{ template "cdi.crdUpgradeHook.annotations" (dict "hookWeight" 4) }}
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
name: {{ template "cdi.crdUpgradeHook.name" . }}
|
||||
spec:
|
||||
serviceAccountName: {{ template "cdi.crdUpgradeHook.name" . }}
|
||||
restartPolicy: {{ .Values.hookRestartPolicy }}
|
||||
containers:
|
||||
- name: {{ template "cdi.crdUpgradeHook.name" . }}
|
||||
image: {{ .Values.hookImage }}
|
||||
args:
|
||||
- apply
|
||||
- -f
|
||||
- /etc/manifests/crd.yaml
|
||||
securityContext:
|
||||
{{- toYaml .Values.hookSecurityContext | nindent 12 }}
|
||||
volumeMounts:
|
||||
- name: crd-volume
|
||||
mountPath: /etc/manifests
|
||||
volumes:
|
||||
- name: crd-volume
|
||||
configMap:
|
||||
name: cdi-crd-manifest
|
||||
items:
|
||||
- key: crd
|
||||
path: crd.yaml
|
56
cdi-chart/templates/namespace-hooks.yaml
Normal file
56
cdi-chart/templates/namespace-hooks.yaml
Normal file
@ -0,0 +1,56 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.namespaceHook.name" . }}
|
||||
{{ template "cdi.namespaceHook.annotations" (dict "hookWeight" 1) }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ template "cdi.namespaceHook.name" . }}
|
||||
{{ template "cdi.namespaceHook.annotations" (dict "hookWeight" 1) }}
|
||||
rules:
|
||||
- apiGroups: [ "" ]
|
||||
resources: [ "namespaces" ]
|
||||
resourceNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
verbs: [ "get", "patch" ]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ template "cdi.namespaceHook.name" . }}
|
||||
{{ template "cdi.namespaceHook.annotations" (dict "hookWeight" 2) }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.namespaceHook.name" . }}
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ template "cdi.namespaceHook.name" . }}
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: {{ template "cdi.namespaceHook.name" . }}
|
||||
{{ template "cdi.namespaceHook.annotations" (dict "hookWeight" 3) }}
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
name: {{ template "cdi.namespaceHook.name" . }}
|
||||
spec:
|
||||
serviceAccountName: {{ template "cdi.namespaceHook.name" . }}
|
||||
restartPolicy: {{ .Values.hookRestartPolicy }}
|
||||
containers:
|
||||
- name: {{ template "cdi.namespaceHook.name" . }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.hookSecurityContext | nindent 12 }}
|
||||
image: {{ .Values.hookImage }}
|
||||
args:
|
||||
- label
|
||||
- namespace
|
||||
- {{ .Release.Namespace }}
|
||||
- cdi.kubevirt.io=
|
Binary file not shown.
23
metal3-chart/charts/baremetal-operator/.helmignore
Normal file
23
metal3-chart/charts/baremetal-operator/.helmignore
Normal file
@ -0,0 +1,23 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
6
metal3-chart/charts/baremetal-operator/Chart.yaml
Normal file
6
metal3-chart/charts/baremetal-operator/Chart.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
apiVersion: v2
|
||||
appVersion: 0.6.1
|
||||
description: A Helm chart for baremetal-operator, used by Metal3
|
||||
name: baremetal-operator
|
||||
type: application
|
||||
version: 0.5.0
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,85 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
name: bmceventsubscriptions.metal3.io
|
||||
spec:
|
||||
group: metal3.io
|
||||
names:
|
||||
kind: BMCEventSubscription
|
||||
listKind: BMCEventSubscriptionList
|
||||
plural: bmceventsubscriptions
|
||||
shortNames:
|
||||
- bes
|
||||
- bmcevent
|
||||
singular: bmceventsubscription
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- description: The most recent error message
|
||||
jsonPath: .status.error
|
||||
name: Error
|
||||
type: string
|
||||
- description: Time duration since creation of BMCEventSubscription
|
||||
jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: BMCEventSubscription is the Schema for the fast eventing API
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
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:
|
||||
properties:
|
||||
context:
|
||||
description: Arbitrary user-provided context for the event
|
||||
type: string
|
||||
destination:
|
||||
description: A webhook URL to send events to
|
||||
type: string
|
||||
hostName:
|
||||
description: A reference to a BareMetalHost
|
||||
type: string
|
||||
httpHeadersRef:
|
||||
description: A secret containing HTTP headers which should be passed
|
||||
along to the Destination when making a request
|
||||
properties:
|
||||
name:
|
||||
description: name is unique within a namespace to reference a
|
||||
secret resource.
|
||||
type: string
|
||||
namespace:
|
||||
description: namespace defines the space within which the secret
|
||||
name must be unique.
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
subscriptionID:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
@ -0,0 +1,75 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
name: dataimages.metal3.io
|
||||
spec:
|
||||
group: metal3.io
|
||||
names:
|
||||
kind: DataImage
|
||||
listKind: DataImageList
|
||||
plural: dataimages
|
||||
singular: dataimage
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: DataImage is the Schema for the dataimages API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
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: DataImageSpec defines the desired state of DataImage.
|
||||
properties:
|
||||
url:
|
||||
description: Url is the address of the dataImage that we want to attach
|
||||
to a BareMetalHost
|
||||
type: string
|
||||
required:
|
||||
- url
|
||||
type: object
|
||||
status:
|
||||
description: DataImageStatus defines the observed state of DataImage.
|
||||
properties:
|
||||
attachedImage:
|
||||
description: Currently attached DataImage
|
||||
properties:
|
||||
url:
|
||||
type: string
|
||||
required:
|
||||
- url
|
||||
type: object
|
||||
error:
|
||||
description: Error count and message when attaching/detaching
|
||||
properties:
|
||||
count:
|
||||
type: integer
|
||||
message:
|
||||
type: string
|
||||
required:
|
||||
- count
|
||||
- message
|
||||
type: object
|
||||
lastReconciled:
|
||||
description: Time of last reconciliation
|
||||
format: date-time
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
@ -0,0 +1,90 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
name: firmwareschemas.metal3.io
|
||||
spec:
|
||||
group: metal3.io
|
||||
names:
|
||||
kind: FirmwareSchema
|
||||
listKind: FirmwareSchemaList
|
||||
plural: firmwareschemas
|
||||
singular: firmwareschema
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: FirmwareSchema is the Schema for the firmwareschemas API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
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: FirmwareSchemaSpec defines the desired state of FirmwareSchema.
|
||||
properties:
|
||||
hardwareModel:
|
||||
description: The hardware model associated with this schema
|
||||
type: string
|
||||
hardwareVendor:
|
||||
description: The hardware vendor associated with this schema
|
||||
type: string
|
||||
schema:
|
||||
additionalProperties:
|
||||
description: Additional data describing the firmware setting.
|
||||
properties:
|
||||
allowable_values:
|
||||
description: The allowable value for an Enumeration type setting.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
attribute_type:
|
||||
description: The type of setting.
|
||||
enum:
|
||||
- Enumeration
|
||||
- String
|
||||
- Integer
|
||||
- Boolean
|
||||
- Password
|
||||
type: string
|
||||
lower_bound:
|
||||
description: The lowest value for an Integer type setting.
|
||||
type: integer
|
||||
max_length:
|
||||
description: Maximum length for a String type setting.
|
||||
type: integer
|
||||
min_length:
|
||||
description: Minimum length for a String type setting.
|
||||
type: integer
|
||||
read_only:
|
||||
description: Whether or not this setting is read only.
|
||||
type: boolean
|
||||
unique:
|
||||
description: Whether or not this setting's value is unique to
|
||||
this node, e.g. a serial number.
|
||||
type: boolean
|
||||
upper_bound:
|
||||
description: The highest value for an Integer type setting.
|
||||
type: integer
|
||||
type: object
|
||||
description: Map of firmware name to schema
|
||||
type: object
|
||||
required:
|
||||
- schema
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
@ -0,0 +1,211 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.12.1
|
||||
labels:
|
||||
clusterctl.cluster.x-k8s.io: ""
|
||||
name: hardwaredata.metal3.io
|
||||
spec:
|
||||
group: metal3.io
|
||||
names:
|
||||
kind: HardwareData
|
||||
listKind: HardwareDataList
|
||||
plural: hardwaredata
|
||||
shortNames:
|
||||
- hd
|
||||
singular: hardwaredata
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- description: Time duration since creation of HardwareData
|
||||
jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: HardwareData is the Schema for the hardwaredata API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
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: HardwareDataSpec defines the desired state of HardwareData.
|
||||
properties:
|
||||
hardware:
|
||||
description: The hardware discovered on the host during its inspection.
|
||||
properties:
|
||||
cpu:
|
||||
description: CPU describes one processor on the host.
|
||||
properties:
|
||||
arch:
|
||||
type: string
|
||||
clockMegahertz:
|
||||
description: ClockSpeed is a clock speed in MHz
|
||||
format: double
|
||||
type: number
|
||||
count:
|
||||
type: integer
|
||||
flags:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
model:
|
||||
type: string
|
||||
type: object
|
||||
firmware:
|
||||
description: Firmware describes the firmware on the host.
|
||||
properties:
|
||||
bios:
|
||||
description: The BIOS for this firmware
|
||||
properties:
|
||||
date:
|
||||
description: The release/build date for this BIOS
|
||||
type: string
|
||||
vendor:
|
||||
description: The vendor name for this BIOS
|
||||
type: string
|
||||
version:
|
||||
description: The version of the BIOS
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
hostname:
|
||||
type: string
|
||||
nics:
|
||||
items:
|
||||
description: NIC describes one network interface on the host.
|
||||
properties:
|
||||
ip:
|
||||
description: The IP address of the interface. This will
|
||||
be an IPv4 or IPv6 address if one is present. If both
|
||||
IPv4 and IPv6 addresses are present in a dual-stack environment,
|
||||
two nics will be output, one with each IP.
|
||||
type: string
|
||||
mac:
|
||||
description: The device MAC address
|
||||
pattern: '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'
|
||||
type: string
|
||||
model:
|
||||
description: The vendor and product IDs of the NIC, e.g.
|
||||
"0x8086 0x1572"
|
||||
type: string
|
||||
name:
|
||||
description: The name of the network interface, e.g. "en0"
|
||||
type: string
|
||||
pxe:
|
||||
description: Whether the NIC is PXE Bootable
|
||||
type: boolean
|
||||
speedGbps:
|
||||
description: The speed of the device in Gigabits per second
|
||||
type: integer
|
||||
vlanId:
|
||||
description: The untagged VLAN ID
|
||||
format: int32
|
||||
maximum: 4094
|
||||
minimum: 0
|
||||
type: integer
|
||||
vlans:
|
||||
description: The VLANs available
|
||||
items:
|
||||
description: VLAN represents the name and ID of a VLAN.
|
||||
properties:
|
||||
id:
|
||||
description: VLANID is a 12-bit 802.1Q VLAN identifier
|
||||
format: int32
|
||||
maximum: 4094
|
||||
minimum: 0
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
type: array
|
||||
ramMebibytes:
|
||||
type: integer
|
||||
storage:
|
||||
items:
|
||||
description: Storage describes one storage device (disk, SSD,
|
||||
etc.) on the host.
|
||||
properties:
|
||||
alternateNames:
|
||||
description: A list of alternate Linux device names of the
|
||||
disk, e.g. "/dev/sda". Note that this list is not exhaustive,
|
||||
and names may not be stable across reboots.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
hctl:
|
||||
description: The SCSI location of the device
|
||||
type: string
|
||||
model:
|
||||
description: Hardware model
|
||||
type: string
|
||||
name:
|
||||
description: A Linux device name of the disk, e.g. "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0".
|
||||
This will be a name that is stable across reboots if one
|
||||
is available.
|
||||
type: string
|
||||
rotational:
|
||||
description: Whether this disk represents rotational storage.
|
||||
This field is not recommended for usage, please prefer
|
||||
using 'Type' field instead, this field will be deprecated
|
||||
eventually.
|
||||
type: boolean
|
||||
serialNumber:
|
||||
description: The serial number of the device
|
||||
type: string
|
||||
sizeBytes:
|
||||
description: The size of the disk in Bytes
|
||||