Skip to content

RestateCluster: expose volumes, volumeMounts, and envFrom on spec.compute #126

@sevak-mnatsakanyan

Description

@sevak-mnatsakanyan

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions