Skip to content
This repository was archived by the owner on Apr 16, 2024. It is now read-only.

DoodleScheduling/k8skafka-controller

Folders and files

NameName
Last commit message
Last commit date
Oct 12, 2023
Mar 1, 2022
Jul 12, 2023
May 9, 2023
May 9, 2023
Mar 10, 2021
Mar 1, 2022
May 9, 2023
May 9, 2023
May 12, 2023
May 9, 2023
May 9, 2023
May 9, 2023
Mar 30, 2022
May 9, 2023
Mar 30, 2022
May 9, 2023
May 9, 2023
May 9, 2023
Mar 1, 2022
May 9, 2023

Repository files navigation

k8skafka-controller

release release report Coverage Status license

Kubernetes controller that can manage Kafka Topics.

Controller assumes you already have a working Kafka installation. How Kafka brokers are actually managed is outside of the scope of this project for the moment.

Features

Supported

  • creating topics
  • creating additional partitions for existing topics

Not currently supported

  • deleting topics, garbage collection
  • deleting partitions
  • changing replication factor for existing topics and partitions

Known issues

  • partition assigning can in some cases lead to leader being skewed

Example KafkaTopic

A KafkaTopic represents one Kafka Topic.

apiVersion: kafka.infra.doodle.com/v1beta1
kind: KafkaTopic
metadata:
  name: test-topic
spec:
  address: "kafka:9092"
  name: "test-topic"
  partitions: 16
  replicationFactor: 1
  config:
    cleanupPolicy: compact
    deleteRetentionsMs: 31556952000

Helm chart

Please see chart/k8skafka-controller for the helm chart docs.

Configure the controller

You may change base settings for the controller using env variables (or alternatively command line arguments). Available env variables:

Name Description Default
METRICS_ADDR The address of the metric endpoint binds to. :9556
PROBE_ADDR The address of the probe endpoints binds to. :9557
ENABLE_LEADER_ELECTION Enable leader election for controller manager. false
LEADER_ELECTION_NAMESPACE Change the leader election namespace. This is by default the same where the controller is deployed. ``
NAMESPACES The controller listens by default for all namespaces. This may be limited to a comma delimited list of dedicated namespaces. ``
CONCURRENT The number of concurrent reconcile workers. 4