Druid Operator: Release 1.2.2
We have a new release on druid operator with bug fixes and streamlined stability.
Introduction
In this concise post, we'll outline the notable changes in the latest release of the Druid Operator. We extend our appreciation to the new contributors who have played a crucial role in maintaining the codebase. The primary focus of this release lies in addressing bug fixes to enhance the overall stability of the operator.
Bug Fixes
List of bug fixes in the 1.2.2 release
1. Operator panic when checking for crashloopbackup status
One prevalent issue in Kubernetes arises when stateful sets enter a crash loop back state, requiring manual deletion for recovery. This is a prevalent issue in the community as described in this issue.
The Druid Operator aims to automate this process by auto-restarting stateful set pods if they encounter issues. However, a bug in this feature caused the operator to panic in specific cases. This issue has been diligently addressed; details can be found here.
2. Nil Pointer for storage class reference
When scaling storage for druid clusters, operator performs a check on storage class if volume expansion is enabled. In some cases, where storage class name isn’t specified in druid CR spec, the function would panic. Specifying storage class name in volume claim templates in Kubernetes statefulsets is optional.
This has been fixed, please refer to issue.
3. StartUp Probe consistency in druid spec and node spec
Startup probe typos have been fixed and made consistent in both druid spec ie the fields at cluster scope, common to all druid nodes and node spec ie the fields for only druid nodes. Startup probe checks are useful if druid has loaded all the segments and we want to move to the next node to upgrade.
This has been fixed, please refer to issue.
Documentation
We have added a few examples to help users get started with druid operator.
1. Middlemanager less ingestion
Middlemanager less ingestion spawns up pods directly using the Kubernetes API’s and terminates the pods once is ingestion is completed. MM less ingestion is cost effective and removes the dependency of manually scaling MM as when ingestion increases.
Here is an example spec in druid operator which can help you get started with MM less ingestion. This example uses druid Kubernetes extension and minio as deep storage.
2. Druid Kubernetes Extension
Druid Kubernetes extension removes zookeeper dependency and leverages Kubernetes API for consensus. Here is an example spec in druid operator which enables the druid Kubernetes extension.
Package Updates
Controller runtime upgrades to v0.15.3.
Upgrade Druid Operator
Add and Update Repo
helm repo add datainfra https://charts.datainfra.io
helm repo update
Upgrade the operator version
helm upgrade --install <release_name> datainfra/druid-operator --namespace <release_namespace> --version=0.3.5