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
Copy file name to clipboardExpand all lines: modules/manage/partials/iceberg/use-iceberg-catalogs.adoc
+117-5Lines changed: 117 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,6 @@ For production deployments, Redpanda recommends using an external REST catalog t
11
11
12
12
After you have selected a catalog type at the cluster level and xref:{about-iceberg-doc}#enable-iceberg-integration[enabled the Iceberg integration] for a topic, you cannot switch to another catalog type.
13
13
14
-
ifndef::env-cloud[]
15
14
== Connect to a REST catalog
16
15
17
16
Connect to an Iceberg REST catalog using the standard https://github.com/apache/iceberg/blob/main/open-api/rest-catalog-open-api.yaml[REST API^] supported by many catalog providers. Use this catalog integration type with REST-enabled Iceberg catalog services, such as https://docs.databricks.com/en/data-governance/unity-catalog/index.html[Databricks Unity^] and https://other-docs.snowflake.com/en/opencatalog/overview[Snowflake Open Catalog^].
@@ -34,14 +33,125 @@ Redpanda uses the bearer token unconditionally and does not attempt to refresh t
34
33
35
34
For REST catalogs that use self-signed certificates, also configure these properties:
36
35
37
-
* config_ref:iceberg_rest_catalog_trust_file,true,properties/cluster-properties[`iceberg_rest_catalog_trust_file`]: The path to a file containing a certificate chain to trust for the REST catalog.
38
-
* config_ref:iceberg_rest_catalog_crl_file,true,properties/cluster-properties[`iceberg_rest_catalog_crl_file`]: The path to the certificate revocation list for the specified trust file.
36
+
* config_ref:iceberg_rest_catalog_trust,true,properties/cluster-properties[`iceberg_rest_catalog_trust`]: The contents of a certificate chain to trust for the REST catalog.
37
+
ifndef::env-cloud[]
38
+
** Or, use config_ref:iceberg_rest_catalog_trust_file,true,properties/cluster-properties[`iceberg_rest_catalog_trust_file`] to specify the path to the certificate chain file.
39
+
endif::[]
40
+
* config_ref:iceberg_rest_catalog_crl,true,properties/cluster-properties[`iceberg_rest_catalog_crl`]: The contents of a certificate revocation list for `iceberg_rest_catalog_trust`.
41
+
ifndef::env-cloud[]
42
+
** Or, use config_ref:iceberg_rest_catalog_crl_file,true,properties/cluster-properties[`iceberg_rest_catalog_crl_file`] to specify the path to the certificate revocation list file.
43
+
endif::[]
39
44
40
45
See xref:reference:properties/cluster-properties.adoc[Cluster Configuration Properties] for the full list of cluster properties to configure for a catalog integration.
41
46
47
+
ifdef::env-cloud[]
48
+
=== Store a secret for REST catalog authentication
49
+
50
+
To store a secret that you can reference in your catalog authentication cluster properties, you must create the secret using `rpk` or the Data Plane API. Secrets are stored in the secret management solution of your cloud provider. Redpanda retrieves the secrets at runtime.
51
+
52
+
For more information, see xref:manage:rpk/intro-to-rpk.adoc[] and xref:manage:api/cloud-api-overview.adoc[].
53
+
54
+
If you need to configure any of the following properties, you must set their values using secrets:
. Authenticate and make a `GET /v1/clusters/\{id}` request to xref:manage:api/cloud-dataplane-api.adoc#get-data-plane-api-url[retrieve the Data Plane API URL] for your cluster.
80
+
. Make a request to xref:api:ROOT:cloud-dataplane-api.adoc#post-/v1/secrets[`POST /v1/secrets`]. You must use a Base64-encoded secret.
81
+
+
82
+
[,bash]
83
+
----
84
+
curl -X POST "https://<dataplane-api-url>/v1/secrets" \
- `<dataplane-api-url>`: The base URL for the Data Plane API.
94
+
- `<token>`: The API key you generated during authentication.
95
+
- `<secret-name>`: The name of the secret you want to add. The secret name is also its ID. Use only the following characters: `^[A-Z][A-Z0-9_]*$`.
96
+
- `<secret-value>`: The Base64-encoded secret.
97
+
- This scope: `"SCOPE_REDPANDA_CLUSTER"`.
98
+
99
+
+
100
+
The response returns the name and scope of the secret.
101
+
102
+
You can now <<use-a-secret-in-cluster-configuration,reference the secret in your cluster configuration>>.
103
+
104
+
--
105
+
=====
106
+
107
+
=== Use a secret in cluster configuration
108
+
109
+
To set the cluster property to use the value of the secret, use `rpk` or the Control Plane API.
110
+
111
+
For example, to use a secret for the `iceberg_rest_catalog_client_secret` property, run:
112
+
113
+
[tabs]
114
+
=====
115
+
rpk::
116
+
+
117
+
--
118
+
[,bash]
119
+
----
120
+
rpk cluster config set iceberg_rest_catalog_client_secret ${secrets.<secret-name>}
121
+
----
122
+
--
123
+
124
+
Cloud API::
125
+
+
126
+
--
127
+
Make a request to the xref:api:ROOT:cloud-controlplane-api.adoc#patch-/v1/clusters/-cluster.id-[`PATCH /v1/clusters/<cluster-id>`] endpoint of the Control Plane API.
And you use Apache Spark as a processing engine, configured to use a catalog named `streaming`:
165
+
If you use Apache Spark as a processing engine, your Spark configuration might look like the following. This example uses a catalog named `streaming`:
56
166
57
167
[,spark]
58
168
----
@@ -78,6 +188,8 @@ SELECT * FROM streaming.redpanda.<table-name>;
78
188
79
189
The Iceberg table name is the name of your Redpanda topic. Redpanda puts the Iceberg table into a namespace called `redpanda`, creating the namespace if necessary.
80
190
191
+
// Hide section in Cloud until Snowflake doc is single sourced
192
+
ifndef::env-cloud[]
81
193
TIP: You may need to explicitly create a table for the Iceberg data in your query engine. For an example, see xref:manage:iceberg/redpanda-topics-iceberg-snowflake-catalog.adoc[].
0 commit comments