--- # 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 using the matching 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 using the matching 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: []