Documentation
¶
Index ¶
- Variables
- type CommonConfigSpec
- type ConfigManagerSpec
- type DRADriverSpec
- type DaemonSetUpgradeSpec
- type DeploymentStatus
- type DeviceConfig
- type DeviceConfigList
- type DeviceConfigSpec
- type DeviceConfigStatus
- type DevicePluginSpec
- type DrainSpec
- type DriverSpec
- type DriverUpgradePolicySpec
- type ImageBuildSpec
- type ImageSignSpec
- type KernelModuleConfigSpec
- type KubeRbacConfig
- type LogsLocationConfig
- type MetricsConfig
- type MetricsExporterSpec
- type ModuleStatus
- type PodDeletionSpec
- type PrometheusConfig
- type RegistryTLS
- type RemediationWorkflowSpec
- type RemediationWorkflowStatus
- type RemediationWorkflowStatusList
- type ServiceMonitorConfig
- type ServiceType
- type StaticAuthConfig
- type TestRunnerSpec
- type UpgradeState
- type UtilsContainerSpec
- type VFIOConfigSpec
- type WorkflowMetadata
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "amd.com", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type CommonConfigSpec ¶
type CommonConfigSpec struct {
// InitContainerImage is being used for the operands pods, i.e. metrics exporter, test runner, device plugin, device config manager and node labeller
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="InitContainerImage",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:initContainerImage"}
// +optional
InitContainerImage string `json:"initContainerImage,omitempty"`
// ImageRegistrySecrets are global secrets used for pull/push images from/to private registries.
// These secrets will be applied to all component pods (device plugin, metrics exporter,
// test runner, config manager, DRA driver, node labeller) in addition to component-specific secrets.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageRegistrySecrets",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageRegistrySecrets"}
// +optional
ImageRegistrySecrets []v1.LocalObjectReference `json:"imageRegistrySecrets,omitempty"`
// UtilsContainer contains parameters to configure operator's utils container
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UtilsContainer",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:utilsContainer"}
// +optional
UtilsContainer UtilsContainerSpec `json:"utilsContainer,omitempty"`
}
CommonConfigSpec contains the common config across operator and operands
func (*CommonConfigSpec) DeepCopy ¶
func (in *CommonConfigSpec) DeepCopy() *CommonConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonConfigSpec.
func (*CommonConfigSpec) DeepCopyInto ¶
func (in *CommonConfigSpec) DeepCopyInto(out *CommonConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigManagerSpec ¶ added in v1.4.0
type ConfigManagerSpec struct {
// enable config manager, disabled by default
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
// +optional
Enable *bool `json:"enable,omitempty"`
// config manager image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Image",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:image"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
Image string `json:"image,omitempty"`
// image pull policy for config manager
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImagePullPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imagePullPolicy"}
// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
// +optional
ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
// config manager image registry secret used to pull/push images
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageRegistrySecret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageRegistrySecret"}
// +optional
ImageRegistrySecret *v1.LocalObjectReference `json:"imageRegistrySecret,omitempty"`
// ConfigMap holding DCM config.json. When set, the operator mounts this ConfigMap and does not create it.
// When omitted or name is empty, the operator mounts ConfigMap "default-dcm-config" and creates it in the
// DeviceConfig namespace if it does not already exist (same default payload as chart defaultDCMConfigMap).
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Config",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:configmap"}
// +optional
Config *v1.LocalObjectReference `json:"config,omitempty"`
// Selector describes on which nodes to enable config manager
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Selector",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:selector"}
// +optional
Selector map[string]string `json:"selector,omitempty"`
// upgrade policy for config manager daemonset
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UpgradePolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:upgradePolicy"}
// +optional
UpgradePolicy *DaemonSetUpgradeSpec `json:"upgradePolicy,omitempty"`
// tolerations for the device config manager DaemonSet
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ConfigManagerTolerations",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:configManagerTolerations"}
// +optional
ConfigManagerTolerations []v1.Toleration `json:"configManagerTolerations,omitempty"`
}
func (*ConfigManagerSpec) DeepCopy ¶ added in v1.4.0
func (in *ConfigManagerSpec) DeepCopy() *ConfigManagerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigManagerSpec.
func (*ConfigManagerSpec) DeepCopyInto ¶ added in v1.4.0
func (in *ConfigManagerSpec) DeepCopyInto(out *ConfigManagerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DRADriverSpec ¶ added in v1.5.0
type DRADriverSpec struct {
// enable DRA driver, disabled by default
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
// +optional
// +kubebuilder:default=false
Enable *bool `json:"enable,omitempty"`
// DRA driver image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Image",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:image"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
Image string `json:"image,omitempty"`
// image pull policy for DRA driver
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImagePullPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imagePullPolicy"}
// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
// +optional
ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
// tolerations for the DRA driver DaemonSet
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tolerations",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:tolerations"}
// +optional
Tolerations []v1.Toleration `json:"tolerations,omitempty"`
// DRA driver image registry secret used to pull/push images
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageRegistrySecret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageRegistrySecret"}
// +optional
ImageRegistrySecret *v1.LocalObjectReference `json:"imageRegistrySecret,omitempty"`
// upgrade policy for DRA driver daemon
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UpgradePolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:upgradePolicy"}
// +optional
UpgradePolicy *DaemonSetUpgradeSpec `json:"upgradePolicy,omitempty"`
// arguments is used to pass supported flags and their values while starting DRA driver daemonset
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DRADriverArguments",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:cmdLineArguments"}
// +optional
CmdLineArguments map[string]string `json:"cmdLineArguments,omitempty"`
// Selector describes on which nodes to enable DRA driver
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Selector",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:selector"}
// +optional
Selector map[string]string `json:"selector,omitempty"`
}
func (*DRADriverSpec) DeepCopy ¶ added in v1.5.0
func (in *DRADriverSpec) DeepCopy() *DRADriverSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DRADriverSpec.
func (*DRADriverSpec) DeepCopyInto ¶ added in v1.5.0
func (in *DRADriverSpec) DeepCopyInto(out *DRADriverSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DRADriverSpec) IsEnabled ¶ added in v1.5.0
func (d *DRADriverSpec) IsEnabled() bool
IsEnabled returns true if the DRA driver is explicitly enabled. When Enable is nil (not set), defaults to false (opt-in).
type DaemonSetUpgradeSpec ¶
type DaemonSetUpgradeSpec struct {
// UpgradeStrategy specifies the type of the DaemonSet update. Valid values are "RollingUpdate" (default) or "OnDelete".
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UpgradeStrategy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:upgradeStrategy"}
// +kubebuilder:validation:Enum=RollingUpdate;OnDelete
// +optional
UpgradeStrategy string `json:"upgradeStrategy,omitempty"`
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="MaxUnavailable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:maxUnavailable"}
// +kubebuilder:default=1
MaxUnavailable int32 `json:"maxUnavailable,omitempty"`
}
func (*DaemonSetUpgradeSpec) DeepCopy ¶
func (in *DaemonSetUpgradeSpec) DeepCopy() *DaemonSetUpgradeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpgradeSpec.
func (*DaemonSetUpgradeSpec) DeepCopyInto ¶
func (in *DaemonSetUpgradeSpec) DeepCopyInto(out *DaemonSetUpgradeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeploymentStatus ¶
type DeploymentStatus struct {
// number of nodes that are targeted by the DeviceConfig selector
//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="NodesMatchingSelectorNumber",xDescriptors="urn:alm:descriptor:com.amd.deviceconfigs:nodesMatchingSelectorNumber"
NodesMatchingSelectorNumber int32 `json:"nodesMatchingSelectorNumber,omitempty"`
// number of the pods that should be deployed for daemonset
//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="DesiredNumber",xDescriptors="urn:alm:descriptor:com.amd.deviceconfigs:desiredNumber"
DesiredNumber int32 `json:"desiredNumber,omitempty"`
// number of the actually deployed and running pods
//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="AvailableNumber",xDescriptors="urn:alm:descriptor:com.amd.deviceconfigs:availableNumber"
AvailableNumber int32 `json:"availableNumber,omitempty"`
}
DeploymentStatus contains the status for a daemonset deployed during reconciliation loop
func (*DeploymentStatus) DeepCopy ¶
func (in *DeploymentStatus) DeepCopy() *DeploymentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.
func (*DeploymentStatus) DeepCopyInto ¶
func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeviceConfig ¶
type DeviceConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec DeviceConfigSpec `json:"spec,omitempty"`
Status DeviceConfigStatus `json:"status,omitempty"`
}
DeviceConfig describes how to enable AMD GPU device +operator-sdk:csv:customresourcedefinitions:displayName="DeviceConfig",resources={{Module,v1beta1,modules.kmm.sigs.x-k8s.io},{Daemonset,v1,apps},{services,v1,core},{Pod,v1,core}}
func (*DeviceConfig) DeepCopy ¶
func (in *DeviceConfig) DeepCopy() *DeviceConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceConfig.
func (*DeviceConfig) DeepCopyInto ¶
func (in *DeviceConfig) DeepCopyInto(out *DeviceConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DeviceConfig) DeepCopyObject ¶
func (in *DeviceConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DeviceConfigList ¶
type DeviceConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []DeviceConfig `json:"items"`
}
DeviceConfigList contains a list of DeviceConfigs
func (*DeviceConfigList) DeepCopy ¶
func (in *DeviceConfigList) DeepCopy() *DeviceConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceConfigList.
func (*DeviceConfigList) DeepCopyInto ¶
func (in *DeviceConfigList) DeepCopyInto(out *DeviceConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DeviceConfigList) DeepCopyObject ¶
func (in *DeviceConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DeviceConfigSpec ¶
type DeviceConfigSpec struct {
// driver
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Driver",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:driver"}
// +optional
Driver DriverSpec `json:"driver,omitempty"`
// metrics exporter
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="MetricsExporter",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:metricsExporter"}
// +optional
MetricsExporter MetricsExporterSpec `json:"metricsExporter,omitempty"`
// config manager
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ConfigManager",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:configManager"}
// +optional
ConfigManager ConfigManagerSpec `json:"configManager,omitempty"`
// device plugin
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DevicePlugin",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:devicePlugin"}
// +optional
DevicePlugin DevicePluginSpec `json:"devicePlugin,omitempty"`
// dra driver
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DRADriver",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:draDriver"}
// +optional
DRADriver DRADriverSpec `json:"draDriver,omitempty"`
// test runner
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TestRunner",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:testRunner"}
// +optional
TestRunner TestRunnerSpec `json:"testRunner,omitempty"`
// common config
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="CommonConfig",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:commonConfig"}
// +optional
CommonConfig CommonConfigSpec `json:"commonConfig,omitempty"`
// Selector describes on which nodes the GPU Operator should enable the GPU device.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Selector",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:selector"}
// +optional
Selector map[string]string `json:"selector,omitempty"`
// remediation workflow
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="RemediationWorkflow",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:remediationWorkflow"}
// +optional
RemediationWorkflow RemediationWorkflowSpec `json:"remediationWorkflow,omitempty"`
}
DeviceConfigSpec describes how the AMD GPU operator should enable AMD GPU device for customer's use.
func (*DeviceConfigSpec) DeepCopy ¶
func (in *DeviceConfigSpec) DeepCopy() *DeviceConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceConfigSpec.
func (*DeviceConfigSpec) DeepCopyInto ¶
func (in *DeviceConfigSpec) DeepCopyInto(out *DeviceConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeviceConfigStatus ¶
type DeviceConfigStatus struct {
// DevicePlugin contains the status of the Device Plugin deployment
DevicePlugin DeploymentStatus `json:"devicePlugin,omitempty"`
// Driver contains the status of the Drivers deployment
Drivers DeploymentStatus `json:"driver,omitempty"`
// MetricsExporter contains the status of the MetricsExporter deployment
MetricsExporter DeploymentStatus `json:"metricsExporter,omitempty"`
// ConfigManager contains the status of the ConfigManager deployment
ConfigManager DeploymentStatus `json:"configManager,omitempty"`
// RemediationWorkflow contains the status of the RemediationWorkflow deployment
RemediationWorkflow DeploymentStatus `json:"remediationWorkflow,omitempty"`
// NodeModuleStatus contains per node status of driver module installation
//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="NodeModuleStatus",xDescriptors="urn:alm:descriptor:com.amd.deviceconfigs:nodeModuleStatus"
NodeModuleStatus map[string]ModuleStatus `json:"nodeModuleStatus,omitempty"`
// Conditions list the current status of the DeviceConfig object
Conditions []metav1.Condition `json:"conditions,omitempty"`
// ObservedGeneration is the latest spec generation successfully processed by the controller
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
DeviceConfigStatus defines the observed state of Module.
func (*DeviceConfigStatus) DeepCopy ¶
func (in *DeviceConfigStatus) DeepCopy() *DeviceConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceConfigStatus.
func (*DeviceConfigStatus) DeepCopyInto ¶
func (in *DeviceConfigStatus) DeepCopyInto(out *DeviceConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DevicePluginSpec ¶
type DevicePluginSpec struct {
// enable Device Plugin, enabled by default
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="EnableDevicePlugin",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enableDevicePlugin"}
// +optional
// +kubebuilder:default=true
EnableDevicePlugin *bool `json:"enableDevicePlugin,omitempty"`
// device plugin image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DevicePluginImage",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:devicePluginImage"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
DevicePluginImage string `json:"devicePluginImage,omitempty"`
// image pull policy for device plugin
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DevicePluginImagePullPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:DevicePluginImagePullPolicy"}
// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
// +optional
DevicePluginImagePullPolicy string `json:"devicePluginImagePullPolicy,omitempty"`
// tolerations for the device plugin DaemonSet
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DevicePluginTolerations",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:devicePluginTolerations"}
// +optional
DevicePluginTolerations []v1.Toleration `json:"devicePluginTolerations,omitempty"`
// device plugin arguments is used to pass supported flags and their values while starting device plugin daemonset
// supported flag values: {"resource_naming_strategy": {"single", "mixed"}}
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DevicePluginArguments",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:devicePluginArguments"}
// +optional
DevicePluginArguments map[string]string `json:"devicePluginArguments,omitempty"`
// node labeller image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="NodeLabellerImage",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:nodeLabellerImage"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
NodeLabellerImage string `json:"nodeLabellerImage,omitempty"`
// image pull policy for node labeller
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="NodeLabellerImagePullPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:NodeLabellerImagePullPolicy"}
// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
// +optional
NodeLabellerImagePullPolicy string `json:"nodeLabellerImagePullPolicy,omitempty"`
// tolerations for the node labeller DaemonSet
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="NodeLabellerTolerations",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:nodeLabellerTolerations"}
// +optional
NodeLabellerTolerations []v1.Toleration `json:"nodeLabellerTolerations,omitempty"`
// node labeller arguments is used to pass supported labels while starting node labeller daemonset
// some flags are enabled by default as they are applicable and bare minimum for all setups and are supported in all versions of node labeller
// default flags: {"vram", "cu-count", "simd-count", "device-id", "family", "product-name", "driver-version"}
// supported flags: {"compute-memory-partition", "compute-partitioning-supported", "memory-partitioning-supported"}
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="NodeLabellerArguments",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:nodeLabellerArguments"}
// +optional
NodeLabellerArguments []string `json:"nodeLabellerArguments,omitempty"`
// node labeller image registry secret used to pull/push images
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageRegistrySecret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageRegistrySecret"}
// +optional
ImageRegistrySecret *v1.LocalObjectReference `json:"imageRegistrySecret,omitempty"`
// enable or disable the node labeller
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="EnableNodeLabeller",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enableNodeLabeller"}
// +kubebuilder:default=true
EnableNodeLabeller *bool `json:"enableNodeLabeller,omitempty"`
// upgrade policy for device plugin and node labeller daemons
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UpgradePolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:upgradePolicy"}
// +optional
UpgradePolicy *DaemonSetUpgradeSpec `json:"upgradePolicy,omitempty"`
// KubeletSocketPath specifies the kubelet device plugins directory path.
// Useful for Kubernetes distributions like microk8s, k3s where the path differs from the standard.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="KubeletSocketPath",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:kubeletSocketPath"}
// +optional
// +kubebuilder:validation:Pattern=`^(/[^/\0]+)*(/)?$`
// +kubebuilder:default="/var/lib/kubelet/device-plugins"
KubeletSocketPath string `json:"kubeletSocketPath,omitempty"`
// HostNetwork specifies whether to use host network namespace for the device plugin DaemonSet pods.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="HostNetwork",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:hostNetwork"}
// +optional
HostNetwork *bool `json:"hostNetwork,omitempty"`
}
func (*DevicePluginSpec) DeepCopy ¶
func (in *DevicePluginSpec) DeepCopy() *DevicePluginSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DevicePluginSpec.
func (*DevicePluginSpec) DeepCopyInto ¶
func (in *DevicePluginSpec) DeepCopyInto(out *DevicePluginSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DevicePluginSpec) IsEnabled ¶ added in v1.5.0
func (d *DevicePluginSpec) IsEnabled() bool
IsEnabled returns true if the device plugin is explicitly enabled.
type DrainSpec ¶
type DrainSpec struct {
// Force indicates if force draining is allowed
// +optional
// +kubebuilder:default:=false
Force *bool `json:"force,omitempty"`
// TimeoutSecond specifies the length of time in seconds to wait before giving up drain, zero means infinite
// +optional
// +kubebuilder:default:=300
// +kubebuilder:validation:Minimum:=0
TimeoutSeconds int `json:"timeoutSeconds,omitempty"`
// GracePeriodSeconds indicates the time kubernetes waits for a pod to shut down gracefully after receiving a termination signal
// +optional
// +kubebuilder:default:=-1
GracePeriodSeconds int `json:"gracePeriodSeconds,omitempty"`
// IgnoreDaemonSets indicates whether to ignore DaemonSet-managed pods
// +optional
// +kubebuilder:default:=true
IgnoreDaemonSets *bool `json:"ignoreDaemonSets,omitempty"`
// IgnoreNamespaces is the list of namespaces to ignore during node drain operation.
// This is useful to avoid draining pods from critical namespaces like 'kube-system', etc.
// +optional
IgnoreNamespaces []string `json:"ignoreNamespaces,omitempty"`
}
func (*DrainSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DrainSpec.
func (*DrainSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DriverSpec ¶
type DriverSpec struct {
// enable driver install. default value is true.
// disable is for skipping driver install/uninstall for dryrun or using in-tree amdgpu kernel module
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
// +kubebuilder:default=true
Enable *bool `json:"enable,omitempty"`
// specify the type of driver (container/vf-passthrough/pf-passthrough) to install on the worker node. default value is container.
// container: normal amdgpu-dkms driver for Bare Metal GPU nodes or guest VM.
// vf-passthrough: MxGPU GIM driver on the host machine to generate VF, then mount VF to vfio-pci
// pf-passthrough: directly mount PF device to vfio-pci
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DriverType",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:driverType"}
// +kubebuilder:validation:Enum=container;vf-passthrough;pf-passthrough
// +kubebuilder:default=container
DriverType string `json:"driverType,omitempty"`
// vfio config
// specify the specific configs for binding PCI devices to vfio-pci kernel module, applies for driver type vf-passthrough and pf-passthrough
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="VFIOConfig",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:vfioConfig"}
// +optional
VFIOConfig VFIOConfigSpec `json:"vfioConfig,omitempty"`
// advanced arguments, parameters and more configs to manage tne driver
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="KernelModuleConfig",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:kernelModuleConfig"}
// +optional
KernelModuleConfig KernelModuleConfigSpec `json:"kernelModuleConfig,omitempty"`
// blacklist amdgpu drivers on the host. Node reboot is required to apply the baclklist on the worker nodes.
// Not working for OpenShift cluster. OpenShift users please use the Machine Config Operator (MCO) resource to configure amdgpu blacklist.
// Example MCO resource is available at https://instinct.docs.amd.com/projects/gpu-operator/en/latest/installation/openshift-olm.html#create-blacklist-for-installing-out-of-tree-kernel-module
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="BlacklistDrivers",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:blacklistDrivers"}
Blacklist *bool `json:"blacklist,omitempty"`
// NOTE: currently only for OpenShift cluster
// set to true to use source image to build driver image on the fly
// otherwise use installer debian/rpm packages from radeon repo to build driver image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UseSourceImage",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:useSourceImage"}
UseSourceImage *bool `json:"useSourceImage,omitempty"`
// radeon repo URL for fetching amdgpu installer if building driver image on the fly
// installer URL is https://repo.radeon.com/amdgpu-install by default
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="AMDGPUInstallerRepoURL",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:amdgpuInstallerRepoURL"}
// +optional
AMDGPUInstallerRepoURL string `json:"amdgpuInstallerRepoURL,omitempty"`
// version of the drivers source code, can be used as part of image of dockerfile source image
// default value for different OS is: ubuntu: 6.1.3, coreOS: 6.2.2
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Version",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:version"}
// +optional
Version string `json:"version,omitempty"`
// defines image that includes drivers and firmware blobs, don't include tag since it will be fully managed by operator
// for vanilla k8s the default value is image-registry:5000/$MOD_NAMESPACE/amdgpu_kmod
// for OpenShift the default value is image-registry.openshift-image-registry.svc:5000/$MOD_NAMESPACE/amdgpu_kmod
// image tag will be in the format of <linux distro>-<release version>-<kernel version>-<driver version>
// example tag is coreos-416.94-5.14.0-427.28.1.el9_4.x86_64-6.2.2 and ubuntu-22.04-5.15.0-94-generic-6.1.3
// NOTE: Updating the driver image repository is not supported. Please delete the existing DeviceConfig and create a new one with the updated image repository
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Image",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:image"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[$a-zA-Z0-9_]+(?:[._-][$a-zA-Z0-9_]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
Image string `json:"image,omitempty"`
// driver image registry TLS setting for the container image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageRegistryTLS",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageRegistryTLS"}
// +optional
ImageRegistryTLS RegistryTLS `json:"imageRegistryTLS,omitempty"`
// secrets used for pull/push images from/to private registry specified in driversImage
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageRegistrySecret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageRegistrySecret"}
// +optional
ImageRegistrySecret *v1.LocalObjectReference `json:"imageRegistrySecret,omitempty"`
// image signing config to sign the driver image when building driver image on the fly
// image signing is required for installing driver on secure boot enabled system
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageSign",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageSign"}
// +optional
ImageSign ImageSignSpec `json:"imageSign,omitempty"`
// image build configs
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageBuild",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageBuild"}
// +optional
ImageBuild ImageBuildSpec `json:"imageBuild,omitempty"`
// policy to upgrade the drivers
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UpgradePolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:upgradePolicy"}
// +optional
UpgradePolicy *DriverUpgradePolicySpec `json:"upgradePolicy,omitempty"`
// tolerations for kmm module object
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tolerations",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:tolerations"}
// +optional
Tolerations []v1.Toleration `json:"tolerations,omitempty"`
}
func (*DriverSpec) DeepCopy ¶
func (in *DriverSpec) DeepCopy() *DriverSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DriverSpec.
func (*DriverSpec) DeepCopyInto ¶
func (in *DriverSpec) DeepCopyInto(out *DriverSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DriverUpgradePolicySpec ¶
type DriverUpgradePolicySpec struct {
// enable upgrade policy, disabled by default
// If disabled, user has to manually upgrade all the nodes.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
// +optional
Enable *bool `json:"enable,omitempty"`
// MaxParallelUpgrades indicates how many nodes can be upgraded in parallel
// 0 means no limit, all nodes will be upgraded in parallel
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="MaxParallelUpgrades",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:maxParallelUpgrades"}
// +optional
// +kubebuilder:default:=1
// +kubebuilder:validation:Minimum:=0
MaxParallelUpgrades int `json:"maxParallelUpgrades,omitempty"`
// Value can be an integer (ex: 2) which would mean atmost 2 nodes can be in failed state after which new upgrades will not start. Or it can be a percentage string(ex: "50%") from which absolute number will be calculated and round up
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="MaxUnavailableNodes",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:maxUnavailableNodes"}
// +optional
// +kubebuilder:default:="25%"
MaxUnavailableNodes intstr.IntOrString `json:"maxUnavailableNodes,omitempty"`
// Node draining policy
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="NodeDrainPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:nodeDrainPolicy"}
// +optional
NodeDrainPolicy *DrainSpec `json:"nodeDrainPolicy,omitempty"`
// Pod Deletion policy. If both NodeDrainPolicy and PodDeletionPolicy config is available, NodeDrainPolicy(if enabled) will take precedence.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="PodDeletionPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:podDeletionPolicy"}
// +optional
PodDeletionPolicy *PodDeletionSpec `json:"podDeletionPolicy,omitempty"`
// reboot between driver upgrades, enabled by default, if enabled spec.commonConfig.utilsContainer will be used to perform reboot on worker nodes
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="RebootRequired",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:rebootRequired"}
// +optional
// +kubebuilder:default:=true
RebootRequired *bool `json:"rebootRequired,omitempty"`
}
func (*DriverUpgradePolicySpec) DeepCopy ¶
func (in *DriverUpgradePolicySpec) DeepCopy() *DriverUpgradePolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DriverUpgradePolicySpec.
func (*DriverUpgradePolicySpec) DeepCopyInto ¶
func (in *DriverUpgradePolicySpec) DeepCopyInto(out *DriverUpgradePolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageBuildSpec ¶ added in v1.4.0
type ImageBuildSpec struct {
// image registry to fetch base image for building driver image, default value is docker.io, the builder will search for corresponding OS base image from given registry
// e.g. if your worker node is using Ubuntu 22.04, by default the base image would be docker.io/ubuntu:22.04
// Use spec.driver.imageRegistrySecret for authentication with private registries.
// NOTE: this field won't apply for OpenShift since OpenShift is using its own DriverToolKit image to build driver image
// +kubebuilder:default=docker.io
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="BaseImageRegistry",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:baseImageRegistry"}
BaseImageRegistry string `json:"baseImageRegistry,omitempty"`
// SourceImageRepo specifies the image repository for the driver source code (OpenShift only).
// Used when spec.driver.useSourceImage is true. The operator automatically determines the image tag
// based on cluster RHEL version and spec.driver.version (format: coreos-<rhel>-<driver version>).
// Default: docker.io/rocm/amdgpu-driver
// Use spec.driver.imageRegistrySecret for authentication with private registries.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="SourceImageRepo",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:sourceImageRepo"}
SourceImageRepo string `json:"sourceImageRepo,omitempty"`
// PackageRepoURL specifies the full URL to the package repository used during driver image build.
// When specified, this URL completely overrides the default URL constructed from spec.driver.amdgpuInstallerRepoURL.
// This is useful when the package repository does not follow the standard repo.radeon.com URL scheme,
// or when using a custom mirror/proxy that requires a different URL structure.
// The URL should point directly to the repository base (without trailing slash).
// Examples:
// - For Ubuntu: "https://custom-mirror.example.com/repos/amdgpu/6.1.3/ubuntu jammy main"
// This will be used as: "deb [arch=amd64 ...] ${PACKAGE_REPO_URL}"
// - For CoreOS/RHEL: "https://custom-mirror.example.com/repos/amdgpu/6.2.2/el/9.4/main/x86_64"
// This will be used as: "baseurl=${PACKAGE_REPO_URL}"
// When empty (default), the URL is constructed as: ${amdgpuInstallerRepoURL}/amdgpu/${DRIVERS_VERSION}/${os}/${distro}
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="PackageRepoURL",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:packageRepoURL"}
// +optional
PackageRepoURL string `json:"packageRepoURL,omitempty"`
// GPGKeyURL specifies the full URL to the GPG key used to verify packages during driver image build.
// When specified, this URL completely overrides the default GPG key URL.
// This is useful when using a custom package repository that has its own GPG key,
// or when the GPG key location does not follow the standard repo.radeon.com scheme.
// Examples:
// - "https://custom-mirror.example.com/keys/amdgpu.gpg.key"
// - "https://repo.example.com/rocm/rocm.gpg.key"
// When empty (default), the URL is constructed as: ${amdgpuInstallerRepoURL}/rocm/rocm.gpg.key
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="GPGKeyURL",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:gpgKeyURL"}
// +optional
GPGKeyURL string `json:"gpgKeyURL,omitempty"`
// TLS settings for fetching base image
// this field will be applied to SourceImageRepo as well
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="BaseImageRegistryTLS",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:baseImageRegistryTLS"}
BaseImageRegistryTLS RegistryTLS `json:"baseImageRegistryTLS,omitempty"`
}
func (*ImageBuildSpec) DeepCopy ¶ added in v1.4.0
func (in *ImageBuildSpec) DeepCopy() *ImageBuildSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageBuildSpec.
func (*ImageBuildSpec) DeepCopyInto ¶ added in v1.4.0
func (in *ImageBuildSpec) DeepCopyInto(out *ImageBuildSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageSignSpec ¶
type ImageSignSpec struct {
// ImageSignKeySecret the private key used to sign kernel modules within image
// necessary for secure boot enabled system
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageSignKeySecret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageSignKeySecret"}
// +optional
KeySecret *v1.LocalObjectReference `json:"keySecret,omitempty"`
// ImageSignCertSecret the public key used to sign kernel modules within image
// necessary for secure boot enabled system
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageSignCertSecret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageSignCertSecret"}
// +optional
CertSecret *v1.LocalObjectReference `json:"certSecret,omitempty"`
}
func (*ImageSignSpec) DeepCopy ¶
func (in *ImageSignSpec) DeepCopy() *ImageSignSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSignSpec.
func (*ImageSignSpec) DeepCopyInto ¶
func (in *ImageSignSpec) DeepCopyInto(out *ImageSignSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KernelModuleConfigSpec ¶ added in v1.4.0
type KernelModuleConfigSpec struct {
// LoadArg are the arguments when modprobe is executed to load the kernel module. The command will be `modprobe ${Args} module_name`.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="LoadArg",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:loadArg"}
// +optional
LoadArgs []string `json:"loadArgs,omitempty"`
// UnloadArg are the arguments when modprobe is executed to unload the kernel module. The command will be `modprobe -r ${Args} module_name`.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UnloadArg",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:unloadArg"}
// +optional
UnloadArgs []string `json:"unloadArgs,omitempty"`
// Parameters is being used for modprobe commands. The command will be `modprobe ${Args} module_name ${Parameters}`.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Parameters",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:parameters"}
// +optional
Parameters []string `json:"parameters,omitempty"`
}
KernelModuleConfigSpec contains the advanced configs to manage the driver kernel module
func (*KernelModuleConfigSpec) DeepCopy ¶ added in v1.4.0
func (in *KernelModuleConfigSpec) DeepCopy() *KernelModuleConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KernelModuleConfigSpec.
func (*KernelModuleConfigSpec) DeepCopyInto ¶ added in v1.4.0
func (in *KernelModuleConfigSpec) DeepCopyInto(out *KernelModuleConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeRbacConfig ¶
type KubeRbacConfig struct {
// enable kube-rbac-proxy, disabled by default
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
// +optional
Enable *bool `json:"enable,omitempty"`
// kube-rbac-proxy image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Image",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:image"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
Image string `json:"image,omitempty"`
// disable https protecting the proxy endpoint
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DisableHttps",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:disableHttps"}
// +optional
DisableHttps *bool `json:"disableHttps,omitempty"`
// certificate secret to mount in kube-rbac container for TLS, self signed certificates will be generated by default
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Secret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:secret"}
// +optional
Secret *v1.LocalObjectReference `json:"secret,omitempty"`
// Reference to a configmap containing the client CA (key: ca.crt) for mTLS client validation
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ClientCAConfigMap",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:clientCAConfigMap"}
// +optional
ClientCAConfigMap *v1.LocalObjectReference `json:"clientCAConfigMap,omitempty"`
// Optional static RBAC rules based on client certificate Common Name (CN)
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="StaticAuthorization",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:staticAuthorization"}
// +optional
StaticAuthorization *StaticAuthConfig `json:"staticAuthorization,omitempty"`
}
KubeRbacConfig contains configs for kube-rbac-proxy sidecar
func (*KubeRbacConfig) DeepCopy ¶
func (in *KubeRbacConfig) DeepCopy() *KubeRbacConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeRbacConfig.
func (*KubeRbacConfig) DeepCopyInto ¶
func (in *KubeRbacConfig) DeepCopyInto(out *KubeRbacConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LogsLocationConfig ¶
type LogsLocationConfig struct {
// volume mount destination within test runner container
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="MountPath",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:mountPath"}
// +kubebuilder:default="/var/log/amd-test-runner"
// +optional
MountPath string `json:"mountPath,omitempty"`
// host path to store test runner internal status db in order to persist test running status
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="HostPath",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:hostPath"}
// +kubebuilder:default="/var/log/amd-test-runner"
// +optional
HostPath string `json:"hostPath,omitempty"`
// LogsExportSecrets is a list of secrets that contain connectivity info to multiple cloud providers
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="LogsExportSecrets",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:logsExportSecrets"}
// +optional
LogsExportSecrets []*v1.LocalObjectReference `json:"logsExportSecrets,omitempty"`
}
LogsLocationConfig contains mount and export config for test runner logs
func (*LogsLocationConfig) DeepCopy ¶
func (in *LogsLocationConfig) DeepCopy() *LogsLocationConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsLocationConfig.
func (*LogsLocationConfig) DeepCopyInto ¶
func (in *LogsLocationConfig) DeepCopyInto(out *LogsLocationConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricsConfig ¶
type MetricsConfig struct {
// Name of the configMap that defines the list of metrics
// default list:[]
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Name",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:name"}
// +optional
Name string `json:"name,omitempty"`
}
MetricsConfig contains list of metrics to collect/report
func (*MetricsConfig) DeepCopy ¶
func (in *MetricsConfig) DeepCopy() *MetricsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsConfig.
func (*MetricsConfig) DeepCopyInto ¶
func (in *MetricsConfig) DeepCopyInto(out *MetricsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricsExporterSpec ¶
type MetricsExporterSpec struct {
// enable metrics exporter, disabled by default
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
// +optional
Enable *bool `json:"enable,omitempty"`
// metrics exporter image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Image",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:image"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
Image string `json:"image,omitempty"`
// Prometheus configuration for metrics exporter
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Prometheus",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:prometheus"}
// +optional
Prometheus *PrometheusConfig `json:"prometheus,omitempty"`
// metrics exporter image registry secret used to pull/push images
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageRegistrySecret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageRegistrySecret"}
// +optional
ImageRegistrySecret *v1.LocalObjectReference `json:"imageRegistrySecret,omitempty"`
// image pull policy for metrics exporter
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImagePullPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imagePullPolicy"}
// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
// +optional
ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
// tolerations for metrics exporter
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tolerations",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:tolerations"}
// +optional
Tolerations []v1.Toleration `json:"tolerations,omitempty"`
// Port is the internal port used for in-cluster and node access to pull metrics from the metrics-exporter (default 5000).
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Port",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:port"}
// +kubebuilder:default=5000
Port int32 `json:"port,omitempty"`
// ServiceType service type for metrics, clusterIP/NodePort, clusterIP by default
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ServiceType",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:serviceType"}
// +kubebuilder:validation:Enum=ClusterIP;NodePort
// +kubebuilder:default=ClusterIP
SvcType ServiceType `json:"serviceType,omitempty"`
// NodePort is the external port for pulling metrics from outside the cluster, in the range 30000-32767 (assigned automatically by default)
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="NodePort",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:nodePort"}
// +optional
// +kubebuilder:validation:Minimum=30000
// +kubebuilder:validation:Maximum=32767
NodePort int32 `json:"nodePort,omitempty"`
// optional configuration for metrics
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Config",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:config"}
// +optional
Config MetricsConfig `json:"config,omitempty"`
// optional kube-rbac-proxy config to provide rbac services
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="RbacConfig",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:rbacConfig"}
// +optional
RbacConfig KubeRbacConfig `json:"rbacConfig,omitempty"`
// Selector describes on which nodes to enable metrics exporter
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Selector",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:selector"}
// +optional
Selector map[string]string `json:"selector,omitempty"`
// upgrade policy for metrics exporter daemons
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UpgradePolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:upgradePolicy"}
// +optional
UpgradePolicy *DaemonSetUpgradeSpec `json:"upgradePolicy,omitempty"`
// Set the host path for pod-resource kubelet.socket,
// vanila kubernetes path is /var/lib/kubelet/pod-resources
// microk8s path is /var/snap/microk8s/common/var/lib/kubelet/pod-resources/
// path is an absolute unix path that allows a trailing slash
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="PodResourceAPISocketPath",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:podResourceAPISocketPath"}
// +optional
// +kubebuilder:validation:Pattern=`^(/[^/\0]+)*(/)?$`
// +kubebuilder:default="/var/lib/kubelet/pod-resources"
PodResourceAPISocketPath string `json:"podResourceAPISocketPath,omitempty"`
// Set resource config for metrics exporter
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resource",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:resource"}
// +optional
// +kubebuilder:default:={limits: {cpu: "2", memory: "4G"}, requests: {cpu: "500m", memory: "512M"}}
Resource *v1.ResourceRequirements `json:"resource,omitempty"`
// Set PodAnnotations for metrics exporter
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="PodAnnotations",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:podAnnotations"}
// +optional
PodAnnotations map[string]string `json:"podAnnotations,omitempty"`
// Set ServiceAnnotations for metrics exporter
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ServiceAnnotations",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:serviceAnnotations"}
// +optional
ServiceAnnotations map[string]string `json:"serviceAnnotations,omitempty"`
// HostNetwork specifies whether to use host network namespace for the metrics exporter DaemonSet pods.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="HostNetwork",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:hostNetwork"}
// +optional
HostNetwork *bool `json:"hostNetwork,omitempty"`
}
func (*MetricsExporterSpec) DeepCopy ¶
func (in *MetricsExporterSpec) DeepCopy() *MetricsExporterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsExporterSpec.
func (*MetricsExporterSpec) DeepCopyInto ¶
func (in *MetricsExporterSpec) DeepCopyInto(out *MetricsExporterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ModuleStatus ¶
type ModuleStatus struct {
ContainerImage string `json:"containerImage,omitempty"`
KernelVersion string `json:"kernelVersion,omitempty"`
LastTransitionTime string `json:"lastTransitionTime,omitempty"`
Status UpgradeState `json:"status,omitempty"`
UpgradeStartTime string `json:"upgradeStartTime,omitempty"`
BootId string `json:"bootId,omitempty"`
}
ModuleStatus contains the status of driver module installed by operator on the node
func (*ModuleStatus) DeepCopy ¶
func (in *ModuleStatus) DeepCopy() *ModuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleStatus.
func (*ModuleStatus) DeepCopyInto ¶
func (in *ModuleStatus) DeepCopyInto(out *ModuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodDeletionSpec ¶
type PodDeletionSpec struct {
// Force indicates if force deletion is allowed
// +optional
// +kubebuilder:default:=false
Force *bool `json:"force,omitempty"`
// TimeoutSecond specifies the length of time in seconds to wait before giving up on pod deletion, zero means infinite
// +optional
// +kubebuilder:default:=300
// +kubebuilder:validation:Minimum:=0
TimeoutSeconds int `json:"timeoutSeconds,omitempty"`
// GracePeriodSeconds indicates the time kubernetes waits for a pod to shut down gracefully after receiving a termination signal
// +optional
// +kubebuilder:default:=-1
GracePeriodSeconds int `json:"gracePeriodSeconds,omitempty"`
}
func (*PodDeletionSpec) DeepCopy ¶
func (in *PodDeletionSpec) DeepCopy() *PodDeletionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDeletionSpec.
func (*PodDeletionSpec) DeepCopyInto ¶
func (in *PodDeletionSpec) DeepCopyInto(out *PodDeletionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrometheusConfig ¶ added in v1.2.2
type PrometheusConfig struct {
// ServiceMonitor configuration for Prometheus integration
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ServiceMonitor",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:serviceMonitor"}
// +optional
ServiceMonitor *ServiceMonitorConfig `json:"serviceMonitor,omitempty"`
}
func (*PrometheusConfig) DeepCopy ¶ added in v1.2.2
func (in *PrometheusConfig) DeepCopy() *PrometheusConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusConfig.
func (*PrometheusConfig) DeepCopyInto ¶ added in v1.2.2
func (in *PrometheusConfig) DeepCopyInto(out *PrometheusConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RegistryTLS ¶
type RegistryTLS struct {
// If true, check if the container image already exists using plain HTTP.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Insecure",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:insecure"}
// +optional
Insecure *bool `json:"insecure,omitempty"`
// If true, skip any TLS server certificate validation
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="InsecureSkipTLSVerify",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:insecureSkipTLSVerify"}
// +optional
InsecureSkipTLSVerify *bool `json:"insecureSkipTLSVerify,omitempty"`
}
func (*RegistryTLS) DeepCopy ¶
func (in *RegistryTLS) DeepCopy() *RegistryTLS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryTLS.
func (*RegistryTLS) DeepCopyInto ¶
func (in *RegistryTLS) DeepCopyInto(out *RegistryTLS)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemediationWorkflowSpec ¶ added in v1.5.0
type RemediationWorkflowSpec struct {
// enable remediation workflows. disabled by default
// enable if operator should automatically handle remediation of node incase of gpu issues
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
Enable *bool `json:"enable,omitempty"`
// Name of the ConfigMap that holds condition-to-workflow mappings.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Config",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:config"}
Config *v1.LocalObjectReference `json:"config,omitempty"`
// Time to live for argo workflow object and its pods for a failed workflow. Accepts duration strings like "30s", "4h", "24h". By default, it is set to 24h
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TtlForFailedWorkflows",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:ttlForFailedWorkflows"}
// +kubebuilder:default:="24h"
// +kubebuilder:validation:Pattern=`^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$`
TtlForFailedWorkflows string `json:"ttlForFailedWorkflows,omitempty"`
// Tester image used to run tests and verify if remediation fixed the reported problem.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TesterImage",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:testerImage"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
TesterImage string `json:"testerImage,omitempty"`
// MaxParallelWorkflows specifies limit on how many remediation workflows can be executed in parallel. 0 is the default value and it means no limit.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="MaxParallelWorkflows",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:maxParallelWorkflows"}
// +optional
// +kubebuilder:default:=0
// +kubebuilder:validation:Minimum:=0
MaxParallelWorkflows int32 `json:"maxParallelWorkflows"`
// Node Remediation taints are custom taints that we can apply on the node to specify that the node is undergoing remediation or needs attention by the administrator.
// If user does not specify any taints, the operator will apply a taint with key "amd-gpu-unhealthy" and effect "NoSchedule" to the node under remediation.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="NodeRemediationTaints",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:nodeRemediationTaints"}
// +optional
NodeRemediationTaints []v1.Taint `json:"nodeRemediationTaints,omitempty"`
// Node Remediation labels are custom labels that we can apply on the node to specify that the node is undergoing remediation or needs attention by the administrator.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="NodeRemediationLabels",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:nodeRemediationLabels"}
// +optional
NodeRemediationLabels map[string]string `json:"nodeRemediationLabels,omitempty"`
// Node drain policy during remediation workflow execution
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="NodeDrainPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:nodeDrainPolicy"}
// +optional
NodeDrainPolicy *DrainSpec `json:"nodeDrainPolicy,omitempty"`
// AutoStartWorkflow specifies the behavior of the remediation workflow. Default value is true.
// If true, remediation workflow will be automatically started when the node condition matches.
// If false, remediation workflow will be in suspended state when the node condition matches and needs to be manually started by the user.
// This field gives users more control and flexibility on when to start the remediation workflow.
// Default value is set to true if not specified and the remediation workflow automatically starts when the node condition matches.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="AutoStartWorkflow",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:autoStartWorkflow"}
// +kubebuilder:default:=true
AutoStartWorkflow *bool `json:"autoStartWorkflow,omitempty"`
// ConfigMapImage specifies a container image that contains the remediation
// ConfigMap. When set, the operator runs a Job from this image to apply
// the ConfigMap to the cluster before the remediation workflow proceeds.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ConfigMapImage",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:configMapImage"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
ConfigMapImage string `json:"configMapImage,omitempty"`
// RebootTimeout specifies the duration to wait for the node to reboot. Accepts duration strings like "30s", "4h", "24h". By default, it is set to 15m.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="RebootTimeout",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:rebootTimeout"}
// +kubebuilder:default:="15m"
// +kubebuilder:validation:Pattern=`^([0-9]+(\.[0-9]+)?(s|m|h))+$`
// +optional
RebootTimeout string `json:"rebootTimeout,omitempty"`
}
RemediationWorkflowSpec defines workflows to run based on node conditions
func (*RemediationWorkflowSpec) DeepCopy ¶ added in v1.5.0
func (in *RemediationWorkflowSpec) DeepCopy() *RemediationWorkflowSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemediationWorkflowSpec.
func (*RemediationWorkflowSpec) DeepCopyInto ¶ added in v1.5.0
func (in *RemediationWorkflowSpec) DeepCopyInto(out *RemediationWorkflowSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemediationWorkflowStatus ¶ added in v1.5.0
type RemediationWorkflowStatus struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// Status field holds remediation workflow run history for each node and node condition
// Key is node name. Value is a map with key as node condition and value as list of workflow metadata(workflow name and it's start time)
Status map[string]map[string][]WorkflowMetadata `json:"status,omitempty"`
}
RemediationWorkflowStatus keeps a record of recent remediation workflow runs. We maintain this information to avoid re-running remediation workflows on nodes where a pre-defined threshold is crossed. +operator-sdk:csv:customresourcedefinitions:displayName="RemediationWorkflowStatus",resources={{Module,v1beta1,modules.kmm.sigs.x-k8s.io},{Daemonset,v1,apps},{services,v1,core},{Pod,v1,core}}
func (*RemediationWorkflowStatus) DeepCopy ¶ added in v1.5.0
func (in *RemediationWorkflowStatus) DeepCopy() *RemediationWorkflowStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemediationWorkflowStatus.
func (*RemediationWorkflowStatus) DeepCopyInto ¶ added in v1.5.0
func (in *RemediationWorkflowStatus) DeepCopyInto(out *RemediationWorkflowStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RemediationWorkflowStatus) DeepCopyObject ¶ added in v1.5.0
func (in *RemediationWorkflowStatus) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RemediationWorkflowStatusList ¶ added in v1.5.0
type RemediationWorkflowStatusList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []RemediationWorkflowStatus `json:"items"`
}
RemediationWorkflowStatusList contains a list of RemediationWorkflowStatuses
func (*RemediationWorkflowStatusList) DeepCopy ¶ added in v1.5.0
func (in *RemediationWorkflowStatusList) DeepCopy() *RemediationWorkflowStatusList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemediationWorkflowStatusList.
func (*RemediationWorkflowStatusList) DeepCopyInto ¶ added in v1.5.0
func (in *RemediationWorkflowStatusList) DeepCopyInto(out *RemediationWorkflowStatusList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RemediationWorkflowStatusList) DeepCopyObject ¶ added in v1.5.0
func (in *RemediationWorkflowStatusList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ServiceMonitorConfig ¶ added in v1.2.2
type ServiceMonitorConfig struct {
// Enable or disable ServiceMonitor creation (default false)
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
// +optional
Enable *bool `json:"enable,omitempty"`
// How frequently to scrape metrics. Accepts values with time unit suffix: "30s", "1m", "2h", "500ms"
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Interval",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:interval"}
// +optional
// +kubebuilder:validation:Pattern=`^([0-9]+)(ms|s|m|h)$`
Interval string `json:"interval,omitempty"`
// AttachMetadata defines if Prometheus should attach node metadata to the target
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="AttachMetadata",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:attachMetadata"}
// +optional
AttachMetadata *monitoringv1.AttachMetadata `json:"attachMetadata,omitempty"`
// HonorLabels chooses the metric's labels on collisions with target labels (default true)
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="HonorLabels",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:honorLabels"}
// +optional
// +kubebuilder:default=true
HonorLabels *bool `json:"honorLabels,omitempty"`
// HonorTimestamps controls whether the scrape endpoints honor timestamps (default false)
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="HonorTimestamps",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:honorTimestamps"}
// +optional
HonorTimestamps *bool `json:"honorTimestamps,omitempty"`
// Additional labels to add to the ServiceMonitor (default release: prometheus)
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Labels",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:labels"}
// +optional
Labels map[string]string `json:"labels,omitempty"`
// RelabelConfigs to apply to samples before ingestion
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Relabelings",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:relabelings"}
// +optional
Relabelings []monitoringv1.RelabelConfig `json:"relabelings,omitempty"`
// Relabeling rules applied to individual scraped metrics
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="MetricRelabelings",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:metricRelabelings"}
// +optional
MetricRelabelings []monitoringv1.RelabelConfig `json:"metricRelabelings,omitempty"`
// Optional Prometheus authorization configuration for accessing the endpoint
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Authorization",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:authorization"}
// +optional
Authorization *monitoringv1.SafeAuthorization `json:"authorization,omitempty"`
// Path to bearer token file to be used by Prometheus (e.g., service account token path)
// Deprecated: Use Authorization instead. This field is kept for backward compatibility.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="BearerTokenFile",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:bearerTokenFile"}
// +optional
BearerTokenFile string `json:"bearerTokenFile,omitempty"`
// TLS settings used by Prometheus to connect to the metrics endpoint
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLSConfig",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:tlsConfig"}
// +optional
TLSConfig *monitoringv1.TLSConfig `json:"tlsConfig,omitempty"`
}
ServiceMonitorConfig provides configuration for ServiceMonitor
func (*ServiceMonitorConfig) DeepCopy ¶ added in v1.2.2
func (in *ServiceMonitorConfig) DeepCopy() *ServiceMonitorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMonitorConfig.
func (*ServiceMonitorConfig) DeepCopyInto ¶ added in v1.2.2
func (in *ServiceMonitorConfig) DeepCopyInto(out *ServiceMonitorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceType ¶
type ServiceType string
ServiceType string describes ingress methods for a service
const ( // ServiceTypeClusterIP to access inside the cluster ServiceTypeClusterIP ServiceType = "ClusterIP" // ServiceTypeNodePort to expose service to external ServiceTypeNodePort ServiceType = "NodePort" )
type StaticAuthConfig ¶ added in v1.2.2
type StaticAuthConfig struct {
// Enables static authorization using client certificate CN
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
Enable bool `json:"enable,omitempty"`
// Expected CN (Common Name) from client cert (e.g., Prometheus SA identity)
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ClientName",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:clientName"}
ClientName string `json:"clientName,omitempty"`
}
StaticAuthConfig contains static authorization configuration for kube-rbac-proxy
func (*StaticAuthConfig) DeepCopy ¶ added in v1.2.2
func (in *StaticAuthConfig) DeepCopy() *StaticAuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticAuthConfig.
func (*StaticAuthConfig) DeepCopyInto ¶ added in v1.2.2
func (in *StaticAuthConfig) DeepCopyInto(out *StaticAuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TestRunnerSpec ¶
type TestRunnerSpec struct {
// enable test runner, disabled by default
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:enable"}
// +optional
Enable *bool `json:"enable,omitempty"`
// test runner image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Image",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:image"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
Image string `json:"image,omitempty"`
// image pull policy for test runner
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImagePullPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imagePullPolicy"}
// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
// +optional
ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
// tolerations for test runner
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tolerations",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:tolerations"}
// +optional
Tolerations []v1.Toleration `json:"tolerations,omitempty"`
// test runner image registry secret used to pull/push images
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageRegistrySecret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageRegistrySecret"}
// +optional
ImageRegistrySecret *v1.LocalObjectReference `json:"imageRegistrySecret,omitempty"`
// config map to customize the config for test runner, if not specified default test config will be aplied
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Secret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:configmap"}
// +optional
Config *v1.LocalObjectReference `json:"config,omitempty"`
// Selector describes on which nodes to enable test runner
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Selector",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:selector"}
// +optional
Selector map[string]string `json:"selector,omitempty"`
// upgrade policy for test runner daemonset
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="UpgradePolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:upgradePolicy"}
// +optional
UpgradePolicy *DaemonSetUpgradeSpec `json:"upgradePolicy,omitempty"`
// captures logs location and export config for test runner logs
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="LogsLocation",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:logsLocation"}
// +optional
LogsLocation LogsLocationConfig `json:"logsLocation,omitempty"`
}
func (*TestRunnerSpec) DeepCopy ¶
func (in *TestRunnerSpec) DeepCopy() *TestRunnerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestRunnerSpec.
func (*TestRunnerSpec) DeepCopyInto ¶
func (in *TestRunnerSpec) DeepCopyInto(out *TestRunnerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UpgradeState ¶
type UpgradeState string
UpgradeState captures the state of the upgrade process on a node +enum
const ( // No State. UpgradeStateEmpty UpgradeState = "" // Node upgrade pending UpgradeStateNotStarted UpgradeState = "Upgrade-Not-Started" // Node pre-upgrade ops UpgradeStateStarted UpgradeState = "Upgrade-Started" // Node install in progress UpgradeStateInstallInProgress UpgradeState = "Install-In-Progress" // Node install complete UpgradeStateInstallComplete UpgradeState = "Install-Complete" // Node upgrade in progress UpgradeStateInProgress UpgradeState = "Upgrade-In-Progress" // Node upgrade complete UpgradeStateComplete UpgradeState = "Upgrade-Complete" // Node upgrade failed UpgradeStateFailed UpgradeState = "Upgrade-Failed" // Node upgrade timed out UpgradeStateTimedOut UpgradeState = "Upgrade-Timed-Out" // Node cordon failed UpgradeStateCordonFailed UpgradeState = "Cordon-Failed" // Node uncordon failed UpgradeStateUncordonFailed UpgradeState = "Uncordon-Failed" // Node drain failed UpgradeStateDrainFailed UpgradeState = "Drain-Failed" // Node reboot in progress UpgradeStateRebootInProgress UpgradeState = "Reboot-In-Progress" // Node reboot failed UpgradeStateRebootFailed UpgradeState = "Reboot-Failed" )
type UtilsContainerSpec ¶
type UtilsContainerSpec struct {
// Image is the image of utils container
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Image",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:image"}
// +optional
// +kubebuilder:validation:Pattern=`^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$`
Image string `json:"image,omitempty"`
// image pull policy for utils container
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImagePullPolicy",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imagePullPolicy"}
// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
// +optional
ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
// secret used for pull utils container image
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ImageRegistrySecret",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:imageRegistrySecret"}
// +optional
ImageRegistrySecret *v1.LocalObjectReference `json:"imageRegistrySecret,omitempty"`
}
UtilsContainerSpec contains parameters to configure operator's utils
func (*UtilsContainerSpec) DeepCopy ¶
func (in *UtilsContainerSpec) DeepCopy() *UtilsContainerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UtilsContainerSpec.
func (*UtilsContainerSpec) DeepCopyInto ¶
func (in *UtilsContainerSpec) DeepCopyInto(out *UtilsContainerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VFIOConfigSpec ¶ added in v1.4.0
type VFIOConfigSpec struct {
// list of PCI device IDs to load into vfio-pci driver. default is the list of AMD GPU PF/VF PCI device IDs based on driver type vf-passthrough/pf-passthrough.
DeviceIDs []string `json:"deviceIDs,omitempty"`
}
func (*VFIOConfigSpec) DeepCopy ¶ added in v1.4.0
func (in *VFIOConfigSpec) DeepCopy() *VFIOConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VFIOConfigSpec.
func (*VFIOConfigSpec) DeepCopyInto ¶ added in v1.4.0
func (in *VFIOConfigSpec) DeepCopyInto(out *VFIOConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkflowMetadata ¶ added in v1.5.0
type WorkflowMetadata struct {
Name string `json:"name,omitempty"`
StartTime string `json:"startTime,omitempty"`
}
func (*WorkflowMetadata) DeepCopy ¶ added in v1.5.0
func (in *WorkflowMetadata) DeepCopy() *WorkflowMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowMetadata.
func (*WorkflowMetadata) DeepCopyInto ¶ added in v1.5.0
func (in *WorkflowMetadata) DeepCopyInto(out *WorkflowMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.