Skip to content

Improved extension handling #490

@fhennig

Description

@fhennig

As a user I want to know when which extensions get loaded by default and also how I can configure additional extensions to load. Loading more extensions should be easy.

Improve loading extensions

Currently you have to use a configOverride to load a new extension. This is error prone, because you have to not only specify your additional extension, but also all the other extensions that are configured by the operator. This could either be a simple list of strings to add, or a map with the option to have configuration settings for the extensions in there.

CRD Change

We propose the following change to the DruidCluster CRD:

---
kind: DruidCluster
spec:
  clusterConfig:
    additionalExtensions:
    - druid-avro-extensions
    - druid-bloom-filter

Only a list of extensions to load can be specified to keep the CRD as simple and clean as possible.

Many extensions that require additional configuration are already being loaded conditionally based on other parts of the CRD, e.g. authentication, deep storage or metadata storage. If in some cases this is not enough (e.g. because we haven't added an option for deep storage yet) the extension can still be loaded by adding it to the additionalExtensions list with the extension-specific configuration being added using configOverrides.

Document which extensions are loaded by default

We load some extensions conditionally, such as the google or HDFS extensions or the pac4j extension for OIDC support. We should document when which extension gets loaded. Also the list of the default extensions that we load. Maybe also add a link to the Druid documentation where possible extensions are listed.

### Tasks
- [ ] <Implementation PR>
- [ ] https://github.com/stackabletech/druid-operator/issues/487

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions