Repository navigation
Conversation
|
|
All good points, thanks for your feedback!
I think
I was considering using an untagged enum like security:
oAuth2:
serverUri: https://keycloak.default.svc.cluster.local:8443/realms/test/protocol/openid-connect/token
credentialSecretName: my-keycloak-credentials
# or
tokenSecretName: my-keycloak-tokenThis has one level of indentation less, but allows users to configure both (credentials and token) and our operator defines what takes precedence (I'd say token?) and silently ignores the other. That's the tradeoff. I don't have a strong opinion, but I feel like in the past we tended towards less untagged enums and more "impossible to express invalid config". But as mentioned no strong opinion, would be interested in other opinions.
I personally prefer |
|
Did you consider adding a new catalog type No breaking changes, no conversion problems no new CRD version needed. |
|
I have do admit I never though of such a change. |
|
CRD decision accepted |
e62366c to
eedbc35
Compare
|
CRD decision update: |
|
The new CRD change (with host, port, path and tls split out) was approved in todays daily |
Part of #849
Needs stackabletech/operator-rs#1293
Description
This PR allows users to connect Trino to a Iceberg REST catalog via the CRD.
As it's a breaking change (moving to a complex enum), we introduce v1alpha2 for this.
CRD change
See the
extra/crds.yamlchange. It's a bit hard to spot the diff because of the addition of v1alpha2.Usage examples
Up to date examples are in the PR, but some examples:
Considered alternatives
Take URI as URI
Pros:
Cons:
Definition of Done Checklist
Author
Reviewer
Acceptance
type/deprecationlabel & add to the deprecation scheduletype/experimentallabel & add to the experimental features trackerRelease notes
The Iceberg connector can now connect to an Apache Iceberg REST catalog via the new
spec.connector.iceberg.catalog.restfield of the TrinoCatalog.Trino can optionally authenticate against the REST catalog using OAuth2, with either client credentials or a static bearer token read from a Secret.
Connections use TLS with
webPkiverification by default, and custom CA certificates can be provided via a SecretClass.Previously, a REST catalog could only be configured using
configOverrides.For this, TrinoCatalog version
v1alpha2was added and is now the stored version.It replaces the optional
spec.connector.iceberg.metastorefield with the requiredspec.connector.iceberg.catalogfield, which is one ofrest,hiveMetastoreoruserProvided.TrinoCatalogs can still be applied and retrieved in
v1alpha1, and conversion between both versions is handled automatically by default.A
v1alpha1metastorebecomescatalog.hiveMetastore, and a missingmetastorebecomescatalog.userProvided, so TrinoCatalogs that configure a REST catalog viaconfigOverrideskeep working unchanged.A
restcatalog can't be represented inv1alpha1, so usev1alpha2for all TrinoCatalogs that use one.See the Iceberg connector documentation for details.
Implemented in trino-operator#950.