-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
Summary: * Add k8ssandra.io/rebuild to CassandraDatacenter when rebuild required * Use Initialized condition to check if dc is being added to existing cluster * Add RBAC annotations for CassandraTasks * Add integration tests for adding dc to existing cluster * Add new set of subtests that use an existing cluster as test fixture * Create CassandraTask for rebuild job * Update logic for computing replication factor * Add support for working with arbitrary number of kind clusters * Update replication of system keyspaces * Update replication of user keyspaces * Use k8ssandra.io/dc-replication annotation * Update replication of stargate auth and reaper keyspaces Details: In Cassandra 4 you cannot declare a non-existent dc in the replication strategy. If we are creating a K8ssandraCluster with 2 DCs, dc1 and dc2, for example, we can only declare replicas for dc1 initially. Only after dc2 is added to the C* cluster can we specify replicas for it. The cassandra.system_distributed_replication_dc_names and cassandra.system_distributed_replication_per_dc Java system properties are kind of a backdoor via the management-api that do allow us to specify non-existent DCs for system keysapces but only on the initial cluster creation. The GetDatacentersForReplication function is used for system, stargate, reaper, and user keyspaces to determine which DCs should be included for the replication. If the cluster is already initialized then only the DCs that are already part of the cluster are included. When adding a new dc replication for user keyspaces is specified via the k8ssanda.io/dc-replication annotation. If not specified, no replication changes are made for user keyspaces. If specified, all user keyspaces must be specified. If you don't want to replicate a particular keyspace, then specify a value of zero. Reconcile Stargate auth and Reaper keyspaces after reconciling each dc. This change is needed to handle rebuild and decommission scenarios. See k8ssandra#262 (comment) for a detailed explanation on why the changes are necessary.
- Loading branch information
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.