Use replica-level dataVolumeClaimTemplate and logVolumeClaimTemplate when the shard's field is not set. #1861
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.
in the case where replicas override data/logVolumeClaimTemplates but the shard does not set these the overrides are ignored, prefer the replica settings always as they are more fine grained control points.
I'm attempting to leverage the operator to migrate a clickhouse cluster from an old storageclass to a new one by leveraging the replica level template overrides.
So I'm going from this spec, which uses the
defaultsfor each shard and replica:... to this, which should have the effect of (re)creating the 3 existing replicas using their existing PVs, and adding a new one to the shard which leverages the new storageclass via the new log/dataVolumeClaimTemplate's.
The end goal being that the existing replicas are slowly replaced with the new ones, after replication has completed and we are left with 3 replicas that each define the correct log/dataVolumeClaimTemplates.
While trying to get this to work, I noticed that the replica level
dataVolumeClaimTemplatefield is ignored if it is not also set in the shard. This PR removes the shard-level check in favour of the replica-level field which allows for finer grained control of the log/dataVolumeClaimTemplates.TODO: upload my tests
Thanks for taking the time to contribute to
clickhouse-operator!Please, read carefully instructions on how to make a Pull Request.
This will help a lot for maintainers to adopt your Pull Request.
Important items to consider before making a Pull Request
Please check items PR complies to:
next-releasebranch, not intomasterbranch1. More info--
1 If you feel your PR does not affect any Go-code or any testable functionality (for example, PR contains docs only or supplementary materials), PR can be made into
masterbranch, but it has to be confirmed by project's maintainer.