Skip to content

WekaContainer

WekaContainer

kubectl explain wekacontainer
Field Description Default Validation
apiVersion string weka.weka.io/v1alpha1
kind string WekaContainer
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec WekaContainerSpec
status WekaContainerStatus

WekaContainerSpec

kubectl explain wekacontainer.spec

Appears in: - WekaContainer

Field Description Default Validation
nodeAffinity NodeName name of the node where the container should run on
failureDomain FailureDomain failure domain configuration
topologySpreadConstraints TopologySpreadConstraint array controls the distribution of weka containers across the failure domains
affinity Affinity advanced scheduling constraints
nodeSelector object (keys:string, values:string)
port integer
exposePorts integer array deprecated, use ExposedPorts instead
exposedPorts ContainerPort array ports to be exposed on the container, proxied to pod
agentPort integer
portRange PortRange
image string
podConfigHash string a hash that represents the config state of a WekaContainer, will recreate the pod if stale
imagePullSecret string
name string
mode string Enum: [drive compute client dist drivers-dist drivers-loader drivers-builder discovery s3 adhoc-op-with-container adhoc-op envoy nfs smbw telemetry ssdproxy data-services data-services-fe]
numCores integer
extraCores integer
coreIds integer array
nonDatapathCoreIds integer array NonDatapathCoreIds pins management/aux (non-IONode) processes to specific CPUs.
cpuPolicy CpuPolicy auto Enum: [auto shared dedicated dedicated_ht manual]
network Network
hugepages integer
hugepagesOffset integer
hugepagesSize string
numDrives integer
driversDistService string
driversLoaderImage string
driversBuildId string
builder WekaContainerBuilder
wekaSecretRef EnvVarSource
joinIpPorts string array
tracesConfiguration TracesConfiguration
tolerations Toleration array
nodeInfoConfigMap string
ipv6 boolean
additionalMemory integer
group string
serviceAccountName string
additionalSecrets object (keys:string, values:string)
instructions Instructions
dropAffinityConstraints boolean
uploadResultsTo string
upgradePolicyType UpgradePolicyType manual Enum: [manual all-at-once rolling all-at-once-force]
state ContainerState active Enum: [active paused destroying deleting]
allowHotUpgrade boolean
driveCapacity integer DriveCapacity specifies the capacity (in GiB) per virtual drive, indicates this container uses shared drives via SSD proxy.
When enabled, the container will:
- Use virtual UUIDs instead of device paths for drives
- Allocate capacity from shared drives rather than exclusive drives
- Require an SSD proxy container to be running on the same node
This value is copied from the cluster's DriveSharing.DriveCapacity configuration.
Used to calculate total capacity request: NumDrives * DriveCapacity
containerCapacity integer ContainerCapacity specifies the total capacity (in GiB) requested by this container when using shared drives via SSD proxy.
This value takes precedence over DriveCapacity when both are set. It allows more flexible capacity allocation.
driveTypesRatio DriveTypesRatio DriveTypesRatio specifies the desired ratio of drive types (TLC vs QLC) when allocating drives for the container.
autoRemoveTimeout Duration sets weka cluster-side timeout, if client is not coming back in specified duration it will be auto removed from cluster config 0s Pattern: ^(0\|([0-9]+(\.[0-9]+)?(ns\|us\|µs\|ms\|s\|m\|h))+)$
Type: string
overrides WekaContainerSpecOverrides
hostPID boolean
resources PodResourcesSpec resources to be proxied as-is to the pod spec
pvc PVCConfig
dpdkBaseMemoryMb integer
dataServicesConfig DataServicesConfig
numa WekaNuma Numa configures NUMA confinement for this container

ContainerState

Underlying type: string

Appears in: - WekaContainerSpec

Field Description
active
paused Paused state indicates that the cluster which owns the container is in grace period before being destroyed
destroying Destroying state indicates that the container can be destroyed without any additional steps (such as deactivation)
deleting Deleting state indicates that the container is being deleted, normally such container should go through deactivation flow

CpuPolicy

Underlying type: string

Appears in: - WekaClientSpec - WekaClusterSpec - WekaContainerSpec

Field Description
auto
shared
dedicated
dedicated_ht
manual

DataServicesConfig

kubectl explain wekacontainer.spec.dataServicesConfig

