Repository: Kong/developer.konghq.com
Pull request #1106: Mesh: License
Author: login: Guaris
Created: 2025-04-09T17:12:51Z | Merged: 2025-04-09T23:14:59Z

## Description

Fixes #1105 

## Preview Links
https://deploy-preview-1106--kongdeveloper.netlify.app/mesh/license/

## Checklist 

- [x] Every page is page one.
- [x] Tested how-to docs. If not, note why here. 
- [x] All pages contain metadata.
- [x] Updated [sources.yaml](https://github.com/Kong/developer.konghq.com/blob/main/tools/track-docs-changes/config/sources.yml). For more info, review [track docs changes](https://github.com/Kong/developer.konghq.com/tree/main/tools/track-docs-changes)
- [x] Any new docs link to existing docs.
- [x] All autogenerated instructions render correctly (API, decK, Konnect, Kong Manager). 
- [x] Style guide (capitalized gateway entities, placeholder URLs) implemented correctly.
- [x] Every page has a `description` entry in frontmatter


Linked issue #1105: mesh: license

Diff:
diff --git a/app/mesh/license.md b/app/mesh/license.md
new file mode 100644
index 0000000000..6a9b824ba3
--- /dev/null
+++ b/app/mesh/license.md
@@ -0,0 +1,146 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes. When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   kubectl create namespace kong-mesh-system
+   kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
+   ```
+
+   Where:
+   * `kong-mesh-system` is the namespace where {{site.mesh_product_name}} Control Plane is installed
+   * `/path/to/license.json` is the path to a valid license file. The filename should be `license.json` unless otherwise specified in `values.yaml`.
+
+1. Modify the `values.yaml` file to point to the secret. For example:
+
+   ```yaml
+   kuma:
+     controlPlane:
+       secrets:
+         - Env: "KMESH_LICENSE_INLINE"
+           Secret: "kong-mesh-license"
+           Key: "license.json"
+   ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+In Universal mode, configure a valid license by using one of the following environment variables:
+
+* `KMESH_LICENSE_PATH`: The path to a valid license file
+* `KMESH_LICENSE_INLINE`: The actual contents of the license file
+{% endnavtab %}
+{% endnavtabs %}
+## Update a license
+
+{% navtabs "Update a License" %}
+{% navtab "Kubernetes" %}
+
+
+1. Update the `kong-mesh-license` secret in `kong-mesh-system` namespace with a new license:
+  ```sh
+  kubectl edit secrets -n kong-mesh-system kong-mesh-license
+  ```
+1. Restart the Control Plane:
+  ```sh
+  kubectl rollout restart -n kong-mesh-system deployment kong-mesh-control-plane
+  ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+1. Update the license by doing one of the following:
+  - If you used `KMESH_LICENSE_PATH`, update the content of the file.
+  - If you used `KMESH_LICENSE_INLINE`, update the value of the environment variable.
+1. Restart the Control Plane.
+{% endnavtab %}
+{% endnavtabs %}
+
+## Multi-zone
+
+In a multi-zone deployment of {{site.mesh_product_name}}, only the global Control Plane should be configured with a valid license. The global Control Plane automatically synchronizes the license to any remote Control Plane that is part of the cluster.
+
+In a multi-zone deployment, the DPPs count includes the total aggregate of every Data Plane proxy in every zone. For example, with a limit of 5 DPPs and 2 zones, you can connect 3 DPPs in one zone and 2 in another, but not 5 DPPs for each zone.
+
+
+## Licensed metrics
+
+The license encourages a pay-as-you-go model that delivers the best benefits to you, the end user, since the derived value of {{site.mesh_product_name}} is directly associated to the positive benefits of real service mesh usage.
+Licenses are based on:
+
+* The total number of connected Data Plane Proxies (DPPs), across all zones
+
+* The license expiration date
+
+
+
+In the context of the metric, a Data Plane proxy (DPP) is a standard Data Plane proxy that is deployed next to your services, either as a sidecar container or in a virtual machine. Gateway Data Plane proxies, zone ingresses, and zone egresses are not counted.
+
+You can measure the number of Data Plane proxies needed in {{site.mesh_product_name}} by the 
+number of services you want to include in your service meshes. Use the following formula:
+
+```
+Number of DPPs = Number of Pods + Number of VMs.
+```
+{:.no-copy-code}
+
+
+## License behaviours
+
+With an expired license or invalid license, the Control Plane will fail to start.
+If the license expires while the control-plane is running it will keep running but a restart of the instance will fail. 
+The Control Plane will issue a warning in the logs and the GUI when the license expires in less than 30 days.
+
+With a valid issued license, a Data Plane proxy will always be able to join the service mesh, even if you go above the allowed limit to prevent service disruptions.
+If the number of DPPs does go above the limit, you will see a warning in the GUI and in the Control Plane logs. 
+
+With the pre-bundled license, if you go over the maximum allowed number of DPPs, the system will automatically refuse their connections.
diff --git a/tools/track-docs-changes/config/sources.yml b/tools/track-docs-changes/config/sources.yml
index 878288620a..65f326e331 100644
--- a/tools/track-docs-changes/config/sources.yml
+++ b/tools/track-docs-changes/config/sources.yml
@@ -1064,3 +1064,6 @@ app/mesh/access-audit.md:
 app/mesh/cert-manager.md:
   - /app/_src/mesh/features/cert-manager.md
 
+app/mesh/license.md:
+  - /app/_src/mesh/production/cp-deployment/license.md
+


Reviews:
user: login: cloudjumpercat
body: Left suggestions for all changes!
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T20:37:02Z

Review comments:
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes. When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
[following instructions](#configure-the-license). 
```
seemed to repeat what was said previously
created_at: 2025-04-09T20:24:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
kumactl install control-plane --license-path=/path/to/license.json
```
created_at: 2025-04-09T20:25:05Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   $ kubectl create namespace kong-mesh-system
+   $ kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
   kubectl create namespace kong-mesh-system
   kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
```
created_at: 2025-04-09T20:26:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   $ kubectl create namespace kong-mesh-system
+   $ kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
+   ```
+
+   Where:
+   * `kong-mesh-system` is the namespace where {{site.mesh_product_name}} Control Plane is installed
+   * `/path/to/license.json` is the path to a valid license file. The filename should be `license.json` unless otherwise specified in `values.yaml`.
+
+1. Modify the `values.yaml` file to point to the secret. For example:
+
+   ```yaml
+   kuma:
+     controlPlane:
+       secrets:
+         - Env: "KMESH_LICENSE_INLINE"
+           Secret: "kong-mesh-license"
+           Key: "license.json"
+   ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+In Universal mode, configure a valid license by using the following environment variables:
+
+* `KMESH_LICENSE_PATH` - value with the path to a valid license file.
+* `KMESH_LICENSE_INLINE` - value with the actual contents of the license file.
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
* `KMESH_LICENSE_PATH`: The path to a valid license file
* `KMESH_LICENSE_INLINE`: The actual contents of the license file
```
created_at: 2025-04-09T20:28:01Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   $ kubectl create namespace kong-mesh-system
+   $ kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
+   ```
+
+   Where:
+   * `kong-mesh-system` is the namespace where {{site.mesh_product_name}} Control Plane is installed
+   * `/path/to/license.json` is the path to a valid license file. The filename should be `license.json` unless otherwise specified in `values.yaml`.
+
+1. Modify the `values.yaml` file to point to the secret. For example:
+
+   ```yaml
+   kuma:
+     controlPlane:
+       secrets:
+         - Env: "KMESH_LICENSE_INLINE"
+           Secret: "kong-mesh-license"
+           Key: "license.json"
+   ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+In Universal mode, configure a valid license by using the following environment variables:
+
+* `KMESH_LICENSE_PATH` - value with the path to a valid license file.
+* `KMESH_LICENSE_INLINE` - value with the actual contents of the license file.
+{% endnavtab %}
+{% endnavtabs %}
+## Update a license
+
+{% navtabs "Update a License" %}
+{% navtab "Kubernetes" %}
+
+
+1. Update the `kong-mesh-license` Secret in `kong-mesh-system` namespace with a new license:
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
1. Update the `kong-mesh-license` secret in `kong-mesh-system` namespace with a new license:
```
created_at: 2025-04-09T20:28:24Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   $ kubectl create namespace kong-mesh-system
+   $ kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
+   ```
+
+   Where:
+   * `kong-mesh-system` is the namespace where {{site.mesh_product_name}} Control Plane is installed
+   * `/path/to/license.json` is the path to a valid license file. The filename should be `license.json` unless otherwise specified in `values.yaml`.
+
+1. Modify the `values.yaml` file to point to the secret. For example:
+
+   ```yaml
+   kuma:
+     controlPlane:
+       secrets:
+         - Env: "KMESH_LICENSE_INLINE"
+           Secret: "kong-mesh-license"
+           Key: "license.json"
+   ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+In Universal mode, configure a valid license by using the following environment variables:
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
In Universal mode, configure a valid license by using one of the following environment variables:
```
created_at: 2025-04-09T20:29:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   $ kubectl create namespace kong-mesh-system
+   $ kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
+   ```
+
+   Where:
+   * `kong-mesh-system` is the namespace where {{site.mesh_product_name}} Control Plane is installed
+   * `/path/to/license.json` is the path to a valid license file. The filename should be `license.json` unless otherwise specified in `values.yaml`.
+
+1. Modify the `values.yaml` file to point to the secret. For example:
+
+   ```yaml
+   kuma:
+     controlPlane:
+       secrets:
+         - Env: "KMESH_LICENSE_INLINE"
+           Secret: "kong-mesh-license"
+           Key: "license.json"
+   ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+In Universal mode, configure a valid license by using the following environment variables:
+
+* `KMESH_LICENSE_PATH` - value with the path to a valid license file.
+* `KMESH_LICENSE_INLINE` - value with the actual contents of the license file.
+{% endnavtab %}
+{% endnavtabs %}
+## Update a license
+
+{% navtabs "Update a License" %}
+{% navtab "Kubernetes" %}
+
+
+1. Update the `kong-mesh-license` Secret in `kong-mesh-system` namespace with a new license:
+  ```sh
+  kubectl edit secrets -n kong-mesh-system kong-mesh-license
+  ```
+1. Restart the Control Plane:
+  ```sh
+  kubectl rollout restart -n kong-mesh-system deployment kong-mesh-control-plane
+  ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+1. Update the license by doing one of the following:
+  - If you used `KMESH_LICENSE_PATH`, update the content of the file.
+  - If you used `KMESH_LICENSE_INLINE`, update the value of the environment variable.
+1. Restart the Control Plane.
+{% endnavtab %}
+{% navtab "Multi-zone" %}
+## Multi-zone
+
+In a multi-zone deployment of {{site.mesh_product_name}}, only the global Control Plane should be configured with a valid license. The global Control Plane automatically synchronizes the license to any remote Control Plane that is part of the cluster.
+
+In a multi-zone deployment, the DPPs count includes the total aggregate of every Data Plane proxy in every zone. For example, with a limit of 5 DPPs and 2 zones, you can connect 3 DPPs in one zone and 2 in another, but not 5 DPPs for each zone.
+{% endnavtab %}
+{% endnavtabs %}
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
{% endnavtabs %}

## Multi-zone

In a multi-zone deployment of {{site.mesh_product_name}}, only the global Control Plane should be configured with a valid license. The global Control Plane automatically synchronizes the license to any remote Control Plane that is part of the cluster.

In a multi-zone deployment, the DPPs count includes the total aggregate of every Data Plane proxy in every zone. For example, with a limit of 5 DPPs and 2 zones, you can connect 3 DPPs in one zone and 2 in another, but not 5 DPPs for each zone.
```
I think this was accidentally added to a tab.
created_at: 2025-04-09T20:30:57Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   $ kubectl create namespace kong-mesh-system
+   $ kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
+   ```
+
+   Where:
+   * `kong-mesh-system` is the namespace where {{site.mesh_product_name}} Control Plane is installed
+   * `/path/to/license.json` is the path to a valid license file. The filename should be `license.json` unless otherwise specified in `values.yaml`.
+
+1. Modify the `values.yaml` file to point to the secret. For example:
+
+   ```yaml
+   kuma:
+     controlPlane:
+       secrets:
+         - Env: "KMESH_LICENSE_INLINE"
+           Secret: "kong-mesh-license"
+           Key: "license.json"
+   ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+In Universal mode, configure a valid license by using the following environment variables:
+
+* `KMESH_LICENSE_PATH` - value with the path to a valid license file.
+* `KMESH_LICENSE_INLINE` - value with the actual contents of the license file.
+{% endnavtab %}
+{% endnavtabs %}
+## Update a license
+
+{% navtabs "Update a License" %}
+{% navtab "Kubernetes" %}
+
+
+1. Update the `kong-mesh-license` Secret in `kong-mesh-system` namespace with a new license:
+  ```sh
+  kubectl edit secrets -n kong-mesh-system kong-mesh-license
+  ```
+1. Restart the Control Plane:
+  ```sh
+  kubectl rollout restart -n kong-mesh-system deployment kong-mesh-control-plane
+  ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+1. Update the license by doing one of the following:
+  - If you used `KMESH_LICENSE_PATH`, update the content of the file.
+  - If you used `KMESH_LICENSE_INLINE`, update the value of the environment variable.
+1. Restart the Control Plane.
+{% endnavtab %}
+{% navtab "Multi-zone" %}
+## Multi-zone
+
+In a multi-zone deployment of {{site.mesh_product_name}}, only the global Control Plane should be configured with a valid license. The global Control Plane automatically synchronizes the license to any remote Control Plane that is part of the cluster.
+
+In a multi-zone deployment, the DPPs count includes the total aggregate of every Data Plane proxy in every zone. For example, with a limit of 5 DPPs and 2 zones, you can connect 3 DPPs in one zone and 2 in another, but not 5 DPPs for each zone.
+{% endnavtab %}
+{% endnavtabs %}
+
+
+## Licensed metrics
+
+The license encourages a pay-as-you-go model that delivers the best benefits to you, the end user, since the derived value of {{site.mesh_product_name}} is directly associated to the positive benefits of real service mesh usage.
+Licenses are based on:
+
+* Total number of connected Data Plane Proxies (DPPs), across all zones.
+
+* License expiration date.
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
* The total number of connected Data Plane Proxies (DPPs), across all zones

* The license expiration date
```
created_at: 2025-04-09T20:33:05Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   $ kubectl create namespace kong-mesh-system
+   $ kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
+   ```
+
+   Where:
+   * `kong-mesh-system` is the namespace where {{site.mesh_product_name}} Control Plane is installed
+   * `/path/to/license.json` is the path to a valid license file. The filename should be `license.json` unless otherwise specified in `values.yaml`.
+
+1. Modify the `values.yaml` file to point to the secret. For example:
+
+   ```yaml
+   kuma:
+     controlPlane:
+       secrets:
+         - Env: "KMESH_LICENSE_INLINE"
+           Secret: "kong-mesh-license"
+           Key: "license.json"
+   ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+In Universal mode, configure a valid license by using the following environment variables:
+
+* `KMESH_LICENSE_PATH` - value with the path to a valid license file.
+* `KMESH_LICENSE_INLINE` - value with the actual contents of the license file.
+{% endnavtab %}
+{% endnavtabs %}
+## Update a license
+
+{% navtabs "Update a License" %}
+{% navtab "Kubernetes" %}
+
+
+1. Update the `kong-mesh-license` Secret in `kong-mesh-system` namespace with a new license:
+  ```sh
+  kubectl edit secrets -n kong-mesh-system kong-mesh-license
+  ```
+1. Restart the Control Plane:
+  ```sh
+  kubectl rollout restart -n kong-mesh-system deployment kong-mesh-control-plane
+  ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+1. Update the license by doing one of the following:
+  - If you used `KMESH_LICENSE_PATH`, update the content of the file.
+  - If you used `KMESH_LICENSE_INLINE`, update the value of the environment variable.
+1. Restart the Control Plane.
+{% endnavtab %}
+{% navtab "Multi-zone" %}
+## Multi-zone
+
+In a multi-zone deployment of {{site.mesh_product_name}}, only the global Control Plane should be configured with a valid license. The global Control Plane automatically synchronizes the license to any remote Control Plane that is part of the cluster.
+
+In a multi-zone deployment, the DPPs count includes the total aggregate of every Data Plane proxy in every zone. For example, with a limit of 5 DPPs and 2 zones, you can connect 3 DPPs in one zone and 2 in another, but not 5 DPPs for each zone.
+{% endnavtab %}
+{% endnavtabs %}
+
+
+## Licensed metrics
+
+The license encourages a pay-as-you-go model that delivers the best benefits to you, the end user, since the derived value of {{site.mesh_product_name}} is directly associated to the positive benefits of real service mesh usage.
+Licenses are based on:
+
+* Total number of connected Data Plane Proxies (DPPs), across all zones.
+
+* License expiration date.
+
+
+
+In the context of the metric, a Data Plane proxy (DPP) is a standard Data Plane proxy that is deployed next to your services, either as a sidecar container or in a virtual machine. Gateway Data Plane proxies, zone ingresses, and zone egresses are not counted.
+
+You can measure the number of Data Plane proxies needed in {{site.mesh_product_name}} by the 
+number of services you want to include in your service meshes. Use the following formula:
+
+```
+Number of DPPs = Number of Pods + Number of VMs.
+```
path: app/mesh/license.md
user: login: cloudjumpercat
body: ````suggestion
```
{:.no-copy-code}
````
created_at: 2025-04-09T20:34:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   $ kubectl create namespace kong-mesh-system
+   $ kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
+   ```
+
+   Where:
+   * `kong-mesh-system` is the namespace where {{site.mesh_product_name}} Control Plane is installed
+   * `/path/to/license.json` is the path to a valid license file. The filename should be `license.json` unless otherwise specified in `values.yaml`.
+
+1. Modify the `values.yaml` file to point to the secret. For example:
+
+   ```yaml
+   kuma:
+     controlPlane:
+       secrets:
+         - Env: "KMESH_LICENSE_INLINE"
+           Secret: "kong-mesh-license"
+           Key: "license.json"
+   ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+In Universal mode, configure a valid license by using the following environment variables:
+
+* `KMESH_LICENSE_PATH` - value with the path to a valid license file.
+* `KMESH_LICENSE_INLINE` - value with the actual contents of the license file.
+{% endnavtab %}
+{% endnavtabs %}
+## Update a license
+
+{% navtabs "Update a License" %}
+{% navtab "Kubernetes" %}
+
+
+1. Update the `kong-mesh-license` Secret in `kong-mesh-system` namespace with a new license:
+  ```sh
+  kubectl edit secrets -n kong-mesh-system kong-mesh-license
+  ```
+1. Restart the Control Plane:
+  ```sh
+  kubectl rollout restart -n kong-mesh-system deployment kong-mesh-control-plane
+  ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+1. Update the license by doing one of the following:
+  - If you used `KMESH_LICENSE_PATH`, update the content of the file.
+  - If you used `KMESH_LICENSE_INLINE`, update the value of the environment variable.
+1. Restart the Control Plane.
+{% endnavtab %}
+{% navtab "Multi-zone" %}
+## Multi-zone
+
+In a multi-zone deployment of {{site.mesh_product_name}}, only the global Control Plane should be configured with a valid license. The global Control Plane automatically synchronizes the license to any remote Control Plane that is part of the cluster.
+
+In a multi-zone deployment, the DPPs count includes the total aggregate of every Data Plane proxy in every zone. For example, with a limit of 5 DPPs and 2 zones, you can connect 3 DPPs in one zone and 2 in another, but not 5 DPPs for each zone.
+{% endnavtab %}
+{% endnavtabs %}
+
+
+## Licensed metrics
+
+The license encourages a pay-as-you-go model that delivers the best benefits to you, the end user, since the derived value of {{site.mesh_product_name}} is directly associated to the positive benefits of real service mesh usage.
+Licenses are based on:
+
+* Total number of connected Data Plane Proxies (DPPs), across all zones.
+
+* License expiration date.
+
+
+
+In the context of the metric, a Data Plane proxy (DPP) is a standard Data Plane proxy that is deployed next to your services, either as a sidecar container or in a virtual machine. Gateway Data Plane proxies, zone ingresses, and zone egresses are not counted.
+
+You can measure the number of Data Plane proxies needed in {{site.mesh_product_name}} by the 
+number of services you want to include in your service meshes. Use the following formula:
+
+```
+Number of DPPs = Number of Pods + Number of VMs.
+```
+
+
+## License behaviours
+
+With an expired license or invalid license the control-plane will fail to start.
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
With an expired license or invalid license, the Control Plane will fail to start.
```
created_at: 2025-04-09T20:34:54Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,152 @@
+---
+title: "{{site.mesh_product_name}} License"
+description: "Understand how licensing works in {{site.mesh_product_name}}, including limits, behaviors, and how to apply a license in both Kubernetes and Universal modes."
+content_type: reference
+layout: reference
+products:
+  - mesh
+
+tags:
+  - licensing
+  - multi-zone
+
+related_resources:
+  - text: "Access Audit"
+    url: /mesh/access-audit/
+  - text: "Certificate Manager"
+    url: /mesh/cert-manager/
+---
+
+
+{{site.mesh_product_name}} requires a valid license to start the Global Control Plane process. If no license is set, a **pre-bundled license** is used:
+
+* Data Plane Proxy (DPP) limit: 5
+* Expiration: 30 days
+
+To override the default, provide a new license file. You can request one from the [{{site.mesh_product_name}} team](https://konghq.com/request-demo-kong-mesh/).
+
+
+In a multi-zone setup, apply the license only to the Global Control Plane. It automatically syncs to remote Control Planes.
+
+When installing {{site.mesh_product_name}}, the license file can be passed to `kuma-cp` with the 
+[following instructions](#configure-the-license). 
+
+If running {{site.mesh_product_name}} in a multi-zone deployment, the file must be passed to the global `kuma-cp`.
+In this mode, {{site.mesh_product_name}} automatically synchronizes the license to the remote 
+`kuma-cp`, therefore this operation is only required on the global `kuma-cp`.
+
+
+## Configure the license
+
+A valid license file can be passed to {{site.mesh_product_name}} in a variety of ways.
+
+{% navtabs "configure" %}
+{% navtab "kumactl" %}
+
+
+When installing the {{site.mesh_product_name}} Control Plane with `kumactl install control-plane`, provide a `--license-path` argument with a full path to a valid license file. For example:
+
+```sh
+$ kumactl install control-plane --license-path=/path/to/license.json
+```
+{% endnavtab %}
+{% navtab "Helm" %}
+
+
+To install a valid license via Helm:
+
+1. Create a secret named `kong-mesh-license` in the same namespace where {{site.mesh_product_name}} is being installed. For example:
+
+   ```sh
+   $ kubectl create namespace kong-mesh-system
+   $ kubectl create secret generic kong-mesh-license -n kong-mesh-system --from-file=/path/to/license.json
+   ```
+
+   Where:
+   * `kong-mesh-system` is the namespace where {{site.mesh_product_name}} Control Plane is installed
+   * `/path/to/license.json` is the path to a valid license file. The filename should be `license.json` unless otherwise specified in `values.yaml`.
+
+1. Modify the `values.yaml` file to point to the secret. For example:
+
+   ```yaml
+   kuma:
+     controlPlane:
+       secrets:
+         - Env: "KMESH_LICENSE_INLINE"
+           Secret: "kong-mesh-license"
+           Key: "license.json"
+   ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+In Universal mode, configure a valid license by using the following environment variables:
+
+* `KMESH_LICENSE_PATH` - value with the path to a valid license file.
+* `KMESH_LICENSE_INLINE` - value with the actual contents of the license file.
+{% endnavtab %}
+{% endnavtabs %}
+## Update a license
+
+{% navtabs "Update a License" %}
+{% navtab "Kubernetes" %}
+
+
+1. Update the `kong-mesh-license` Secret in `kong-mesh-system` namespace with a new license:
+  ```sh
+  kubectl edit secrets -n kong-mesh-system kong-mesh-license
+  ```
+1. Restart the Control Plane:
+  ```sh
+  kubectl rollout restart -n kong-mesh-system deployment kong-mesh-control-plane
+  ```
+{% endnavtab %}
+{% navtab "Universal" %}
+
+
+1. Update the license by doing one of the following:
+  - If you used `KMESH_LICENSE_PATH`, update the content of the file.
+  - If you used `KMESH_LICENSE_INLINE`, update the value of the environment variable.
+1. Restart the Control Plane.
+{% endnavtab %}
+{% navtab "Multi-zone" %}
+## Multi-zone
+
+In a multi-zone deployment of {{site.mesh_product_name}}, only the global Control Plane should be configured with a valid license. The global Control Plane automatically synchronizes the license to any remote Control Plane that is part of the cluster.
+
+In a multi-zone deployment, the DPPs count includes the total aggregate of every Data Plane proxy in every zone. For example, with a limit of 5 DPPs and 2 zones, you can connect 3 DPPs in one zone and 2 in another, but not 5 DPPs for each zone.
+{% endnavtab %}
+{% endnavtabs %}
+
+
+## Licensed metrics
+
+The license encourages a pay-as-you-go model that delivers the best benefits to you, the end user, since the derived value of {{site.mesh_product_name}} is directly associated to the positive benefits of real service mesh usage.
+Licenses are based on:
+
+* Total number of connected Data Plane Proxies (DPPs), across all zones.
+
+* License expiration date.
+
+
+
+In the context of the metric, a Data Plane proxy (DPP) is a standard Data Plane proxy that is deployed next to your services, either as a sidecar container or in a virtual machine. Gateway Data Plane proxies, zone ingresses, and zone egresses are not counted.
+
+You can measure the number of Data Plane proxies needed in {{site.mesh_product_name}} by the 
+number of services you want to include in your service meshes. Use the following formula:
+
+```
+Number of DPPs = Number of Pods + Number of VMs.
+```
+
+
+## License behaviours
+
+With an expired license or invalid license the control-plane will fail to start.
+If the license expires while the control-plane is running it will keep running but a restart of the instance will fail. 
+The control-plane will issue a warning in the logs and the GUI when the license expires in less than 30 days.
path: app/mesh/license.md
user: login: cloudjumpercat
body: ```suggestion
The Control Plane will issue a warning in the logs and the GUI when the license expires in less than 30 days.
```
created_at: 2025-04-09T20:35:28Z
author_association: CONTRIBUTOR

PR comments:
user: login: netlify[bot]
created_at: 2025-04-09T17:13:55Z
body: ### <span aria-hidden="true">✅</span> Deploy Preview for *kongdeveloper* ready!


|  Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">🔨</span> Latest commit | 13f0b3b1d3b6c58f9217a736163db6b75b0e8334 |
|<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/sites/kongdeveloper/deploys/67f6aa954da5320008a80e4c |
|<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-1106--kongdeveloper.netlify.app](https://deploy-preview-1106--kongdeveloper.netlify.app) |
|<span aria-hidden="true">📱</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTExMDYtLWtvbmdkZXZlbG9wZXIubmV0bGlmeS5hcHAifQ.V_4_dvlVGtpwMNG5vewiJ_wEHi99p6RSVgQ4fhnJg5o)<br /><br />_Use your smartphone camera to open QR code link._</details> |
---
<!-- [kongdeveloper Preview](https://deploy-preview-1106--kongdeveloper.netlify.app) -->
_To edit notification comments on pull requests, go to your [Netlify site configuration](https://app.netlify.com/sites/kongdeveloper/configuration/notifications#deploy-webhooks)._
author_association: NONE
user: login: netlify[bot]
created_at: 2025-04-09T17:17:08Z
body: ### <span aria-hidden="true">✅</span> Deploy Preview for *kongdeveloper* ready!


|  Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">🔨</span> Latest commit | c7e086f46f04170ec346daefbc4ff75a80e9b13c |
|<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/sites/kongdeveloper/deploys/67f6ef837dfcc800084f22ce |
|<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-1106--kongdeveloper.netlify.app](https://deploy-preview-1106--kongdeveloper.netlify.app) |
|<span aria-hidden="true">📱</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTExMDYtLWtvbmdkZXZlbG9wZXIubmV0bGlmeS5hcHAifQ.V_4_dvlVGtpwMNG5vewiJ_wEHi99p6RSVgQ4fhnJg5o)<br /><br />_Use your smartphone camera to open QR code link._</details> |
---
<!-- [kongdeveloper Preview](https://deploy-preview-1106--kongdeveloper.netlify.app) -->
_To edit notification comments on pull requests, go to your [Netlify site configuration](https://app.netlify.com/sites/kongdeveloper/configuration/notifications#deploy-webhooks)._
author_association: NONE