Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@
**** xref:networking:azure-private-link.adoc[]
*** xref:networking:dedicated/gcp/index.adoc[GCP]
**** xref:networking:dedicated/gcp/vpc-peering-gcp.adoc[Add a Peering Connection]
**** xref:networking:configure-private-service-connect-in-cloud-ui.adoc[Configure Private Service Connect in the Cloud UI]
**** xref:networking:gcp-private-service-connect.adoc[Configure Private Service Connect with the Cloud API]
**** xref:networking:dedicated/gcp/configure-psc-in-ui.adoc[Configure Private Service Connect in the Cloud UI]
**** xref:networking:dedicated/gcp/configure-psc-in-api.adoc[Configure Private Service Connect with the Cloud API]

* xref:security:index.adoc[Security]
** xref:security:cloud-authentication.adoc[Authentication]
Expand Down
20 changes: 10 additions & 10 deletions modules/networking/pages/aws-privatelink.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export RESOURCE_GROUP_ID=<uuid>

. Call xref:api:ROOT:cloud-controlplane-api.adoc#post-/v1/networks[`POST /v1/networks`] to create a network.
+
Make sure to supply your own values in the following example request. Store the network ID (`network_id`) after the network is created to check whether you can proceed to cluster creation.
Make sure to supply your own values in the following example request. The example uses a BYOC cluser. For a Dedicated cluster, set `"cluster_type": "TYPE_DEDICATED"`. Store the network ID (`network_id`) after the network is created to check whether you can proceed to cluster creation.
+
--
- `name`
Expand Down Expand Up @@ -84,11 +84,11 @@ In the example below, make sure to set your own values for the following fields:
+
--
- `zones`: for example, `"usw2-az1","usw2-az2","usw2-az3"`
- `type`: `TYPE_DEDICATED` for Dedicated Cloud clusters, or `TYPE_BYOC` for BYOC clusters
- `tier`: for example, `tier-1-aws-v2-arm`
- `type`: `"TYPE_BYOC"` or `"TYPE_DEDICATED"`
- `tier`: for example, `"tier-1-aws-v2-arm"`
- `name`
- `connect_console`: Whether to enable connections to Redpanda Console (boolean)
- `allowed_principals`: Amazon Resource Names (ARNs) for the AWS principals allowed to access the endpoint service. For example, for all principals in an account, use `arn:aws:iam::account_id:root`. See https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permission[Configure an endpoint service^] for details.
- `allowed_principals`: Amazon Resource Names (ARNs) for the AWS principals allowed to access the endpoint service. For example, for all principals in an account, use `"arn:aws:iam::account_id:root"`. See https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permission[Configure an endpoint service^] for details.
--
+
[,bash]
Expand Down Expand Up @@ -120,7 +120,7 @@ CLUSTER_ID=`curl -vv -X POST \
echo $CLUSTER_ID
----
+
**BYOC clusters:** Check that the cluster operation is completed by calling xref:api:ROOT:cloud-controlplane-api.adoc#get-/v1/operations/-id-[`GET /v1/operations/\{id}`], and passing the operation ID returned from the Create Cluster call.
**BYOC clusters only:** Check that the cluster operation is completed by calling xref:api:ROOT:cloud-controlplane-api.adoc#get-/v1/operations/-id-[`GET /v1/operations/\{id}`], and passing the operation ID returned from the Create Cluster call.
+
When the Create Cluster operation is completed (`STATE_COMPLETED`), run the following `rpk cloud` command to finish setting up your BYOC cluster:
+
Expand All @@ -146,7 +146,7 @@ In the example below, make sure to set your own value for the following field:
+
--
- `connect_console`: Whether to enable connections to Redpanda Console (boolean)
- `allowed_principals`: Amazon Resource Names (ARNs) for the AWS principals allowed to access the endpoint service. For example, for all principals in an account, use `arn:aws:iam::account_id:root`. See https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permission[Configure an endpoint service^] for details.
- `allowed_principals`: Amazon Resource Names (ARNs) for the AWS principals allowed to access the endpoint service. For example, for all principals in an account, use `"arn:aws:iam::account_id:root"`. See https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permission[Configure an endpoint service^] for details.
--
+
[,bash]
Expand Down Expand Up @@ -217,7 +217,7 @@ xref:networking:byoc/aws/vpc-peering-aws.adoc[VPC peering] and PrivateLink will
VPC peering and PrivateLink can both be used at the same time if Kafka clients are connecting from distinct VPCs. For example, in a private Redpanda cluster, you can connect your internal Kafka clients over VPC peering, and enable PrivateLink for external services.
====

The VPC region must be the same region where the Redpanda cluster is deployed. Run the following command to create the VPC:
The VPC region must be the same region where the Redpanda cluster is deployed. To create the VPC, run:

[,bash]
----
Expand All @@ -235,7 +235,7 @@ You can also use an existing VPC. You need the VPC ID to <<modify-vpc-dns-attrib

=== Modify VPC DNS attributes

Modify the VPC attributes using the following commands:
To modify the VPC attributes, run:

[,bash]
----
Expand All @@ -250,7 +250,7 @@ These commands enable DNS hostnames and resolution for instances in the VPC.

=== Create security group

You need the security group ID `security_group_id` from the command output to <<add-security-group-rules,add security group rules>>. Run the following command to create a security group:
You need the security group ID `security_group_id` from the command output to <<add-security-group-rules,add security group rules>>. To create a security group, run:

[,bash]
----
Expand Down Expand Up @@ -369,5 +369,5 @@ include::networking:partial$private-links-test-connection.adoc[]
include::shared:partial$suggested-reading.adoc[]

* xref:manage:api/cloud-api-overview.adoc[]
* xref:networking:dedicated/vpc-peering.adoc[]
* xref:networking:byoc/aws/vpc-peering-aws.adoc[]
* xref:networking:dedicated/vpc-peering.adoc[]
4 changes: 2 additions & 2 deletions modules/networking/pages/azure-private-link.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ After <<get-a-cloud-api-access-token,getting an access token>>, you can <<create
== Requirements

* Install xref:manage:rpk/rpk-install.adoc[`rpk`].
* Install `jq` [https://jqlang.org/download/], which is used to parse JSON values from API responses.
* Install https://jqlang.org/download/[`jq`^], which is used to parse JSON values from API responses.
* You will use the https://learn.microsoft.com/en-us/cli/azure/[Azure CLI^] to authenticate with Azure and configure resources in your Azure account.
* You will use the xref:deploy:deployment-option/cloud/api/cloud-api-overview.adoc[Redpanda Cloud API] to enable the Redpanda Private Link service for your clusters. Follow the steps on this page to <<get-a-cloud-api-access-token, get an access token>>.

Expand Down Expand Up @@ -139,7 +139,7 @@ CLUSTER_ID=`curl -vv -X POST \
echo $CLUSTER_ID
----