Appears in: - WekaContainerSpec

Field Description Default Validation
dataServicesFeCores integer

DriveTypesRatio

kubectl explain wekacontainer.spec.driveTypesRatio

Appears in: - WekaClusterTemplate - WekaContainerSpec

Field Description Default Validation
tlc integer 0 Minimum: 0
qlc integer 0 Minimum: 0

FailureDomain

kubectl explain wekacontainer.spec.failureDomain

Appears in: - WekaClusterSpec - WekaContainerSpec

Field Description Default Validation
label string label used for spreading the weka containers across different failure domains (if set)
nodes that have the same value for the label will be considered as a single failure domain
skew integer skew for the failure domain, if set, the weka containers will be spread with the skew in mind
(only applicable if label is set)
compositeLabels string array If multiple labels are specified, the failure domain will be the combination of the labels.
If compositeLabels is set, label and skew will be ignored.
When using compositeLabels, weka containers will be spread considering all labels
with best effort, but even distribution is not guaranteed

Instructions

kubectl explain wekacontainer.spec.instructions

Appears in: - WekaContainerSpec

Field Description Default Validation
type InstructionType
payload string
InstructionType

Underlying type: string

Appears in: - Instructions

Field Description
load-drivers Internal instructions — lifecycle plumbing, not exposed via any CRD.
copy-weka-files-to-driver-loader
feature-flags-update
umount

Network

kubectl explain wekacontainer.spec.network

Appears in: - RoleNetworkSelector - WekaClientSpec - WekaClusterSpec - WekaContainerSpec

Field Description Default Validation
ethDevice string The name of a single network interface (for example, eth1) to be used by every backend container.
This is for clusters that use only one dedicated NIC for the data path.
You cannot use this field with ethDevices.
If you leave this empty, the system automatically uses the node’s interface associated with the first subnet defined in deviceSubnets.
ethDevices string array A list of network interface names to be used by backend containers when you have multiple dedicated NICs.
The order of interfaces in this list is important, as it maps directly to the ethSlots index (the first interface maps to slot-0, the second to slot-1, and so on).
You cannot use this field with ethDevice. Ensure that every interface listed here exists on all nodes that are part of the cluster.
gateway string The default gateway IPv4 address for the backend containers’ data-path network.
This is only necessary if backend subnets need to communicate with destinations outside of their local network (L2 segment).
If you have a flat, non-routed backend network, you can leave this field empty.
udpMode boolean A setting that enables or disables UDP encapsulation for backend traffic.
- false (default): Uses standard raw Ethernet frames. true: Wraps data-path traffic in UDP packets.
This is required if your network infrastructure or CNI (Container Network Interface) blocks traffic that isn’t IP-based.
deviceSubnets string array A list of backend subnets in CIDR notation (for example, 192.168.10.0/24).
The operator assigns IP addresses from these subnets to the backend containers for their data path network
items:Pattern: ^([0-9]\{1,3\}\.)\{3\}[0-9]\{1,3\}\/[0-9]\{1,2\}$
selectors NetworkSelector array Selectors define how backend data-path network interfaces are chosen on each node.
managementIpsSelectors NetworkSelector array Selectors for management IPs used for cluster API and agent communication.
bindManagementAll boolean BindManagementAll controls whether Weka containers bind to all network interfaces or only to specific management interfaces.
When set to false (default), containers will only listen on the management ips interfaces (restrict_listen mode).
When set to true, containers will listen on all ips (0.0.0.0) instead of specific IP addresses.
nvidiaVfSingleIp boolean NvidiaVfSingleIp indicates whether NVIDIA virtual functions (VFs) should be configured to use a single-ip weka mode, where multiple weka processes can share same VF
When not set defaults to false, in future releases, when auto-discovery of capabilities will be implemented not set might translate to true on supported setups
allocateVfPerIoNode boolean
NetworkSelector
kubectl explain wekacontainer.spec.network.selectors

Appears in: - Network

Field Description Default Validation
subnet string CIDR subnet (e.g. 192.168.10.0/24) to filter interfaces. Only interfaces with an IP in this subnet are eligible.
min integer Minimum number of interfaces required from nodes matching this selector.
max integer Maximum number of interfaces to select per node matching this selector.
deviceNames string array
rdmaOnly boolean
disableRdma boolean

