v1alpha1

package
v1.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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 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"`

	// 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 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"`

	// MaxUnavailable specifies the maximum number of Pods that can be unavailable during the update process. Applicable for RollingUpdate only. Default value is 1.
	//+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

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}}

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"`

	// device plugin
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DevicePlugin",xDescriptors={"urn:alm:descriptor:com.amd.deviceconfigs:devicePlugin"}
	// +optional
	DevicePlugin DevicePluginSpec `json:"devicePlugin,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"`
}

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"`
	// 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 {
	// 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"`

	// 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 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"`
}

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.

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"`
}

func (*DrainSpec) DeepCopy

func (in *DrainSpec) DeepCopy() *DrainSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DrainSpec.

func (*DrainSpec) DeepCopyInto

func (in *DrainSpec) DeepCopyInto(out *DrainSpec)

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"`

	// 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"`

	// 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"`

	// 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"`
}

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"`
	// MaxUnavailableNodes indicates maximum number of nodes that can be in a failed upgrade state beyond which upgrades will stop to keep cluster at a minimal healthy state
	// 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, disabled 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
	RebootRequired *bool `json:"rebootRequired,omitempty"`
}

func (*DriverUpgradePolicySpec) DeepCopy

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 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 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"`
}

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 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

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 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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL