cscetbon / casskop

This Kubernetes operator automates Cassandra operations such as deploying rack aware clusters, scaling up and down, configuring C* and its JVM, upgrading JVM and C*, backup/restores and many more...
https://cscetbon.github.io/casskop/
Apache License 2.0
13 stars 8 forks source link

Disable casskop reconcilation for debuging cassandra #157

Open Vasile27 opened 2 weeks ago

Vasile27 commented 2 weeks ago

Type of question

How can I disable casskop cassandra reconcilation to be able to set the cassandra statefulset debuglog to true ?

Question

What did you do? I have a running setup with cassandra and casskop. I want to debug cassandra by activating the debug logs. I edited the cassandra statefulset. Set "logback-xml":{"debuglog-enabled":true}}.

What did you expect to see? I expected cassandra statefulset to remain with the setting I edited.

What did you see instead? Under which circumstances? After updating "logback-xml":{"debuglog-enabled":true}}. the statefulset restarted. It came back up. But then it restarted again and debuglog was set back to false: "logback-xml":{"debuglog-enabled":false}}. I saw in the casskop logs that it started some reconciliation logic and restarted the cassandra statefulset.

Environment

kubectl version

Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.4", GitCommit:"b695d79d4f967c403a96986f1750a35eb75e75f1", GitTreeState:"clean", BuildDate:"2021-11-17T15:48:33Z", GoVersion:"go1.16.10", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.4", GitCommit:"b695d79d4f967c403a96986f1750a35eb75e75f1", GitTreeState:"archive", BuildDate:"2024-08-16T07:55:20Z", GoVersion:"go1.16.10", Compiler:"gc", Platform:"linux/amd64"}

ReleaseVersion: 4.1.5

Additional context Add any other context about the question here.

cscetbon commented 1 week ago

You can't disable the reconcile loop. The only way for you is to update your cluster's configuration in order to take that change into account. Nodes' configuration can be updated at different levels:

If it's a production cluster, I would change it only in one of your racks by doing something like this:

apiVersion: db.orange.com/v2
kind: CassandraCluster
metadata:
  name: cassandra-demo
  labels:
    cluster: k8s.pic
  namespace: ns
spec:
  ...
  topology:
    dc:
      - name: dc1
        rack:
          - name: rack1
          - name: rack2
            config:
              logback-xml:
                debuglog-enabled: true