Skip to content

WekaPolicy

WekaPolicy

kubectl explain wekapolicy

WekaPolicy is the Schema for the wekapolicies API

Field Description Default Validation
apiVersion string weka.weka.io/v1alpha1
kind string WekaPolicy
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec WekaPolicySpec
status WekaPolicyStatus

WekaPolicySpec

kubectl explain wekapolicy.spec

WekaPolicySpec defines the desired state of WekaPolicy

Appears in: - WekaPolicy

Field Description Default Validation
type WekaPolicyType Enum: [sign-drives discover-drives ensure-nics enable-local-drivers-distribution remote-traces-session clean-stale-virtual-drives]
payload PolicyPayload
image string
imagePullSecret string
tolerations Toleration array
serviceAccountName string

PolicyPayload

kubectl explain wekapolicy.spec.payload

Appears in: - WekaPolicySpec

Field Description Default Validation
signDrivesPayload SignDrivesPayload
schedulingConfigPayload SchedulingConfigPayload
discoverDrivesPayload DiscoverDrivesPayload
ensureNICsPayload EnsureNICsPayload
driverDistPayload DriverDistPayload
remoteTracesSessionPayload RemoteTracesSessionConfig
cleanStaleVirtualDrivesPayload CleanStaleVirtualDrivesPayload
interval Duration 5m Pattern: ^(0\|([0-9]+(\.[0-9]+)?(s\|m\|h))+)$
Type: string
waitForPolicies string array
CleanStaleVirtualDrivesPayload
kubectl explain wekapolicy.spec.payload.cleanStaleVirtualDrivesPayload

CleanStaleVirtualDrivesPayload is the shared payload for the clean-stale-virtual-drives operation, used by both WekaManualOperation (one-shot) and WekaPolicy (periodic).

The operation scans every ssdproxy's virtual drives (VIDs) and diffs them against the union of all live WekaContainer allocations to find stale VIDs. Detection always runs and reports; deletion is opt-in and double-gated (see DeleteStaleVids).

Appears in: - ManualOperatorPayload - PolicyPayload

Field Description Default Validation
nodeSelector object (keys:string, values:string) NodeSelector limits the scan to ssdproxies on nodes matching these labels.
Empty = all nodes that have an ssdproxy.
onlyNonExistingClusters boolean OnlyNonExistingClusters restricts the stale set to VIDs whose owner cluster GUID has NO
WekaCluster CR at all (category dead_cluster) — the safe-by-construction subset (no live
cluster could be mid-allocating them). Excludes live_cluster_unclaimed. Recommended ON
when pairing with deletion.
false
deleteStaleVids boolean DeleteStaleVids enables ACTUAL removal of detected stale VIDs. DANGEROUS — disabled by
default. Even when true, a VID is only removed if it was reported stale and UNCHANGED on
the previous cycle (fingerprint match) and is still unclaimed at removal time. Acts as the
user's confirmation.
false
DiscoverDrivesPayload
kubectl explain wekapolicy.spec.payload.discoverDrivesPayload

Appears in: - ManualOperatorPayload - PolicyPayload

Field Description Default Validation
nodeSelector object (keys:string, values:string)
DriverDistPayload
kubectl explain wekapolicy.spec.payload.driverDistPayload

DriverDistPayload defines the parameters for the enable-local-drivers-distribution policy

Appears in: - PolicyPayload

Field Description Default Validation
ensureImages string array EnsureImages is a list of Weka images for which drivers should be proactively built.
nodeSelectors object array NodeSelectors is a list of node selectors. Nodes matching any of these selectors will be considered for driver building.
If empty, all nodes in the cluster are considered.
kernelLabelKey string KernelLabelKey is the custom label key to use for storing the node's kernel version.
If not specified, "weka.io/kernel" will be used.
architectureLabelKey string ArchitectureLabelKey is the custom label key to use for storing the node's architecture.
If not specified, "weka.io/architecture" will be used.
osLabelKey string OsLabelKey is the custom label key to use for storing the node's os.
If not specified, "weka.io/os" will be used.
builderImageOverride string BuilderImageOverride is an optional image that you can specify for the builder
builderPreRunScript string BuilderPreRunScript is an optional script to run on builder containers after kernel validation.
distNodeSelector object (keys:string, values:string) DistNodeSelector is the node selector for the drivers distribution (dist) container.
If not specified, the dist container will be scheduled on any available node.
distResources PodResourcesSpec DistResources overrides the pod resources of the drivers distribution (dist) container.
Fields left empty keep the built-in sizing.
PodResourcesSpec
kubectl explain wekapolicy.spec.payload.driverDistPayload.distResources

Appears in: - DriverDistPayload - WekaClientSpec - WekaContainerSpec

Field Description Default Validation
requests PodResources
limits PodResources
PodResources
kubectl explain wekapolicy.spec.payload.driverDistPayload.distResources.requests

Appears in: - PodResourcesSpec

Field Description Default Validation
cpu Quantity
memory Quantity
hugepages-2Mi Quantity Hugepages2Mi is requested verbatim as the pod's hugepages-2Mi resource. 1Gi pages are
not settable through this field.
EnsureNICsPayload
kubectl explain wekapolicy.spec.payload.ensureNICsPayload

Appears in: - ManualOperatorPayload - PolicyPayload

Field Description Default Validation
type NICType
nodeSelector object (keys:string, values:string)
dataNICsNumber integer
NICType

Underlying type: string

Appears in: - EnsureNICsPayload

Field Description
aws
RemoteTracesSessionConfig
kubectl explain wekapolicy.spec.payload.remoteTracesSessionPayload

