HTTPS
Overview
HTTPS encrypts request headers, which matters most when those headers carry credentials. Any deployment using OAuth or local users and groups should enable it, since both put a token or a password in a header on every request.
The ingress terminates TLS for clients outside the cluster. Enabling HTTPS on the server itself also encrypts the traffic from the ingress and from in-cluster callers to the server, which encryption-in-transit requirements usually call for.
A server instance serves one protocol. Enabling HTTPS stops the plain HTTP listener rather than adding to it, so clients configured against the HTTP port need updating at the same time.
Configuration
The Gravitino server and the Iceberg REST service are configured separately with the same property names under different prefixes. Use gravitino.server.webserver. for the Gravitino server and gravitino.iceberg-rest. for the Iceberg REST service. None of them has a dedicated chart value, so set them under gravitino.additionalConfigItems in my-values.yaml as quoted strings; see Set other server properties.
| Property Name | Description | Default Value | Required |
|---|---|---|---|
enableHttps | Enables HTTPS | false | No |
httpsPort | HTTPS port for the Jetty web server | 8433 and 9433 | No |
keyStorePath | Path to the key store file | (none) | Yes |
keyStorePassword | Password for the key store | (none) | Yes |
managerPassword | Manager password for the key store | (none) | Yes |
keyStoreType | Key store type | JKS | No |
tlsProtocol | TLS protocol to use, which the JVM must support | (none) | No |
enableCipherAlgorithms | Cipher algorithms to enable | (empty) | No |
enableClientAuth | Requires clients to authenticate with a certificate | false | No |
trustStorePath | Path to the trust store file | (none) | Yes with client authentication |
trustStorePassword | Password for the trust store | (none) | Yes with client authentication |
trustStoreType | Trust store type | JKS | No |
The default HTTPS port is 8433 for the Gravitino server and 9433 for the Iceberg REST service. Everything in the Required column applies once enableHttps is true.
For the values tlsProtocol and enableCipherAlgorithms accept, see the "Additional JSSE Standard Names" section of the Java security guide, under protocols and cipher suites respectively.