etcd-druid
etcd-druid copied to clipboard
☂️ [Enhancement] Create v1beta1 for etcd-druid API
How to categorize this issue?
/kind enhancement
What would you like to be added
Deprecate v1alpha1
(current version) and introduce v1beta1
of the API.
Motivation (Why is this needed?)
druid API is currently v1alpha1 (which technically indicates that it is experimental and should be used with caution). However the API has been stable for quite some time and therefore it should be moved to v1beta1. In addition the API in its current form has several problems:
- Inconsistent use of labels and annotations across several resources that are created.
- Semantically incorrect names for structs/fields.
- Sub-optimal structuring of different sets of logically cohesive configuration.
- cluster specific configuration mixed with etcd-member specific configuration
As a consequence v1beta1 will deviate from v1alpha1 incompatibly. It should be ensured that both the versions v1alpha1
and v1beta1
be supported with v1beta1
to be used as a stored version (in the control plane of druid). An API conversion web-hook should be created to convert between the two versions.
Tasks
- [ ] Define the v1beta1 API and get this reviewed.
- [ ] Add a compaction-specific configuration section to the Etcd API, and remove the special handling added in #845
- [ ] Till etcd-druid-api is integrated with etcd-druid, the changes needs to be present in both the places.
- [ ] Create an API conversion web hook
- [ ] Add e2e tests to consume both v1alpha1 and v1beta1