Skip to content

Commit

Permalink
add kubernetes-sigs/kernel-module-management
Browse files Browse the repository at this point in the history
Signed-off-by: Sebastian Hoß <[email protected]>
  • Loading branch information
sebhoss committed Apr 5, 2024
1 parent 1243fa1 commit 9979bc3
Show file tree
Hide file tree
Showing 16 changed files with 4,765 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -791,6 +791,10 @@ Files: crd-catalog/kubernetes-sigs/jobset/*
Copyright: The kubernetes-sigs/jobset Authors
License: Apache-2.0

Files: crd-catalog/kubernetes-sigs/kernel-module-management/*
Copyright: The kubernetes-sigs/kernel-module-management Authors
License: Apache-2.0

Files: crd-catalog/kubernetes-sigs/kueue/*
Copyright: The kubernetes-sigs/kueue Authors
License: Apache-2.0
Expand Down
9 changes: 9 additions & 0 deletions code-generator/src/catalog.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1979,6 +1979,15 @@ pub const CRD_V1_SOURCES: &'static [UpstreamSource] = &[
"https://github.com/kubernetes-sigs/jobset/blob/main/config/components/crd/bases/jobset.x-k8s.io_jobsets.yaml",
],
},
UpstreamSource {
project_name: "kubernetes-sigs/kernel-module-management",
license: APACHE_V2,
urls: &[
"https://github.com/kubernetes-sigs/kernel-module-management/blob/main/config/crd/bases/kmm.sigs.x-k8s.io_modules.yaml",
"https://github.com/kubernetes-sigs/kernel-module-management/blob/main/config/crd/bases/kmm.sigs.x-k8s.io_nodemodulesconfigs.yaml",
"https://github.com/kubernetes-sigs/kernel-module-management/blob/main/config/crd/bases/kmm.sigs.x-k8s.io_preflightvalidations.yaml",
],
},
UpstreamSource {
project_name: "kubernetes-sigs/kueue",
license: APACHE_V2,
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
apiVersion: "apiextensions.k8s.io/v1"
kind: "CustomResourceDefinition"
metadata:
annotations:
controller-gen.kubebuilder.io/version: "v0.14.0"
name: "nodemodulesconfigs.kmm.sigs.x-k8s.io"
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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore 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\nMore 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\non the node"
items:
properties:
config:
properties:
containerImage:
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.\nThe 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.\nIt adds `-d ${DirName}` to the modprobe command-line."
type: "string"
firmwarePath:
description: "FirmwarePath is the path of the firmware(s).\nThe 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.\nThis field can only be unset if rawArgs is set."
type: "string"
modulesLoadingOrder:
description: "ModulesLoadingOrder defines the dependency between kernel modules loading, in case\nit was not created by depmod (independent kernel modules).\nThe list order should be: upmost module, then the module it depends on and so on.\nExample: if moduleA depends on first loading moduleB, and moduleB depends on first loading moduleC\nthe entry should look:\nModulesLoadingOrder:\n - moduleA\n - moduleB\n - moduleC\nIn 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.\nThey should be in the form of key=value and will be separated by spaces in the modprobe command.\nThe 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\nobject are ignored.\nThe 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"
- "insecurePull"
- "kernelVersion"
- "modprobe"
type: "object"
imageRepoSecret:
description: "LocalObjectReference contains enough information to let you locate the\nreferenced object inside the same namespace."
properties:
name:
description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?"
type: "string"
type: "object"
x-kubernetes-map-type: "atomic"
name:
type: "string"
namespace:
type: "string"
serviceAccountName:
type: "string"
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.\nIt is populated by the system and is read-only.\nMore 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:
config:
properties:
containerImage:
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.\nThe 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.\nIt adds `-d ${DirName}` to the modprobe command-line."
type: "string"
firmwarePath:
description: "FirmwarePath is the path of the firmware(s).\nThe 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.\nThis field can only be unset if rawArgs is set."
type: "string"
modulesLoadingOrder:
description: "ModulesLoadingOrder defines the dependency between kernel modules loading, in case\nit was not created by depmod (independent kernel modules).\nThe list order should be: upmost module, then the module it depends on and so on.\nExample: if moduleA depends on first loading moduleB, and moduleB depends on first loading moduleC\nthe entry should look:\nModulesLoadingOrder:\n - moduleA\n - moduleB\n - moduleC\nIn 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.\nThey should be in the form of key=value and will be separated by spaces in the modprobe command.\nThe 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\nobject are ignored.\nThe 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"
- "insecurePull"
- "kernelVersion"
- "modprobe"
type: "object"
imageRepoSecret:
description: "LocalObjectReference contains enough information to let you locate the\nreferenced object inside the same namespace."
properties:
name:
description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?"
type: "string"
type: "object"
x-kubernetes-map-type: "atomic"
lastTransitionTime:
format: "date-time"
type: "string"
name:
type: "string"
namespace:
type: "string"
serviceAccountName:
type: "string"
required:
- "name"
- "namespace"
- "serviceAccountName"
type: "object"
type: "array"
type: "object"
type: "object"
served: true
storage: true
subresources:
status: {}
Loading

0 comments on commit 9979bc3

Please sign in to comment.