k8s
k8s copied to clipboard
[nats helm] Support Non-Homogenous Clusters
A user may want to create multiple types of Servers within a cluster, example
- 3x StatefulSet
nats, JetStreamdisabled - 3x StatefulSet
nats-js, JetStreamenabled
Also consider the case where a StatefulSet setting that does not support updates, such as volumeClaimTemplates, must be changed. The user could perform a multi-phase update:
Deployment 1:
- 3x StatefulSet
nats-js, JetStreamenabled, persistence:disabled
Deployment 2:
- 2x StatefulSet
nats-js, JetStreamenabled, persistence:disabled - 1x StatefulSet
nats-js-pvc, JetStreamenabled, persistence:enabled
Deployment 3:
- 1x StatefulSet
nats-js, JetStreamenabled, persistence:disabled - 2x StatefulSet
nats-js-pvc, JetStreamenabled, persistence:enabled
Deployment 4:
- 3x StatefulSet
nats-js-pvc, JetStreamenabled, persistence:enabled
I found this strange too - chart should support this a it seems to be originally in the NATS architecture design.
We recently ran into an issue related to this. Where we needed to extend the PVC size. This would have been really handy.
nats-1.0.0-beta.0 should have enough knobs to turn where combining 2 Helm deployments into 1 cluster is not as difficult