Documentation
¶
Index ¶
- Variables
- type CommonConfigSpec
- type DaemonSetUpgradeSpec
- type DeploymentStatus
- type DeviceConfig
- type DeviceConfigList
- type DeviceConfigSpec
- type DeviceConfigStatus
- type DevicePluginSpec
- type DrainSpec
- type DriverSpec
- type DriverUpgradePolicySpec
- type ImageSignSpec
- type KubeRbacConfig
- type LogsLocationConfig
- type MetricsConfig
- type MetricsExporterSpec
- type ModuleStatus
- type PodDeletionSpec
- type PrometheusConfig
- type RegistryTLS
- type ServiceMonitorConfig
- type ServiceType
- type StaticAuthConfig
- type TestRunnerSpec
- type UpgradeState
- type UtilsContainerSpec
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 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"`
//+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}}
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 ¶
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"`
// 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"`
// 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 ¶
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 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
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 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.