You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit e62366c
Browse filesBrowse the repository at this point in the historyBrowse files
<1> The name of the catalog as it will appear in Trino
48
-
<2> The URI of the REST catalog server
49
-
<3> Optional, defaults to no authentication
50
-
<4> The token endpoint of the OAuth2 server, see <<oauth2-server-uri>>
51
-
<5> Name of a Secret containing the `clientId` and `clientSecret` keys, which are exchanged for a token using the OAuth2 client credentials flow.
61
+
<2> The hostname of the REST catalog server
62
+
<3> Optional, defaults to 443 if TLS is used and to 80 otherwise
63
+
<4> Optional, defaults to `/`
64
+
<5> Optional, uses the same TLS configuration as xref:usage-guide/s3.adoc#tls[S3 connections].
65
+
If not specified, no TLS is used. Disabling the TLS verification (`verification.none`) is not supported.
66
+
<6> Optional, defaults to no authentication
67
+
<7> `hostname`, `port`, `path` and `tls` of the token endpoint of the OAuth2 server, see <<oauth2-server>>
68
+
<8> Name of a Secret containing the `clientId` and `clientSecret` keys, which are exchanged for a token using the OAuth2 client credentials flow.
52
69
Alternatively, use `tokenSecretName` to pass a Secret containing a static bearer token in the `token` key.
53
70
54
71
The operator only supports a subset of the https://trino.io/docs/current/object-storage/metastores.html#rest-catalog[REST catalog properties].
55
72
Use `configOverrides` to set additional ones.
56
73
57
-
[#oauth2-server-uri]
58
-
=== OAuth2 server URI
74
+
[#oauth2-server]
75
+
=== OAuth2 server
59
76
60
-
`serverUri` is the token endpoint of the OAuth2 server.
77
+
`hostname`, `port`, `path` and `tls` within `oAuth2` point to the token endpoint of the OAuth2 server.
61
78
What it is used for depends on the credential:
62
79
63
80
* `clientCredentialsSecretName`: Trino fetches its token from this endpoint on startup and refreshes it there before it expires.
@@ -66,8 +83,8 @@ What it is used for depends on the credential:
66
83
If the refresh fails, Trino logs a warning and keeps using the current token.
67
84
A token that isn't a JWT is never refreshed, so the endpoint is never called.
68
85
69
-
`serverUri` is required even for tokens that are never refreshed.
70
-
Without it, the Iceberg client used by Trino would fall back to the deprecated `<uri>/v1/oauth/tokens` endpoint of the REST catalog, which is planned to be removed (see https://github.com/apache/iceberg/issues/10537[apache/iceberg#10537]).
86
+
The OAuth2 server is required even for tokens that are never refreshed.
87
+
Without it, the Iceberg client used by Trino would fall back to the deprecated `/v1/oauth/tokens` endpoint of the REST catalog, which is planned to be removed (see https://github.com/apache/iceberg/issues/10537[apache/iceberg#10537]).
Use OAuth2 to authenticate against the REST catalog.
4107
4107
4108
+
`hostname`, `port`, `path` and `tls` point to the token endpoint of the OAuth2 server.
4109
+
It is used to
4110
+
4111
+
* fetch a token using the client credentials (`clientCredentialsSecretName`) and
4112
+
* refresh the token before it expires. A static token (`tokenSecretName`) is only
4113
+
refreshed if it is a JWT with an `exp` claim, otherwise the endpoint is never called.
4114
+
4115
+
It is required nevertheless, as without it the Iceberg client would fall back to the
4116
+
deprecated `/v1/oauth/tokens` endpoint of the REST catalog, which is planned to be removed
4117
+
(see <https://github.com/apache/iceberg/issues/10537>).
4118
+
4108
4119
Note that we only support configuring a subset of Trino's properties, you might need to use
4109
4120
`configOverrides` to be able to set all [available properties](https://trino.io/docs/current/object-storage/metastores.html#iceberg-specific-metastores).
4110
4121
oneOf:
@@ -4120,19 +4131,69 @@ spec:
4120
4131
4121
4132
The Secret needs to contain the `clientId` and `clientSecret` keys.
4122
4133
type: string
4123
-
serverUri:
4134
+
hostname:
4124
4135
description: |-
4125
-
The token endpoint of the OAuth2 server. It is used to
4126
-
4127
-
* fetch a token using the client credentials (`clientCredentialsSecretName`) and
4128
-
* refresh the token before it expires. A static token (`tokenSecretName`) is only
4129
-
refreshed if it is a JWT with an `exp` claim, otherwise the endpoint is never called.
4130
-
4131
-
It is required nevertheless, as without it the Iceberg client would fall back to the
4132
-
deprecated `<uri>/v1/oauth/tokens` endpoint of the REST catalog, which is planned to be
4133
-
removed (see <https://github.com/apache/iceberg/issues/10537>).
4134
-
format: uri
4136
+
Hostname of the server without any protocol, port or path.
4137
+
For example: `iceberg-rest-catalog.example.com`.
4135
4138
type: string
4139
+
path:
4140
+
default: /
4141
+
description: Path of the endpoint on the server, e.g. `/catalog`. Defaults to `/`.
4142
+
type: string
4143
+
port:
4144
+
description: |-
4145
+
Port the server listens on.
4146
+
Defaults to 443 if TLS is used and to 80 otherwise.
4147
+
format: uint16
4148
+
maximum: 65535.0
4149
+
minimum: 0.0
4150
+
nullable: true
4151
+
type: integer
4152
+
tls:
4153
+
description: Use a TLS connection. If not specified no TLS will be used.
4154
+
nullable: true
4155
+
properties:
4156
+
verification:
4157
+
description: The verification method used to verify the certificates of the server and/or the client.
4158
+
oneOf:
4159
+
- required:
4160
+
- none
4161
+
- required:
4162
+
- server
4163
+
properties:
4164
+
none:
4165
+
description: Use TLS but don't verify certificates.
4166
+
type: object
4167
+
server:
4168
+
description: Use TLS and a CA certificate to verify the server.
4169
+
properties:
4170
+
caCert:
4171
+
description: CA cert to verify the server.
4172
+
oneOf:
4173
+
- required:
4174
+
- webPki
4175
+
- required:
4176
+
- secretClass
4177
+
properties:
4178
+
secretClass:
4179
+
description: |-
4180
+
Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate.
4181
+
Note that a SecretClass does not need to have a key but can also work with just a CA certificate,
4182
+
so if you got provided with a CA cert but don't have access to the key you can still use this method.
4183
+
type: string
4184
+
webPki:
4185
+
description: |-
4186
+
Use TLS and the CA certificates trusted by the common web browsers to verify the server.
4187
+
This can be useful when you e.g. use public AWS S3 or other public available services.
4188
+
type: object
4189
+
type: object
4190
+
required:
4191
+
- caCert
4192
+
type: object
4193
+
type: object
4194
+
required:
4195
+
- verification
4196
+
type: object
4136
4197
tokenSecretName:
4137
4198
description: |-
4138
4199
Authenticate using a bearer token.
@@ -4141,15 +4202,74 @@ spec:
4141
4202
The Secret needs to contain the `token` key.
4142
4203
type: string
4143
4204
required:
4144
-
- serverUri
4205
+
- hostname
4145
4206
type: object
4146
4207
type: object
4147
-
uri:
4148
-
description: URL of the rest catalog server.
4149
-
format: uri
4208
+
hostname:
4209
+
description: |-
4210
+
Hostname of the server without any protocol, port or path.
4211
+
For example: `iceberg-rest-catalog.example.com`.
4212
+
type: string
4213
+
path:
4214
+
default: /
4215
+
description: Path of the endpoint on the server, e.g. `/catalog`. Defaults to `/`.
4150
4216
type: string
4217
+
port:
4218
+
description: |-
4219
+
Port the server listens on.
4220
+
Defaults to 443 if TLS is used and to 80 otherwise.
4221
+
format: uint16
4222
+
maximum: 65535.0
4223
+
minimum: 0.0
4224
+
nullable: true
4225
+
type: integer
4226
+
tls:
4227
+
description: Use a TLS connection. If not specified no TLS will be used.
4228
+
nullable: true
4229
+
properties:
4230
+
verification:
4231
+
description: The verification method used to verify the certificates of the server and/or the client.
4232
+
oneOf:
4233
+
- required:
4234
+
- none
4235
+
- required:
4236
+
- server
4237
+
properties:
4238
+
none:
4239
+
description: Use TLS but don't verify certificates.
4240
+
type: object
4241
+
server:
4242
+
description: Use TLS and a CA certificate to verify the server.
4243
+
properties:
4244
+
caCert:
4245
+
description: CA cert to verify the server.
4246
+
oneOf:
4247
+
- required:
4248
+
- webPki
4249
+
- required:
4250
+
- secretClass
4251
+
properties:
4252
+
secretClass:
4253
+
description: |-
4254
+
Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate.
4255
+
Note that a SecretClass does not need to have a key but can also work with just a CA certificate,
4256
+
so if you got provided with a CA cert but don't have access to the key you can still use this method.
4257
+
type: string
4258
+
webPki:
4259
+
description: |-
4260
+
Use TLS and the CA certificates trusted by the common web browsers to verify the server.
4261
+
This can be useful when you e.g. use public AWS S3 or other public available services.
0 commit comments