NodeName

Underlying type: NodeName

Appears in: - ForceResignDrivesPayload - WekaContainerSpec - WekaContainerStatus

PVCConfig

kubectl explain wekacontainer.spec.pvc

Appears in: - WekaClientSpec - WekaClusterSpec - WekaContainerSpec

Field Description Default Validation
name string Name of the PersistentVolumeClaim to mount into all Weka containers.
path string Mount path inside the Weka container. Defaults to /opt/k8s-weka when empty.

PodResourcesSpec

kubectl explain wekacontainer.spec.resources

Appears in: - DriverDistPayload - WekaClientSpec - WekaContainerSpec

Field Description Default Validation
requests PodResources
limits PodResources
PodResources
kubectl explain wekacontainer.spec.resources.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.

PortRange

kubectl explain wekacontainer.spec.portRange

Appears in: - WekaClientSpec - WekaContainerSpec

Field Description Default Validation
basePort integer 45000 Maximum: 65535
portRange integer number of ports to check for availability
if 0 - will check all ports from basePort to 65535
0

TracesConfiguration

kubectl explain wekacontainer.spec.tracesConfiguration

TraceConfiguration defines the configuration for the traces, accepts parameters in gigabytes

Appears in: - WekaClientSpec - WekaClusterSpec - WekaContainerSpec

Field Description Default Validation
maxCapacityPerIoNode integer 10
ensureFreeSpace integer 20
dumperConfigMode DumperConfigMode auto Enum: [override partial-override auto cluster]
DumperConfigMode

Underlying type: string

Appears in: - TracesConfiguration

Field Description
auto
override
partial-override
cluster

UpgradePolicyType

Underlying type: string

Appears in: - UpgradePolicy - WekaContainerSpec

Field Description
manual
rolling
all-at-once
all-at-once-force

WekaContainerBuilder

Appears in: - WekaContainerSpec

Field Description Default Validation
weka_version string

WekaContainerSpecOverrides

kubectl explain wekacontainer.spec.overrides

Appears in: - WekaContainerSpec

Field Description Default Validation
skipDeactivate boolean skips deactivation of container, this is unsafe operation that should be used only when this container will never be back into cluster
skipDrivesForceResign boolean skips resign of drives, if we did not resign drives on removal of drive container we will not be able to reuse them, and manual operation with force resign will be required
skipVirtualDrivesRemoval boolean skips removal of virtual drives from ssdproxy - unsafe operation that can lead to virtual drives leftovers
should not be used unless instructed explicitly by weka personnel
skipCleanupPersistentDir boolean skips cleanup of persistent directory, if this operation was omit local data of container will remain in persistent location(/opt/k8s-weka on vanilla OS/k8s distributions)
upgradeForceReplace boolean unsafe operation, skips graceful stop of weka container for a quick replacement to a new image, should not be used unless instructed explicitly by weka personnel
upgradePreventEviction boolean
podDeleteForceReplace boolean
machineIdentifierNodeRef string
preRunScript string script to be executed post initial persistency(if needed) configuration, before running actual workload
forceDrain boolean unsafe operation, forces drain on the node where the container is running, should not be used unless instructed explicitly by weka personnel, the effect of drain is throwing away all IOs and acknowledging all umounts in unsafe manner
skipActiveMountsCheck boolean option to skip active mounts check before deleting client containers
umountOnHost boolean unsafe operation, runs nsenter in root namespace to umount all wekafs mounts visible on host
debugSleepOnTerminate integer DebugSleepOnTerminate specifies the number of seconds to sleep on container abnormal exit for debugging purposes
migrateOutFromPvc boolean MigrateOutFromPvc specifies that the container should be migrated out from PVC into local storage, this will be done prior to starting pod

WekaNuma

kubectl explain wekacontainer.spec.numa

WekaNuma configures NUMA confinement for a single weka container

Appears in: - RoleNumaSelector - WekaClientSpec - WekaClusterSpec - WekaContainerSpec

Field Description Default Validation
single boolean Single, when true, confines the container to a single NUMA region Optional: {}
region integer Region is the NUMA region index to pin this container to Minimum: 0
Optional: {}
method WekaNumaMethod Method selects the enforcement mechanism Enum: [device-plugin dra]
Optional: {}
WekaNumaMethod

Underlying type: string