. **BYOC clusters:** Check that the cluster operation is completed by calling xref:api:ROOT:cloud-controlplane-api.adoc#get-/v1/operations/-id-[`GET /v1/operations/\{id}`], and passing the operation ID returned from the Create Cluster call.
. **BYOC clusters only:** Check that the cluster operation is completed by calling xref:api:ROOT:cloud-controlplane-api.adoc#get-/v1/operations/-id-[`GET /v1/operations/\{id}`], and passing the operation ID returned from the Create Cluster call.
+
When the Create Cluster operation is completed (`STATE_COMPLETED`), run the following `rpk cloud` command to finish setting up your BYOC cluster with Private Link enabled:
+
Expand Down
Original file line number Diff line number Diff line change
@@ -1,109 +1,6 @@
= Configure GCP Private Service Connect in the Cloud UI
:description: Set up GCP Private Service Connect in the Redpanda Cloud UI.
:page-aliases: deploy:deployment-option/cloud/configure-private-service-connect-in-cloud-ui.adoc
:env-byoc: true

[NOTE]
====

* This guide is for configuring GCP Private Service Connect using the Redpanda Cloud UI. To configure and manage Private Service on an existing public cluster, you must use the xref:networking:gcp-private-service-connect.adoc[Redpanda Cloud API].
* The latest version of Redpanda GCP Private Service Connect (available March, 2025) supports AZ affinity. This allows requests from Private Service Connect endpoints to stay within the same availability zone, avoiding additional networking costs.
* DEPRECATION: The original Redpanda GCP Private Service Connect is deprecated and will be removed in a future release. For more information, see xref:manage:maintenance.adoc#deprecated-features[Deprecated features].
====


The Redpanda GCP Private Service Connect service provides secure access to Redpanda Cloud from your own VPC. Traffic over Private Service Connect does not go through the public internet because these connections are treated as their own private GCP service. While your VPC has access to the Redpanda VPC, Redpanda cannot access your VPC.

Consider using the endpoint services if you have multiple VPCs and could benefit from a more simplified approach to network management.

[NOTE]
====
* Each client VPC can have one endpoint connected to Private Service Connect.
* Private Service Connect allows overlapping xref:networking:cidr-ranges.adoc[CIDR ranges] in VPC networks.
* The number of connections is limited only by your Redpanda usage tier. Private Service Connect does not add extra connection limits.
* You control from which GCP projects connections are allowed.
====

== Requirements

