weka-operator

module
v1.12.0 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2026 License: Apache-2.0

README

weka-operator

Kubernetes operator for managing WEKA clusters on Kubernetes.

Overview

The weka-operator automates the deployment and management of WEKA distributed storage clusters on Kubernetes. It provides:

  • Automated WEKA cluster provisioning and lifecycle management
  • Node discovery and container orchestration
  • Drive management and cluster scaling
  • CSI driver integration for persistent volumes

Prerequisites

  • Kubernetes cluster (v1.26+)
  • Helm 3.x
  • Container registry access (Quay.io or your own registry)
  • WEKA license and credentials

Installation

Set image pull secret name if needed

export QUAY_USERNAME=<quay username>
export QUAY_PASSWORD=<quay password>

kubectl create namespace weka-operator-system
kubectl create secret docker-registry quay-io-robot-secret \
  --docker-server=quay.io \
  --docker-username=$QUAY_USERNAME \
  --docker-password=$QUAY_PASSWORD \
  --docker-email=$QUAY_USERNAME \
  --namespace=weka-operator-system # operator will be scheduling some containers in own namespace

kubectl create secret docker-registry quay-io-robot-secret \
  --docker-server=quay.io \
  --docker-username=$QUAY_USERNAME \
  --docker-password=$QUAY_PASSWORD \
  --docker-email=$QUAY_USERNAME \
  --namespace=default # wekacluster/wekaclient namespaces, that can be different from operator itself, each namespace needs a copy of secret
# Install CRDs using server-side apply
helm show crds oci://quay.io/weka.io/helm/weka-operator --version v1.9.1 | \
  kubectl apply --server-side -f -

# Install operator
helm upgrade --install weka-operator oci://quay.io/weka.io/helm/weka-operator \
  --namespace weka-operator-system \
  --create-namespace --version v1.9.1

Configuration

Helm Values

Key configuration options in charts/weka-operator/values.yaml:

Parameter Description Default
imagePullSecret Image pull secret name quay-io-robot-secret
csi.installationEnabled Enable CSI driver false

See values for all configuration options.

Dev flows

Building and pushing weka-operator image and helm with docker only
helm registry login quay.io -p xxx -u xxx \
  && docker login quay.io -p xxx -u xxx \
  && VERSION=1.11.0-$USER-dev.0 REPO=quay.io/weka.io/weka-operator-dev HELM_REPO=quay.io/weka.io/helm-dev"\ 
   ./build-release.sh

installing dev release using helm

export REPO=quay.io/weka.io/weka-operator-dev 
export HELM_REPO=quay.io/weka.io/helm-dev
export VERSION=v1.11.0-$USER-dev.0; helm show crds oci://$HELM_REPO/weka-operator --version $VERSION | kubectl apply --server-side -f -
helm upgrade \
--install weka-operator oci://$HELM_REPO/weka-operator \
--namespace weka-operator-system \
--create-namespace --version $VERSION --set image.repository=$REPO
Building, pushing and deploying Using Dagger, a quick dev flow supporting remote building

See dagger for deploying the operator with Dagger.

Unit Tests
go test ./...

Examples

See doc/examples for YAML configurations including clusters, clients, drive sharing, and policies.

API

The operator api is defined in a separate api repository.
Any changes to the api requires updating the api submodule.

License

See LICENSE for details.

Directories

Path Synopsis
cmd
manager command
internal
admission
Package admission owns the validating-webhook plumbing for Weka CRDs: cert bootstrap, ValidatingWebhookConfiguration lifecycle, and the evaluator that runs rules registered in internal/validation.
Package admission owns the validating-webhook plumbing for Weka CRDs: cert bootstrap, ValidatingWebhookConfiguration lifecycle, and the evaluator that runs rules registered in internal/validation.
controllers/allocator
This file contains the ContainerResourceAllocator service for per-container resource allocation using the hybrid approach with node annotations
This file contains the ContainerResourceAllocator service for per-container resource allocation using the hybrid approach with node annotations
controllers/operations
Package operations provides high-level accessors for feature flags.
Package operations provides high-level accessors for feature flags.
controllers/wekacluster
package wekacluster contains the reconciliation logic for WekaCluster resources
package wekacluster contains the reconciliation logic for WekaCluster resources
controllers/wekacontainer
This file contains functions for allocating resources (drives, ports) for WekaContainer using status-only allocation (no node annotations)
This file contains functions for allocating resources (drives, ports) for WekaContainer using status-only allocation (no node annotations)
validation
Package validation holds admission-validation rules for Weka CRDs.
Package validation holds admission-validation rules for Weka CRDs.
pkg

Jump to

Keyboard shortcuts

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