You can provide TLS certificates to the SQL Extension Executor pod via:
You can also combine both approaches. When both individual certificates and a truststore are provided, the SQL Extension Executor imports the certificate files on top of the provided truststore.
If you need to import more than ten custom certificates, we recommend using a pre-built truststore instead of mounting individual certificate files. Certificate manipulation at startup can be time-consuming and a pre-built truststore avoids this overhead entirely.
The SQL Extension Executor reads all valid, non-expired certificates found in /app/user/ssl-certs. Any Kubernetes volume type that exposes files at that path works. Common options are Kubernetes Secrets and PersistentVolumes.
The SQL Extension Executor supports certificate bundles in PEM format. In such cases, each certificate within the bundle is imported separately.
spec:extensions:databases:- id: defaultreplicas: 1volumeMounts:- mountPath: /app/user/ssl-certsname: user-ssl-certsvolumes:- name: user-ssl-certssecret:secretName: user-ssl-certs
If you already manage a PKCS12 truststore, you can mount it directly. To create a new one, follow the same process as described for ActiveGate-based SQL monitoring and mount the file in the location listed below.
sqlds_truststoresqlds_truststore/app/user/truststore/spec:extensions:databases:- id: defaultreplicas: 1volumeMounts:- mountPath: /app/user/truststore/name: custom-truststorereadOnly: truevolumes:- name: custom-truststoresecret:secretName: custom-truststore
When mounted certificate files or the truststore change, the SQL Extension Executor automatically restarts to apply the updated certificates. No manual action is required, and monitoring resumes automatically afterward.
The restart is typically triggered within five minutes of a detected change. Logs for the affected extension configuration show the scheduled time. Brief metric gaps may occur in the meantime.
Automatic certificate reload requires Kubernetes to update the mounted files when the source (such as a Secret) changes. Some mount configurations prevent this. For example, Kubernetes doesn't update volumes mounted using subPath, which means they won't trigger a reload.
Extensions