Add compaction, rules, dynamic configurations, nativeSpec #197
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
I have a Druid cluster managed with this operator and wanted to change compaction settings, retention rules, dynamic configurations, and define ingestion specs with native kubernetes manifests instead of json to enable further configuration with Infrastructure as Code.
These settings are incorporated into existing Druid and DruidIngestion CRs. Common API logic has been moved into a common module in pkg/ for access across the operator. This includes URL building and Auth logic.
Compaction settings and dynamic configurations are updated based on GET requests to the Druid API rather than storing expected settings in the
status
section of cluster objects. This ensures settings are properly applied even if the Druid cluster state changes or if the Druid cluster doesn't properly persist the values.Documentation has been added for the new features mentioned but also for the existing authentication configuration logic.
This PR has:
Key changed/added files in this PR
apis/druid/v1alpha1/druidingestion_types.go
controllers/druid/druid_controller.go
controllers/druid/dynamic_config.go
controllers/ingestion/reconciler.go
pkg/druidapi/druidapi.go
pkg/util/util.go