From d3023719aab81a4091387d731d46bee1977821a6 Mon Sep 17 00:00:00 2001 From: Kat Batuigas Date: Thu, 19 Mar 2026 11:26:42 -0700 Subject: [PATCH 1/6] Add custom namespace config to Iceberg integration workflow --- .../manage/pages/iceberg/about-iceberg-topics.adoc | 14 ++++++++++---- .../pages/iceberg/iceberg-topics-aws-glue.adoc | 6 +++++- .../iceberg/iceberg-topics-databricks-unity.adoc | 4 ++-- .../manage/pages/iceberg/query-iceberg-topics.adoc | 2 ++ .../redpanda-topics-iceberg-snowflake-catalog.adoc | 2 +- .../manage/pages/iceberg/use-iceberg-catalogs.adoc | 2 +- 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/modules/manage/pages/iceberg/about-iceberg-topics.adoc b/modules/manage/pages/iceberg/about-iceberg-topics.adoc index 7f1f3494ec..791acd7b71 100644 --- a/modules/manage/pages/iceberg/about-iceberg-topics.adoc +++ b/modules/manage/pages/iceberg/about-iceberg-topics.adoc @@ -77,7 +77,9 @@ ifdef::env-cloud[] To create an Iceberg table for a Redpanda topic, you must set the cluster configuration property config_ref:iceberg_enabled,true,properties/cluster-properties[`iceberg_enabled`] to `true`, and also configure the topic property `redpanda.iceberg.mode`. You can choose to provide a schema if you need the Iceberg table to be structured with defined columns. endif::[] -. Set the `iceberg_enabled` configuration option on your cluster to `true`. +. Set the `iceberg_enabled` configuration option on your cluster to `true`. ++ +By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a custom namespace, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after Iceberg is enabled. ifdef::env-cloud[] + [tabs] @@ -89,6 +91,8 @@ rpk:: ---- rpk cloud login rpk profile create --from-cloud +# Optional: set a custom namespace (default is "redpanda") +rpk cluster config set iceberg_default_catalog_namespace '[""]' rpk cluster config set iceberg_enabled true ---- -- @@ -108,12 +112,12 @@ export RP_CLOUD_TOKEN=`curl -X POST "https://auth.prd.cloud.redpanda.com/oauth/t -d "client_id=" \ -d "client_secret="` -# Update cluster configuration to enable Iceberg topics +# Enable Iceberg; omit iceberg_default_catalog_namespace to use the default "redpanda" namespace curl -H "Authorization: Bearer ${RP_CLOUD_TOKEN}" -X PATCH \ "https://api.cloud.redpanda.com/v1/clusters/${RP_CLUSTER_ID}" \ -H 'accept: application/json'\ -H 'content-type: application/json' \ - -d '{"cluster_configuration":{"custom_properties": {"iceberg_enabled":true}}}' + -d '{"cluster_configuration":{"custom_properties": {"iceberg_default_catalog_namespace":[""], "iceberg_enabled":true}}}' ---- The link:/api/doc/cloud-controlplane/operation/operation-clusterservice_updatecluster[`PATCH /clusters/{cluster.id}`] request returns the ID of a long-running operation. The operation may take up to ten minutes to complete. You can check the status of the operation by polling the link:/api/doc/cloud-controlplane/operation/operation-operationservice_getoperation[`GET /operations/\{id}`] endpoint. @@ -124,7 +128,9 @@ ifndef::env-cloud[] + [,bash] ---- -rpk cluster config set iceberg_enabled true +# Optional: set a custom namespace (default is "redpanda") +rpk cluster config set iceberg_default_catalog_namespace '[""]' +rpk cluster config set iceberg_enabled true ---- + [,bash,role=no-copy] diff --git a/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc b/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc index f25ab71625..88c034d889 100644 --- a/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc +++ b/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc @@ -127,7 +127,7 @@ endif::[] To configure your Redpanda cluster to enable Iceberg on a topic and integrate with the AWS Glue Data Catalog: -. Edit your cluster configuration to set the `iceberg_enabled` property to `true`, and set the catalog integration properties listed in the example below. +. Edit your cluster configuration to set the `iceberg_enabled` property to `true`, and set the catalog integration properties listed in the example below. By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a custom namespace, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after Iceberg is enabled. ifndef::env-cloud[] + Run `rpk cluster config edit` to update these properties: @@ -135,6 +135,8 @@ Run `rpk cluster config edit` to update these properties: [,bash] ---- iceberg_enabled: true +# Set a custom namespace instead of the default "redpanda" +iceberg_default_catalog_namespace: [""] # Glue requires Redpanda Iceberg tables to be manually deleted iceberg_delete: false iceberg_catalog_type: rest @@ -173,6 +175,8 @@ rpk profile create --from-cloud rpk cluster config set \ iceberg_enabled=true \ + # Set a custom namespace (default is "redpanda") + iceberg_default_catalog_namespace='[""]' iceberg_catalog_type=rest \ iceberg_rest_catalog_endpoint=https://glue..amazonaws.com/iceberg \ iceberg_rest_catalog_authentication_mode=aws_sigv4 \ diff --git a/modules/manage/pages/iceberg/iceberg-topics-databricks-unity.adoc b/modules/manage/pages/iceberg/iceberg-topics-databricks-unity.adoc index 72a3318b4c..f181b9466d 100644 --- a/modules/manage/pages/iceberg/iceberg-topics-databricks-unity.adoc +++ b/modules/manage/pages/iceberg/iceberg-topics-databricks-unity.adoc @@ -191,8 +191,8 @@ echo "hello world\nfoo bar\nbaz qux" | rpk topic produce --format=' You should see the topic as a table with data in Unity Catalog. The data may take some time to become visible, depending on your config_ref:iceberg_target_lag_ms,true,properties/cluster-properties[`iceberg_target_lag_ms`] setting. -. In Catalog Explorer, open your catalog. You should see a `redpanda` schema, in addition to `default` and `information_schema`. -. The `redpanda` schema and the table residing within this schema are automatically added for you. The table name is the same as the topic name. +. In Catalog Explorer, open your catalog. You should see a `redpanda` schema (or the namespace you configured with config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`]), in addition to `default` and `information_schema`. +. The schema and the table residing within it are automatically added for you. The table name is the same as the topic name. == Query Iceberg table using Databricks SQL diff --git a/modules/manage/pages/iceberg/query-iceberg-topics.adoc b/modules/manage/pages/iceberg/query-iceberg-topics.adoc index 413cace9f6..294d91091b 100644 --- a/modules/manage/pages/iceberg/query-iceberg-topics.adoc +++ b/modules/manage/pages/iceberg/query-iceberg-topics.adoc @@ -97,6 +97,8 @@ endif::[] {"user_id": 2324, "event_type": "BUTTON_CLICK", "ts": "2024-11-25T20:23:59.380Z"} ---- +NOTE: The query examples on this page use `redpanda` as the Iceberg namespace, which is the default. If you configured a different namespace using config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`], replace `redpanda` with your configured namespace. + === Topic with schema (`value_schema_id_prefix` mode) NOTE: The steps in this section also apply to the `value_schema_latest` mode, except the produce step. The `value_schema_latest` mode is not compatible with the Schema Registry wire format. The xref:reference:rpk/rpk-topic/rpk-topic-produce[`rpk topic produce`] command embeds the wire format header, so you must use your own producer code with `value_schema_latest`. diff --git a/modules/manage/pages/iceberg/redpanda-topics-iceberg-snowflake-catalog.adoc b/modules/manage/pages/iceberg/redpanda-topics-iceberg-snowflake-catalog.adoc index bc53d3755f..ce53d8b633 100644 --- a/modules/manage/pages/iceberg/redpanda-topics-iceberg-snowflake-catalog.adoc +++ b/modules/manage/pages/iceberg/redpanda-topics-iceberg-snowflake-catalog.adoc @@ -169,7 +169,7 @@ echo "hello world\nfoo bar\nbaz qux" | rpk topic produce --format=' You should see the topic as a table in Open Catalog. . In Open Catalog, select *Catalogs*, then open your catalog. -. Under your catalog, you should see the `redpanda` namespace, and a table with the name of your topic. The `redpanda` namespace and the table are automatically added for you. +. Under your catalog, you should see the `redpanda` namespace (or the namespace you configured with config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`]), and a table with the name of your topic. The namespace and the table are automatically added for you. == Query Iceberg table in Snowflake diff --git a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc index b5f615ae13..4d98efb8ae 100644 --- a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc +++ b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc @@ -272,7 +272,7 @@ The Spark engine can use the REST catalog to automatically discover the topic's SELECT * FROM streaming.redpanda.; ---- -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. +The Iceberg table name is the name of your Redpanda topic. By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. You can configure a different namespace using the config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] cluster property. See xref:manage:iceberg/about-iceberg-topics.adoc#enable-iceberg-integration[Enable Iceberg integration] for details. 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[]. From b22a1b23011351cf1eac5b6bc668a57cec32c7be Mon Sep 17 00:00:00 2001 From: Kat Batuigas Date: Thu, 19 Mar 2026 11:41:22 -0700 Subject: [PATCH 2/6] Conditionalize out of Cloud for now --- .../manage/pages/iceberg/about-iceberg-topics.adoc | 14 ++++++-------- .../pages/iceberg/iceberg-topics-aws-glue.adoc | 6 +++--- .../iceberg/iceberg-topics-databricks-unity.adoc | 5 +++++ .../manage/pages/iceberg/query-iceberg-topics.adoc | 2 ++ .../redpanda-topics-iceberg-snowflake-catalog.adoc | 5 +++++ .../manage/pages/iceberg/use-iceberg-catalogs.adoc | 5 ++++- 6 files changed, 25 insertions(+), 12 deletions(-) diff --git a/modules/manage/pages/iceberg/about-iceberg-topics.adoc b/modules/manage/pages/iceberg/about-iceberg-topics.adoc index 791acd7b71..f5ab28ead8 100644 --- a/modules/manage/pages/iceberg/about-iceberg-topics.adoc +++ b/modules/manage/pages/iceberg/about-iceberg-topics.adoc @@ -78,8 +78,6 @@ To create an Iceberg table for a Redpanda topic, you must set the cluster config endif::[] . Set the `iceberg_enabled` configuration option on your cluster to `true`. -+ -By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a custom namespace, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after Iceberg is enabled. ifdef::env-cloud[] + [tabs] @@ -91,8 +89,6 @@ rpk:: ---- rpk cloud login rpk profile create --from-cloud -# Optional: set a custom namespace (default is "redpanda") -rpk cluster config set iceberg_default_catalog_namespace '[""]' rpk cluster config set iceberg_enabled true ---- -- @@ -112,12 +108,12 @@ export RP_CLOUD_TOKEN=`curl -X POST "https://auth.prd.cloud.redpanda.com/oauth/t -d "client_id=" \ -d "client_secret="` -# Enable Iceberg; omit iceberg_default_catalog_namespace to use the default "redpanda" namespace +# Update cluster configuration to enable Iceberg topics curl -H "Authorization: Bearer ${RP_CLOUD_TOKEN}" -X PATCH \ "https://api.cloud.redpanda.com/v1/clusters/${RP_CLUSTER_ID}" \ -H 'accept: application/json'\ -H 'content-type: application/json' \ - -d '{"cluster_configuration":{"custom_properties": {"iceberg_default_catalog_namespace":[""], "iceberg_enabled":true}}}' + -d '{"cluster_configuration":{"custom_properties": {"iceberg_enabled":true}}}' ---- The link:/api/doc/cloud-controlplane/operation/operation-clusterservice_updatecluster[`PATCH /clusters/{cluster.id}`] request returns the ID of a long-running operation. The operation may take up to ten minutes to complete. You can check the status of the operation by polling the link:/api/doc/cloud-controlplane/operation/operation-operationservice_getoperation[`GET /operations/\{id}`] endpoint. @@ -126,11 +122,13 @@ The link:/api/doc/cloud-controlplane/operation/operation-clusterservice_updatecl endif::[] ifndef::env-cloud[] + +By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a custom namespace, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after Iceberg is enabled. ++ [,bash] ---- -# Optional: set a custom namespace (default is "redpanda") -rpk cluster config set iceberg_default_catalog_namespace '[""]' rpk cluster config set iceberg_enabled true +# Optional: set a custom namespace (default is "redpanda") +# rpk cluster config set iceberg_default_catalog_namespace '[""]' ---- + [,bash,role=no-copy] diff --git a/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc b/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc index 88c034d889..cb14b1252a 100644 --- a/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc +++ b/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc @@ -127,9 +127,11 @@ endif::[] To configure your Redpanda cluster to enable Iceberg on a topic and integrate with the AWS Glue Data Catalog: -. Edit your cluster configuration to set the `iceberg_enabled` property to `true`, and set the catalog integration properties listed in the example below. By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a custom namespace, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after Iceberg is enabled. +. Edit your cluster configuration to set the `iceberg_enabled` property to `true`, and set the catalog integration properties listed in the example below. ifndef::env-cloud[] + +By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a custom namespace, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after Iceberg is enabled. ++ Run `rpk cluster config edit` to update these properties: + [,bash] @@ -175,8 +177,6 @@ rpk profile create --from-cloud rpk cluster config set \ iceberg_enabled=true \ - # Set a custom namespace (default is "redpanda") - iceberg_default_catalog_namespace='[""]' iceberg_catalog_type=rest \ iceberg_rest_catalog_endpoint=https://glue..amazonaws.com/iceberg \ iceberg_rest_catalog_authentication_mode=aws_sigv4 \ diff --git a/modules/manage/pages/iceberg/iceberg-topics-databricks-unity.adoc b/modules/manage/pages/iceberg/iceberg-topics-databricks-unity.adoc index f181b9466d..3fcef32425 100644 --- a/modules/manage/pages/iceberg/iceberg-topics-databricks-unity.adoc +++ b/modules/manage/pages/iceberg/iceberg-topics-databricks-unity.adoc @@ -191,7 +191,12 @@ echo "hello world\nfoo bar\nbaz qux" | rpk topic produce --format=' You should see the topic as a table with data in Unity Catalog. The data may take some time to become visible, depending on your config_ref:iceberg_target_lag_ms,true,properties/cluster-properties[`iceberg_target_lag_ms`] setting. +ifndef::env-cloud[] . In Catalog Explorer, open your catalog. You should see a `redpanda` schema (or the namespace you configured with config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`]), in addition to `default` and `information_schema`. +endif::[] +ifdef::env-cloud[] +. In Catalog Explorer, open your catalog. You should see a `redpanda` schema, in addition to `default` and `information_schema`. +endif::[] . The schema and the table residing within it are automatically added for you. The table name is the same as the topic name. == Query Iceberg table using Databricks SQL diff --git a/modules/manage/pages/iceberg/query-iceberg-topics.adoc b/modules/manage/pages/iceberg/query-iceberg-topics.adoc index 294d91091b..939674dff5 100644 --- a/modules/manage/pages/iceberg/query-iceberg-topics.adoc +++ b/modules/manage/pages/iceberg/query-iceberg-topics.adoc @@ -97,7 +97,9 @@ endif::[] {"user_id": 2324, "event_type": "BUTTON_CLICK", "ts": "2024-11-25T20:23:59.380Z"} ---- +ifndef::env-cloud[] NOTE: The query examples on this page use `redpanda` as the Iceberg namespace, which is the default. If you configured a different namespace using config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`], replace `redpanda` with your configured namespace. +endif::[] === Topic with schema (`value_schema_id_prefix` mode) diff --git a/modules/manage/pages/iceberg/redpanda-topics-iceberg-snowflake-catalog.adoc b/modules/manage/pages/iceberg/redpanda-topics-iceberg-snowflake-catalog.adoc index ce53d8b633..7488014154 100644 --- a/modules/manage/pages/iceberg/redpanda-topics-iceberg-snowflake-catalog.adoc +++ b/modules/manage/pages/iceberg/redpanda-topics-iceberg-snowflake-catalog.adoc @@ -169,7 +169,12 @@ echo "hello world\nfoo bar\nbaz qux" | rpk topic produce --format=' You should see the topic as a table in Open Catalog. . In Open Catalog, select *Catalogs*, then open your catalog. +ifndef::env-cloud[] . Under your catalog, you should see the `redpanda` namespace (or the namespace you configured with config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`]), and a table with the name of your topic. The namespace and the table are automatically added for you. +endif::[] +ifdef::env-cloud[] +. Under your catalog, you should see the `redpanda` namespace and a table with the name of your topic. The namespace and the table are automatically added for you. +endif::[] == Query Iceberg table in Snowflake diff --git a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc index 4d98efb8ae..35c9d317e9 100644 --- a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc +++ b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc @@ -272,7 +272,10 @@ The Spark engine can use the REST catalog to automatically discover the topic's SELECT * FROM streaming.redpanda.; ---- -The Iceberg table name is the name of your Redpanda topic. By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. You can configure a different namespace using the config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] cluster property. See xref:manage:iceberg/about-iceberg-topics.adoc#enable-iceberg-integration[Enable Iceberg integration] for details. +The Iceberg table name is the name of your Redpanda topic. By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. +ifndef::env-cloud[] +You can configure a different namespace using the config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] cluster property. See xref:manage:iceberg/about-iceberg-topics.adoc#enable-iceberg-integration[Enable Iceberg integration] for details. +endif::[] 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[]. From 6c797c1797ee21470b127d8ffeaade913774abe2 Mon Sep 17 00:00:00 2001 From: Kat Batuigas Date: Thu, 19 Mar 2026 11:44:03 -0700 Subject: [PATCH 3/6] Standardize placeholder --- modules/manage/pages/iceberg/about-iceberg-topics.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/manage/pages/iceberg/about-iceberg-topics.adoc b/modules/manage/pages/iceberg/about-iceberg-topics.adoc index f5ab28ead8..56b54b31bd 100644 --- a/modules/manage/pages/iceberg/about-iceberg-topics.adoc +++ b/modules/manage/pages/iceberg/about-iceberg-topics.adoc @@ -88,7 +88,7 @@ rpk:: [,bash] ---- rpk cloud login -rpk profile create --from-cloud +rpk profile create --from-cloud rpk cluster config set iceberg_enabled true ---- -- From 76d7e0f36f9d9470ec0d15074f55d0b2b3a80e71 Mon Sep 17 00:00:00 2001 From: Kat Batuigas Date: Mon, 23 Mar 2026 17:36:01 -0700 Subject: [PATCH 4/6] Explain table collision risk with shared catalog --- .../manage/pages/iceberg/about-iceberg-topics.adoc | 2 +- .../manage/pages/iceberg/iceberg-topics-aws-glue.adoc | 2 +- .../manage/pages/iceberg/use-iceberg-catalogs.adoc | 11 ++++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/manage/pages/iceberg/about-iceberg-topics.adoc b/modules/manage/pages/iceberg/about-iceberg-topics.adoc index 56b54b31bd..327d7952c9 100644 --- a/modules/manage/pages/iceberg/about-iceberg-topics.adoc +++ b/modules/manage/pages/iceberg/about-iceberg-topics.adoc @@ -122,7 +122,7 @@ The link:/api/doc/cloud-controlplane/operation/operation-clusterservice_updatecl endif::[] ifndef::env-cloud[] + -By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a custom namespace, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after Iceberg is enabled. +When multiple clusters write to the same catalog, each cluster must use a distinct namespace to avoid table name collisions. This is especially critical for REST catalog providers that offer a single global catalog per account (such as AWS Glue), where there is no other isolation mechanism. By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a unique namespace for your cluster's REST catalog integration, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after you enable Iceberg topics on the cluster. + [,bash] ---- diff --git a/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc b/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc index cb14b1252a..a530eeec06 100644 --- a/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc +++ b/modules/manage/pages/iceberg/iceberg-topics-aws-glue.adoc @@ -130,7 +130,7 @@ To configure your Redpanda cluster to enable Iceberg on a topic and integrate wi . Edit your cluster configuration to set the `iceberg_enabled` property to `true`, and set the catalog integration properties listed in the example below. ifndef::env-cloud[] + -By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a custom namespace, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after Iceberg is enabled. +By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. Because AWS Glue provides a single catalog per account, each Redpanda cluster that writes to the same Glue catalog must use a distinct namespace to avoid table name collisions. To set a unique namespace, set config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] at the same time. This property cannot be changed after Iceberg is enabled. + Run `rpk cluster config edit` to update these properties: + diff --git a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc index 35c9d317e9..06f3cd2ad8 100644 --- a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc +++ b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc @@ -90,6 +90,14 @@ To connect to a REST catalog, set the following cluster configuration properties NOTE: You must set `iceberg_rest_catalog_endpoint` at the same time that you set `iceberg_catalog_type` to `rest`. +ifndef::env-cloud[] +==== Configure table namespace + +When multiple clusters write to the same catalog, each cluster must use a distinct namespace to avoid table name collisions. This is critical for REST catalog providers that offer a single global catalog per account (such as AWS Glue), where there is no other isolation mechanism. + +By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. You can configure a unique namespace using the config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] cluster property. You must set this property before enabling the Iceberg integration or at the same time. After you have enabled Iceberg, do not change this property value. +endif::[] + ==== Configure authentication To authenticate with the REST catalog, set the following cluster properties: @@ -273,9 +281,6 @@ SELECT * FROM streaming.redpanda.; ---- The Iceberg table name is the name of your Redpanda topic. By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. -ifndef::env-cloud[] -You can configure a different namespace using the config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] cluster property. See xref:manage:iceberg/about-iceberg-topics.adoc#enable-iceberg-integration[Enable Iceberg integration] for details. -endif::[] 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[]. From 9c55393ebe5038126e6a13b22017203a910c26fb Mon Sep 17 00:00:00 2001 From: Kat Batuigas Date: Mon, 23 Mar 2026 17:56:35 -0700 Subject: [PATCH 5/6] Rephrase --- modules/manage/pages/iceberg/use-iceberg-catalogs.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc index 06f3cd2ad8..25bd63d001 100644 --- a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc +++ b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc @@ -93,9 +93,9 @@ NOTE: You must set `iceberg_rest_catalog_endpoint` at the same time that you set ifndef::env-cloud[] ==== Configure table namespace -When multiple clusters write to the same catalog, each cluster must use a distinct namespace to avoid table name collisions. This is critical for REST catalog providers that offer a single global catalog per account (such as AWS Glue), where there is no other isolation mechanism. +Check if your REST catalog provider has specific requirements or recommendations for namespaces. For example, AWS Glue offers only a single global catalog per account, and each cluster that writes to the same Glue catalog must use a distinct namespace to avoid table name collisions. -By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. You can configure a unique namespace using the config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] cluster property. You must set this property before enabling the Iceberg integration or at the same time. After you have enabled Iceberg, do not change this property value. +To use a unique namespace, configure the config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] cluster property. You must set this property before enabling the Iceberg integration or at the same time. After you have enabled Iceberg, do not change this property value. endif::[] ==== Configure authentication From 9cd4cc33b127dbdf029b5de2e17f794588b8b031 Mon Sep 17 00:00:00 2001 From: Kat Batuigas Date: Tue, 24 Mar 2026 11:39:31 -0700 Subject: [PATCH 6/6] Minor edit --- modules/manage/pages/iceberg/use-iceberg-catalogs.adoc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc index 25bd63d001..4aa3f32a27 100644 --- a/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc +++ b/modules/manage/pages/iceberg/use-iceberg-catalogs.adoc @@ -95,7 +95,7 @@ ifndef::env-cloud[] Check if your REST catalog provider has specific requirements or recommendations for namespaces. For example, AWS Glue offers only a single global catalog per account, and each cluster that writes to the same Glue catalog must use a distinct namespace to avoid table name collisions. -To use a unique namespace, configure the config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] cluster property. You must set this property before enabling the Iceberg integration or at the same time. After you have enabled Iceberg, do not change this property value. +By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. To use a unique namespace, configure the config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`] cluster property. You must set this property before enabling the Iceberg integration or at the same time. After you have enabled Iceberg, do not change this property value. endif::[] ==== Configure authentication @@ -280,7 +280,10 @@ The Spark engine can use the REST catalog to automatically discover the topic's SELECT * FROM streaming.redpanda.; ---- -The Iceberg table name is the name of your Redpanda topic. By default, Redpanda creates Iceberg tables in a namespace called `redpanda`. +The Iceberg table name is the name of your Redpanda topic. +ifndef::env-cloud[] +If you configured a different namespace using config_ref:iceberg_default_catalog_namespace,true,properties/cluster-properties[`iceberg_default_catalog_namespace`], replace `redpanda` with your configured namespace. +endif::[] 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[].