WekaNumaMethod defines how NUMA confinement is enforced

Validation: - Enum: [device-plugin dra]

Appears in: - WekaNuma

Field Description
device-plugin
dra WekaNumaMethodDra requests the NUMA region through a DRA ResourceClaim
(driver numa.weka.io) instead of a device-plugin extended resource.

WekaContainerStatus

kubectl explain wekacontainer.status

Appears in: - WekaContainer

Field Description Default Validation
status ContainerStatus Init
internalStatus string
managementIP string
managementIPs string array
containerID integer
clusterID string
conditions Condition array
lastAppliedImage string
lastAppliedSpec string
lastAppliedPodConfigHash string
nodeAffinity NodeName
result string
allocations ContainerAllocations
addedDrives Drive array
stats WekaContainerMetrics
printer ContainerPrinterColumns
timestamps object (keys:string, values:Time)
notToleratedOnReschedule boolean

ContainerAllocations

Appears in: - WekaContainerStatus

Field Description Default Validation
drives string array
wekaPort integer
agentPort integer
failureDomain string value of the failure domain label of the node where the container is running
machineIdentifier string
netDevices string array
virtualDrives VirtualDrive array VirtualDrives contains virtual drive allocations for drive sharing mode.
Each VirtualDrive maps a virtual UUID to a physical drive UUID with allocated capacity.
VirtualDrive

VirtualDrive represents a virtual drive allocation in drive sharing mode

Appears in: - ContainerAllocations

Field Description Default Validation
virtualUUID string VirtualUUID is the virtual drive identifier
physicalUUID string PhysicalUUID is the physical drive UUID obtained from proxy signing
capacityGiB integer CapacityGiB is the allocated capacity in GiB
serial string Serial is the serial number of the physical drive
type string Type is the type of the drive (e.g., TLC, QLC)

ContainerPrinterColumns

Appears in: - WekaContainerStatus

Field Description Default Validation
processes StringMetric
drives StringMetric
activeMounts StringMetric
managementIPs string pretty-printed management IPs
nodeAffinity string node name where the container is running
capacity string per-drive-type capacity of a drive container, e.g. "TLC 30TiB / QLC 60TiB" (drive-sharing only)
StringMetric

Underlying type: string

Appears in: - ClientPrinterColumns - ClusterMetrics - ClusterPrinterColumns - ContainerPrinterColumns

ContainerStatus

Underlying type: string

Appears in: - WekaContainerStatus

Field Description
Init
PodNotRunning
PodRunning
PodTerminating
WaitForDrivers
Running
Stopped
Starting
Deleting
Destroying
Paused
Degraded
Unhealthy
Error
DrivesAdding
Draining
Completed for drivers-build and adhoc-op-with-container (sign-dives) container
Building
StoppingAttempt
IoProcessesUp TimestampIoProcessesUp anchors the time IO processes were first observed up, for
waitSinceIoProcessesUpTimeout.
Stale Stale indicates the container's node has been removed from the k8s cluster and it is
within the graceful-removal grace period before the operator deletes it.

Drive

Appears in: - WekaContainerStatus

Field Description Default Validation
uuid string
added_time string
device_path string
serial_number string
size_bytes integer
status string

WekaContainerMetrics

Appears in: - WekaContainerStatus

Field Description Default Validation
processes EntityStatefulNum
cpuUtilization FloatMetric
drives DriveMetrics
activeMounts IntMetric
lastUpdate Time
DriveMetrics

Appears in: - ClusterMetrics - WekaContainerMetrics

Field Description Default Validation
counters EntityStatefulNum
failures DriveFailures array
DriveFailures

Appears in: - DriveMetrics

Field Description Default Validation
serialId string
wekaDriveId string
EntityStatefulNum

Appears in: - ClientMetrics - ContainerMetrics - DriveMetrics - WekaContainerMetrics

Field Description Default Validation
active IntMetric
created IntMetric
desired IntMetric
IntMetric

Underlying type: integer

Appears in: - CapacityMetrics - ClusterMetrics - EntityStatefulNum - FilesystemMetrics - StatusIops - StatusThroughput - WekaContainerMetrics

FloatMetric

Underlying type: string

Appears in: - ClusterMetrics - ContainerMetrics - MinMaxAvgPercent - WekaContainerMetrics