I want to run my custom Cassandra image using the serverImage parameter from the CRD:
https://github.com/datastax/cass-operator/tree/master/docs/user#specifying-version-and-image
I just tested by setting it like this (by selecting the standard Cassandra docker image):
serverType: cassandra serverVersion: "3.11.6" serverImage: "cassandra:3.11"
But that did not work - the Pod could not start the container properly...
So I guess there are some special requirements on the serverImage specified here?
When I deploy without giving the serverImage parameter the Pod starts with the following cassandra image:
image: datastax/cassandra-mgmtapi-3_11_6:v0.1.2
Looking into that Dockerfile :
https://github.com/datastax/management-api-for-apache-cassandra/blob/master/Dockerfile-3_11
It seems to be a multi-stage build with some "extra management stuff" added to the cassandra:3.11 image...
I guess that's how the cass-operator "manages" Cassandra? That functionality is built into the server (Cassandra) image?
When looking at the documentation: https://github.com/datastax/management-api-for-apache-cassandra
It says "The Management API is a sidecar service layer...". So I first imagined that it would be a sidecar container inside the Pod. But it seems to be "part of" the server image... Am I right?
Because the only other (by default) container in the Pod seems to be the "server-system-logger".
So back to the primary question - how can I run my custom Cassandra image with cass-operator?
Do my custom image have to include the management-api "stuff" for it to work? Similar to how the Dockerfile-3_11 (referred to above) does it?
Or is there any smoother way to do it?