450 lines
23 KiB
YAML
450 lines
23 KiB
YAML
---
|
|
# Source: kmm/templates/nodemodulesconfig-crd.yaml
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
name: nodemodulesconfigs.kmm.sigs.x-k8s.io
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.16.1
|
|
labels:
|
|
app.kubernetes.io/component: kmm
|
|
app.kubernetes.io/part-of: kmm
|
|
helm.sh/chart: kmm-v1.0.0
|
|
app.kubernetes.io/name: kmm
|
|
app.kubernetes.io/instance: amd-gpu
|
|
app.kubernetes.io/version: "v20240618-v2.1.1"
|
|
app.kubernetes.io/managed-by: Helm
|
|
spec:
|
|
group: kmm.sigs.x-k8s.io
|
|
names:
|
|
kind: NodeModulesConfig
|
|
listKind: NodeModulesConfigList
|
|
plural: nodemodulesconfigs
|
|
shortNames:
|
|
- nmc
|
|
singular: nodemodulesconfig
|
|
scope: Cluster
|
|
versions:
|
|
- name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: NodeModulesConfig keeps spec and state of the KMM modules on a
|
|
node.
|
|
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: |-
|
|
NodeModulesConfigSpec describes the desired state of modules on the node
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
|
properties:
|
|
modules:
|
|
description: |-
|
|
Modules list the spec of all the modules that need to be executed
|
|
on the node
|
|
items:
|
|
properties:
|
|
config:
|
|
properties:
|
|
containerImage:
|
|
type: string
|
|
imagePullPolicy:
|
|
default: IfNotPresent
|
|
description: PullPolicy describes a policy for if/when to
|
|
pull a container image
|
|
type: string
|
|
inTreeModuleToRemove:
|
|
type: string
|
|
inTreeModulesToRemove:
|
|
items:
|
|
type: string
|
|
type: array
|
|
insecurePull:
|
|
description: When InsecurePull is true, the container image
|
|
can be pulled without TLS.
|
|
type: boolean
|
|
kernelVersion:
|
|
type: string
|
|
modprobe:
|
|
properties:
|
|
args:
|
|
description: |-
|
|
Args is an optional list of arguments to be passed to modprobe before the name of the kernel module.
|
|
The resulting commands will be: `modprobe ${Args} module_name`.
|
|
properties:
|
|
load:
|
|
description: Load is an optional list of arguments
|
|
to be used when loading the kernel module.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
unload:
|
|
description: Unload is an optional list of arguments
|
|
to be used when unloading the kernel module.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
type: object
|
|
dirName:
|
|
default: /opt
|
|
description: |-
|
|
DirName is the root directory for modules.
|
|
It adds `-d ${DirName}` to the modprobe command-line.
|
|
type: string
|
|
firmwarePath:
|
|
description: |-
|
|
FirmwarePath is the path of the firmware(s).
|
|
The firmware(s) will be copied to the host for the kernel to find them.
|
|
type: string
|
|
moduleName:
|
|
description: |-
|
|
ModuleName is the name of the Module to be loaded.
|
|
This field can only be unset if rawArgs is set.
|
|
type: string
|
|
modulesLoadingOrder:
|
|
description: |-
|
|
ModulesLoadingOrder defines the dependency between kernel modules loading, in case
|
|
it was not created by depmod (independent kernel modules).
|
|
The list order should be: upmost module, then the module it depends on and so on.
|
|
Example: if moduleA depends on first loading moduleB, and moduleB depends on first loading moduleC
|
|
the entry should look:
|
|
ModulesLoadingOrder:
|
|
- moduleA
|
|
- moduleB
|
|
- moduleC
|
|
In order to load all 3 modules, moduleA shoud be defined in the ModuleName parameter of this struct
|
|
items:
|
|
type: string
|
|
type: array
|
|
parameters:
|
|
description: |-
|
|
Parameters is an optional list of kernel module parameters to be provided to modprobe.
|
|
They should be in the form of key=value and will be separated by spaces in the modprobe command.
|
|
The resulting loading command will be: `modprobe module_name ${Parameters}`.
|
|
items:
|
|
type: string
|
|
type: array
|
|
rawArgs:
|
|
description: |-
|
|
If RawArgs are specified, they are passed straight to the modprobe binary; all other properties in this
|
|
object are ignored.
|
|
The resulting commands will be: `modprobe ${RawArgs}`.
|
|
properties:
|
|
load:
|
|
description: Load is an optional list of arguments
|
|
to be used when loading the kernel module.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
unload:
|
|
description: Unload is an optional list of arguments
|
|
to be used when unloading the kernel module.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
type: object
|
|
type: object
|
|
required:
|
|
- containerImage
|
|
- imagePullPolicy
|
|
- insecurePull
|
|
- kernelVersion
|
|
- modprobe
|
|
type: object
|
|
imageRepoSecret:
|
|
description: |-
|
|
LocalObjectReference contains enough information to let you locate the
|
|
referenced object inside the same namespace.
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
serviceAccountName:
|
|
type: string
|
|
tolerations:
|
|
description: tolerations define which tolerations should be added
|
|
for every load/unload pod running on the node
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
type: string
|
|
type: object
|
|
type: array
|
|
required:
|
|
- config
|
|
- name
|
|
- namespace
|
|
- serviceAccountName
|
|
type: object
|
|
type: array
|
|
type: object
|
|
status:
|
|
description: |-
|
|
NodeModuleConfigStatus is the most recently observed status of the KMM modules on node.
|
|
It is populated by the system and is read-only.
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
|
properties:
|
|
modules:
|
|
description: Modules contain observations about each Module's node state
|
|
status
|
|
items:
|
|
properties:
|
|
bootId:
|
|
type: string
|
|
config:
|
|
properties:
|
|
containerImage:
|
|
type: string
|
|
imagePullPolicy:
|
|
default: IfNotPresent
|
|
description: PullPolicy describes a policy for if/when to
|
|
pull a container image
|
|
type: string
|
|
inTreeModuleToRemove:
|
|
type: string
|
|
inTreeModulesToRemove:
|
|
items:
|
|
type: string
|
|
type: array
|
|
insecurePull:
|
|
description: When InsecurePull is true, the container image
|
|
can be pulled without TLS.
|
|
type: boolean
|
|
kernelVersion:
|
|
type: string
|
|
modprobe:
|
|
properties:
|
|
args:
|
|
description: |-
|
|
Args is an optional list of arguments to be passed to modprobe before the name of the kernel module.
|
|
The resulting commands will be: `modprobe ${Args} module_name`.
|
|
properties:
|
|
load:
|
|
description: Load is an optional list of arguments
|
|
to be used when loading the kernel module.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
unload:
|
|
description: Unload is an optional list of arguments
|
|
to be used when unloading the kernel module.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
type: object
|
|
dirName:
|
|
default: /opt
|
|
description: |-
|
|
DirName is the root directory for modules.
|
|
It adds `-d ${DirName}` to the modprobe command-line.
|
|
type: string
|
|
firmwarePath:
|
|
description: |-
|
|
FirmwarePath is the path of the firmware(s).
|
|
The firmware(s) will be copied to the host for the kernel to find them.
|
|
type: string
|
|
moduleName:
|
|
description: |-
|
|
ModuleName is the name of the Module to be loaded.
|
|
This field can only be unset if rawArgs is set.
|
|
type: string
|
|
modulesLoadingOrder:
|
|
description: |-
|
|
ModulesLoadingOrder defines the dependency between kernel modules loading, in case
|
|
it was not created by depmod (independent kernel modules).
|
|
The list order should be: upmost module, then the module it depends on and so on.
|
|
Example: if moduleA depends on first loading moduleB, and moduleB depends on first loading moduleC
|
|
the entry should look:
|
|
ModulesLoadingOrder:
|
|
- moduleA
|
|
- moduleB
|
|
- moduleC
|
|
In order to load all 3 modules, moduleA shoud be defined in the ModuleName parameter of this struct
|
|
items:
|
|
type: string
|
|
type: array
|
|
parameters:
|
|
description: |-
|
|
Parameters is an optional list of kernel module parameters to be provided to modprobe.
|
|
They should be in the form of key=value and will be separated by spaces in the modprobe command.
|
|
The resulting loading command will be: `modprobe module_name ${Parameters}`.
|
|
items:
|
|
type: string
|
|
type: array
|
|
rawArgs:
|
|
description: |-
|
|
If RawArgs are specified, they are passed straight to the modprobe binary; all other properties in this
|
|
object are ignored.
|
|
The resulting commands will be: `modprobe ${RawArgs}`.
|
|
properties:
|
|
load:
|
|
description: Load is an optional list of arguments
|
|
to be used when loading the kernel module.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
unload:
|
|
description: Unload is an optional list of arguments
|
|
to be used when unloading the kernel module.
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
type: array
|
|
type: object
|
|
type: object
|
|
required:
|
|
- containerImage
|
|
- imagePullPolicy
|
|
- insecurePull
|
|
- kernelVersion
|
|
- modprobe
|
|
type: object
|
|
imageRepoSecret:
|
|
description: |-
|
|
LocalObjectReference contains enough information to let you locate the
|
|
referenced object inside the same namespace.
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
lastTransitionTime:
|
|
format: date-time
|
|
type: string
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
serviceAccountName:
|
|
type: string
|
|
tolerations:
|
|
description: tolerations define which tolerations should be added
|
|
for every load/unload pod running on the node
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
type: string
|
|
type: object
|
|
type: array
|
|
required:
|
|
- name
|
|
- namespace
|
|
- serviceAccountName
|
|
type: object
|
|
type: array
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
status:
|
|
acceptedNames:
|
|
kind: ""
|
|
plural: ""
|
|
conditions: []
|
|
storedVersions: []
|