# Data plane setup on GKE (GCP)

Union.ai's modular architecture allows for great flexibility and control.
You can decide how many clusters to have, their shape, and who has access to what.
All communication is encrypted.  The Union architecture is described on the [Architecture](https://www.union.ai/docs/v2/union/deployment/selfmanaged/architecture/_index) page.

If you already have a GKE cluster, GCS buckets, Artifact Registry repository, and Workload Identity configured, skip directly to [Deploy the dataplane](https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-gcp/deploy-dataplane/page.md).

Otherwise, start with [Prepare infrastructure](https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-gcp/prepare-infra/page.md) to set up the required GCP resources.

## Subpages

- [Prepare infrastructure](https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-gcp/prepare-infra/page.md)
  - Environment variables
  - GKE Cluster
  - BuildKit node pool
  - GCS
  - CORS Configuration
  - Data Retention
  - Artifact Registry
  - Workload Identity
  - 1. Create a Google Service Account
  - 2. Bind the GSA to the Kubernetes service account
  - 3. Grant GCS access
  - 4. Grant Artifact Registry access
  - 5. Grant token creator access
- [Deploy the dataplane](https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-gcp/deploy-dataplane/page.md)
  - Assumptions
  - Prerequisites
  - Deploy the Union.ai operator

---
**Source**: https://github.com/unionai/unionai-docs/blob/main/content/deployment/selfmanaged/selfmanaged-gcp/_index.md
**HTML**: https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-gcp/
