← Back to Features Overview

Kubernetes Native Operator

Deploy, scale, and rebalance Krabka clusters natively on Kubernetes. The operator watches custom resource definitions (CRDs in group krabka.io/v1alpha1) to automate node pool provisioning, rolling updates, user auth, and partition balancing.

Declarative Custom Resources (krabka.io/v1alpha1)

The operator provides a comprehensive set of CRDs for end-to-end declarative management via GitOps (ArgoCD / Flux):

Kafka

Declares cluster topology, storage backends, listeners, quotas, and authorizers.

KafkaNodePool

Dedicated pools of broker or controller nodes with distinct CPU/RAM and disk sizing.

KafkaTopic

Declares partitions, replication factors, and segment retention configurations.

KafkaUser

Automates SCRAM-SHA-512 credential generation and ACL authorization rules.

KafkaRebalance

Plans and executes automated partition migration to eliminate broker CPU and disk skew.

KafkaConnector

Provisions PostgreSQL CDC and external connectors in the worker runtime.

Sample Kafka Cluster CRD

apiVersion: krabka.io/v1alpha1
kind: Kafka
metadata:
  name: streaming-production
  namespace: streaming
spec:
  replicas: 5
  version: "1.0.0"
  storage:
    tiered:
      enabled: true
      bucket: "s3://krabka-cloud-lake"
      region: "us-west-2"
  resources:
    limits:
      cpu: "4"
      memory: "2Gi"
    requests:
      cpu: "1"
      memory: "512Mi"
  listeners:
    - name: tls-internal
      port: 9092
      type: internal
      tls: true
    - name: external-loadbalancer
      port: 9094
      type: loadbalancer

Zero-Downtime Upgrades & Automated Rebalancing

When upgrading versions or resizing node pools, the operator performs phased rolling restarts. It verifies ISR health, orchestrates clean leader partition handoffs, and ensures zero dropped produce requests during pod cycling.