All Projects → eshepelyuk → cmak-operator

eshepelyuk / cmak-operator

Licence: MIT license
CMAK (prev. Kafka Manager) for Kubernetes

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Smarty
1635 projects

Projects that are alternatives of or similar to cmak-operator

Argocd Operator
A Kubernetes operator for managing Argo CD clusters.
Stars: ✭ 151 (+235.56%)
Mutual labels:  operator, kubernetes-operator
Helm Charts
Helm Charts for Jaeger backend
Stars: ✭ 94 (+108.89%)
Mutual labels:  helm, kubernetes-operator
Mongodb Enterprise Kubernetes
MongoDB Enterprise Kubernetes Operator
Stars: ✭ 232 (+415.56%)
Mutual labels:  operator, kubernetes-operator
Harbor Operator
Kubernetes operator for Harbor service components
Stars: ✭ 130 (+188.89%)
Mutual labels:  operator, kubernetes-operator
pulp-operator
Kubernetes Operator for Pulp 3. Under active development.
Stars: ✭ 32 (-28.89%)
Mutual labels:  operator, kubernetes-operator
K8up
Kubernetes and OpenShift Backup Operator
Stars: ✭ 130 (+188.89%)
Mutual labels:  operator, kubernetes-operator
litmus-helm
Helm Charts for the Litmus Chaos Operator & CRDs
Stars: ✭ 23 (-48.89%)
Mutual labels:  helm, operator
Cluster Operator
cluster-operator creates, configures and helps manage StorageOS cluster on Kubernetes
Stars: ✭ 50 (+11.11%)
Mutual labels:  operator, kubernetes-operator
Lostromos
Lostrómos is a service that creates Kubernetes resources based on a Custom Resource endpoint in the Kubernetes API
Stars: ✭ 135 (+200%)
Mutual labels:  helm, kubernetes-operator
Helm App Operator Kit
Tool for creating a Kubernetes Operator from a Helm Chart
Stars: ✭ 132 (+193.33%)
Mutual labels:  helm, operator
Postgres Operator
Production PostgreSQL for Kubernetes, from high availability Postgres clusters to full-scale database-as-a-service.
Stars: ✭ 2,166 (+4713.33%)
Mutual labels:  operator, kubernetes-operator
kubegres
Kubegres is a Kubernetes operator allowing to deploy one or many clusters of PostgreSql instances and manage databases replication, failover and backup.
Stars: ✭ 1,107 (+2360%)
Mutual labels:  operator, kubernetes-operator
K8s Mediaserver Operator
Repository for k8s Mediaserver Operator project
Stars: ✭ 81 (+80%)
Mutual labels:  operator, kubernetes-operator
Eunomia
A GitOps Operator for Kubernetes
Stars: ✭ 130 (+188.89%)
Mutual labels:  operator, kubernetes-operator
Container Security Operator
Identify image vulnerabilities in Kubernetes pods
Stars: ✭ 68 (+51.11%)
Mutual labels:  operator, kubernetes-operator
horusec-platform
Horusec Platform is a set of web services that integrate with the Horusec CLI to facilitate the visualization and management of found vulnerabilities.
Stars: ✭ 32 (-28.89%)
Mutual labels:  helm, operator
Kudo
Kubernetes Universal Declarative Operator (KUDO)
Stars: ✭ 849 (+1786.67%)
Mutual labels:  operator, kubernetes-operator
Kopf
A Python framework to write Kubernetes operators in just few lines of code.
Stars: ✭ 971 (+2057.78%)
Mutual labels:  operator, kubernetes-operator
Captain
A Helm 3 Controller
Stars: ✭ 129 (+186.67%)
Mutual labels:  helm, kubernetes-operator
ship-it
Wattpad's tool for continuously deploying code to Kubernetes quickly, safely, and observably.
Stars: ✭ 14 (-68.89%)
Mutual labels:  helm, kubernetes-operator

CMAK (prev. Kafka Manager) for Kubernetes

Current Artifact HUB MIT License

CMAK (prev. Kafka Manager) is a tool for monitoring and managing Apache Kafka clusters.

CMAK operator is a Helm chart combining set of utilities, that allows to install and configure CMAK in K8s cluster.

Component diagram

CMAK operator comprises following components:

Installation

cmak-operator chart is published into OCI compatible registry and requires Helm version >= 3.8.

It's recommended to install CMAK operator into a dedicated namespace. To install specific VERSION use following command.

helm upgrade -i --wait --create-namespace -n cmak cmak-operator \
  oci://ghcr.io/eshepelyuk/helm/cmak-operator --version <VERSION>

To install the latest version - omit --version flag from previous command.

Verify installation

By default, CMAK operator doesn't create neither Ingress nor any other K8s resources to expose UI via HTTP.

The simpliest test is to port forward CMAK UI HTTP port and access it from browser.

kubectl port-forward -n cmak service/cmak 9000

Then, open http://localhost:9000 in a browser.

Configuration

Configuration should be passed to helm via command line during installation or upgrade.

helm upgrade -i --wait --create-namespace -n cmak cmak-operator \
  oci://ghcr.io/eshepelyuk/helm/cmak-operator --version <VERSION> \
  -f cmak-values.yaml

CMAK application settings

CMAK uses configuration file /cmak/conf/application.conf. Every parameter could be overriden via JVM system property, i.e. -DmyProp=myVal. Properties are passed to CMAK container via values.yaml.

For example, to enable basic auth, add following to values.yaml.

ui:
  extraArgs:
    - "-DbasicAuthentication.enabled=true"
    - "-DbasicAuthentication.username=admin"
    - "-DbasicAuthentication.password=password"

Kafka clusters

It's extremely easy to configure multiple clusters in CMAK, starting from cluster setup, connection settings and ending with authorization, using Helm values files.

Check CMAK operator values for all available options and their description.

Minimal values.yaml configuration for adding a several Kafka clusters to CMAK.

cmak:
  clusters:
    - name: "cluster-stage"
      curatorConfig:
        zkConnect: "kafka01.stage:2181,kafka02.stage:2181"
    - name: "cluster-prod"
      curatorConfig:
        zkConnect: "kafka01.prod:2181,kafka02.prod:2181,kafka03.prod:2181"

Connection settings could be configured for all clusters at once or per selected cluster.

cmak:
  clustersCommon:
    curatorConfig:
      zkMaxRetry: 100 # <1>
  clusters:
    - name: "cluster-stage"
      kafkaVersion: "2.4.0" # <2>
      curatorConfig:
        zkConnect: "kafka01.stage:2181,kafka02.stage:2181"
    - name: "cluster-prod"
      kafkaVersion: "2.1.0" # <3>
      enabled: false
      curatorConfig:
        zkConnect: "kafka01.prod:2181,kafka02.prod:2181,kafka03.prod:2181"
  1. this setting is applied to both clusters.
  2. applied only to cluster-stage.
  3. applied only to cluster-prod.

Alternatives

AKHQ project seems to be the most active open source tool for managing and monitoring Kafka clusters. It could be missing some functionality from CMAK, but their developers are open for feature requests and contributions.

How to contribute

Your contributions like feature suggesstions, bug reports and pull requests are always welcomed.

Please check CONTRIBUTING guide for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].