first commit

This commit is contained in:
2025-12-16 17:56:13 +11:00
commit 2da0e4f030
70 changed files with 11317 additions and 0 deletions

View File

@@ -0,0 +1,449 @@
---
# 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: []