Appears in: - ManualOperatorPayload - PolicyPayload

Field Description Default Validation
cluster ObjectReference
nodeSelector object (keys:string, values:string)
hostNetwork boolean
duration Duration Duration specifies how long the trace session should run.
WekaManualOperation: defaults to 1 week if omitted/0. CR auto-deletes after expiration.
WekaPolicy: defaults to continuous if omitted/0. Resources cleaned up after expiration.
Examples: "30m", "2h", "7d", "168h"
wekahomeEndpointOverride string
allowHttpWekahomeEndpoint boolean
allowInsecureWekahomeEndpoint boolean
wekahomeCaSecret string
ObjectReference
kubectl explain wekapolicy.spec.payload.remoteTracesSessionPayload.cluster

Appears in: - RemoteTracesSessionConfig - WekaClientSpec

Field Description Default Validation
name string
namespace string
SchedulingConfigPayload
kubectl explain wekapolicy.spec.payload.schedulingConfigPayload

Appears in: - PolicyPayload

SignDrivesPayload
kubectl explain wekapolicy.spec.payload.signDrivesPayload

Appears in: - ManualOperatorPayload - PolicyPayload

Field Description Default Validation
type string Enum: [aws-all gcp-all device-identifiers device-paths all-not-root]
nodeSelector object (keys:string, values:string)
devicePaths string array
pciDevices PCIDevices PCI vendor and device IDs of the drives to sign.
To get the values for VendorId and DeviceId:
1. Run the following command to list all PCI devices on your system:
bash<br /> lspci -nn<br />
2. Find the relevant PCI device in the output, which will display both the
vendor and device IDs in square brackets in the format [vendorId:deviceId].
For example:
<br /> 00:1f.0 Non-Volatile memory controller [0108]: Amazon.com, Inc. NVMe SSD Controller [1d0f:cd01]<br />
options SignOptions
shared boolean Shared enables shared drive signing for proxy mode (defaults to false).
When enabled:
- Drives are signed for proxy using 'weka-sign-drive sign proxy' command
- Drives are signed with a proxy system GUID
- Results are stored in weka.io/shared-drives annotation (instead of weka.io/weka-drives)
- Physical UUIDs, serial IDs, and capacities are captured
- Enables multi-tenant drive sharing via SSD proxy
driveTypeOverrides DriveTypeOverrides DriveTypeOverrides forces the reported TLC/QLC type for matching drives instead of
deriving it from the drive's IU size. Only meaningful when Shared is true.
Persisted on the node in the weka.io/drive-type-overrides annotation and re-applied
on every later sign-drives run. Omit the field to keep whatever is already persisted
on the node; set an empty rules list to clear all overrides.
DriveTypeOverrides
kubectl explain wekapolicy.spec.payload.signDrivesPayload.driveTypeOverrides

Appears in: - SignDrivesPayload

Field Description Default Validation
rules DriveTypeOverrideRule array Rules are evaluated in order; the first rule matching a drive wins.
An empty list clears all previously persisted overrides on the node.
DriveTypeOverrideRule
kubectl explain wekapolicy.spec.payload.signDrivesPayload.driveTypeOverrides.rules

DriveTypeOverrideRule forces the drive type for drives matching Model and/or CapacityGiB. When both Model and CapacityGiB are set, BOTH must match (AND semantics) — this lets you target one SKU shipped in several capacities where only some are QLC.

Appears in: - DriveTypeOverrides

Field Description Default Validation
model string Model matches the device model exactly, case-insensitively, ignoring surrounding
whitespace. Find it with: lsblk -dno MODEL /dev/nvme0n1
Empty means "do not match on model".
capacityGiB integer CapacityGiB matches the drive capacity in GiB exactly, as reported in the
weka.io/weka-shared-drives annotation. 0 means "do not match on capacity".
Minimum: 1
type string Type is the drive type to report for matching drives. Enum: [TLC QLC]
PCIDevices
kubectl explain wekapolicy.spec.payload.signDrivesPayload.pciDevices

Appears in: - SignDrivesPayload

Field Description Default Validation
vendorId string VendorId is the 4-digit hexadecimal vendor ID
default for AWS: 1d0f (Amazon.com, Inc.)
Pattern: ^[0-9a-fA-F]\{4\}$
deviceId string DeviceId is the 4-digit hexadecimal device ID
default for AWS: cd01 (NVMe SSD)
Pattern: ^[0-9a-fA-F]\{4\}$
SignOptions
kubectl explain wekapolicy.spec.payload.signDrivesPayload.options

Appears in: - SignDrivesPayload

Field Description Default Validation
allowEraseWekaPartitions boolean
allowEraseNonWekaPartitions boolean
allowNonEmptyDevice boolean
skipTrimFormat boolean

WekaPolicyType

Underlying type: string

WekaPolicyType enumerates the supported WekaPolicy types.

Appears in: - WekaPolicySpec

WekaPolicyStatus

kubectl explain wekapolicy.status

WekaPolicyStatus defines the observed state of WekaPolicy

Appears in: - WekaPolicy

Field Description Default Validation
status string
result string
lastRunTime Time
progress string
typedStatus TypedPolicyStatus

TypedPolicyStatus

TypedPolicyStatus holds status fields specific to a policy type

Appears in: - WekaPolicyStatus

Field Description Default Validation
distService DistServiceStatus
DistServiceStatus

DistServiceStatus holds the status for the enable-local-drivers-distribution policy

Appears in: - TypedPolicyStatus

Field Description Default Validation
serviceUrl string