> ## Documentation Index
> Fetch the complete documentation index at: https://controlplanecorporation-majid-docs-content-expansion.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Location

> Built-in cloud regions and CPLN BYOK clusters under one contract: the org decides which are enabled, each GVC decides which it spans, and geography decides which answers a request.

A location is what a [GVC](/concepts/gvc) selects to run its [workloads](/concepts/workload) in. Control Plane supplies a catalog of them across AWS, GCP, Azure, and OCI regions, and [CPLN BYOK](/byok/overview) adds locations backed by Kubernetes clusters of your own, which you can run yourself or have Control Plane run for you through [Managed Kubernetes](/mk8s/overview). Control Plane deploys each workload in a GVC to every location the GVC spans, one [deployment](/concepts/deployment) per location.

## How It Fits

A workload behaves the same in either kind.

| Kind of location            | What is behind it                                                                                                                                                                            | How it joins your org                                                                                 |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Built-in                    | A cloud region Control Plane operates on AWS, GCP, Azure, or OCI                                                                                                                             | Control Plane seeds a working set into every new [org](/concepts/org), and provisions more on request |
| [CPLN BYOK](/byok/overview) | One or more Kubernetes clusters, each running Control Plane's own components. Clusters you already run, or clusters Control Plane provisions and operates for you through Managed Kubernetes | You create the location, then apply its install command to each cluster                               |

The Managed Kubernetes path runs the install for you: enabling the cluster's `CPLN Platform` add-on registers it against a BYOK location you created, instead of you applying the command by hand. Either way the result is one BYOK location that a GVC deploys to like any other.

<img src="https://mintcdn.com/controlplanecorporation-majid-docs-content-expansion/S7Ea4kS8-f2sk9CI/images/concepts/location-kinds.svg?fit=max&auto=format&n=S7Ea4kS8-f2sk9CI&q=85&s=daec0be0542f1bf4fa61bd67c86ef76f" alt="The locations in your org, of two kinds. Built-in: four of the cloud regions Control Plane operates, aws-us-east-1 marked with the AWS logo, gcp-us-central1 with the Google Cloud logo, azure-westeurope with the Azure logo, and oci-us-ashburn-1 with the Oracle logo. CPLN BYOK: two locations marked with the Kubernetes logo, my-hardware, which is a cluster you run yourself, and my-mk8s, which is a Managed Kubernetes cluster. A GVC selects the ones it spans, and Control Plane deploys your workloads to each." style={{maxWidth:'720px',width:'100%',margin:'1.75rem auto',display:'block'}} width="720" height="358" data-path="images/concepts/location-kinds.svg" />

Locations belong to the org, so the same location can serve several GVCs, and two GVCs in one org can span entirely different sets.

## Key Behaviors

* **Enabling and disabling a location moves workloads.** Disabling one removes its [replicas](/concepts/replica) and routes traffic to the locations that remain. The GVC keeps the location selected, so enabling it again brings the workloads back.
* **One BYOK location can sit in front of several clusters.** Install it into two Kubernetes clusters and both serve the location; Control Plane places each GVC's workloads on one of them, which spreads the GVCs across the clusters.
* **Geography drives routing.** Each location carries its coordinates, city, state, country, and continent, and that is what latency-based DNS geo routing and [location routing options](/reference/gvc#location-routing-options) work from.
* **The geography is queryable too.** Control Plane writes `cpln/city`, `cpln/state`, `cpln/country`, and `cpln/continent` [tags](/core/misc#tags) from those coordinates, so a GVC can pick locations with a [query](/core/query) instead of by name.
* **Some locations publish the [public IP ranges](/reference/location#public-ips) their traffic comes from.** They are what an external service allowlists when it accepts callers only from known addresses. Read them in the Console or with `cpln location get -o json`.

## Gotchas

* **A new org does not get the whole catalog.** It is seeded with a working set of built-in locations. A region you need that is not listed is provisioned on request; email [support@controlplane.com](mailto:support@controlplane.com) with the provider and region.
* **A location's name, provider, and region never change.** What you edit is its enabled state and your own tags. Control Plane owns the `cpln/` geo tags and, on a built-in location, the description.
* **Disabling is not a pause.** Replicas in a disabled location are removed, not stopped, and every GVC that selects it loses them at once.
* **A workload has no location field of its own.** It runs in every location its GVC spans. To take one location out of service for a single workload, suspend it there with [location-specific options](/reference/workload/general#location-specific-options).
* **Not every location reports IP ranges, and the ones that do can change.** Control Plane populates the field per location. Re-read the location API on a schedule instead of hardcoding what you saw once.

## Learn More

<CardGroup cols={2}>
  <Card title="Location reference" icon="https://mintcdn.com/controlplanecorporation-majid-docs-content-expansion/S7Ea4kS8-f2sk9CI/icons/location.svg?fit=max&auto=format&n=S7Ea4kS8-f2sk9CI&q=85&s=99a6f8b4e7447b6bc9c60093aa7f6a91" href="/reference/location" width="512" height="512" data-path="icons/location.svg">
    Fields, built-in tags, public IP ranges, and permissions.
  </Card>

  <Card title="GVC (Global Virtual Cloud)" icon="https://mintcdn.com/controlplanecorporation-majid-docs-content-expansion/Ry1Mkgc7uPHC-gur/icons/gvc.svg?fit=max&auto=format&n=Ry1Mkgc7uPHC-gur&q=85&s=82438d45df407eb2a10e0843f549cbfa" href="/concepts/gvc" width="512" height="512" data-path="icons/gvc.svg">
    How a GVC selects locations and routes traffic between them.
  </Card>

  <Card title="CPLN BYOK" icon="https://mintcdn.com/controlplanecorporation-majid-docs-content-expansion/S7Ea4kS8-f2sk9CI/icons/controlplane.svg?fit=max&auto=format&n=S7Ea4kS8-f2sk9CI&q=85&s=b47d5ad048d0b21b76cd063001083f26" href="/byok/overview" width="77" height="87" data-path="icons/controlplane.svg">
    Create a location and install it into the clusters you already run.
  </Card>

  <Card title="Managed Kubernetes" icon="https://mintcdn.com/controlplanecorporation-majid-docs-content-expansion/Ry1Mkgc7uPHC-gur/icons/kubernetes.svg?fit=max&auto=format&n=Ry1Mkgc7uPHC-gur&q=85&s=87d1a7db99bf4ccb443e11e064e45a9b" href="/mk8s/overview" width="230" height="223" data-path="icons/kubernetes.svg">
    Have Control Plane provision and operate the cluster behind a BYOK location.
  </Card>
</CardGroup>