* Use the https://cloud.google.com/sdk/docs/install[gcloud^] command-line interface (CLI) to create the consumer-side resources, such as a client VPC and forwarding rule, or to modify existing resources to use the Private Service Connect attachment created for your cluster.
* The client VPC must be in the same region as your Redpanda cluster.

== Enable endpoint service for existing clusters

. In the Redpanda Cloud UI, open your https://cloud.redpanda.com/clusters[cluster^], and click **Cluster settings**.
. Under Private Service Connect, click **Enable**.
. For xref:get-started:cluster-types/byoc/gcp/vpc-byo-gcp.adoc[BYOVPC clusters], you need a NAT subnet with `purpose` set to `PRIVATE_SERVICE_CONNECT`. You also need to create VPC firewall rules to allow Private Service Connect traffic. You can use the `gcloud` CLI:
+
NOTE: The firewall rules support up to 20 Redpanda brokers. If you have more than 20 brokers, or for help enabling Private Service Connect, contact https://support.redpanda.com/hc/en-us/requests/new[Redpanda support^].
+
[,bash]
----
gcloud compute networks subnets create <subnet-name> \
--project=<host-project-id> \
--network=<shared-vpc-name> \
--region=<region> \
--range=<subnet-range> \
--purpose=PRIVATE_SERVICE_CONNECT
----
+
[,bash]
----
gcloud compute firewall-rules create redpanda-psc \
--description="Allow access to Redpanda PSC endpoints" \
--network="<shared-vpc-name>" \
--project="<host-project-id>" \
--direction="INGRESS" \
--target-tags="redpanda-node" \
--source-ranges="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,100.64.0.0/10" \
--allow="tcp:30181,tcp:30282,tcp:30292,tcp:31004,tcp:31082-31101,tcp:31182-31201,tcp:31282-31301,tcp:32092-32111,tcp:32192-32211,tcp:32292-32311"
----
+
Provide your values for the following placeholders:
+
- `<subnet-name>`: The name of the NAT subnet.
- `<host-project-id>`: The host GCP project ID.
- `<shared-vpc-name>`: The name of the VPC being used for your Redpanda Cloud cluster.
- `<region>`: The region of the Redpanda Cloud cluster.
- `<subnet-range>`: The CIDR range of the subnet. The mask should be at least `/29`. Each Private Service Connect connection takes up one IP address from the NAT subnet, so the CIDR must be able to accommodate all projects from which connections to the service attachment will be issued.
+
See the GCP documentation for https://cloud.google.com/vpc/docs/configure-private-service-connect-producer#add-subnet-psc[creating a subnet for Private Service Connect^].
. For the accepted consumers list, you need the GCP project IDs from which incoming connections will be accepted.
. It may take several minutes for your cluster to update. When the update is complete, the Private Service Connect status in **Cluster settings** changes from **In progress** to **Enabled**.

=== Deploy consumer-side resources

For each VPC network, you must complete the following steps to successfully connect to the service and use Kafka API and other Redpanda services such as HTTP Proxy.

. In **Cluster settings**, copy the **Service attachment URL** under **Private Service Connect**. Use this URL to create the Private Service Connect endpoint in GCP.

. Create a private DNS zone. Use the cluster **DNS zone** value as the DNS name.
+
[,bash]
----
gcloud dns --project=<gcp-project-id> managed-zones create <dns-zone-name> --description="<description>" --dns-name="<dns-zone-from-the-ui>" --visibility="private" --networks="<list-of-fully-qualified-names-of-networks-where-the-dns-zone-will-be-visible>"
----

. In the newly-created DNS zone, create a wildcard DNS record using the cluster **DNS record** value.
+
[,bash]
----
gcloud dns --project=<gcp-project-id> record-sets create '*.<dns-zone-from-the-ui>' --zone="<dns-zone-name>" --type="A" --ttl="300" --rrdatas="<psc-endpoint-ip>"
----

. Confirm that your GCP VPC firewall allows traffic to and from the Private Service Connect forwarding rule IP address, on the expected ports.

== Access Redpanda services through VPC endpoint

After you have enabled Private Service Connect for your cluster, your connection URLs are available in the *How to Connect* section of the cluster overview in the Redpanda Cloud UI.

include::networking:partial$private-links-access-rp-services-through-vpc.adoc[]

== Test the connection

You can test the connection to the endpoint service from any VM or container in the consumer VPC. If configuring a client isn't possible right away, you can do these checks using `rpk` or cURL:

include::networking:partial$private-links-test-connection.adoc[]

== Disable endpoint service

In **Cluster settings**, click **Disable**. Existing connections are closed after GCP Private Service Connect is disabled. To connect using Private Service Connect again, you must re-enable the service.
include::networking:partial$psc-ui.adoc[]
Loading