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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions