Goal
I am integrating the Kafka connector with Restate in a setup where RestateCluster is deployed via the Restate Operator on Kubernetes.
Our Kafka clusters require SASL/SSL authentication, with certificates provided via mounted file volumes.
Example configuration:
consumer = Consumer(
{
"bootstrap.servers": "XXXXXXXXXX",
"security.protocol": "XXXXXXXXXX",
"sasl.mechanisms": "XXXXXXXXXX",
"sasl.username": "XXXXXXXXXX",
"sasl.password": "XXXXXXXXXX",
"group.id": "<Add-your-consumer-group-name",
"ssl.ca.location": "/<Add-path-to-cert>/ca.crt",
"schema.registry.url": "XXXXXXXXXX",
"schema.registry.ssl.ca.location": "/<Add-path-to-cert>/server.pem",
"schema.registry.ssl.certificate.location": "/<Add-path-to-cert>/client.pem",
"schema.registry.ssl.key.location": "/<Add-path-to-cert>/key.pem"
}
)
To support this, Restate needs access to certificate files via the filesystem, e.g.:
ssl.truststore.location=/path/to/kafka.truststore.p12
Problem
In Restate Operator, the spec.compute section of RestateCluster does not allow configuring:
volumes
volumeMounts
envFrom
Currently, the only mechanism for mounting secrets as files in the CRD is: spec.security.requestSigningPrivateKey.secret[Provider].
However, this is:
- Scoped specifically to request signing
- Limited to a single key
- Not suitable for general-purpose use cases like Kafka SSL
Ask
Please expose standard Kubernetes pass-through fields on spec.compute:
compute.volumes — []corev1.Volume
compute.volumeMounts — []corev1.VolumeMount (merged into the Restate container)
compute.envFrom — []corev1.EnvFromSource
Goal
I am integrating the Kafka connector with Restate in a setup where RestateCluster is deployed via the Restate Operator on Kubernetes.
Our Kafka clusters require SASL/SSL authentication, with certificates provided via mounted file volumes.
Example configuration:
To support this, Restate needs access to certificate files via the filesystem, e.g.:
ssl.truststore.location=/path/to/kafka.truststore.p12Problem
In Restate Operator, the spec.compute section of RestateCluster does not allow configuring:
volumesvolumeMountsenvFromCurrently, the only mechanism for mounting secrets as files in the CRD is:
spec.security.requestSigningPrivateKey.secret[Provider].However, this is:
Ask
Please expose standard Kubernetes pass-through fields on spec.compute:
compute.volumes — []corev1.Volumecompute.volumeMounts — []corev1.VolumeMount(merged into the Restate container)compute.envFrom — []corev1.EnvFromSource