Scylla-operator and scylla-manager OSS node limitations

Hello! I am looking to use the scylla operator to automate the deployment of scylla clusters in our kubernetes environment for dev/test purposes. Based on some test deployments I’ve done, it looks like a scylla-manager deployment is required to perform repairs on clusters – the operator does not appear to allow external access to either the API or the JMX ports (please correct me if I missed some documentation somewhere).

According to the pricing page (Pricing information for ScyllaDB Enterprise - ScyllaDB) automated backups and restores are limited to 5 nodes for the open-source version of Scylla.
Does this limitation apply to scylla clusters deployed by scylla-operator? Also how is this limitation enforced for Open-source based clusters?

Scylla manager free usage itself is limit for 5 nodes.
Repair or backups aren’t limited but they do require API or JMX
access, if it’s not available it’s probably trivial to allow those ports

It does not look like the API port is exposed from either the pods or the services that the operator creates, so I would not be able to access the API externally even if I set the api to listen on 0.0.0.0 form the scylla.yaml config.

Is JMX controlled from the scylla.yaml file or the cluster resource config? That port is exposed from both pod and service but nodetool only appears to work from within each pod. I haven’t found any concrete configuration instructions for the JMX stuff, as I understand it runs as a separate service from the main scylla process. Please point me to any documentation I may have missed.

the operator does not appear to allow external access to either the API or the JMX ports

Indeed, ScyllaDB API port is not exposed by default, external communication with it is through token based authentication via Scylla Manager Agent which exposes a port and forwards request to ScyllaDB API.

I’m not sure about licensing of Agent, whether the same limitation applies. Right now Agent is always deployed alongside ScyllaDB, and there’s no switch to change it.

Is JMX controlled from the scylla.yaml file or the cluster resource config?

I don’t have any experience with regards to JMX configuration, nor I don’t know any documentation resources, but you may want to check out the content of /etc/scylla/cassandra/* inside ScyllaDB image.
To change any of this file you can mount additional volume using scyllacluster.spec.datacenter.rack[].volume and scyllacluster.spec.datacenter.rack[].volumeMounts.

Also how is this limitation enforced for Open-source based clusters?

It’s not enforced anyhow.