apache / apache/druid

Promote druid-kubernetes-extensions out of experimental status

Open
#12,904 15 comments 4 reactions 0 assignees View on GitHub
Area - Extension Kubernetes
Dominant language
Java
Stars
14.1k
Forks
3.8k
Avg merge
2d 58m
Merged PRs (30d)
233

Description

Currently, the `druid-kubernetes-extension` is in experimental status: https://druid.apache.org/docs/latest/development/extensions-core/kubernetes.html:

> Consider this an [EXPERIMENTAL](https://druid.apache.org/docs/latest/development/experimental.html) feature mostly because it has not been tested yet on a wide variety of long running Druid clusters.

The functionality is quite useful, since it allows people to run Druid on k8s without reliance on ZooKeeper. So, we'd like to promote it out of experimental status. To do that, we need:

1. Robust experience in production scenarios.
2. Volunteers to maintain the extension.

Let's use this issue as a place people can chime in about this stuff.

---

Notes on testing. I checked and found:

- Unit tests with about 55% coverage. The uncovered code is mostly the prod implementations of certain interfaces where we have text-fixture implementations in unit tests. So, the coverage is about as good as it can be. The prod implementations interface directly with k8s, so they need to be tested in integration tests.
- An integration test, "(Compile=openjdk8, Run=openjdk8, Cluster Build On K8s) ITNestedQueryPushDownTest integration test" added in #10669 by @zhangyue19921010 (thank you 🙌). It runs one test case, ITNestedQueryPushDownTest, which exercises aspects of ingestion and query.

I didn't see integration tests for cases like servers going on and offline, or for leader failover. That'd be a great direction to extend the tests in. Note that we have a project going on right now to create a simpler and easier-to-use integration test framework, in #12359. It may be prudent to implement new tests on top of that new framework when it's available.

Contributor guide

Open the contributing guide

Research direction

Start with the Kubernetes extension documentation and the existing ITNestedQueryPushDownTest integration test added in #10669. Review the proposed simpler integration test framework in #12359, then identify coverage for servers going on and offline and leader failover; done requires robust production experience and volunteers to maintain the extension.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, kubernetes
Domain
cloud, databases, distributed-systems, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.