k8s icon indicating copy to clipboard operation
k8s copied to clipboard

[nats helm] Support Non-Homogenous Clusters

Open caleblloyd opened this issue 3 years ago • 1 comments

A user may want to create multiple types of Servers within a cluster, example

  • 3x StatefulSet nats, JetStream disabled
  • 3x StatefulSet nats-js, JetStream enabled

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, JetStream enabled, persistence: disabled

Deployment 2:

  • 2x StatefulSet nats-js, JetStream enabled, persistence: disabled
  • 1x StatefulSet nats-js-pvc, JetStream enabled, persistence: enabled

Deployment 3:

  • 1x StatefulSet nats-js, JetStream enabled, persistence: disabled
  • 2x StatefulSet nats-js-pvc, JetStream enabled, persistence: enabled

Deployment 4:

  • 3x StatefulSet nats-js-pvc, JetStream enabled, persistence: enabled

caleblloyd avatar Feb 25 '22 02:02 caleblloyd

I found this strange too - chart should support this a it seems to be originally in the NATS architecture design.

vukasin-nikodijevic avatar Jul 26 '22 12:07 vukasin-nikodijevic

We recently ran into an issue related to this. Where we needed to extend the PVC size. This would have been really handy.

svallebro avatar Jan 21 '23 19:01 svallebro

nats-1.0.0-beta.0 should have enough knobs to turn where combining 2 Helm deployments into 1 cluster is not as difficult

caleblloyd avatar May 03 '23 19:05 caleblloyd