I’m trying to provision a Cassandra instance for use by Temporal, but the
temporal-cassandra-tool seems to be hanging when I run
validate-health . The only message it prints is “2021/10/13 21:58:54 validating connection to cassandra cluster”
This Cassandra cluster is provisioned via Datastax Astra. From the same container I’m running the temporal-cassandra-tool, I can confirm that cqlsh can connect and interact with the cluster. The image I’m using for this container is “temporalio/admin-tools:1.12.3”
I’m configuring temporal-cassandra-tool with the following environment variables:
CASSANDRA_PASSWORD=<REDACTED> CASSANDRA_ENABLE_TLS=true CASSANDRA_USER=<REDACTED> CASSANDRA_KEYSPACE=temporal_default CASSANDRA_TLS_CA=/workdir/ca.crt CASSANDRA_HOST=<REDACTED>-us-east1.db.astra.datastax.com CASSANDRA_TLS_KEY=/workdir/key CASSANDRA_TLS_SERVER_NAME=<REDACTED>-us-east1.db.astra.datastax.com CASSANDRA_TLS_CERT=/workdir/cert CASSANDRA_PORT=29042
Any suggestions here would be greatly appreciated!
After some more digging, it appears gocql is discovering some internal nodes addresses from Astra and is trying to connect to them. If I force gocql to only connect to the initial addresses, things run smoothly.
Here is a gist demonstrating my modified client config: CQL Connect · GitHub
I don’t know much about Cassandra, is this a misconfiguration on the Astra side, or does Temporal’s client config need to be updated to allow this filtering?