diff --git a/.vale.ini b/.vale.ini
index 11d22477e..cf3971897 100644
--- a/.vale.ini
+++ b/.vale.ini
@@ -7,10 +7,3 @@ Packages = Google
[*.md]
BasedOnStyles = Vale, Google
-BlockIgnores = (\((http.*://|\.\/|\/).*?\)), \
-{\:.*?}
-TokenIgnores = {%.*?%}, \
-{{.*?}}, \
-(?:)(/[(A-Za-z0-9)(\055/)(_)]*/), \
-({\#.*})
-SkippedScopes = code
diff --git a/Gemfile.lock b/Gemfile.lock
index c11b6890b..a6f558db7 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -103,7 +103,6 @@ GEM
PLATFORMS
arm64-darwin-21
arm64-darwin-22
- arm64-darwin-23
x86_64-darwin-21
x86_64-darwin-22
x86_64-linux
diff --git a/WRITING-DOCUMENTATION.md b/WRITING-DOCUMENTATION.md
index 06a652a4b..9063c3754 100644
--- a/WRITING-DOCUMENTATION.md
+++ b/WRITING-DOCUMENTATION.md
@@ -29,6 +29,34 @@ The team is moving diagrams to [Google slides](https://docs.google.com/presentat
Instructions are in the first slide.
Ask a maintainer to get write access.
+### Mermaid.js diagrams
+
+You can use Mermaid.js diagrams in our documentation. It can be used with the following syntax:
+```
+{% mermaid %}
+{% endmermaid %}
+```
+
+For example, if you wanted to make a flowchart, you can use the following syntax:
+```
+{% mermaid %}
+flowchart TD
+ A[Christmas] -->|Get money| B(Go shopping)
+ B --> C{Let me think}
+ C -->|One| D[Laptop]
+ C -->|Two| E[iPhone]
+ C -->|Three| F[fa:fa-car Car]
+{% endmermaid %}
+```
+
+This flowchart would render like the following in the docs:
+
+![Mermaid flowchart example](/assets/images/diagrams/mermaid-example.png)
+
+You can use [https://mermaid.live/edit](https://mermaid.live/edit) to generate diagrams and see the rendered output before adding it to docs.
+
+**Note:** Currently, Mermaid isn't supported in navtabs.
+
## Cutting a new release
To cut the dev release, create a duplicate of the [docs_nav_kuma_dev.yml](app/_data/docs_nav_kuma_dev.yml) file and then rename one of the files to "docs_nav_kuma_[version].yml". Update the `release: dev` metadata in the new release file with the release version.
diff --git a/app/_assets/styles/custom/base/_type-and-content.scss b/app/_assets/styles/custom/base/_type-and-content.scss
index 2cd45b2dc..b8ec7d441 100644
--- a/app/_assets/styles/custom/base/_type-and-content.scss
+++ b/app/_assets/styles/custom/base/_type-and-content.scss
@@ -90,7 +90,11 @@ div[class*='language-'] {
pre[class*='language-'],
div[class*='language-'] {
background-color: $codeBgColor;
-
+
+ &.mermaid {
+ background-color: unset;
+ }
+
code {
font-size: 0.9rem;
line-height: 1.5;
diff --git a/app/_data/docs_nav_kuma_dev.yml b/app/_data/docs_nav_kuma_dev.yml
index 330113c0a..8161b0247 100644
--- a/app/_data/docs_nav_kuma_dev.yml
+++ b/app/_data/docs_nav_kuma_dev.yml
@@ -254,10 +254,28 @@ items:
items:
- text: Introduction
url: /policies/introduction/
+ - text: General notes about Kuma policies
+ url: /policies/general-notes-about-kuma-policies/
- text: Applying Policies
url: /policies/applying-policies/
+ - text: How Kuma chooses the right policy to apply
+ url: /policies/how-kuma-chooses-the-right-policy-to-apply/
+ items:
+ - text: General rules
+ url: "/policies/how-kuma-chooses-the-right-policy-to-apply/#general-rules"
+ - text: Combine Policies to Avoid Overriding
+ url: "/policies/how-kuma-chooses-the-right-policy-to-apply/#combine-policies-to-avoid-overriding"
+ - text: Dataplane Policy
+ url: "/policies/how-kuma-chooses-the-right-policy-to-apply/#dataplane-policy"
+ - text: Connection policies
+ url: "/policies/how-kuma-chooses-the-right-policy-to-apply/#connection-policies"
+ - text: Outbound Connection Policy
+ url: "/policies/how-kuma-chooses-the-right-policy-to-apply/#outbound-connection-policy"
+ - text: Inbound Connection Policy
+ url: "/policies/how-kuma-chooses-the-right-policy-to-apply/#inbound-connection-policy"
- text: Understanding TargetRef policies
url: "/policies/targetref"
+
- text: Protocol support in Kuma
url: /policies/protocol-support-in-kuma/
items:
@@ -278,6 +296,81 @@ items:
url: "/policies/mutual-tls/#permissive-mtls"
- text: Certificate Rotation
url: "/policies/mutual-tls/#certificate-rotation"
+ - text: Traffic Permissions
+ url: /policies/traffic-permissions/
+ items:
+ - text: Usage
+ url: "/policies/traffic-permissions/#usage"
+ - text: Access to External Services
+ url: "/policies/traffic-permissions/#access-to-external-services"
+ - text: Traffic Route
+ url: /policies/traffic-route/
+ items:
+ - text: Usage
+ url: "/policies/traffic-route/#usage"
+ - text: Traffic Metrics
+ url: /policies/traffic-metrics/
+ items:
+ - text: Expose metrics from data plane proxies
+ url: "/policies/traffic-metrics/#expose-metrics-from-data-plane-proxies"
+ - text: Expose metrics from applications
+ url: "/policies/traffic-metrics/#expose-metrics-from-applications"
+ - text: Override Prometheus settings per data plane proxy
+ url: "/policies/traffic-metrics/#override-prometheus-settings-per-data-plane-proxy"
+ - text: Filter Envoy metrics
+ url: "/policies/traffic-metrics/#filter-envoy-metrics"
+ - text: Secure data plane proxy metrics
+ url: "/policies/traffic-metrics/#secure-data-plane-proxy-metrics"
+ - text: Traffic Trace
+ url: /policies/traffic-trace/
+ items:
+ - text: Add a tracing backend to the mesh
+ url: "/policies/traffic-trace/#add-a-tracing-backend-to-the-mesh"
+ - text: Add TrafficTrace resource
+ url: "/policies/traffic-trace/#add-traffictrace-resource"
+ - text: Traffic Log
+ url: /policies/traffic-log/
+ items:
+ - text: Add a logging backend
+ url: "/policies/traffic-log/#add-a-logging-backend"
+ - text: Add a TrafficLog resource
+ url: "/policies/traffic-log/#add-a-trafficlog-resource"
+ - text: Logging external services
+ url: "/policies/traffic-log/#logging-external-services"
+ - text: Builtin Gateway support
+ url: "/policies/traffic-log/#builtin-gateway-support"
+ - text: Access Log Format
+ url: "/policies/traffic-log/#access-log-format"
+ - text: Locality-aware Load Balancing
+ url: /policies/locality-aware/
+ items:
+ - text: Enabling locality-aware load balancing
+ url: "/policies/locality-aware/#enabling-locality-aware-load-balancing"
+ - text: Fault Injection
+ url: /policies/fault-injection/
+ items:
+ - text: Usage
+ url: "/policies/fault-injection/#usage"
+ - text: Matching
+ url: "/policies/fault-injection/#matching"
+ - text: Health Check
+ url: /policies/health-check/
+ items:
+ - text: Usage
+ url: "/policies/health-check/#usage"
+ - text: Matching
+ url: "/policies/health-check/#matching"
+ - text: Circuit Breaker
+ url: /policies/circuit-breaker/
+ items:
+ - text: Usage
+ url: "/policies/circuit-breaker/#usage"
+ - text: Matching
+ url: "/policies/circuit-breaker/#matching"
+ - text: Builtin Gateway support
+ url: "/policies/circuit-breaker/#builtin-gateway-support"
+ - text: Non-mesh traffic
+ url: "/policies/circuit-breaker/#non-mesh-traffic"
- text: External Service
url: /policies/external-services/
items:
@@ -285,13 +378,46 @@ items:
url: "/policies/external-services/#usage"
- text: Builtin Gateway support
url: "/policies/external-services/#builtin-gateway-support"
- - text: Service Health Probes
- url: /policies/service-health-probes/
+ - text: Retry
+ url: /policies/retry/
items:
- - text: Kubernetes
- url: "/policies/service-health-probes/#kubernetes"
- - text: Universal probes
- url: "/policies/service-health-probes/#universal-probes"
+ - text: Usage
+ url: "/policies/retry/#usage"
+ - text: Matching
+ url: "/policies/retry/#matching"
+ - text: Builtin Gateway support
+ url: "/policies/retry/#builtin-gateway-support"
+ - text: Timeout
+ url: /policies/timeout/
+ items:
+ - text: Usage
+ url: "/policies/timeout/#usage"
+ - text: Configuration
+ url: "/policies/timeout/#configuration"
+ - text: Default general-purpose Timeout policy
+ url: "/policies/timeout/#default-general-purpose-timeout-policy"
+ - text: Matching
+ url: "/policies/timeout/#matching"
+ - text: Builtin Gateway support
+ url: "/policies/timeout/#builtin-gateway-support"
+ - text: Inbound timeouts
+ url: "/policies/timeout/#inbound-timeouts"
+ - text: Non-mesh traffic
+ url: "/policies/timeout/#non-mesh-traffic"
+ - text: Rate Limit
+ url: /policies/rate-limit/
+ items:
+ - text: Usage
+ url: "/policies/rate-limit/#usage"
+ - text: Matching destinations
+ url: "/policies/rate-limit/#matching-destinations"
+ - text: Builtin Gateway support
+ url: "/policies/rate-limit/#builtin-gateway-support"
+ - text: Virtual Outbound
+ url: /policies/virtual-outbound/
+ items:
+ - text: Examples
+ url: "/policies/virtual-outbound/#examples"
- text: MeshGateway
url: /policies/meshgateway/
items:
@@ -310,6 +436,13 @@ items:
url: "/policies/meshgatewayroute/#reference"
- text: MeshGatewayInstance
url: /policies/meshgatewayinstance/
+ - text: Service Health Probes
+ url: /policies/service-health-probes/
+ items:
+ - text: Kubernetes
+ url: "/policies/service-health-probes/#kubernetes"
+ - text: Universal probes
+ url: "/policies/service-health-probes/#universal-probes"
- text: MeshAccessLog
url: /policies/meshaccesslog/
items:
@@ -357,15 +490,6 @@ items:
url: "/policies/meshhttproute/#examples"
- text: Merging
url: "/policies/meshhttproute/#merging"
- - text: MeshMetric
- url: /policies/meshmetric/
- items:
- - text: TargetRef support matrix
- url: "/policies/meshmetric/#targetref-support-matrix"
- - text: Configuration
- url: "/policies/meshmetric/#configuration"
- - text: Examples
- url: "/policies/meshmetric/#examples"
- text: MeshProxyPatch
url: /policies/meshproxypatch/
items:
@@ -442,39 +566,6 @@ items:
url: "/policies/meshloadbalancingstrategy/#configuration"
- text: Examples
url: "/policies/meshloadbalancingstrategy/#examples"
- - title: Previous Policies
- group: true
- items:
- - text: General notes about Kuma policies
- url: /policies/general-notes-about-kuma-policies/
- - text: How Kuma chooses the right policy to apply
- url: /policies/how-kuma-chooses-the-right-policy-to-apply/
- - text: Traffic Permissions
- url: /policies/traffic-permissions/
- - text: Traffic Route
- url: /policies/traffic-route/
- - text: Traffic Metrics
- url: /policies/traffic-metrics/
- - text: Traffic Trace
- url: /policies/traffic-trace/
- - text: Traffic Log
- url: /policies/traffic-log/
- - text: Locality-aware Load Balancing
- url: /policies/locality-aware/
- - text: Fault Injection
- url: /policies/fault-injection/
- - text: Health Check
- url: /policies/health-check/
- - text: Circuit Breaker
- url: /policies/circuit-breaker/
- - text: Retry
- url: /policies/retry/
- - text: Timeout
- url: /policies/timeout/
- - text: Rate Limit
- url: /policies/rate-limit/
- - text: Virtual Outbound
- url: /policies/virtual-outbound/
- title: Reference
group: true
items:
diff --git a/app/_data/navigation.yml b/app/_data/navigation.yml
index 4caa4b7fe..55db98533 100644
--- a/app/_data/navigation.yml
+++ b/app/_data/navigation.yml
@@ -1,6 +1,6 @@
-- text: "Explore Features"
- url: "/features/"
- key: "features"
+- text: "Explore Policies"
+ url: "/policies/"
+ key: "policies"
- text: "Docs"
url: "/docs/"
key: "docs"
diff --git a/app/_data/versions.yml b/app/_data/versions.yml
index 09443c39b..6fb95eaab 100644
--- a/app/_data/versions.yml
+++ b/app/_data/versions.yml
@@ -71,7 +71,7 @@
endOfLifeDate: "2024-08-29"
branch: release-2.4
- edition: kuma
- version: 2.5.1
+ version: 2.5.0
release: 2.5.x
latest: true
releaseDate: "2023-11-15"
diff --git a/app/_includes/distribution_dropdown.html b/app/_includes/distribution_dropdown.html
index 094aa3902..9b3288a2f 100644
--- a/app/_includes/distribution_dropdown.html
+++ b/app/_includes/distribution_dropdown.html
@@ -22,8 +22,8 @@
#{text}
"
+
+ "#{mermaid_script}#{mermaid_pre}"
+ end
+
+ private
+
+ def generate_mermaid_script
+ <<~SCRIPT
+
+ SCRIPT
+ end
+ end
+ end
+
+ Liquid::Template.register_tag('mermaid', Jekyll::RenderMermaid)
\ No newline at end of file
diff --git a/app/_redirects b/app/_redirects
index c6707ed05..87752f442 100644
--- a/app/_redirects
+++ b/app/_redirects
@@ -8,7 +8,6 @@
/install/latest/* /install/LATEST_RELEASE/:splat 302
/install/kong-gateway /docs/LATEST_RELEASE/explore/gateway 302
/docs/latest/* /docs/LATEST_RELEASE/:splat 302
-/policies /features 301
# Kuma tag redirects
/builtindns/ /docs/LATEST_RELEASE/reference/kubernetes-annotations/#kumaiobuiltindns 302
diff --git a/app/_src/explore/observability.md b/app/_src/explore/observability.md
index 1cdc71978..9171f76fb 100644
--- a/app/_src/explore/observability.md
+++ b/app/_src/explore/observability.md
@@ -15,17 +15,9 @@ This page will describe how to configure different observability tools to work w
First, remember to configure {{site.mesh_product_name}} appropriately for the tools in the observability stack:
-{% if_version lte:2.5.x %}
- [Traffic metrics](/docs/{{ page.version }}/policies/traffic-metrics) for telemetry
- [`TrafficTrace`](/docs/{{ page.version }}/policies/traffic-trace) for tracing
- [`TrafficLog`](/docs/{{ page.version }}/policies/traffic-log) for logging
-{% endif_version %}
-
-{% if_version gte:2.6.x %}
-- [`MeshMetric`](/docs/{{ page.version }}/policies/meshmetric) for telemetry
-- [`MeshTrace`](/docs/{{ page.version }}/policies/meshtrace) for tracing
-- [`MeshAccessLog`](/docs/{{ page.version }}/policies/meshaccesslog) for logging
-{% endif_version %}
On Kubernetes, the stack can be installed with:
@@ -47,15 +39,15 @@ Control plane metrics are exposed on port `:5680` and available under the standa
## Configuring Prometheus
The {{site.mesh_product_name}} community has contributed a builtin service discovery to Prometheus, it is documented in the [Prometheus docs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kuma_sd_config).
-This service discovery will connect to the control plane and retrieve all data planes with enabled metrics which Prometheus will scrape and retrieve metrics according to your {% if_version lte:2.5.x inline:true %}[traffic metrics setup](/docs/{{ page.version }}/policies/traffic-metrics){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshMetric policies](/docs/{{ page.version }}/policies/meshmetric){% endif_version %}.
+This service discovery will connect to the control plane and retrieve all data planes with enabled metrics which Prometheus will scrape and retrieve metrics according to your [traffic metrics setup](/docs/{{ page.version }}/policies/traffic-metrics).
{% tip %}
There are 2 ways you can run prometheus:
-1. Inside the mesh (default for [`kumactl install observability`](#demo-setup)).{% if_version lte:2.5.x inline:true %} In this case you can use mTLS to retrieve the metrics. This provides high security but will require one prometheus per mesh and might not be accessible if your mesh becomes unavailable. It will also require one Prometheus deployment per {{site.mesh_product_name}} mesh.{% endif_version %}
-2. Outside the mesh. In this case you'll need to specify {% if_version lte:2.3.x %}`skipMTLS: true`{% endif_version %}{% if_version gte:2.4.x %}`tls.mode: disabled`{% endif_version %} in the {% if_version lte:2.5.x inline:true %}[traffic metrics configuration](/docs/{{ page.version }}/policies/traffic-metrics){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshMetric configuration](/docs/{{ page.version }}/policies/meshmetric){% endif_version %}. This is less secure but ensures Prometheus is as available as possible. It's also easier to add to an existing setup with services in and outside the mesh.
+1. Inside the mesh (default for [`kumactl install observability`](#demo-setup)). In this case you can use mTLS to retrieve the metrics. This provides high security but will require one prometheus per mesh and might not be accessible if your mesh becomes unavailable. It will also require one Prometheus deployment per {{site.mesh_product_name}} mesh.
+2. Outside the mesh. In this case you'll need to specify {% if_version lte:2.3.x %}`skipMTLS: true`{% endif_version %}{% if_version gte:2.4.x %}`tls.mode: disabled`{% endif_version %} in the [traffic metrics configuration](/docs/{{ page.version }}/policies/traffic-metrics). This is less secure but ensures Prometheus is as available as possible. It's also easier to add to an existing setup with services in and outside the mesh.
{% if_version gte:2.4.x %}
-3. Outside the mesh with TLS enabled. In this case you'll need to provide certificates for each dataplane and specify configuration in the {% if_version lte:2.5.x inline:true %}[traffic metrics configuration](/docs/{{ page.version }}/policies/traffic-metrics){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshMetric configuration](/docs/{{ page.version }}/policies/meshmetric){% endif_version %}. This is more secure than second option but requires more configuration.
+3. Outside the mesh with TLS enabled. In this case you'll need to provide certificates for each dataplane and specify configuration in the [traffic metrics configuration](/docs/{{ page.version }}/policies/traffic-metrics#secure-metrics-with-tls). This is more secure than second option but requires more configuration.
{% endif_version %}
In production, we recommend the second option as it provides better visibility when things go wrong, and it's usually acceptable for metrics to be less secure.
@@ -90,7 +82,7 @@ scrape_configs:
For more information, see [the Prometheus documentation](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kuma_sd_config).
-If you have {% if_version lte:2.5.x inline:true %}[traffic metrics](/docs/{{ page.version }}/policies/traffic-metrics){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshMetric](/docs/{{ page.version }}/policies/meshmetric){% endif_version %} enabled for your mesh, check the Targets page in the Prometheus dashboard.
+If you have [traffic metrics](/docs/{{ page.version }}/policies/traffic-metrics) enabled for your mesh, check the Targets page in the Prometheus dashboard.
You should see a list of data plane proxies from your mesh. For example:
@@ -114,7 +106,7 @@ Grafana will then be able to retrieve the traces from Jaeger.
-You can then add a {% if_version lte:2.5.x inline:true %}[TrafficTrace policy](/docs/{{ page.version }}/policies/traffic-trace){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshTrace policy](/docs/{{ page.version }}/policies/meshtrace){% endif_version %} to your mesh to start emitting traces.
+You can then add a [TrafficTrace policy](/docs/{{ page.version }}/policies/traffic-trace) to your mesh to start emitting traces.
At this point you can visualize your traces in Grafana by choosing the jaeger datasource in the [explore section](https://grafana.com/docs/grafana/latest/explore/).
#### Visualizing logs
@@ -129,7 +121,7 @@ To visualise your **containers' logs** and your **access logs** you need to have
-You can then add a {% if_version lte:2.5.x inline:true %}[TrafficLog policy](/docs/{{ page.version }}/policies/traffic-log){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshAccessLog policy](/docs/{{ page.version }}/policies/meshaccesslog){% endif_version %} to your mesh to start emitting access logs. Loki will pick up logs that are sent to `stdout`. To send logs to `stdout` you can configure the logging backend as shown below:
+You can then add a [TrafficLog policy](/docs/{{ page.version }}/policies/traffic-log) to your mesh to start emitting access logs. Loki will pick up logs that are sent to `stdout`. To send logs to `stdout` you can configure the logging backend as shown below:
{% tabs visualizing-logs useUrlFragment=false %}
{% tab visualizing-logs Kubernetes %}
@@ -201,7 +193,7 @@ To make things simpler the datasource is installed and configured when using [`k
##### {{site.mesh_product_name}} Dataplane
-This dashboard lets you investigate the status of a single dataplane in the mesh. In order to see those metrics, you need to create {% if_version lte:2.5.x inline:true %}[Traffic Metrics policy](/docs/{{ page.version }}/policies/traffic-metrics){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshMetric policy](/docs/{{ page.version }}/policies/meshmetric){% endif_version %} first.
+This dashboard lets you investigate the status of a single dataplane in the mesh. In order to see those metrics, you need to create [Traffic Metrics policy](/docs/{{ page.version }}/policies/traffic-metrics/) first.
@@ -274,7 +266,7 @@ Checkout the [Datadog agent docs](https://docs.datadoghq.com/agent/basic_agent_u
### Metrics
-{{site.mesh_product_name}} exposes metrics with {% if_version lte:2.5.x inline:true %}[traffic metrics](/docs/{{ page.version }}/policies/traffic-metrics){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshMetric policy](/docs/{{ page.version }}/policies/meshmetric){% endif_version %} in Prometheus format.
+{{site.mesh_product_name}} exposes metrics with [traffic metrics](/docs/{{ page.version }}/policies/traffic-metrics) in Prometheus format.
You can add annotations to your pods to enable the Datadog agent to scrape metrics.
@@ -324,13 +316,13 @@ Checkout the [Datadog agent docs](https://docs.datadoghq.com/agent/basic_agent_u
{% endtab %}
{% endtabs %}
-Once the agent is configured to ingest traces you'll need to configure a {% if_version lte:2.5.x inline:true %}[TrafficTrace policy](/docs/{{ page.version }}/policies/traffic-trace){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshTrace policy](/docs/{{ page.version }}/policies/meshtrace){% endif_version %}.
+Once the agent is configured to ingest traces you'll need to configure a [TrafficTrace](/docs/{{ page.version }}/policies/traffic-trace).
### Logs
The best way to have {{site.mesh_product_name}} and Datadog work together is with [TCP ingest](https://docs.datadoghq.com/agent/logs/?tab=tcpudp#custom-log-collection).
-Once your agent is configured with TCP ingest you can configure a {% if_version lte:2.5.x inline:true %}[TrafficLog policy](/docs/{{ page.version }}/policies/traffic-log){% endif_version %}{% if_version gte:2.6.x inline:true %}[MeshAccessLog policy](/docs/{{ page.version }}/policies/meshaccesslog){% endif_version %} for data plane proxies to send logs.
+Once your agent is configured with TCP ingest you can configure a [TrafficLog](/docs/{{ page.version }}/policies/traffic-log) for data plane proxies to send logs.
## Observability in multi-zone
diff --git a/app/_src/introduction/kuma-requirements.md b/app/_src/introduction/kuma-requirements.md
index 77a42b948..5173cc245 100644
--- a/app/_src/introduction/kuma-requirements.md
+++ b/app/_src/introduction/kuma-requirements.md
@@ -51,7 +51,7 @@ resources:
cpu: 50m
memory: 64Mi
limits:
- cpu: 1000m
+ cpu: 500m
memory: 512Mi
```
diff --git a/app/_src/networking/dns.md b/app/_src/networking/dns.md
index d59cf4195..0e18fab21 100644
--- a/app/_src/networking/dns.md
+++ b/app/_src/networking/dns.md
@@ -58,106 +58,24 @@ This mode implements advanced networking techniques, so take special care for th
### Overriding the CoreDNS configuration
-In some cases it might be useful for you to configure the default CoreDNS configuration.
-
-{% if_version gte:2.6.x %}
-{{site.mesh_product_name}} supports overriding the CoreDNS configuration from control plane for both Kubernetes and Universal installations; for Universal installations, {{site.mesh_product_name}} also supports overriding from data planes. When overriding from control plane, all the data planes in the mesh will use the overridden DNS configuration.
-{% endif_version %}
+In some cases it might be useful for you to configure the default CoreDNS.
{% tabs override useUrlFragment=false %}
{% tab override Kubernetes %}
-{% if_version gte:2.6.x %}
-Only overriding from control plane is supported.
-
-To override, you can [configure](/docs/{{ page.version }}/reference/kuma-cp/) the bootstrap server in `kuma-cp`:
-
-```yaml
-bootstrapServer:
- corefileTemplatePath: "/path/to/mounted-corefile-template" # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_COREFILE_TEMPLATE_PATH
-```
-
-You'll also need to mount the DNS configuration template file into the control plane by adding an extra configMap, here are the steps:
-
-Create a configmap in the namespace in which the control plane is installed:
-
-```sh
-# create the namespace if it does not exist
-kubectl create namespace {{site.mesh_namespace}}
-
-# create the configmap, make sure the file exist on disk
-kubectl create --namespace {{site.mesh_namespace}} configmap corefile-template \
- --from-file corefile-template=/path/to/corefile-template-on-disk
-```
-
-Point to this configmap when installing {{site.mesh_product_name}}:
-
-{% tabs install-control-plane useUrlFragment=false %}
-{% tab install-control-plane Kubernetes (kumactl) %}
-
-```sh
-kumactl install control-plane \
- --env-var "KUMA_BOOTSTRAP_SERVER_PARAMS_COREFILE_TEMPLATE_PATH=/path/to/mounted-corefile-template" \
- --set "{{site.set_flag_values_prefix}}controlPlane.extraConfigMaps[0].name=corefile-template" \
- --set "{{site.set_flag_values_prefix}}controlPlane.extraConfigMaps[0].mountPath=/path/to/mounted-corefile-template/corefile-template" \
- | kubectl apply -f -
-```
-{% endtab %}
-{% tab install-control-plane Kubernetes (HELM) %}
-
-```sh
-helm install --namespace {{site.mesh_namespace}} \
- --set "{{site.set_flag_values_prefix}}controlPlane.envVars.KUMA_BOOTSTRAP_SERVER_PARAMS_COREFILE_TEMPLATE_PATH=/path/to/mounted-corefile-template" \
- --set "{{site.set_flag_values_prefix}}controlPlane.extraConfigMaps[0].name=corefile-template" \
- --set "{{site.set_flag_values_prefix}}controlPlane.extraConfigMaps[0].mountPath=/path/to/mounted-corefile-template/corefile-template" \
- {{site.mesh_helm_install_name}} {{site.mesh_helm_repo}}
-```
-
-{% endtab %}
-{% endtabs %}
-{% endif_version %}
-
-{% if_version lte:2.5.x %}
At this moment, there is no builtin option to override CoreDNS configuration.
-{% endif_version %}
{% endtab %}
{% tab override Universal %}
-{% if_version lte:2.5.x %}
-{{site.mesh_product_name}} supports overriding DNS from data planes.
-{% endif_version %}
-{% if_version gte:2.6.x %}
-Both overriding from the control plane and data planes are supported.
-{% endif_version %}
-
-{% if_version gte:2.6.x %}
-To override DNS configuration from the control plane, you can [configure](/docs/{{ page.version }}/reference/kuma-cp/) the bootstrap server in `kuma-cp`:
-
-```yaml
-bootstrapServer:
- corefileTemplatePath: "/path/to/mounted-corefile-template" # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_COREFILE_TEMPLATE_PATH
-```
-
-Please make sure the file path do exist on disk.
-{% endif_version %}
-
-To override DNS configuration from data planes, use `--dns-coredns-config-template-path` as an argument to `kuma-dp`. {% if_version gte:2.6.x %}When the data plane is connecting to a control plane that also has DNS configuration overridden, overridden from data plane will take precedence.{% endif_version %}
-
+Use `--dns-coredns-config-template-path` as an argument to `kuma-dp`.
{% endtab %}
{% endtabs %}
-Once supported, you'll need to prepare a DNS configuration file to be used for overriding. This file is a [CoreDNS configuration](https://coredns.io/manual/toc/) that is processed as a go-template.
-
-Editing should base on [the existing and default configuration](https://github.com/kumahq/kuma/blob/master/app/kuma-dp/pkg/dataplane/dnsserver/Corefile). For example, you may use the following configuration to make the DNS server not respond errors to IPv6 queries when your cluster has IPv6 disabled:
+This file is a [CoreDNS configuration](https://coredns.io/manual/toc/) that is processed as a go-template.
+If you edit this configuration you should base yourself on the default existing configuration, which looks like the following
{% raw %}
```
.:{{ .CoreDNSPort }} {
- # add a plugin to return NOERROR for IPv6 queries
- template IN AAAA . {
- rcode NOERROR
- fallthrough
- }
-
forward . 127.0.0.1:{{ .EnvoyDNSPort }}
# We want all requests to be sent to the Envoy DNS Filter, unsuccessful responses should be forwarded to the original DNS server.
# For example: requests other than A, AAAA and SRV will return NOTIMP when hitting the envoy filter and should be sent to the original DNS server.
@@ -178,7 +96,7 @@ Editing should base on [the existing and default configuration](https://github.c
## Configuration
-You can [configure](/docs/{{ page.version }}/reference/kuma-cp/) {{site.mesh_product_name}} DNS in `kuma-cp`:
+You can configure {{site.mesh_product_name}} DNS in `kuma-cp`:
```yaml
dnsServer:
@@ -249,7 +167,7 @@ The default listeners created on the VIP default to port `80`, so the port can b
},
"last_updated": "2020-07-06T14:32:59.732Z"
}
- }
+ },
```
{% tip %}
diff --git a/app/_src/policies/circuit-breaker.md b/app/_src/policies/circuit-breaker.md
index cb651854c..cdf707e63 100644
--- a/app/_src/policies/circuit-breaker.md
+++ b/app/_src/policies/circuit-breaker.md
@@ -1,11 +1,6 @@
---
title: Circuit Breaker
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? You don't need this policy, check [`MeshCircuitBreaker`](/docs/{{ page.version }}/policies/meshcircuitbreaker) instead.
-{% endwarning %}
-{% endif_version %}
{% tip %}
Circuit Breaker is an outbound policy. Dataplanes whose configuration is modified are in the `sources` matcher.
diff --git a/app/_src/policies/fault-injection.md b/app/_src/policies/fault-injection.md
index fe8512524..57cf103a6 100644
--- a/app/_src/policies/fault-injection.md
+++ b/app/_src/policies/fault-injection.md
@@ -1,11 +1,6 @@
---
title: Fault Injection
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? You need this policy, check [`MeshFaultInjection`](/docs/{{ page.version }}/policies/meshfaultinjection) instead.
-{% endwarning %}
-{% endif_version %}
{% tip %}
Fault Injection is an inbound policy. Dataplanes whose configuration is modified are in the `destinations` matcher.
diff --git a/app/_src/policies/general-notes-about-kuma-policies.md b/app/_src/policies/general-notes-about-kuma-policies.md
index bc9e26c52..9754e252e 100644
--- a/app/_src/policies/general-notes-about-kuma-policies.md
+++ b/app/_src/policies/general-notes-about-kuma-policies.md
@@ -1,17 +1,11 @@
---
title: General notes about Kuma policies
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? You don't need this, check [`TargetRef` policies](/docs/{{ page.version }}/policies/introduction) instead.
-{% endwarning %}
-{% endif_version %}
-{% if_version lte:2.5.x %}
+
{% tip %}
This only applies to source/destination policies.
If you are unfamiliar with these, checkout [introduction to policies](/docs/{{ page.version }}/policies/introduction).
{% endtip %}
-{% endif_version %}
Policies applied to data plane proxies all follow the same basic structure:
diff --git a/app/_src/policies/health-check.md b/app/_src/policies/health-check.md
index 794737788..50af52069 100644
--- a/app/_src/policies/health-check.md
+++ b/app/_src/policies/health-check.md
@@ -1,11 +1,6 @@
---
title: Health Check
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? You don't need this policy, check [`MeshHealthCheck`](/docs/{{ page.version }}/policies/meshhealthcheck) instead.
-{% endwarning %}
-{% endif_version %}
{% tip %}
Health Check is an outbound policy. Dataplanes whose configuration is modified are in the `sources` matcher.
diff --git a/app/_src/policies/how-kuma-chooses-the-right-policy-to-apply.md b/app/_src/policies/how-kuma-chooses-the-right-policy-to-apply.md
index 85ec723fa..db5895d2f 100644
--- a/app/_src/policies/how-kuma-chooses-the-right-policy-to-apply.md
+++ b/app/_src/policies/how-kuma-chooses-the-right-policy-to-apply.md
@@ -2,17 +2,10 @@
title: How Kuma chooses the right policy to apply
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? You don't need this, check [`TargetRef` policies](/docs/{{ page.version }}/policies/introduction) instead.
-{% endwarning %}
-{% endif_version %}
-{% if_version lte:2.5.x %}
{% tip %}
This only applies to source/destination policies.
If you are unfamiliar with these, checkout [introduction to policies](/docs/{{ page.version }}/policies/introduction).
{% endtip %}
-{% endif_version %}
At any single moment, there might be multiple policies (of the same type) that match a connection between `sources` and `destinations` `Dataplane`s.
diff --git a/app/_src/policies/introduction.md b/app/_src/policies/introduction.md
index dfd8aa686..b1fe7a00f 100644
--- a/app/_src/policies/introduction.md
+++ b/app/_src/policies/introduction.md
@@ -7,29 +7,22 @@ Going forward from version 2.0, {{site.mesh_product_name}} is transitioning from
The following table shows the equivalence between source/destination and `targetRef` policies:
-| source/destination policy | `targetRef` policy |
-|-----------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [CircuitBreaker](/docs/{{ page.version }}/policies/circuit-breaker) | [MeshCircuitBreaker](/docs/{{ page.version }}/policies/meshcircuitbreaker) |
-| [FaultInjection](/docs/{{ page.version }}/policies/fault-injection) | [MeshFaultInjection](/docs/{{ page.version }}/policies/meshfaultinjection) |
-| [HealthCheck](/docs/{{ page.version }}/policies/health-check) | [MeshHealthCheck](/docs/{{ page.version }}/policies/meshhealthcheck) |
-| [RateLimit](/docs/{{ page.version }}/policies/rate-limit) | [MeshRateLimit](/docs/{{ page.version }}/policies/meshratelimit) |
-| [Retry](/docs/{{ page.version }}/policies/retry) | [MeshRetry](/docs/{{ page.version }}/policies/meshretry) |
-| [Timeout](/docs/{{ page.version }}/policies/timeout) | [MeshTimeout](/docs/{{ page.version }}/policies/meshtimeout) |
-| [TrafficLog](/docs/{{ page.version }}/policies/traffic-log) | [MeshAccessLog](/docs/{{ page.version }}/policies/meshaccesslog) |
-| [TrafficMetrics](/docs/{{ page.version }}/policies/traffic-metrics) | {% if_version lte:2.5.x inline:true %} N/A {% endif_version %} {% if_version inline:true gte:2.6.x %} [MeshMetric](/docs/{{ page.version }}/policies/meshmetric) {% endif_version %} |
-| [TrafficPermissions](/docs/{{ page.version }}/policies/traffic-permissions) | [MeshTrafficPermission](/docs/{{ page.version }}/policies/meshtrafficpermission) |
-| [TrafficRoute](/docs/{{ page.version }}/policies/traffic-route) | [MeshHTTPRoute](/docs/{{ page.version }}/policies/meshhttproute) |
-| [TrafficTrace](/docs/{{ page.version }}/policies/traffic-trace) | [MeshTrace](/docs/{{ page.version }}/policies/meshtrace) |
-| [ProxyTemplate](/docs/{{ page.version }}/policies/proxy-template) | [MeshProxyPatch](/docs/{{ page.version }}/policies/meshproxypatch) |
+| source/destination policy | `targetRef` policy |
+|-----------------------------------------------------------------------------|----------------------------------------------------------------------------------|
+| [CircuitBreaker](/docs/{{ page.version }}/policies/circuit-breaker) | [MeshCircuitBreaker](/docs/{{ page.version }}/policies/meshcircuitbreaker) |
+| [FaultInjection](/docs/{{ page.version }}/policies/fault-injection) | [MeshFaultInjection](/docs/{{ page.version }}/policies/meshfaultinjection) |
+| [HealthCheck](/docs/{{ page.version }}/policies/health-check) | [MeshHealthCheck](/docs/{{ page.version }}/policies/meshhealthcheck) |
+| [RateLimit](/docs/{{ page.version }}/policies/rate-limit) | [MeshRateLimit](/docs/{{ page.version }}/policies/meshratelimit) |
+| [Retry](/docs/{{ page.version }}/policies/retry) | [MeshRetry](/docs/{{ page.version }}/policies/meshretry) |
+| [Timeout](/docs/{{ page.version }}/policies/timeout) | [MeshTimeout](/docs/{{ page.version }}/policies/meshtimeout) |
+| [TrafficLog](/docs/{{ page.version }}/policies/traffic-log) | [MeshAccessLog](/docs/{{ page.version }}/policies/meshaccesslog) |
+| [TrafficMetrics](/docs/{{ page.version }}/policies/traffic-metrics) | N/A |
+| [TrafficPermissions](/docs/{{ page.version }}/policies/traffic-permissions) | [MeshTrafficPermission](/docs/{{ page.version }}/policies/meshtrafficpermission) |
+| [TrafficRoute](/docs/{{ page.version }}/policies/traffic-route) | [MeshHTTPRoute](/docs/{{ page.version }}/policies/meshhttproute) |
+| [TrafficTrace](/docs/{{ page.version }}/policies/traffic-trace) | [MeshTrace](/docs/{{ page.version }}/policies/meshtrace) |
+| [ProxyTemplate](/docs/{{ page.version }}/policies/proxy-template) | [MeshProxyPatch](/docs/{{ page.version }}/policies/meshproxypatch) |
{% warning %}
-{% if_version lte:2.5.x %}
`targetRef` policies are still beta and it is therefore not supported to mix source/destination and targetRef policies
together.
-{% endif_version %}
-{% if_version gte:2.6.x %}
-If you are new to Kuma you should only need to use `targetRef` policies.
-If you already use source/destination policies you can keep using them. Future versions of Kuma will provide a migration path.
-You can mix targetRef and source/destination policies as long as they are of different types. For example: You can use `MeshTrafficPermission` with `FaultInjection` but you can't use `MeshTrafficPermission` with `TrafficPermission`.
-{% endif_version %}
{% endwarning %}
diff --git a/app/_src/policies/locality-aware.md b/app/_src/policies/locality-aware.md
index d63c63f89..8ae13a3fe 100644
--- a/app/_src/policies/locality-aware.md
+++ b/app/_src/policies/locality-aware.md
@@ -4,7 +4,7 @@ title: Locality-aware Load Balancing
{% if_version gte:2.5.x %}
{% warning %}
-New to Kuma? You don't need this, Check the [`MeshLoadBalancingStrategy` policy](/docs/{{ page.version }}/policies/meshloadbalancingstrategy) instead.
+This mode of doing locality aware load balancing is being replaced by [MeshLoadBalancingStrategy](/docs/{{ page.version }}/policies/meshloadbalancingstrategy) which is more powerful and flexible.
{% endwarning %}
{% endif_version %}
diff --git a/app/_src/policies/meshaccesslog.md b/app/_src/policies/meshaccesslog.md
index 82203d0d8..e14cb3c4b 100644
--- a/app/_src/policies/meshaccesslog.md
+++ b/app/_src/policies/meshaccesslog.md
@@ -19,30 +19,24 @@ If you haven't, see the [observability docs](/docs/{{ page.version }}/explore/ob
{% if_version gte:2.4.x %}
{% tabs targetRef useUrlFragment=false %}
{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-| `from[].targetRef.kind` | `Mesh` |
+| `targetRef.kind` | top level | to | from |
+| ------------------- | --------- | --- | ---- |
+| `Mesh` | ✅ | ✅ | ✅ |
+| `MeshSubset` | ✅ | ❌ | ❌ |
+| `MeshService` | ✅ | ✅ | ❌ |
+| `MeshServiceSubset` | ✅ | ❌ | ❌ |
{% endtab %}
{% tab targetRef Builtin Gateway %}
-{% if_version lte:2.5.x %}
-| `targetRef` | Allowed kinds |
-| --------------------- | ----------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService` |
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-{% endif_version %}
-{% if_version gte:2.6.x %}
-| `targetRef` | Allowed kinds |
-| --------------------- | ------------------------------------------------ |
-| `targetRef.kind` | `Mesh`, `MeshGateway`, `MeshGateway` with `tags` |
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-{% endif_version %}
+| `targetRef.kind` | top level | to |
+| ------------------- | --------- | --- |
+| `Mesh` | ✅ | ✅ |
+| `MeshGateway` | ✅ | ❌ |
+| `MeshService` | ✅ | ❌ |
{% endtab %}
{% endtabs %}
-{% endif_version %}
+{% endif_version %}
{% if_version lte:2.3.x %}
| `targetRef.kind` | top level | to | from |
diff --git a/app/_src/policies/meshcircuitbreaker.md b/app/_src/policies/meshcircuitbreaker.md
index b71a53bae..35b777dda 100644
--- a/app/_src/policies/meshcircuitbreaker.md
+++ b/app/_src/policies/meshcircuitbreaker.md
@@ -38,35 +38,12 @@ target proxies are healthy or not.
## TargetRef support matrix
-{% if_version gte:2.6.x %}
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-| `from[].targetRef.kind` | `Mesh` |
-{% endtab %}
-
-{% tab targetRef Builtin Gateway %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshGateway`, `MeshGateway` with listener `tags`|
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-{% endtab %}
-{% endtabs %}
-
-{% endif_version %}
-{% if_version lte:2.5.x %}
-
-| `targetRef.kind` | top level | to | from |
-| ------------------- | --------- | --- | ---- |
-| `Mesh` | ✅ | ✅ | ✅ |
-| `MeshSubset` | ✅ | ❌ | ❌ |
-| `MeshService` | ✅ | ✅ | ❌ |
-| `MeshServiceSubset` | ✅ | ❌ | ❌ |
-
-{% endif_version %}
+| TargetRef type | top level | to | from |
+|-------------------|-----------|-----|------|
+| Mesh | ✅ | ✅ | ✅ |
+| MeshSubset | ✅ | ❌ | ❌ |
+| MeshService | ✅ | ✅ | ❌ |
+| MeshServiceSubset | ✅ | ❌ | ❌ |
To learn more about the information in this table, see the [matching docs](/docs/{{ page.version }}/policies/targetref).
diff --git a/app/_src/policies/meshfaultinjection.md b/app/_src/policies/meshfaultinjection.md
index 7934fd421..d2d9b1e60 100644
--- a/app/_src/policies/meshfaultinjection.md
+++ b/app/_src/policies/meshfaultinjection.md
@@ -11,26 +11,6 @@ Do **not** combine with [FaultInjection](/docs/{{ page.version }}/policies/fault
## `targetRef` support matrix
-{% if_version gte:2.6.x %}
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-| `from[].targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-{% endtab %}
-
-{% tab targetRef Builtin Gateway %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshGateway`, `MeshGateway` with listener `tags`|
-| `to[].targetRef.kind` | `Mesh` |
-{% endtab %}
-{% endtabs %}
-
-{% endif_version %}
-{% if_version lte:2.5.x %}
-
| `targetRef.kind` | top level | to | from |
| ------------------- | --------- | --- | ---- |
| `Mesh` | ✅ | ❌ | ✅ |
@@ -38,8 +18,6 @@ Do **not** combine with [FaultInjection](/docs/{{ page.version }}/policies/fault
| `MeshService` | ✅ | ❌ | ✅ |
| `MeshServiceSubset` | ✅ | ❌ | ✅ |
-{% endif_version %}
-
To learn more about the information in this table, see the [matching docs](/docs/{{ page.version }}/policies/targetref).
## Configuration
diff --git a/app/_src/policies/meshgatewayinstance.md b/app/_src/policies/meshgatewayinstance.md
index 829e8f984..99984a5b6 100644
--- a/app/_src/policies/meshgatewayinstance.md
+++ b/app/_src/policies/meshgatewayinstance.md
@@ -11,11 +11,6 @@ instances that listen and serve traffic.
Kuma offers `MeshGatewayInstance` to manage a Kubernetes `Deployment` and `Service`
that together provide service capacity for the `MeshGateway` with the matching `kuma.io/service` tag.
-{% tip %}
-If you're not using the `default` `Mesh`, you'll need to _label_ the
-`MeshGatewayInstance` using `kuma.io/mesh`.
-{% endtip %}
-
Consider the following example:
```yaml
@@ -24,8 +19,6 @@ kind: MeshGatewayInstance
metadata:
name: edge-gateway
namespace: default
- labels:
- kuma.io/mesh: default # only necessary if not using default Mesh
spec:
replicas: 2
serviceType: LoadBalancer
@@ -38,6 +31,11 @@ This `Deployment` deploys 2 replicas of `kuma-dp` and corresponding builtin gate
The control plane also creates a new `Service` to send network traffic to the builtin `Dataplane` pods.
The `Service` is of type `LoadBalancer`, and its ports are automatically adjusted to match the listeners on the corresponding `MeshGateway`.
+{% tip %}
+If you're not using the `default` `Mesh`, you'll need to _label_ the
+`MeshGatewayInstance` using `kuma.io/mesh`.
+{% endtip %}
+
## Customization
{% if_version lte:2.1.x %}
diff --git a/app/_src/policies/meshgatewayroute.md b/app/_src/policies/meshgatewayroute.md
index 5d04174b3..3de2cfc3e 100644
--- a/app/_src/policies/meshgatewayroute.md
+++ b/app/_src/policies/meshgatewayroute.md
@@ -1,11 +1,6 @@
---
title: MeshGatewayRoute
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? Don't use this, check the [`MeshHTTPRoute` policy](/docs/{{ page.version }}/policies/meshhttproute) or [`MeshTCPRoute` policy](/docs/{{ page.version }}/policies/meshtcproute) instead.
-{% endwarning %}
-{% endif_version %}
`MeshGatewayRoute` is a policy used to configure [{{site.mesh_product_name}}'s builtin gateway](/docs/{{ page.version }}/explore/gateway#builtin).
It is used in combination with [`MeshGateway`](/docs/{{ page.version }}/policies/meshgateway).
@@ -13,9 +8,9 @@ It is used in combination with [`MeshGateway`](/docs/{{ page.version }}/policies
`MeshGatewayRoute` is a new {{site.mesh_product_name}} dataplane policy that replaces TrafficRoute for {{site.mesh_product_name}} Gateway.
It configures how a gateway should process network traffic.
At the moment, it targets HTTP routing use cases.
-`MeshGatewayRoutes` are attached to gateways by matching their selector to the [`MeshGateway`](/docs/{{ page.version }}/policies/meshgateway) listener tags. This requires the `kuma.io/service` tag and, optionally, additional tags to match specific `MeshGateway` listeners.
+`MeshGatewayRoutes` are attached to gateways by matching their selector to the [`MeshGateway`](/docs/{{ page.version }}/policies/meshgateway) listener tags.
-The following `MeshGatewayRoute` routes traffic to the `backend` service and attaches to any listeners tagged with `vhost=foo.example.com` that attach to builtin gateways with `kuma.io/service: edge-gateway`.
+To define `MeshGatewayRoute` that attaches a route to a listener with a tag: `vhost=foo.example.com` and routes traffic to the backend service do:
{% tabs usage useUrlFragment=false %}
{% tab usage Universal %}
diff --git a/app/_src/policies/meshhealthcheck.md b/app/_src/policies/meshhealthcheck.md
index 59dd51116..49457b54f 100644
--- a/app/_src/policies/meshhealthcheck.md
+++ b/app/_src/policies/meshhealthcheck.md
@@ -24,26 +24,6 @@ This mode generates extra traffic to other proxies and services as described in
## TargetRef support matrix
-{% if_version gte:2.6.x %}
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| --------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-{% endtab %}
-
-{% tab targetRef Builtin Gateway %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshGateway`, `MeshGateway` with listener `tags`|
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-{% endtab %}
-{% endtabs %}
-
-{% endif_version %}
-{% if_version lte:2.5.x %}
-
| TargetRef type | top level | to | from |
| ----------------- | --------- | --- | ---- |
| Mesh | ✅ | ✅ | ❌ |
@@ -51,7 +31,6 @@ This mode generates extra traffic to other proxies and services as described in
| MeshService | ✅ | ✅ | ❌ |
| MeshServiceSubset | ✅ | ❌ | ❌ |
-{% endif_version %}
To learn more about the information in this table, see the [matching docs](/docs/{{ page.version }}/policies/targetref).
diff --git a/app/_src/policies/meshhttproute.md b/app/_src/policies/meshhttproute.md
index f1ce9fb31..e17403444 100644
--- a/app/_src/policies/meshhttproute.md
+++ b/app/_src/policies/meshhttproute.md
@@ -4,7 +4,7 @@ title: Mesh HTTP Route
{% warning %}
This policy uses new policy matching algorithm.
-Do **not** combine with [TrafficRoute](/docs/{{ page.version }}/policies/traffic-route) except for the default `route-all` route, which should be kept..
+Do **not** combine with [TrafficRoute](/docs/{{ page.version }}/policies/traffic-route).
{% endwarning %}
The `MeshHTTPRoute` policy allows altering and redirecting HTTP requests
@@ -114,10 +114,6 @@ them in a `MeshHTTPRoute`!
- **`weight`** - when a request matches the route, the choice of an upstream cluster
is determined by its weight. Total weight is a sum of all weights in `backendRefs` list.
-## Interactions with `MeshTCPRoute`
-
-`MeshHTTPRoute` takes priority over [`MeshTCPRoute`](../meshtcproute) when both are defined for the same service, and the matching `MeshTCPRoute` is ignored.
-
## Examples
### Traffic split
diff --git a/app/_src/policies/meshloadbalancingstrategy.md b/app/_src/policies/meshloadbalancingstrategy.md
index 3aa6c0906..276353549 100644
--- a/app/_src/policies/meshloadbalancingstrategy.md
+++ b/app/_src/policies/meshloadbalancingstrategy.md
@@ -6,31 +6,12 @@ title: MeshLoadBalancingStrategy
This policy uses new policy matching algorithm.
{% endwarning %}
-This policy enables {{site.mesh_product_name}} to configure the load balancing strategy for traffic between services in the mesh.
-When using this policy, the [localityAwareLoadBalancing](/docs/{{ page.version }}/policies/locality-aware) flag is ignored.
+This policy enables {{site.mesh_product_name}} to configure the load balancing strategy
+for traffic between services in the mesh. Also, [localityAwareLoadBalancing](/docs/{{ page.version }}/policies/locality-aware)
+flag is going to be replaced by the current policy and will be deprecated in the future releases.
## TargetRef support matrix
-{% if_version gte:2.6.x %}
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| --------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-{% endtab %}
-
-{% tab targetRef Builtin Gateway %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshGateway`, `MeshGateway` with listener `tags`|
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-{% endtab %}
-{% endtabs %}
-
-{% endif_version %}
-{% if_version lte:2.5.x %}
-
| TargetRef type | top level | to | from |
| ----------------- | --------- | --- | ---- |
| Mesh | ✅ | ✅ | ❌ |
@@ -38,8 +19,6 @@ When using this policy, the [localityAwareLoadBalancing](/docs/{{ page.version }
| MeshService | ✅ | ✅ | ❌ |
| MeshServiceSubset | ✅ | ❌ | ❌ |
-{% endif_version %}
-
To learn more about the information in this table, see the [matching docs](/docs/{{ page.version }}/policies/targetref).
## Configuration
@@ -97,7 +76,7 @@ Advanced locality-aware load balancing provides a powerful means of defining how
- **`AnyExcept`** - traffic will be load balanced to every available zone except those specified in zones list.
- **`None`** - traffic will not be load balanced to any zone.
- **`zones`** - list of zone names
- - **`failoverThreshold.percentage`** - (optional) defines the percentage of live destination dataplane proxies below which load balancing to the next priority starts. .e.g: If you have this set to 70 and you have 10 dataplane proxies it will start load balancing to the next priority when the number of healthy destinations falls under 7. The value to be in (0.0 - 100.0] range (Default 50). If the value is a double number, put it in quotes.
+ - **`failoverThreshold.percentage`** - (optional) defines the percentage of live destination dataplane proxies below which load balancing to the next priority starts. Has to be in (0.0 - 100.0] range. If the value is a double number, put it in quotes.
#### Zone Egress support
diff --git a/app/_src/policies/meshmetric.md b/app/_src/policies/meshmetric.md
deleted file mode 100644
index 4dc6e43cf..000000000
--- a/app/_src/policies/meshmetric.md
+++ /dev/null
@@ -1,283 +0,0 @@
----
-title: MeshMetric
----
-
-{% warning %}
-This policy uses new policy matching algorithm.
-Do **not** combine with [Traffic Metrics](/docs/{{ page.version }}/policies/traffic-metrics).
-{% endwarning %}
-
-{{site.mesh_product_name}} facilitates consistent traffic metrics across all data plane proxies in your mesh.
-
-You can define metrics configuration for a whole Mesh, and optionally tweak certain parts for individual data plane proxies.
-For example, you might need to override the default metrics port if it's already in use on the specified machine.
-
-{{site.mesh_product_name}} provides full integration with Prometheus:
-
-* Each proxy can expose its metrics in [Prometheus format](https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-format).
-* {{site.mesh_product_name}} exposes an API called the monitoring assignment service (MADS) which exposes proxies configured by `MeshMetric`.
-
-To collect metrics from {{site.mesh_product_name}}, you need to expose metrics from proxies and applications.
-
-{% tip %}
-In the rest of this page we assume you have already configured your observability tools to work with {{site.mesh_product_name}}.
-If you haven't already read the [observability docs](/docs/{{ page.version }}/explore/observability).
-{% endtip %}
-
-## TargetRef support matrix
-
-| TargetRef type | top level | to | from |
-|-------------------|-----------|----|------|
-| Mesh | ✅ | ❌ | ❌ |
-| MeshSubset | ✅ | ❌ | ❌ |
-| MeshService | ✅ | ❌ | ❌ |
-| MeshServiceSubset | ✅ | ❌ | ❌ |
-
-To learn more about the information in this table, see the [matching docs](/docs/{{ page.version }}/policies/targetref).
-
-## Configuration
-
-There are three main sections of the configuration: `sidecar`, `applications`, `backends`.
-The first two define how to scrape parts of the mesh (sidecar and underlying applications), the third one defines what to do with the data (in case of Prometheus instructs to scrape specific address, in case of OpenTelemetry defines where to push data).
-
-{% tip %}
-In contrast to [Traffic Metrics](/docs/{{ page.version }}/policies/traffic-metrics) all configuration is dynamic and no restarts of the Data Plane Proxies are needed.
-You can define configuration refresh interval by using `KUMA_DATAPLANE_RUNTIME_DYNAMIC_CONFIGURATION_REFRESH_INTERVAL` env var or `{{site.set_flag_values_prefix}}dataplaneRuntime.dynamicConfiguration.refreshInterval` Helm value.
-{% endtip %}
-
-### Sidecar
-
-This part of the configuration applies to the data plane proxy scraping.
-
-In case you don't want to retrieve all Envoy's metrics, it's possible to filter them.
-You are able to specify [`regex`](https://www.envoyproxy.io/docs/envoy/latest/operations/admin#get--stats?filter=regex) which causes the metrics endpoint to return only matching metrics.
-Also, you can set flag [`usedOnly`](https://www.envoyproxy.io/docs/envoy/latest/operations/admin#get--stats?usedonly) that returns only metrics updated by Envoy.
-
-Example section of the configuration:
-
-```yaml
- sidecar:
- regex: http2_act.*
- usedOnly: true
-```
-
-### Applications
-
-In addition to exposing metrics from the data plane proxies, you might want to expose metrics from applications running next to the proxies.
-{{site.mesh_product_name}} allows scraping Prometheus metrics from the applications endpoint running in the same `Pod` or `VM`.
-Later those metrics are aggregated and exposed at the same `port/path` as data plane proxy metrics.
-It is possible to configure it at the `Mesh` level, for all the applications in the `Mesh`, or just for specific applications.
-
-Here are reasons where you'd want to use this feature:
-- Application metrics are labelled with your mesh parameters (tags, mesh, data plane name...), this means that in mixed Universal and Kubernetes mode metrics are reported with the same types of labels.
-- Both application and sidecar metrics are scraped at the same time. This makes sure they are coherent (with 2 different scrapers they can end up scraping at different intervals and make metrics harder to correlate).
-- If you disable [passthrough](/docs/{{ page.version }}/networking/non-mesh-traffic#outgoing) and your mesh uses mTLS and Prometheus is outside the mesh this is the only way to retrieve these metrics as the app is completely hidden behind the sidecar.
-
-Example section of the configuration:
-
-```yaml
- applications:
- - path: "/metrics/prometheus"
- address: # optional custom address if the underlying application listens on a different address than the Data Plane Proxy
- port: 8888
-```
-
-### Backends
-
-```yaml
- backends:
- - type: Prometheus
- prometheus:
- port: 5670
- path: /metrics
-```
-
-This tells {{site.mesh_product_name}} to expose an HTTP endpoint with Prometheus metrics on port `5670` and URI path `/metrics`.
-
-The metrics endpoint is forwarded to the standard Envoy [Prometheus metrics endpoint](https://www.envoyproxy.io/docs/envoy/latest/operations/admin#get--stats?format=prometheus) and supports the same query parameters.
-You can pass the `filter` query parameter to limit the results to metrics whose names match a given regular expression.
-By default, all available metrics are returned.
-
-#### Secure metrics with TLS
-
-{{site.mesh_product_name}} allows configuring metrics endpoint with TLS.
-
-```yaml
- backends:
- - type: Prometheus
- prometheus:
- port: 5670
- path: /metrics
- tls:
- mode: ProvidedTLS
-```
-
-In addition to the `MeshMetric` configuration, `kuma-sidecar` requires a provided certificate and key for its operation.
-
-{% tabs expose-mesh-metrics-data-plane-proxies-tls useUrlFragment=false %}
-{% tab expose-mesh-metrics-data-plane-proxies-tls Kubernetes %}
-
-When the certificate and key are available within the container, `kuma-sidecar` needs the paths to provided files as the following environment variables:
-
-* `KUMA_DATAPLANE_RUNTIME_METRICS_CERT_PATH`
-* `KUMA_DATAPLANE_RUNTIME_METRICS_KEY_PATH`
-
-It's possible to use a [`ContainerPatch`](/docs/{{ page.version }}/production/dp-config/dpp-on-kubernetes/#custom-container-configuration) to add variables to `kuma-sidecar`:
-
-```yaml
-apiVersion: kuma.io/v1alpha1
-kind: ContainerPatch
-metadata:
- name: container-patch-1
- namespace: kuma-system
-spec:
- sidecarPatch:
- - op: add
- path: /env/-
- value: '{
- "name": "KUMA_DATAPLANE_RUNTIME_METRICS_CERT_PATH",
- "value": "/kuma/server.crt"
- }'
- - op: add
- path: /env/-
- value: '{
- "name": "KUMA_DATAPLANE_RUNTIME_METRICS_KEY_PATH",
- "value": "/kuma/server.key"
- }'
-```
-
-{% endtab %}
-{% tab expose-mesh-metrics-data-plane-proxies-tls Universal %}
-
-Please upload the certificate and the key to the machine, and then define the following environment variables with the correct paths:
-
- * `KUMA_DATAPLANE_RUNTIME_METRICS_CERT_PATH`
- * `KUMA_DATAPLANE_RUNTIME_METRICS_KEY_PATH`
-
-{% endtab %}
-{% endtabs %}
-
-#### activeMTLSBackend
-
-We no longer support activeMTLSBackend, if you need to encrypt and authorize the metrics use [Secure metrics with TLS](#secure-metrics-with-tls) with a combination of [one of the authorization methods](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config).
-
-#### Running multiple prometheus instances
-
-If you need to run multiple instances of Prometheus and want to target different set of Data Plane Proxies you can do this by using Client ID setting on both `MeshMetric` (`clientId`) and [Prometheus configuration](https://github.com/prometheus/prometheus/pull/13278/files#diff-17f1012e0c2fbd9bcd8dff3c23b18ff4b6676eef3beca6f8a3e72e6a36633334R2233) (`client_id`).
-
-{% warning %}
-To use `clientId` setting you need to be running at least Prometheus `2.49.0`.
-{% endwarning %}
-
-Example configurations differentiated by `prometheus` tag:
-
-{% policy_yaml first %}
-```yaml
-type: MeshMetric
-name: prometheus-one
-mesh: default
-spec:
- targetRef:
- kind: MeshSubset
- tags:
- prometheus: "one"
- backends:
- - type: Prometheus
- prometheus:
- clientId: "prometheus-one"
- port: 5670
- path: /metrics
-```
-{% endpolicy_yaml %}
-
-{% policy_yaml second %}
-```yaml
-type: MeshMetric
-name: prometheus-two
-mesh: default
-spec:
- targetRef:
- kind: MeshSubset
- tags:
- prometheus: "two"
- backends:
- - type: Prometheus
- prometheus:
- clientId: "prometheus-two"
- port: 5670
- path: /metrics
-```
-{% endpolicy_yaml %}
-
-And the Prometheus configurations:
-
-```yaml
-scrape_configs:
- - job_name: 'kuma-dataplanes'
- # ...
- kuma_sd_configs:
- - server: http://localhost:5676
- refresh_interval: 60s # different from prometheus-two
- client_id: "prometheus-one"
-```
-
-```yaml
-scrape_configs:
- - job_name: 'kuma-dataplanes'
- # ...
- kuma_sd_configs:
- - server: http://localhost:5676
- refresh_interval: 20s # different from prometheus-one
- client_id: "prometheus-two"
-```
-
-## Examples
-
-### With custom port, path, clientId, application aggregation and service override
-
-The first policy defines a default `MeshMetric` policy for the `default` mesh.
-The second policy creates an override for workloads tagged with `framework: example-web-framework`.
-That web framework exposes metrics under `/metrics/prometheus` and port `8888`.
-
-{% policy_yaml customone %}
-```yaml
-type: MeshMetric
-mesh: default
-name: metrics-default
-spec:
- targetRef:
- kind: Mesh
- default:
- sidecar:
- usedOnly: true
- backends:
- - type: Prometheus
- prometheus:
- clientId: main-backend
- port: 5670
- path: /metrics
- tls:
- mode: "ProvidedTLS"
-```
-{% endpolicy_yaml %}
-
-{% policy_yaml customtwo %}
-```yaml
-type: MeshMetric
-mesh: default
-name: metrics-for-mesh-service
-spec:
- targetRef:
- kind: MeshSubset
- tags:
- framework: "example-web-framework"
- default:
- applications:
- - path: "/metrics/prometheus"
- port: 8888
-```
-{% endpolicy_yaml %}
-
-## All policy options
-
-{% json_schema MeshMetrics %}
diff --git a/app/_src/policies/meshproxypatch.md b/app/_src/policies/meshproxypatch.md
index a9355a238..b9028289f 100644
--- a/app/_src/policies/meshproxypatch.md
+++ b/app/_src/policies/meshproxypatch.md
@@ -34,23 +34,7 @@ Do **not** combine with [Proxy Template](/docs/{{ page.version }}/policies/proxy
{% endif_version %}
{% if_version gte:2.5.x %}
-{% if_version gte:2.6.x %}
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| --------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-{% endtab %}
-
-{% tab targetRef Builtin Gateway %}
-| `targetRef` | Allowed kinds |
-| ---------------- | --------------------- |
-| `targetRef.kind` | `Mesh`, `MeshGateway` |
-{% endtab %}
-{% endtabs %}
-{% endif_version %}
-{% if_version lte:2.5.x %}
| `targetRef.kind` | top level |
|---------------------|-----------|
| `Mesh` | ✅ |
@@ -59,7 +43,6 @@ Do **not** combine with [Proxy Template](/docs/{{ page.version }}/policies/proxy
| `MeshServiceSubset` | ✅ |
| `MeshGateway` | ✅ |
-{% endif_version %}
{% endif_version %}
To learn more about the information in this table, see the [matching docs](/docs/{{ page.version }}/policies/targetref).
diff --git a/app/_src/policies/meshratelimit.md b/app/_src/policies/meshratelimit.md
index 83382197f..9d2bc1870 100644
--- a/app/_src/policies/meshratelimit.md
+++ b/app/_src/policies/meshratelimit.md
@@ -22,26 +22,6 @@ Rate limiting supports an [ExternalService](/docs/{{ page.version }}/policies/ex
## TargetRef support matrix
-{% if_version gte:2.6.x %}
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-| `from[].targetRef.kind` | `Mesh` |
-{% endtab %}
-
-{% tab targetRef Builtin Gateway %}
-| `targetRef` | Allowed kinds |
-| --------------------- | --------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshGateway`, `MeshGateway` with listener `tags` |
-| `to[].targetRef.kind` | `Mesh` |
-{% endtab %}
-{% endtabs %}
-
-{% endif_version %}
-{% if_version lte:2.5.x %}
-
| TargetRef type | top level | to | from |
| ----------------- | --------- | --- | ---- |
| Mesh | ✅ | ❌ | ✅ |
@@ -49,8 +29,6 @@ Rate limiting supports an [ExternalService](/docs/{{ page.version }}/policies/ex
| MeshService | ✅ | ❌ | ❌ |
| MeshServiceSubset | ✅ | ❌ | ❌ |
-{% endif_version %}
-
To learn more about the information in this table, see the [matching docs](/docs/{{ page.version }}/policies/targetref).
## Configuration
diff --git a/app/_src/policies/meshretry.md b/app/_src/policies/meshretry.md
index efc25dd0f..b349a281f 100644
--- a/app/_src/policies/meshretry.md
+++ b/app/_src/policies/meshretry.md
@@ -14,37 +14,21 @@ This policy enables {{site.mesh_product_name}} to know how to behave if there is
{% if_version gte:2.4.x %}
{% tabs targetRef useUrlFragment=false %}
{% tab targetRef Sidecar %}
-{% if_version gte:2.6.x %}
-| `targetRef` | Allowed kinds |
-| --------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-{% endif_version %}
-{% if_version lte:2.5.x %}
| `targetRef.kind` | top level | to | from |
| ------------------- | --------- | --- | ---- |
| `Mesh` | ✅ | ✅ | ❌ |
| `MeshSubset` | ✅ | ❌ | ❌ |
| `MeshService` | ✅ | ✅ | ❌ |
| `MeshServiceSubset` | ✅ | ❌ | ❌ |
-{% endif_version %}
{% endtab %}
{% tab targetRef Builtin Gateway %}
-{% if_version gte:2.6.x %}
-| `targetRef` | Allowed kinds |
-| --------------------- | --------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshGateway`, `MeshGateway` with listener `tags` |
-| `to[].targetRef.kind` | `Mesh` |
-{% endif_version %}
-{% if_version lte:2.5.x %}
| `targetRef.kind` | top level | to |
| ------------------- | --------- | --- |
| `Mesh` | ✅ | ✅ |
| `MeshGateway` | ✅ | ❌ |
| `MeshService` | ✅ | ❌ |
| `MeshServiceSubset` | ✅ | ❌ |
-{% endif_version %}
{% endtab %}
{% endtabs %}
diff --git a/app/_src/policies/meshtcproute.md b/app/_src/policies/meshtcproute.md
index 38539c2bc..8bb64e59a 100644
--- a/app/_src/policies/meshtcproute.md
+++ b/app/_src/policies/meshtcproute.md
@@ -4,18 +4,12 @@ title: MeshTCPRoute
{% warning %}
This policy uses a new policy matching algorithm.
-Do **not** combine with [TrafficRoute](/docs/{{ page.version }}/policies/traffic-route) except for the default `route-all` route, which should be kept.
+Do **not** combine with [TrafficRoute](/docs/{{ page.version }}/policies/traffic-route).
{% endwarning %}
The `MeshTCPRoute` policy allows you to alter and redirect TCP requests
depending on where the request is coming from and where it's going to.
-{% if_version lte:2.5.x %}
-{% warning %}
-`MeshTCPRoute` doesn't support cross zone traffic before version 2.6.0.
-{% endwarning %}
-{% endif_version %}
-
## TargetRef support matrix
| TargetRef type | top level | to | from |
@@ -59,9 +53,6 @@ The following describes the default configuration settings of the `MeshTCPRoute`
cluster is determined by its weight. Total weight is a sum of all weights
in the `backendRefs` list.
-## Interactions with `MeshHTTPRoute`
-
-[`MeshHTTPRoute`](../meshhttproute) takes priority over `MeshTCPRoute` when both are defined for the same service, and the matching `MeshTCPRoute` is ignored.
## Examples
diff --git a/app/_src/policies/meshtimeout.md b/app/_src/policies/meshtimeout.md
index 5f30e56a8..d5093f1e0 100644
--- a/app/_src/policies/meshtimeout.md
+++ b/app/_src/policies/meshtimeout.md
@@ -9,26 +9,6 @@ Do **not** combine with [Timeout policy](/docs/{{ page.version }}/policies/timeo
## TargetRef support matrix
-{% if_version gte:2.6.x %}
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | ------------------------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset`, `MeshHTTPRoute` |
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-| `from[].targetRef.kind` | `Mesh` |
-{% endtab %}
-
-{% tab targetRef Builtin Gateway %}
-| `targetRef` | Allowed kinds |
-| --------------------- | --------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshGateway`, `MeshGateway` with listener `tags` |
-| `to[].targetRef.kind` | `Mesh` |
-{% endtab %}
-{% endtabs %}
-
-{% endif_version %}
-{% if_version lte:2.5.x %}
{% if_version gte:2.3.x %}
| TargetRef type | top level | to | from |
@@ -50,7 +30,6 @@ Do **not** combine with [Timeout policy](/docs/{{ page.version }}/policies/timeo
| MeshService | ✅ | ✅ | ❌ |
| MeshServiceSubset | ✅ | ❌ | ❌ |
-{% endif_version %}
{% endif_version %}
To learn more about the information in this table, see the [matching docs](/docs/{{ page.version }}/policies/targetref).
diff --git a/app/_src/policies/meshtrace.md b/app/_src/policies/meshtrace.md
index 5807dbb2e..073e52f38 100644
--- a/app/_src/policies/meshtrace.md
+++ b/app/_src/policies/meshtrace.md
@@ -33,24 +33,6 @@ For HTTP you can also manually forward the following headers:
## TargetRef support matrix
-{% if_version gte:2.6.x %}
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| --------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-{% endtab %}
-
-{% tab targetRef Builtin Gateway %}
-| `targetRef` | Allowed kinds |
-| ---------------- | --------------------- |
-| `targetRef.kind` | `Mesh`, `MeshGateway` |
-{% endtab %}
-{% endtabs %}
-
-{% endif_version %}
-{% if_version lte:2.5.x %}
-
| TargetRef type | top level | to | from |
| ----------------- | --------- | --- | ---- |
| Mesh | ✅ | ❌ | ❌ |
@@ -58,8 +40,6 @@ For HTTP you can also manually forward the following headers:
| MeshService | ✅ | ❌ | ❌ |
| MeshServiceSubset | ✅ | ❌ | ❌ |
-{% endif_version %}
-
To learn more about the information in this table, see the [matching docs](/docs/{{ page.version }}/policies/targetref).
## Configuration
diff --git a/app/_src/policies/meshtrafficpermission.md b/app/_src/policies/meshtrafficpermission.md
index beff82f2a..1a7e07636 100644
--- a/app/_src/policies/meshtrafficpermission.md
+++ b/app/_src/policies/meshtrafficpermission.md
@@ -9,18 +9,12 @@ Do **not** combine with [TrafficPermission](/docs/{{ page.version }}/policies/tr
## TargetRef support matrix
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-| `from[].targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-{% endtab %}
-{% tab targetRef Builtin Gateway %}
-`MeshTrafficPermission` isn't supported on builtin gateways. If applied via
-`spec.targetRef.kind: MeshService`, it has no effect.
-{% endtab %}
-{% endtabs %}
+| TargetRef type | top level | to | from |
+| ----------------- | --------- | --- | ---- |
+| Mesh | ✅ | ❌ | ✅ |
+| MeshSubset | ✅ | ❌ | ✅ |
+| MeshService | ✅ | ❌ | ✅ |
+| MeshServiceSubset | ✅ | ❌ | ✅ |
If you don't understand this table you should read [matching docs](/docs/{{ page.version }}/policies/targetref).
diff --git a/app/_src/policies/rate-limit.md b/app/_src/policies/rate-limit.md
index 1efbcc018..bf6837e12 100644
--- a/app/_src/policies/rate-limit.md
+++ b/app/_src/policies/rate-limit.md
@@ -1,11 +1,6 @@
---
title: Rate Limit
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? Don't use this policy, check [`MeshRateLimit`](/docs/{{ page.version }}/policies/meshratelimit) instead.
-{% endwarning %}
-{% endif_version %}
{% tip %}
Rate Limit is an inbound policy. Dataplanes whose configuration is modified are in the `destinations` matcher.
diff --git a/app/_src/policies/retry.md b/app/_src/policies/retry.md
index 16f54fa82..58a498c38 100644
--- a/app/_src/policies/retry.md
+++ b/app/_src/policies/retry.md
@@ -1,11 +1,6 @@
---
title: Retry
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? Don't use this policy, check [`MeshRetry`](/docs/{{ page.version }}/policies/meshretry) instead.
-{% endwarning %}
-{% endif_version %}
{% tip %}
Retry is an outbound policy. Dataplanes whose configuration is modified are in the `sources` matcher.
diff --git a/app/_src/policies/targetref.md b/app/_src/policies/targetref.md
index f77e58d3e..5b8341b9b 100644
--- a/app/_src/policies/targetref.md
+++ b/app/_src/policies/targetref.md
@@ -9,23 +9,28 @@ A policy is a set of configuration that will be used to generate the proxy confi
## What do `targetRef` policies look like?
-There are two parts to a policy:
+There are two parts in a policy:
1. The metadata
2. The spec
### Metadata
-Metadata identifies the policies by its `name`, `type` and what `mesh` it's part of:
+Metadata identifies the policies by its `name`, `type` and what `mesh` it is part of.
+
+This is how it looks:
{% tabs metadata %}
{% tab metadata Universal %}
+A policy metadata looks like:
+
```yaml
type: ExamplePolicy
name: my-policy-name
mesh: default
-spec: ... # spec data specific to the policy kind
+spec:
+ ... # spec data specific to the policy kind
```
{% endtab %}
@@ -33,13 +38,16 @@ spec: ... # spec data specific to the policy kind
In Kubernetes all our policies are implemented as [custom resource definitions (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) in the group `kuma.io/v1alpha1`.
+A policy metadata looks like:
+
```yaml
apiVersion: kuma.io/v1alpha1
kind: ExamplePolicy
metadata:
name: my-policy-name
- namespace: {{ site.mesh_namespace }}
-spec: ... # spec data specific to the policy kind
+ namespace: {{site.mesh_namespace}}
+spec:
+ ... # spec data specific to the policy kind
```
By default the policy is created in the `default` mesh.
@@ -52,10 +60,11 @@ apiVersion: kuma.io/v1alpha1
kind: ExamplePolicy
metadata:
name: my-policy-name
- namespace: {{ site.mesh_namespace }}
+ namespace: {{site.mesh_namespace}}
labels:
kuma.io/mesh: "my-mesh"
-spec: ... # spec data specific to the policy kind
+spec:
+ ... # spec data specific to the policy kind
```
{% warning %}
@@ -67,7 +76,7 @@ Policies are namespaced scope and currently the namespace must be the one the co
### Spec
-The `spec` field contains the actual configuration of the policy.
+The spec contains the actual configuration of the policy.
All specs have a **top level `targetRef`** which identifies which proxies this policy applies to.
In particular, it defines which proxies have their Envoy configuration modified.
@@ -129,10 +138,10 @@ It looks like:
```yaml
targetRef:
- kind: Mesh | MeshSubset | MeshService | MeshServiceSubset | MeshGateway
- name: "my-name" # For kinds MeshService, MeshServiceSubset and MeshGateway a name has to be defined
+ kind: Mesh | MeshSubset | MeshService | MeshServiceSubset | MeshGatewayRoute
+ name: "my-name" # For kinds MeshService, MeshServiceSubset and MeshGatewayRoute a name has to be defined
tags:
- key: value # For kinds MeshServiceSubset, MeshSubset and MeshGateway a list of matching tags can be used
+ key: value # For kinds MeshServiceSubset and MeshSubset a list of matching tags can be used
```
Here's an explanation of each kinds and their scope:
@@ -141,9 +150,7 @@ Here's an explanation of each kinds and their scope:
- MeshSubset: same as Mesh but filters only proxies who have matching `targetRef.tags`
- MeshService: all proxies with a tag `kuma.io/service` equal to `targetRef.name`
- MeshServiceSubset: same as `MeshService` but further refine to proxies that have matching `targetRef.tags`
-- MeshGateway: targets proxies matched by the named MeshGateway
- - Note that it's very strongly recommended to target MeshGateway proxies using this
- kind, as opposed to MeshService/MeshServiceSubset.
+- MeshGatewayRoute: gateway using `MeshGatewayRoute` that have a name equal to `targetRef.name`
Consider the example below:
@@ -152,7 +159,7 @@ apiVersion: kuma.io/v1alpha1
kind: MeshAccessLog
metadata:
name: example
- namespace: {{ site.mesh_namespace }}
+ namespace: {{site.mesh_namespace}}
labels:
kuma.io/mesh: default
spec:
@@ -192,68 +199,19 @@ Not every policy supports `to` and `from` levels. Additionally, not every resour
appear at every supported level. The specified top level resource can also affect which
resources can appear in `to` or `from`.
-{% if_version gte:2.6.x %}
-To help users, each policy documentation includes tables indicating which `targetRef` kinds is supported at each level.
-For each type of proxy, sidecar or builtin gateway, the table indicates for each
-`targetRef` level, which kinds are supported.
-
-The tables look like:
-
-{% tabs targetRef useUrlFragment=false %}
-{% tab targetRef Sidecar %}
-| `targetRef` | Allowed kinds |
-| ----------------------- | -------------------------------------------------------- |
-| `targetRef.kind` | `Mesh`, `MeshSubset`, `MeshService`, `MeshServiceSubset` |
-| `to[].targetRef.kind` | `Mesh`, `MeshService` |
-| `from[].targetRef.kind` | `Mesh` |
-{% endtab %}
-
-{% tab targetRef Builtin Gateway %}
-| `targetRef` | Allowed kinds |
-| --------------------- | ------------------------------------------------ |
-| `targetRef.kind` | `Mesh`, `MeshGateway`, `MeshGateway` with `tags` |
-| `to[].targetRef.kind` | `Mesh` |
-{% endtab %}
-{% endtabs %}
-
-#### Sidecar
-
-We see that we can select sidecar proxies via any of the kinds that select
-sidecars and we can set both `to` and `from`.
-
-We can apply policy to:
-* all traffic originating at the sidecar _to_ anywhere (`to[].targetRef.kind: Mesh`)
-* traffic _to_ a specific `kuma.io/service` (`to[].targetRef.kind: MeshService`)
-
-We can also apply policy to:
-* traffic terminating at the sidecar _from_ anywhere in the mesh (`from[].targetRef.kind: Mesh`)
-
-#### Builtin gateways
-
-We see that we can select gateway proxies via any of the kinds that select
-gateways as well as specific gateway listeners and we can set only `to`.
-
-We can only apply policy to:
-* all traffic originating at the gateway _to_ anywhere (`to[].targetRef.kind: Mesh`)
-{% endif_version %}
-{% if_version lte:2.5.x %}
-To help users, each policy documentation includes a table indicating which
-`targetRef` kinds is supported at each level.
+To help users, each policy documentation includes a table indicating which `targetRef` kinds is supported at each level.
This table looks like:
| `targetRef.kind` | top level | to | from |
-| ------------------- | --------- | --- | ---- |
+|---------------------| --------- | --- | ---- |
| `Mesh` | ✅ | ✅ | ❌ |
| `MeshSubset` | ✅ | ❌ | ❌ |
| `MeshService` | ✅ | ❌ | ✅ |
| `MeshServiceSubset` | ✅ | ❌ | ❌ |
-| `MeshGateway` | ✅ | ❌ | ❌ |
+| `MeshGatewayRoute` | ✅ | ❌ | ❌ |
-Here it indicates that the top level can use any targetRef kinds. But in
-`targetRef.to` only kind `Mesh` can be used and in `targetRef.from`
-only kind `MeshService`.
-{% endif_version %}
+Here it indicates that the top level can use any targetRef kinds. But in `targetRef.to` only kind `Mesh` can be used and in `targetRef.from` only kind `MeshService`.
### Merging configuration
@@ -262,7 +220,7 @@ because a proxy can be targeted by multiple `targetRef`'s.
We define a total order of policies:
-- Mesh > MeshSubset > MeshService > MeshServiceSubset (the more a `targetRef` is focused the higher priority it has)
+- Mesh > MeshSubset > MeshService > MeshServiceSubset > MeshGatewayRoute (the more a `targetRef` is focused the higher priority it has)
- If levels are equal the lexicographic order of policy names is used
For `to` and `from` policies we concatenate the array for each matching policies.
@@ -287,7 +245,6 @@ default:
```
The merge result is:
-
```yaml
default:
conf: 1
diff --git a/app/_src/policies/timeout.md b/app/_src/policies/timeout.md
index ce22d2136..7c53e7221 100644
--- a/app/_src/policies/timeout.md
+++ b/app/_src/policies/timeout.md
@@ -1,11 +1,6 @@
---
title: Timeout
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? Don't use this policy, check [`MeshTimeout`](/docs/{{ page.version }}/policies/meshtimeout) instead.
-{% endwarning %}
-{% endif_version %}
{% tip %}
Timeout is an outbound policy. Dataplanes whose configuration is modified are in the `sources` matcher.
diff --git a/app/_src/policies/traffic-log.md b/app/_src/policies/traffic-log.md
index 109c5bd69..dbe8ac463 100644
--- a/app/_src/policies/traffic-log.md
+++ b/app/_src/policies/traffic-log.md
@@ -1,11 +1,6 @@
---
title: Traffic Log
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? Don't use this, check the [`MeshAccessLog` policy](/docs/{{ page.version }}/policies/meshaccesslog) instead.
-{% endwarning %}
-{% endif_version %}
With the Traffic Log policy you can easily set up access logs on every data plane in a mesh.
diff --git a/app/_src/policies/traffic-metrics.md b/app/_src/policies/traffic-metrics.md
index ac45377cf..2cd6b4c4d 100644
--- a/app/_src/policies/traffic-metrics.md
+++ b/app/_src/policies/traffic-metrics.md
@@ -1,11 +1,6 @@
---
title: Traffic Metrics
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? Don't use this, check the [`MeshMetric` policy](/docs/{{ page.version }}/policies/meshmetric) instead.
-{% endwarning %}
-{% endif_version %}
{{site.mesh_product_name}} facilitates consistent traffic metrics across all data plane proxies in your mesh.
diff --git a/app/_src/policies/traffic-permissions.md b/app/_src/policies/traffic-permissions.md
index bff39d50e..1140be07c 100644
--- a/app/_src/policies/traffic-permissions.md
+++ b/app/_src/policies/traffic-permissions.md
@@ -1,12 +1,6 @@
---
title: Traffic Permissions
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? Don't use this, check the [`MeshTrafficPermission` policy](/docs/{{ page.version }}/policies/meshtrafficpermission) instead.
-{% endwarning %}
-{% endif_version %}
-
{% tip %}
Traffic Permissions is an inbound policy. Dataplanes whose configuration is modified are in the `destinations` matcher.
diff --git a/app/_src/policies/traffic-route.md b/app/_src/policies/traffic-route.md
index dd81a225f..b0b62a2b6 100644
--- a/app/_src/policies/traffic-route.md
+++ b/app/_src/policies/traffic-route.md
@@ -1,11 +1,6 @@
---
title: Traffic Route
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? Don't use this, check the [`MeshHTTPRoute`](/docs/{{ page.version }}/policies/meshhttproute) or [`MeshTCPRoute` policy](/docs/{{ page.version }}/policies/meshtcproute) policies instead.
-{% endwarning %}
-{% endif_version %}
{% tip %}
Traffic Route is an outbound policy. Dataplanes whose configuration is modified are in the `sources` matcher.
diff --git a/app/_src/policies/traffic-trace.md b/app/_src/policies/traffic-trace.md
index c79a1401d..c099e670a 100644
--- a/app/_src/policies/traffic-trace.md
+++ b/app/_src/policies/traffic-trace.md
@@ -1,11 +1,6 @@
---
title: Traffic Trace
---
-{% if_version gte:2.6.x %}
-{% warning %}
-New to Kuma? Don't use this, check the [`MeshTrace` policy](/docs/{{ page.version }}/policies/meshtrace) instead.
-{% endwarning %}
-{% endif_version %}
This policy enables tracing logging to a third party tracing solution.
diff --git a/app/_src/policies/virtual-outbound.md b/app/_src/policies/virtual-outbound.md
index 551f692e6..c53d19ef4 100644
--- a/app/_src/policies/virtual-outbound.md
+++ b/app/_src/policies/virtual-outbound.md
@@ -6,10 +6,10 @@ This policy lets you customize hostnames and ports for communicating with data p
Possible use cases are:
-1. Preserving hostnames when migrating to service mesh.
-2. Providing multiple hostnames for reaching the same service, for example when renaming or for usability.
-3. Providing specific routes, for example to reach a specific pod in a service with StatefulSets on Kubernetes, or to add a URL to reach a specific version of a service.
-4. Expose multiple inbounds on different ports.
+1) Preserving hostnames when migrating to service mesh.
+2) Providing multiple hostnames for reaching the same service, for example when renaming or for usability.
+3) Providing specific routes, for example to reach a specific pod in a service with StatefulSets on Kubernetes, or to add a URL to reach a specific version of a service.
+4) Expose multiple inbounds on different ports.
Limitations:
@@ -41,33 +41,6 @@ inbound:
and a virtual outbound with this definition:
-{% tabs default-test-virtualoutbound useUrlFragment=false %}
-{% tab default-test-virtualoutbound Kubernetes %}
-{% raw %}
-```yaml
-apiVersion: kuma.io/v1alpha1
-kind: VirtualOutbound
-mesh: default
-metadata:
- name: test
-spec:
- selectors:
- - match:
- kuma.io/service: "*"
- conf:
- host: "{{.v}}.{{.service}}.mesh"
- port: "{{.port}}"
- parameters:
- - name: service
- tagKey: "kuma.io/service"
- - name: port
- tagKey: "k8s.kuma.io/service-port"
- - name: v
- tagKey: version
-```
-{% endraw %}
-{% endtab %}
-{% tab default-test-virtualoutbound Universal %}
{% raw %}
```yaml
type: VirtualOutbound
@@ -88,20 +61,16 @@ conf:
tagKey: version
```
{% endraw %}
-{% endtab %}
-{% endtabs %}
produce the hostname: `v1.backend.mesh` with port: `1800`.
-Additional Requirements:
+Additional requirements:
-- {% if_version lte:2.1.x %}[Transparent proxying](/docs/{{ page.version }}/networking/transparent-proxying){% endif_version %}{% if_version gte:2.2.x %}[Transparent proxying](/docs/{{ page.version }}/production/dp-config/transparent-proxying/){% endif_version %} must be enabled.
-- Either:
- - [Data plane proxy DNS](/docs/{{ page.version }}/networking/dns) must be enabled.
- - Or, the value of `conf.host` must end with the value of `dns_server.domain`, which defaults to `.mesh`.
-- Parameter names must be alphanumeric. These names are used as Go template keys.
-- Parameter names must be unique. This ensures that each parameter can be referenced unambiguously.
-- Parameter with the `kuma.io/service` tagKey must be specified even if it is not used in the template. This prevents hostnames from being defined that could span multiple services.
+- {% if_version lte:2.1.x %}[Transparent proxy](/docs/{{ page.version }}/networking/transparent-proxying){% endif_version %}{% if_version gte:2.2.x %}[Transparent proxy](/docs/{{ page.version }}/production/dp-config/transparent-proxying/){% endif_version %}.
+- Either [data plane proxy DNS](/docs/{{ page.version }}/networking/dns), or else the value of `conf.host` must end with the value of `dns_server.domain` (default value `.mesh`).
+- `name` must be alphanumeric. (Used as a go template key).
+- Each value of `name` must be unique.
+- `kuma.io/service` must be specified even if it's unused in the template. (Prevents defining hostnames that spans services).
The default value of `tagKey` is the value of `name`.
@@ -158,8 +127,8 @@ conf:
### One hostname per version
-{% tabs one-hostname-per-version useUrlFragment=false %}
-{% tab one-hostname-per-version Kubernetes %}
+{% tabs one-hostanme-per-version useUrlFragment=false %}
+{% tab one-hostanme-per-version Kubernetes %}
{% raw %}
```yaml
apiVersion: kuma.io/v1alpha1
@@ -182,7 +151,7 @@ spec:
```
{% endraw %}
{% endtab %}
-{% tab one-hostname-per-version Universal %}
+{% tab one-hostanme-per-version Universal %}
{% raw %}
```yaml
type: VirtualOutbound
diff --git a/app/_src/production/cp-deployment/kubernetes.md b/app/_src/production/cp-deployment/kubernetes.md
index 033d1e46d..8a8c00d34 100644
--- a/app/_src/production/cp-deployment/kubernetes.md
+++ b/app/_src/production/cp-deployment/kubernetes.md
@@ -52,7 +52,7 @@ This feature is tracked in [#7541](https://github.com/kumahq/kuma/issues/7541).
## OpenShift
-### Transparent proxy
+## Transparent proxy
Starting from version 4.1 OpenShift uses `nftables` instead of `iptables`.
So using init container for redirecting traffic to the proxy no longer works and you should use the [`kuma-cni`](/docs/{{ page.version }}/production/dp-config/cni/) instead.
@@ -78,24 +78,3 @@ admissionConfig:
```
After updating `master-config.yaml` restart the cluster and install `control-plane`.
-
-## GKE Autopilot
-
-By default, GKE Autopilot forbids the use of the `NET_ADMIN` linux capability. This is required by Kuma to set up the iptables rules in order to intercept inbound and outbound traffic.
-
-It is possible to configure a GKE cluster in autopilot mode so that the `NET_ADMIN` capability is authorized with the following option in your gcloud command: `--workload-policies=allow-net-admin`
-
-Full example:
-```shell
-gcloud beta container \
- --project ${GCP_PROJECT} \
- clusters create-auto ${CLUSTER_NAME} \
- --region ${REGION} \
- --release-channel "regular" \
- --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" \
- --network "projects/${GCP_PROJECT}/global/networks/default" \
- --subnetwork "projects/${GCP_PROJECT}/regions/${REGION}/subnetworks/default" \
- --no-enable-master-authorized-networks \
- --cluster-ipv4-cidr=/20 \
- --workload-policies=allow-net-admin
-```
diff --git a/app/_src/production/cp-deployment/multi-zone.md b/app/_src/production/cp-deployment/multi-zone.md
index 6235dfcb4..3430e50d7 100644
--- a/app/_src/production/cp-deployment/multi-zone.md
+++ b/app/_src/production/cp-deployment/multi-zone.md
@@ -44,6 +44,7 @@ NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP
```
By default, it's exposed on [port 5685]{% if_version lte:2.1.x %}(/docs/{{ page.version }}/networking/networking){% endif_version %}{% if_version gte:2.2.x %}(/docs/{{ page.version }}/production/use-mesh#control-plane-ports){% endif_version %}. In this example the value is `35.226.196.103:5685`. You pass this as the value of `` when you set up the zone control planes.
+In this example the value is `35.226.196.103:5685`. You pass this as the value of `` when you set up the zone control planes.
{% endtab %}
@@ -149,23 +150,10 @@ Before using {{site.mesh_product_name}} with helm, please follow [these steps](/
{% tab global-control-plane Universal %}
-{% tip %}
-When running the global control plane in Universal mode, a database must be used to persist state for production deployments.
-Ensure that migrations have been run against the database prior to running the global control plane.
-{% endtip %}
-
1. Set up the global control plane, and add the `global` environment variable:
```sh
- KUMA_MODE=global
- KUMA_ENVIRONMENT=universal \
- KUMA_STORE_TYPE=postgres \
- KUMA_STORE_POSTGRES_HOST= \
- KUMA_STORE_POSTGRES_PORT= \
- KUMA_STORE_POSTGRES_USER= \
- KUMA_STORE_POSTGRES_PASSWORD= \
- KUMA_STORE_POSTGRES_DB_NAME= \
- kuma-cp run
+ KUMA_MODE=global kuma-cp run
```
{% endtab %}
@@ -213,41 +201,23 @@ For production use a certificate signed by a trusted CA. See [Secure access acro
{% endtab %}
{% tab zone-control-planes Universal %}
-{% tip %}
-When running the zone control plane in Universal mode, a database must be used to persist state for production deployments.
-Ensure that migrations have been run against the database prior to running the zone control plane.
-{% endtip %}
-
1. On each zone control plane, run:
{% if_version gte:2.3.x %}
```sh
- KUMA_MODE=zone \
- KUMA_MULTIZONE_ZONE_NAME= \
- KUMA_ENVIRONMENT=universal \
- KUMA_STORE_TYPE=postgres \
- KUMA_STORE_POSTGRES_HOST= \
- KUMA_STORE_POSTGRES_PORT= \
- KUMA_STORE_POSTGRES_USER= \
- KUMA_STORE_POSTGRES_PASSWORD= \
- KUMA_STORE_POSTGRES_DB_NAME= \
- KUMA_MULTIZONE_ZONE_GLOBAL_ADDRESS=grpcs://:5685 \
- kuma-cp run
+ KUMA_MODE=zone \
+ KUMA_MULTIZONE_ZONE_NAME= \
+ KUMA_MULTIZONE_ZONE_KDS_TLS_SKIP_VERIFY=true \
+ KUMA_MULTIZONE_ZONE_GLOBAL_ADDRESS=grpcs://:5685 \
+ ./kuma-cp run
```
{% endif_version %}
{% if_version lte:2.2.x %}
```sh
- KUMA_MODE=zone \
- KUMA_MULTIZONE_ZONE_NAME= \
- KUMA_ENVIRONMENT=universal \
- KUMA_STORE_TYPE=postgres \
- KUMA_STORE_POSTGRES_HOST= \
- KUMA_STORE_POSTGRES_PORT= \
- KUMA_STORE_POSTGRES_USER= \
- KUMA_STORE_POSTGRES_PASSWORD= \
- KUMA_STORE_POSTGRES_DB_NAME= \
- KUMA_MULTIZONE_ZONE_GLOBAL_ADDRESS=grpcs://:5685 \
- kuma-cp run
+ KUMA_MODE=zone \
+ KUMA_MULTIZONE_ZONE_NAME= \
+ KUMA_MULTIZONE_ZONE_GLOBAL_ADDRESS=grpcs://:5685 \
+ ./kuma-cp run
```
{% endif_version %}
diff --git a/app/_src/production/cp-deployment/stand-alone.md b/app/_src/production/cp-deployment/stand-alone.md
index 7e44de4c5..a65c7e112 100644
--- a/app/_src/production/cp-deployment/stand-alone.md
+++ b/app/_src/production/cp-deployment/stand-alone.md
@@ -22,20 +22,8 @@ egress.enabled=true
{% endtab %}
{% tab usage Universal %}
-
-{% tip %}
-When running the standalone control plane in Universal mode, a database must be used to persist state for production deployments.
-Ensure that migrations have been run against the database prior to running the standalone control plane.
-{% endtip %}
-
This is the standard installation method.
```sh
-KUMA_STORE_TYPE=postgres \
-KUMA_STORE_POSTGRES_HOST= \
-KUMA_STORE_POSTGRES_PORT= \
-KUMA_STORE_POSTGRES_USER= \
-KUMA_STORE_POSTGRES_PASSWORD= \
-KUMA_STORE_POSTGRES_DB_NAME= \
kuma-cp run
```
diff --git a/app/_src/production/dp-config/transparent-proxying.md b/app/_src/production/dp-config/transparent-proxying.md
index 43ac18126..71b05bdc6 100644
--- a/app/_src/production/dp-config/transparent-proxying.md
+++ b/app/_src/production/dp-config/transparent-proxying.md
@@ -12,11 +12,11 @@ Transparent proxying helps with a smoother rollout of a Service Mesh to a curren
On **Kubernetes** `kuma-dp` leverages transparent proxying automatically via `iptables` installed with `kuma-init` container or CNI.
All incoming and outgoing traffic is automatically intercepted by `kuma-dp` without having to change the application code.
-{{site.mesh_product_name}} integrates with a service naming provided by Kubernetes DNS as well as providing its own [{{site.mesh_product_name}} DNS](/docs/{{ page.version }}/networking/dns) for multi-zone service naming.
+{{site.mesh_product_name}} integrates with a service naming provided by Kubernetes DNS as well as providing its own [{{site.mesh_product_name}} DNS](/docs/{{ page.version }}/networking/dns) for multizone service naming.
## Universal
-On **Universal** `kuma-dp` leverages the {%if_version lte:2.1.x %}[data plane proxy specification](/docs/{{ page.version }}/explore/dpp-on-universal/){%endif_version%}{%if_version gte:2.2.x %}[data plane proxy specification](/docs/{{ page.version }}/production/dp-config/dpp-on-universal#dataplane-configuration){%endif_version%} associated to it for receiving incoming requests on a pre-defined port.
+On **Universal** `kuma-dp` leverages the [data plane proxy specification]{%if_version lte:2.1.x %}(/docs/{{ page.version }}/explore/dpp-on-universal/){%endif_version%}{%if_version gte:2.2.x %}(/docs/{{ page.version }}/production/dp-config/dpp-on-universal#dataplane-configuration){%endif_version%} associated to it for receiving incoming requests on a pre-defined port.
There are several advantages for using transparent proxying in universal mode:
@@ -37,22 +37,21 @@ Prerequisites:
The host that will run the `kuma-dp` process in transparent proxying mode needs to be prepared with the following steps executed as `root`:
1. Use proper version of iptables
-
- {{site.mesh_product_name}} [isn't yet compatible](https://github.com/kumahq/kuma/issues/8293) with `nf_tables`. You can check the version of iptables with the following command
-
- ```sh
- iptables --version
- # iptables v1.8.7 (nf_tables)
- ```
-
- On the recent versions of Ubuntu, you need to change default `iptables`.
-
- ```sh
- update-alternatives --set iptables /usr/sbin/iptables-legacy
- update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
- iptables --version
- # iptables v1.8.7 (legacy)
- ```
+
+ {{site.mesh_product_name}} [isn't yet compatible](https://github.com/kumahq/kuma/issues/8293) with `nf_tables`. You can check the version of iptables with the following command
+ ```sh
+ iptables --version
+ # iptables v1.8.7 (nf_tables)
+ ```
+
+ On the recent versions of Ubuntu, you need to change default `iptables`.
+
+ ```sh
+ update-alternatives --set iptables /usr/sbin/iptables-legacy
+ update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
+ iptables --version
+ # iptables v1.8.7 (legacy)
+ ```
2. Create a new dedicated user on the machine.
@@ -147,7 +146,6 @@ iptables --table nat --delete-chain
iptables --table raw --delete-chain
ip6tables --table nat --delete-chain
ip6tables --table raw --delete-chain
-```
In the future release, `kumactl` [will ship](https://github.com/kumahq/kuma/issues/8071) with `uninstall` command.
@@ -159,7 +157,6 @@ In the future release, `kumactl` [will ship](https://github.com/kumahq/kuma/issu
{% tab intercepted-traffic Kubernetes %}
By default, all the traffic is intercepted by Envoy. You can exclude which ports are intercepted by Envoy with the following annotations placed on the Pod
-
```yaml
apiVersion: apps/v1
kind: Deployment
@@ -172,7 +169,7 @@ spec:
metadata:
...
annotations:
- # all incoming connections on ports 1234 won't be intercepted by Envoy
+ # all incomming connections on ports 1234 won't be intercepted by Envoy
traffic.kuma.io/exclude-inbound-ports: "1234"
# all outgoing connections on ports 5678, 8900 won't be intercepted by Envoy
traffic.kuma.io/exclude-outbound-ports: "5678,8900"
@@ -182,7 +179,6 @@ spec:
```
You can also control this value on whole {{site.mesh_product_name}} deployment with the following {{site.mesh_product_name}} CP [configuration](/docs/{{ page.version }}/documentation/configuration)
-
```
KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_INBOUND_PORTS=1234
KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_OUTBOUND_PORTS=5678,8900
@@ -248,7 +244,7 @@ networking:
### Transparent Proxy with eBPF (experimental)
-Starting from {{site.mesh_product_name}} 2.0 you can set up transparent proxy to use eBPF instead of iptables.
+Starting from {{site.mesh_product_name}} 2.0 you can setup transparent proxy to use eBPF instead of iptables.
{% warning %}
To use Transparent Proxy with eBPF your environment has to use `Kernel >= 5.7`
diff --git a/app/_src/production/install-kumactl.md b/app/_src/production/install-kumactl.md
index d293e450e..c38c5db03 100644
--- a/app/_src/production/install-kumactl.md
+++ b/app/_src/production/install-kumactl.md
@@ -57,7 +57,7 @@ and extract the archive with `tar -xvzf {{ site.mesh_helm_install_name }}-{{ pag
Add the `kumactl` executable to your path:
```
cd {{site.mesh_install_archive_name }}-{{ page.version_data.version }}/bin
-export PATH=$(pwd):$PATH
+PATH=$(pwd):$PATH
```
## Next steps
diff --git a/app/assets/dev/raw/crds/kuma.io_circuitbreakers.yaml b/app/assets/dev/raw/crds/kuma.io_circuitbreakers.yaml
deleted file mode 100644
index 449e4eb81..000000000
--- a/app/assets/dev/raw/crds/kuma.io_circuitbreakers.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: circuitbreakers.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: CircuitBreaker
- listKind: CircuitBreakerList
- plural: circuitbreakers
- singular: circuitbreaker
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma CircuitBreaker resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_dataplaneinsights.yaml b/app/assets/dev/raw/crds/kuma.io_dataplaneinsights.yaml
deleted file mode 100644
index b184e1955..000000000
--- a/app/assets/dev/raw/crds/kuma.io_dataplaneinsights.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: dataplaneinsights.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: DataplaneInsight
- listKind: DataplaneInsightList
- plural: dataplaneinsights
- singular: dataplaneinsight
- scope: Namespaced
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- status:
- description: Status is the status the Kuma resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_externalservices.yaml b/app/assets/dev/raw/crds/kuma.io_externalservices.yaml
deleted file mode 100644
index 038ea3f7a..000000000
--- a/app/assets/dev/raw/crds/kuma.io_externalservices.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: externalservices.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: ExternalService
- listKind: ExternalServiceList
- plural: externalservices
- singular: externalservice
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma ExternalService resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_faultinjections.yaml b/app/assets/dev/raw/crds/kuma.io_faultinjections.yaml
deleted file mode 100644
index 93ce367fc..000000000
--- a/app/assets/dev/raw/crds/kuma.io_faultinjections.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: faultinjections.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: FaultInjection
- listKind: FaultInjectionList
- plural: faultinjections
- singular: faultinjection
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma FaultInjection resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_healthchecks.yaml b/app/assets/dev/raw/crds/kuma.io_healthchecks.yaml
deleted file mode 100644
index 9599e09dd..000000000
--- a/app/assets/dev/raw/crds/kuma.io_healthchecks.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: healthchecks.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: HealthCheck
- listKind: HealthCheckList
- plural: healthchecks
- singular: healthcheck
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma HealthCheck resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_meshcircuitbreakers.yaml b/app/assets/dev/raw/crds/kuma.io_meshcircuitbreakers.yaml
deleted file mode 100644
index 3c6a01d82..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshcircuitbreakers.yaml
+++ /dev/null
@@ -1,684 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshcircuitbreakers.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshCircuitBreaker
- listKind: MeshCircuitBreakerList
- plural: meshcircuitbreakers
- singular: meshcircuitbreaker
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.targetRef.kind
- name: TargetRef Kind
- type: string
- - jsonPath: .spec.targetRef.name
- name: TargetRef Name
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshCircuitBreaker
- resource.
- properties:
- from:
- description: From list makes a match between clients and corresponding
- configurations
- items:
- properties:
- default:
- description: |-
- Default is a configuration specific to the group of destinations
- referenced in 'targetRef'
- properties:
- connectionLimits:
- description: |-
- ConnectionLimits contains configuration of each circuit breaking limit,
- which when exceeded makes the circuit breaker to become open (no traffic
- is allowed like no current is allowed in the circuits when physical
- circuit breaker ir open)
- properties:
- maxConnectionPools:
- description: |-
- The maximum number of connection pools per cluster that are concurrently
- supported at once. Set this for clusters which create a large number of
- connection pools.
- format: int32
- type: integer
- maxConnections:
- description: |-
- The maximum number of connections allowed to be made to the upstream
- cluster.
- format: int32
- type: integer
- maxPendingRequests:
- description: |-
- The maximum number of pending requests that are allowed to the upstream
- cluster. This limit is applied as a connection limit for non-HTTP
- traffic.
- format: int32
- type: integer
- maxRequests:
- description: |-
- The maximum number of parallel requests that are allowed to be made
- to the upstream cluster. This limit does not apply to non-HTTP traffic.
- format: int32
- type: integer
- maxRetries:
- description: |-
- The maximum number of parallel retries that will be allowed to
- the upstream cluster.
- format: int32
- type: integer
- type: object
- outlierDetection:
- description: |-
- OutlierDetection contains the configuration of the process of dynamically
- determining whether some number of hosts in an upstream cluster are
- performing unlike the others and removing them from the healthy load
- balancing set. Performance might be along different axes such as
- consecutive failures, temporal success rate, temporal latency, etc.
- Outlier detection is a form of passive health checking.
- properties:
- baseEjectionTime:
- description: |-
- The base time that a host is ejected for. The real time is equal to
- the base time multiplied by the number of times the host has been
- ejected.
- type: string
- detectors:
- description: Contains configuration for supported outlier
- detectors
- properties:
- failurePercentage:
- description: |-
- Failure Percentage based outlier detection functions similarly to success
- rate detection, in that it relies on success rate data from each host in
- a cluster. However, rather than compare those values to the mean success
- rate of the cluster as a whole, they are compared to a flat
- user-configured threshold. This threshold is configured via the
- outlierDetection.failurePercentageThreshold field.
- The other configuration fields for failure percentage based detection are
- similar to the fields for success rate detection. As with success rate
- detection, detection will not be performed for a host if its request
- volume over the aggregation interval is less than the
- outlierDetection.detectors.failurePercentage.requestVolume value.
- Detection also will not be performed for a cluster if the number of hosts
- with the minimum required request volume in an interval is less than the
- outlierDetection.detectors.failurePercentage.minimumHosts value.
- properties:
- minimumHosts:
- description: |-
- The minimum number of hosts in a cluster in order to perform failure
- percentage-based ejection. If the total number of hosts in the cluster is
- less than this value, failure percentage-based ejection will not be
- performed.
- format: int32
- type: integer
- requestVolume:
- description: |-
- The minimum number of total requests that must be collected in one
- interval (as defined by the interval duration above) to perform failure
- percentage-based ejection for this host. If the volume is lower than this
- setting, failure percentage-based ejection will not be performed for this
- host.
- format: int32
- type: integer
- threshold:
- description: |-
- The failure percentage to use when determining failure percentage-based
- outlier detection. If the failure percentage of a given host is greater
- than or equal to this value, it will be ejected.
- format: int32
- type: integer
- type: object
- gatewayFailures:
- description: |-
- In the default mode (outlierDetection.splitExternalLocalOriginErrors is
- false) this detection type takes into account a subset of 5xx errors,
- called "gateway errors" (502, 503 or 504 status code) and local origin
- failures, such as timeout, TCP reset etc.
- In split mode (outlierDetection.splitExternalLocalOriginErrors is true)
- this detection type takes into account a subset of 5xx errors, called
- "gateway errors" (502, 503 or 504 status code) and is supported only by
- the http router.
- properties:
- consecutive:
- description: |-
- The number of consecutive gateway failures (502, 503, 504 status codes)
- before a consecutive gateway failure ejection occurs.
- format: int32
- type: integer
- type: object
- localOriginFailures:
- description: |-
- This detection type is enabled only when
- outlierDetection.splitExternalLocalOriginErrors is true and takes into
- account only locally originated errors (timeout, reset, etc).
- If Envoy repeatedly cannot connect to an upstream host or communication
- with the upstream host is repeatedly interrupted, it will be ejected.
- Various locally originated problems are detected: timeout, TCP reset,
- ICMP errors, etc. This detection type is supported by http router and
- tcp proxy.
- properties:
- consecutive:
- description: |-
- The number of consecutive locally originated failures before ejection
- occurs. Parameter takes effect only when splitExternalAndLocalErrors
- is set to true.
- format: int32
- type: integer
- type: object
- successRate:
- description: |-
- Success Rate based outlier detection aggregates success rate data from
- every host in a cluster. Then at given intervals ejects hosts based on
- statistical outlier detection. Success Rate outlier detection will not be
- calculated for a host if its request volume over the aggregation interval
- is less than the outlierDetection.detectors.successRate.requestVolume
- value.
- Moreover, detection will not be performed for a cluster if the number of
- hosts with the minimum required request volume in an interval is less
- than the outlierDetection.detectors.successRate.minimumHosts value.
- In the default configuration mode
- (outlierDetection.splitExternalLocalOriginErrors is false) this detection
- type takes into account all types of errors: locally and externally
- originated.
- In split mode (outlierDetection.splitExternalLocalOriginErrors is true),
- locally originated errors and externally originated (transaction) errors
- are counted and treated separately.
- properties:
- minimumHosts:
- description: |-
- The number of hosts in a cluster that must have enough request volume to
- detect success rate outliers. If the number of hosts is less than this
- setting, outlier detection via success rate statistics is not performed
- for any host in the cluster.
- format: int32
- type: integer
- requestVolume:
- description: |-
- The minimum number of total requests that must be collected in one
- interval (as defined by the interval duration configured in
- outlierDetection section) to include this host in success rate based
- outlier detection. If the volume is lower than this setting, outlier
- detection via success rate statistics is not performed for that host.
- format: int32
- type: integer
- standardDeviationFactor:
- anyOf:
- - type: integer
- - type: string
- description: |-
- This factor is used to determine the ejection threshold for success rate
- outlier ejection. The ejection threshold is the difference between
- the mean success rate, and the product of this factor and the standard
- deviation of the mean success rate: mean - (standard_deviation *
- success_rate_standard_deviation_factor).
- Either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- type: object
- totalFailures:
- description: |-
- In the default mode (outlierDetection.splitExternalAndLocalErrors is
- false) this detection type takes into account all generated errors:
- locally originated and externally originated (transaction) errors.
- In split mode (outlierDetection.splitExternalLocalOriginErrors is true)
- this detection type takes into account only externally originated
- (transaction) errors, ignoring locally originated errors.
- If an upstream host is an HTTP-server, only 5xx types of error are taken
- into account (see Consecutive Gateway Failure for exceptions).
- Properly formatted responses, even when they carry an operational error
- (like index not found, access denied) are not taken into account.
- properties:
- consecutive:
- description: |-
- The number of consecutive server-side error responses (for HTTP traffic,
- 5xx responses; for TCP traffic, connection failures; for Redis, failure
- to respond PONG; etc.) before a consecutive total failure ejection
- occurs.
- format: int32
- type: integer
- type: object
- type: object
- disabled:
- description: When set to true, outlierDetection configuration
- won't take any effect
- type: boolean
- interval:
- description: |-
- The time interval between ejection analysis sweeps. This can result in
- both new ejections and hosts being returned to service.
- type: string
- maxEjectionPercent:
- description: |-
- The maximum % of an upstream cluster that can be ejected due to outlier
- detection. Defaults to 10% but will eject at least one host regardless of
- the value.
- format: int32
- type: integer
- splitExternalAndLocalErrors:
- description: |-
- Determines whether to distinguish local origin failures from external
- errors. If set to true the following configuration parameters are taken
- into account: detectors.localOriginFailures.consecutive
- type: boolean
- type: object
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify
- cross mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: array
- targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined in place.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify cross
- mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- to:
- description: |-
- To list makes a match between the consumed services and corresponding
- configurations
- items:
- properties:
- default:
- description: |-
- Default is a configuration specific to the group of destinations
- referenced in 'targetRef'
- properties:
- connectionLimits:
- description: |-
- ConnectionLimits contains configuration of each circuit breaking limit,
- which when exceeded makes the circuit breaker to become open (no traffic
- is allowed like no current is allowed in the circuits when physical
- circuit breaker ir open)
- properties:
- maxConnectionPools:
- description: |-
- The maximum number of connection pools per cluster that are concurrently
- supported at once. Set this for clusters which create a large number of
- connection pools.
- format: int32
- type: integer
- maxConnections:
- description: |-
- The maximum number of connections allowed to be made to the upstream
- cluster.
- format: int32
- type: integer
- maxPendingRequests:
- description: |-
- The maximum number of pending requests that are allowed to the upstream
- cluster. This limit is applied as a connection limit for non-HTTP
- traffic.
- format: int32
- type: integer
- maxRequests:
- description: |-
- The maximum number of parallel requests that are allowed to be made
- to the upstream cluster. This limit does not apply to non-HTTP traffic.
- format: int32
- type: integer
- maxRetries:
- description: |-
- The maximum number of parallel retries that will be allowed to
- the upstream cluster.
- format: int32
- type: integer
- type: object
- outlierDetection:
- description: |-
- OutlierDetection contains the configuration of the process of dynamically
- determining whether some number of hosts in an upstream cluster are
- performing unlike the others and removing them from the healthy load
- balancing set. Performance might be along different axes such as
- consecutive failures, temporal success rate, temporal latency, etc.
- Outlier detection is a form of passive health checking.
- properties:
- baseEjectionTime:
- description: |-
- The base time that a host is ejected for. The real time is equal to
- the base time multiplied by the number of times the host has been
- ejected.
- type: string
- detectors:
- description: Contains configuration for supported outlier
- detectors
- properties:
- failurePercentage:
- description: |-
- Failure Percentage based outlier detection functions similarly to success
- rate detection, in that it relies on success rate data from each host in
- a cluster. However, rather than compare those values to the mean success
- rate of the cluster as a whole, they are compared to a flat
- user-configured threshold. This threshold is configured via the
- outlierDetection.failurePercentageThreshold field.
- The other configuration fields for failure percentage based detection are
- similar to the fields for success rate detection. As with success rate
- detection, detection will not be performed for a host if its request
- volume over the aggregation interval is less than the
- outlierDetection.detectors.failurePercentage.requestVolume value.
- Detection also will not be performed for a cluster if the number of hosts
- with the minimum required request volume in an interval is less than the
- outlierDetection.detectors.failurePercentage.minimumHosts value.
- properties:
- minimumHosts:
- description: |-
- The minimum number of hosts in a cluster in order to perform failure
- percentage-based ejection. If the total number of hosts in the cluster is
- less than this value, failure percentage-based ejection will not be
- performed.
- format: int32
- type: integer
- requestVolume:
- description: |-
- The minimum number of total requests that must be collected in one
- interval (as defined by the interval duration above) to perform failure
- percentage-based ejection for this host. If the volume is lower than this
- setting, failure percentage-based ejection will not be performed for this
- host.
- format: int32
- type: integer
- threshold:
- description: |-
- The failure percentage to use when determining failure percentage-based
- outlier detection. If the failure percentage of a given host is greater
- than or equal to this value, it will be ejected.
- format: int32
- type: integer
- type: object
- gatewayFailures:
- description: |-
- In the default mode (outlierDetection.splitExternalLocalOriginErrors is
- false) this detection type takes into account a subset of 5xx errors,
- called "gateway errors" (502, 503 or 504 status code) and local origin
- failures, such as timeout, TCP reset etc.
- In split mode (outlierDetection.splitExternalLocalOriginErrors is true)
- this detection type takes into account a subset of 5xx errors, called
- "gateway errors" (502, 503 or 504 status code) and is supported only by
- the http router.
- properties:
- consecutive:
- description: |-
- The number of consecutive gateway failures (502, 503, 504 status codes)
- before a consecutive gateway failure ejection occurs.
- format: int32
- type: integer
- type: object
- localOriginFailures:
- description: |-
- This detection type is enabled only when
- outlierDetection.splitExternalLocalOriginErrors is true and takes into
- account only locally originated errors (timeout, reset, etc).
- If Envoy repeatedly cannot connect to an upstream host or communication
- with the upstream host is repeatedly interrupted, it will be ejected.
- Various locally originated problems are detected: timeout, TCP reset,
- ICMP errors, etc. This detection type is supported by http router and
- tcp proxy.
- properties:
- consecutive:
- description: |-
- The number of consecutive locally originated failures before ejection
- occurs. Parameter takes effect only when splitExternalAndLocalErrors
- is set to true.
- format: int32
- type: integer
- type: object
- successRate:
- description: |-
- Success Rate based outlier detection aggregates success rate data from
- every host in a cluster. Then at given intervals ejects hosts based on
- statistical outlier detection. Success Rate outlier detection will not be
- calculated for a host if its request volume over the aggregation interval
- is less than the outlierDetection.detectors.successRate.requestVolume
- value.
- Moreover, detection will not be performed for a cluster if the number of
- hosts with the minimum required request volume in an interval is less
- than the outlierDetection.detectors.successRate.minimumHosts value.
- In the default configuration mode
- (outlierDetection.splitExternalLocalOriginErrors is false) this detection
- type takes into account all types of errors: locally and externally
- originated.
- In split mode (outlierDetection.splitExternalLocalOriginErrors is true),
- locally originated errors and externally originated (transaction) errors
- are counted and treated separately.
- properties:
- minimumHosts:
- description: |-
- The number of hosts in a cluster that must have enough request volume to
- detect success rate outliers. If the number of hosts is less than this
- setting, outlier detection via success rate statistics is not performed
- for any host in the cluster.
- format: int32
- type: integer
- requestVolume:
- description: |-
- The minimum number of total requests that must be collected in one
- interval (as defined by the interval duration configured in
- outlierDetection section) to include this host in success rate based
- outlier detection. If the volume is lower than this setting, outlier
- detection via success rate statistics is not performed for that host.
- format: int32
- type: integer
- standardDeviationFactor:
- anyOf:
- - type: integer
- - type: string
- description: |-
- This factor is used to determine the ejection threshold for success rate
- outlier ejection. The ejection threshold is the difference between
- the mean success rate, and the product of this factor and the standard
- deviation of the mean success rate: mean - (standard_deviation *
- success_rate_standard_deviation_factor).
- Either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- type: object
- totalFailures:
- description: |-
- In the default mode (outlierDetection.splitExternalAndLocalErrors is
- false) this detection type takes into account all generated errors:
- locally originated and externally originated (transaction) errors.
- In split mode (outlierDetection.splitExternalLocalOriginErrors is true)
- this detection type takes into account only externally originated
- (transaction) errors, ignoring locally originated errors.
- If an upstream host is an HTTP-server, only 5xx types of error are taken
- into account (see Consecutive Gateway Failure for exceptions).
- Properly formatted responses, even when they carry an operational error
- (like index not found, access denied) are not taken into account.
- properties:
- consecutive:
- description: |-
- The number of consecutive server-side error responses (for HTTP traffic,
- 5xx responses; for TCP traffic, connection failures; for Redis, failure
- to respond PONG; etc.) before a consecutive total failure ejection
- occurs.
- format: int32
- type: integer
- type: object
- type: object
- disabled:
- description: When set to true, outlierDetection configuration
- won't take any effect
- type: boolean
- interval:
- description: |-
- The time interval between ejection analysis sweeps. This can result in
- both new ejections and hosts being returned to service.
- type: string
- maxEjectionPercent:
- description: |-
- The maximum % of an upstream cluster that can be ejected due to outlier
- detection. Defaults to 10% but will eject at least one host regardless of
- the value.
- format: int32
- type: integer
- splitExternalAndLocalErrors:
- description: |-
- Determines whether to distinguish local origin failures from external
- errors. If set to true the following configuration parameters are taken
- into account: detectors.localOriginFailures.consecutive
- type: boolean
- type: object
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify
- cross mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: array
- required:
- - targetRef
- type: object
- type: object
- served: true
- storage: true
- subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_meshes.yaml b/app/assets/dev/raw/crds/kuma.io_meshes.yaml
deleted file mode 100644
index 5b7a9fd65..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshes.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshes.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: Mesh
- listKind: MeshList
- plural: meshes
- singular: mesh
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma Mesh resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_meshfaultinjections.yaml b/app/assets/dev/raw/crds/kuma.io_meshfaultinjections.yaml
deleted file mode 100644
index 4150c0fdd..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshfaultinjections.yaml
+++ /dev/null
@@ -1,365 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshfaultinjections.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshFaultInjection
- listKind: MeshFaultInjectionList
- plural: meshfaultinjections
- singular: meshfaultinjection
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.targetRef.kind
- name: TargetRef Kind
- type: string
- - jsonPath: .spec.targetRef.name
- name: TargetRef Name
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshFaultInjection
- resource.
- properties:
- from:
- description: From list makes a match between clients and corresponding
- configurations
- items:
- properties:
- default:
- description: |-
- Default is a configuration specific to the group of destinations referenced in
- 'targetRef'
- properties:
- http:
- description: Http allows to define list of Http faults between
- dataplanes.
- items:
- description: FaultInjection defines the configuration
- of faults between dataplanes.
- properties:
- abort:
- description: |-
- Abort defines a configuration of not delivering requests to destination
- service and replacing the responses from destination dataplane by
- predefined status code
- properties:
- httpStatus:
- description: HTTP status code which will be returned
- to source side
- format: int32
- type: integer
- percentage:
- anyOf:
- - type: integer
- - type: string
- description: |-
- Percentage of requests on which abort will be injected, has to be
- either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- required:
- - httpStatus
- - percentage
- type: object
- delay:
- description: Delay defines configuration of delaying
- a response from a destination
- properties:
- percentage:
- anyOf:
- - type: integer
- - type: string
- description: |-
- Percentage of requests on which delay will be injected, has to be
- either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- value:
- description: The duration during which the response
- will be delayed
- type: string
- required:
- - percentage
- - value
- type: object
- responseBandwidth:
- description: |-
- ResponseBandwidth defines a configuration to limit the speed of
- responding to the requests
- properties:
- limit:
- description: |-
- Limit is represented by value measure in Gbps, Mbps, kbps, e.g.
- 10kbps
- type: string
- percentage:
- anyOf:
- - type: integer
- - type: string
- description: |-
- Percentage of requests on which response bandwidth limit will be
- either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- required:
- - limit
- - percentage
- type: object
- type: object
- type: array
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify
- cross mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: array
- targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify cross
- mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- to:
- description: To list makes a match between clients and corresponding
- configurations
- items:
- properties:
- default:
- description: |-
- Default is a configuration specific to the group of destinations referenced in
- 'targetRef'
- properties:
- http:
- description: Http allows to define list of Http faults between
- dataplanes.
- items:
- description: FaultInjection defines the configuration
- of faults between dataplanes.
- properties:
- abort:
- description: |-
- Abort defines a configuration of not delivering requests to destination
- service and replacing the responses from destination dataplane by
- predefined status code
- properties:
- httpStatus:
- description: HTTP status code which will be returned
- to source side
- format: int32
- type: integer
- percentage:
- anyOf:
- - type: integer
- - type: string
- description: |-
- Percentage of requests on which abort will be injected, has to be
- either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- required:
- - httpStatus
- - percentage
- type: object
- delay:
- description: Delay defines configuration of delaying
- a response from a destination
- properties:
- percentage:
- anyOf:
- - type: integer
- - type: string
- description: |-
- Percentage of requests on which delay will be injected, has to be
- either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- value:
- description: The duration during which the response
- will be delayed
- type: string
- required:
- - percentage
- - value
- type: object
- responseBandwidth:
- description: |-
- ResponseBandwidth defines a configuration to limit the speed of
- responding to the requests
- properties:
- limit:
- description: |-
- Limit is represented by value measure in Gbps, Mbps, kbps, e.g.
- 10kbps
- type: string
- percentage:
- anyOf:
- - type: integer
- - type: string
- description: |-
- Percentage of requests on which response bandwidth limit will be
- either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- required:
- - limit
- - percentage
- type: object
- type: object
- type: array
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify
- cross mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: array
- required:
- - targetRef
- type: object
- type: object
- served: true
- storage: true
- subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_meshgatewayroutes.yaml b/app/assets/dev/raw/crds/kuma.io_meshgatewayroutes.yaml
deleted file mode 100644
index 15156ae47..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshgatewayroutes.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshgatewayroutes.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshGatewayRoute
- listKind: MeshGatewayRouteList
- plural: meshgatewayroutes
- singular: meshgatewayroute
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshGatewayRoute resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_meshgateways.yaml b/app/assets/dev/raw/crds/kuma.io_meshgateways.yaml
deleted file mode 100644
index 5ec1b4267..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshgateways.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshgateways.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshGateway
- listKind: MeshGatewayList
- plural: meshgateways
- singular: meshgateway
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshGateway resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_meshinsights.yaml b/app/assets/dev/raw/crds/kuma.io_meshinsights.yaml
deleted file mode 100644
index c72f08ed9..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshinsights.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshinsights.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshInsight
- listKind: MeshInsightList
- plural: meshinsights
- singular: meshinsight
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshInsight resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_meshmetrics.yaml b/app/assets/dev/raw/crds/kuma.io_meshmetrics.yaml
deleted file mode 100644
index fe9eac6be..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshmetrics.yaml
+++ /dev/null
@@ -1,205 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshmetrics.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshMetric
- listKind: MeshMetricList
- plural: meshmetrics
- singular: meshmetric
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.targetRef.kind
- name: TargetRef Kind
- type: string
- - jsonPath: .spec.targetRef.name
- name: TargetRef Name
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshMetric resource.
- properties:
- default:
- description: MeshMetric configuration.
- properties:
- applications:
- description: Applications is a list of application that Dataplane
- Proxy will scrape
- items:
- properties:
- address:
- description: Address on which an application listens.
- type: string
- name:
- description: Name of the application to scrape
- type: string
- path:
- default: /metrics/prometheus
- description: Path on which an application expose HTTP endpoint
- with metrics.
- type: string
- port:
- description: Port on which an application expose HTTP endpoint
- with metrics.
- format: int32
- type: integer
- required:
- - port
- type: object
- type: array
- backends:
- description: Backends list that will be used to collect metrics.
- items:
- properties:
- openTelemetry:
- description: OpenTelemetry backend configuration
- properties:
- endpoint:
- description: Endpoint for OpenTelemetry collector
- type: string
- required:
- - endpoint
- type: object
- prometheus:
- description: Prometheus backend configuration.
- properties:
- clientId:
- description: ClientId of the Prometheus backend. Needed
- when using MADS for DP discovery.
- type: string
- path:
- default: /metrics
- description: Path on which a dataplane should expose
- HTTP endpoint with Prometheus metrics.
- type: string
- port:
- default: 5670
- description: Port on which a dataplane should expose
- HTTP endpoint with Prometheus metrics.
- format: int32
- type: integer
- tls:
- description: Configuration of TLS for prometheus listener.
- properties:
- mode:
- default: Disabled
- description: Configuration of TLS for Prometheus
- listener.
- enum:
- - Disabled
- - ProvidedTLS
- - ActiveMTLSBackend
- type: string
- required:
- - mode
- type: object
- required:
- - path
- - port
- type: object
- type:
- description: Type of the backend that will be used to collect
- metrics. At the moment only Prometheus backend is available.
- enum:
- - Prometheus
- - OpenTelemetry
- type: string
- required:
- - type
- type: object
- type: array
- sidecar:
- description: Sidecar metrics collection configuration
- properties:
- includeUnused:
- default: false
- description: |-
- IncludeUnused if false will scrape only metrics that has been by sidecar (counters incremented
- at least once, gauges changed at least once, and histograms added to at
- least once). If true will scrape all metrics (even the ones with zeros).
- type: boolean
- regex:
- description: Regex that will be used to filter sidecar metrics.
- It uses Google RE2 engine https://github.com/google/re2
- type: string
- type: object
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined in-place.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify cross
- mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: object
- served: true
- storage: true
- subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_meshratelimits.yaml b/app/assets/dev/raw/crds/kuma.io_meshratelimits.yaml
deleted file mode 100644
index 1be95be73..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshratelimits.yaml
+++ /dev/null
@@ -1,444 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshratelimits.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshRateLimit
- listKind: MeshRateLimitList
- plural: meshratelimits
- singular: meshratelimit
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.targetRef.kind
- name: TargetRef Kind
- type: string
- - jsonPath: .spec.targetRef.name
- name: TargetRef Name
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshRateLimit resource.
- properties:
- from:
- description: From list makes a match between clients and corresponding
- configurations
- items:
- properties:
- default:
- description: |-
- Default is a configuration specific to the group of clients referenced in
- 'targetRef'
- properties:
- local:
- description: LocalConf defines local http or/and tcp rate
- limit configuration
- properties:
- http:
- description: |-
- LocalHTTP defines confguration of local HTTP rate limiting
- https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter
- properties:
- disabled:
- description: Define if rate limiting should be disabled.
- type: boolean
- onRateLimit:
- description: Describes the actions to take on a
- rate limit event
- properties:
- headers:
- description: The Headers to be added to the
- HTTP response on a rate limit event
- properties:
- add:
- items:
- properties:
- name:
- maxLength: 256
- minLength: 1
- pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- maxItems: 16
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- set:
- items:
- properties:
- name:
- maxLength: 256
- minLength: 1
- pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- maxItems: 16
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- status:
- description: The HTTP status code to be set
- on a rate limit event
- format: int32
- type: integer
- type: object
- requestRate:
- description: Defines how many requests are allowed
- per interval.
- properties:
- interval:
- description: The interval the number of units
- is accounted for.
- type: string
- num:
- description: |-
- Number of units per interval (depending on usage it can be a number of requests,
- or a number of connections).
- format: int32
- type: integer
- required:
- - interval
- - num
- type: object
- type: object
- tcp:
- description: |-
- LocalTCP defines confguration of local TCP rate limiting
- https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter
- properties:
- connectionRate:
- description: Defines how many connections are allowed
- per interval.
- properties:
- interval:
- description: The interval the number of units
- is accounted for.
- type: string
- num:
- description: |-
- Number of units per interval (depending on usage it can be a number of requests,
- or a number of connections).
- format: int32
- type: integer
- required:
- - interval
- - num
- type: object
- disabled:
- description: |-
- Define if rate limiting should be disabled.
- Default: false
- type: boolean
- type: object
- type: object
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- clients.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify
- cross mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: array
- targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify cross
- mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- to:
- description: To list makes a match between clients and corresponding
- configurations
- items:
- properties:
- default:
- description: |-
- Default is a configuration specific to the group of clients referenced in
- 'targetRef'
- properties:
- local:
- description: LocalConf defines local http or/and tcp rate
- limit configuration
- properties:
- http:
- description: |-
- LocalHTTP defines confguration of local HTTP rate limiting
- https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter
- properties:
- disabled:
- description: Define if rate limiting should be disabled.
- type: boolean
- onRateLimit:
- description: Describes the actions to take on a
- rate limit event
- properties:
- headers:
- description: The Headers to be added to the
- HTTP response on a rate limit event
- properties:
- add:
- items:
- properties:
- name:
- maxLength: 256
- minLength: 1
- pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- maxItems: 16
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- set:
- items:
- properties:
- name:
- maxLength: 256
- minLength: 1
- pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- maxItems: 16
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- status:
- description: The HTTP status code to be set
- on a rate limit event
- format: int32
- type: integer
- type: object
- requestRate:
- description: Defines how many requests are allowed
- per interval.
- properties:
- interval:
- description: The interval the number of units
- is accounted for.
- type: string
- num:
- description: |-
- Number of units per interval (depending on usage it can be a number of requests,
- or a number of connections).
- format: int32
- type: integer
- required:
- - interval
- - num
- type: object
- type: object
- tcp:
- description: |-
- LocalTCP defines confguration of local TCP rate limiting
- https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter
- properties:
- connectionRate:
- description: Defines how many connections are allowed
- per interval.
- properties:
- interval:
- description: The interval the number of units
- is accounted for.
- type: string
- num:
- description: |-
- Number of units per interval (depending on usage it can be a number of requests,
- or a number of connections).
- format: int32
- type: integer
- required:
- - interval
- - num
- type: object
- disabled:
- description: |-
- Define if rate limiting should be disabled.
- Default: false
- type: boolean
- type: object
- type: object
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- clients.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify
- cross mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: array
- required:
- - targetRef
- type: object
- type: object
- served: true
- storage: true
- subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_meshretries.yaml b/app/assets/dev/raw/crds/kuma.io_meshretries.yaml
deleted file mode 100644
index 307a44326..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshretries.yaml
+++ /dev/null
@@ -1,471 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshretries.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshRetry
- listKind: MeshRetryList
- plural: meshretries
- singular: meshretry
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.targetRef.kind
- name: TargetRef Kind
- type: string
- - jsonPath: .spec.targetRef.name
- name: TargetRef Name
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshRetry resource.
- properties:
- targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify cross
- mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- to:
- description: To list makes a match between the consumed services and
- corresponding configurations
- items:
- properties:
- default:
- description: |-
- Default is a configuration specific to the group of destinations referenced in
- 'targetRef'
- properties:
- grpc:
- description: GRPC defines a configuration of retries for
- GRPC traffic
- properties:
- backOff:
- description: |-
- BackOff is a configuration of durations which will be used in an exponential
- backoff strategy between retries.
- properties:
- baseInterval:
- default: 25ms
- description: |-
- BaseInterval is an amount of time which should be taken between retries.
- Must be greater than zero. Values less than 1 ms are rounded up to 1 ms.
- type: string
- maxInterval:
- description: |-
- MaxInterval is a maximal amount of time which will be taken between retries.
- Default is 10 times the "BaseInterval".
- type: string
- type: object
- numRetries:
- description: |-
- NumRetries is the number of attempts that will be made on failed (and
- retriable) requests. If not set, the default value is 1.
- format: int32
- type: integer
- perTryTimeout:
- description: |-
- PerTryTimeout is the maximum amount of time each retry attempt can take
- before it times out. If not set, the global request timeout for the route
- will be used. Setting this value to 0 will disable the per-try timeout.
- type: string
- rateLimitedBackOff:
- description: |-
- RateLimitedBackOff is a configuration of backoff which will be used when
- the upstream returns one of the headers configured.
- properties:
- maxInterval:
- default: 300s
- description: MaxInterval is a maximal amount of
- time which will be taken between retries.
- type: string
- resetHeaders:
- description: |-
- ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset)
- to match against the response. Headers are tried in order, and matched
- case-insensitive. The first header to be parsed successfully is used.
- If no headers match the default exponential BackOff is used instead.
- items:
- properties:
- format:
- description: The format of the reset header.
- enum:
- - Seconds
- - UnixTimestamp
- type: string
- name:
- description: The Name of the reset header.
- maxLength: 256
- minLength: 1
- pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
- type: string
- required:
- - format
- - name
- type: object
- type: array
- type: object
- retryOn:
- description: RetryOn is a list of conditions which will
- cause a retry.
- example:
- - Canceled
- - DeadlineExceeded
- - Internal
- - ResourceExhausted
- - Unavailable
- items:
- enum:
- - Canceled
- - DeadlineExceeded
- - Internal
- - ResourceExhausted
- - Unavailable
- type: string
- type: array
- type: object
- http:
- description: HTTP defines a configuration of retries for
- HTTP traffic
- properties:
- backOff:
- description: |-
- BackOff is a configuration of durations which will be used in exponential
- backoff strategy between retries.
- properties:
- baseInterval:
- default: 25ms
- description: |-
- BaseInterval is an amount of time which should be taken between retries.
- Must be greater than zero. Values less than 1 ms are rounded up to 1 ms.
- type: string
- maxInterval:
- description: |-
- MaxInterval is a maximal amount of time which will be taken between retries.
- Default is 10 times the "BaseInterval".
- type: string
- type: object
- hostSelection:
- description: |-
- HostSelection is a list of predicates that dictate how hosts should be selected
- when requests are retried.
- items:
- properties:
- predicate:
- description: Type is requested predicate mode.
- enum:
- - OmitPreviousHosts
- - OmitHostsWithTags
- - OmitPreviousPriorities
- type: string
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags is a map of metadata to match against for selecting the omitted hosts. Required if Type is
- OmitHostsWithTags
- type: object
- updateFrequency:
- default: 2
- description: |-
- UpdateFrequency is how often the priority load should be updated based on previously attempted priorities.
- Used for OmitPreviousPriorities.
- format: int32
- type: integer
- required:
- - predicate
- type: object
- type: array
- hostSelectionMaxAttempts:
- description: |-
- HostSelectionMaxAttempts is the maximum number of times host selection will be
- reattempted before giving up, at which point the host that was last selected will
- be routed to. If unspecified, this will default to retrying once.
- format: int64
- type: integer
- numRetries:
- description: |-
- NumRetries is the number of attempts that will be made on failed (and
- retriable) requests. If not set, the default value is 1.
- format: int32
- type: integer
- perTryTimeout:
- description: |-
- PerTryTimeout is the amount of time after which retry attempt should time out.
- If left unspecified, the global route timeout for the request will be used.
- Consequently, when using a 5xx based retry policy, a request that times out
- will not be retried as the total timeout budget would have been exhausted.
- Setting this timeout to 0 will disable it.
- type: string
- rateLimitedBackOff:
- description: |-
- RateLimitedBackOff is a configuration of backoff which will be used
- when the upstream returns one of the headers configured.
- properties:
- maxInterval:
- default: 300s
- description: MaxInterval is a maximal amount of
- time which will be taken between retries.
- type: string
- resetHeaders:
- description: |-
- ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset)
- to match against the response. Headers are tried in order, and matched
- case-insensitive. The first header to be parsed successfully is used.
- If no headers match the default exponential BackOff is used instead.
- items:
- properties:
- format:
- description: The format of the reset header.
- enum:
- - Seconds
- - UnixTimestamp
- type: string
- name:
- description: The Name of the reset header.
- maxLength: 256
- minLength: 1
- pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
- type: string
- required:
- - format
- - name
- type: object
- type: array
- type: object
- retriableRequestHeaders:
- description: |-
- RetriableRequestHeaders is an HTTP headers which must be present in the request
- for retries to be attempted.
- items:
- description: |-
- HeaderMatch describes how to select an HTTP route by matching HTTP request
- headers.
- properties:
- name:
- description: |-
- Name is the name of the HTTP Header to be matched. Name MUST be lower case
- as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2).
- maxLength: 256
- minLength: 1
- pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
- type: string
- type:
- default: Exact
- description: Type specifies how to match against
- the value of the header.
- enum:
- - Exact
- - Present
- - RegularExpression
- - Absent
- - Prefix
- type: string
- value:
- description: Value is the value of HTTP Header
- to be matched.
- type: string
- required:
- - name
- type: object
- type: array
- retriableResponseHeaders:
- description: |-
- RetriableResponseHeaders is an HTTP response headers that trigger a retry
- if present in the response. A retry will be triggered if any of the header
- matches the upstream response headers.
- items:
- description: |-
- HeaderMatch describes how to select an HTTP route by matching HTTP request
- headers.
- properties:
- name:
- description: |-
- Name is the name of the HTTP Header to be matched. Name MUST be lower case
- as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2).
- maxLength: 256
- minLength: 1
- pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
- type: string
- type:
- default: Exact
- description: Type specifies how to match against
- the value of the header.
- enum:
- - Exact
- - Present
- - RegularExpression
- - Absent
- - Prefix
- type: string
- value:
- description: Value is the value of HTTP Header
- to be matched.
- type: string
- required:
- - name
- type: object
- type: array
- retryOn:
- description: |-
- RetryOn is a list of conditions which will cause a retry. Available values are:
- [5XX, GatewayError, Reset, Retriable4xx, ConnectFailure, EnvoyRatelimited,
- RefusedStream, Http3PostConnectFailure, HttpMethodConnect, HttpMethodDelete,
- HttpMethodGet, HttpMethodHead, HttpMethodOptions, HttpMethodPatch,
- HttpMethodPost, HttpMethodPut, HttpMethodTrace].
- Also, any HTTP status code (500, 503, etc.).
- example:
- - 5XX
- - GatewayError
- - Reset
- - Retriable4xx
- - ConnectFailure
- - EnvoyRatelimited
- - RefusedStream
- - Http3PostConnectFailure
- - HttpMethodConnect
- - HttpMethodDelete
- - HttpMethodGet
- - HttpMethodHead
- - HttpMethodOptions
- - HttpMethodPatch
- - HttpMethodPost
- - HttpMethodPut
- - HttpMethodTrace
- - "500"
- - "503"
- items:
- type: string
- type: array
- type: object
- tcp:
- description: TCP defines a configuration of retries for
- TCP traffic
- properties:
- maxConnectAttempt:
- description: |-
- MaxConnectAttempt is a maximal amount of TCP connection attempts
- which will be made before giving up
- format: int32
- type: integer
- type: object
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify
- cross mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: array
- required:
- - targetRef
- type: object
- type: object
- served: true
- storage: true
- subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_meshtimeouts.yaml b/app/assets/dev/raw/crds/kuma.io_meshtimeouts.yaml
deleted file mode 100644
index 57f875b39..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshtimeouts.yaml
+++ /dev/null
@@ -1,308 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshtimeouts.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshTimeout
- listKind: MeshTimeoutList
- plural: meshtimeouts
- singular: meshtimeout
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.targetRef.kind
- name: TargetRef Kind
- type: string
- - jsonPath: .spec.targetRef.name
- name: TargetRef Name
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshTimeout resource.
- properties:
- from:
- description: From list makes a match between clients and corresponding
- configurations
- items:
- properties:
- default:
- description: |-
- Default is a configuration specific to the group of clients referenced in
- 'targetRef'
- properties:
- connectionTimeout:
- description: |-
- ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established.
- Default value is 5 seconds. Cannot be set to 0.
- type: string
- http:
- description: Http provides configuration for HTTP specific
- timeouts
- properties:
- maxConnectionDuration:
- description: |-
- MaxConnectionDuration is the time after which a connection will be drained and/or closed,
- starting from when it was first established. Setting this timeout to 0 will disable it.
- Disabled by default.
- type: string
- maxStreamDuration:
- description: |-
- MaxStreamDuration is the maximum time that a stream’s lifetime will span.
- Setting this timeout to 0 will disable it. Disabled by default.
- type: string
- requestHeadersTimeout:
- description: |-
- RequestHeadersTimeout The amount of time that proxy will wait for the request headers to be received. The timer is
- activated when the first byte of the headers is received, and is disarmed when the last byte of
- the headers has been received. If not specified or set to 0, this timeout is disabled.
- Disabled by default.
- type: string
- requestTimeout:
- description: |-
- RequestTimeout The amount of time that proxy will wait for the entire request to be received.
- The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent,
- OR when the response is initiated. Setting this timeout to 0 will disable it.
- Default is 15s.
- type: string
- streamIdleTimeout:
- description: |-
- StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity.
- Setting this timeout to 0 will disable it. Default is 30m
- type: string
- type: object
- idleTimeout:
- description: |-
- IdleTimeout is defined as the period in which there are no bytes sent or received on connection
- Setting this timeout to 0 will disable it. Be cautious when disabling it because
- it can lead to connection leaking. Default value is 1h.
- type: string
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- clients.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify
- cross mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: array
- targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify cross
- mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- to:
- description: To list makes a match between the consumed services and
- corresponding configurations
- items:
- properties:
- default:
- description: |-
- Default is a configuration specific to the group of destinations referenced in
- 'targetRef'
- properties:
- connectionTimeout:
- description: |-
- ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established.
- Default value is 5 seconds. Cannot be set to 0.
- type: string
- http:
- description: Http provides configuration for HTTP specific
- timeouts
- properties:
- maxConnectionDuration:
- description: |-
- MaxConnectionDuration is the time after which a connection will be drained and/or closed,
- starting from when it was first established. Setting this timeout to 0 will disable it.
- Disabled by default.
- type: string
- maxStreamDuration:
- description: |-
- MaxStreamDuration is the maximum time that a stream’s lifetime will span.
- Setting this timeout to 0 will disable it. Disabled by default.
- type: string
- requestHeadersTimeout:
- description: |-
- RequestHeadersTimeout The amount of time that proxy will wait for the request headers to be received. The timer is
- activated when the first byte of the headers is received, and is disarmed when the last byte of
- the headers has been received. If not specified or set to 0, this timeout is disabled.
- Disabled by default.
- type: string
- requestTimeout:
- description: |-
- RequestTimeout The amount of time that proxy will wait for the entire request to be received.
- The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent,
- OR when the response is initiated. Setting this timeout to 0 will disable it.
- Default is 15s.
- type: string
- streamIdleTimeout:
- description: |-
- StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity.
- Setting this timeout to 0 will disable it. Default is 30m
- type: string
- type: object
- idleTimeout:
- description: |-
- IdleTimeout is defined as the period in which there are no bytes sent or received on connection
- Setting this timeout to 0 will disable it. Be cautious when disabling it because
- it can lead to connection leaking. Default value is 1h.
- type: string
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify
- cross mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: array
- required:
- - targetRef
- type: object
- type: object
- served: true
- storage: true
- subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_meshtraces.yaml b/app/assets/dev/raw/crds/kuma.io_meshtraces.yaml
deleted file mode 100644
index ad47f508c..000000000
--- a/app/assets/dev/raw/crds/kuma.io_meshtraces.yaml
+++ /dev/null
@@ -1,266 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: meshtraces.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: MeshTrace
- listKind: MeshTraceList
- plural: meshtraces
- singular: meshtrace
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.targetRef.kind
- name: TargetRef Kind
- type: string
- - jsonPath: .spec.targetRef.name
- name: TargetRef Name
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma MeshTrace resource.
- properties:
- default:
- description: MeshTrace configuration.
- properties:
- backends:
- description: |-
- A one element array of backend definition.
- Envoy allows configuring only 1 backend, so the natural way of
- representing that would be just one object. Unfortunately due to the
- reasons explained in MADR 009-tracing-policy this has to be a one element
- array for now.
- items:
- description: Only one of zipkin, datadog or openTelemetry can
- be used.
- properties:
- datadog:
- description: Datadog backend configuration.
- properties:
- splitService:
- default: false
- description: |-
- Determines if datadog service name should be split based on traffic
- direction and destination. For example, with `splitService: true` and a
- `backend` service that communicates with a couple of databases, you would
- get service names like `backend_INBOUND`, `backend_OUTBOUND_db1`, and
- `backend_OUTBOUND_db2` in Datadog.
- type: boolean
- url:
- description: |-
- Address of Datadog collector, only host and port are allowed (no paths,
- fragments etc.)
- type: string
- required:
- - url
- type: object
- openTelemetry:
- description: OpenTelemetry backend configuration.
- properties:
- endpoint:
- description: Address of OpenTelemetry collector.
- example: otel-collector:4317
- minLength: 1
- type: string
- required:
- - endpoint
- type: object
- type:
- enum:
- - Zipkin
- - Datadog
- - OpenTelemetry
- type: string
- zipkin:
- description: Zipkin backend configuration.
- properties:
- apiVersion:
- default: httpJson
- description: |-
- Version of the API.
- https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L66
- enum:
- - httpJson
- - httpProto
- type: string
- sharedSpanContext:
- default: true
- description: |-
- Determines whether client and server spans will share the same span
- context.
- https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L63
- type: boolean
- traceId128bit:
- default: false
- description: Generate 128bit traces.
- type: boolean
- url:
- description: Address of Zipkin collector.
- type: string
- required:
- - url
- type: object
- required:
- - type
- type: object
- maxItems: 1
- type: array
- sampling:
- description: |-
- Sampling configuration.
- Sampling is the process by which a decision is made on whether to
- process/export a span or not.
- properties:
- client:
- anyOf:
- - type: integer
- - type: string
- default: 100%
- description: |-
- Target percentage of requests that will be force traced if the
- 'x-client-trace-id' header is set. Mirror of client_sampling in Envoy
- https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L127-L133
- Either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- overall:
- anyOf:
- - type: integer
- - type: string
- default: 100%
- description: |-
- Target percentage of requests will be traced
- after all other sampling checks have been applied (client, force tracing,
- random sampling). This field functions as an upper limit on the total
- configured sampling rate. For instance, setting client_sampling to 100%
- but overall_sampling to 1% will result in only 1% of client requests with
- the appropriate headers to be force traced. Mirror of
- overall_sampling in Envoy
- https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150
- Either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- random:
- anyOf:
- - type: integer
- - type: string
- default: 100%
- description: |-
- Target percentage of requests that will be randomly selected for trace
- generation, if not requested by the client or not forced.
- Mirror of random_sampling in Envoy
- https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L135-L140
- Either int or decimal represented as string.
- x-kubernetes-int-or-string: true
- type: object
- tags:
- description: |-
- Custom tags configuration. You can add custom tags to traces based on
- headers or literal values.
- items:
- description: |-
- Custom tags configuration.
- Only one of literal or header can be used.
- properties:
- header:
- description: Tag taken from a header.
- properties:
- default:
- description: |-
- Default value to use if header is missing.
- If the default is missing and there is no value the tag will not be
- included.
- type: string
- name:
- description: Name of the header.
- type: string
- required:
- - name
- type: object
- literal:
- description: Tag taken from literal value.
- type: string
- name:
- description: Name of the tag.
- type: string
- required:
- - name
- type: object
- type: array
- type: object
- targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
- properties:
- kind:
- description: Kind of the referenced resource
- enum:
- - Mesh
- - MeshSubset
- - MeshGateway
- - MeshService
- - MeshServiceSubset
- - MeshHTTPRoute
- type: string
- mesh:
- description: Mesh is reserved for future use to identify cross
- mesh resources.
- type: string
- name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
- type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
- tags:
- additionalProperties:
- type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
- type: object
- type: object
- required:
- - targetRef
- type: object
- type: object
- served: true
- storage: true
- subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_proxytemplates.yaml b/app/assets/dev/raw/crds/kuma.io_proxytemplates.yaml
deleted file mode 100644
index 7d598fb0c..000000000
--- a/app/assets/dev/raw/crds/kuma.io_proxytemplates.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: proxytemplates.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: ProxyTemplate
- listKind: ProxyTemplateList
- plural: proxytemplates
- singular: proxytemplate
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma ProxyTemplate resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_ratelimits.yaml b/app/assets/dev/raw/crds/kuma.io_ratelimits.yaml
deleted file mode 100644
index 458280883..000000000
--- a/app/assets/dev/raw/crds/kuma.io_ratelimits.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: ratelimits.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: RateLimit
- listKind: RateLimitList
- plural: ratelimits
- singular: ratelimit
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma RateLimit resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_retries.yaml b/app/assets/dev/raw/crds/kuma.io_retries.yaml
deleted file mode 100644
index 040efe058..000000000
--- a/app/assets/dev/raw/crds/kuma.io_retries.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: retries.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: Retry
- listKind: RetryList
- plural: retries
- singular: retry
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma Retry resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_serviceinsights.yaml b/app/assets/dev/raw/crds/kuma.io_serviceinsights.yaml
deleted file mode 100644
index 69a4f709b..000000000
--- a/app/assets/dev/raw/crds/kuma.io_serviceinsights.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: serviceinsights.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: ServiceInsight
- listKind: ServiceInsightList
- plural: serviceinsights
- singular: serviceinsight
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma ServiceInsight resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_timeouts.yaml b/app/assets/dev/raw/crds/kuma.io_timeouts.yaml
deleted file mode 100644
index 659998990..000000000
--- a/app/assets/dev/raw/crds/kuma.io_timeouts.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: timeouts.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: Timeout
- listKind: TimeoutList
- plural: timeouts
- singular: timeout
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma Timeout resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_trafficlogs.yaml b/app/assets/dev/raw/crds/kuma.io_trafficlogs.yaml
deleted file mode 100644
index e299ef299..000000000
--- a/app/assets/dev/raw/crds/kuma.io_trafficlogs.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: trafficlogs.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: TrafficLog
- listKind: TrafficLogList
- plural: trafficlogs
- singular: trafficlog
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma TrafficLog resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_trafficpermissions.yaml b/app/assets/dev/raw/crds/kuma.io_trafficpermissions.yaml
deleted file mode 100644
index 087eecec1..000000000
--- a/app/assets/dev/raw/crds/kuma.io_trafficpermissions.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: trafficpermissions.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: TrafficPermission
- listKind: TrafficPermissionList
- plural: trafficpermissions
- singular: trafficpermission
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma TrafficPermission resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_trafficroutes.yaml b/app/assets/dev/raw/crds/kuma.io_trafficroutes.yaml
deleted file mode 100644
index 6fdb809cf..000000000
--- a/app/assets/dev/raw/crds/kuma.io_trafficroutes.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: trafficroutes.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: TrafficRoute
- listKind: TrafficRouteList
- plural: trafficroutes
- singular: trafficroute
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma TrafficRoute resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_traffictraces.yaml b/app/assets/dev/raw/crds/kuma.io_traffictraces.yaml
deleted file mode 100644
index 7f9832df7..000000000
--- a/app/assets/dev/raw/crds/kuma.io_traffictraces.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: traffictraces.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: TrafficTrace
- listKind: TrafficTraceList
- plural: traffictraces
- singular: traffictrace
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma TrafficTrace resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_virtualoutbounds.yaml b/app/assets/dev/raw/crds/kuma.io_virtualoutbounds.yaml
deleted file mode 100644
index c158f29bd..000000000
--- a/app/assets/dev/raw/crds/kuma.io_virtualoutbounds.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: virtualoutbounds.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: VirtualOutbound
- listKind: VirtualOutboundList
- plural: virtualoutbounds
- singular: virtualoutbound
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma VirtualOutbound resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_zoneegresses.yaml b/app/assets/dev/raw/crds/kuma.io_zoneegresses.yaml
deleted file mode 100644
index 2dbcea457..000000000
--- a/app/assets/dev/raw/crds/kuma.io_zoneegresses.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: zoneegresses.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: ZoneEgress
- listKind: ZoneEgressList
- plural: zoneegresses
- singular: zoneegress
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - description: Zone name
- jsonPath: .spec.zone
- name: zone
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma ZoneEgress resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
- subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_zoneegressinsights.yaml b/app/assets/dev/raw/crds/kuma.io_zoneegressinsights.yaml
deleted file mode 100644
index 58a995697..000000000
--- a/app/assets/dev/raw/crds/kuma.io_zoneegressinsights.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: zoneegressinsights.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: ZoneEgressInsight
- listKind: ZoneEgressInsightList
- plural: zoneegressinsights
- singular: zoneegressinsight
- scope: Namespaced
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma ZoneEgressInsight resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_zoneingresses.yaml b/app/assets/dev/raw/crds/kuma.io_zoneingresses.yaml
deleted file mode 100644
index 8f3e83575..000000000
--- a/app/assets/dev/raw/crds/kuma.io_zoneingresses.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: zoneingresses.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: ZoneIngress
- listKind: ZoneIngressList
- plural: zoneingresses
- singular: zoneingress
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - description: Zone name
- jsonPath: .spec.zone
- name: zone
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma ZoneIngress resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
- subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_zoneingressinsights.yaml b/app/assets/dev/raw/crds/kuma.io_zoneingressinsights.yaml
deleted file mode 100644
index 66a51ae5f..000000000
--- a/app/assets/dev/raw/crds/kuma.io_zoneingressinsights.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: zoneingressinsights.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: ZoneIngressInsight
- listKind: ZoneIngressInsightList
- plural: zoneingressinsights
- singular: zoneingressinsight
- scope: Namespaced
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma ZoneIngressInsight
- resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_zoneinsights.yaml b/app/assets/dev/raw/crds/kuma.io_zoneinsights.yaml
deleted file mode 100644
index 28e26eaf7..000000000
--- a/app/assets/dev/raw/crds/kuma.io_zoneinsights.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: zoneinsights.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: ZoneInsight
- listKind: ZoneInsightList
- plural: zoneinsights
- singular: zoneinsight
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma ZoneInsight resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_zones.yaml b/app/assets/dev/raw/crds/kuma.io_zones.yaml
deleted file mode 100644
index e750c6388..000000000
--- a/app/assets/dev/raw/crds/kuma.io_zones.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
- name: zones.kuma.io
-spec:
- group: kuma.io
- names:
- categories:
- - kuma
- kind: Zone
- listKind: ZoneList
- plural: zones
- singular: zone
- scope: Cluster
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
- It may be omitted for cluster-scoped resources.
- type: string
- metadata:
- type: object
- spec:
- description: Spec is the specification of the Kuma Zone resource.
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: true
- storage: true
diff --git a/app/assets/images/diagrams/mermaid-example.png b/app/assets/images/diagrams/mermaid-example.png
new file mode 100644
index 000000000..4e92068b8
Binary files /dev/null and b/app/assets/images/diagrams/mermaid-example.png differ
diff --git a/app/assets/images/icons/policies/icon-builtingateway.png b/app/assets/images/icons/policies/icon-builtingateway.png
deleted file mode 100644
index fa9a4dbb3..000000000
Binary files a/app/assets/images/icons/policies/icon-builtingateway.png and /dev/null differ
diff --git a/app/assets/images/icons/policies/icon-delegatedgateway.png b/app/assets/images/icons/policies/icon-delegatedgateway.png
deleted file mode 100644
index 9407f5012..000000000
Binary files a/app/assets/images/icons/policies/icon-delegatedgateway.png and /dev/null differ
diff --git a/app/assets/images/icons/policies/icon-gatewayapi.png b/app/assets/images/icons/policies/icon-gatewayapi.png
deleted file mode 100644
index 43c731991..000000000
Binary files a/app/assets/images/icons/policies/icon-gatewayapi.png and /dev/null differ
diff --git a/app/assets/images/icons/policies/icon-opentelemetry.png b/app/assets/images/icons/policies/icon-opentelemetry.png
deleted file mode 100644
index cc9beaebe..000000000
Binary files a/app/assets/images/icons/policies/icon-opentelemetry.png and /dev/null differ
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_circuitbreakers.yaml b/app/docs/2.0.x/crds/kuma.io_circuitbreakers.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_circuitbreakers.yaml
rename to app/docs/2.0.x/crds/kuma.io_circuitbreakers.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_containerpatches.yaml b/app/docs/2.0.x/crds/kuma.io_containerpatches.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_containerpatches.yaml
rename to app/docs/2.0.x/crds/kuma.io_containerpatches.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_dataplaneinsights.yaml b/app/docs/2.0.x/crds/kuma.io_dataplaneinsights.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_dataplaneinsights.yaml
rename to app/docs/2.0.x/crds/kuma.io_dataplaneinsights.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_dataplanes.yaml b/app/docs/2.0.x/crds/kuma.io_dataplanes.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_dataplanes.yaml
rename to app/docs/2.0.x/crds/kuma.io_dataplanes.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_externalservices.yaml b/app/docs/2.0.x/crds/kuma.io_externalservices.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_externalservices.yaml
rename to app/docs/2.0.x/crds/kuma.io_externalservices.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_faultinjections.yaml b/app/docs/2.0.x/crds/kuma.io_faultinjections.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_faultinjections.yaml
rename to app/docs/2.0.x/crds/kuma.io_faultinjections.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_healthchecks.yaml b/app/docs/2.0.x/crds/kuma.io_healthchecks.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_healthchecks.yaml
rename to app/docs/2.0.x/crds/kuma.io_healthchecks.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_meshaccesslogs.yaml b/app/docs/2.0.x/crds/kuma.io_meshaccesslogs.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_meshaccesslogs.yaml
rename to app/docs/2.0.x/crds/kuma.io_meshaccesslogs.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_meshes.yaml b/app/docs/2.0.x/crds/kuma.io_meshes.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_meshes.yaml
rename to app/docs/2.0.x/crds/kuma.io_meshes.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_meshgatewayconfigs.yaml b/app/docs/2.0.x/crds/kuma.io_meshgatewayconfigs.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_meshgatewayconfigs.yaml
rename to app/docs/2.0.x/crds/kuma.io_meshgatewayconfigs.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_meshgatewayinstances.yaml b/app/docs/2.0.x/crds/kuma.io_meshgatewayinstances.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_meshgatewayinstances.yaml
rename to app/docs/2.0.x/crds/kuma.io_meshgatewayinstances.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_meshgatewayroutes.yaml b/app/docs/2.0.x/crds/kuma.io_meshgatewayroutes.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_meshgatewayroutes.yaml
rename to app/docs/2.0.x/crds/kuma.io_meshgatewayroutes.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_meshgateways.yaml b/app/docs/2.0.x/crds/kuma.io_meshgateways.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_meshgateways.yaml
rename to app/docs/2.0.x/crds/kuma.io_meshgateways.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_meshinsights.yaml b/app/docs/2.0.x/crds/kuma.io_meshinsights.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_meshinsights.yaml
rename to app/docs/2.0.x/crds/kuma.io_meshinsights.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_meshtraces.yaml b/app/docs/2.0.x/crds/kuma.io_meshtraces.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_meshtraces.yaml
rename to app/docs/2.0.x/crds/kuma.io_meshtraces.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_meshtrafficpermissions.yaml b/app/docs/2.0.x/crds/kuma.io_meshtrafficpermissions.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_meshtrafficpermissions.yaml
rename to app/docs/2.0.x/crds/kuma.io_meshtrafficpermissions.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_proxytemplates.yaml b/app/docs/2.0.x/crds/kuma.io_proxytemplates.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_proxytemplates.yaml
rename to app/docs/2.0.x/crds/kuma.io_proxytemplates.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_ratelimits.yaml b/app/docs/2.0.x/crds/kuma.io_ratelimits.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_ratelimits.yaml
rename to app/docs/2.0.x/crds/kuma.io_ratelimits.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_retries.yaml b/app/docs/2.0.x/crds/kuma.io_retries.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_retries.yaml
rename to app/docs/2.0.x/crds/kuma.io_retries.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_serviceinsights.yaml b/app/docs/2.0.x/crds/kuma.io_serviceinsights.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_serviceinsights.yaml
rename to app/docs/2.0.x/crds/kuma.io_serviceinsights.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_timeouts.yaml b/app/docs/2.0.x/crds/kuma.io_timeouts.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_timeouts.yaml
rename to app/docs/2.0.x/crds/kuma.io_timeouts.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_trafficlogs.yaml b/app/docs/2.0.x/crds/kuma.io_trafficlogs.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_trafficlogs.yaml
rename to app/docs/2.0.x/crds/kuma.io_trafficlogs.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_trafficpermissions.yaml b/app/docs/2.0.x/crds/kuma.io_trafficpermissions.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_trafficpermissions.yaml
rename to app/docs/2.0.x/crds/kuma.io_trafficpermissions.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_trafficroutes.yaml b/app/docs/2.0.x/crds/kuma.io_trafficroutes.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_trafficroutes.yaml
rename to app/docs/2.0.x/crds/kuma.io_trafficroutes.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_traffictraces.yaml b/app/docs/2.0.x/crds/kuma.io_traffictraces.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_traffictraces.yaml
rename to app/docs/2.0.x/crds/kuma.io_traffictraces.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_virtualoutbounds.yaml b/app/docs/2.0.x/crds/kuma.io_virtualoutbounds.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_virtualoutbounds.yaml
rename to app/docs/2.0.x/crds/kuma.io_virtualoutbounds.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_zoneegresses.yaml b/app/docs/2.0.x/crds/kuma.io_zoneegresses.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_zoneegresses.yaml
rename to app/docs/2.0.x/crds/kuma.io_zoneegresses.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_zoneegressinsights.yaml b/app/docs/2.0.x/crds/kuma.io_zoneegressinsights.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_zoneegressinsights.yaml
rename to app/docs/2.0.x/crds/kuma.io_zoneegressinsights.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_zoneingresses.yaml b/app/docs/2.0.x/crds/kuma.io_zoneingresses.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_zoneingresses.yaml
rename to app/docs/2.0.x/crds/kuma.io_zoneingresses.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_zoneingressinsights.yaml b/app/docs/2.0.x/crds/kuma.io_zoneingressinsights.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_zoneingressinsights.yaml
rename to app/docs/2.0.x/crds/kuma.io_zoneingressinsights.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_zoneinsights.yaml b/app/docs/2.0.x/crds/kuma.io_zoneinsights.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_zoneinsights.yaml
rename to app/docs/2.0.x/crds/kuma.io_zoneinsights.yaml
diff --git a/app/assets/2.0.x/raw/crds/kuma.io_zones.yaml b/app/docs/2.0.x/crds/kuma.io_zones.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/crds/kuma.io_zones.yaml
rename to app/docs/2.0.x/crds/kuma.io_zones.yaml
diff --git a/app/assets/2.0.x/raw/kuma-cp.yaml b/app/docs/2.0.x/kuma-cp.yaml
similarity index 100%
rename from app/assets/2.0.x/raw/kuma-cp.yaml
rename to app/docs/2.0.x/kuma-cp.yaml
diff --git a/app/assets/2.0.x/raw/protos/CertificateAuthorityBackend.json b/app/docs/2.0.x/protos/CertificateAuthorityBackend.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/CertificateAuthorityBackend.json
rename to app/docs/2.0.x/protos/CertificateAuthorityBackend.json
diff --git a/app/assets/2.0.x/raw/protos/CircuitBreaker.json b/app/docs/2.0.x/protos/CircuitBreaker.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/CircuitBreaker.json
rename to app/docs/2.0.x/protos/CircuitBreaker.json
diff --git a/app/assets/2.0.x/raw/protos/ClustersRequest.json b/app/docs/2.0.x/protos/ClustersRequest.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ClustersRequest.json
rename to app/docs/2.0.x/protos/ClustersRequest.json
diff --git a/app/assets/2.0.x/raw/protos/ClustersResponse.json b/app/docs/2.0.x/protos/ClustersResponse.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ClustersResponse.json
rename to app/docs/2.0.x/protos/ClustersResponse.json
diff --git a/app/assets/2.0.x/raw/protos/DatadogTracingBackendConfig.json b/app/docs/2.0.x/protos/DatadogTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/DatadogTracingBackendConfig.json
rename to app/docs/2.0.x/protos/DatadogTracingBackendConfig.json
diff --git a/app/assets/2.0.x/raw/protos/Dataplane.json b/app/docs/2.0.x/protos/Dataplane.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Dataplane.json
rename to app/docs/2.0.x/protos/Dataplane.json
diff --git a/app/assets/2.0.x/raw/protos/DataplaneInsight.json b/app/docs/2.0.x/protos/DataplaneInsight.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/DataplaneInsight.json
rename to app/docs/2.0.x/protos/DataplaneInsight.json
diff --git a/app/assets/2.0.x/raw/protos/DataplaneOverview.json b/app/docs/2.0.x/protos/DataplaneOverview.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/DataplaneOverview.json
rename to app/docs/2.0.x/protos/DataplaneOverview.json
diff --git a/app/assets/2.0.x/raw/protos/DiscoveryServiceStats.json b/app/docs/2.0.x/protos/DiscoveryServiceStats.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/DiscoveryServiceStats.json
rename to app/docs/2.0.x/protos/DiscoveryServiceStats.json
diff --git a/app/assets/2.0.x/raw/protos/DiscoverySubscription.json b/app/docs/2.0.x/protos/DiscoverySubscription.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/DiscoverySubscription.json
rename to app/docs/2.0.x/protos/DiscoverySubscription.json
diff --git a/app/assets/2.0.x/raw/protos/DiscoverySubscriptionStatus.json b/app/docs/2.0.x/protos/DiscoverySubscriptionStatus.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/DiscoverySubscriptionStatus.json
rename to app/docs/2.0.x/protos/DiscoverySubscriptionStatus.json
diff --git a/app/assets/2.0.x/raw/protos/EnvoyAdmin.json b/app/docs/2.0.x/protos/EnvoyAdmin.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/EnvoyAdmin.json
rename to app/docs/2.0.x/protos/EnvoyAdmin.json
diff --git a/app/assets/2.0.x/raw/protos/EnvoyVersion.json b/app/docs/2.0.x/protos/EnvoyVersion.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/EnvoyVersion.json
rename to app/docs/2.0.x/protos/EnvoyVersion.json
diff --git a/app/assets/2.0.x/raw/protos/ExternalService.json b/app/docs/2.0.x/protos/ExternalService.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ExternalService.json
rename to app/docs/2.0.x/protos/ExternalService.json
diff --git a/app/assets/2.0.x/raw/protos/FaultInjection.json b/app/docs/2.0.x/protos/FaultInjection.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/FaultInjection.json
rename to app/docs/2.0.x/protos/FaultInjection.json
diff --git a/app/assets/2.0.x/raw/protos/FileLoggingBackendConfig.json b/app/docs/2.0.x/protos/FileLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/FileLoggingBackendConfig.json
rename to app/docs/2.0.x/protos/FileLoggingBackendConfig.json
diff --git a/app/assets/2.0.x/raw/protos/HealthCheck.json b/app/docs/2.0.x/protos/HealthCheck.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/HealthCheck.json
rename to app/docs/2.0.x/protos/HealthCheck.json
diff --git a/app/assets/2.0.x/raw/protos/HttpMethod.json b/app/docs/2.0.x/protos/HttpMethod.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/HttpMethod.json
rename to app/docs/2.0.x/protos/HttpMethod.json
diff --git a/app/assets/2.0.x/raw/protos/KumaDpVersion.json b/app/docs/2.0.x/protos/KumaDpVersion.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/KumaDpVersion.json
rename to app/docs/2.0.x/protos/KumaDpVersion.json
diff --git a/app/assets/2.0.x/raw/protos/KumaResource.json b/app/docs/2.0.x/protos/KumaResource.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/KumaResource.json
rename to app/docs/2.0.x/protos/KumaResource.json
diff --git a/app/assets/2.0.x/raw/protos/Logging.json b/app/docs/2.0.x/protos/Logging.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Logging.json
rename to app/docs/2.0.x/protos/Logging.json
diff --git a/app/assets/2.0.x/raw/protos/LoggingBackend.json b/app/docs/2.0.x/protos/LoggingBackend.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/LoggingBackend.json
rename to app/docs/2.0.x/protos/LoggingBackend.json
diff --git a/app/assets/2.0.x/raw/protos/Mesh.json b/app/docs/2.0.x/protos/Mesh.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Mesh.json
rename to app/docs/2.0.x/protos/Mesh.json
diff --git a/app/assets/2.0.x/raw/protos/MeshGateway.json b/app/docs/2.0.x/protos/MeshGateway.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/MeshGateway.json
rename to app/docs/2.0.x/protos/MeshGateway.json
diff --git a/app/assets/2.0.x/raw/protos/MeshGatewayRoute.json b/app/docs/2.0.x/protos/MeshGatewayRoute.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/MeshGatewayRoute.json
rename to app/docs/2.0.x/protos/MeshGatewayRoute.json
diff --git a/app/assets/2.0.x/raw/protos/MeshInsight.json b/app/docs/2.0.x/protos/MeshInsight.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/MeshInsight.json
rename to app/docs/2.0.x/protos/MeshInsight.json
diff --git a/app/assets/2.0.x/raw/protos/Message.json b/app/docs/2.0.x/protos/Message.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Message.json
rename to app/docs/2.0.x/protos/Message.json
diff --git a/app/assets/2.0.x/raw/protos/Metrics.json b/app/docs/2.0.x/protos/Metrics.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Metrics.json
rename to app/docs/2.0.x/protos/Metrics.json
diff --git a/app/assets/2.0.x/raw/protos/MetricsBackend.json b/app/docs/2.0.x/protos/MetricsBackend.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/MetricsBackend.json
rename to app/docs/2.0.x/protos/MetricsBackend.json
diff --git a/app/assets/2.0.x/raw/protos/Networking.json b/app/docs/2.0.x/protos/Networking.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Networking.json
rename to app/docs/2.0.x/protos/Networking.json
diff --git a/app/assets/2.0.x/raw/protos/PrometheusAggregateMetricsConfig.json b/app/docs/2.0.x/protos/PrometheusAggregateMetricsConfig.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/PrometheusAggregateMetricsConfig.json
rename to app/docs/2.0.x/protos/PrometheusAggregateMetricsConfig.json
diff --git a/app/assets/2.0.x/raw/protos/PrometheusEnvoyConfig.json b/app/docs/2.0.x/protos/PrometheusEnvoyConfig.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/PrometheusEnvoyConfig.json
rename to app/docs/2.0.x/protos/PrometheusEnvoyConfig.json
diff --git a/app/assets/2.0.x/raw/protos/PrometheusMetricsBackendConfig.json b/app/docs/2.0.x/protos/PrometheusMetricsBackendConfig.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/PrometheusMetricsBackendConfig.json
rename to app/docs/2.0.x/protos/PrometheusMetricsBackendConfig.json
diff --git a/app/assets/2.0.x/raw/protos/ProxyTemplate.json b/app/docs/2.0.x/protos/ProxyTemplate.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ProxyTemplate.json
rename to app/docs/2.0.x/protos/ProxyTemplate.json
diff --git a/app/assets/2.0.x/raw/protos/ProxyTemplateProfileSource.json b/app/docs/2.0.x/protos/ProxyTemplateProfileSource.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ProxyTemplateProfileSource.json
rename to app/docs/2.0.x/protos/ProxyTemplateProfileSource.json
diff --git a/app/assets/2.0.x/raw/protos/ProxyTemplateRawResource.json b/app/docs/2.0.x/protos/ProxyTemplateRawResource.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ProxyTemplateRawResource.json
rename to app/docs/2.0.x/protos/ProxyTemplateRawResource.json
diff --git a/app/assets/2.0.x/raw/protos/ProxyTemplateRawSource.json b/app/docs/2.0.x/protos/ProxyTemplateRawSource.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ProxyTemplateRawSource.json
rename to app/docs/2.0.x/protos/ProxyTemplateRawSource.json
diff --git a/app/assets/2.0.x/raw/protos/ProxyTemplateSource.json b/app/docs/2.0.x/protos/ProxyTemplateSource.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ProxyTemplateSource.json
rename to app/docs/2.0.x/protos/ProxyTemplateSource.json
diff --git a/app/assets/2.0.x/raw/protos/RateLimit.json b/app/docs/2.0.x/protos/RateLimit.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/RateLimit.json
rename to app/docs/2.0.x/protos/RateLimit.json
diff --git a/app/assets/2.0.x/raw/protos/Retry.json b/app/docs/2.0.x/protos/Retry.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Retry.json
rename to app/docs/2.0.x/protos/Retry.json
diff --git a/app/assets/2.0.x/raw/protos/Routing.json b/app/docs/2.0.x/protos/Routing.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Routing.json
rename to app/docs/2.0.x/protos/Routing.json
diff --git a/app/assets/2.0.x/raw/protos/Selector.json b/app/docs/2.0.x/protos/Selector.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Selector.json
rename to app/docs/2.0.x/protos/Selector.json
diff --git a/app/assets/2.0.x/raw/protos/ServiceInsight.json b/app/docs/2.0.x/protos/ServiceInsight.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ServiceInsight.json
rename to app/docs/2.0.x/protos/ServiceInsight.json
diff --git a/app/assets/2.0.x/raw/protos/StatsRequest.json b/app/docs/2.0.x/protos/StatsRequest.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/StatsRequest.json
rename to app/docs/2.0.x/protos/StatsRequest.json
diff --git a/app/assets/2.0.x/raw/protos/StatsResponse.json b/app/docs/2.0.x/protos/StatsResponse.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/StatsResponse.json
rename to app/docs/2.0.x/protos/StatsResponse.json
diff --git a/app/assets/2.0.x/raw/protos/TcpLoggingBackendConfig.json b/app/docs/2.0.x/protos/TcpLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/TcpLoggingBackendConfig.json
rename to app/docs/2.0.x/protos/TcpLoggingBackendConfig.json
diff --git a/app/assets/2.0.x/raw/protos/Timeout.json b/app/docs/2.0.x/protos/Timeout.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Timeout.json
rename to app/docs/2.0.x/protos/Timeout.json
diff --git a/app/assets/2.0.x/raw/protos/Tracing.json b/app/docs/2.0.x/protos/Tracing.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Tracing.json
rename to app/docs/2.0.x/protos/Tracing.json
diff --git a/app/assets/2.0.x/raw/protos/TracingBackend.json b/app/docs/2.0.x/protos/TracingBackend.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/TracingBackend.json
rename to app/docs/2.0.x/protos/TracingBackend.json
diff --git a/app/assets/2.0.x/raw/protos/TrafficLog.json b/app/docs/2.0.x/protos/TrafficLog.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/TrafficLog.json
rename to app/docs/2.0.x/protos/TrafficLog.json
diff --git a/app/assets/2.0.x/raw/protos/TrafficPermission.json b/app/docs/2.0.x/protos/TrafficPermission.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/TrafficPermission.json
rename to app/docs/2.0.x/protos/TrafficPermission.json
diff --git a/app/assets/2.0.x/raw/protos/TrafficRoute.json b/app/docs/2.0.x/protos/TrafficRoute.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/TrafficRoute.json
rename to app/docs/2.0.x/protos/TrafficRoute.json
diff --git a/app/assets/2.0.x/raw/protos/TrafficTrace.json b/app/docs/2.0.x/protos/TrafficTrace.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/TrafficTrace.json
rename to app/docs/2.0.x/protos/TrafficTrace.json
diff --git a/app/assets/2.0.x/raw/protos/Version.json b/app/docs/2.0.x/protos/Version.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/Version.json
rename to app/docs/2.0.x/protos/Version.json
diff --git a/app/assets/2.0.x/raw/protos/VirtualOutbound.json b/app/docs/2.0.x/protos/VirtualOutbound.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/VirtualOutbound.json
rename to app/docs/2.0.x/protos/VirtualOutbound.json
diff --git a/app/assets/2.0.x/raw/protos/XDSConfigRequest.json b/app/docs/2.0.x/protos/XDSConfigRequest.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/XDSConfigRequest.json
rename to app/docs/2.0.x/protos/XDSConfigRequest.json
diff --git a/app/assets/2.0.x/raw/protos/XDSConfigResponse.json b/app/docs/2.0.x/protos/XDSConfigResponse.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/XDSConfigResponse.json
rename to app/docs/2.0.x/protos/XDSConfigResponse.json
diff --git a/app/assets/2.0.x/raw/protos/ZipkinTracingBackendConfig.json b/app/docs/2.0.x/protos/ZipkinTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ZipkinTracingBackendConfig.json
rename to app/docs/2.0.x/protos/ZipkinTracingBackendConfig.json
diff --git a/app/assets/2.0.x/raw/protos/ZoneEgress.json b/app/docs/2.0.x/protos/ZoneEgress.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ZoneEgress.json
rename to app/docs/2.0.x/protos/ZoneEgress.json
diff --git a/app/assets/2.0.x/raw/protos/ZoneEgressInsight.json b/app/docs/2.0.x/protos/ZoneEgressInsight.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ZoneEgressInsight.json
rename to app/docs/2.0.x/protos/ZoneEgressInsight.json
diff --git a/app/assets/2.0.x/raw/protos/ZoneEgressOverview.json b/app/docs/2.0.x/protos/ZoneEgressOverview.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ZoneEgressOverview.json
rename to app/docs/2.0.x/protos/ZoneEgressOverview.json
diff --git a/app/assets/2.0.x/raw/protos/ZoneIngress.json b/app/docs/2.0.x/protos/ZoneIngress.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ZoneIngress.json
rename to app/docs/2.0.x/protos/ZoneIngress.json
diff --git a/app/assets/2.0.x/raw/protos/ZoneIngressInsight.json b/app/docs/2.0.x/protos/ZoneIngressInsight.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ZoneIngressInsight.json
rename to app/docs/2.0.x/protos/ZoneIngressInsight.json
diff --git a/app/assets/2.0.x/raw/protos/ZoneIngressOverview.json b/app/docs/2.0.x/protos/ZoneIngressOverview.json
similarity index 100%
rename from app/assets/2.0.x/raw/protos/ZoneIngressOverview.json
rename to app/docs/2.0.x/protos/ZoneIngressOverview.json
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_circuitbreakers.yaml b/app/docs/2.1.x/crds/kuma.io_circuitbreakers.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_circuitbreakers.yaml
rename to app/docs/2.1.x/crds/kuma.io_circuitbreakers.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_containerpatches.yaml b/app/docs/2.1.x/crds/kuma.io_containerpatches.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_containerpatches.yaml
rename to app/docs/2.1.x/crds/kuma.io_containerpatches.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_dataplaneinsights.yaml b/app/docs/2.1.x/crds/kuma.io_dataplaneinsights.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_dataplaneinsights.yaml
rename to app/docs/2.1.x/crds/kuma.io_dataplaneinsights.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_dataplanes.yaml b/app/docs/2.1.x/crds/kuma.io_dataplanes.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_dataplanes.yaml
rename to app/docs/2.1.x/crds/kuma.io_dataplanes.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_externalservices.yaml b/app/docs/2.1.x/crds/kuma.io_externalservices.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_externalservices.yaml
rename to app/docs/2.1.x/crds/kuma.io_externalservices.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_faultinjections.yaml b/app/docs/2.1.x/crds/kuma.io_faultinjections.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_faultinjections.yaml
rename to app/docs/2.1.x/crds/kuma.io_faultinjections.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_healthchecks.yaml b/app/docs/2.1.x/crds/kuma.io_healthchecks.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_healthchecks.yaml
rename to app/docs/2.1.x/crds/kuma.io_healthchecks.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshaccesslogs.yaml b/app/docs/2.1.x/crds/kuma.io_meshaccesslogs.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshaccesslogs.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshaccesslogs.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshcircuitbreakers.yaml b/app/docs/2.1.x/crds/kuma.io_meshcircuitbreakers.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshcircuitbreakers.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshcircuitbreakers.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshes.yaml b/app/docs/2.1.x/crds/kuma.io_meshes.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshes.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshes.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshfaultinjections.yaml b/app/docs/2.1.x/crds/kuma.io_meshfaultinjections.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshfaultinjections.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshfaultinjections.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshgatewayconfigs.yaml b/app/docs/2.1.x/crds/kuma.io_meshgatewayconfigs.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshgatewayconfigs.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshgatewayconfigs.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshgatewayinstances.yaml b/app/docs/2.1.x/crds/kuma.io_meshgatewayinstances.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshgatewayinstances.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshgatewayinstances.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshgatewayroutes.yaml b/app/docs/2.1.x/crds/kuma.io_meshgatewayroutes.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshgatewayroutes.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshgatewayroutes.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshgateways.yaml b/app/docs/2.1.x/crds/kuma.io_meshgateways.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshgateways.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshgateways.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshhealthchecks.yaml b/app/docs/2.1.x/crds/kuma.io_meshhealthchecks.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshhealthchecks.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshhealthchecks.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshhttproutes.yaml b/app/docs/2.1.x/crds/kuma.io_meshhttproutes.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshhttproutes.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshhttproutes.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshinsights.yaml b/app/docs/2.1.x/crds/kuma.io_meshinsights.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshinsights.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshinsights.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshproxypatches.yaml b/app/docs/2.1.x/crds/kuma.io_meshproxypatches.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshproxypatches.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshproxypatches.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshratelimits.yaml b/app/docs/2.1.x/crds/kuma.io_meshratelimits.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshratelimits.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshratelimits.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshretries.yaml b/app/docs/2.1.x/crds/kuma.io_meshretries.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshretries.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshretries.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshtimeouts.yaml b/app/docs/2.1.x/crds/kuma.io_meshtimeouts.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshtimeouts.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshtimeouts.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshtraces.yaml b/app/docs/2.1.x/crds/kuma.io_meshtraces.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshtraces.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshtraces.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_meshtrafficpermissions.yaml b/app/docs/2.1.x/crds/kuma.io_meshtrafficpermissions.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_meshtrafficpermissions.yaml
rename to app/docs/2.1.x/crds/kuma.io_meshtrafficpermissions.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_proxytemplates.yaml b/app/docs/2.1.x/crds/kuma.io_proxytemplates.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_proxytemplates.yaml
rename to app/docs/2.1.x/crds/kuma.io_proxytemplates.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_ratelimits.yaml b/app/docs/2.1.x/crds/kuma.io_ratelimits.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_ratelimits.yaml
rename to app/docs/2.1.x/crds/kuma.io_ratelimits.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_retries.yaml b/app/docs/2.1.x/crds/kuma.io_retries.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_retries.yaml
rename to app/docs/2.1.x/crds/kuma.io_retries.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_serviceinsights.yaml b/app/docs/2.1.x/crds/kuma.io_serviceinsights.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_serviceinsights.yaml
rename to app/docs/2.1.x/crds/kuma.io_serviceinsights.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_timeouts.yaml b/app/docs/2.1.x/crds/kuma.io_timeouts.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_timeouts.yaml
rename to app/docs/2.1.x/crds/kuma.io_timeouts.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_trafficlogs.yaml b/app/docs/2.1.x/crds/kuma.io_trafficlogs.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_trafficlogs.yaml
rename to app/docs/2.1.x/crds/kuma.io_trafficlogs.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_trafficpermissions.yaml b/app/docs/2.1.x/crds/kuma.io_trafficpermissions.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_trafficpermissions.yaml
rename to app/docs/2.1.x/crds/kuma.io_trafficpermissions.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_trafficroutes.yaml b/app/docs/2.1.x/crds/kuma.io_trafficroutes.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_trafficroutes.yaml
rename to app/docs/2.1.x/crds/kuma.io_trafficroutes.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_traffictraces.yaml b/app/docs/2.1.x/crds/kuma.io_traffictraces.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_traffictraces.yaml
rename to app/docs/2.1.x/crds/kuma.io_traffictraces.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_virtualoutbounds.yaml b/app/docs/2.1.x/crds/kuma.io_virtualoutbounds.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_virtualoutbounds.yaml
rename to app/docs/2.1.x/crds/kuma.io_virtualoutbounds.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_zoneegresses.yaml b/app/docs/2.1.x/crds/kuma.io_zoneegresses.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_zoneegresses.yaml
rename to app/docs/2.1.x/crds/kuma.io_zoneegresses.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_zoneegressinsights.yaml b/app/docs/2.1.x/crds/kuma.io_zoneegressinsights.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_zoneegressinsights.yaml
rename to app/docs/2.1.x/crds/kuma.io_zoneegressinsights.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_zoneingresses.yaml b/app/docs/2.1.x/crds/kuma.io_zoneingresses.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_zoneingresses.yaml
rename to app/docs/2.1.x/crds/kuma.io_zoneingresses.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_zoneingressinsights.yaml b/app/docs/2.1.x/crds/kuma.io_zoneingressinsights.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_zoneingressinsights.yaml
rename to app/docs/2.1.x/crds/kuma.io_zoneingressinsights.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_zoneinsights.yaml b/app/docs/2.1.x/crds/kuma.io_zoneinsights.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_zoneinsights.yaml
rename to app/docs/2.1.x/crds/kuma.io_zoneinsights.yaml
diff --git a/app/assets/2.1.x/raw/crds/kuma.io_zones.yaml b/app/docs/2.1.x/crds/kuma.io_zones.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/crds/kuma.io_zones.yaml
rename to app/docs/2.1.x/crds/kuma.io_zones.yaml
diff --git a/app/assets/2.1.x/raw/generated/DoNothingPolicy.json b/app/docs/2.1.x/generated/DoNothingPolicy.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/DoNothingPolicy.json
rename to app/docs/2.1.x/generated/DoNothingPolicy.json
diff --git a/app/assets/2.1.x/raw/generated/MeshAccessLog.json b/app/docs/2.1.x/generated/MeshAccessLog.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshAccessLog.json
rename to app/docs/2.1.x/generated/MeshAccessLog.json
diff --git a/app/assets/2.1.x/raw/generated/MeshCircuitBreaker.json b/app/docs/2.1.x/generated/MeshCircuitBreaker.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshCircuitBreaker.json
rename to app/docs/2.1.x/generated/MeshCircuitBreaker.json
diff --git a/app/assets/2.1.x/raw/generated/MeshFaultInjection.json b/app/docs/2.1.x/generated/MeshFaultInjection.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshFaultInjection.json
rename to app/docs/2.1.x/generated/MeshFaultInjection.json
diff --git a/app/assets/2.1.x/raw/generated/MeshGatewayInstance.json b/app/docs/2.1.x/generated/MeshGatewayInstance.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshGatewayInstance.json
rename to app/docs/2.1.x/generated/MeshGatewayInstance.json
diff --git a/app/assets/2.1.x/raw/generated/MeshHTTPRoute.json b/app/docs/2.1.x/generated/MeshHTTPRoute.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshHTTPRoute.json
rename to app/docs/2.1.x/generated/MeshHTTPRoute.json
diff --git a/app/assets/2.1.x/raw/generated/MeshHealthCheck.json b/app/docs/2.1.x/generated/MeshHealthCheck.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshHealthCheck.json
rename to app/docs/2.1.x/generated/MeshHealthCheck.json
diff --git a/app/assets/2.1.x/raw/generated/MeshProxyPatch.json b/app/docs/2.1.x/generated/MeshProxyPatch.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshProxyPatch.json
rename to app/docs/2.1.x/generated/MeshProxyPatch.json
diff --git a/app/assets/2.1.x/raw/generated/MeshRateLimit.json b/app/docs/2.1.x/generated/MeshRateLimit.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshRateLimit.json
rename to app/docs/2.1.x/generated/MeshRateLimit.json
diff --git a/app/assets/2.1.x/raw/generated/MeshRetry.json b/app/docs/2.1.x/generated/MeshRetry.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshRetry.json
rename to app/docs/2.1.x/generated/MeshRetry.json
diff --git a/app/assets/2.1.x/raw/generated/MeshTimeout.json b/app/docs/2.1.x/generated/MeshTimeout.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshTimeout.json
rename to app/docs/2.1.x/generated/MeshTimeout.json
diff --git a/app/assets/2.1.x/raw/generated/MeshTrace.json b/app/docs/2.1.x/generated/MeshTrace.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshTrace.json
rename to app/docs/2.1.x/generated/MeshTrace.json
diff --git a/app/assets/2.1.x/raw/generated/MeshTrafficPermission.json b/app/docs/2.1.x/generated/MeshTrafficPermission.json
similarity index 100%
rename from app/assets/2.1.x/raw/generated/MeshTrafficPermission.json
rename to app/docs/2.1.x/generated/MeshTrafficPermission.json
diff --git a/app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp.md b/app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp.md
rename to app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate.md b/app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp_migrate.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate.md
rename to app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp_migrate.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate_up.md b/app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
rename to app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp_run.md b/app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp_run.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp_run.md
rename to app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp_run.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp_version.md b/app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp_version.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kuma-cp/kuma-cp_version.md
rename to app/docs/2.1.x/generated/cmd/kuma-cp/kuma-cp_version.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kuma-dp/kuma-dp.md b/app/docs/2.1.x/generated/cmd/kuma-dp/kuma-dp.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kuma-dp/kuma-dp.md
rename to app/docs/2.1.x/generated/cmd/kuma-dp/kuma-dp.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kuma-dp/kuma-dp_run.md b/app/docs/2.1.x/generated/cmd/kuma-dp/kuma-dp_run.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kuma-dp/kuma-dp_run.md
rename to app/docs/2.1.x/generated/cmd/kuma-dp/kuma-dp_run.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kuma-dp/kuma-dp_version.md b/app/docs/2.1.x/generated/cmd/kuma-dp/kuma-dp_version.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kuma-dp/kuma-dp_version.md
rename to app/docs/2.1.x/generated/cmd/kuma-dp/kuma-dp_version.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_apply.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_apply.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_apply.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_apply.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_completion.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_completion.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_completion.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_completion.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_completion_bash.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_completion_bash.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_completion_bash.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_completion_bash.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_completion_fish.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_completion_fish.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_completion_fish.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_completion_fish.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_completion_zsh.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_completion_zsh.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_completion_zsh.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_completion_zsh.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_config.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_config.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_add.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes_add.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_add.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes_add.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_list.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes_list.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_list.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes_list.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_remove.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_switch.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_view.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_view.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_config_view.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_config_view.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_delete.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_delete.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_delete.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_delete.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_dataplane-token.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_signing-key.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_signing-key.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_signing-key.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_signing-key.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_tls-certificate.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_user-token.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_user-token.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_user-token.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_user-token.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_zone-token.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_zone-token.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_generate_zone-token.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_generate_zone-token.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breaker.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breakers.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_dataplane.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_dataplane.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_dataplane.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_dataplane.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_dataplanes.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_dataplanes.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_dataplanes.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_dataplanes.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_external-service.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_external-service.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_external-service.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_external-service.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_external-services.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_external-services.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_external-services.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_external-services.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_fault-injection.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_fault-injection.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_fault-injection.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_fault-injection.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_fault-injections.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_fault-injections.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_fault-injections.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_fault-injections.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_global-secret.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_global-secret.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_global-secret.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_global-secret.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_global-secrets.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_global-secrets.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_global-secrets.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_global-secrets.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_healthcheck.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_healthcheck.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_healthcheck.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_healthcheck.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_healthchecks.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_healthchecks.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_healthchecks.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_healthchecks.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_mesh.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_mesh.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_mesh.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_mesh.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslog.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshes.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshes.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshes.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshes.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshgateway.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshgateway.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshgateway.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshgateway.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshgateways.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshgateways.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshgateways.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshgateways.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproute.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshhttproute.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproute.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshhttproute.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproutes.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatch.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatches.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimit.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshratelimit.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimit.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshratelimit.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimits.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshratelimits.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimits.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshratelimits.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshretries.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshretries.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshretries.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshretries.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshretry.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshretry.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshretry.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshretry.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeout.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtimeout.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeout.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtimeout.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeouts.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtrace.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtrace.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtrace.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtrace.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtraces.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtraces.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtraces.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtraces.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplate.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_proxytemplate.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplate.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_proxytemplate.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplates.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_proxytemplates.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplates.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_proxytemplates.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_rate-limit.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_rate-limit.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_rate-limit.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_rate-limit.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_rate-limits.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_rate-limits.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_rate-limits.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_rate-limits.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_retries.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_retries.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_retries.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_retries.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_retry.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_retry.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_retry.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_retry.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_secret.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_secret.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_secret.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_secret.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_secrets.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_secrets.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_secrets.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_secrets.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_timeout.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_timeout.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_timeout.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_timeout.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_timeouts.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_timeouts.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_timeouts.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_timeouts.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-log.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-log.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-log.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-log.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-logs.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-logs.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-logs.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-logs.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permission.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-permission.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permission.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-permission.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permissions.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-route.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-route.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-route.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-route.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-routes.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-routes.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-routes.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-routes.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-trace.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-trace.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-trace.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-trace.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-traces.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-traces.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_traffic-traces.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_traffic-traces.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbound.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingress.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zone-ingress.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingress.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zone-ingress.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingresses.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zone.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zone.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zone.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zone.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zoneegress.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zoneegress.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zoneegress.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zoneegress.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zoneegresses.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zoneegresses.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zoneegresses.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zoneegresses.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zones.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zones.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_get_zones.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_get_zones.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplane.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_dataplane.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplane.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_dataplane.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplanes.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_fault-injection.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_healthcheck.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshes.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshes.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshes.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshes.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshgateway.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshretry.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshretry.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshretry.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshretry.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrace.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_rate-limit.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_retry.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_retry.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_retry.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_retry.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_services.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_services.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_services.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_services.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_timeout.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_timeout.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_timeout.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_timeout.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-log.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-route.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegress.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneingress.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zones.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zones.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_inspect_zones.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_inspect_zones.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_control-plane.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_control-plane.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_control-plane.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_control-plane.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_crds.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_crds.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_crds.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_crds.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_demo.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_demo.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_demo.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_demo.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_gateway.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_gateway.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_gateway.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_gateway.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_gateway_kong.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_gateway_kong.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_logging.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_logging.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_logging.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_logging.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_metrics.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_metrics.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_metrics.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_metrics.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_observability.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_observability.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_observability.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_observability.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_tracing.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_tracing.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_tracing.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_tracing.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_transparent-proxy.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_uninstall.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_uninstall.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_uninstall.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_uninstall.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_uninstall_ebpf.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
diff --git a/app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_version.md b/app/docs/2.1.x/generated/cmd/kumactl/kumactl_version.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/cmd/kumactl/kumactl_version.md
rename to app/docs/2.1.x/generated/cmd/kumactl/kumactl_version.md
diff --git a/app/assets/2.1.x/raw/generated/kuma-cp.md b/app/docs/2.1.x/generated/kuma-cp.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/kuma-cp.md
rename to app/docs/2.1.x/generated/kuma-cp.md
diff --git a/app/assets/2.1.x/raw/generated/resources/other_mesh.md b/app/docs/2.1.x/generated/resources/other_mesh.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/other_mesh.md
rename to app/docs/2.1.x/generated/resources/other_mesh.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_circuit-breaker.md b/app/docs/2.1.x/generated/resources/policy_circuit-breaker.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_circuit-breaker.md
rename to app/docs/2.1.x/generated/resources/policy_circuit-breaker.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_external-service.md b/app/docs/2.1.x/generated/resources/policy_external-service.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_external-service.md
rename to app/docs/2.1.x/generated/resources/policy_external-service.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_fault-injection.md b/app/docs/2.1.x/generated/resources/policy_fault-injection.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_fault-injection.md
rename to app/docs/2.1.x/generated/resources/policy_fault-injection.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_health-check.md b/app/docs/2.1.x/generated/resources/policy_health-check.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_health-check.md
rename to app/docs/2.1.x/generated/resources/policy_health-check.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_meshgateway.md b/app/docs/2.1.x/generated/resources/policy_meshgateway.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_meshgateway.md
rename to app/docs/2.1.x/generated/resources/policy_meshgateway.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_meshgatewayroute.md b/app/docs/2.1.x/generated/resources/policy_meshgatewayroute.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_meshgatewayroute.md
rename to app/docs/2.1.x/generated/resources/policy_meshgatewayroute.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_proxy-template.md b/app/docs/2.1.x/generated/resources/policy_proxy-template.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_proxy-template.md
rename to app/docs/2.1.x/generated/resources/policy_proxy-template.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_rate-limit.md b/app/docs/2.1.x/generated/resources/policy_rate-limit.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_rate-limit.md
rename to app/docs/2.1.x/generated/resources/policy_rate-limit.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_retry.md b/app/docs/2.1.x/generated/resources/policy_retry.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_retry.md
rename to app/docs/2.1.x/generated/resources/policy_retry.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_timeout.md b/app/docs/2.1.x/generated/resources/policy_timeout.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_timeout.md
rename to app/docs/2.1.x/generated/resources/policy_timeout.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_traffic-log.md b/app/docs/2.1.x/generated/resources/policy_traffic-log.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_traffic-log.md
rename to app/docs/2.1.x/generated/resources/policy_traffic-log.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_traffic-permissions.md b/app/docs/2.1.x/generated/resources/policy_traffic-permissions.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_traffic-permissions.md
rename to app/docs/2.1.x/generated/resources/policy_traffic-permissions.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_traffic-route.md b/app/docs/2.1.x/generated/resources/policy_traffic-route.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_traffic-route.md
rename to app/docs/2.1.x/generated/resources/policy_traffic-route.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_traffic-trace.md b/app/docs/2.1.x/generated/resources/policy_traffic-trace.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_traffic-trace.md
rename to app/docs/2.1.x/generated/resources/policy_traffic-trace.md
diff --git a/app/assets/2.1.x/raw/generated/resources/policy_virtual-outbound.md b/app/docs/2.1.x/generated/resources/policy_virtual-outbound.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/policy_virtual-outbound.md
rename to app/docs/2.1.x/generated/resources/policy_virtual-outbound.md
diff --git a/app/assets/2.1.x/raw/generated/resources/proxy_dataplane.md b/app/docs/2.1.x/generated/resources/proxy_dataplane.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/proxy_dataplane.md
rename to app/docs/2.1.x/generated/resources/proxy_dataplane.md
diff --git a/app/assets/2.1.x/raw/generated/resources/proxy_zoneegress.md b/app/docs/2.1.x/generated/resources/proxy_zoneegress.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/proxy_zoneegress.md
rename to app/docs/2.1.x/generated/resources/proxy_zoneegress.md
diff --git a/app/assets/2.1.x/raw/generated/resources/proxy_zoneingress.md b/app/docs/2.1.x/generated/resources/proxy_zoneingress.md
similarity index 100%
rename from app/assets/2.1.x/raw/generated/resources/proxy_zoneingress.md
rename to app/docs/2.1.x/generated/resources/proxy_zoneingress.md
diff --git a/app/assets/2.1.x/raw/helm-values.yaml b/app/docs/2.1.x/helm-values.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/helm-values.yaml
rename to app/docs/2.1.x/helm-values.yaml
diff --git a/app/assets/2.1.x/raw/kuma-cp.yaml b/app/docs/2.1.x/kuma-cp.yaml
similarity index 100%
rename from app/assets/2.1.x/raw/kuma-cp.yaml
rename to app/docs/2.1.x/kuma-cp.yaml
diff --git a/app/assets/2.1.x/raw/protos/CertificateAuthorityBackend.json b/app/docs/2.1.x/protos/CertificateAuthorityBackend.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/CertificateAuthorityBackend.json
rename to app/docs/2.1.x/protos/CertificateAuthorityBackend.json
diff --git a/app/assets/2.1.x/raw/protos/CircuitBreaker.json b/app/docs/2.1.x/protos/CircuitBreaker.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/CircuitBreaker.json
rename to app/docs/2.1.x/protos/CircuitBreaker.json
diff --git a/app/assets/2.1.x/raw/protos/ClustersRequest.json b/app/docs/2.1.x/protos/ClustersRequest.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ClustersRequest.json
rename to app/docs/2.1.x/protos/ClustersRequest.json
diff --git a/app/assets/2.1.x/raw/protos/ClustersResponse.json b/app/docs/2.1.x/protos/ClustersResponse.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ClustersResponse.json
rename to app/docs/2.1.x/protos/ClustersResponse.json
diff --git a/app/assets/2.1.x/raw/protos/DatadogTracingBackendConfig.json b/app/docs/2.1.x/protos/DatadogTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/DatadogTracingBackendConfig.json
rename to app/docs/2.1.x/protos/DatadogTracingBackendConfig.json
diff --git a/app/assets/2.1.x/raw/protos/Dataplane.json b/app/docs/2.1.x/protos/Dataplane.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Dataplane.json
rename to app/docs/2.1.x/protos/Dataplane.json
diff --git a/app/assets/2.1.x/raw/protos/DataplaneInsight.json b/app/docs/2.1.x/protos/DataplaneInsight.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/DataplaneInsight.json
rename to app/docs/2.1.x/protos/DataplaneInsight.json
diff --git a/app/assets/2.1.x/raw/protos/DataplaneOverview.json b/app/docs/2.1.x/protos/DataplaneOverview.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/DataplaneOverview.json
rename to app/docs/2.1.x/protos/DataplaneOverview.json
diff --git a/app/assets/2.1.x/raw/protos/DiscoveryServiceStats.json b/app/docs/2.1.x/protos/DiscoveryServiceStats.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/DiscoveryServiceStats.json
rename to app/docs/2.1.x/protos/DiscoveryServiceStats.json
diff --git a/app/assets/2.1.x/raw/protos/DiscoverySubscription.json b/app/docs/2.1.x/protos/DiscoverySubscription.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/DiscoverySubscription.json
rename to app/docs/2.1.x/protos/DiscoverySubscription.json
diff --git a/app/assets/2.1.x/raw/protos/DiscoverySubscriptionStatus.json b/app/docs/2.1.x/protos/DiscoverySubscriptionStatus.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/DiscoverySubscriptionStatus.json
rename to app/docs/2.1.x/protos/DiscoverySubscriptionStatus.json
diff --git a/app/assets/2.1.x/raw/protos/EnvoyAdmin.json b/app/docs/2.1.x/protos/EnvoyAdmin.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/EnvoyAdmin.json
rename to app/docs/2.1.x/protos/EnvoyAdmin.json
diff --git a/app/assets/2.1.x/raw/protos/EnvoyVersion.json b/app/docs/2.1.x/protos/EnvoyVersion.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/EnvoyVersion.json
rename to app/docs/2.1.x/protos/EnvoyVersion.json
diff --git a/app/assets/2.1.x/raw/protos/ExternalService.json b/app/docs/2.1.x/protos/ExternalService.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ExternalService.json
rename to app/docs/2.1.x/protos/ExternalService.json
diff --git a/app/assets/2.1.x/raw/protos/FaultInjection.json b/app/docs/2.1.x/protos/FaultInjection.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/FaultInjection.json
rename to app/docs/2.1.x/protos/FaultInjection.json
diff --git a/app/assets/2.1.x/raw/protos/FileLoggingBackendConfig.json b/app/docs/2.1.x/protos/FileLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/FileLoggingBackendConfig.json
rename to app/docs/2.1.x/protos/FileLoggingBackendConfig.json
diff --git a/app/assets/2.1.x/raw/protos/HealthCheck.json b/app/docs/2.1.x/protos/HealthCheck.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/HealthCheck.json
rename to app/docs/2.1.x/protos/HealthCheck.json
diff --git a/app/assets/2.1.x/raw/protos/HttpMethod.json b/app/docs/2.1.x/protos/HttpMethod.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/HttpMethod.json
rename to app/docs/2.1.x/protos/HttpMethod.json
diff --git a/app/assets/2.1.x/raw/protos/KumaDpVersion.json b/app/docs/2.1.x/protos/KumaDpVersion.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/KumaDpVersion.json
rename to app/docs/2.1.x/protos/KumaDpVersion.json
diff --git a/app/assets/2.1.x/raw/protos/KumaResource.json b/app/docs/2.1.x/protos/KumaResource.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/KumaResource.json
rename to app/docs/2.1.x/protos/KumaResource.json
diff --git a/app/assets/2.1.x/raw/protos/Logging.json b/app/docs/2.1.x/protos/Logging.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Logging.json
rename to app/docs/2.1.x/protos/Logging.json
diff --git a/app/assets/2.1.x/raw/protos/LoggingBackend.json b/app/docs/2.1.x/protos/LoggingBackend.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/LoggingBackend.json
rename to app/docs/2.1.x/protos/LoggingBackend.json
diff --git a/app/assets/2.1.x/raw/protos/Mesh.json b/app/docs/2.1.x/protos/Mesh.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Mesh.json
rename to app/docs/2.1.x/protos/Mesh.json
diff --git a/app/assets/2.1.x/raw/protos/MeshGateway.json b/app/docs/2.1.x/protos/MeshGateway.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/MeshGateway.json
rename to app/docs/2.1.x/protos/MeshGateway.json
diff --git a/app/assets/2.1.x/raw/protos/MeshGatewayRoute.json b/app/docs/2.1.x/protos/MeshGatewayRoute.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/MeshGatewayRoute.json
rename to app/docs/2.1.x/protos/MeshGatewayRoute.json
diff --git a/app/assets/2.1.x/raw/protos/MeshInsight.json b/app/docs/2.1.x/protos/MeshInsight.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/MeshInsight.json
rename to app/docs/2.1.x/protos/MeshInsight.json
diff --git a/app/assets/2.1.x/raw/protos/Message.json b/app/docs/2.1.x/protos/Message.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Message.json
rename to app/docs/2.1.x/protos/Message.json
diff --git a/app/assets/2.1.x/raw/protos/Metrics.json b/app/docs/2.1.x/protos/Metrics.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Metrics.json
rename to app/docs/2.1.x/protos/Metrics.json
diff --git a/app/assets/2.1.x/raw/protos/MetricsBackend.json b/app/docs/2.1.x/protos/MetricsBackend.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/MetricsBackend.json
rename to app/docs/2.1.x/protos/MetricsBackend.json
diff --git a/app/assets/2.1.x/raw/protos/Networking.json b/app/docs/2.1.x/protos/Networking.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Networking.json
rename to app/docs/2.1.x/protos/Networking.json
diff --git a/app/assets/2.1.x/raw/protos/PrometheusAggregateMetricsConfig.json b/app/docs/2.1.x/protos/PrometheusAggregateMetricsConfig.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/PrometheusAggregateMetricsConfig.json
rename to app/docs/2.1.x/protos/PrometheusAggregateMetricsConfig.json
diff --git a/app/assets/2.1.x/raw/protos/PrometheusEnvoyConfig.json b/app/docs/2.1.x/protos/PrometheusEnvoyConfig.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/PrometheusEnvoyConfig.json
rename to app/docs/2.1.x/protos/PrometheusEnvoyConfig.json
diff --git a/app/assets/2.1.x/raw/protos/PrometheusMetricsBackendConfig.json b/app/docs/2.1.x/protos/PrometheusMetricsBackendConfig.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/PrometheusMetricsBackendConfig.json
rename to app/docs/2.1.x/protos/PrometheusMetricsBackendConfig.json
diff --git a/app/assets/2.1.x/raw/protos/ProxyTemplate.json b/app/docs/2.1.x/protos/ProxyTemplate.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ProxyTemplate.json
rename to app/docs/2.1.x/protos/ProxyTemplate.json
diff --git a/app/assets/2.1.x/raw/protos/ProxyTemplateProfileSource.json b/app/docs/2.1.x/protos/ProxyTemplateProfileSource.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ProxyTemplateProfileSource.json
rename to app/docs/2.1.x/protos/ProxyTemplateProfileSource.json
diff --git a/app/assets/2.1.x/raw/protos/ProxyTemplateRawResource.json b/app/docs/2.1.x/protos/ProxyTemplateRawResource.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ProxyTemplateRawResource.json
rename to app/docs/2.1.x/protos/ProxyTemplateRawResource.json
diff --git a/app/assets/2.1.x/raw/protos/ProxyTemplateRawSource.json b/app/docs/2.1.x/protos/ProxyTemplateRawSource.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ProxyTemplateRawSource.json
rename to app/docs/2.1.x/protos/ProxyTemplateRawSource.json
diff --git a/app/assets/2.1.x/raw/protos/ProxyTemplateSource.json b/app/docs/2.1.x/protos/ProxyTemplateSource.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ProxyTemplateSource.json
rename to app/docs/2.1.x/protos/ProxyTemplateSource.json
diff --git a/app/assets/2.1.x/raw/protos/RateLimit.json b/app/docs/2.1.x/protos/RateLimit.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/RateLimit.json
rename to app/docs/2.1.x/protos/RateLimit.json
diff --git a/app/assets/2.1.x/raw/protos/Retry.json b/app/docs/2.1.x/protos/Retry.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Retry.json
rename to app/docs/2.1.x/protos/Retry.json
diff --git a/app/assets/2.1.x/raw/protos/Routing.json b/app/docs/2.1.x/protos/Routing.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Routing.json
rename to app/docs/2.1.x/protos/Routing.json
diff --git a/app/assets/2.1.x/raw/protos/Selector.json b/app/docs/2.1.x/protos/Selector.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Selector.json
rename to app/docs/2.1.x/protos/Selector.json
diff --git a/app/assets/2.1.x/raw/protos/ServiceInsight.json b/app/docs/2.1.x/protos/ServiceInsight.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ServiceInsight.json
rename to app/docs/2.1.x/protos/ServiceInsight.json
diff --git a/app/assets/2.1.x/raw/protos/StatsRequest.json b/app/docs/2.1.x/protos/StatsRequest.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/StatsRequest.json
rename to app/docs/2.1.x/protos/StatsRequest.json
diff --git a/app/assets/2.1.x/raw/protos/StatsResponse.json b/app/docs/2.1.x/protos/StatsResponse.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/StatsResponse.json
rename to app/docs/2.1.x/protos/StatsResponse.json
diff --git a/app/assets/2.1.x/raw/protos/TcpLoggingBackendConfig.json b/app/docs/2.1.x/protos/TcpLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/TcpLoggingBackendConfig.json
rename to app/docs/2.1.x/protos/TcpLoggingBackendConfig.json
diff --git a/app/assets/2.1.x/raw/protos/Timeout.json b/app/docs/2.1.x/protos/Timeout.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Timeout.json
rename to app/docs/2.1.x/protos/Timeout.json
diff --git a/app/assets/2.1.x/raw/protos/Tracing.json b/app/docs/2.1.x/protos/Tracing.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Tracing.json
rename to app/docs/2.1.x/protos/Tracing.json
diff --git a/app/assets/2.1.x/raw/protos/TracingBackend.json b/app/docs/2.1.x/protos/TracingBackend.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/TracingBackend.json
rename to app/docs/2.1.x/protos/TracingBackend.json
diff --git a/app/assets/2.1.x/raw/protos/TrafficLog.json b/app/docs/2.1.x/protos/TrafficLog.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/TrafficLog.json
rename to app/docs/2.1.x/protos/TrafficLog.json
diff --git a/app/assets/2.1.x/raw/protos/TrafficPermission.json b/app/docs/2.1.x/protos/TrafficPermission.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/TrafficPermission.json
rename to app/docs/2.1.x/protos/TrafficPermission.json
diff --git a/app/assets/2.1.x/raw/protos/TrafficRoute.json b/app/docs/2.1.x/protos/TrafficRoute.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/TrafficRoute.json
rename to app/docs/2.1.x/protos/TrafficRoute.json
diff --git a/app/assets/2.1.x/raw/protos/TrafficTrace.json b/app/docs/2.1.x/protos/TrafficTrace.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/TrafficTrace.json
rename to app/docs/2.1.x/protos/TrafficTrace.json
diff --git a/app/assets/2.1.x/raw/protos/Version.json b/app/docs/2.1.x/protos/Version.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/Version.json
rename to app/docs/2.1.x/protos/Version.json
diff --git a/app/assets/2.1.x/raw/protos/VirtualOutbound.json b/app/docs/2.1.x/protos/VirtualOutbound.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/VirtualOutbound.json
rename to app/docs/2.1.x/protos/VirtualOutbound.json
diff --git a/app/assets/2.1.x/raw/protos/XDSConfigRequest.json b/app/docs/2.1.x/protos/XDSConfigRequest.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/XDSConfigRequest.json
rename to app/docs/2.1.x/protos/XDSConfigRequest.json
diff --git a/app/assets/2.1.x/raw/protos/XDSConfigResponse.json b/app/docs/2.1.x/protos/XDSConfigResponse.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/XDSConfigResponse.json
rename to app/docs/2.1.x/protos/XDSConfigResponse.json
diff --git a/app/assets/2.1.x/raw/protos/ZipkinTracingBackendConfig.json b/app/docs/2.1.x/protos/ZipkinTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ZipkinTracingBackendConfig.json
rename to app/docs/2.1.x/protos/ZipkinTracingBackendConfig.json
diff --git a/app/assets/2.1.x/raw/protos/ZoneEgress.json b/app/docs/2.1.x/protos/ZoneEgress.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ZoneEgress.json
rename to app/docs/2.1.x/protos/ZoneEgress.json
diff --git a/app/assets/2.1.x/raw/protos/ZoneEgressInsight.json b/app/docs/2.1.x/protos/ZoneEgressInsight.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ZoneEgressInsight.json
rename to app/docs/2.1.x/protos/ZoneEgressInsight.json
diff --git a/app/assets/2.1.x/raw/protos/ZoneEgressOverview.json b/app/docs/2.1.x/protos/ZoneEgressOverview.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ZoneEgressOverview.json
rename to app/docs/2.1.x/protos/ZoneEgressOverview.json
diff --git a/app/assets/2.1.x/raw/protos/ZoneIngress.json b/app/docs/2.1.x/protos/ZoneIngress.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ZoneIngress.json
rename to app/docs/2.1.x/protos/ZoneIngress.json
diff --git a/app/assets/2.1.x/raw/protos/ZoneIngressInsight.json b/app/docs/2.1.x/protos/ZoneIngressInsight.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ZoneIngressInsight.json
rename to app/docs/2.1.x/protos/ZoneIngressInsight.json
diff --git a/app/assets/2.1.x/raw/protos/ZoneIngressOverview.json b/app/docs/2.1.x/protos/ZoneIngressOverview.json
similarity index 100%
rename from app/assets/2.1.x/raw/protos/ZoneIngressOverview.json
rename to app/docs/2.1.x/protos/ZoneIngressOverview.json
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_circuitbreakers.yaml b/app/docs/2.2.x/crds/kuma.io_circuitbreakers.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_circuitbreakers.yaml
rename to app/docs/2.2.x/crds/kuma.io_circuitbreakers.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_containerpatches.yaml b/app/docs/2.2.x/crds/kuma.io_containerpatches.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_containerpatches.yaml
rename to app/docs/2.2.x/crds/kuma.io_containerpatches.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_dataplaneinsights.yaml b/app/docs/2.2.x/crds/kuma.io_dataplaneinsights.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_dataplaneinsights.yaml
rename to app/docs/2.2.x/crds/kuma.io_dataplaneinsights.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_dataplanes.yaml b/app/docs/2.2.x/crds/kuma.io_dataplanes.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_dataplanes.yaml
rename to app/docs/2.2.x/crds/kuma.io_dataplanes.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_externalservices.yaml b/app/docs/2.2.x/crds/kuma.io_externalservices.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_externalservices.yaml
rename to app/docs/2.2.x/crds/kuma.io_externalservices.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_faultinjections.yaml b/app/docs/2.2.x/crds/kuma.io_faultinjections.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_faultinjections.yaml
rename to app/docs/2.2.x/crds/kuma.io_faultinjections.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_healthchecks.yaml b/app/docs/2.2.x/crds/kuma.io_healthchecks.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_healthchecks.yaml
rename to app/docs/2.2.x/crds/kuma.io_healthchecks.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshaccesslogs.yaml b/app/docs/2.2.x/crds/kuma.io_meshaccesslogs.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshaccesslogs.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshaccesslogs.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshcircuitbreakers.yaml b/app/docs/2.2.x/crds/kuma.io_meshcircuitbreakers.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshcircuitbreakers.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshcircuitbreakers.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshes.yaml b/app/docs/2.2.x/crds/kuma.io_meshes.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshes.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshes.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshfaultinjections.yaml b/app/docs/2.2.x/crds/kuma.io_meshfaultinjections.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshfaultinjections.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshfaultinjections.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshgatewayconfigs.yaml b/app/docs/2.2.x/crds/kuma.io_meshgatewayconfigs.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshgatewayconfigs.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshgatewayconfigs.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshgatewayinstances.yaml b/app/docs/2.2.x/crds/kuma.io_meshgatewayinstances.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshgatewayinstances.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshgatewayinstances.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshgatewayroutes.yaml b/app/docs/2.2.x/crds/kuma.io_meshgatewayroutes.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshgatewayroutes.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshgatewayroutes.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshgateways.yaml b/app/docs/2.2.x/crds/kuma.io_meshgateways.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshgateways.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshgateways.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshhealthchecks.yaml b/app/docs/2.2.x/crds/kuma.io_meshhealthchecks.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshhealthchecks.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshhealthchecks.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshhttproutes.yaml b/app/docs/2.2.x/crds/kuma.io_meshhttproutes.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshhttproutes.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshhttproutes.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshinsights.yaml b/app/docs/2.2.x/crds/kuma.io_meshinsights.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshinsights.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshinsights.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshloadbalancingstrategies.yaml b/app/docs/2.2.x/crds/kuma.io_meshloadbalancingstrategies.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshloadbalancingstrategies.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshloadbalancingstrategies.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshproxypatches.yaml b/app/docs/2.2.x/crds/kuma.io_meshproxypatches.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshproxypatches.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshproxypatches.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshratelimits.yaml b/app/docs/2.2.x/crds/kuma.io_meshratelimits.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshratelimits.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshratelimits.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshretries.yaml b/app/docs/2.2.x/crds/kuma.io_meshretries.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshretries.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshretries.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshtimeouts.yaml b/app/docs/2.2.x/crds/kuma.io_meshtimeouts.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshtimeouts.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshtimeouts.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshtraces.yaml b/app/docs/2.2.x/crds/kuma.io_meshtraces.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshtraces.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshtraces.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_meshtrafficpermissions.yaml b/app/docs/2.2.x/crds/kuma.io_meshtrafficpermissions.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_meshtrafficpermissions.yaml
rename to app/docs/2.2.x/crds/kuma.io_meshtrafficpermissions.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_proxytemplates.yaml b/app/docs/2.2.x/crds/kuma.io_proxytemplates.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_proxytemplates.yaml
rename to app/docs/2.2.x/crds/kuma.io_proxytemplates.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_ratelimits.yaml b/app/docs/2.2.x/crds/kuma.io_ratelimits.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_ratelimits.yaml
rename to app/docs/2.2.x/crds/kuma.io_ratelimits.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_retries.yaml b/app/docs/2.2.x/crds/kuma.io_retries.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_retries.yaml
rename to app/docs/2.2.x/crds/kuma.io_retries.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_serviceinsights.yaml b/app/docs/2.2.x/crds/kuma.io_serviceinsights.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_serviceinsights.yaml
rename to app/docs/2.2.x/crds/kuma.io_serviceinsights.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_timeouts.yaml b/app/docs/2.2.x/crds/kuma.io_timeouts.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_timeouts.yaml
rename to app/docs/2.2.x/crds/kuma.io_timeouts.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_trafficlogs.yaml b/app/docs/2.2.x/crds/kuma.io_trafficlogs.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_trafficlogs.yaml
rename to app/docs/2.2.x/crds/kuma.io_trafficlogs.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_trafficpermissions.yaml b/app/docs/2.2.x/crds/kuma.io_trafficpermissions.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_trafficpermissions.yaml
rename to app/docs/2.2.x/crds/kuma.io_trafficpermissions.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_trafficroutes.yaml b/app/docs/2.2.x/crds/kuma.io_trafficroutes.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_trafficroutes.yaml
rename to app/docs/2.2.x/crds/kuma.io_trafficroutes.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_traffictraces.yaml b/app/docs/2.2.x/crds/kuma.io_traffictraces.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_traffictraces.yaml
rename to app/docs/2.2.x/crds/kuma.io_traffictraces.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_virtualoutbounds.yaml b/app/docs/2.2.x/crds/kuma.io_virtualoutbounds.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_virtualoutbounds.yaml
rename to app/docs/2.2.x/crds/kuma.io_virtualoutbounds.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_zoneegresses.yaml b/app/docs/2.2.x/crds/kuma.io_zoneegresses.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_zoneegresses.yaml
rename to app/docs/2.2.x/crds/kuma.io_zoneegresses.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_zoneegressinsights.yaml b/app/docs/2.2.x/crds/kuma.io_zoneegressinsights.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_zoneegressinsights.yaml
rename to app/docs/2.2.x/crds/kuma.io_zoneegressinsights.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_zoneingresses.yaml b/app/docs/2.2.x/crds/kuma.io_zoneingresses.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_zoneingresses.yaml
rename to app/docs/2.2.x/crds/kuma.io_zoneingresses.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_zoneingressinsights.yaml b/app/docs/2.2.x/crds/kuma.io_zoneingressinsights.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_zoneingressinsights.yaml
rename to app/docs/2.2.x/crds/kuma.io_zoneingressinsights.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_zoneinsights.yaml b/app/docs/2.2.x/crds/kuma.io_zoneinsights.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_zoneinsights.yaml
rename to app/docs/2.2.x/crds/kuma.io_zoneinsights.yaml
diff --git a/app/assets/2.2.x/raw/crds/kuma.io_zones.yaml b/app/docs/2.2.x/crds/kuma.io_zones.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/crds/kuma.io_zones.yaml
rename to app/docs/2.2.x/crds/kuma.io_zones.yaml
diff --git a/app/assets/2.2.x/raw/generated/DoNothingPolicy.json b/app/docs/2.2.x/generated/DoNothingPolicy.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/DoNothingPolicy.json
rename to app/docs/2.2.x/generated/DoNothingPolicy.json
diff --git a/app/assets/2.2.x/raw/generated/MeshAccessLog.json b/app/docs/2.2.x/generated/MeshAccessLog.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshAccessLog.json
rename to app/docs/2.2.x/generated/MeshAccessLog.json
diff --git a/app/assets/2.2.x/raw/generated/MeshCircuitBreaker.json b/app/docs/2.2.x/generated/MeshCircuitBreaker.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshCircuitBreaker.json
rename to app/docs/2.2.x/generated/MeshCircuitBreaker.json
diff --git a/app/assets/2.2.x/raw/generated/MeshFaultInjection.json b/app/docs/2.2.x/generated/MeshFaultInjection.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshFaultInjection.json
rename to app/docs/2.2.x/generated/MeshFaultInjection.json
diff --git a/app/assets/2.2.x/raw/generated/MeshGatewayInstance.json b/app/docs/2.2.x/generated/MeshGatewayInstance.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshGatewayInstance.json
rename to app/docs/2.2.x/generated/MeshGatewayInstance.json
diff --git a/app/assets/2.2.x/raw/generated/MeshHTTPRoute.json b/app/docs/2.2.x/generated/MeshHTTPRoute.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshHTTPRoute.json
rename to app/docs/2.2.x/generated/MeshHTTPRoute.json
diff --git a/app/assets/2.2.x/raw/generated/MeshHealthCheck.json b/app/docs/2.2.x/generated/MeshHealthCheck.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshHealthCheck.json
rename to app/docs/2.2.x/generated/MeshHealthCheck.json
diff --git a/app/assets/2.2.x/raw/generated/MeshLoadBalancingStrategy.json b/app/docs/2.2.x/generated/MeshLoadBalancingStrategy.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshLoadBalancingStrategy.json
rename to app/docs/2.2.x/generated/MeshLoadBalancingStrategy.json
diff --git a/app/assets/2.2.x/raw/generated/MeshProxyPatch.json b/app/docs/2.2.x/generated/MeshProxyPatch.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshProxyPatch.json
rename to app/docs/2.2.x/generated/MeshProxyPatch.json
diff --git a/app/assets/2.2.x/raw/generated/MeshRateLimit.json b/app/docs/2.2.x/generated/MeshRateLimit.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshRateLimit.json
rename to app/docs/2.2.x/generated/MeshRateLimit.json
diff --git a/app/assets/2.2.x/raw/generated/MeshRetry.json b/app/docs/2.2.x/generated/MeshRetry.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshRetry.json
rename to app/docs/2.2.x/generated/MeshRetry.json
diff --git a/app/assets/2.2.x/raw/generated/MeshTimeout.json b/app/docs/2.2.x/generated/MeshTimeout.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshTimeout.json
rename to app/docs/2.2.x/generated/MeshTimeout.json
diff --git a/app/assets/2.2.x/raw/generated/MeshTrace.json b/app/docs/2.2.x/generated/MeshTrace.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshTrace.json
rename to app/docs/2.2.x/generated/MeshTrace.json
diff --git a/app/assets/2.2.x/raw/generated/MeshTrafficPermission.json b/app/docs/2.2.x/generated/MeshTrafficPermission.json
similarity index 100%
rename from app/assets/2.2.x/raw/generated/MeshTrafficPermission.json
rename to app/docs/2.2.x/generated/MeshTrafficPermission.json
diff --git a/app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp.md b/app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp.md
rename to app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate.md b/app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp_migrate.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate.md
rename to app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp_migrate.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate_up.md b/app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
rename to app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp_run.md b/app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp_run.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp_run.md
rename to app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp_run.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp_version.md b/app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp_version.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kuma-cp/kuma-cp_version.md
rename to app/docs/2.2.x/generated/cmd/kuma-cp/kuma-cp_version.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kuma-dp/kuma-dp.md b/app/docs/2.2.x/generated/cmd/kuma-dp/kuma-dp.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kuma-dp/kuma-dp.md
rename to app/docs/2.2.x/generated/cmd/kuma-dp/kuma-dp.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kuma-dp/kuma-dp_run.md b/app/docs/2.2.x/generated/cmd/kuma-dp/kuma-dp_run.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kuma-dp/kuma-dp_run.md
rename to app/docs/2.2.x/generated/cmd/kuma-dp/kuma-dp_run.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kuma-dp/kuma-dp_version.md b/app/docs/2.2.x/generated/cmd/kuma-dp/kuma-dp_version.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kuma-dp/kuma-dp_version.md
rename to app/docs/2.2.x/generated/cmd/kuma-dp/kuma-dp_version.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_apply.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_apply.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_apply.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_apply.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_completion.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_completion.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_completion.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_completion.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_completion_bash.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_completion_bash.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_completion_bash.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_completion_bash.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_completion_fish.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_completion_fish.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_completion_fish.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_completion_fish.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_completion_zsh.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_completion_zsh.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_completion_zsh.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_completion_zsh.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_config.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_config.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_add.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes_add.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_add.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes_add.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_list.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes_list.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_list.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes_list.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_remove.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_switch.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_view.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_view.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_config_view.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_config_view.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_delete.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_delete.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_delete.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_delete.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_dataplane-token.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_public-key.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_public-key.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_public-key.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_public-key.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_signing-key.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_signing-key.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_signing-key.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_signing-key.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_tls-certificate.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_user-token.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_user-token.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_user-token.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_user-token.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_zone-token.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_zone-token.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_generate_zone-token.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_generate_zone-token.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breaker.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breakers.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_dataplane.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_dataplane.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_dataplane.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_dataplane.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_dataplanes.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_dataplanes.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_dataplanes.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_dataplanes.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_external-service.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_external-service.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_external-service.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_external-service.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_external-services.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_external-services.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_external-services.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_external-services.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_fault-injection.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_fault-injection.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_fault-injection.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_fault-injection.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_fault-injections.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_fault-injections.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_fault-injections.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_fault-injections.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_global-secret.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_global-secret.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_global-secret.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_global-secret.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_global-secrets.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_global-secrets.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_global-secrets.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_global-secrets.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_healthcheck.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_healthcheck.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_healthcheck.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_healthcheck.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_healthchecks.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_healthchecks.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_healthchecks.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_healthchecks.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_mesh.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_mesh.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_mesh.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_mesh.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslog.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshes.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshes.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshes.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshes.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshgateway.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshgateway.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshgateway.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshgateway.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshgateways.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshgateways.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshgateways.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshgateways.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproute.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshhttproute.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproute.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshhttproute.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproutes.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatch.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatches.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimit.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshratelimit.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimit.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshratelimit.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimits.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshratelimits.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimits.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshratelimits.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshretries.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshretries.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshretries.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshretries.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshretry.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshretry.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshretry.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshretry.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeout.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtimeout.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeout.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtimeout.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeouts.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtrace.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtrace.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtrace.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtrace.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtraces.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtraces.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtraces.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtraces.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplate.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_proxytemplate.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplate.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_proxytemplate.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplates.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_proxytemplates.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplates.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_proxytemplates.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_rate-limit.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_rate-limit.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_rate-limit.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_rate-limit.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_rate-limits.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_rate-limits.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_rate-limits.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_rate-limits.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_retries.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_retries.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_retries.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_retries.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_retry.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_retry.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_retry.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_retry.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_secret.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_secret.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_secret.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_secret.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_secrets.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_secrets.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_secrets.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_secrets.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_timeout.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_timeout.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_timeout.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_timeout.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_timeouts.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_timeouts.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_timeouts.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_timeouts.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-log.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-log.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-log.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-log.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-logs.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-logs.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-logs.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-logs.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permission.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-permission.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permission.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-permission.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permissions.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-route.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-route.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-route.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-route.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-routes.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-routes.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-routes.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-routes.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-trace.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-trace.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-trace.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-trace.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-traces.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-traces.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_traffic-traces.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_traffic-traces.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbound.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingress.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zone-ingress.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingress.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zone-ingress.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingresses.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zone.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zone.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zone.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zone.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zoneegress.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zoneegress.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zoneegress.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zoneegress.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zoneegresses.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zoneegresses.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zoneegresses.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zoneegresses.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zones.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zones.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_get_zones.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_get_zones.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplane.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_dataplane.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplane.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_dataplane.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplanes.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_fault-injection.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_healthcheck.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshes.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshes.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshes.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshes.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshgateway.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshretry.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshretry.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshretry.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshretry.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrace.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_rate-limit.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_retry.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_retry.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_retry.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_retry.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_services.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_services.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_services.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_services.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_timeout.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_timeout.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_timeout.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_timeout.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-log.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-route.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegress.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneingress.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zones.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zones.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_inspect_zones.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_inspect_zones.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_control-plane.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_control-plane.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_control-plane.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_control-plane.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_crds.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_crds.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_crds.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_crds.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_demo.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_demo.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_demo.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_demo.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_gateway.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_gateway.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_gateway.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_gateway.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_gateway_kong.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_gateway_kong.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_logging.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_logging.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_logging.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_logging.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_metrics.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_metrics.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_metrics.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_metrics.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_observability.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_observability.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_observability.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_observability.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_tracing.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_tracing.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_tracing.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_tracing.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_transparent-proxy.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_uninstall.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_uninstall.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_uninstall.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_uninstall.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_uninstall_ebpf.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
diff --git a/app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_version.md b/app/docs/2.2.x/generated/cmd/kumactl/kumactl_version.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/cmd/kumactl/kumactl_version.md
rename to app/docs/2.2.x/generated/cmd/kumactl/kumactl_version.md
diff --git a/app/assets/2.2.x/raw/generated/kuma-cp.md b/app/docs/2.2.x/generated/kuma-cp.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/kuma-cp.md
rename to app/docs/2.2.x/generated/kuma-cp.md
diff --git a/app/assets/2.2.x/raw/generated/resources/other_mesh.md b/app/docs/2.2.x/generated/resources/other_mesh.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/other_mesh.md
rename to app/docs/2.2.x/generated/resources/other_mesh.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_circuit-breaker.md b/app/docs/2.2.x/generated/resources/policy_circuit-breaker.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_circuit-breaker.md
rename to app/docs/2.2.x/generated/resources/policy_circuit-breaker.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_external-service.md b/app/docs/2.2.x/generated/resources/policy_external-service.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_external-service.md
rename to app/docs/2.2.x/generated/resources/policy_external-service.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_fault-injection.md b/app/docs/2.2.x/generated/resources/policy_fault-injection.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_fault-injection.md
rename to app/docs/2.2.x/generated/resources/policy_fault-injection.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_health-check.md b/app/docs/2.2.x/generated/resources/policy_health-check.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_health-check.md
rename to app/docs/2.2.x/generated/resources/policy_health-check.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_meshgateway.md b/app/docs/2.2.x/generated/resources/policy_meshgateway.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_meshgateway.md
rename to app/docs/2.2.x/generated/resources/policy_meshgateway.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_meshgatewayroute.md b/app/docs/2.2.x/generated/resources/policy_meshgatewayroute.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_meshgatewayroute.md
rename to app/docs/2.2.x/generated/resources/policy_meshgatewayroute.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_proxy-template.md b/app/docs/2.2.x/generated/resources/policy_proxy-template.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_proxy-template.md
rename to app/docs/2.2.x/generated/resources/policy_proxy-template.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_rate-limit.md b/app/docs/2.2.x/generated/resources/policy_rate-limit.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_rate-limit.md
rename to app/docs/2.2.x/generated/resources/policy_rate-limit.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_retry.md b/app/docs/2.2.x/generated/resources/policy_retry.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_retry.md
rename to app/docs/2.2.x/generated/resources/policy_retry.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_timeout.md b/app/docs/2.2.x/generated/resources/policy_timeout.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_timeout.md
rename to app/docs/2.2.x/generated/resources/policy_timeout.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_traffic-log.md b/app/docs/2.2.x/generated/resources/policy_traffic-log.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_traffic-log.md
rename to app/docs/2.2.x/generated/resources/policy_traffic-log.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_traffic-permissions.md b/app/docs/2.2.x/generated/resources/policy_traffic-permissions.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_traffic-permissions.md
rename to app/docs/2.2.x/generated/resources/policy_traffic-permissions.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_traffic-route.md b/app/docs/2.2.x/generated/resources/policy_traffic-route.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_traffic-route.md
rename to app/docs/2.2.x/generated/resources/policy_traffic-route.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_traffic-trace.md b/app/docs/2.2.x/generated/resources/policy_traffic-trace.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_traffic-trace.md
rename to app/docs/2.2.x/generated/resources/policy_traffic-trace.md
diff --git a/app/assets/2.2.x/raw/generated/resources/policy_virtual-outbound.md b/app/docs/2.2.x/generated/resources/policy_virtual-outbound.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/policy_virtual-outbound.md
rename to app/docs/2.2.x/generated/resources/policy_virtual-outbound.md
diff --git a/app/assets/2.2.x/raw/generated/resources/proxy_dataplane.md b/app/docs/2.2.x/generated/resources/proxy_dataplane.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/proxy_dataplane.md
rename to app/docs/2.2.x/generated/resources/proxy_dataplane.md
diff --git a/app/assets/2.2.x/raw/generated/resources/proxy_zoneegress.md b/app/docs/2.2.x/generated/resources/proxy_zoneegress.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/proxy_zoneegress.md
rename to app/docs/2.2.x/generated/resources/proxy_zoneegress.md
diff --git a/app/assets/2.2.x/raw/generated/resources/proxy_zoneingress.md b/app/docs/2.2.x/generated/resources/proxy_zoneingress.md
similarity index 100%
rename from app/assets/2.2.x/raw/generated/resources/proxy_zoneingress.md
rename to app/docs/2.2.x/generated/resources/proxy_zoneingress.md
diff --git a/app/assets/2.2.x/raw/helm-values.yaml b/app/docs/2.2.x/helm-values.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/helm-values.yaml
rename to app/docs/2.2.x/helm-values.yaml
diff --git a/app/assets/2.2.x/raw/kuma-cp.yaml b/app/docs/2.2.x/kuma-cp.yaml
similarity index 100%
rename from app/assets/2.2.x/raw/kuma-cp.yaml
rename to app/docs/2.2.x/kuma-cp.yaml
diff --git a/app/assets/2.2.x/raw/protos/CertificateAuthorityBackend.json b/app/docs/2.2.x/protos/CertificateAuthorityBackend.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/CertificateAuthorityBackend.json
rename to app/docs/2.2.x/protos/CertificateAuthorityBackend.json
diff --git a/app/assets/2.2.x/raw/protos/CircuitBreaker.json b/app/docs/2.2.x/protos/CircuitBreaker.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/CircuitBreaker.json
rename to app/docs/2.2.x/protos/CircuitBreaker.json
diff --git a/app/assets/2.2.x/raw/protos/ClustersRequest.json b/app/docs/2.2.x/protos/ClustersRequest.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ClustersRequest.json
rename to app/docs/2.2.x/protos/ClustersRequest.json
diff --git a/app/assets/2.2.x/raw/protos/ClustersResponse.json b/app/docs/2.2.x/protos/ClustersResponse.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ClustersResponse.json
rename to app/docs/2.2.x/protos/ClustersResponse.json
diff --git a/app/assets/2.2.x/raw/protos/DatadogTracingBackendConfig.json b/app/docs/2.2.x/protos/DatadogTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/DatadogTracingBackendConfig.json
rename to app/docs/2.2.x/protos/DatadogTracingBackendConfig.json
diff --git a/app/assets/2.2.x/raw/protos/Dataplane.json b/app/docs/2.2.x/protos/Dataplane.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Dataplane.json
rename to app/docs/2.2.x/protos/Dataplane.json
diff --git a/app/assets/2.2.x/raw/protos/DataplaneInsight.json b/app/docs/2.2.x/protos/DataplaneInsight.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/DataplaneInsight.json
rename to app/docs/2.2.x/protos/DataplaneInsight.json
diff --git a/app/assets/2.2.x/raw/protos/DataplaneOverview.json b/app/docs/2.2.x/protos/DataplaneOverview.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/DataplaneOverview.json
rename to app/docs/2.2.x/protos/DataplaneOverview.json
diff --git a/app/assets/2.2.x/raw/protos/DiscoveryServiceStats.json b/app/docs/2.2.x/protos/DiscoveryServiceStats.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/DiscoveryServiceStats.json
rename to app/docs/2.2.x/protos/DiscoveryServiceStats.json
diff --git a/app/assets/2.2.x/raw/protos/DiscoverySubscription.json b/app/docs/2.2.x/protos/DiscoverySubscription.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/DiscoverySubscription.json
rename to app/docs/2.2.x/protos/DiscoverySubscription.json
diff --git a/app/assets/2.2.x/raw/protos/DiscoverySubscriptionStatus.json b/app/docs/2.2.x/protos/DiscoverySubscriptionStatus.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/DiscoverySubscriptionStatus.json
rename to app/docs/2.2.x/protos/DiscoverySubscriptionStatus.json
diff --git a/app/assets/2.2.x/raw/protos/EnvoyAdmin.json b/app/docs/2.2.x/protos/EnvoyAdmin.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/EnvoyAdmin.json
rename to app/docs/2.2.x/protos/EnvoyAdmin.json
diff --git a/app/assets/2.2.x/raw/protos/EnvoyVersion.json b/app/docs/2.2.x/protos/EnvoyVersion.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/EnvoyVersion.json
rename to app/docs/2.2.x/protos/EnvoyVersion.json
diff --git a/app/assets/2.2.x/raw/protos/ExternalService.json b/app/docs/2.2.x/protos/ExternalService.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ExternalService.json
rename to app/docs/2.2.x/protos/ExternalService.json
diff --git a/app/assets/2.2.x/raw/protos/FaultInjection.json b/app/docs/2.2.x/protos/FaultInjection.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/FaultInjection.json
rename to app/docs/2.2.x/protos/FaultInjection.json
diff --git a/app/assets/2.2.x/raw/protos/FileLoggingBackendConfig.json b/app/docs/2.2.x/protos/FileLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/FileLoggingBackendConfig.json
rename to app/docs/2.2.x/protos/FileLoggingBackendConfig.json
diff --git a/app/assets/2.2.x/raw/protos/HealthCheck.json b/app/docs/2.2.x/protos/HealthCheck.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/HealthCheck.json
rename to app/docs/2.2.x/protos/HealthCheck.json
diff --git a/app/assets/2.2.x/raw/protos/HttpMethod.json b/app/docs/2.2.x/protos/HttpMethod.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/HttpMethod.json
rename to app/docs/2.2.x/protos/HttpMethod.json
diff --git a/app/assets/2.2.x/raw/protos/KumaDpVersion.json b/app/docs/2.2.x/protos/KumaDpVersion.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/KumaDpVersion.json
rename to app/docs/2.2.x/protos/KumaDpVersion.json
diff --git a/app/assets/2.2.x/raw/protos/KumaResource.json b/app/docs/2.2.x/protos/KumaResource.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/KumaResource.json
rename to app/docs/2.2.x/protos/KumaResource.json
diff --git a/app/assets/2.2.x/raw/protos/Logging.json b/app/docs/2.2.x/protos/Logging.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Logging.json
rename to app/docs/2.2.x/protos/Logging.json
diff --git a/app/assets/2.2.x/raw/protos/LoggingBackend.json b/app/docs/2.2.x/protos/LoggingBackend.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/LoggingBackend.json
rename to app/docs/2.2.x/protos/LoggingBackend.json
diff --git a/app/assets/2.2.x/raw/protos/Mesh.json b/app/docs/2.2.x/protos/Mesh.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Mesh.json
rename to app/docs/2.2.x/protos/Mesh.json
diff --git a/app/assets/2.2.x/raw/protos/MeshGateway.json b/app/docs/2.2.x/protos/MeshGateway.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/MeshGateway.json
rename to app/docs/2.2.x/protos/MeshGateway.json
diff --git a/app/assets/2.2.x/raw/protos/MeshGatewayRoute.json b/app/docs/2.2.x/protos/MeshGatewayRoute.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/MeshGatewayRoute.json
rename to app/docs/2.2.x/protos/MeshGatewayRoute.json
diff --git a/app/assets/2.2.x/raw/protos/MeshInsight.json b/app/docs/2.2.x/protos/MeshInsight.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/MeshInsight.json
rename to app/docs/2.2.x/protos/MeshInsight.json
diff --git a/app/assets/2.2.x/raw/protos/Message.json b/app/docs/2.2.x/protos/Message.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Message.json
rename to app/docs/2.2.x/protos/Message.json
diff --git a/app/assets/2.2.x/raw/protos/Metrics.json b/app/docs/2.2.x/protos/Metrics.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Metrics.json
rename to app/docs/2.2.x/protos/Metrics.json
diff --git a/app/assets/2.2.x/raw/protos/MetricsBackend.json b/app/docs/2.2.x/protos/MetricsBackend.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/MetricsBackend.json
rename to app/docs/2.2.x/protos/MetricsBackend.json
diff --git a/app/assets/2.2.x/raw/protos/Networking.json b/app/docs/2.2.x/protos/Networking.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Networking.json
rename to app/docs/2.2.x/protos/Networking.json
diff --git a/app/assets/2.2.x/raw/protos/PrometheusAggregateMetricsConfig.json b/app/docs/2.2.x/protos/PrometheusAggregateMetricsConfig.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/PrometheusAggregateMetricsConfig.json
rename to app/docs/2.2.x/protos/PrometheusAggregateMetricsConfig.json
diff --git a/app/assets/2.2.x/raw/protos/PrometheusEnvoyConfig.json b/app/docs/2.2.x/protos/PrometheusEnvoyConfig.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/PrometheusEnvoyConfig.json
rename to app/docs/2.2.x/protos/PrometheusEnvoyConfig.json
diff --git a/app/assets/2.2.x/raw/protos/PrometheusMetricsBackendConfig.json b/app/docs/2.2.x/protos/PrometheusMetricsBackendConfig.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/PrometheusMetricsBackendConfig.json
rename to app/docs/2.2.x/protos/PrometheusMetricsBackendConfig.json
diff --git a/app/assets/2.2.x/raw/protos/ProxyTemplate.json b/app/docs/2.2.x/protos/ProxyTemplate.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ProxyTemplate.json
rename to app/docs/2.2.x/protos/ProxyTemplate.json
diff --git a/app/assets/2.2.x/raw/protos/ProxyTemplateProfileSource.json b/app/docs/2.2.x/protos/ProxyTemplateProfileSource.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ProxyTemplateProfileSource.json
rename to app/docs/2.2.x/protos/ProxyTemplateProfileSource.json
diff --git a/app/assets/2.2.x/raw/protos/ProxyTemplateRawResource.json b/app/docs/2.2.x/protos/ProxyTemplateRawResource.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ProxyTemplateRawResource.json
rename to app/docs/2.2.x/protos/ProxyTemplateRawResource.json
diff --git a/app/assets/2.2.x/raw/protos/ProxyTemplateRawSource.json b/app/docs/2.2.x/protos/ProxyTemplateRawSource.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ProxyTemplateRawSource.json
rename to app/docs/2.2.x/protos/ProxyTemplateRawSource.json
diff --git a/app/assets/2.2.x/raw/protos/ProxyTemplateSource.json b/app/docs/2.2.x/protos/ProxyTemplateSource.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ProxyTemplateSource.json
rename to app/docs/2.2.x/protos/ProxyTemplateSource.json
diff --git a/app/assets/2.2.x/raw/protos/RateLimit.json b/app/docs/2.2.x/protos/RateLimit.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/RateLimit.json
rename to app/docs/2.2.x/protos/RateLimit.json
diff --git a/app/assets/2.2.x/raw/protos/Retry.json b/app/docs/2.2.x/protos/Retry.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Retry.json
rename to app/docs/2.2.x/protos/Retry.json
diff --git a/app/assets/2.2.x/raw/protos/Routing.json b/app/docs/2.2.x/protos/Routing.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Routing.json
rename to app/docs/2.2.x/protos/Routing.json
diff --git a/app/assets/2.2.x/raw/protos/Selector.json b/app/docs/2.2.x/protos/Selector.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Selector.json
rename to app/docs/2.2.x/protos/Selector.json
diff --git a/app/assets/2.2.x/raw/protos/ServiceInsight.json b/app/docs/2.2.x/protos/ServiceInsight.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ServiceInsight.json
rename to app/docs/2.2.x/protos/ServiceInsight.json
diff --git a/app/assets/2.2.x/raw/protos/StatsRequest.json b/app/docs/2.2.x/protos/StatsRequest.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/StatsRequest.json
rename to app/docs/2.2.x/protos/StatsRequest.json
diff --git a/app/assets/2.2.x/raw/protos/StatsResponse.json b/app/docs/2.2.x/protos/StatsResponse.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/StatsResponse.json
rename to app/docs/2.2.x/protos/StatsResponse.json
diff --git a/app/assets/2.2.x/raw/protos/TcpLoggingBackendConfig.json b/app/docs/2.2.x/protos/TcpLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/TcpLoggingBackendConfig.json
rename to app/docs/2.2.x/protos/TcpLoggingBackendConfig.json
diff --git a/app/assets/2.2.x/raw/protos/Timeout.json b/app/docs/2.2.x/protos/Timeout.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Timeout.json
rename to app/docs/2.2.x/protos/Timeout.json
diff --git a/app/assets/2.2.x/raw/protos/Tracing.json b/app/docs/2.2.x/protos/Tracing.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Tracing.json
rename to app/docs/2.2.x/protos/Tracing.json
diff --git a/app/assets/2.2.x/raw/protos/TracingBackend.json b/app/docs/2.2.x/protos/TracingBackend.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/TracingBackend.json
rename to app/docs/2.2.x/protos/TracingBackend.json
diff --git a/app/assets/2.2.x/raw/protos/TrafficLog.json b/app/docs/2.2.x/protos/TrafficLog.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/TrafficLog.json
rename to app/docs/2.2.x/protos/TrafficLog.json
diff --git a/app/assets/2.2.x/raw/protos/TrafficPermission.json b/app/docs/2.2.x/protos/TrafficPermission.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/TrafficPermission.json
rename to app/docs/2.2.x/protos/TrafficPermission.json
diff --git a/app/assets/2.2.x/raw/protos/TrafficRoute.json b/app/docs/2.2.x/protos/TrafficRoute.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/TrafficRoute.json
rename to app/docs/2.2.x/protos/TrafficRoute.json
diff --git a/app/assets/2.2.x/raw/protos/TrafficTrace.json b/app/docs/2.2.x/protos/TrafficTrace.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/TrafficTrace.json
rename to app/docs/2.2.x/protos/TrafficTrace.json
diff --git a/app/assets/2.2.x/raw/protos/Version.json b/app/docs/2.2.x/protos/Version.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/Version.json
rename to app/docs/2.2.x/protos/Version.json
diff --git a/app/assets/2.2.x/raw/protos/VirtualOutbound.json b/app/docs/2.2.x/protos/VirtualOutbound.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/VirtualOutbound.json
rename to app/docs/2.2.x/protos/VirtualOutbound.json
diff --git a/app/assets/2.2.x/raw/protos/XDSConfigRequest.json b/app/docs/2.2.x/protos/XDSConfigRequest.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/XDSConfigRequest.json
rename to app/docs/2.2.x/protos/XDSConfigRequest.json
diff --git a/app/assets/2.2.x/raw/protos/XDSConfigResponse.json b/app/docs/2.2.x/protos/XDSConfigResponse.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/XDSConfigResponse.json
rename to app/docs/2.2.x/protos/XDSConfigResponse.json
diff --git a/app/assets/2.2.x/raw/protos/ZipkinTracingBackendConfig.json b/app/docs/2.2.x/protos/ZipkinTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ZipkinTracingBackendConfig.json
rename to app/docs/2.2.x/protos/ZipkinTracingBackendConfig.json
diff --git a/app/assets/2.2.x/raw/protos/ZoneEgress.json b/app/docs/2.2.x/protos/ZoneEgress.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ZoneEgress.json
rename to app/docs/2.2.x/protos/ZoneEgress.json
diff --git a/app/assets/2.2.x/raw/protos/ZoneEgressInsight.json b/app/docs/2.2.x/protos/ZoneEgressInsight.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ZoneEgressInsight.json
rename to app/docs/2.2.x/protos/ZoneEgressInsight.json
diff --git a/app/assets/2.2.x/raw/protos/ZoneEgressOverview.json b/app/docs/2.2.x/protos/ZoneEgressOverview.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ZoneEgressOverview.json
rename to app/docs/2.2.x/protos/ZoneEgressOverview.json
diff --git a/app/assets/2.2.x/raw/protos/ZoneIngress.json b/app/docs/2.2.x/protos/ZoneIngress.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ZoneIngress.json
rename to app/docs/2.2.x/protos/ZoneIngress.json
diff --git a/app/assets/2.2.x/raw/protos/ZoneIngressInsight.json b/app/docs/2.2.x/protos/ZoneIngressInsight.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ZoneIngressInsight.json
rename to app/docs/2.2.x/protos/ZoneIngressInsight.json
diff --git a/app/assets/2.2.x/raw/protos/ZoneIngressOverview.json b/app/docs/2.2.x/protos/ZoneIngressOverview.json
similarity index 100%
rename from app/assets/2.2.x/raw/protos/ZoneIngressOverview.json
rename to app/docs/2.2.x/protos/ZoneIngressOverview.json
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_circuitbreakers.yaml b/app/docs/2.3.x/crds/kuma.io_circuitbreakers.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_circuitbreakers.yaml
rename to app/docs/2.3.x/crds/kuma.io_circuitbreakers.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_containerpatches.yaml b/app/docs/2.3.x/crds/kuma.io_containerpatches.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_containerpatches.yaml
rename to app/docs/2.3.x/crds/kuma.io_containerpatches.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_dataplaneinsights.yaml b/app/docs/2.3.x/crds/kuma.io_dataplaneinsights.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_dataplaneinsights.yaml
rename to app/docs/2.3.x/crds/kuma.io_dataplaneinsights.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_dataplanes.yaml b/app/docs/2.3.x/crds/kuma.io_dataplanes.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_dataplanes.yaml
rename to app/docs/2.3.x/crds/kuma.io_dataplanes.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_externalservices.yaml b/app/docs/2.3.x/crds/kuma.io_externalservices.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_externalservices.yaml
rename to app/docs/2.3.x/crds/kuma.io_externalservices.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_faultinjections.yaml b/app/docs/2.3.x/crds/kuma.io_faultinjections.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_faultinjections.yaml
rename to app/docs/2.3.x/crds/kuma.io_faultinjections.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_healthchecks.yaml b/app/docs/2.3.x/crds/kuma.io_healthchecks.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_healthchecks.yaml
rename to app/docs/2.3.x/crds/kuma.io_healthchecks.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshaccesslogs.yaml b/app/docs/2.3.x/crds/kuma.io_meshaccesslogs.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshaccesslogs.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshaccesslogs.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshcircuitbreakers.yaml b/app/docs/2.3.x/crds/kuma.io_meshcircuitbreakers.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshcircuitbreakers.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshcircuitbreakers.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshes.yaml b/app/docs/2.3.x/crds/kuma.io_meshes.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshes.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshes.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshfaultinjections.yaml b/app/docs/2.3.x/crds/kuma.io_meshfaultinjections.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshfaultinjections.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshfaultinjections.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshgatewayconfigs.yaml b/app/docs/2.3.x/crds/kuma.io_meshgatewayconfigs.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshgatewayconfigs.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshgatewayconfigs.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshgatewayinstances.yaml b/app/docs/2.3.x/crds/kuma.io_meshgatewayinstances.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshgatewayinstances.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshgatewayinstances.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshgatewayroutes.yaml b/app/docs/2.3.x/crds/kuma.io_meshgatewayroutes.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshgatewayroutes.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshgatewayroutes.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshgateways.yaml b/app/docs/2.3.x/crds/kuma.io_meshgateways.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshgateways.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshgateways.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshhealthchecks.yaml b/app/docs/2.3.x/crds/kuma.io_meshhealthchecks.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshhealthchecks.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshhealthchecks.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshhttproutes.yaml b/app/docs/2.3.x/crds/kuma.io_meshhttproutes.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshhttproutes.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshhttproutes.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshinsights.yaml b/app/docs/2.3.x/crds/kuma.io_meshinsights.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshinsights.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshinsights.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshloadbalancingstrategies.yaml b/app/docs/2.3.x/crds/kuma.io_meshloadbalancingstrategies.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshloadbalancingstrategies.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshloadbalancingstrategies.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshproxypatches.yaml b/app/docs/2.3.x/crds/kuma.io_meshproxypatches.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshproxypatches.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshproxypatches.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshratelimits.yaml b/app/docs/2.3.x/crds/kuma.io_meshratelimits.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshratelimits.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshratelimits.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshretries.yaml b/app/docs/2.3.x/crds/kuma.io_meshretries.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshretries.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshretries.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshtcproutes.yaml b/app/docs/2.3.x/crds/kuma.io_meshtcproutes.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshtcproutes.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshtcproutes.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshtimeouts.yaml b/app/docs/2.3.x/crds/kuma.io_meshtimeouts.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshtimeouts.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshtimeouts.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshtraces.yaml b/app/docs/2.3.x/crds/kuma.io_meshtraces.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshtraces.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshtraces.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_meshtrafficpermissions.yaml b/app/docs/2.3.x/crds/kuma.io_meshtrafficpermissions.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_meshtrafficpermissions.yaml
rename to app/docs/2.3.x/crds/kuma.io_meshtrafficpermissions.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_proxytemplates.yaml b/app/docs/2.3.x/crds/kuma.io_proxytemplates.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_proxytemplates.yaml
rename to app/docs/2.3.x/crds/kuma.io_proxytemplates.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_ratelimits.yaml b/app/docs/2.3.x/crds/kuma.io_ratelimits.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_ratelimits.yaml
rename to app/docs/2.3.x/crds/kuma.io_ratelimits.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_retries.yaml b/app/docs/2.3.x/crds/kuma.io_retries.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_retries.yaml
rename to app/docs/2.3.x/crds/kuma.io_retries.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_serviceinsights.yaml b/app/docs/2.3.x/crds/kuma.io_serviceinsights.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_serviceinsights.yaml
rename to app/docs/2.3.x/crds/kuma.io_serviceinsights.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_timeouts.yaml b/app/docs/2.3.x/crds/kuma.io_timeouts.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_timeouts.yaml
rename to app/docs/2.3.x/crds/kuma.io_timeouts.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_trafficlogs.yaml b/app/docs/2.3.x/crds/kuma.io_trafficlogs.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_trafficlogs.yaml
rename to app/docs/2.3.x/crds/kuma.io_trafficlogs.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_trafficpermissions.yaml b/app/docs/2.3.x/crds/kuma.io_trafficpermissions.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_trafficpermissions.yaml
rename to app/docs/2.3.x/crds/kuma.io_trafficpermissions.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_trafficroutes.yaml b/app/docs/2.3.x/crds/kuma.io_trafficroutes.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_trafficroutes.yaml
rename to app/docs/2.3.x/crds/kuma.io_trafficroutes.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_traffictraces.yaml b/app/docs/2.3.x/crds/kuma.io_traffictraces.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_traffictraces.yaml
rename to app/docs/2.3.x/crds/kuma.io_traffictraces.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_virtualoutbounds.yaml b/app/docs/2.3.x/crds/kuma.io_virtualoutbounds.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_virtualoutbounds.yaml
rename to app/docs/2.3.x/crds/kuma.io_virtualoutbounds.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_zoneegresses.yaml b/app/docs/2.3.x/crds/kuma.io_zoneegresses.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_zoneegresses.yaml
rename to app/docs/2.3.x/crds/kuma.io_zoneegresses.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_zoneegressinsights.yaml b/app/docs/2.3.x/crds/kuma.io_zoneegressinsights.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_zoneegressinsights.yaml
rename to app/docs/2.3.x/crds/kuma.io_zoneegressinsights.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_zoneingresses.yaml b/app/docs/2.3.x/crds/kuma.io_zoneingresses.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_zoneingresses.yaml
rename to app/docs/2.3.x/crds/kuma.io_zoneingresses.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_zoneingressinsights.yaml b/app/docs/2.3.x/crds/kuma.io_zoneingressinsights.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_zoneingressinsights.yaml
rename to app/docs/2.3.x/crds/kuma.io_zoneingressinsights.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_zoneinsights.yaml b/app/docs/2.3.x/crds/kuma.io_zoneinsights.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_zoneinsights.yaml
rename to app/docs/2.3.x/crds/kuma.io_zoneinsights.yaml
diff --git a/app/assets/2.3.x/raw/crds/kuma.io_zones.yaml b/app/docs/2.3.x/crds/kuma.io_zones.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/crds/kuma.io_zones.yaml
rename to app/docs/2.3.x/crds/kuma.io_zones.yaml
diff --git a/app/assets/2.3.x/raw/generated/DoNothingPolicy.json b/app/docs/2.3.x/generated/DoNothingPolicy.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/DoNothingPolicy.json
rename to app/docs/2.3.x/generated/DoNothingPolicy.json
diff --git a/app/assets/2.3.x/raw/generated/MeshAccessLog.json b/app/docs/2.3.x/generated/MeshAccessLog.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshAccessLog.json
rename to app/docs/2.3.x/generated/MeshAccessLog.json
diff --git a/app/assets/2.3.x/raw/generated/MeshCircuitBreaker.json b/app/docs/2.3.x/generated/MeshCircuitBreaker.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshCircuitBreaker.json
rename to app/docs/2.3.x/generated/MeshCircuitBreaker.json
diff --git a/app/assets/2.3.x/raw/generated/MeshFaultInjection.json b/app/docs/2.3.x/generated/MeshFaultInjection.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshFaultInjection.json
rename to app/docs/2.3.x/generated/MeshFaultInjection.json
diff --git a/app/assets/2.3.x/raw/generated/MeshGatewayInstance.json b/app/docs/2.3.x/generated/MeshGatewayInstance.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshGatewayInstance.json
rename to app/docs/2.3.x/generated/MeshGatewayInstance.json
diff --git a/app/assets/2.3.x/raw/generated/MeshHTTPRoute.json b/app/docs/2.3.x/generated/MeshHTTPRoute.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshHTTPRoute.json
rename to app/docs/2.3.x/generated/MeshHTTPRoute.json
diff --git a/app/assets/2.3.x/raw/generated/MeshHealthCheck.json b/app/docs/2.3.x/generated/MeshHealthCheck.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshHealthCheck.json
rename to app/docs/2.3.x/generated/MeshHealthCheck.json
diff --git a/app/assets/2.3.x/raw/generated/MeshLoadBalancingStrategy.json b/app/docs/2.3.x/generated/MeshLoadBalancingStrategy.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshLoadBalancingStrategy.json
rename to app/docs/2.3.x/generated/MeshLoadBalancingStrategy.json
diff --git a/app/assets/2.3.x/raw/generated/MeshProxyPatch.json b/app/docs/2.3.x/generated/MeshProxyPatch.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshProxyPatch.json
rename to app/docs/2.3.x/generated/MeshProxyPatch.json
diff --git a/app/assets/2.3.x/raw/generated/MeshRateLimit.json b/app/docs/2.3.x/generated/MeshRateLimit.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshRateLimit.json
rename to app/docs/2.3.x/generated/MeshRateLimit.json
diff --git a/app/assets/2.3.x/raw/generated/MeshRetry.json b/app/docs/2.3.x/generated/MeshRetry.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshRetry.json
rename to app/docs/2.3.x/generated/MeshRetry.json
diff --git a/app/assets/2.3.x/raw/generated/MeshTCPRoute.json b/app/docs/2.3.x/generated/MeshTCPRoute.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshTCPRoute.json
rename to app/docs/2.3.x/generated/MeshTCPRoute.json
diff --git a/app/assets/2.3.x/raw/generated/MeshTimeout.json b/app/docs/2.3.x/generated/MeshTimeout.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshTimeout.json
rename to app/docs/2.3.x/generated/MeshTimeout.json
diff --git a/app/assets/2.3.x/raw/generated/MeshTrace.json b/app/docs/2.3.x/generated/MeshTrace.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshTrace.json
rename to app/docs/2.3.x/generated/MeshTrace.json
diff --git a/app/assets/2.3.x/raw/generated/MeshTrafficPermission.json b/app/docs/2.3.x/generated/MeshTrafficPermission.json
similarity index 100%
rename from app/assets/2.3.x/raw/generated/MeshTrafficPermission.json
rename to app/docs/2.3.x/generated/MeshTrafficPermission.json
diff --git a/app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp.md b/app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp.md
rename to app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate.md b/app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp_migrate.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate.md
rename to app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp_migrate.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate_up.md b/app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
rename to app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp_run.md b/app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp_run.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp_run.md
rename to app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp_run.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp_version.md b/app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp_version.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kuma-cp/kuma-cp_version.md
rename to app/docs/2.3.x/generated/cmd/kuma-cp/kuma-cp_version.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kuma-dp/kuma-dp.md b/app/docs/2.3.x/generated/cmd/kuma-dp/kuma-dp.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kuma-dp/kuma-dp.md
rename to app/docs/2.3.x/generated/cmd/kuma-dp/kuma-dp.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kuma-dp/kuma-dp_run.md b/app/docs/2.3.x/generated/cmd/kuma-dp/kuma-dp_run.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kuma-dp/kuma-dp_run.md
rename to app/docs/2.3.x/generated/cmd/kuma-dp/kuma-dp_run.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kuma-dp/kuma-dp_version.md b/app/docs/2.3.x/generated/cmd/kuma-dp/kuma-dp_version.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kuma-dp/kuma-dp_version.md
rename to app/docs/2.3.x/generated/cmd/kuma-dp/kuma-dp_version.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_apply.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_apply.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_apply.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_apply.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_completion.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_completion.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_completion.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_completion.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_completion_bash.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_completion_bash.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_completion_bash.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_completion_bash.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_completion_fish.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_completion_fish.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_completion_fish.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_completion_fish.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_completion_zsh.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_completion_zsh.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_completion_zsh.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_completion_zsh.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_config.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_config.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_add.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes_add.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_add.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes_add.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_list.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes_list.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_list.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes_list.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_remove.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_switch.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_view.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_view.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_config_view.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_config_view.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_delete.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_delete.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_delete.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_delete.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_dataplane-token.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_public-key.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_public-key.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_public-key.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_public-key.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_signing-key.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_signing-key.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_signing-key.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_signing-key.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_tls-certificate.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_user-token.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_user-token.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_user-token.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_user-token.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_zone-token.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_zone-token.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_generate_zone-token.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_generate_zone-token.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breaker.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breakers.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_dataplane.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_dataplane.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_dataplane.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_dataplane.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_dataplanes.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_dataplanes.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_dataplanes.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_dataplanes.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_external-service.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_external-service.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_external-service.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_external-service.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_external-services.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_external-services.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_external-services.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_external-services.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_fault-injection.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_fault-injection.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_fault-injection.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_fault-injection.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_fault-injections.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_fault-injections.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_fault-injections.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_fault-injections.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_global-secret.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_global-secret.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_global-secret.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_global-secret.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_global-secrets.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_global-secrets.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_global-secrets.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_global-secrets.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_healthcheck.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_healthcheck.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_healthcheck.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_healthcheck.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_healthchecks.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_healthchecks.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_healthchecks.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_healthchecks.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_mesh.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_mesh.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_mesh.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_mesh.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslog.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshes.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshes.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshes.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshes.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshgateway.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshgateway.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshgateway.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshgateway.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshgateways.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshgateways.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshgateways.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshgateways.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproute.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshhttproute.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproute.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshhttproute.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproutes.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatch.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatches.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimit.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshratelimit.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimit.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshratelimit.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimits.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshratelimits.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshratelimits.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshratelimits.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshretries.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshretries.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshretries.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshretries.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshretry.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshretry.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshretry.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshretry.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtcproute.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtcproute.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtcproute.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtcproute.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtcproutes.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtcproutes.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtcproutes.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtcproutes.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeout.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtimeout.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeout.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtimeout.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeouts.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtrace.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtrace.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtrace.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtrace.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtraces.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtraces.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtraces.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtraces.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplate.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_proxytemplate.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplate.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_proxytemplate.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplates.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_proxytemplates.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_proxytemplates.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_proxytemplates.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_rate-limit.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_rate-limit.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_rate-limit.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_rate-limit.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_rate-limits.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_rate-limits.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_rate-limits.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_rate-limits.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_retries.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_retries.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_retries.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_retries.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_retry.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_retry.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_retry.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_retry.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_secret.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_secret.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_secret.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_secret.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_secrets.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_secrets.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_secrets.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_secrets.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_timeout.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_timeout.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_timeout.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_timeout.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_timeouts.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_timeouts.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_timeouts.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_timeouts.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-log.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-log.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-log.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-log.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-logs.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-logs.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-logs.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-logs.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permission.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-permission.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permission.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-permission.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permissions.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-route.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-route.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-route.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-route.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-routes.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-routes.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-routes.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-routes.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-trace.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-trace.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-trace.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-trace.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-traces.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-traces.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_traffic-traces.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_traffic-traces.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbound.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingress.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zone-ingress.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingress.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zone-ingress.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingresses.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zone.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zone.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zone.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zone.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zoneegress.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zoneegress.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zoneegress.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zoneegress.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zoneegresses.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zoneegresses.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zoneegresses.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zoneegresses.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zones.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zones.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_get_zones.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_get_zones.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplane.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_dataplane.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplane.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_dataplane.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplanes.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_fault-injection.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_healthcheck.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshes.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshes.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshes.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshes.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshgateway.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshretry.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshretry.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshretry.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshretry.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtcproute.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshtcproute.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtcproute.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshtcproute.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrace.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_rate-limit.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_retry.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_retry.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_retry.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_retry.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_services.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_services.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_services.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_services.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_timeout.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_timeout.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_timeout.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_timeout.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-log.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-route.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegress.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneingress.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zones.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zones.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_inspect_zones.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_inspect_zones.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_control-plane.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_control-plane.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_control-plane.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_control-plane.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_crds.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_crds.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_crds.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_crds.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_demo.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_demo.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_demo.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_demo.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_gateway.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_gateway.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_gateway.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_gateway.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_gateway_kong.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_gateway_kong.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_gateway_kong.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_logging.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_logging.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_logging.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_logging.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_metrics.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_metrics.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_metrics.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_metrics.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_observability.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_observability.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_observability.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_observability.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_tracing.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_tracing.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_tracing.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_tracing.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_transparent-proxy.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_uninstall.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_uninstall.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_uninstall.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_uninstall.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_uninstall_ebpf.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
diff --git a/app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_version.md b/app/docs/2.3.x/generated/cmd/kumactl/kumactl_version.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/cmd/kumactl/kumactl_version.md
rename to app/docs/2.3.x/generated/cmd/kumactl/kumactl_version.md
diff --git a/app/assets/2.3.x/raw/generated/kuma-cp.md b/app/docs/2.3.x/generated/kuma-cp.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/kuma-cp.md
rename to app/docs/2.3.x/generated/kuma-cp.md
diff --git a/app/assets/2.3.x/raw/generated/resources/other_mesh.md b/app/docs/2.3.x/generated/resources/other_mesh.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/other_mesh.md
rename to app/docs/2.3.x/generated/resources/other_mesh.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_circuit-breaker.md b/app/docs/2.3.x/generated/resources/policy_circuit-breaker.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_circuit-breaker.md
rename to app/docs/2.3.x/generated/resources/policy_circuit-breaker.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_external-service.md b/app/docs/2.3.x/generated/resources/policy_external-service.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_external-service.md
rename to app/docs/2.3.x/generated/resources/policy_external-service.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_fault-injection.md b/app/docs/2.3.x/generated/resources/policy_fault-injection.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_fault-injection.md
rename to app/docs/2.3.x/generated/resources/policy_fault-injection.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_health-check.md b/app/docs/2.3.x/generated/resources/policy_health-check.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_health-check.md
rename to app/docs/2.3.x/generated/resources/policy_health-check.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_meshgateway.md b/app/docs/2.3.x/generated/resources/policy_meshgateway.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_meshgateway.md
rename to app/docs/2.3.x/generated/resources/policy_meshgateway.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_meshgatewayroute.md b/app/docs/2.3.x/generated/resources/policy_meshgatewayroute.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_meshgatewayroute.md
rename to app/docs/2.3.x/generated/resources/policy_meshgatewayroute.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_proxy-template.md b/app/docs/2.3.x/generated/resources/policy_proxy-template.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_proxy-template.md
rename to app/docs/2.3.x/generated/resources/policy_proxy-template.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_rate-limit.md b/app/docs/2.3.x/generated/resources/policy_rate-limit.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_rate-limit.md
rename to app/docs/2.3.x/generated/resources/policy_rate-limit.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_retry.md b/app/docs/2.3.x/generated/resources/policy_retry.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_retry.md
rename to app/docs/2.3.x/generated/resources/policy_retry.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_timeout.md b/app/docs/2.3.x/generated/resources/policy_timeout.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_timeout.md
rename to app/docs/2.3.x/generated/resources/policy_timeout.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_traffic-log.md b/app/docs/2.3.x/generated/resources/policy_traffic-log.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_traffic-log.md
rename to app/docs/2.3.x/generated/resources/policy_traffic-log.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_traffic-permissions.md b/app/docs/2.3.x/generated/resources/policy_traffic-permissions.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_traffic-permissions.md
rename to app/docs/2.3.x/generated/resources/policy_traffic-permissions.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_traffic-route.md b/app/docs/2.3.x/generated/resources/policy_traffic-route.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_traffic-route.md
rename to app/docs/2.3.x/generated/resources/policy_traffic-route.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_traffic-trace.md b/app/docs/2.3.x/generated/resources/policy_traffic-trace.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_traffic-trace.md
rename to app/docs/2.3.x/generated/resources/policy_traffic-trace.md
diff --git a/app/assets/2.3.x/raw/generated/resources/policy_virtual-outbound.md b/app/docs/2.3.x/generated/resources/policy_virtual-outbound.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/policy_virtual-outbound.md
rename to app/docs/2.3.x/generated/resources/policy_virtual-outbound.md
diff --git a/app/assets/2.3.x/raw/generated/resources/proxy_dataplane.md b/app/docs/2.3.x/generated/resources/proxy_dataplane.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/proxy_dataplane.md
rename to app/docs/2.3.x/generated/resources/proxy_dataplane.md
diff --git a/app/assets/2.3.x/raw/generated/resources/proxy_zoneegress.md b/app/docs/2.3.x/generated/resources/proxy_zoneegress.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/proxy_zoneegress.md
rename to app/docs/2.3.x/generated/resources/proxy_zoneegress.md
diff --git a/app/assets/2.3.x/raw/generated/resources/proxy_zoneingress.md b/app/docs/2.3.x/generated/resources/proxy_zoneingress.md
similarity index 100%
rename from app/assets/2.3.x/raw/generated/resources/proxy_zoneingress.md
rename to app/docs/2.3.x/generated/resources/proxy_zoneingress.md
diff --git a/app/assets/2.3.x/raw/helm-values.yaml b/app/docs/2.3.x/helm-values.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/helm-values.yaml
rename to app/docs/2.3.x/helm-values.yaml
diff --git a/app/assets/2.3.x/raw/kuma-cp.yaml b/app/docs/2.3.x/kuma-cp.yaml
similarity index 100%
rename from app/assets/2.3.x/raw/kuma-cp.yaml
rename to app/docs/2.3.x/kuma-cp.yaml
diff --git a/app/assets/2.3.x/raw/protos/CertificateAuthorityBackend.json b/app/docs/2.3.x/protos/CertificateAuthorityBackend.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/CertificateAuthorityBackend.json
rename to app/docs/2.3.x/protos/CertificateAuthorityBackend.json
diff --git a/app/assets/2.3.x/raw/protos/CircuitBreaker.json b/app/docs/2.3.x/protos/CircuitBreaker.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/CircuitBreaker.json
rename to app/docs/2.3.x/protos/CircuitBreaker.json
diff --git a/app/assets/2.3.x/raw/protos/ClustersRequest.json b/app/docs/2.3.x/protos/ClustersRequest.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ClustersRequest.json
rename to app/docs/2.3.x/protos/ClustersRequest.json
diff --git a/app/assets/2.3.x/raw/protos/ClustersResponse.json b/app/docs/2.3.x/protos/ClustersResponse.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ClustersResponse.json
rename to app/docs/2.3.x/protos/ClustersResponse.json
diff --git a/app/assets/2.3.x/raw/protos/DatadogTracingBackendConfig.json b/app/docs/2.3.x/protos/DatadogTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/DatadogTracingBackendConfig.json
rename to app/docs/2.3.x/protos/DatadogTracingBackendConfig.json
diff --git a/app/assets/2.3.x/raw/protos/Dataplane.json b/app/docs/2.3.x/protos/Dataplane.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Dataplane.json
rename to app/docs/2.3.x/protos/Dataplane.json
diff --git a/app/assets/2.3.x/raw/protos/DataplaneInsight.json b/app/docs/2.3.x/protos/DataplaneInsight.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/DataplaneInsight.json
rename to app/docs/2.3.x/protos/DataplaneInsight.json
diff --git a/app/assets/2.3.x/raw/protos/DataplaneOverview.json b/app/docs/2.3.x/protos/DataplaneOverview.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/DataplaneOverview.json
rename to app/docs/2.3.x/protos/DataplaneOverview.json
diff --git a/app/assets/2.3.x/raw/protos/DiscoveryServiceStats.json b/app/docs/2.3.x/protos/DiscoveryServiceStats.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/DiscoveryServiceStats.json
rename to app/docs/2.3.x/protos/DiscoveryServiceStats.json
diff --git a/app/assets/2.3.x/raw/protos/DiscoverySubscription.json b/app/docs/2.3.x/protos/DiscoverySubscription.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/DiscoverySubscription.json
rename to app/docs/2.3.x/protos/DiscoverySubscription.json
diff --git a/app/assets/2.3.x/raw/protos/DiscoverySubscriptionStatus.json b/app/docs/2.3.x/protos/DiscoverySubscriptionStatus.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/DiscoverySubscriptionStatus.json
rename to app/docs/2.3.x/protos/DiscoverySubscriptionStatus.json
diff --git a/app/assets/2.3.x/raw/protos/EnvoyAdmin.json b/app/docs/2.3.x/protos/EnvoyAdmin.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/EnvoyAdmin.json
rename to app/docs/2.3.x/protos/EnvoyAdmin.json
diff --git a/app/assets/2.3.x/raw/protos/EnvoyVersion.json b/app/docs/2.3.x/protos/EnvoyVersion.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/EnvoyVersion.json
rename to app/docs/2.3.x/protos/EnvoyVersion.json
diff --git a/app/assets/2.3.x/raw/protos/ExternalService.json b/app/docs/2.3.x/protos/ExternalService.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ExternalService.json
rename to app/docs/2.3.x/protos/ExternalService.json
diff --git a/app/assets/2.3.x/raw/protos/FaultInjection.json b/app/docs/2.3.x/protos/FaultInjection.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/FaultInjection.json
rename to app/docs/2.3.x/protos/FaultInjection.json
diff --git a/app/assets/2.3.x/raw/protos/FileLoggingBackendConfig.json b/app/docs/2.3.x/protos/FileLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/FileLoggingBackendConfig.json
rename to app/docs/2.3.x/protos/FileLoggingBackendConfig.json
diff --git a/app/assets/2.3.x/raw/protos/HealthCheck.json b/app/docs/2.3.x/protos/HealthCheck.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/HealthCheck.json
rename to app/docs/2.3.x/protos/HealthCheck.json
diff --git a/app/assets/2.3.x/raw/protos/HttpMethod.json b/app/docs/2.3.x/protos/HttpMethod.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/HttpMethod.json
rename to app/docs/2.3.x/protos/HttpMethod.json
diff --git a/app/assets/2.3.x/raw/protos/KumaDpVersion.json b/app/docs/2.3.x/protos/KumaDpVersion.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/KumaDpVersion.json
rename to app/docs/2.3.x/protos/KumaDpVersion.json
diff --git a/app/assets/2.3.x/raw/protos/KumaResource.json b/app/docs/2.3.x/protos/KumaResource.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/KumaResource.json
rename to app/docs/2.3.x/protos/KumaResource.json
diff --git a/app/assets/2.3.x/raw/protos/Logging.json b/app/docs/2.3.x/protos/Logging.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Logging.json
rename to app/docs/2.3.x/protos/Logging.json
diff --git a/app/assets/2.3.x/raw/protos/LoggingBackend.json b/app/docs/2.3.x/protos/LoggingBackend.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/LoggingBackend.json
rename to app/docs/2.3.x/protos/LoggingBackend.json
diff --git a/app/assets/2.3.x/raw/protos/Mesh.json b/app/docs/2.3.x/protos/Mesh.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Mesh.json
rename to app/docs/2.3.x/protos/Mesh.json
diff --git a/app/assets/2.3.x/raw/protos/MeshGateway.json b/app/docs/2.3.x/protos/MeshGateway.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/MeshGateway.json
rename to app/docs/2.3.x/protos/MeshGateway.json
diff --git a/app/assets/2.3.x/raw/protos/MeshGatewayRoute.json b/app/docs/2.3.x/protos/MeshGatewayRoute.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/MeshGatewayRoute.json
rename to app/docs/2.3.x/protos/MeshGatewayRoute.json
diff --git a/app/assets/2.3.x/raw/protos/MeshInsight.json b/app/docs/2.3.x/protos/MeshInsight.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/MeshInsight.json
rename to app/docs/2.3.x/protos/MeshInsight.json
diff --git a/app/assets/2.3.x/raw/protos/Message.json b/app/docs/2.3.x/protos/Message.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Message.json
rename to app/docs/2.3.x/protos/Message.json
diff --git a/app/assets/2.3.x/raw/protos/Metrics.json b/app/docs/2.3.x/protos/Metrics.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Metrics.json
rename to app/docs/2.3.x/protos/Metrics.json
diff --git a/app/assets/2.3.x/raw/protos/MetricsBackend.json b/app/docs/2.3.x/protos/MetricsBackend.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/MetricsBackend.json
rename to app/docs/2.3.x/protos/MetricsBackend.json
diff --git a/app/assets/2.3.x/raw/protos/Networking.json b/app/docs/2.3.x/protos/Networking.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Networking.json
rename to app/docs/2.3.x/protos/Networking.json
diff --git a/app/assets/2.3.x/raw/protos/PrometheusAggregateMetricsConfig.json b/app/docs/2.3.x/protos/PrometheusAggregateMetricsConfig.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/PrometheusAggregateMetricsConfig.json
rename to app/docs/2.3.x/protos/PrometheusAggregateMetricsConfig.json
diff --git a/app/assets/2.3.x/raw/protos/PrometheusEnvoyConfig.json b/app/docs/2.3.x/protos/PrometheusEnvoyConfig.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/PrometheusEnvoyConfig.json
rename to app/docs/2.3.x/protos/PrometheusEnvoyConfig.json
diff --git a/app/assets/2.3.x/raw/protos/PrometheusMetricsBackendConfig.json b/app/docs/2.3.x/protos/PrometheusMetricsBackendConfig.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/PrometheusMetricsBackendConfig.json
rename to app/docs/2.3.x/protos/PrometheusMetricsBackendConfig.json
diff --git a/app/assets/2.3.x/raw/protos/ProxyTemplate.json b/app/docs/2.3.x/protos/ProxyTemplate.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ProxyTemplate.json
rename to app/docs/2.3.x/protos/ProxyTemplate.json
diff --git a/app/assets/2.3.x/raw/protos/ProxyTemplateProfileSource.json b/app/docs/2.3.x/protos/ProxyTemplateProfileSource.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ProxyTemplateProfileSource.json
rename to app/docs/2.3.x/protos/ProxyTemplateProfileSource.json
diff --git a/app/assets/2.3.x/raw/protos/ProxyTemplateRawResource.json b/app/docs/2.3.x/protos/ProxyTemplateRawResource.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ProxyTemplateRawResource.json
rename to app/docs/2.3.x/protos/ProxyTemplateRawResource.json
diff --git a/app/assets/2.3.x/raw/protos/ProxyTemplateRawSource.json b/app/docs/2.3.x/protos/ProxyTemplateRawSource.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ProxyTemplateRawSource.json
rename to app/docs/2.3.x/protos/ProxyTemplateRawSource.json
diff --git a/app/assets/2.3.x/raw/protos/ProxyTemplateSource.json b/app/docs/2.3.x/protos/ProxyTemplateSource.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ProxyTemplateSource.json
rename to app/docs/2.3.x/protos/ProxyTemplateSource.json
diff --git a/app/assets/2.3.x/raw/protos/RateLimit.json b/app/docs/2.3.x/protos/RateLimit.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/RateLimit.json
rename to app/docs/2.3.x/protos/RateLimit.json
diff --git a/app/assets/2.3.x/raw/protos/Retry.json b/app/docs/2.3.x/protos/Retry.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Retry.json
rename to app/docs/2.3.x/protos/Retry.json
diff --git a/app/assets/2.3.x/raw/protos/Routing.json b/app/docs/2.3.x/protos/Routing.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Routing.json
rename to app/docs/2.3.x/protos/Routing.json
diff --git a/app/assets/2.3.x/raw/protos/Selector.json b/app/docs/2.3.x/protos/Selector.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Selector.json
rename to app/docs/2.3.x/protos/Selector.json
diff --git a/app/assets/2.3.x/raw/protos/ServiceInsight.json b/app/docs/2.3.x/protos/ServiceInsight.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ServiceInsight.json
rename to app/docs/2.3.x/protos/ServiceInsight.json
diff --git a/app/assets/2.3.x/raw/protos/StatsRequest.json b/app/docs/2.3.x/protos/StatsRequest.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/StatsRequest.json
rename to app/docs/2.3.x/protos/StatsRequest.json
diff --git a/app/assets/2.3.x/raw/protos/StatsResponse.json b/app/docs/2.3.x/protos/StatsResponse.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/StatsResponse.json
rename to app/docs/2.3.x/protos/StatsResponse.json
diff --git a/app/assets/2.3.x/raw/protos/TcpLoggingBackendConfig.json b/app/docs/2.3.x/protos/TcpLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/TcpLoggingBackendConfig.json
rename to app/docs/2.3.x/protos/TcpLoggingBackendConfig.json
diff --git a/app/assets/2.3.x/raw/protos/Timeout.json b/app/docs/2.3.x/protos/Timeout.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Timeout.json
rename to app/docs/2.3.x/protos/Timeout.json
diff --git a/app/assets/2.3.x/raw/protos/Tracing.json b/app/docs/2.3.x/protos/Tracing.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Tracing.json
rename to app/docs/2.3.x/protos/Tracing.json
diff --git a/app/assets/2.3.x/raw/protos/TracingBackend.json b/app/docs/2.3.x/protos/TracingBackend.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/TracingBackend.json
rename to app/docs/2.3.x/protos/TracingBackend.json
diff --git a/app/assets/2.3.x/raw/protos/TrafficLog.json b/app/docs/2.3.x/protos/TrafficLog.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/TrafficLog.json
rename to app/docs/2.3.x/protos/TrafficLog.json
diff --git a/app/assets/2.3.x/raw/protos/TrafficPermission.json b/app/docs/2.3.x/protos/TrafficPermission.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/TrafficPermission.json
rename to app/docs/2.3.x/protos/TrafficPermission.json
diff --git a/app/assets/2.3.x/raw/protos/TrafficRoute.json b/app/docs/2.3.x/protos/TrafficRoute.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/TrafficRoute.json
rename to app/docs/2.3.x/protos/TrafficRoute.json
diff --git a/app/assets/2.3.x/raw/protos/TrafficTrace.json b/app/docs/2.3.x/protos/TrafficTrace.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/TrafficTrace.json
rename to app/docs/2.3.x/protos/TrafficTrace.json
diff --git a/app/assets/2.3.x/raw/protos/Version.json b/app/docs/2.3.x/protos/Version.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/Version.json
rename to app/docs/2.3.x/protos/Version.json
diff --git a/app/assets/2.3.x/raw/protos/VirtualOutbound.json b/app/docs/2.3.x/protos/VirtualOutbound.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/VirtualOutbound.json
rename to app/docs/2.3.x/protos/VirtualOutbound.json
diff --git a/app/assets/2.3.x/raw/protos/XDSConfigRequest.json b/app/docs/2.3.x/protos/XDSConfigRequest.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/XDSConfigRequest.json
rename to app/docs/2.3.x/protos/XDSConfigRequest.json
diff --git a/app/assets/2.3.x/raw/protos/XDSConfigResponse.json b/app/docs/2.3.x/protos/XDSConfigResponse.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/XDSConfigResponse.json
rename to app/docs/2.3.x/protos/XDSConfigResponse.json
diff --git a/app/assets/2.3.x/raw/protos/ZipkinTracingBackendConfig.json b/app/docs/2.3.x/protos/ZipkinTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ZipkinTracingBackendConfig.json
rename to app/docs/2.3.x/protos/ZipkinTracingBackendConfig.json
diff --git a/app/assets/2.3.x/raw/protos/ZoneEgress.json b/app/docs/2.3.x/protos/ZoneEgress.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ZoneEgress.json
rename to app/docs/2.3.x/protos/ZoneEgress.json
diff --git a/app/assets/2.3.x/raw/protos/ZoneEgressInsight.json b/app/docs/2.3.x/protos/ZoneEgressInsight.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ZoneEgressInsight.json
rename to app/docs/2.3.x/protos/ZoneEgressInsight.json
diff --git a/app/assets/2.3.x/raw/protos/ZoneEgressOverview.json b/app/docs/2.3.x/protos/ZoneEgressOverview.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ZoneEgressOverview.json
rename to app/docs/2.3.x/protos/ZoneEgressOverview.json
diff --git a/app/assets/2.3.x/raw/protos/ZoneIngress.json b/app/docs/2.3.x/protos/ZoneIngress.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ZoneIngress.json
rename to app/docs/2.3.x/protos/ZoneIngress.json
diff --git a/app/assets/2.3.x/raw/protos/ZoneIngressInsight.json b/app/docs/2.3.x/protos/ZoneIngressInsight.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ZoneIngressInsight.json
rename to app/docs/2.3.x/protos/ZoneIngressInsight.json
diff --git a/app/assets/2.3.x/raw/protos/ZoneIngressOverview.json b/app/docs/2.3.x/protos/ZoneIngressOverview.json
similarity index 100%
rename from app/assets/2.3.x/raw/protos/ZoneIngressOverview.json
rename to app/docs/2.3.x/protos/ZoneIngressOverview.json
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_circuitbreakers.yaml b/app/docs/2.4.x/crds/kuma.io_circuitbreakers.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_circuitbreakers.yaml
rename to app/docs/2.4.x/crds/kuma.io_circuitbreakers.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_containerpatches.yaml b/app/docs/2.4.x/crds/kuma.io_containerpatches.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_containerpatches.yaml
rename to app/docs/2.4.x/crds/kuma.io_containerpatches.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_dataplaneinsights.yaml b/app/docs/2.4.x/crds/kuma.io_dataplaneinsights.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_dataplaneinsights.yaml
rename to app/docs/2.4.x/crds/kuma.io_dataplaneinsights.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_dataplanes.yaml b/app/docs/2.4.x/crds/kuma.io_dataplanes.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_dataplanes.yaml
rename to app/docs/2.4.x/crds/kuma.io_dataplanes.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_externalservices.yaml b/app/docs/2.4.x/crds/kuma.io_externalservices.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_externalservices.yaml
rename to app/docs/2.4.x/crds/kuma.io_externalservices.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_faultinjections.yaml b/app/docs/2.4.x/crds/kuma.io_faultinjections.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_faultinjections.yaml
rename to app/docs/2.4.x/crds/kuma.io_faultinjections.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_healthchecks.yaml b/app/docs/2.4.x/crds/kuma.io_healthchecks.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_healthchecks.yaml
rename to app/docs/2.4.x/crds/kuma.io_healthchecks.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshaccesslogs.yaml b/app/docs/2.4.x/crds/kuma.io_meshaccesslogs.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshaccesslogs.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshaccesslogs.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshcircuitbreakers.yaml b/app/docs/2.4.x/crds/kuma.io_meshcircuitbreakers.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshcircuitbreakers.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshcircuitbreakers.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshes.yaml b/app/docs/2.4.x/crds/kuma.io_meshes.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshes.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshes.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshfaultinjections.yaml b/app/docs/2.4.x/crds/kuma.io_meshfaultinjections.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshfaultinjections.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshfaultinjections.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshgatewayconfigs.yaml b/app/docs/2.4.x/crds/kuma.io_meshgatewayconfigs.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshgatewayconfigs.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshgatewayconfigs.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshgatewayinstances.yaml b/app/docs/2.4.x/crds/kuma.io_meshgatewayinstances.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshgatewayinstances.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshgatewayinstances.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshgatewayroutes.yaml b/app/docs/2.4.x/crds/kuma.io_meshgatewayroutes.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshgatewayroutes.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshgatewayroutes.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshgateways.yaml b/app/docs/2.4.x/crds/kuma.io_meshgateways.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshgateways.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshgateways.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshhealthchecks.yaml b/app/docs/2.4.x/crds/kuma.io_meshhealthchecks.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshhealthchecks.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshhealthchecks.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshhttproutes.yaml b/app/docs/2.4.x/crds/kuma.io_meshhttproutes.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshhttproutes.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshhttproutes.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshinsights.yaml b/app/docs/2.4.x/crds/kuma.io_meshinsights.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshinsights.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshinsights.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshloadbalancingstrategies.yaml b/app/docs/2.4.x/crds/kuma.io_meshloadbalancingstrategies.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshloadbalancingstrategies.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshloadbalancingstrategies.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshproxypatches.yaml b/app/docs/2.4.x/crds/kuma.io_meshproxypatches.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshproxypatches.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshproxypatches.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshratelimits.yaml b/app/docs/2.4.x/crds/kuma.io_meshratelimits.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshratelimits.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshratelimits.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshretries.yaml b/app/docs/2.4.x/crds/kuma.io_meshretries.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshretries.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshretries.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshtcproutes.yaml b/app/docs/2.4.x/crds/kuma.io_meshtcproutes.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshtcproutes.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshtcproutes.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshtimeouts.yaml b/app/docs/2.4.x/crds/kuma.io_meshtimeouts.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshtimeouts.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshtimeouts.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshtraces.yaml b/app/docs/2.4.x/crds/kuma.io_meshtraces.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshtraces.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshtraces.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_meshtrafficpermissions.yaml b/app/docs/2.4.x/crds/kuma.io_meshtrafficpermissions.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_meshtrafficpermissions.yaml
rename to app/docs/2.4.x/crds/kuma.io_meshtrafficpermissions.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_proxytemplates.yaml b/app/docs/2.4.x/crds/kuma.io_proxytemplates.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_proxytemplates.yaml
rename to app/docs/2.4.x/crds/kuma.io_proxytemplates.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_ratelimits.yaml b/app/docs/2.4.x/crds/kuma.io_ratelimits.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_ratelimits.yaml
rename to app/docs/2.4.x/crds/kuma.io_ratelimits.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_retries.yaml b/app/docs/2.4.x/crds/kuma.io_retries.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_retries.yaml
rename to app/docs/2.4.x/crds/kuma.io_retries.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_serviceinsights.yaml b/app/docs/2.4.x/crds/kuma.io_serviceinsights.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_serviceinsights.yaml
rename to app/docs/2.4.x/crds/kuma.io_serviceinsights.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_timeouts.yaml b/app/docs/2.4.x/crds/kuma.io_timeouts.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_timeouts.yaml
rename to app/docs/2.4.x/crds/kuma.io_timeouts.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_trafficlogs.yaml b/app/docs/2.4.x/crds/kuma.io_trafficlogs.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_trafficlogs.yaml
rename to app/docs/2.4.x/crds/kuma.io_trafficlogs.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_trafficpermissions.yaml b/app/docs/2.4.x/crds/kuma.io_trafficpermissions.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_trafficpermissions.yaml
rename to app/docs/2.4.x/crds/kuma.io_trafficpermissions.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_trafficroutes.yaml b/app/docs/2.4.x/crds/kuma.io_trafficroutes.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_trafficroutes.yaml
rename to app/docs/2.4.x/crds/kuma.io_trafficroutes.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_traffictraces.yaml b/app/docs/2.4.x/crds/kuma.io_traffictraces.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_traffictraces.yaml
rename to app/docs/2.4.x/crds/kuma.io_traffictraces.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_virtualoutbounds.yaml b/app/docs/2.4.x/crds/kuma.io_virtualoutbounds.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_virtualoutbounds.yaml
rename to app/docs/2.4.x/crds/kuma.io_virtualoutbounds.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_zoneegresses.yaml b/app/docs/2.4.x/crds/kuma.io_zoneegresses.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_zoneegresses.yaml
rename to app/docs/2.4.x/crds/kuma.io_zoneegresses.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_zoneegressinsights.yaml b/app/docs/2.4.x/crds/kuma.io_zoneegressinsights.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_zoneegressinsights.yaml
rename to app/docs/2.4.x/crds/kuma.io_zoneegressinsights.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_zoneingresses.yaml b/app/docs/2.4.x/crds/kuma.io_zoneingresses.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_zoneingresses.yaml
rename to app/docs/2.4.x/crds/kuma.io_zoneingresses.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_zoneingressinsights.yaml b/app/docs/2.4.x/crds/kuma.io_zoneingressinsights.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_zoneingressinsights.yaml
rename to app/docs/2.4.x/crds/kuma.io_zoneingressinsights.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_zoneinsights.yaml b/app/docs/2.4.x/crds/kuma.io_zoneinsights.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_zoneinsights.yaml
rename to app/docs/2.4.x/crds/kuma.io_zoneinsights.yaml
diff --git a/app/assets/2.4.x/raw/crds/kuma.io_zones.yaml b/app/docs/2.4.x/crds/kuma.io_zones.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/crds/kuma.io_zones.yaml
rename to app/docs/2.4.x/crds/kuma.io_zones.yaml
diff --git a/app/assets/2.4.x/raw/helm-values.yaml b/app/docs/2.4.x/helm-values.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/helm-values.yaml
rename to app/docs/2.4.x/helm-values.yaml
diff --git a/app/assets/2.4.x/raw/kuma-cp.yaml b/app/docs/2.4.x/kuma-cp.yaml
similarity index 100%
rename from app/assets/2.4.x/raw/kuma-cp.yaml
rename to app/docs/2.4.x/kuma-cp.yaml
diff --git a/app/assets/2.4.x/raw/protos/CertificateAuthorityBackend.json b/app/docs/2.4.x/protos/CertificateAuthorityBackend.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/CertificateAuthorityBackend.json
rename to app/docs/2.4.x/protos/CertificateAuthorityBackend.json
diff --git a/app/assets/2.4.x/raw/protos/CircuitBreaker.json b/app/docs/2.4.x/protos/CircuitBreaker.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/CircuitBreaker.json
rename to app/docs/2.4.x/protos/CircuitBreaker.json
diff --git a/app/assets/2.4.x/raw/protos/ClustersRequest.json b/app/docs/2.4.x/protos/ClustersRequest.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ClustersRequest.json
rename to app/docs/2.4.x/protos/ClustersRequest.json
diff --git a/app/assets/2.4.x/raw/protos/ClustersResponse.json b/app/docs/2.4.x/protos/ClustersResponse.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ClustersResponse.json
rename to app/docs/2.4.x/protos/ClustersResponse.json
diff --git a/app/assets/2.4.x/raw/protos/DatadogTracingBackendConfig.json b/app/docs/2.4.x/protos/DatadogTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/DatadogTracingBackendConfig.json
rename to app/docs/2.4.x/protos/DatadogTracingBackendConfig.json
diff --git a/app/assets/2.4.x/raw/protos/Dataplane.json b/app/docs/2.4.x/protos/Dataplane.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Dataplane.json
rename to app/docs/2.4.x/protos/Dataplane.json
diff --git a/app/assets/2.4.x/raw/protos/DataplaneInsight.json b/app/docs/2.4.x/protos/DataplaneInsight.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/DataplaneInsight.json
rename to app/docs/2.4.x/protos/DataplaneInsight.json
diff --git a/app/assets/2.4.x/raw/protos/DataplaneOverview.json b/app/docs/2.4.x/protos/DataplaneOverview.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/DataplaneOverview.json
rename to app/docs/2.4.x/protos/DataplaneOverview.json
diff --git a/app/assets/2.4.x/raw/protos/DiscoveryServiceStats.json b/app/docs/2.4.x/protos/DiscoveryServiceStats.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/DiscoveryServiceStats.json
rename to app/docs/2.4.x/protos/DiscoveryServiceStats.json
diff --git a/app/assets/2.4.x/raw/protos/DiscoverySubscription.json b/app/docs/2.4.x/protos/DiscoverySubscription.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/DiscoverySubscription.json
rename to app/docs/2.4.x/protos/DiscoverySubscription.json
diff --git a/app/assets/2.4.x/raw/protos/DiscoverySubscriptionStatus.json b/app/docs/2.4.x/protos/DiscoverySubscriptionStatus.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/DiscoverySubscriptionStatus.json
rename to app/docs/2.4.x/protos/DiscoverySubscriptionStatus.json
diff --git a/app/assets/2.4.x/raw/protos/EnvoyAdmin.json b/app/docs/2.4.x/protos/EnvoyAdmin.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/EnvoyAdmin.json
rename to app/docs/2.4.x/protos/EnvoyAdmin.json
diff --git a/app/assets/2.4.x/raw/protos/EnvoyVersion.json b/app/docs/2.4.x/protos/EnvoyVersion.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/EnvoyVersion.json
rename to app/docs/2.4.x/protos/EnvoyVersion.json
diff --git a/app/assets/2.4.x/raw/protos/ExternalService.json b/app/docs/2.4.x/protos/ExternalService.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ExternalService.json
rename to app/docs/2.4.x/protos/ExternalService.json
diff --git a/app/assets/2.4.x/raw/protos/FaultInjection.json b/app/docs/2.4.x/protos/FaultInjection.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/FaultInjection.json
rename to app/docs/2.4.x/protos/FaultInjection.json
diff --git a/app/assets/2.4.x/raw/protos/FileLoggingBackendConfig.json b/app/docs/2.4.x/protos/FileLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/FileLoggingBackendConfig.json
rename to app/docs/2.4.x/protos/FileLoggingBackendConfig.json
diff --git a/app/assets/2.4.x/raw/protos/HealthCheck.json b/app/docs/2.4.x/protos/HealthCheck.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/HealthCheck.json
rename to app/docs/2.4.x/protos/HealthCheck.json
diff --git a/app/assets/2.4.x/raw/protos/HttpMethod.json b/app/docs/2.4.x/protos/HttpMethod.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/HttpMethod.json
rename to app/docs/2.4.x/protos/HttpMethod.json
diff --git a/app/assets/2.4.x/raw/protos/KumaDpVersion.json b/app/docs/2.4.x/protos/KumaDpVersion.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/KumaDpVersion.json
rename to app/docs/2.4.x/protos/KumaDpVersion.json
diff --git a/app/assets/2.4.x/raw/protos/KumaResource.json b/app/docs/2.4.x/protos/KumaResource.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/KumaResource.json
rename to app/docs/2.4.x/protos/KumaResource.json
diff --git a/app/assets/2.4.x/raw/protos/Logging.json b/app/docs/2.4.x/protos/Logging.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Logging.json
rename to app/docs/2.4.x/protos/Logging.json
diff --git a/app/assets/2.4.x/raw/protos/LoggingBackend.json b/app/docs/2.4.x/protos/LoggingBackend.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/LoggingBackend.json
rename to app/docs/2.4.x/protos/LoggingBackend.json
diff --git a/app/assets/2.4.x/raw/protos/Mesh.json b/app/docs/2.4.x/protos/Mesh.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Mesh.json
rename to app/docs/2.4.x/protos/Mesh.json
diff --git a/app/assets/2.4.x/raw/protos/MeshGateway.json b/app/docs/2.4.x/protos/MeshGateway.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/MeshGateway.json
rename to app/docs/2.4.x/protos/MeshGateway.json
diff --git a/app/assets/2.4.x/raw/protos/MeshGatewayRoute.json b/app/docs/2.4.x/protos/MeshGatewayRoute.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/MeshGatewayRoute.json
rename to app/docs/2.4.x/protos/MeshGatewayRoute.json
diff --git a/app/assets/2.4.x/raw/protos/MeshInsight.json b/app/docs/2.4.x/protos/MeshInsight.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/MeshInsight.json
rename to app/docs/2.4.x/protos/MeshInsight.json
diff --git a/app/assets/2.4.x/raw/protos/Message.json b/app/docs/2.4.x/protos/Message.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Message.json
rename to app/docs/2.4.x/protos/Message.json
diff --git a/app/assets/2.4.x/raw/protos/Metrics.json b/app/docs/2.4.x/protos/Metrics.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Metrics.json
rename to app/docs/2.4.x/protos/Metrics.json
diff --git a/app/assets/2.4.x/raw/protos/MetricsBackend.json b/app/docs/2.4.x/protos/MetricsBackend.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/MetricsBackend.json
rename to app/docs/2.4.x/protos/MetricsBackend.json
diff --git a/app/assets/2.4.x/raw/protos/Networking.json b/app/docs/2.4.x/protos/Networking.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Networking.json
rename to app/docs/2.4.x/protos/Networking.json
diff --git a/app/assets/2.4.x/raw/protos/PrometheusAggregateMetricsConfig.json b/app/docs/2.4.x/protos/PrometheusAggregateMetricsConfig.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/PrometheusAggregateMetricsConfig.json
rename to app/docs/2.4.x/protos/PrometheusAggregateMetricsConfig.json
diff --git a/app/assets/2.4.x/raw/protos/PrometheusEnvoyConfig.json b/app/docs/2.4.x/protos/PrometheusEnvoyConfig.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/PrometheusEnvoyConfig.json
rename to app/docs/2.4.x/protos/PrometheusEnvoyConfig.json
diff --git a/app/assets/2.4.x/raw/protos/PrometheusMetricsBackendConfig.json b/app/docs/2.4.x/protos/PrometheusMetricsBackendConfig.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/PrometheusMetricsBackendConfig.json
rename to app/docs/2.4.x/protos/PrometheusMetricsBackendConfig.json
diff --git a/app/assets/2.4.x/raw/protos/PrometheusTlsConfig.json b/app/docs/2.4.x/protos/PrometheusTlsConfig.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/PrometheusTlsConfig.json
rename to app/docs/2.4.x/protos/PrometheusTlsConfig.json
diff --git a/app/assets/2.4.x/raw/protos/ProxyTemplate.json b/app/docs/2.4.x/protos/ProxyTemplate.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ProxyTemplate.json
rename to app/docs/2.4.x/protos/ProxyTemplate.json
diff --git a/app/assets/2.4.x/raw/protos/ProxyTemplateProfileSource.json b/app/docs/2.4.x/protos/ProxyTemplateProfileSource.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ProxyTemplateProfileSource.json
rename to app/docs/2.4.x/protos/ProxyTemplateProfileSource.json
diff --git a/app/assets/2.4.x/raw/protos/ProxyTemplateRawResource.json b/app/docs/2.4.x/protos/ProxyTemplateRawResource.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ProxyTemplateRawResource.json
rename to app/docs/2.4.x/protos/ProxyTemplateRawResource.json
diff --git a/app/assets/2.4.x/raw/protos/ProxyTemplateRawSource.json b/app/docs/2.4.x/protos/ProxyTemplateRawSource.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ProxyTemplateRawSource.json
rename to app/docs/2.4.x/protos/ProxyTemplateRawSource.json
diff --git a/app/assets/2.4.x/raw/protos/ProxyTemplateSource.json b/app/docs/2.4.x/protos/ProxyTemplateSource.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ProxyTemplateSource.json
rename to app/docs/2.4.x/protos/ProxyTemplateSource.json
diff --git a/app/assets/2.4.x/raw/protos/RateLimit.json b/app/docs/2.4.x/protos/RateLimit.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/RateLimit.json
rename to app/docs/2.4.x/protos/RateLimit.json
diff --git a/app/assets/2.4.x/raw/protos/Retry.json b/app/docs/2.4.x/protos/Retry.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Retry.json
rename to app/docs/2.4.x/protos/Retry.json
diff --git a/app/assets/2.4.x/raw/protos/Routing.json b/app/docs/2.4.x/protos/Routing.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Routing.json
rename to app/docs/2.4.x/protos/Routing.json
diff --git a/app/assets/2.4.x/raw/protos/Selector.json b/app/docs/2.4.x/protos/Selector.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Selector.json
rename to app/docs/2.4.x/protos/Selector.json
diff --git a/app/assets/2.4.x/raw/protos/ServiceInsight.json b/app/docs/2.4.x/protos/ServiceInsight.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ServiceInsight.json
rename to app/docs/2.4.x/protos/ServiceInsight.json
diff --git a/app/assets/2.4.x/raw/protos/StatsRequest.json b/app/docs/2.4.x/protos/StatsRequest.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/StatsRequest.json
rename to app/docs/2.4.x/protos/StatsRequest.json
diff --git a/app/assets/2.4.x/raw/protos/StatsResponse.json b/app/docs/2.4.x/protos/StatsResponse.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/StatsResponse.json
rename to app/docs/2.4.x/protos/StatsResponse.json
diff --git a/app/assets/2.4.x/raw/protos/TcpLoggingBackendConfig.json b/app/docs/2.4.x/protos/TcpLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/TcpLoggingBackendConfig.json
rename to app/docs/2.4.x/protos/TcpLoggingBackendConfig.json
diff --git a/app/assets/2.4.x/raw/protos/Timeout.json b/app/docs/2.4.x/protos/Timeout.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Timeout.json
rename to app/docs/2.4.x/protos/Timeout.json
diff --git a/app/assets/2.4.x/raw/protos/Tracing.json b/app/docs/2.4.x/protos/Tracing.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Tracing.json
rename to app/docs/2.4.x/protos/Tracing.json
diff --git a/app/assets/2.4.x/raw/protos/TracingBackend.json b/app/docs/2.4.x/protos/TracingBackend.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/TracingBackend.json
rename to app/docs/2.4.x/protos/TracingBackend.json
diff --git a/app/assets/2.4.x/raw/protos/TrafficLog.json b/app/docs/2.4.x/protos/TrafficLog.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/TrafficLog.json
rename to app/docs/2.4.x/protos/TrafficLog.json
diff --git a/app/assets/2.4.x/raw/protos/TrafficPermission.json b/app/docs/2.4.x/protos/TrafficPermission.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/TrafficPermission.json
rename to app/docs/2.4.x/protos/TrafficPermission.json
diff --git a/app/assets/2.4.x/raw/protos/TrafficRoute.json b/app/docs/2.4.x/protos/TrafficRoute.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/TrafficRoute.json
rename to app/docs/2.4.x/protos/TrafficRoute.json
diff --git a/app/assets/2.4.x/raw/protos/TrafficTrace.json b/app/docs/2.4.x/protos/TrafficTrace.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/TrafficTrace.json
rename to app/docs/2.4.x/protos/TrafficTrace.json
diff --git a/app/assets/2.4.x/raw/protos/Version.json b/app/docs/2.4.x/protos/Version.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/Version.json
rename to app/docs/2.4.x/protos/Version.json
diff --git a/app/assets/2.4.x/raw/protos/VirtualOutbound.json b/app/docs/2.4.x/protos/VirtualOutbound.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/VirtualOutbound.json
rename to app/docs/2.4.x/protos/VirtualOutbound.json
diff --git a/app/assets/2.4.x/raw/protos/XDSConfigRequest.json b/app/docs/2.4.x/protos/XDSConfigRequest.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/XDSConfigRequest.json
rename to app/docs/2.4.x/protos/XDSConfigRequest.json
diff --git a/app/assets/2.4.x/raw/protos/XDSConfigResponse.json b/app/docs/2.4.x/protos/XDSConfigResponse.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/XDSConfigResponse.json
rename to app/docs/2.4.x/protos/XDSConfigResponse.json
diff --git a/app/assets/2.4.x/raw/protos/ZipkinTracingBackendConfig.json b/app/docs/2.4.x/protos/ZipkinTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ZipkinTracingBackendConfig.json
rename to app/docs/2.4.x/protos/ZipkinTracingBackendConfig.json
diff --git a/app/assets/2.4.x/raw/protos/ZoneEgress.json b/app/docs/2.4.x/protos/ZoneEgress.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ZoneEgress.json
rename to app/docs/2.4.x/protos/ZoneEgress.json
diff --git a/app/assets/2.4.x/raw/protos/ZoneEgressInsight.json b/app/docs/2.4.x/protos/ZoneEgressInsight.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ZoneEgressInsight.json
rename to app/docs/2.4.x/protos/ZoneEgressInsight.json
diff --git a/app/assets/2.4.x/raw/protos/ZoneEgressOverview.json b/app/docs/2.4.x/protos/ZoneEgressOverview.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ZoneEgressOverview.json
rename to app/docs/2.4.x/protos/ZoneEgressOverview.json
diff --git a/app/assets/2.4.x/raw/protos/ZoneIngress.json b/app/docs/2.4.x/protos/ZoneIngress.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ZoneIngress.json
rename to app/docs/2.4.x/protos/ZoneIngress.json
diff --git a/app/assets/2.4.x/raw/protos/ZoneIngressInsight.json b/app/docs/2.4.x/protos/ZoneIngressInsight.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ZoneIngressInsight.json
rename to app/docs/2.4.x/protos/ZoneIngressInsight.json
diff --git a/app/assets/2.4.x/raw/protos/ZoneIngressOverview.json b/app/docs/2.4.x/protos/ZoneIngressOverview.json
similarity index 100%
rename from app/assets/2.4.x/raw/protos/ZoneIngressOverview.json
rename to app/docs/2.4.x/protos/ZoneIngressOverview.json
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_circuitbreakers.yaml b/app/docs/2.5.x/crds/kuma.io_circuitbreakers.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_circuitbreakers.yaml
rename to app/docs/2.5.x/crds/kuma.io_circuitbreakers.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_containerpatches.yaml b/app/docs/2.5.x/crds/kuma.io_containerpatches.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_containerpatches.yaml
rename to app/docs/2.5.x/crds/kuma.io_containerpatches.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_dataplaneinsights.yaml b/app/docs/2.5.x/crds/kuma.io_dataplaneinsights.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_dataplaneinsights.yaml
rename to app/docs/2.5.x/crds/kuma.io_dataplaneinsights.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_dataplanes.yaml b/app/docs/2.5.x/crds/kuma.io_dataplanes.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_dataplanes.yaml
rename to app/docs/2.5.x/crds/kuma.io_dataplanes.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_externalservices.yaml b/app/docs/2.5.x/crds/kuma.io_externalservices.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_externalservices.yaml
rename to app/docs/2.5.x/crds/kuma.io_externalservices.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_faultinjections.yaml b/app/docs/2.5.x/crds/kuma.io_faultinjections.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_faultinjections.yaml
rename to app/docs/2.5.x/crds/kuma.io_faultinjections.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_healthchecks.yaml b/app/docs/2.5.x/crds/kuma.io_healthchecks.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_healthchecks.yaml
rename to app/docs/2.5.x/crds/kuma.io_healthchecks.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshaccesslogs.yaml b/app/docs/2.5.x/crds/kuma.io_meshaccesslogs.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshaccesslogs.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshaccesslogs.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshcircuitbreakers.yaml b/app/docs/2.5.x/crds/kuma.io_meshcircuitbreakers.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshcircuitbreakers.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshcircuitbreakers.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshes.yaml b/app/docs/2.5.x/crds/kuma.io_meshes.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshes.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshes.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshfaultinjections.yaml b/app/docs/2.5.x/crds/kuma.io_meshfaultinjections.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshfaultinjections.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshfaultinjections.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshgatewayconfigs.yaml b/app/docs/2.5.x/crds/kuma.io_meshgatewayconfigs.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshgatewayconfigs.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshgatewayconfigs.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshgatewayinstances.yaml b/app/docs/2.5.x/crds/kuma.io_meshgatewayinstances.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshgatewayinstances.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshgatewayinstances.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshgatewayroutes.yaml b/app/docs/2.5.x/crds/kuma.io_meshgatewayroutes.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshgatewayroutes.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshgatewayroutes.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshgateways.yaml b/app/docs/2.5.x/crds/kuma.io_meshgateways.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshgateways.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshgateways.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshhealthchecks.yaml b/app/docs/2.5.x/crds/kuma.io_meshhealthchecks.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshhealthchecks.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshhealthchecks.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshhttproutes.yaml b/app/docs/2.5.x/crds/kuma.io_meshhttproutes.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshhttproutes.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshhttproutes.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshinsights.yaml b/app/docs/2.5.x/crds/kuma.io_meshinsights.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshinsights.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshinsights.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshloadbalancingstrategies.yaml b/app/docs/2.5.x/crds/kuma.io_meshloadbalancingstrategies.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshloadbalancingstrategies.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshloadbalancingstrategies.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshproxypatches.yaml b/app/docs/2.5.x/crds/kuma.io_meshproxypatches.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshproxypatches.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshproxypatches.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshratelimits.yaml b/app/docs/2.5.x/crds/kuma.io_meshratelimits.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshratelimits.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshratelimits.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshretries.yaml b/app/docs/2.5.x/crds/kuma.io_meshretries.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshretries.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshretries.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshtcproutes.yaml b/app/docs/2.5.x/crds/kuma.io_meshtcproutes.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshtcproutes.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshtcproutes.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshtimeouts.yaml b/app/docs/2.5.x/crds/kuma.io_meshtimeouts.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshtimeouts.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshtimeouts.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshtraces.yaml b/app/docs/2.5.x/crds/kuma.io_meshtraces.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshtraces.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshtraces.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_meshtrafficpermissions.yaml b/app/docs/2.5.x/crds/kuma.io_meshtrafficpermissions.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_meshtrafficpermissions.yaml
rename to app/docs/2.5.x/crds/kuma.io_meshtrafficpermissions.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_proxytemplates.yaml b/app/docs/2.5.x/crds/kuma.io_proxytemplates.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_proxytemplates.yaml
rename to app/docs/2.5.x/crds/kuma.io_proxytemplates.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_ratelimits.yaml b/app/docs/2.5.x/crds/kuma.io_ratelimits.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_ratelimits.yaml
rename to app/docs/2.5.x/crds/kuma.io_ratelimits.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_retries.yaml b/app/docs/2.5.x/crds/kuma.io_retries.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_retries.yaml
rename to app/docs/2.5.x/crds/kuma.io_retries.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_serviceinsights.yaml b/app/docs/2.5.x/crds/kuma.io_serviceinsights.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_serviceinsights.yaml
rename to app/docs/2.5.x/crds/kuma.io_serviceinsights.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_timeouts.yaml b/app/docs/2.5.x/crds/kuma.io_timeouts.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_timeouts.yaml
rename to app/docs/2.5.x/crds/kuma.io_timeouts.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_trafficlogs.yaml b/app/docs/2.5.x/crds/kuma.io_trafficlogs.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_trafficlogs.yaml
rename to app/docs/2.5.x/crds/kuma.io_trafficlogs.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_trafficpermissions.yaml b/app/docs/2.5.x/crds/kuma.io_trafficpermissions.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_trafficpermissions.yaml
rename to app/docs/2.5.x/crds/kuma.io_trafficpermissions.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_trafficroutes.yaml b/app/docs/2.5.x/crds/kuma.io_trafficroutes.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_trafficroutes.yaml
rename to app/docs/2.5.x/crds/kuma.io_trafficroutes.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_traffictraces.yaml b/app/docs/2.5.x/crds/kuma.io_traffictraces.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_traffictraces.yaml
rename to app/docs/2.5.x/crds/kuma.io_traffictraces.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_virtualoutbounds.yaml b/app/docs/2.5.x/crds/kuma.io_virtualoutbounds.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_virtualoutbounds.yaml
rename to app/docs/2.5.x/crds/kuma.io_virtualoutbounds.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_zoneegresses.yaml b/app/docs/2.5.x/crds/kuma.io_zoneegresses.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_zoneegresses.yaml
rename to app/docs/2.5.x/crds/kuma.io_zoneegresses.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_zoneegressinsights.yaml b/app/docs/2.5.x/crds/kuma.io_zoneegressinsights.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_zoneegressinsights.yaml
rename to app/docs/2.5.x/crds/kuma.io_zoneegressinsights.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_zoneingresses.yaml b/app/docs/2.5.x/crds/kuma.io_zoneingresses.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_zoneingresses.yaml
rename to app/docs/2.5.x/crds/kuma.io_zoneingresses.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_zoneingressinsights.yaml b/app/docs/2.5.x/crds/kuma.io_zoneingressinsights.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_zoneingressinsights.yaml
rename to app/docs/2.5.x/crds/kuma.io_zoneingressinsights.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_zoneinsights.yaml b/app/docs/2.5.x/crds/kuma.io_zoneinsights.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_zoneinsights.yaml
rename to app/docs/2.5.x/crds/kuma.io_zoneinsights.yaml
diff --git a/app/assets/2.5.x/raw/crds/kuma.io_zones.yaml b/app/docs/2.5.x/crds/kuma.io_zones.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/crds/kuma.io_zones.yaml
rename to app/docs/2.5.x/crds/kuma.io_zones.yaml
diff --git a/app/assets/2.5.x/raw/helm-values.yaml b/app/docs/2.5.x/helm-values.yaml
similarity index 100%
rename from app/assets/2.5.x/raw/helm-values.yaml
rename to app/docs/2.5.x/helm-values.yaml
diff --git a/app/assets/2.5.x/raw/kuma-cp.yaml b/app/docs/2.5.x/kuma-cp.yaml
similarity index 98%
rename from app/assets/2.5.x/raw/kuma-cp.yaml
rename to app/docs/2.5.x/kuma-cp.yaml
index 8c716dcb9..bba9600f6 100644
--- a/app/assets/2.5.x/raw/kuma-cp.yaml
+++ b/app/docs/2.5.x/kuma-cp.yaml
@@ -364,11 +364,6 @@ runtime:
tcAttachIface: "" # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_TC_ATTACH_IFACE
# Path where compiled eBPF programs are placed
programsSourcePath: /kuma/ebpf # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_PROGRAMS_SOURCE_PATH
- # IgnoredServiceSelectorLabels defines a list ignored labels in Service selector.
- # If Pod matches a Service with ignored labels, but does not match it fully, it gets Ignored inbound.
- # It is useful when you change Service selector and expect traffic to be sent immediately.
- # An example of this is ArgoCD's BlueGreen deployment and "rollouts-pod-template-hash" selector.
- ignoredServiceSelectorLabels: [] # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_IGNORED_SERVICE_SELECTOR_LABELS
marshalingCacheExpirationTime: 5m # ENV: KUMA_RUNTIME_KUBERNETES_MARSHALING_CACHE_EXPIRATION_TIME
# Kubernetes's resources reconciliation concurrency configuration
controllersConcurrency:
diff --git a/app/assets/2.5.x/raw/protos/CertificateAuthorityBackend.json b/app/docs/2.5.x/protos/CertificateAuthorityBackend.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/CertificateAuthorityBackend.json
rename to app/docs/2.5.x/protos/CertificateAuthorityBackend.json
diff --git a/app/assets/2.5.x/raw/protos/CircuitBreaker.json b/app/docs/2.5.x/protos/CircuitBreaker.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/CircuitBreaker.json
rename to app/docs/2.5.x/protos/CircuitBreaker.json
diff --git a/app/assets/2.5.x/raw/protos/ClustersRequest.json b/app/docs/2.5.x/protos/ClustersRequest.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ClustersRequest.json
rename to app/docs/2.5.x/protos/ClustersRequest.json
diff --git a/app/assets/2.5.x/raw/protos/ClustersResponse.json b/app/docs/2.5.x/protos/ClustersResponse.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ClustersResponse.json
rename to app/docs/2.5.x/protos/ClustersResponse.json
diff --git a/app/assets/2.5.x/raw/protos/DatadogTracingBackendConfig.json b/app/docs/2.5.x/protos/DatadogTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/DatadogTracingBackendConfig.json
rename to app/docs/2.5.x/protos/DatadogTracingBackendConfig.json
diff --git a/app/assets/dev/raw/protos/Dataplane.json b/app/docs/2.5.x/protos/Dataplane.json
similarity index 96%
rename from app/assets/dev/raw/protos/Dataplane.json
rename to app/docs/2.5.x/protos/Dataplane.json
index 29b8197c1..a6888446a 100644
--- a/app/assets/dev/raw/protos/Dataplane.json
+++ b/app/docs/2.5.x/protos/Dataplane.json
@@ -136,25 +136,6 @@
"$ref": "#/definitions/kuma.mesh.v1alpha1.Dataplane.Networking.Inbound.ServiceProbe",
"additionalProperties": true,
"description": "ServiceProbe defines parameters for probing the service next to sidecar. When service probe is defined, Envoy will periodically health check the application next to it and report the status to the control plane. On Kubernetes, Kuma deployments rely on Kubernetes probes so this is not used. See https://kuma.io/docs/latest/documentation/health for more information."
- },
- "state": {
- "enum": [
- "Ready",
- 0,
- "NotReady",
- 1,
- "Ignored",
- 2
- ],
- "oneOf": [
- {
- "type": "string"
- },
- {
- "type": "integer"
- }
- ],
- "title": "State"
}
},
"additionalProperties": true,
diff --git a/app/assets/2.5.x/raw/protos/DataplaneInsight.json b/app/docs/2.5.x/protos/DataplaneInsight.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/DataplaneInsight.json
rename to app/docs/2.5.x/protos/DataplaneInsight.json
diff --git a/app/assets/2.5.x/raw/protos/DataplaneOverview.json b/app/docs/2.5.x/protos/DataplaneOverview.json
similarity index 98%
rename from app/assets/2.5.x/raw/protos/DataplaneOverview.json
rename to app/docs/2.5.x/protos/DataplaneOverview.json
index fa880156a..04e4385b8 100644
--- a/app/assets/2.5.x/raw/protos/DataplaneOverview.json
+++ b/app/docs/2.5.x/protos/DataplaneOverview.json
@@ -152,25 +152,6 @@
"$ref": "#/definitions/kuma.mesh.v1alpha1.Dataplane.Networking.Inbound.ServiceProbe",
"additionalProperties": true,
"description": "ServiceProbe defines parameters for probing the service next to sidecar. When service probe is defined, Envoy will periodically health check the application next to it and report the status to the control plane. On Kubernetes, Kuma deployments rely on Kubernetes probes so this is not used. See https://kuma.io/docs/latest/documentation/health for more information."
- },
- "state": {
- "enum": [
- "Ready",
- 0,
- "NotReady",
- 1,
- "Ignored",
- 2
- ],
- "oneOf": [
- {
- "type": "string"
- },
- {
- "type": "integer"
- }
- ],
- "title": "State"
}
},
"additionalProperties": true,
diff --git a/app/assets/2.5.x/raw/protos/DiscoveryServiceStats.json b/app/docs/2.5.x/protos/DiscoveryServiceStats.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/DiscoveryServiceStats.json
rename to app/docs/2.5.x/protos/DiscoveryServiceStats.json
diff --git a/app/assets/2.5.x/raw/protos/DiscoverySubscription.json b/app/docs/2.5.x/protos/DiscoverySubscription.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/DiscoverySubscription.json
rename to app/docs/2.5.x/protos/DiscoverySubscription.json
diff --git a/app/assets/2.5.x/raw/protos/DiscoverySubscriptionStatus.json b/app/docs/2.5.x/protos/DiscoverySubscriptionStatus.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/DiscoverySubscriptionStatus.json
rename to app/docs/2.5.x/protos/DiscoverySubscriptionStatus.json
diff --git a/app/assets/2.5.x/raw/protos/EnvoyAdmin.json b/app/docs/2.5.x/protos/EnvoyAdmin.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/EnvoyAdmin.json
rename to app/docs/2.5.x/protos/EnvoyAdmin.json
diff --git a/app/assets/2.5.x/raw/protos/EnvoyVersion.json b/app/docs/2.5.x/protos/EnvoyVersion.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/EnvoyVersion.json
rename to app/docs/2.5.x/protos/EnvoyVersion.json
diff --git a/app/assets/2.5.x/raw/protos/ExternalService.json b/app/docs/2.5.x/protos/ExternalService.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ExternalService.json
rename to app/docs/2.5.x/protos/ExternalService.json
diff --git a/app/assets/2.5.x/raw/protos/FaultInjection.json b/app/docs/2.5.x/protos/FaultInjection.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/FaultInjection.json
rename to app/docs/2.5.x/protos/FaultInjection.json
diff --git a/app/assets/2.5.x/raw/protos/FileLoggingBackendConfig.json b/app/docs/2.5.x/protos/FileLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/FileLoggingBackendConfig.json
rename to app/docs/2.5.x/protos/FileLoggingBackendConfig.json
diff --git a/app/assets/2.5.x/raw/protos/HealthCheck.json b/app/docs/2.5.x/protos/HealthCheck.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/HealthCheck.json
rename to app/docs/2.5.x/protos/HealthCheck.json
diff --git a/app/assets/2.5.x/raw/protos/HttpMethod.json b/app/docs/2.5.x/protos/HttpMethod.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/HttpMethod.json
rename to app/docs/2.5.x/protos/HttpMethod.json
diff --git a/app/assets/2.5.x/raw/protos/KumaDpVersion.json b/app/docs/2.5.x/protos/KumaDpVersion.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/KumaDpVersion.json
rename to app/docs/2.5.x/protos/KumaDpVersion.json
diff --git a/app/assets/2.5.x/raw/protos/KumaResource.json b/app/docs/2.5.x/protos/KumaResource.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/KumaResource.json
rename to app/docs/2.5.x/protos/KumaResource.json
diff --git a/app/assets/2.5.x/raw/protos/Logging.json b/app/docs/2.5.x/protos/Logging.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Logging.json
rename to app/docs/2.5.x/protos/Logging.json
diff --git a/app/assets/2.5.x/raw/protos/LoggingBackend.json b/app/docs/2.5.x/protos/LoggingBackend.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/LoggingBackend.json
rename to app/docs/2.5.x/protos/LoggingBackend.json
diff --git a/app/assets/2.5.x/raw/protos/Mesh.json b/app/docs/2.5.x/protos/Mesh.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Mesh.json
rename to app/docs/2.5.x/protos/Mesh.json
diff --git a/app/assets/2.5.x/raw/protos/MeshGateway.json b/app/docs/2.5.x/protos/MeshGateway.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/MeshGateway.json
rename to app/docs/2.5.x/protos/MeshGateway.json
diff --git a/app/assets/2.5.x/raw/protos/MeshGatewayRoute.json b/app/docs/2.5.x/protos/MeshGatewayRoute.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/MeshGatewayRoute.json
rename to app/docs/2.5.x/protos/MeshGatewayRoute.json
diff --git a/app/assets/2.5.x/raw/protos/MeshInsight.json b/app/docs/2.5.x/protos/MeshInsight.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/MeshInsight.json
rename to app/docs/2.5.x/protos/MeshInsight.json
diff --git a/app/assets/2.5.x/raw/protos/Message.json b/app/docs/2.5.x/protos/Message.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Message.json
rename to app/docs/2.5.x/protos/Message.json
diff --git a/app/assets/2.5.x/raw/protos/Metrics.json b/app/docs/2.5.x/protos/Metrics.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Metrics.json
rename to app/docs/2.5.x/protos/Metrics.json
diff --git a/app/assets/2.5.x/raw/protos/MetricsBackend.json b/app/docs/2.5.x/protos/MetricsBackend.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/MetricsBackend.json
rename to app/docs/2.5.x/protos/MetricsBackend.json
diff --git a/app/assets/2.5.x/raw/protos/Networking.json b/app/docs/2.5.x/protos/Networking.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Networking.json
rename to app/docs/2.5.x/protos/Networking.json
diff --git a/app/assets/2.5.x/raw/protos/PrometheusAggregateMetricsConfig.json b/app/docs/2.5.x/protos/PrometheusAggregateMetricsConfig.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/PrometheusAggregateMetricsConfig.json
rename to app/docs/2.5.x/protos/PrometheusAggregateMetricsConfig.json
diff --git a/app/assets/2.5.x/raw/protos/PrometheusEnvoyConfig.json b/app/docs/2.5.x/protos/PrometheusEnvoyConfig.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/PrometheusEnvoyConfig.json
rename to app/docs/2.5.x/protos/PrometheusEnvoyConfig.json
diff --git a/app/assets/2.5.x/raw/protos/PrometheusMetricsBackendConfig.json b/app/docs/2.5.x/protos/PrometheusMetricsBackendConfig.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/PrometheusMetricsBackendConfig.json
rename to app/docs/2.5.x/protos/PrometheusMetricsBackendConfig.json
diff --git a/app/assets/2.5.x/raw/protos/PrometheusTlsConfig.json b/app/docs/2.5.x/protos/PrometheusTlsConfig.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/PrometheusTlsConfig.json
rename to app/docs/2.5.x/protos/PrometheusTlsConfig.json
diff --git a/app/assets/2.5.x/raw/protos/ProxyTemplate.json b/app/docs/2.5.x/protos/ProxyTemplate.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ProxyTemplate.json
rename to app/docs/2.5.x/protos/ProxyTemplate.json
diff --git a/app/assets/2.5.x/raw/protos/ProxyTemplateProfileSource.json b/app/docs/2.5.x/protos/ProxyTemplateProfileSource.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ProxyTemplateProfileSource.json
rename to app/docs/2.5.x/protos/ProxyTemplateProfileSource.json
diff --git a/app/assets/2.5.x/raw/protos/ProxyTemplateRawResource.json b/app/docs/2.5.x/protos/ProxyTemplateRawResource.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ProxyTemplateRawResource.json
rename to app/docs/2.5.x/protos/ProxyTemplateRawResource.json
diff --git a/app/assets/2.5.x/raw/protos/ProxyTemplateRawSource.json b/app/docs/2.5.x/protos/ProxyTemplateRawSource.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ProxyTemplateRawSource.json
rename to app/docs/2.5.x/protos/ProxyTemplateRawSource.json
diff --git a/app/assets/2.5.x/raw/protos/ProxyTemplateSource.json b/app/docs/2.5.x/protos/ProxyTemplateSource.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ProxyTemplateSource.json
rename to app/docs/2.5.x/protos/ProxyTemplateSource.json
diff --git a/app/assets/2.5.x/raw/protos/RateLimit.json b/app/docs/2.5.x/protos/RateLimit.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/RateLimit.json
rename to app/docs/2.5.x/protos/RateLimit.json
diff --git a/app/assets/2.5.x/raw/protos/Retry.json b/app/docs/2.5.x/protos/Retry.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Retry.json
rename to app/docs/2.5.x/protos/Retry.json
diff --git a/app/assets/2.5.x/raw/protos/Routing.json b/app/docs/2.5.x/protos/Routing.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Routing.json
rename to app/docs/2.5.x/protos/Routing.json
diff --git a/app/assets/2.5.x/raw/protos/Selector.json b/app/docs/2.5.x/protos/Selector.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Selector.json
rename to app/docs/2.5.x/protos/Selector.json
diff --git a/app/assets/2.5.x/raw/protos/ServiceInsight.json b/app/docs/2.5.x/protos/ServiceInsight.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ServiceInsight.json
rename to app/docs/2.5.x/protos/ServiceInsight.json
diff --git a/app/assets/2.5.x/raw/protos/StatsRequest.json b/app/docs/2.5.x/protos/StatsRequest.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/StatsRequest.json
rename to app/docs/2.5.x/protos/StatsRequest.json
diff --git a/app/assets/2.5.x/raw/protos/StatsResponse.json b/app/docs/2.5.x/protos/StatsResponse.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/StatsResponse.json
rename to app/docs/2.5.x/protos/StatsResponse.json
diff --git a/app/assets/2.5.x/raw/protos/TcpLoggingBackendConfig.json b/app/docs/2.5.x/protos/TcpLoggingBackendConfig.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/TcpLoggingBackendConfig.json
rename to app/docs/2.5.x/protos/TcpLoggingBackendConfig.json
diff --git a/app/assets/2.5.x/raw/protos/Timeout.json b/app/docs/2.5.x/protos/Timeout.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Timeout.json
rename to app/docs/2.5.x/protos/Timeout.json
diff --git a/app/assets/2.5.x/raw/protos/Tracing.json b/app/docs/2.5.x/protos/Tracing.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Tracing.json
rename to app/docs/2.5.x/protos/Tracing.json
diff --git a/app/assets/2.5.x/raw/protos/TracingBackend.json b/app/docs/2.5.x/protos/TracingBackend.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/TracingBackend.json
rename to app/docs/2.5.x/protos/TracingBackend.json
diff --git a/app/assets/2.5.x/raw/protos/TrafficLog.json b/app/docs/2.5.x/protos/TrafficLog.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/TrafficLog.json
rename to app/docs/2.5.x/protos/TrafficLog.json
diff --git a/app/assets/2.5.x/raw/protos/TrafficPermission.json b/app/docs/2.5.x/protos/TrafficPermission.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/TrafficPermission.json
rename to app/docs/2.5.x/protos/TrafficPermission.json
diff --git a/app/assets/2.5.x/raw/protos/TrafficRoute.json b/app/docs/2.5.x/protos/TrafficRoute.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/TrafficRoute.json
rename to app/docs/2.5.x/protos/TrafficRoute.json
diff --git a/app/assets/2.5.x/raw/protos/TrafficTrace.json b/app/docs/2.5.x/protos/TrafficTrace.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/TrafficTrace.json
rename to app/docs/2.5.x/protos/TrafficTrace.json
diff --git a/app/assets/2.5.x/raw/protos/Version.json b/app/docs/2.5.x/protos/Version.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/Version.json
rename to app/docs/2.5.x/protos/Version.json
diff --git a/app/assets/2.5.x/raw/protos/VirtualOutbound.json b/app/docs/2.5.x/protos/VirtualOutbound.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/VirtualOutbound.json
rename to app/docs/2.5.x/protos/VirtualOutbound.json
diff --git a/app/assets/2.5.x/raw/protos/XDSConfigRequest.json b/app/docs/2.5.x/protos/XDSConfigRequest.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/XDSConfigRequest.json
rename to app/docs/2.5.x/protos/XDSConfigRequest.json
diff --git a/app/assets/2.5.x/raw/protos/XDSConfigResponse.json b/app/docs/2.5.x/protos/XDSConfigResponse.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/XDSConfigResponse.json
rename to app/docs/2.5.x/protos/XDSConfigResponse.json
diff --git a/app/assets/2.5.x/raw/protos/ZipkinTracingBackendConfig.json b/app/docs/2.5.x/protos/ZipkinTracingBackendConfig.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ZipkinTracingBackendConfig.json
rename to app/docs/2.5.x/protos/ZipkinTracingBackendConfig.json
diff --git a/app/assets/2.5.x/raw/protos/ZoneEgress.json b/app/docs/2.5.x/protos/ZoneEgress.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ZoneEgress.json
rename to app/docs/2.5.x/protos/ZoneEgress.json
diff --git a/app/assets/2.5.x/raw/protos/ZoneEgressInsight.json b/app/docs/2.5.x/protos/ZoneEgressInsight.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ZoneEgressInsight.json
rename to app/docs/2.5.x/protos/ZoneEgressInsight.json
diff --git a/app/assets/2.5.x/raw/protos/ZoneEgressOverview.json b/app/docs/2.5.x/protos/ZoneEgressOverview.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ZoneEgressOverview.json
rename to app/docs/2.5.x/protos/ZoneEgressOverview.json
diff --git a/app/assets/2.5.x/raw/protos/ZoneHealthCheckRequest.json b/app/docs/2.5.x/protos/ZoneHealthCheckRequest.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ZoneHealthCheckRequest.json
rename to app/docs/2.5.x/protos/ZoneHealthCheckRequest.json
diff --git a/app/assets/2.5.x/raw/protos/ZoneHealthCheckResponse.json b/app/docs/2.5.x/protos/ZoneHealthCheckResponse.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ZoneHealthCheckResponse.json
rename to app/docs/2.5.x/protos/ZoneHealthCheckResponse.json
diff --git a/app/assets/2.5.x/raw/protos/ZoneIngress.json b/app/docs/2.5.x/protos/ZoneIngress.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ZoneIngress.json
rename to app/docs/2.5.x/protos/ZoneIngress.json
diff --git a/app/assets/2.5.x/raw/protos/ZoneIngressInsight.json b/app/docs/2.5.x/protos/ZoneIngressInsight.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ZoneIngressInsight.json
rename to app/docs/2.5.x/protos/ZoneIngressInsight.json
diff --git a/app/assets/2.5.x/raw/protos/ZoneIngressOverview.json b/app/docs/2.5.x/protos/ZoneIngressOverview.json
similarity index 100%
rename from app/assets/2.5.x/raw/protos/ZoneIngressOverview.json
rename to app/docs/2.5.x/protos/ZoneIngressOverview.json
diff --git a/app/docs/changelog.md b/app/docs/changelog.md
index d27bf33db..caaa4f9f6 100644
--- a/app/docs/changelog.md
+++ b/app/docs/changelog.md
@@ -3,4 +3,4 @@ title: Release notes
no_version: true
---
-{% embed CHANGELOG.md %}
+{% embed raw/CHANGELOG.md %}
diff --git a/app/docs/dev/crds/kuma.io_circuitbreakers.yaml b/app/docs/dev/crds/kuma.io_circuitbreakers.yaml
new file mode 100644
index 000000000..8a0af998e
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_circuitbreakers.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: circuitbreakers.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: CircuitBreaker
+ listKind: CircuitBreakerList
+ plural: circuitbreakers
+ singular: circuitbreaker
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma CircuitBreaker resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_containerpatches.yaml b/app/docs/dev/crds/kuma.io_containerpatches.yaml
similarity index 70%
rename from app/assets/dev/raw/crds/kuma.io_containerpatches.yaml
rename to app/docs/dev/crds/kuma.io_containerpatches.yaml
index 654bbf928..5fbde85cf 100644
--- a/app/assets/dev/raw/crds/kuma.io_containerpatches.yaml
+++ b/app/docs/dev/crds/kuma.io_containerpatches.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: containerpatches.kuma.io
spec:
group: kuma.io
@@ -23,19 +23,14 @@ spec:
sidecar containers.
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
mesh:
type: string
@@ -67,9 +62,9 @@ spec:
description: Path is a jsonpatch path string.
type: string
value:
- description: |-
- Value must be a string representing a valid json object used
- by replace and add operations. String has to be escaped with " to be valid a json object.
+ description: Value must be a string representing a valid json
+ object used by replace and add operations. String has to be
+ escaped with " to be valid a json object.
type: string
required:
- op
@@ -99,9 +94,9 @@ spec:
description: Path is a jsonpatch path string.
type: string
value:
- description: |-
- Value must be a string representing a valid json object used
- by replace and add operations. String has to be escaped with " to be valid a json object.
+ description: Value must be a string representing a valid json
+ object used by replace and add operations. String has to be
+ escaped with " to be valid a json object.
type: string
required:
- op
diff --git a/app/docs/dev/crds/kuma.io_dataplaneinsights.yaml b/app/docs/dev/crds/kuma.io_dataplaneinsights.yaml
new file mode 100644
index 000000000..79a541f21
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_dataplaneinsights.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: dataplaneinsights.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: DataplaneInsight
+ listKind: DataplaneInsightList
+ plural: dataplaneinsights
+ singular: dataplaneinsight
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ status:
+ description: Status is the status the Kuma resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_dataplanes.yaml b/app/docs/dev/crds/kuma.io_dataplanes.yaml
similarity index 63%
rename from app/assets/dev/raw/crds/kuma.io_dataplanes.yaml
rename to app/docs/dev/crds/kuma.io_dataplanes.yaml
index 9d0be07cd..1f0088638 100644
--- a/app/assets/dev/raw/crds/kuma.io_dataplanes.yaml
+++ b/app/docs/dev/crds/kuma.io_dataplanes.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: dataplanes.kuma.io
spec:
group: kuma.io
@@ -40,23 +40,17 @@ spec:
openAPIV3Schema:
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
mesh:
- description: |-
- Mesh is the name of the Kuma mesh this resource belongs to.
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
It may be omitted for cluster-scoped resources.
type: string
metadata:
diff --git a/app/docs/dev/crds/kuma.io_externalservices.yaml b/app/docs/dev/crds/kuma.io_externalservices.yaml
new file mode 100644
index 000000000..02be62004
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_externalservices.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: externalservices.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: ExternalService
+ listKind: ExternalServiceList
+ plural: externalservices
+ singular: externalservice
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma ExternalService resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_faultinjections.yaml b/app/docs/dev/crds/kuma.io_faultinjections.yaml
new file mode 100644
index 000000000..5eeef6418
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_faultinjections.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: faultinjections.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: FaultInjection
+ listKind: FaultInjectionList
+ plural: faultinjections
+ singular: faultinjection
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma FaultInjection resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_healthchecks.yaml b/app/docs/dev/crds/kuma.io_healthchecks.yaml
new file mode 100644
index 000000000..c138c08e7
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_healthchecks.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: healthchecks.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: HealthCheck
+ listKind: HealthCheckList
+ plural: healthchecks
+ singular: healthcheck
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma HealthCheck resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_meshaccesslogs.yaml b/app/docs/dev/crds/kuma.io_meshaccesslogs.yaml
similarity index 71%
rename from app/assets/dev/raw/crds/kuma.io_meshaccesslogs.yaml
rename to app/docs/dev/crds/kuma.io_meshaccesslogs.yaml
index df9919d58..e06b37ead 100644
--- a/app/assets/dev/raw/crds/kuma.io_meshaccesslogs.yaml
+++ b/app/docs/dev/crds/kuma.io_meshaccesslogs.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: meshaccesslogs.kuma.io
spec:
group: kuma.io
@@ -28,19 +28,14 @@ spec:
openAPIV3Schema:
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -53,9 +48,8 @@ spec:
items:
properties:
default:
- description: |-
- Default is a configuration specific to the group of clients referenced in
- 'targetRef'
+ description: Default is a configuration specific to the group
+ of clients referenced in 'targetRef'
properties:
backends:
items:
@@ -65,9 +59,8 @@ spec:
file based access logs
properties:
format:
- description: |-
- Format of access logs. Placeholders available on
- https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
+ description: Format of access logs. Placeholders
+ available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
properties:
json:
example:
@@ -110,9 +103,8 @@ spec:
description: Defines an OpenTelemetry logging backend.
properties:
attributes:
- description: |-
- Attributes can contain placeholders available on
- https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
+ description: Attributes can contain placeholders
+ available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
example:
- key: mesh
value: '%KUMA_MESH%'
@@ -125,11 +117,9 @@ spec:
type: object
type: array
body:
- description: |-
- Body is a raw string or an OTLP any value as described at
- https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body
- It can contain placeholders available on
- https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
+ description: Body is a raw string or an OTLP any
+ value as described at https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body
+ It can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
example:
kvlistValue:
values:
@@ -155,9 +145,8 @@ spec:
minLength: 1
type: string
format:
- description: |-
- Format of access logs. Placeholders available on
- https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
+ description: Format of access logs. Placeholders
+ available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
properties:
json:
example:
@@ -202,9 +191,8 @@ spec:
type: array
type: object
targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- clients.
+ description: TargetRef is a reference to the resource that represents
+ a group of clients.
properties:
kind:
description: Kind of the referenced resource
@@ -221,27 +209,15 @@ spec:
cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
required:
@@ -249,10 +225,9 @@ spec:
type: object
type: array
targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined in-place.
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined in-place.
properties:
kind:
description: Kind of the referenced resource
@@ -269,27 +244,14 @@ spec:
mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
to:
@@ -298,9 +260,8 @@ spec:
items:
properties:
default:
- description: |-
- Default is a configuration specific to the group of destinations referenced in
- 'targetRef'
+ description: Default is a configuration specific to the group
+ of destinations referenced in 'targetRef'
properties:
backends:
items:
@@ -310,9 +271,8 @@ spec:
file based access logs
properties:
format:
- description: |-
- Format of access logs. Placeholders available on
- https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
+ description: Format of access logs. Placeholders
+ available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
properties:
json:
example:
@@ -355,9 +315,8 @@ spec:
description: Defines an OpenTelemetry logging backend.
properties:
attributes:
- description: |-
- Attributes can contain placeholders available on
- https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
+ description: Attributes can contain placeholders
+ available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
example:
- key: mesh
value: '%KUMA_MESH%'
@@ -370,11 +329,9 @@ spec:
type: object
type: array
body:
- description: |-
- Body is a raw string or an OTLP any value as described at
- https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body
- It can contain placeholders available on
- https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
+ description: Body is a raw string or an OTLP any
+ value as described at https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body
+ It can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
example:
kvlistValue:
values:
@@ -400,9 +357,8 @@ spec:
minLength: 1
type: string
format:
- description: |-
- Format of access logs. Placeholders available on
- https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
+ description: Format of access logs. Placeholders
+ available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators
properties:
json:
example:
@@ -447,9 +403,8 @@ spec:
type: array
type: object
targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
+ description: TargetRef is a reference to the resource that represents
+ a group of destinations.
properties:
kind:
description: Kind of the referenced resource
@@ -466,27 +421,15 @@ spec:
cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
required:
diff --git a/app/docs/dev/crds/kuma.io_meshcircuitbreakers.yaml b/app/docs/dev/crds/kuma.io_meshcircuitbreakers.yaml
new file mode 100644
index 000000000..ffae58e55
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshcircuitbreakers.yaml
@@ -0,0 +1,662 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshcircuitbreakers.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: MeshCircuitBreaker
+ listKind: MeshCircuitBreakerList
+ plural: meshcircuitbreakers
+ singular: meshcircuitbreaker
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .spec.targetRef.kind
+ name: TargetRef Kind
+ type: string
+ - jsonPath: .spec.targetRef.name
+ name: TargetRef Name
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma MeshCircuitBreaker
+ resource.
+ properties:
+ from:
+ description: From list makes a match between clients and corresponding
+ configurations
+ items:
+ properties:
+ default:
+ description: Default is a configuration specific to the group
+ of destinations referenced in 'targetRef'
+ properties:
+ connectionLimits:
+ description: ConnectionLimits contains configuration of
+ each circuit breaking limit, which when exceeded makes
+ the circuit breaker to become open (no traffic is allowed
+ like no current is allowed in the circuits when physical
+ circuit breaker ir open)
+ properties:
+ maxConnectionPools:
+ description: The maximum number of connection pools
+ per cluster that are concurrently supported at once.
+ Set this for clusters which create a large number
+ of connection pools.
+ format: int32
+ type: integer
+ maxConnections:
+ description: The maximum number of connections allowed
+ to be made to the upstream cluster.
+ format: int32
+ type: integer
+ maxPendingRequests:
+ description: The maximum number of pending requests
+ that are allowed to the upstream cluster. This limit
+ is applied as a connection limit for non-HTTP traffic.
+ format: int32
+ type: integer
+ maxRequests:
+ description: The maximum number of parallel requests
+ that are allowed to be made to the upstream cluster.
+ This limit does not apply to non-HTTP traffic.
+ format: int32
+ type: integer
+ maxRetries:
+ description: The maximum number of parallel retries
+ that will be allowed to the upstream cluster.
+ format: int32
+ type: integer
+ type: object
+ outlierDetection:
+ description: OutlierDetection contains the configuration
+ of the process of dynamically determining whether some
+ number of hosts in an upstream cluster are performing
+ unlike the others and removing them from the healthy load
+ balancing set. Performance might be along different axes
+ such as consecutive failures, temporal success rate, temporal
+ latency, etc. Outlier detection is a form of passive health
+ checking.
+ properties:
+ baseEjectionTime:
+ description: The base time that a host is ejected for.
+ The real time is equal to the base time multiplied
+ by the number of times the host has been ejected.
+ type: string
+ detectors:
+ description: Contains configuration for supported outlier
+ detectors
+ properties:
+ failurePercentage:
+ description: Failure Percentage based outlier detection
+ functions similarly to success rate detection,
+ in that it relies on success rate data from each
+ host in a cluster. However, rather than compare
+ those values to the mean success rate of the cluster
+ as a whole, they are compared to a flat user-configured
+ threshold. This threshold is configured via the
+ outlierDetection.failurePercentageThreshold field.
+ The other configuration fields for failure percentage
+ based detection are similar to the fields for
+ success rate detection. As with success rate detection,
+ detection will not be performed for a host if
+ its request volume over the aggregation interval
+ is less than the outlierDetection.detectors.failurePercentage.requestVolume
+ value. Detection also will not be performed for
+ a cluster if the number of hosts with the minimum
+ required request volume in an interval is less
+ than the outlierDetection.detectors.failurePercentage.minimumHosts
+ value.
+ properties:
+ minimumHosts:
+ description: The minimum number of hosts in
+ a cluster in order to perform failure percentage-based
+ ejection. If the total number of hosts in
+ the cluster is less than this value, failure
+ percentage-based ejection will not be performed.
+ format: int32
+ type: integer
+ requestVolume:
+ description: The minimum number of total requests
+ that must be collected in one interval (as
+ defined by the interval duration above) to
+ perform failure percentage-based ejection
+ for this host. If the volume is lower than
+ this setting, failure percentage-based ejection
+ will not be performed for this host.
+ format: int32
+ type: integer
+ threshold:
+ description: The failure percentage to use when
+ determining failure percentage-based outlier
+ detection. If the failure percentage of a
+ given host is greater than or equal to this
+ value, it will be ejected.
+ format: int32
+ type: integer
+ type: object
+ gatewayFailures:
+ description: In the default mode (outlierDetection.splitExternalLocalOriginErrors
+ is false) this detection type takes into account
+ a subset of 5xx errors, called "gateway errors"
+ (502, 503 or 504 status code) and local origin
+ failures, such as timeout, TCP reset etc. In split
+ mode (outlierDetection.splitExternalLocalOriginErrors
+ is true) this detection type takes into account
+ a subset of 5xx errors, called "gateway errors"
+ (502, 503 or 504 status code) and is supported
+ only by the http router.
+ properties:
+ consecutive:
+ description: The number of consecutive gateway
+ failures (502, 503, 504 status codes) before
+ a consecutive gateway failure ejection occurs.
+ format: int32
+ type: integer
+ type: object
+ localOriginFailures:
+ description: 'This detection type is enabled only
+ when outlierDetection.splitExternalLocalOriginErrors
+ is true and takes into account only locally originated
+ errors (timeout, reset, etc). If Envoy repeatedly
+ cannot connect to an upstream host or communication
+ with the upstream host is repeatedly interrupted,
+ it will be ejected. Various locally originated
+ problems are detected: timeout, TCP reset, ICMP
+ errors, etc. This detection type is supported
+ by http router and tcp proxy.'
+ properties:
+ consecutive:
+ description: The number of consecutive locally
+ originated failures before ejection occurs.
+ Parameter takes effect only when splitExternalAndLocalErrors
+ is set to true.
+ format: int32
+ type: integer
+ type: object
+ successRate:
+ description: 'Success Rate based outlier detection
+ aggregates success rate data from every host in
+ a cluster. Then at given intervals ejects hosts
+ based on statistical outlier detection. Success
+ Rate outlier detection will not be calculated
+ for a host if its request volume over the aggregation
+ interval is less than the outlierDetection.detectors.successRate.requestVolume
+ value. Moreover, detection will not be performed
+ for a cluster if the number of hosts with the
+ minimum required request volume in an interval
+ is less than the outlierDetection.detectors.successRate.minimumHosts
+ value. In the default configuration mode (outlierDetection.splitExternalLocalOriginErrors
+ is false) this detection type takes into account
+ all types of errors: locally and externally originated.
+ In split mode (outlierDetection.splitExternalLocalOriginErrors
+ is true), locally originated errors and externally
+ originated (transaction) errors are counted and
+ treated separately.'
+ properties:
+ minimumHosts:
+ description: The number of hosts in a cluster
+ that must have enough request volume to detect
+ success rate outliers. If the number of hosts
+ is less than this setting, outlier detection
+ via success rate statistics is not performed
+ for any host in the cluster.
+ format: int32
+ type: integer
+ requestVolume:
+ description: The minimum number of total requests
+ that must be collected in one interval (as
+ defined by the interval duration configured
+ in outlierDetection section) to include this
+ host in success rate based outlier detection.
+ If the volume is lower than this setting,
+ outlier detection via success rate statistics
+ is not performed for that host.
+ format: int32
+ type: integer
+ standardDeviationFactor:
+ anyOf:
+ - type: integer
+ - type: string
+ description: 'This factor is used to determine
+ the ejection threshold for success rate outlier
+ ejection. The ejection threshold is the difference
+ between the mean success rate, and the product
+ of this factor and the standard deviation
+ of the mean success rate: mean - (standard_deviation
+ * success_rate_standard_deviation_factor).
+ Either int or decimal represented as string.'
+ x-kubernetes-int-or-string: true
+ type: object
+ totalFailures:
+ description: 'In the default mode (outlierDetection.splitExternalAndLocalErrors
+ is false) this detection type takes into account
+ all generated errors: locally originated and externally
+ originated (transaction) errors. In split mode
+ (outlierDetection.splitExternalLocalOriginErrors
+ is true) this detection type takes into account
+ only externally originated (transaction) errors,
+ ignoring locally originated errors. If an upstream
+ host is an HTTP-server, only 5xx types of error
+ are taken into account (see Consecutive Gateway
+ Failure for exceptions). Properly formatted responses,
+ even when they carry an operational error (like
+ index not found, access denied) are not taken
+ into account.'
+ properties:
+ consecutive:
+ description: The number of consecutive server-side
+ error responses (for HTTP traffic, 5xx responses;
+ for TCP traffic, connection failures; for
+ Redis, failure to respond PONG; etc.) before
+ a consecutive total failure ejection occurs.
+ format: int32
+ type: integer
+ type: object
+ type: object
+ disabled:
+ description: When set to true, outlierDetection configuration
+ won't take any effect
+ type: boolean
+ interval:
+ description: The time interval between ejection analysis
+ sweeps. This can result in both new ejections and
+ hosts being returned to service.
+ type: string
+ maxEjectionPercent:
+ description: The maximum % of an upstream cluster that
+ can be ejected due to outlier detection. Defaults
+ to 10% but will eject at least one host regardless
+ of the value.
+ format: int32
+ type: integer
+ splitExternalAndLocalErrors:
+ description: 'Determines whether to distinguish local
+ origin failures from external errors. If set to true
+ the following configuration parameters are taken into
+ account: detectors.localOriginFailures.consecutive'
+ type: boolean
+ type: object
+ type: object
+ targetRef:
+ description: TargetRef is a reference to the resource that represents
+ a group of destinations.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify
+ cross mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: array
+ targetRef:
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined in place.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify cross
+ mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ to:
+ description: To list makes a match between the consumed services and
+ corresponding configurations
+ items:
+ properties:
+ default:
+ description: Default is a configuration specific to the group
+ of destinations referenced in 'targetRef'
+ properties:
+ connectionLimits:
+ description: ConnectionLimits contains configuration of
+ each circuit breaking limit, which when exceeded makes
+ the circuit breaker to become open (no traffic is allowed
+ like no current is allowed in the circuits when physical
+ circuit breaker ir open)
+ properties:
+ maxConnectionPools:
+ description: The maximum number of connection pools
+ per cluster that are concurrently supported at once.
+ Set this for clusters which create a large number
+ of connection pools.
+ format: int32
+ type: integer
+ maxConnections:
+ description: The maximum number of connections allowed
+ to be made to the upstream cluster.
+ format: int32
+ type: integer
+ maxPendingRequests:
+ description: The maximum number of pending requests
+ that are allowed to the upstream cluster. This limit
+ is applied as a connection limit for non-HTTP traffic.
+ format: int32
+ type: integer
+ maxRequests:
+ description: The maximum number of parallel requests
+ that are allowed to be made to the upstream cluster.
+ This limit does not apply to non-HTTP traffic.
+ format: int32
+ type: integer
+ maxRetries:
+ description: The maximum number of parallel retries
+ that will be allowed to the upstream cluster.
+ format: int32
+ type: integer
+ type: object
+ outlierDetection:
+ description: OutlierDetection contains the configuration
+ of the process of dynamically determining whether some
+ number of hosts in an upstream cluster are performing
+ unlike the others and removing them from the healthy load
+ balancing set. Performance might be along different axes
+ such as consecutive failures, temporal success rate, temporal
+ latency, etc. Outlier detection is a form of passive health
+ checking.
+ properties:
+ baseEjectionTime:
+ description: The base time that a host is ejected for.
+ The real time is equal to the base time multiplied
+ by the number of times the host has been ejected.
+ type: string
+ detectors:
+ description: Contains configuration for supported outlier
+ detectors
+ properties:
+ failurePercentage:
+ description: Failure Percentage based outlier detection
+ functions similarly to success rate detection,
+ in that it relies on success rate data from each
+ host in a cluster. However, rather than compare
+ those values to the mean success rate of the cluster
+ as a whole, they are compared to a flat user-configured
+ threshold. This threshold is configured via the
+ outlierDetection.failurePercentageThreshold field.
+ The other configuration fields for failure percentage
+ based detection are similar to the fields for
+ success rate detection. As with success rate detection,
+ detection will not be performed for a host if
+ its request volume over the aggregation interval
+ is less than the outlierDetection.detectors.failurePercentage.requestVolume
+ value. Detection also will not be performed for
+ a cluster if the number of hosts with the minimum
+ required request volume in an interval is less
+ than the outlierDetection.detectors.failurePercentage.minimumHosts
+ value.
+ properties:
+ minimumHosts:
+ description: The minimum number of hosts in
+ a cluster in order to perform failure percentage-based
+ ejection. If the total number of hosts in
+ the cluster is less than this value, failure
+ percentage-based ejection will not be performed.
+ format: int32
+ type: integer
+ requestVolume:
+ description: The minimum number of total requests
+ that must be collected in one interval (as
+ defined by the interval duration above) to
+ perform failure percentage-based ejection
+ for this host. If the volume is lower than
+ this setting, failure percentage-based ejection
+ will not be performed for this host.
+ format: int32
+ type: integer
+ threshold:
+ description: The failure percentage to use when
+ determining failure percentage-based outlier
+ detection. If the failure percentage of a
+ given host is greater than or equal to this
+ value, it will be ejected.
+ format: int32
+ type: integer
+ type: object
+ gatewayFailures:
+ description: In the default mode (outlierDetection.splitExternalLocalOriginErrors
+ is false) this detection type takes into account
+ a subset of 5xx errors, called "gateway errors"
+ (502, 503 or 504 status code) and local origin
+ failures, such as timeout, TCP reset etc. In split
+ mode (outlierDetection.splitExternalLocalOriginErrors
+ is true) this detection type takes into account
+ a subset of 5xx errors, called "gateway errors"
+ (502, 503 or 504 status code) and is supported
+ only by the http router.
+ properties:
+ consecutive:
+ description: The number of consecutive gateway
+ failures (502, 503, 504 status codes) before
+ a consecutive gateway failure ejection occurs.
+ format: int32
+ type: integer
+ type: object
+ localOriginFailures:
+ description: 'This detection type is enabled only
+ when outlierDetection.splitExternalLocalOriginErrors
+ is true and takes into account only locally originated
+ errors (timeout, reset, etc). If Envoy repeatedly
+ cannot connect to an upstream host or communication
+ with the upstream host is repeatedly interrupted,
+ it will be ejected. Various locally originated
+ problems are detected: timeout, TCP reset, ICMP
+ errors, etc. This detection type is supported
+ by http router and tcp proxy.'
+ properties:
+ consecutive:
+ description: The number of consecutive locally
+ originated failures before ejection occurs.
+ Parameter takes effect only when splitExternalAndLocalErrors
+ is set to true.
+ format: int32
+ type: integer
+ type: object
+ successRate:
+ description: 'Success Rate based outlier detection
+ aggregates success rate data from every host in
+ a cluster. Then at given intervals ejects hosts
+ based on statistical outlier detection. Success
+ Rate outlier detection will not be calculated
+ for a host if its request volume over the aggregation
+ interval is less than the outlierDetection.detectors.successRate.requestVolume
+ value. Moreover, detection will not be performed
+ for a cluster if the number of hosts with the
+ minimum required request volume in an interval
+ is less than the outlierDetection.detectors.successRate.minimumHosts
+ value. In the default configuration mode (outlierDetection.splitExternalLocalOriginErrors
+ is false) this detection type takes into account
+ all types of errors: locally and externally originated.
+ In split mode (outlierDetection.splitExternalLocalOriginErrors
+ is true), locally originated errors and externally
+ originated (transaction) errors are counted and
+ treated separately.'
+ properties:
+ minimumHosts:
+ description: The number of hosts in a cluster
+ that must have enough request volume to detect
+ success rate outliers. If the number of hosts
+ is less than this setting, outlier detection
+ via success rate statistics is not performed
+ for any host in the cluster.
+ format: int32
+ type: integer
+ requestVolume:
+ description: The minimum number of total requests
+ that must be collected in one interval (as
+ defined by the interval duration configured
+ in outlierDetection section) to include this
+ host in success rate based outlier detection.
+ If the volume is lower than this setting,
+ outlier detection via success rate statistics
+ is not performed for that host.
+ format: int32
+ type: integer
+ standardDeviationFactor:
+ anyOf:
+ - type: integer
+ - type: string
+ description: 'This factor is used to determine
+ the ejection threshold for success rate outlier
+ ejection. The ejection threshold is the difference
+ between the mean success rate, and the product
+ of this factor and the standard deviation
+ of the mean success rate: mean - (standard_deviation
+ * success_rate_standard_deviation_factor).
+ Either int or decimal represented as string.'
+ x-kubernetes-int-or-string: true
+ type: object
+ totalFailures:
+ description: 'In the default mode (outlierDetection.splitExternalAndLocalErrors
+ is false) this detection type takes into account
+ all generated errors: locally originated and externally
+ originated (transaction) errors. In split mode
+ (outlierDetection.splitExternalLocalOriginErrors
+ is true) this detection type takes into account
+ only externally originated (transaction) errors,
+ ignoring locally originated errors. If an upstream
+ host is an HTTP-server, only 5xx types of error
+ are taken into account (see Consecutive Gateway
+ Failure for exceptions). Properly formatted responses,
+ even when they carry an operational error (like
+ index not found, access denied) are not taken
+ into account.'
+ properties:
+ consecutive:
+ description: The number of consecutive server-side
+ error responses (for HTTP traffic, 5xx responses;
+ for TCP traffic, connection failures; for
+ Redis, failure to respond PONG; etc.) before
+ a consecutive total failure ejection occurs.
+ format: int32
+ type: integer
+ type: object
+ type: object
+ disabled:
+ description: When set to true, outlierDetection configuration
+ won't take any effect
+ type: boolean
+ interval:
+ description: The time interval between ejection analysis
+ sweeps. This can result in both new ejections and
+ hosts being returned to service.
+ type: string
+ maxEjectionPercent:
+ description: The maximum % of an upstream cluster that
+ can be ejected due to outlier detection. Defaults
+ to 10% but will eject at least one host regardless
+ of the value.
+ format: int32
+ type: integer
+ splitExternalAndLocalErrors:
+ description: 'Determines whether to distinguish local
+ origin failures from external errors. If set to true
+ the following configuration parameters are taken into
+ account: detectors.localOriginFailures.consecutive'
+ type: boolean
+ type: object
+ type: object
+ targetRef:
+ description: TargetRef is a reference to the resource that represents
+ a group of destinations.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify
+ cross mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: array
+ required:
+ - targetRef
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources: {}
diff --git a/app/docs/dev/crds/kuma.io_meshes.yaml b/app/docs/dev/crds/kuma.io_meshes.yaml
new file mode 100644
index 000000000..7e1848086
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshes.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshes.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: Mesh
+ listKind: MeshList
+ plural: meshes
+ singular: mesh
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma Mesh resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_meshfaultinjections.yaml b/app/docs/dev/crds/kuma.io_meshfaultinjections.yaml
new file mode 100644
index 000000000..be0a3a7ca
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshfaultinjections.yaml
@@ -0,0 +1,198 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshfaultinjections.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: MeshFaultInjection
+ listKind: MeshFaultInjectionList
+ plural: meshfaultinjections
+ singular: meshfaultinjection
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .spec.targetRef.kind
+ name: TargetRef Kind
+ type: string
+ - jsonPath: .spec.targetRef.name
+ name: TargetRef Name
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma MeshFaultInjection
+ resource.
+ properties:
+ from:
+ description: From list makes a match between clients and corresponding
+ configurations
+ items:
+ properties:
+ default:
+ description: Default is a configuration specific to the group
+ of destinations referenced in 'targetRef'
+ properties:
+ http:
+ description: Http allows to define list of Http faults between
+ dataplanes.
+ items:
+ description: FaultInjection defines the configuration
+ of faults between dataplanes.
+ properties:
+ abort:
+ description: Abort defines a configuration of not
+ delivering requests to destination service and replacing
+ the responses from destination dataplane by predefined
+ status code
+ properties:
+ httpStatus:
+ description: HTTP status code which will be returned
+ to source side
+ format: int32
+ type: integer
+ percentage:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Percentage of requests on which abort
+ will be injected, has to be either int or decimal
+ represented as string.
+ x-kubernetes-int-or-string: true
+ required:
+ - httpStatus
+ - percentage
+ type: object
+ delay:
+ description: Delay defines configuration of delaying
+ a response from a destination
+ properties:
+ percentage:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Percentage of requests on which delay
+ will be injected, has to be either int or decimal
+ represented as string.
+ x-kubernetes-int-or-string: true
+ value:
+ description: The duration during which the response
+ will be delayed
+ type: string
+ required:
+ - percentage
+ - value
+ type: object
+ responseBandwidth:
+ description: ResponseBandwidth defines a configuration
+ to limit the speed of responding to the requests
+ properties:
+ limit:
+ description: Limit is represented by value measure
+ in gbps, mbps, kbps or bps, e.g. 10kbps
+ type: string
+ percentage:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Percentage of requests on which response
+ bandwidth limit will be either int or decimal
+ represented as string.
+ x-kubernetes-int-or-string: true
+ required:
+ - limit
+ - percentage
+ type: object
+ type: object
+ type: array
+ type: object
+ targetRef:
+ description: TargetRef is a reference to the resource that represents
+ a group of destinations.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify
+ cross mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: array
+ targetRef:
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify cross
+ mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_meshgatewayconfigs.yaml b/app/docs/dev/crds/kuma.io_meshgatewayconfigs.yaml
similarity index 63%
rename from app/assets/dev/raw/crds/kuma.io_meshgatewayconfigs.yaml
rename to app/docs/dev/crds/kuma.io_meshgatewayconfigs.yaml
index 00fd45456..38c169939 100644
--- a/app/assets/dev/raw/crds/kuma.io_meshgatewayconfigs.yaml
+++ b/app/docs/dev/crds/kuma.io_meshgatewayconfigs.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: meshgatewayconfigs.kuma.io
spec:
group: kuma.io
@@ -19,24 +19,18 @@ spec:
- name: v1alpha1
schema:
openAPIV3Schema:
- description: |-
- MeshGatewayConfig holds the configuration of a MeshGateway. A
+ description: MeshGatewayConfig holds the configuration of a MeshGateway. A
GatewayClass can refer to a MeshGatewayConfig via parametersRef.
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -45,9 +39,8 @@ spec:
a Kuma MeshGateway.
properties:
crossMesh:
- description: |-
- CrossMesh specifies whether listeners configured by this gateway are
- cross mesh listeners.
+ description: CrossMesh specifies whether listeners configured by this
+ gateway are cross mesh listeners.
type: boolean
podTemplate:
description: PodTemplate configures the Pod owned by this config.
@@ -97,37 +90,29 @@ spec:
type: object
replicas:
default: 1
- description: |-
- Replicas is the number of dataplane proxy replicas to create. For
- now this is a fixed number, but in the future it could be
- automatically scaled based on metrics.
+ description: Replicas is the number of dataplane proxy replicas to
+ create. For now this is a fixed number, but in the future it could
+ be automatically scaled based on metrics.
format: int32
minimum: 1
type: integer
resources:
- description: |-
- Resources specifies the compute resources for the proxy container.
- The default can be set in the control plane config.
+ description: Resources specifies the compute resources for the proxy
+ container. The default can be set in the control plane config.
properties:
claims:
- description: |-
- Claims lists the names of resources, defined in spec.resourceClaims,
- that are used by this container.
-
-
- This is an alpha field and requires enabling the
- DynamicResourceAllocation feature gate.
-
-
- This field is immutable. It can only be set for containers.
+ description: "Claims lists the names of resources, defined in
+ spec.resourceClaims, that are used by this container. \n This
+ is an alpha field and requires enabling the DynamicResourceAllocation
+ feature gate. \n This field is immutable. It can only be set
+ for containers."
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
- description: |-
- Name must match the name of one entry in pod.spec.resourceClaims of
- the Pod where this field is used. It makes that resource available
- inside a container.
+ description: Name must match the name of one entry in pod.spec.resourceClaims
+ of the Pod where this field is used. It makes that resource
+ available inside a container.
type: string
required:
- name
@@ -143,9 +128,8 @@ spec:
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- description: |-
- Limits describes the maximum amount of compute resources allowed.
- More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ description: 'Limits describes the maximum amount of compute resources
+ allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
requests:
additionalProperties:
@@ -154,11 +138,11 @@ spec:
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- description: |-
- Requests describes the minimum amount of compute resources required.
- If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
- otherwise to an implementation-defined value. Requests cannot exceed Limits.
- More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ description: 'Requests describes the minimum amount of compute
+ resources required. If Requests is omitted for a container,
+ it defaults to Limits if that is explicitly specified, otherwise
+ to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
type: object
serviceTemplate:
@@ -190,12 +174,11 @@ spec:
type: object
serviceType:
default: LoadBalancer
- description: |-
- ServiceType specifies the type of managed Service that will be
- created to expose the dataplane proxies to traffic from outside
- the cluster. The ports to expose will be taken from the matching Gateway
- resource. If there is no matching Gateway, the managed Service will
- be deleted.
+ description: ServiceType specifies the type of managed Service that
+ will be created to expose the dataplane proxies to traffic from
+ outside the cluster. The ports to expose will be taken from the
+ matching Gateway resource. If there is no matching Gateway, the
+ managed Service will be deleted.
enum:
- LoadBalancer
- ClusterIP
@@ -204,17 +187,15 @@ spec:
tags:
additionalProperties:
type: string
- description: |-
- Tags specifies a set of Kuma tags that are included in the
- MeshGatewayInstance and thus propagated to every Dataplane generated to
- serve the MeshGateway.
- These tags should include a maximum of one `kuma.io/service` tag.
+ description: Tags specifies a set of Kuma tags that are included in
+ the MeshGatewayInstance and thus propagated to every Dataplane generated
+ to serve the MeshGateway. These tags should include a maximum of
+ one `kuma.io/service` tag.
type: object
type: object
status:
- description: |-
- MeshGatewayConfigStatus holds information about the status of the gateway
- instance.
+ description: MeshGatewayConfigStatus holds information about the status
+ of the gateway instance.
type: object
type: object
served: true
diff --git a/app/assets/dev/raw/crds/kuma.io_meshgatewayinstances.yaml b/app/docs/dev/crds/kuma.io_meshgatewayinstances.yaml
similarity index 52%
rename from app/assets/dev/raw/crds/kuma.io_meshgatewayinstances.yaml
rename to app/docs/dev/crds/kuma.io_meshgatewayinstances.yaml
index afa0c4789..b0056e5ad 100644
--- a/app/assets/dev/raw/crds/kuma.io_meshgatewayinstances.yaml
+++ b/app/docs/dev/crds/kuma.io_meshgatewayinstances.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: meshgatewayinstances.kuma.io
spec:
group: kuma.io
@@ -19,24 +19,18 @@ spec:
- name: v1alpha1
schema:
openAPIV3Schema:
- description: |-
- MeshGatewayInstance represents a managed instance of a dataplane proxy for a Kuma
- Gateway.
+ description: MeshGatewayInstance represents a managed instance of a dataplane
+ proxy for a Kuma Gateway.
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -92,37 +86,29 @@ spec:
type: object
replicas:
default: 1
- description: |-
- Replicas is the number of dataplane proxy replicas to create. For
- now this is a fixed number, but in the future it could be
- automatically scaled based on metrics.
+ description: Replicas is the number of dataplane proxy replicas to
+ create. For now this is a fixed number, but in the future it could
+ be automatically scaled based on metrics.
format: int32
minimum: 1
type: integer
resources:
- description: |-
- Resources specifies the compute resources for the proxy container.
- The default can be set in the control plane config.
+ description: Resources specifies the compute resources for the proxy
+ container. The default can be set in the control plane config.
properties:
claims:
- description: |-
- Claims lists the names of resources, defined in spec.resourceClaims,
- that are used by this container.
-
-
- This is an alpha field and requires enabling the
- DynamicResourceAllocation feature gate.
-
-
- This field is immutable. It can only be set for containers.
+ description: "Claims lists the names of resources, defined in
+ spec.resourceClaims, that are used by this container. \n This
+ is an alpha field and requires enabling the DynamicResourceAllocation
+ feature gate. \n This field is immutable. It can only be set
+ for containers."
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
- description: |-
- Name must match the name of one entry in pod.spec.resourceClaims of
- the Pod where this field is used. It makes that resource available
- inside a container.
+ description: Name must match the name of one entry in pod.spec.resourceClaims
+ of the Pod where this field is used. It makes that resource
+ available inside a container.
type: string
required:
- name
@@ -138,9 +124,8 @@ spec:
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- description: |-
- Limits describes the maximum amount of compute resources allowed.
- More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ description: 'Limits describes the maximum amount of compute resources
+ allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
requests:
additionalProperties:
@@ -149,11 +134,11 @@ spec:
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- description: |-
- Requests describes the minimum amount of compute resources required.
- If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
- otherwise to an implementation-defined value. Requests cannot exceed Limits.
- More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ description: 'Requests describes the minimum amount of compute
+ resources required. If Requests is omitted for a container,
+ it defaults to Limits if that is explicitly specified, otherwise
+ to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
type: object
serviceTemplate:
@@ -185,12 +170,11 @@ spec:
type: object
serviceType:
default: LoadBalancer
- description: |-
- ServiceType specifies the type of managed Service that will be
- created to expose the dataplane proxies to traffic from outside
- the cluster. The ports to expose will be taken from the matching Gateway
- resource. If there is no matching Gateway, the managed Service will
- be deleted.
+ description: ServiceType specifies the type of managed Service that
+ will be created to expose the dataplane proxies to traffic from
+ outside the cluster. The ports to expose will be taken from the
+ matching Gateway resource. If there is no matching Gateway, the
+ managed Service will be deleted.
enum:
- LoadBalancer
- ClusterIP
@@ -199,58 +183,55 @@ spec:
tags:
additionalProperties:
type: string
- description: |-
- Tags specifies the Kuma tags that are propagated to the managed
- dataplane proxies. These tags should include exactly one
- `kuma.io/service` tag, and should match exactly one Gateway
- resource.
+ description: Tags specifies the Kuma tags that are propagated to the
+ managed dataplane proxies. These tags should include exactly one
+ `kuma.io/service` tag, and should match exactly one Gateway resource.
type: object
type: object
status:
- description: |-
- MeshGatewayInstanceStatus holds information about the status of the gateway
- instance.
+ description: MeshGatewayInstanceStatus holds information about the status
+ of the gateway instance.
properties:
conditions:
description: Conditions is an array of gateway instance conditions.
items:
description: "Condition contains details for one aspect of the current
- state of this API Resource.\n---\nThis struct is intended for
- direct use as an array at the field path .status.conditions. For
- example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
- observations of a foo's current state.\n\t // Known .status.conditions.type
- are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
- +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
- \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
- patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
- \ // other fields\n\t}"
+ state of this API Resource. --- This struct is intended for direct
+ use as an array at the field path .status.conditions. For example,
+ \n type FooStatus struct{ // Represents the observations of a
+ foo's current state. // Known .status.conditions.type are: \"Available\",
+ \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
+ // +listType=map // +listMapKey=type Conditions []metav1.Condition
+ `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
+ protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
+ description: lastTransitionTime is the last time the condition
+ transitioned from one status to another. This should be when
+ the underlying condition changed. If that is not known, then
+ using the time when the API field changed is acceptable.
format: date-time
type: string
message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
+ description: message is a human readable message indicating
+ details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
+ description: observedGeneration represents the .metadata.generation
+ that the condition was set based upon. For instance, if .metadata.generation
+ is currently 12, but the .status.conditions[x].observedGeneration
+ is 9, the condition is out of date with respect to the current
+ state of the instance.
format: int64
minimum: 0
type: integer
reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
+ description: reason contains a programmatic identifier indicating
+ the reason for the condition's last transition. Producers
+ of specific condition types may define expected values and
+ meanings for this field, and whether the values are considered
+ a guaranteed API. The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
@@ -264,12 +245,11 @@ spec:
- Unknown
type: string
type:
- description: |-
- type of condition in CamelCase or in foo.example.com/CamelCase.
- ---
- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
- useful (see .node.status.conditions), the ability to deconflict is important.
- The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
+ --- Many .condition.type values are consistent across resources
+ like Available, but because arbitrary conditions can be useful
+ (see .node.status.conditions), the ability to deconflict is
+ important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
@@ -285,54 +265,41 @@ spec:
- type
x-kubernetes-list-type: map
loadBalancer:
- description: |-
- LoadBalancer contains the current status of the load-balancer,
+ description: LoadBalancer contains the current status of the load-balancer,
if one is present.
properties:
ingress:
- description: |-
- Ingress is a list containing ingress points for the load-balancer.
- Traffic intended for the service should be sent to these ingress points.
+ description: Ingress is a list containing ingress points for the
+ load-balancer. Traffic intended for the service should be sent
+ to these ingress points.
items:
- description: |-
- LoadBalancerIngress represents the status of a load-balancer ingress point:
- traffic intended for the service should be sent to an ingress point.
+ description: 'LoadBalancerIngress represents the status of a
+ load-balancer ingress point: traffic intended for the service
+ should be sent to an ingress point.'
properties:
hostname:
- description: |-
- Hostname is set for load-balancer ingress points that are DNS based
- (typically AWS load-balancers)
+ description: Hostname is set for load-balancer ingress points
+ that are DNS based (typically AWS load-balancers)
type: string
ip:
- description: |-
- IP is set for load-balancer ingress points that are IP based
- (typically GCE or OpenStack load-balancers)
- type: string
- ipMode:
- description: |-
- IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified.
- Setting this to "VIP" indicates that traffic is delivered to the node with
- the destination set to the load-balancer's IP and port.
- Setting this to "Proxy" indicates that traffic is delivered to the node or pod with
- the destination set to the node's IP and node port or the pod's IP and port.
- Service implementations may use this information to adjust traffic routing.
+ description: IP is set for load-balancer ingress points
+ that are IP based (typically GCE or OpenStack load-balancers)
type: string
ports:
- description: |-
- Ports is a list of records of service ports
- If used, every port defined in the service should have an entry in it
+ description: Ports is a list of records of service ports
+ If used, every port defined in the service should have
+ an entry in it
items:
properties:
error:
- description: |-
- Error is to record the problem with the service port
- The format of the error shall comply with the following rules:
- - built-in error values shall be specified in this file and those shall use
- CamelCase names
- - cloud provider specific error values must have names that comply with the
- format foo.example.com/CamelCase.
- ---
- The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
+ description: 'Error is to record the problem with
+ the service port The format of the error shall comply
+ with the following rules: - built-in error values
+ shall be specified in this file and those shall
+ use CamelCase names - cloud provider specific error
+ values must have names that comply with the format
+ foo.example.com/CamelCase. --- The regex it matches
+ is (dns1123SubdomainFmt/)?(qualifiedNameFmt)'
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
@@ -343,9 +310,9 @@ spec:
type: integer
protocol:
default: TCP
- description: |-
- Protocol is the protocol of the service port of which status is recorded here
- The supported values are: "TCP", "UDP", "SCTP"
+ description: 'Protocol is the protocol of the service
+ port of which status is recorded here The supported
+ values are: "TCP", "UDP", "SCTP"'
type: string
required:
- port
diff --git a/app/docs/dev/crds/kuma.io_meshgatewayroutes.yaml b/app/docs/dev/crds/kuma.io_meshgatewayroutes.yaml
new file mode 100644
index 000000000..81ffb9b48
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshgatewayroutes.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshgatewayroutes.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: MeshGatewayRoute
+ listKind: MeshGatewayRouteList
+ plural: meshgatewayroutes
+ singular: meshgatewayroute
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma MeshGatewayRoute resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_meshgateways.yaml b/app/docs/dev/crds/kuma.io_meshgateways.yaml
new file mode 100644
index 000000000..76eba91ac
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshgateways.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshgateways.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: MeshGateway
+ listKind: MeshGatewayList
+ plural: meshgateways
+ singular: meshgateway
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma MeshGateway resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_meshhealthchecks.yaml b/app/docs/dev/crds/kuma.io_meshhealthchecks.yaml
similarity index 53%
rename from app/assets/dev/raw/crds/kuma.io_meshhealthchecks.yaml
rename to app/docs/dev/crds/kuma.io_meshhealthchecks.yaml
index 20a819786..f97352a7d 100644
--- a/app/assets/dev/raw/crds/kuma.io_meshhealthchecks.yaml
+++ b/app/docs/dev/crds/kuma.io_meshhealthchecks.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: meshhealthchecks.kuma.io
spec:
group: kuma.io
@@ -28,19 +28,14 @@ spec:
openAPIV3Schema:
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -48,10 +43,9 @@ spec:
description: Spec is the specification of the Kuma MeshHealthCheck resource.
properties:
targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
properties:
kind:
description: Kind of the referenced resource
@@ -68,27 +62,14 @@ spec:
mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
to:
@@ -97,37 +78,36 @@ spec:
items:
properties:
default:
- description: |-
- Default is a configuration specific to the group of destinations referenced in
- 'targetRef'
+ description: Default is a configuration specific to the group
+ of destinations referenced in 'targetRef'
properties:
alwaysLogHealthCheckFailures:
- description: |-
- If set to true, health check failure events will always be logged. If set
- to false, only the initial health check failure event will be logged. The
- default value is false.
+ description: If set to true, health check failure events
+ will always be logged. If set to false, only the initial
+ health check failure event will be logged. The default
+ value is false.
type: boolean
eventLogPath:
- description: |-
- Specifies the path to the file where Envoy can log health check events.
- If empty, no event log will be written.
+ description: Specifies the path to the file where Envoy
+ can log health check events. If empty, no event log will
+ be written.
type: string
failTrafficOnPanic:
- description: |-
- If set to true, Envoy will not consider any hosts when the cluster is in
- 'panic mode'. Instead, the cluster will fail all requests as if all hosts
- are unhealthy. This can help avoid potentially overwhelming a failing
+ description: If set to true, Envoy will not consider any
+ hosts when the cluster is in 'panic mode'. Instead, the
+ cluster will fail all requests as if all hosts are unhealthy.
+ This can help avoid potentially overwhelming a failing
service.
type: boolean
grpc:
- description: |-
- GrpcHealthCheck defines gRPC configuration which will instruct the service
- the health check will be made for is a gRPC service.
+ description: GrpcHealthCheck defines gRPC configuration
+ which will instruct the service the health check will
+ be made for is a gRPC service.
properties:
authority:
- description: |-
- The value of the :authority header in the gRPC health check request,
- by default name of the cluster this health check is associated with
+ description: The value of the :authority header in the
+ gRPC health check request, by default name of the
+ cluster this health check is associated with
type: string
disabled:
description: If true the GrpcHealthCheck is disabled
@@ -141,10 +121,10 @@ spec:
anyOf:
- type: integer
- type: string
- description: |-
- Allows to configure panic threshold for Envoy cluster. If not specified,
- the default is 50%. To disable panic mode, set to 0%.
- Either int or decimal represented as string.
+ description: Allows to configure panic threshold for Envoy
+ cluster. If not specified, the default is 50%. To disable
+ panic mode, set to 0%. Either int or decimal represented
+ as string.
x-kubernetes-int-or-string: true
healthyThreshold:
default: 1
@@ -153,9 +133,9 @@ spec:
format: int32
type: integer
http:
- description: |-
- HttpHealthCheck defines HTTP configuration which will instruct the service
- the health check will be made for is an HTTP service.
+ description: HttpHealthCheck defines HTTP configuration
+ which will instruct the service the health check will
+ be made for is an HTTP service.
properties:
disabled:
description: If true the HttpHealthCheck is disabled
@@ -169,14 +149,12 @@ spec:
type: array
path:
default: /
- description: |-
- The HTTP path which will be requested during the health check
- (ie. /health)
+ description: The HTTP path which will be requested during
+ the health check (ie. /health)
type: string
requestHeadersToAdd:
- description: |-
- The list of HTTP headers which should be added to each health check
- request
+ description: The list of HTTP headers which should be
+ added to each health check request
properties:
add:
items:
@@ -219,57 +197,59 @@ spec:
type: object
type: object
initialJitter:
- description: |-
- If specified, Envoy will start health checking after a random time in
- ms between 0 and initialJitter. This only applies to the first health
- check.
+ description: If specified, Envoy will start health checking
+ after a random time in ms between 0 and initialJitter.
+ This only applies to the first health check.
type: string
interval:
default: 1m
description: Interval between consecutive health checks.
type: string
intervalJitter:
- description: |-
- If specified, during every interval Envoy will add IntervalJitter to the
- wait time.
+ description: If specified, during every interval Envoy will
+ add IntervalJitter to the wait time.
type: string
intervalJitterPercent:
- description: |-
- If specified, during every interval Envoy will add IntervalJitter *
- IntervalJitterPercent / 100 to the wait time. If IntervalJitter and
- IntervalJitterPercent are both set, both of them will be used to
- increase the wait time.
+ description: If specified, during every interval Envoy will
+ add IntervalJitter * IntervalJitterPercent / 100 to the
+ wait time. If IntervalJitter and IntervalJitterPercent
+ are both set, both of them will be used to increase the
+ wait time.
format: int32
type: integer
noTrafficInterval:
- description: |-
- The "no traffic interval" is a special health check interval that is used
- when a cluster has never had traffic routed to it. This lower interval
- allows cluster information to be kept up to date, without sending a
- potentially large amount of active health checking traffic for no reason.
- Once a cluster has been used for traffic routing, Envoy will shift back
- to using the standard health check interval that is defined. Note that
- this interval takes precedence over any other. The default value for "no
- traffic interval" is 60 seconds.
+ description: The "no traffic interval" is a special health
+ check interval that is used when a cluster has never had
+ traffic routed to it. This lower interval allows cluster
+ information to be kept up to date, without sending a potentially
+ large amount of active health checking traffic for no
+ reason. Once a cluster has been used for traffic routing,
+ Envoy will shift back to using the standard health check
+ interval that is defined. Note that this interval takes
+ precedence over any other. The default value for "no traffic
+ interval" is 60 seconds.
type: string
reuseConnection:
description: Reuse health check connection between health
checks. Default is true.
type: boolean
tcp:
- description: |-
- TcpHealthCheck defines configuration for specifying bytes to send and
- expected response during the health check
+ description: TcpHealthCheck defines configuration for specifying
+ bytes to send and expected response during the health
+ check
properties:
disabled:
description: If true the TcpHealthCheck is disabled
type: boolean
receive:
- description: |-
- List of Base64 encoded blocks of strings expected as a response. When checking the response,
- "fuzzy" matching is performed such that each block must be found, and
- in the order specified, but not necessarily contiguous.
- If not provided or empty, checks will be performed as "connect only" and be marked as successful when TCP connection is successfully established.
+ description: List of Base64 encoded blocks of strings
+ expected as a response. When checking the response,
+ "fuzzy" matching is performed such that each block
+ must be found, and in the order specified, but not
+ necessarily contiguous. If not provided or empty,
+ checks will be performed as "connect only" and be
+ marked as successful when TCP connection is successfully
+ established.
items:
type: string
type: array
@@ -284,16 +264,14 @@ spec:
type: string
unhealthyThreshold:
default: 5
- description: |-
- Number of consecutive unhealthy checks before considering a host
- unhealthy.
+ description: Number of consecutive unhealthy checks before
+ considering a host unhealthy.
format: int32
type: integer
type: object
targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
+ description: TargetRef is a reference to the resource that represents
+ a group of destinations.
properties:
kind:
description: Kind of the referenced resource
@@ -310,27 +288,15 @@ spec:
cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
required:
diff --git a/app/assets/dev/raw/crds/kuma.io_meshhttproutes.yaml b/app/docs/dev/crds/kuma.io_meshhttproutes.yaml
similarity index 67%
rename from app/assets/dev/raw/crds/kuma.io_meshhttproutes.yaml
rename to app/docs/dev/crds/kuma.io_meshhttproutes.yaml
index fdb83f834..23e575e7e 100644
--- a/app/assets/dev/raw/crds/kuma.io_meshhttproutes.yaml
+++ b/app/docs/dev/crds/kuma.io_meshhttproutes.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: meshhttproutes.kuma.io
spec:
group: kuma.io
@@ -28,19 +28,14 @@ spec:
openAPIV3Schema:
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -48,10 +43,9 @@ spec:
description: Spec is the specification of the Kuma MeshHTTPRoute resource.
properties:
targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
properties:
kind:
description: Kind of the referenced resource
@@ -68,27 +62,14 @@ spec:
mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
to:
@@ -96,25 +77,14 @@ spec:
configuration.
items:
properties:
- hostnames:
- description: |-
- Hostnames is only valid when targeting MeshGateway and limits the
- effects of the rules to requests to this hostname.
- Given hostnames must intersect with the hostname of the listeners the
- route attaches to.
- items:
- type: string
- type: array
rules:
- description: |-
- Rules contains the routing rules applies to a combination of top-level
- targetRef and the targetRef in this entry.
+ description: Rules contains the routing rules applies to a combination
+ of top-level targetRef and the targetRef in this entry.
items:
properties:
default:
- description: |-
- Default holds routing rules that can be merged with rules from other
- policies.
+ description: Default holds routing rules that can be merged
+ with rules from other policies.
properties:
backendRefs:
items:
@@ -136,26 +106,15 @@ spec:
to identify cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource.
+ Can only be used with kinds: `MeshService`,
+ `MeshServiceSubset` and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
+ description: Tags used to select a subset of
+ proxies by tags. Can only be used with kinds
`MeshSubset` and `MeshServiceSubset`
type: object
weight:
@@ -168,10 +127,11 @@ spec:
items:
properties:
requestHeaderModifier:
- description: |-
- Only one action is supported per header name.
- Configuration to set or add multiple values for a header must use RFC 7230
- header value formatting, separating each value with a comma.
+ description: Only one action is supported per
+ header name. Configuration to set or add multiple
+ values for a header must use RFC 7230 header
+ value formatting, separating each value with
+ a comma.
properties:
add:
items:
@@ -240,36 +200,26 @@ spec:
use to identify cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced
+ resource. Can only be used with kinds:
+ `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset
+ of proxies by tags. Can only be used
+ with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
percentage:
anyOf:
- type: integer
- type: string
- description: |-
- Percentage of requests to mirror. If not specified, all requests
- to the target cluster will be mirrored.
+ description: Percentage of requests to mirror.
+ If not specified, all requests to the
+ target cluster will be mirrored.
x-kubernetes-int-or-string: true
required:
- backendRef
@@ -277,24 +227,26 @@ spec:
requestRedirect:
properties:
hostname:
- description: |-
- PreciseHostname is the fully qualified domain name of a network host. This
- matches the RFC 1123 definition of a hostname with 1 notable exception that
+ description: "PreciseHostname is the fully
+ qualified domain name of a network host.
+ This matches the RFC 1123 definition of
+ a hostname with 1 notable exception that
numeric IP addresses are not allowed.
-
-
- Note that as per RFC1035 and RFC1123, a *label* must consist of lower case
- alphanumeric characters or '-', and must start and end with an alphanumeric
- character. No other punctuation is allowed.
+ \n Note that as per RFC1035 and RFC1123,
+ a *label* must consist of lower case alphanumeric
+ characters or '-', and must start and
+ end with an alphanumeric character. No
+ other punctuation is allowed."
maxLength: 253
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
type: string
path:
- description: |-
- Path defines parameters used to modify the path of the incoming request.
- The modified path is then used to construct the location header.
- When empty, the request path is used as-is.
+ description: Path defines parameters used
+ to modify the path of the incoming request.
+ The modified path is then used to construct
+ the location header. When empty, the request
+ path is used as-is.
properties:
replaceFullPath:
type: string
@@ -309,10 +261,10 @@ spec:
- type
type: object
port:
- description: |-
- Port is the port to be used in the value of the `Location`
- header in the response.
- When empty, port (if specified) of the request is used.
+ description: Port is the port to be used
+ in the value of the `Location` header
+ in the response. When empty, port (if
+ specified) of the request is used.
format: int32
maximum: 65535
minimum: 1
@@ -335,10 +287,11 @@ spec:
type: integer
type: object
responseHeaderModifier:
- description: |-
- Only one action is supported per header name.
- Configuration to set or add multiple values for a header must use RFC 7230
- header value formatting, separating each value with a comma.
+ description: Only one action is supported per
+ header name. Configuration to set or add multiple
+ values for a header must use RFC 7230 header
+ value formatting, separating each value with
+ a comma.
properties:
add:
items:
@@ -394,11 +347,6 @@ spec:
type: string
urlRewrite:
properties:
- hostToBackendHostname:
- description: |-
- HostToBackendHostname rewrites the hostname to the hostname of the
- upstream host. This option is only available when targeting MeshGateways.
- type: boolean
hostname:
description: Hostname is the value to be
used to replace the host header value
@@ -429,21 +377,20 @@ spec:
type: array
type: object
matches:
- description: |-
- Matches describes how to match HTTP requests this rule should be applied
- to.
+ description: Matches describes how to match HTTP requests
+ this rule should be applied to.
items:
properties:
headers:
items:
- description: |-
- HeaderMatch describes how to select an HTTP route by matching HTTP request
- headers.
+ description: HeaderMatch describes how to select
+ an HTTP route by matching HTTP request headers.
properties:
name:
- description: |-
- Name is the name of the HTTP Header to be matched. Name MUST be lower case
- as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ description: Name is the name of the HTTP
+ Header to be matched. Name MUST be lower
+ case as they will be handled with case insensitivity
+ (See https://tools.ietf.org/html/rfc7230#section-3.2).
maxLength: 256
minLength: 1
pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
@@ -488,9 +435,9 @@ spec:
- RegularExpression
type: string
value:
- description: |-
- Exact or prefix matches must be an absolute path. A prefix matches only
- if separated by a slash or the entire path.
+ description: Exact or prefix matches must be
+ an absolute path. A prefix matches only if
+ separated by a slash or the entire path.
minLength: 1
type: string
required:
@@ -498,9 +445,9 @@ spec:
- value
type: object
queryParams:
- description: |-
- QueryParams matches based on HTTP URL query parameters. Multiple matches
- are ANDed together such that all listed matches must succeed.
+ description: QueryParams matches based on HTTP URL
+ query parameters. Multiple matches are ANDed together
+ such that all listed matches must succeed.
items:
properties:
name:
@@ -528,9 +475,8 @@ spec:
type: object
type: array
targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- request destinations.
+ description: TargetRef is a reference to the resource that represents
+ a group of request destinations.
properties:
kind:
description: Kind of the referenced resource
@@ -547,27 +493,15 @@ spec:
cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
type: object
diff --git a/app/docs/dev/crds/kuma.io_meshinsights.yaml b/app/docs/dev/crds/kuma.io_meshinsights.yaml
new file mode 100644
index 000000000..f9c307168
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshinsights.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshinsights.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: MeshInsight
+ listKind: MeshInsightList
+ plural: meshinsights
+ singular: meshinsight
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma MeshInsight resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/assets/dev/raw/crds/kuma.io_meshloadbalancingstrategies.yaml b/app/docs/dev/crds/kuma.io_meshloadbalancingstrategies.yaml
similarity index 60%
rename from app/assets/dev/raw/crds/kuma.io_meshloadbalancingstrategies.yaml
rename to app/docs/dev/crds/kuma.io_meshloadbalancingstrategies.yaml
index 023ce1768..83d193e81 100644
--- a/app/assets/dev/raw/crds/kuma.io_meshloadbalancingstrategies.yaml
+++ b/app/docs/dev/crds/kuma.io_meshloadbalancingstrategies.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: meshloadbalancingstrategies.kuma.io
spec:
group: kuma.io
@@ -28,19 +28,14 @@ spec:
openAPIV3Schema:
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -49,10 +44,9 @@ spec:
resource.
properties:
targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
properties:
kind:
description: Kind of the referenced resource
@@ -69,27 +63,14 @@ spec:
mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
to:
@@ -98,51 +79,42 @@ spec:
items:
properties:
default:
- description: |-
- Default is a configuration specific to the group of destinations referenced in
- 'targetRef'
+ description: Default is a configuration specific to the group
+ of destinations referenced in 'targetRef'
properties:
loadBalancer:
description: LoadBalancer allows to specify load balancing
algorithm.
properties:
leastRequest:
- description: |-
- LeastRequest selects N random available hosts as specified in 'choiceCount' (2 by default)
+ description: LeastRequest selects N random available
+ hosts as specified in 'choiceCount' (2 by default)
and picks the host which has the fewest active requests
properties:
- activeRequestBias:
- anyOf:
- - type: integer
- - type: string
- description: |-
- ActiveRequestBias refers to dynamic weights applied when hosts have varying load
- balancing weights. A higher value here aggressively reduces the weight of endpoints
- that are currently handling active requests. In essence, the higher the ActiveRequestBias
- value, the more forcefully it reduces the load balancing weight of endpoints that are
- actively serving requests.
- x-kubernetes-int-or-string: true
choiceCount:
- description: |-
- ChoiceCount is the number of random healthy hosts from which the host with
- the fewest active requests will be chosen. Defaults to 2 so that Envoy performs
- two-choice selection if the field is not set.
+ description: ChoiceCount is the number of random
+ healthy hosts from which the host with the fewest
+ active requests will be chosen. Defaults to 2
+ so that Envoy performs two-choice selection if
+ the field is not set.
format: int32
minimum: 2
type: integer
type: object
maglev:
- description: |-
- Maglev implements consistent hashing to upstream hosts. Maglev can be used as
- a drop in replacement for the ring hash load balancer any place in which
+ description: Maglev implements consistent hashing to
+ upstream hosts. Maglev can be used as a drop in replacement
+ for the ring hash load balancer any place in which
consistent hashing is desired.
properties:
hashPolicies:
- description: |-
- HashPolicies specify a list of request/connection properties that are used to calculate a hash.
- These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute
- set to true, and there is already a hash generated, the hash is returned immediately,
- ignoring the rest of the hash policy list.
+ description: HashPolicies specify a list of request/connection
+ properties that are used to calculate a hash.
+ These hash policies are executed in the specified
+ order. If a hash policy has the “terminal” attribute
+ set to true, and there is already a hash generated,
+ the hash is returned immediately, ignoring the
+ rest of the hash policy list.
items:
properties:
connection:
@@ -173,10 +145,12 @@ spec:
filterState:
properties:
key:
- description: |-
- The name of the Object in the per-request filterState, which is
- an Envoy::Hashable object. If there is no data associated with the key,
- or the stored object is not Envoy::Hashable, no hash will be produced.
+ description: The name of the Object in
+ the per-request filterState, which is
+ an Envoy::Hashable object. If there
+ is no data associated with the key,
+ or the stored object is not Envoy::Hashable,
+ no hash will be produced.
minLength: 1
type: string
required:
@@ -196,21 +170,25 @@ spec:
queryParameter:
properties:
name:
- description: |-
- The name of the URL query parameter that will be used to obtain the hash key.
- If the parameter is not present, no hash will be produced. Query parameter names
- are case-sensitive.
+ description: The name of the URL query
+ parameter that will be used to obtain
+ the hash key. If the parameter is not
+ present, no hash will be produced. Query
+ parameter names are case-sensitive.
minLength: 1
type: string
required:
- name
type: object
terminal:
- description: |-
- Terminal is a flag that short-circuits the hash computing. This field provides
- a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback
- to rest of the policy list”, it saves time when the terminal policy works.
- If true, and there is already a hash computed, ignore rest of the list of hash polices.
+ description: 'Terminal is a flag that short-circuits
+ the hash computing. This field provides
+ a ‘fallback’ style of configuration: “if
+ a terminal policy doesn’t work, fallback
+ to rest of the policy list”, it saves time
+ when the terminal policy works. If true,
+ and there is already a hash computed, ignore
+ rest of the list of hash polices.'
type: boolean
type:
enum:
@@ -225,45 +203,51 @@ spec:
type: object
type: array
tableSize:
- description: |-
- The table size for Maglev hashing. Maglev aims for “minimal disruption”
- rather than an absolute guarantee. Minimal disruption means that when
- the set of upstream hosts change, a connection will likely be sent
- to the same upstream as it was before. Increasing the table size reduces
- the amount of disruption. The table size must be prime number limited to 5000011.
- If it is not specified, the default is 65537.
+ description: The table size for Maglev hashing.
+ Maglev aims for “minimal disruption” rather than
+ an absolute guarantee. Minimal disruption means
+ that when the set of upstream hosts change, a
+ connection will likely be sent to the same upstream
+ as it was before. Increasing the table size reduces
+ the amount of disruption. The table size must
+ be prime number limited to 5000011. If it is not
+ specified, the default is 65537.
format: int32
maximum: 5000011
minimum: 1
type: integer
type: object
random:
- description: |-
- Random selects a random available host. The random load balancer generally
- performs better than round-robin if no health checking policy is configured.
- Random selection avoids bias towards the host in the set that comes after a failed host.
+ description: Random selects a random available host.
+ The random load balancer generally performs better
+ than round-robin if no health checking policy is configured.
+ Random selection avoids bias towards the host in the
+ set that comes after a failed host.
type: object
ringHash:
- description: |-
- RingHash implements consistent hashing to upstream hosts. Each host is mapped
- onto a circle (the “ring”) by hashing its address; each request is then routed
- to a host by hashing some property of the request, and finding the nearest
- corresponding host clockwise around the ring.
+ description: RingHash implements consistent hashing
+ to upstream hosts. Each host is mapped onto a circle
+ (the “ring”) by hashing its address; each request
+ is then routed to a host by hashing some property
+ of the request, and finding the nearest corresponding
+ host clockwise around the ring.
properties:
hashFunction:
- description: |-
- HashFunction is a function used to hash hosts onto the ketama ring.
- The value defaults to XX_HASH. Available values – XX_HASH, MURMUR_HASH_2.
+ description: HashFunction is a function used to
+ hash hosts onto the ketama ring. The value defaults
+ to XX_HASH. Available values – XX_HASH, MURMUR_HASH_2.
enum:
- XXHash
- MurmurHash2
type: string
hashPolicies:
- description: |-
- HashPolicies specify a list of request/connection properties that are used to calculate a hash.
- These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute
- set to true, and there is already a hash generated, the hash is returned immediately,
- ignoring the rest of the hash policy list.
+ description: HashPolicies specify a list of request/connection
+ properties that are used to calculate a hash.
+ These hash policies are executed in the specified
+ order. If a hash policy has the “terminal” attribute
+ set to true, and there is already a hash generated,
+ the hash is returned immediately, ignoring the
+ rest of the hash policy list.
items:
properties:
connection:
@@ -294,10 +278,12 @@ spec:
filterState:
properties:
key:
- description: |-
- The name of the Object in the per-request filterState, which is
- an Envoy::Hashable object. If there is no data associated with the key,
- or the stored object is not Envoy::Hashable, no hash will be produced.
+ description: The name of the Object in
+ the per-request filterState, which is
+ an Envoy::Hashable object. If there
+ is no data associated with the key,
+ or the stored object is not Envoy::Hashable,
+ no hash will be produced.
minLength: 1
type: string
required:
@@ -317,21 +303,25 @@ spec:
queryParameter:
properties:
name:
- description: |-
- The name of the URL query parameter that will be used to obtain the hash key.
- If the parameter is not present, no hash will be produced. Query parameter names
- are case-sensitive.
+ description: The name of the URL query
+ parameter that will be used to obtain
+ the hash key. If the parameter is not
+ present, no hash will be produced. Query
+ parameter names are case-sensitive.
minLength: 1
type: string
required:
- name
type: object
terminal:
- description: |-
- Terminal is a flag that short-circuits the hash computing. This field provides
- a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback
- to rest of the policy list”, it saves time when the terminal policy works.
- If true, and there is already a hash computed, ignore rest of the list of hash polices.
+ description: 'Terminal is a flag that short-circuits
+ the hash computing. This field provides
+ a ‘fallback’ style of configuration: “if
+ a terminal policy doesn’t work, fallback
+ to rest of the policy list”, it saves time
+ when the terminal policy works. If true,
+ and there is already a hash computed, ignore
+ rest of the list of hash polices.'
type: boolean
type:
enum:
@@ -346,27 +336,28 @@ spec:
type: object
type: array
maxRingSize:
- description: |-
- Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries,
- but can be lowered to further constrain resource use.
+ description: Maximum hash ring size. Defaults to
+ 8M entries, and limited to 8M entries, but can
+ be lowered to further constrain resource use.
format: int32
maximum: 8000000
minimum: 1
type: integer
minRingSize:
- description: |-
- Minimum hash ring size. The larger the ring is (that is,
- the more hashes there are for each provided host) the better the request distribution
- will reflect the desired weights. Defaults to 1024 entries, and limited to 8M entries.
+ description: Minimum hash ring size. The larger
+ the ring is (that is, the more hashes there are
+ for each provided host) the better the request
+ distribution will reflect the desired weights.
+ Defaults to 1024 entries, and limited to 8M entries.
format: int32
maximum: 8000000
minimum: 1
type: integer
type: object
roundRobin:
- description: |-
- RoundRobin is a load balancing algorithm that distributes requests
- across available upstream hosts in round-robin order.
+ description: RoundRobin is a load balancing algorithm
+ that distributes requests across available upstream
+ hosts in round-robin order.
type: object
type:
enum:
@@ -384,8 +375,8 @@ spec:
locality aware load balancing.
properties:
crossZone:
- description: |-
- CrossZone defines locality aware load balancing priorities when dataplane proxies inside local zone
+ description: CrossZone defines locality aware load balancing
+ priorities when dataplane proxies inside local zone
are unavailable
properties:
failover:
@@ -429,12 +420,14 @@ spec:
type: object
type: array
failoverThreshold:
- description: |-
- FailoverThreshold defines the percentage of live destination dataplane proxies below which load balancing to the
- next priority starts.
- Example: If you configure failoverThreshold to 70, and you have deployed 10 destination dataplane proxies.
- Load balancing to next priority will start when number of live destination dataplane proxies drops below 7.
- Default 50
+ description: 'FailoverThreshold defines the percentage
+ of live destination dataplane proxies below which
+ load balancing to the next priority starts. Example:
+ If you configure failoverThreshold to 70, and
+ you have deployed 10 destination dataplane proxies.
+ Load balancing to next priority will start when
+ number of live destination dataplane proxies drops
+ below 7. Default 50'
properties:
percentage:
anyOf:
@@ -446,9 +439,9 @@ spec:
type: object
type: object
disabled:
- description: |-
- Disabled allows to disable locality-aware load balancing.
- When disabled requests are distributed across all endpoints regardless of locality.
+ description: Disabled allows to disable locality-aware
+ load balancing. When disabled requests are distributed
+ across all endpoints regardless of locality.
type: boolean
localZone:
description: LocalZone defines locality aware load balancing
@@ -464,13 +457,22 @@ spec:
is configured
type: string
weight:
- description: |-
- Weight of the tag used for load balancing. The bigger the weight the bigger the priority.
- Percentage of local traffic load balanced to tag is computed by dividing weight by sum of weights from all tags.
- For example with two affinity tags first with weight 80 and second with weight 20,
- then 80% of traffic will be redirected to the first tag, and 20% of traffic will be redirected to second one.
- Setting weights is not mandatory. When weights are not set control plane will compute default weight based on list order.
- Default: If you do not specify weight we will adjust them so that 90% traffic goes to first tag, 9% to next, and 1% to third and so on.
+ description: 'Weight of the tag used for load
+ balancing. The bigger the weight the bigger
+ the priority. Percentage of local traffic
+ load balanced to tag is computed by dividing
+ weight by sum of weights from all tags.
+ For example with two affinity tags first
+ with weight 80 and second with weight 20,
+ then 80% of traffic will be redirected to
+ the first tag, and 20% of traffic will be
+ redirected to second one. Setting weights
+ is not mandatory. When weights are not set
+ control plane will compute default weight
+ based on list order. Default: If you do
+ not specify weight we will adjust them so
+ that 90% traffic goes to first tag, 9% to
+ next, and 1% to third and so on.'
format: int32
type: integer
required:
@@ -481,9 +483,8 @@ spec:
type: object
type: object
targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
+ description: TargetRef is a reference to the resource that represents
+ a group of destinations.
properties:
kind:
description: Kind of the referenced resource
@@ -500,27 +501,15 @@ spec:
cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
required:
diff --git a/app/assets/dev/raw/crds/kuma.io_meshproxypatches.yaml b/app/docs/dev/crds/kuma.io_meshproxypatches.yaml
similarity index 71%
rename from app/assets/dev/raw/crds/kuma.io_meshproxypatches.yaml
rename to app/docs/dev/crds/kuma.io_meshproxypatches.yaml
index 5d86a0bd6..42b4cd47c 100644
--- a/app/assets/dev/raw/crds/kuma.io_meshproxypatches.yaml
+++ b/app/docs/dev/crds/kuma.io_meshproxypatches.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: meshproxypatches.kuma.io
spec:
group: kuma.io
@@ -28,19 +28,14 @@ spec:
openAPIV3Schema:
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -48,8 +43,7 @@ spec:
description: Spec is the specification of the Kuma MeshProxyPatch resource.
properties:
default:
- description: |-
- Default is a configuration specific to the group of destinations
+ description: Default is a configuration specific to the group of destinations
referenced in 'targetRef'.
properties:
appendModifications:
@@ -62,9 +56,8 @@ spec:
resource.
properties:
jsonPatches:
- description: |-
- JsonPatches specifies list of jsonpatches to apply to on Envoy's Cluster
- resource
+ description: JsonPatches specifies list of jsonpatches
+ to apply to on Envoy's Cluster resource
items:
description: JsonPatchBlock is one json patch operation
block.
@@ -102,23 +95,22 @@ spec:
description: Name of the cluster to match.
type: string
origin:
- description: |-
- Origin is the name of the component or plugin that generated the resource.
-
-
- Here is the list of well-known origins:
- inbound - resources generated for handling incoming traffic.
- outbound - resources generated for handling outgoing traffic.
- transparent - resources generated for transparent proxy functionality.
- prometheus - resources generated when Prometheus metrics are enabled.
- direct-access - resources generated for Direct Access functionality.
+ description: "Origin is the name of the component
+ or plugin that generated the resource. \n Here
+ is the list of well-known origins: inbound - resources
+ generated for handling incoming traffic. outbound
+ - resources generated for handling outgoing traffic.
+ transparent - resources generated for transparent
+ proxy functionality. prometheus - resources generated
+ when Prometheus metrics are enabled. direct-access
+ - resources generated for Direct Access functionality.
ingress - resources generated for Zone Ingress.
egress - resources generated for Zone Egress.
gateway - resources generated for MeshGateway.
-
-
- The list is not complete, because policy plugins can introduce new resources.
- For example MeshTrace plugin can create Cluster with "mesh-trace" origin.
+ \n The list is not complete, because policy plugins
+ can introduce new resources. For example MeshTrace
+ plugin can create Cluster with \"mesh-trace\"
+ origin."
type: string
type: object
operation:
@@ -136,14 +128,14 @@ spec:
- operation
type: object
httpFilter:
- description: |-
- HTTPFilter is a modification of Envoy HTTP Filter
- available in HTTP Connection Manager in a Listener resource.
+ description: HTTPFilter is a modification of Envoy HTTP
+ Filter available in HTTP Connection Manager in a Listener
+ resource.
properties:
jsonPatches:
- description: |-
- JsonPatches specifies list of jsonpatches to apply to on Envoy's
- HTTP Filter available in HTTP Connection Manager in a Listener resource.
+ description: JsonPatches specifies list of jsonpatches
+ to apply to on Envoy's HTTP Filter available in HTTP
+ Connection Manager in a Listener resource.
items:
description: JsonPatchBlock is one json patch operation
block.
@@ -190,23 +182,22 @@ spec:
"envoy.filters.http.local_ratelimit"
type: string
origin:
- description: |-
- Origin is the name of the component or plugin that generated the resource.
-
-
- Here is the list of well-known origins:
- inbound - resources generated for handling incoming traffic.
- outbound - resources generated for handling outgoing traffic.
- transparent - resources generated for transparent proxy functionality.
- prometheus - resources generated when Prometheus metrics are enabled.
- direct-access - resources generated for Direct Access functionality.
+ description: "Origin is the name of the component
+ or plugin that generated the resource. \n Here
+ is the list of well-known origins: inbound - resources
+ generated for handling incoming traffic. outbound
+ - resources generated for handling outgoing traffic.
+ transparent - resources generated for transparent
+ proxy functionality. prometheus - resources generated
+ when Prometheus metrics are enabled. direct-access
+ - resources generated for Direct Access functionality.
ingress - resources generated for Zone Ingress.
egress - resources generated for Zone Egress.
gateway - resources generated for MeshGateway.
-
-
- The list is not complete, because policy plugins can introduce new resources.
- For example MeshTrace plugin can create Cluster with "mesh-trace" origin.
+ \n The list is not complete, because policy plugins
+ can introduce new resources. For example MeshTrace
+ plugin can create Cluster with \"mesh-trace\"
+ origin."
type: string
type: object
operation:
@@ -231,9 +222,8 @@ spec:
resource.
properties:
jsonPatches:
- description: |-
- JsonPatches specifies list of jsonpatches to apply to on Envoy's Listener
- resource
+ description: JsonPatches specifies list of jsonpatches
+ to apply to on Envoy's Listener resource
items:
description: JsonPatchBlock is one json patch operation
block.
@@ -271,23 +261,22 @@ spec:
description: Name of the listener to match.
type: string
origin:
- description: |-
- Origin is the name of the component or plugin that generated the resource.
-
-
- Here is the list of well-known origins:
- inbound - resources generated for handling incoming traffic.
- outbound - resources generated for handling outgoing traffic.
- transparent - resources generated for transparent proxy functionality.
- prometheus - resources generated when Prometheus metrics are enabled.
- direct-access - resources generated for Direct Access functionality.
+ description: "Origin is the name of the component
+ or plugin that generated the resource. \n Here
+ is the list of well-known origins: inbound - resources
+ generated for handling incoming traffic. outbound
+ - resources generated for handling outgoing traffic.
+ transparent - resources generated for transparent
+ proxy functionality. prometheus - resources generated
+ when Prometheus metrics are enabled. direct-access
+ - resources generated for Direct Access functionality.
ingress - resources generated for Zone Ingress.
egress - resources generated for Zone Egress.
gateway - resources generated for MeshGateway.
-
-
- The list is not complete, because policy plugins can introduce new resources.
- For example MeshTrace plugin can create Cluster with "mesh-trace" origin.
+ \n The list is not complete, because policy plugins
+ can introduce new resources. For example MeshTrace
+ plugin can create Cluster with \"mesh-trace\"
+ origin."
type: string
tags:
additionalProperties:
@@ -314,9 +303,8 @@ spec:
filter.
properties:
jsonPatches:
- description: |-
- JsonPatches specifies list of jsonpatches to apply to on Envoy Listener's
- filter.
+ description: JsonPatches specifies list of jsonpatches
+ to apply to on Envoy Listener's filter.
items:
description: JsonPatchBlock is one json patch operation
block.
@@ -363,23 +351,22 @@ spec:
"envoy.filters.network.ratelimit"
type: string
origin:
- description: |-
- Origin is the name of the component or plugin that generated the resource.
-
-
- Here is the list of well-known origins:
- inbound - resources generated for handling incoming traffic.
- outbound - resources generated for handling outgoing traffic.
- transparent - resources generated for transparent proxy functionality.
- prometheus - resources generated when Prometheus metrics are enabled.
- direct-access - resources generated for Direct Access functionality.
+ description: "Origin is the name of the component
+ or plugin that generated the resource. \n Here
+ is the list of well-known origins: inbound - resources
+ generated for handling incoming traffic. outbound
+ - resources generated for handling outgoing traffic.
+ transparent - resources generated for transparent
+ proxy functionality. prometheus - resources generated
+ when Prometheus metrics are enabled. direct-access
+ - resources generated for Direct Access functionality.
ingress - resources generated for Zone Ingress.
egress - resources generated for Zone Egress.
gateway - resources generated for MeshGateway.
-
-
- The list is not complete, because policy plugins can introduce new resources.
- For example MeshTrace plugin can create Cluster with "mesh-trace" origin.
+ \n The list is not complete, because policy plugins
+ can introduce new resources. For example MeshTrace
+ plugin can create Cluster with \"mesh-trace\"
+ origin."
type: string
type: object
operation:
@@ -400,14 +387,12 @@ spec:
- operation
type: object
virtualHost:
- description: |-
- VirtualHost is a modification of Envoy's VirtualHost
+ description: VirtualHost is a modification of Envoy's VirtualHost
referenced in HTTP Connection Manager in a Listener resource.
properties:
jsonPatches:
- description: |-
- JsonPatches specifies list of jsonpatches to apply to on Envoy's
- VirtualHost resource
+ description: JsonPatches specifies list of jsonpatches
+ to apply to on Envoy's VirtualHost resource
items:
description: JsonPatchBlock is one json patch operation
block.
@@ -445,23 +430,22 @@ spec:
description: Name of the VirtualHost to match.
type: string
origin:
- description: |-
- Origin is the name of the component or plugin that generated the resource.
-
-
- Here is the list of well-known origins:
- inbound - resources generated for handling incoming traffic.
- outbound - resources generated for handling outgoing traffic.
- transparent - resources generated for transparent proxy functionality.
- prometheus - resources generated when Prometheus metrics are enabled.
- direct-access - resources generated for Direct Access functionality.
+ description: "Origin is the name of the component
+ or plugin that generated the resource. \n Here
+ is the list of well-known origins: inbound - resources
+ generated for handling incoming traffic. outbound
+ - resources generated for handling outgoing traffic.
+ transparent - resources generated for transparent
+ proxy functionality. prometheus - resources generated
+ when Prometheus metrics are enabled. direct-access
+ - resources generated for Direct Access functionality.
ingress - resources generated for Zone Ingress.
egress - resources generated for Zone Egress.
gateway - resources generated for MeshGateway.
-
-
- The list is not complete, because policy plugins can introduce new resources.
- For example MeshTrace plugin can create Cluster with "mesh-trace" origin.
+ \n The list is not complete, because policy plugins
+ can introduce new resources. For example MeshTrace
+ plugin can create Cluster with \"mesh-trace\"
+ origin."
type: string
routeConfigurationName:
description: Name of the RouteConfiguration resource
@@ -489,10 +473,9 @@ spec:
- appendModifications
type: object
targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
properties:
kind:
description: Kind of the referenced resource
@@ -509,27 +492,14 @@ spec:
mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
required:
diff --git a/app/docs/dev/crds/kuma.io_meshratelimits.yaml b/app/docs/dev/crds/kuma.io_meshratelimits.yaml
new file mode 100644
index 000000000..abfd51f34
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshratelimits.yaml
@@ -0,0 +1,236 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshratelimits.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: MeshRateLimit
+ listKind: MeshRateLimitList
+ plural: meshratelimits
+ singular: meshratelimit
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .spec.targetRef.kind
+ name: TargetRef Kind
+ type: string
+ - jsonPath: .spec.targetRef.name
+ name: TargetRef Name
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma MeshRateLimit resource.
+ properties:
+ from:
+ description: From list makes a match between clients and corresponding
+ configurations
+ items:
+ properties:
+ default:
+ description: Default is a configuration specific to the group
+ of clients referenced in 'targetRef'
+ properties:
+ local:
+ description: LocalConf defines local http or/and tcp rate
+ limit configuration
+ properties:
+ http:
+ description: LocalHTTP defines confguration of local
+ HTTP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter
+ properties:
+ disabled:
+ description: Define if rate limiting should be disabled.
+ type: boolean
+ onRateLimit:
+ description: Describes the actions to take on a
+ rate limit event
+ properties:
+ headers:
+ description: The Headers to be added to the
+ HTTP response on a rate limit event
+ properties:
+ add:
+ items:
+ properties:
+ name:
+ maxLength: 256
+ minLength: 1
+ pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ maxItems: 16
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ set:
+ items:
+ properties:
+ name:
+ maxLength: 256
+ minLength: 1
+ pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ maxItems: 16
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ type: object
+ status:
+ description: The HTTP status code to be set
+ on a rate limit event
+ format: int32
+ type: integer
+ type: object
+ requestRate:
+ description: Defines how many requests are allowed
+ per interval.
+ properties:
+ interval:
+ description: The interval the number of units
+ is accounted for.
+ type: string
+ num:
+ description: Number of units per interval (depending
+ on usage it can be a number of requests, or
+ a number of connections).
+ format: int32
+ type: integer
+ required:
+ - interval
+ - num
+ type: object
+ type: object
+ tcp:
+ description: LocalTCP defines confguration of local
+ TCP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter
+ properties:
+ connectionRate:
+ description: Defines how many connections are allowed
+ per interval.
+ properties:
+ interval:
+ description: The interval the number of units
+ is accounted for.
+ type: string
+ num:
+ description: Number of units per interval (depending
+ on usage it can be a number of requests, or
+ a number of connections).
+ format: int32
+ type: integer
+ required:
+ - interval
+ - num
+ type: object
+ disabled:
+ description: 'Define if rate limiting should be
+ disabled. Default: false'
+ type: boolean
+ type: object
+ type: object
+ type: object
+ targetRef:
+ description: TargetRef is a reference to the resource that represents
+ a group of clients.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify
+ cross mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: array
+ targetRef:
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify cross
+ mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources: {}
diff --git a/app/docs/dev/crds/kuma.io_meshretries.yaml b/app/docs/dev/crds/kuma.io_meshretries.yaml
new file mode 100644
index 000000000..d724395a3
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshretries.yaml
@@ -0,0 +1,406 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshretries.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: MeshRetry
+ listKind: MeshRetryList
+ plural: meshretries
+ singular: meshretry
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .spec.targetRef.kind
+ name: TargetRef Kind
+ type: string
+ - jsonPath: .spec.targetRef.name
+ name: TargetRef Name
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma MeshRetry resource.
+ properties:
+ targetRef:
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify cross
+ mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ to:
+ description: To list makes a match between the consumed services and
+ corresponding configurations
+ items:
+ properties:
+ default:
+ description: Default is a configuration specific to the group
+ of destinations referenced in 'targetRef'
+ properties:
+ grpc:
+ description: GRPC defines a configuration of retries for
+ GRPC traffic
+ properties:
+ backOff:
+ description: BackOff is a configuration of durations
+ which will be used in exponential backoff strategy
+ between retries.
+ properties:
+ baseInterval:
+ description: BaseInterval is an amount of time which
+ should be taken between retries. Must be greater
+ than zero. Values less than 1 ms are rounded up
+ to 1 ms. Default is 25ms.
+ type: string
+ maxInterval:
+ description: MaxInterval is a maximal amount of
+ time which will be taken between retries. Default
+ is 10 times the "BaseInterval".
+ type: string
+ type: object
+ numRetries:
+ description: NumRetries is the number of attempts that
+ will be made on failed (and retriable) requests.
+ format: int32
+ type: integer
+ perTryTimeout:
+ description: PerTryTimeout is the amount of time after
+ which retry attempt should timeout. Setting this timeout
+ to 0 will disable it. Default is 15s.
+ type: string
+ rateLimitedBackOff:
+ description: RateLimitedBackOff is a configuration of
+ backoff which will be used when the upstream returns
+ one of the headers configured.
+ properties:
+ maxInterval:
+ description: MaxInterval is a maximal amount of
+ time which will be taken between retries. Default
+ is 300 seconds.
+ type: string
+ resetHeaders:
+ description: ResetHeaders specifies the list of
+ headers (like Retry-After or X-RateLimit-Reset)
+ to match against the response. Headers are tried
+ in order, and matched case-insensitive. The first
+ header to be parsed successfully is used. If no
+ headers match the default exponential BackOff
+ is used instead.
+ items:
+ properties:
+ format:
+ description: The format of the reset header,
+ either Seconds or UnixTimestamp.
+ enum:
+ - Seconds
+ - UnixTimestamp
+ type: string
+ name:
+ description: The Name of the reset header.
+ maxLength: 256
+ minLength: 1
+ pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
+ type: string
+ required:
+ - format
+ - name
+ type: object
+ type: array
+ type: object
+ retryOn:
+ description: 'RetryOn is a list of conditions which
+ will cause a retry. Available values are: [Canceled,
+ DeadlineExceeded, Internal, ResourceExhausted, Unavailable].'
+ items:
+ type: string
+ type: array
+ type: object
+ http:
+ description: HTTP defines a configuration of retries for
+ HTTP traffic
+ properties:
+ backOff:
+ description: BackOff is a configuration of durations
+ which will be used in exponential backoff strategy
+ between retries
+ properties:
+ baseInterval:
+ description: BaseInterval is an amount of time which
+ should be taken between retries. Must be greater
+ than zero. Values less than 1 ms are rounded up
+ to 1 ms. Default is 25ms.
+ type: string
+ maxInterval:
+ description: MaxInterval is a maximal amount of
+ time which will be taken between retries. Default
+ is 10 times the "BaseInterval".
+ type: string
+ type: object
+ hostSelection:
+ description: HostSelection is a list of predicates that
+ dictate how hosts should be selected when requests
+ are retried.
+ items:
+ properties:
+ predicate:
+ description: Type is requested predicate mode.
+ Available values are OmitPreviousHosts, OmitHostsWithTags,
+ and OmitPreviousPriorities.
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags is a map of metadata to match
+ against for selecting the omitted hosts. Required
+ if Type is OmitHostsWithTags
+ type: object
+ updateFrequency:
+ description: UpdateFrequency is how often the
+ priority load should be updated based on previously
+ attempted priorities. Used for OmitPreviousPriorities.
+ Default is 2 if not set.
+ format: int32
+ type: integer
+ required:
+ - predicate
+ type: object
+ type: array
+ hostSelectionMaxAttempts:
+ description: HostSelectionMaxAttempts is the maximum
+ number of times host selection will be reattempted
+ before giving up, at which point the host that was
+ last selected will be routed to. If unspecified, this
+ will default to retrying once.
+ format: int64
+ type: integer
+ numRetries:
+ description: NumRetries is the number of attempts that
+ will be made on failed (and retriable) requests
+ format: int32
+ type: integer
+ perTryTimeout:
+ description: PerTryTimeout is the amount of time after
+ which retry attempt should timeout. Setting this timeout
+ to 0 will disable it. Default is 15s.
+ type: string
+ rateLimitedBackOff:
+ description: RateLimitedBackOff is a configuration of
+ backoff which will be used when the upstream returns
+ one of the headers configured.
+ properties:
+ maxInterval:
+ description: MaxInterval is a maximal amount of
+ time which will be taken between retries. Default
+ is 300 seconds.
+ type: string
+ resetHeaders:
+ description: ResetHeaders specifies the list of
+ headers (like Retry-After or X-RateLimit-Reset)
+ to match against the response. Headers are tried
+ in order, and matched case-insensitive. The first
+ header to be parsed successfully is used. If no
+ headers match the default exponential BackOff
+ is used instead.
+ items:
+ properties:
+ format:
+ description: The format of the reset header,
+ either Seconds or UnixTimestamp.
+ enum:
+ - Seconds
+ - UnixTimestamp
+ type: string
+ name:
+ description: The Name of the reset header.
+ maxLength: 256
+ minLength: 1
+ pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
+ type: string
+ required:
+ - format
+ - name
+ type: object
+ type: array
+ type: object
+ retriableRequestHeaders:
+ description: RetriableRequestHeaders is an HTTP headers
+ which must be present in the request for retries to
+ be attempted.
+ items:
+ description: HeaderMatch describes how to select an
+ HTTP route by matching HTTP request headers.
+ properties:
+ name:
+ description: Name is the name of the HTTP Header
+ to be matched. Name MUST be lower case as they
+ will be handled with case insensitivity (See
+ https://tools.ietf.org/html/rfc7230#section-3.2).
+ maxLength: 256
+ minLength: 1
+ pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
+ type: string
+ type:
+ default: Exact
+ description: Type specifies how to match against
+ the value of the header.
+ enum:
+ - Exact
+ - Present
+ - RegularExpression
+ - Absent
+ - Prefix
+ type: string
+ value:
+ description: Value is the value of HTTP Header
+ to be matched.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ retriableResponseHeaders:
+ description: RetriableResponseHeaders is an HTTP response
+ headers that trigger a retry if present in the response.
+ A retry will be triggered if any of the header matches
+ match the upstream response headers.
+ items:
+ description: HeaderMatch describes how to select an
+ HTTP route by matching HTTP request headers.
+ properties:
+ name:
+ description: Name is the name of the HTTP Header
+ to be matched. Name MUST be lower case as they
+ will be handled with case insensitivity (See
+ https://tools.ietf.org/html/rfc7230#section-3.2).
+ maxLength: 256
+ minLength: 1
+ pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
+ type: string
+ type:
+ default: Exact
+ description: Type specifies how to match against
+ the value of the header.
+ enum:
+ - Exact
+ - Present
+ - RegularExpression
+ - Absent
+ - Prefix
+ type: string
+ value:
+ description: Value is the value of HTTP Header
+ to be matched.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ retryOn:
+ description: 'RetryOn is a list of conditions which
+ will cause a retry. Available values are: [5XX, GatewayError,
+ Reset, Retriable4xx, ConnectFailure, EnvoyRatelimited,
+ RefusedStream, Http3PostConnectFailure, HttpMethodConnect,
+ HttpMethodDelete, HttpMethodGet, HttpMethodHead, HttpMethodOptions,
+ HttpMethodPatch, HttpMethodPost, HttpMethodPut, HttpMethodTrace].
+ Also, any HTTP status code (500, 503, etc).'
+ items:
+ type: string
+ type: array
+ type: object
+ tcp:
+ description: TCP defines a configuration of retries for
+ TCP traffic
+ properties:
+ maxConnectAttempt:
+ description: MaxConnectAttempt is a maximal amount of
+ TCP connection attempts which will be made before
+ giving up
+ format: int32
+ type: integer
+ type: object
+ type: object
+ targetRef:
+ description: TargetRef is a reference to the resource that represents
+ a group of destinations.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify
+ cross mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: array
+ required:
+ - targetRef
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_meshtcproutes.yaml b/app/docs/dev/crds/kuma.io_meshtcproutes.yaml
similarity index 53%
rename from app/assets/dev/raw/crds/kuma.io_meshtcproutes.yaml
rename to app/docs/dev/crds/kuma.io_meshtcproutes.yaml
index 962413f0d..1bc3081aa 100644
--- a/app/assets/dev/raw/crds/kuma.io_meshtcproutes.yaml
+++ b/app/docs/dev/crds/kuma.io_meshtcproutes.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: meshtcproutes.kuma.io
spec:
group: kuma.io
@@ -28,19 +28,14 @@ spec:
openAPIV3Schema:
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -48,10 +43,9 @@ spec:
description: Spec is the specification of the Kuma MeshTCPRoute resource.
properties:
targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined in-place.
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined in-place.
properties:
kind:
description: Kind of the referenced resource
@@ -68,45 +62,29 @@ spec:
mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
to:
- description: |-
- To list makes a match between the consumed services and corresponding
- configurations
+ description: To list makes a match between the consumed services and
+ corresponding configurations
items:
properties:
rules:
- description: |-
- Rules contains the routing rules applies to a combination of top-level
- targetRef and the targetRef in this entry.
+ description: Rules contains the routing rules applies to a combination
+ of top-level targetRef and the targetRef in this entry.
items:
properties:
default:
- description: |-
- Default holds routing rules that can be merged with rules from other
- policies.
+ description: Default holds routing rules that can be merged
+ with rules from other policies.
properties:
backendRefs:
items:
@@ -128,26 +106,15 @@ spec:
to identify cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource.
+ Can only be used with kinds: `MeshService`,
+ `MeshServiceSubset` and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
+ description: Tags used to select a subset of
+ proxies by tags. Can only be used with kinds
`MeshSubset` and `MeshServiceSubset`
type: object
weight:
@@ -166,9 +133,8 @@ spec:
maxItems: 1
type: array
targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- destinations.
+ description: TargetRef is a reference to the resource that represents
+ a group of destinations.
properties:
kind:
description: Kind of the referenced resource
@@ -185,27 +151,15 @@ spec:
cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
required:
diff --git a/app/docs/dev/crds/kuma.io_meshtimeouts.yaml b/app/docs/dev/crds/kuma.io_meshtimeouts.yaml
new file mode 100644
index 000000000..c55e957a8
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshtimeouts.yaml
@@ -0,0 +1,253 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshtimeouts.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: MeshTimeout
+ listKind: MeshTimeoutList
+ plural: meshtimeouts
+ singular: meshtimeout
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .spec.targetRef.kind
+ name: TargetRef Kind
+ type: string
+ - jsonPath: .spec.targetRef.name
+ name: TargetRef Name
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma MeshTimeout resource.
+ properties:
+ from:
+ description: From list makes a match between clients and corresponding
+ configurations
+ items:
+ properties:
+ default:
+ description: Default is a configuration specific to the group
+ of clients referenced in 'targetRef'
+ properties:
+ connectionTimeout:
+ description: ConnectionTimeout specifies the amount of time
+ proxy will wait for an TCP connection to be established.
+ Default value is 5 seconds. Cannot be set to 0.
+ type: string
+ http:
+ description: Http provides configuration for HTTP specific
+ timeouts
+ properties:
+ maxConnectionDuration:
+ description: MaxConnectionDuration is the time after
+ which a connection will be drained and/or closed,
+ starting from when it was first established. Setting
+ this timeout to 0 will disable it. Disabled by default.
+ type: string
+ maxStreamDuration:
+ description: MaxStreamDuration is the maximum time that
+ a stream’s lifetime will span. Setting this timeout
+ to 0 will disable it. Disabled by default.
+ type: string
+ requestTimeout:
+ description: RequestTimeout The amount of time that
+ proxy will wait for the entire request to be received.
+ The timer is activated when the request is initiated,
+ and is disarmed when the last byte of the request
+ is sent, OR when the response is initiated. Setting
+ this timeout to 0 will disable it. Default is 15s.
+ type: string
+ streamIdleTimeout:
+ description: StreamIdleTimeout is the amount of time
+ that proxy will allow a stream to exist with no activity.
+ Setting this timeout to 0 will disable it. Default
+ is 30m
+ type: string
+ type: object
+ idleTimeout:
+ description: IdleTimeout is defined as the period in which
+ there are no bytes sent or received on connection Setting
+ this timeout to 0 will disable it. Be cautious when disabling
+ it because it can lead to connection leaking. Default
+ value is 1h.
+ type: string
+ type: object
+ targetRef:
+ description: TargetRef is a reference to the resource that represents
+ a group of clients.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify
+ cross mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: array
+ targetRef:
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify cross
+ mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ to:
+ description: To list makes a match between the consumed services and
+ corresponding configurations
+ items:
+ properties:
+ default:
+ description: Default is a configuration specific to the group
+ of destinations referenced in 'targetRef'
+ properties:
+ connectionTimeout:
+ description: ConnectionTimeout specifies the amount of time
+ proxy will wait for an TCP connection to be established.
+ Default value is 5 seconds. Cannot be set to 0.
+ type: string
+ http:
+ description: Http provides configuration for HTTP specific
+ timeouts
+ properties:
+ maxConnectionDuration:
+ description: MaxConnectionDuration is the time after
+ which a connection will be drained and/or closed,
+ starting from when it was first established. Setting
+ this timeout to 0 will disable it. Disabled by default.
+ type: string
+ maxStreamDuration:
+ description: MaxStreamDuration is the maximum time that
+ a stream’s lifetime will span. Setting this timeout
+ to 0 will disable it. Disabled by default.
+ type: string
+ requestTimeout:
+ description: RequestTimeout The amount of time that
+ proxy will wait for the entire request to be received.
+ The timer is activated when the request is initiated,
+ and is disarmed when the last byte of the request
+ is sent, OR when the response is initiated. Setting
+ this timeout to 0 will disable it. Default is 15s.
+ type: string
+ streamIdleTimeout:
+ description: StreamIdleTimeout is the amount of time
+ that proxy will allow a stream to exist with no activity.
+ Setting this timeout to 0 will disable it. Default
+ is 30m
+ type: string
+ type: object
+ idleTimeout:
+ description: IdleTimeout is defined as the period in which
+ there are no bytes sent or received on connection Setting
+ this timeout to 0 will disable it. Be cautious when disabling
+ it because it can lead to connection leaking. Default
+ value is 1h.
+ type: string
+ type: object
+ targetRef:
+ description: TargetRef is a reference to the resource that represents
+ a group of destinations.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify
+ cross mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: array
+ required:
+ - targetRef
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources: {}
diff --git a/app/docs/dev/crds/kuma.io_meshtraces.yaml b/app/docs/dev/crds/kuma.io_meshtraces.yaml
new file mode 100644
index 000000000..0e8b08c9d
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_meshtraces.yaml
@@ -0,0 +1,229 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: meshtraces.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: MeshTrace
+ listKind: MeshTraceList
+ plural: meshtraces
+ singular: meshtrace
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .spec.targetRef.kind
+ name: TargetRef Kind
+ type: string
+ - jsonPath: .spec.targetRef.name
+ name: TargetRef Name
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma MeshTrace resource.
+ properties:
+ default:
+ description: MeshTrace configuration.
+ properties:
+ backends:
+ description: A one element array of backend definition. Envoy
+ allows configuring only 1 backend, so the natural way of representing
+ that would be just one object. Unfortunately due to the reasons
+ explained in MADR 009-tracing-policy this has to be a one element
+ array for now.
+ items:
+ description: Only one of zipkin, datadog or openTelemetry can
+ be used.
+ properties:
+ datadog:
+ description: Datadog backend configuration.
+ properties:
+ splitService:
+ description: 'Determines if datadog service name should
+ be split based on traffic direction and destination.
+ For example, with `splitService: true` and a `backend`
+ service that communicates with a couple of databases,
+ you would get service names like `backend_INBOUND`,
+ `backend_OUTBOUND_db1`, and `backend_OUTBOUND_db2`
+ in Datadog. Default: false'
+ type: boolean
+ url:
+ description: Address of Datadog collector, only host
+ and port are allowed (no paths, fragments etc.)
+ type: string
+ required:
+ - url
+ type: object
+ openTelemetry:
+ description: OpenTelemetry backend configuration.
+ properties:
+ endpoint:
+ description: Address of OpenTelemetry collector.
+ example: otel-collector:4317
+ minLength: 1
+ type: string
+ required:
+ - endpoint
+ type: object
+ type:
+ enum:
+ - Zipkin
+ - Datadog
+ - OpenTelemetry
+ type: string
+ zipkin:
+ description: Zipkin backend configuration.
+ properties:
+ apiVersion:
+ default: httpJson
+ description: 'Version of the API. values: httpJson,
+ httpProto. Default: httpJson see https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L66'
+ enum:
+ - httpJson
+ - httpProto
+ type: string
+ sharedSpanContext:
+ description: 'Determines whether client and server spans
+ will share the same span context. Default: true. https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L63'
+ type: boolean
+ traceId128bit:
+ description: 'Generate 128bit traces. Default: false'
+ type: boolean
+ url:
+ description: Address of Zipkin collector.
+ type: string
+ required:
+ - url
+ type: object
+ required:
+ - type
+ type: object
+ type: array
+ sampling:
+ description: Sampling configuration. Sampling is the process by
+ which a decision is made on whether to process/export a span
+ or not.
+ properties:
+ client:
+ anyOf:
+ - type: integer
+ - type: string
+ description: 'Target percentage of requests that will be force
+ traced if the ''x-client-trace-id'' header is set. Default:
+ 100% Mirror of client_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L127-L133
+ Either int or decimal represented as string.'
+ x-kubernetes-int-or-string: true
+ overall:
+ anyOf:
+ - type: integer
+ - type: string
+ description: 'Target percentage of requests will be traced
+ after all other sampling checks have been applied (client,
+ force tracing, random sampling). This field functions as
+ an upper limit on the total configured sampling rate. For
+ instance, setting client_sampling to 100% but overall_sampling
+ to 1% will result in only 1% of client requests with the
+ appropriate headers to be force traced. Default: 100% Mirror
+ of overall_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150
+ Either int or decimal represented as string.'
+ x-kubernetes-int-or-string: true
+ random:
+ anyOf:
+ - type: integer
+ - type: string
+ description: 'Target percentage of requests that will be randomly
+ selected for trace generation, if not requested by the client
+ or not forced. Default: 100% Mirror of random_sampling in
+ Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L135-L140
+ Either int or decimal represented as string.'
+ x-kubernetes-int-or-string: true
+ type: object
+ tags:
+ description: Custom tags configuration. You can add custom tags
+ to traces based on headers or literal values.
+ items:
+ description: Custom tags configuration. Only one of literal
+ or header can be used.
+ properties:
+ header:
+ description: Tag taken from a header.
+ properties:
+ default:
+ description: Default value to use if header is missing.
+ If the default is missing and there is no value the
+ tag will not be included.
+ type: string
+ name:
+ description: Name of the header.
+ type: string
+ required:
+ - name
+ type: object
+ literal:
+ description: Tag taken from literal value.
+ type: string
+ name:
+ description: Name of the tag.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ type: object
+ targetRef:
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
+ properties:
+ kind:
+ description: Kind of the referenced resource
+ enum:
+ - Mesh
+ - MeshSubset
+ - MeshGateway
+ - MeshService
+ - MeshServiceSubset
+ - MeshHTTPRoute
+ type: string
+ mesh:
+ description: Mesh is reserved for future use to identify cross
+ mesh resources.
+ type: string
+ name:
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
+ type: string
+ tags:
+ additionalProperties:
+ type: string
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
+ type: object
+ type: object
+ required:
+ - targetRef
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources: {}
diff --git a/app/assets/dev/raw/crds/kuma.io_meshtrafficpermissions.yaml b/app/docs/dev/crds/kuma.io_meshtrafficpermissions.yaml
similarity index 52%
rename from app/assets/dev/raw/crds/kuma.io_meshtrafficpermissions.yaml
rename to app/docs/dev/crds/kuma.io_meshtrafficpermissions.yaml
index 65474d719..3ab56942e 100644
--- a/app/assets/dev/raw/crds/kuma.io_meshtrafficpermissions.yaml
+++ b/app/docs/dev/crds/kuma.io_meshtrafficpermissions.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.14.0
+ controller-gen.kubebuilder.io/version: v0.13.0
name: meshtrafficpermissions.kuma.io
spec:
group: kuma.io
@@ -28,19 +28,14 @@ spec:
openAPIV3Schema:
properties:
apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -54,9 +49,8 @@ spec:
items:
properties:
default:
- description: |-
- Default is a configuration specific to the group of clients referenced in
- 'targetRef'
+ description: Default is a configuration specific to the group
+ of clients referenced in 'targetRef'
properties:
action:
description: 'Action defines a behavior for the specified
@@ -68,9 +62,8 @@ spec:
type: string
type: object
targetRef:
- description: |-
- TargetRef is a reference to the resource that represents a group of
- clients.
+ description: TargetRef is a reference to the resource that represents
+ a group of clients.
properties:
kind:
description: Kind of the referenced resource
@@ -87,27 +80,15 @@ spec:
cross mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only
+ be used with kinds: `MeshService`, `MeshServiceSubset`
+ and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by
+ tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
required:
@@ -115,10 +96,9 @@ spec:
type: object
type: array
targetRef:
- description: |-
- TargetRef is a reference to the resource the policy takes an effect on.
- The resource could be either a real store object or virtual resource
- defined inplace.
+ description: TargetRef is a reference to the resource the policy takes
+ an effect on. The resource could be either a real store object or
+ virtual resource defined inplace.
properties:
kind:
description: Kind of the referenced resource
@@ -135,27 +115,14 @@ spec:
mesh resources.
type: string
name:
- description: |-
- Name of the referenced resource. Can only be used with kinds: `MeshService`,
- `MeshServiceSubset` and `MeshGatewayRoute`
+ description: 'Name of the referenced resource. Can only be used
+ with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`'
type: string
- proxyTypes:
- description: |-
- ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
- all data plane types are targeted by the policy.
- items:
- enum:
- - Sidecar
- - Gateway
- type: string
- minItems: 1
- type: array
tags:
additionalProperties:
type: string
- description: |-
- Tags used to select a subset of proxies by tags. Can only be used with kinds
- `MeshSubset` and `MeshServiceSubset`
+ description: Tags used to select a subset of proxies by tags.
+ Can only be used with kinds `MeshSubset` and `MeshServiceSubset`
type: object
type: object
required:
diff --git a/app/docs/dev/crds/kuma.io_proxytemplates.yaml b/app/docs/dev/crds/kuma.io_proxytemplates.yaml
new file mode 100644
index 000000000..111d4450f
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_proxytemplates.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: proxytemplates.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: ProxyTemplate
+ listKind: ProxyTemplateList
+ plural: proxytemplates
+ singular: proxytemplate
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma ProxyTemplate resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_ratelimits.yaml b/app/docs/dev/crds/kuma.io_ratelimits.yaml
new file mode 100644
index 000000000..cc6fa13fa
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_ratelimits.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: ratelimits.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: RateLimit
+ listKind: RateLimitList
+ plural: ratelimits
+ singular: ratelimit
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma RateLimit resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_retries.yaml b/app/docs/dev/crds/kuma.io_retries.yaml
new file mode 100644
index 000000000..865df1b2f
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_retries.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: retries.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: Retry
+ listKind: RetryList
+ plural: retries
+ singular: retry
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma Retry resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_serviceinsights.yaml b/app/docs/dev/crds/kuma.io_serviceinsights.yaml
new file mode 100644
index 000000000..135eaedda
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_serviceinsights.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: serviceinsights.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: ServiceInsight
+ listKind: ServiceInsightList
+ plural: serviceinsights
+ singular: serviceinsight
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma ServiceInsight resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_timeouts.yaml b/app/docs/dev/crds/kuma.io_timeouts.yaml
new file mode 100644
index 000000000..b2f8b3d60
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_timeouts.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: timeouts.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: Timeout
+ listKind: TimeoutList
+ plural: timeouts
+ singular: timeout
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma Timeout resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_trafficlogs.yaml b/app/docs/dev/crds/kuma.io_trafficlogs.yaml
new file mode 100644
index 000000000..c74f9a90f
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_trafficlogs.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: trafficlogs.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: TrafficLog
+ listKind: TrafficLogList
+ plural: trafficlogs
+ singular: trafficlog
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma TrafficLog resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_trafficpermissions.yaml b/app/docs/dev/crds/kuma.io_trafficpermissions.yaml
new file mode 100644
index 000000000..b9469c8c9
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_trafficpermissions.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: trafficpermissions.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: TrafficPermission
+ listKind: TrafficPermissionList
+ plural: trafficpermissions
+ singular: trafficpermission
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma TrafficPermission resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_trafficroutes.yaml b/app/docs/dev/crds/kuma.io_trafficroutes.yaml
new file mode 100644
index 000000000..1e3158363
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_trafficroutes.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: trafficroutes.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: TrafficRoute
+ listKind: TrafficRouteList
+ plural: trafficroutes
+ singular: trafficroute
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma TrafficRoute resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_traffictraces.yaml b/app/docs/dev/crds/kuma.io_traffictraces.yaml
new file mode 100644
index 000000000..f85ababd9
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_traffictraces.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: traffictraces.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: TrafficTrace
+ listKind: TrafficTraceList
+ plural: traffictraces
+ singular: traffictrace
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma TrafficTrace resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_virtualoutbounds.yaml b/app/docs/dev/crds/kuma.io_virtualoutbounds.yaml
new file mode 100644
index 000000000..a5fe905e0
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_virtualoutbounds.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: virtualoutbounds.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: VirtualOutbound
+ listKind: VirtualOutboundList
+ plural: virtualoutbounds
+ singular: virtualoutbound
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma VirtualOutbound resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_zoneegresses.yaml b/app/docs/dev/crds/kuma.io_zoneegresses.yaml
new file mode 100644
index 000000000..b202d0fb8
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_zoneegresses.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: zoneegresses.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: ZoneEgress
+ listKind: ZoneEgressList
+ plural: zoneegresses
+ singular: zoneegress
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma ZoneEgress resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_zoneegressinsights.yaml b/app/docs/dev/crds/kuma.io_zoneegressinsights.yaml
new file mode 100644
index 000000000..50c7f6864
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_zoneegressinsights.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: zoneegressinsights.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: ZoneEgressInsight
+ listKind: ZoneEgressInsightList
+ plural: zoneegressinsights
+ singular: zoneegressinsight
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma ZoneEgressInsight resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_zoneingresses.yaml b/app/docs/dev/crds/kuma.io_zoneingresses.yaml
new file mode 100644
index 000000000..0754071e2
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_zoneingresses.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: zoneingresses.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: ZoneIngress
+ listKind: ZoneIngressList
+ plural: zoneingresses
+ singular: zoneingress
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma ZoneIngress resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_zoneingressinsights.yaml b/app/docs/dev/crds/kuma.io_zoneingressinsights.yaml
new file mode 100644
index 000000000..87d2c06ab
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_zoneingressinsights.yaml
@@ -0,0 +1,45 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: zoneingressinsights.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: ZoneIngressInsight
+ listKind: ZoneIngressInsightList
+ plural: zoneingressinsights
+ singular: zoneingressinsight
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma ZoneIngressInsight
+ resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_zoneinsights.yaml b/app/docs/dev/crds/kuma.io_zoneinsights.yaml
new file mode 100644
index 000000000..fa149598a
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_zoneinsights.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: zoneinsights.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: ZoneInsight
+ listKind: ZoneInsightList
+ plural: zoneinsights
+ singular: zoneinsight
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma ZoneInsight resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/docs/dev/crds/kuma.io_zones.yaml b/app/docs/dev/crds/kuma.io_zones.yaml
new file mode 100644
index 000000000..bcd73a05b
--- /dev/null
+++ b/app/docs/dev/crds/kuma.io_zones.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.13.0
+ name: zones.kuma.io
+spec:
+ group: kuma.io
+ names:
+ categories:
+ - kuma
+ kind: Zone
+ listKind: ZoneList
+ plural: zones
+ singular: zone
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ mesh:
+ description: Mesh is the name of the Kuma mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Kuma Zone resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/app/assets/dev/raw/generated/DoNothingPolicy.json b/app/docs/dev/generated/DoNothingPolicy.json
similarity index 100%
rename from app/assets/dev/raw/generated/DoNothingPolicy.json
rename to app/docs/dev/generated/DoNothingPolicy.json
diff --git a/app/assets/dev/raw/generated/MeshAccessLog.json b/app/docs/dev/generated/MeshAccessLog.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshAccessLog.json
rename to app/docs/dev/generated/MeshAccessLog.json
diff --git a/app/assets/dev/raw/generated/MeshCircuitBreaker.json b/app/docs/dev/generated/MeshCircuitBreaker.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshCircuitBreaker.json
rename to app/docs/dev/generated/MeshCircuitBreaker.json
diff --git a/app/assets/dev/raw/generated/MeshFaultInjection.json b/app/docs/dev/generated/MeshFaultInjection.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshFaultInjection.json
rename to app/docs/dev/generated/MeshFaultInjection.json
diff --git a/app/assets/dev/raw/generated/MeshGatewayInstance.json b/app/docs/dev/generated/MeshGatewayInstance.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshGatewayInstance.json
rename to app/docs/dev/generated/MeshGatewayInstance.json
diff --git a/app/assets/dev/raw/generated/MeshHTTPRoute.json b/app/docs/dev/generated/MeshHTTPRoute.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshHTTPRoute.json
rename to app/docs/dev/generated/MeshHTTPRoute.json
diff --git a/app/assets/dev/raw/generated/MeshHealthCheck.json b/app/docs/dev/generated/MeshHealthCheck.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshHealthCheck.json
rename to app/docs/dev/generated/MeshHealthCheck.json
diff --git a/app/assets/dev/raw/generated/MeshLoadBalancingStrategy.json b/app/docs/dev/generated/MeshLoadBalancingStrategy.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshLoadBalancingStrategy.json
rename to app/docs/dev/generated/MeshLoadBalancingStrategy.json
diff --git a/app/assets/dev/raw/generated/MeshProxyPatch.json b/app/docs/dev/generated/MeshProxyPatch.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshProxyPatch.json
rename to app/docs/dev/generated/MeshProxyPatch.json
diff --git a/app/assets/dev/raw/generated/MeshRateLimit.json b/app/docs/dev/generated/MeshRateLimit.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshRateLimit.json
rename to app/docs/dev/generated/MeshRateLimit.json
diff --git a/app/assets/dev/raw/generated/MeshRetry.json b/app/docs/dev/generated/MeshRetry.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshRetry.json
rename to app/docs/dev/generated/MeshRetry.json
diff --git a/app/assets/dev/raw/generated/MeshTCPRoute.json b/app/docs/dev/generated/MeshTCPRoute.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshTCPRoute.json
rename to app/docs/dev/generated/MeshTCPRoute.json
diff --git a/app/assets/dev/raw/generated/MeshTimeout.json b/app/docs/dev/generated/MeshTimeout.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshTimeout.json
rename to app/docs/dev/generated/MeshTimeout.json
diff --git a/app/assets/dev/raw/generated/MeshTrace.json b/app/docs/dev/generated/MeshTrace.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshTrace.json
rename to app/docs/dev/generated/MeshTrace.json
diff --git a/app/assets/dev/raw/generated/MeshTrafficPermission.json b/app/docs/dev/generated/MeshTrafficPermission.json
similarity index 100%
rename from app/assets/dev/raw/generated/MeshTrafficPermission.json
rename to app/docs/dev/generated/MeshTrafficPermission.json
diff --git a/app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp.md b/app/docs/dev/generated/cmd/kuma-cp/kuma-cp.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp.md
rename to app/docs/dev/generated/cmd/kuma-cp/kuma-cp.md
diff --git a/app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp_migrate.md b/app/docs/dev/generated/cmd/kuma-cp/kuma-cp_migrate.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp_migrate.md
rename to app/docs/dev/generated/cmd/kuma-cp/kuma-cp_migrate.md
diff --git a/app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp_migrate_up.md b/app/docs/dev/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
rename to app/docs/dev/generated/cmd/kuma-cp/kuma-cp_migrate_up.md
diff --git a/app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp_run.md b/app/docs/dev/generated/cmd/kuma-cp/kuma-cp_run.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp_run.md
rename to app/docs/dev/generated/cmd/kuma-cp/kuma-cp_run.md
diff --git a/app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp_version.md b/app/docs/dev/generated/cmd/kuma-cp/kuma-cp_version.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kuma-cp/kuma-cp_version.md
rename to app/docs/dev/generated/cmd/kuma-cp/kuma-cp_version.md
diff --git a/app/assets/dev/raw/generated/cmd/kuma-dp/kuma-dp.md b/app/docs/dev/generated/cmd/kuma-dp/kuma-dp.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kuma-dp/kuma-dp.md
rename to app/docs/dev/generated/cmd/kuma-dp/kuma-dp.md
diff --git a/app/assets/dev/raw/generated/cmd/kuma-dp/kuma-dp_run.md b/app/docs/dev/generated/cmd/kuma-dp/kuma-dp_run.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kuma-dp/kuma-dp_run.md
rename to app/docs/dev/generated/cmd/kuma-dp/kuma-dp_run.md
diff --git a/app/assets/dev/raw/generated/cmd/kuma-dp/kuma-dp_version.md b/app/docs/dev/generated/cmd/kuma-dp/kuma-dp_version.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kuma-dp/kuma-dp_version.md
rename to app/docs/dev/generated/cmd/kuma-dp/kuma-dp_version.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl.md b/app/docs/dev/generated/cmd/kumactl/kumactl.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_apply.md b/app/docs/dev/generated/cmd/kumactl/kumactl_apply.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_apply.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_apply.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_completion.md b/app/docs/dev/generated/cmd/kumactl/kumactl_completion.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_completion.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_completion.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_completion_bash.md b/app/docs/dev/generated/cmd/kumactl/kumactl_completion_bash.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_completion_bash.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_completion_bash.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_completion_fish.md b/app/docs/dev/generated/cmd/kumactl/kumactl_completion_fish.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_completion_fish.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_completion_fish.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_completion_zsh.md b/app/docs/dev/generated/cmd/kumactl/kumactl_completion_zsh.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_completion_zsh.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_completion_zsh.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_config.md b/app/docs/dev/generated/cmd/kumactl/kumactl_config.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_config.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_config.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes.md b/app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes_add.md b/app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes_add.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes_add.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes_add.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes_list.md b/app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes_list.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes_list.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes_list.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes_remove.md b/app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes_remove.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes_switch.md b/app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_config_control-planes_switch.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_view.md b/app/docs/dev/generated/cmd/kumactl/kumactl_config_view.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_config_view.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_config_view.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_delete.md b/app/docs/dev/generated/cmd/kumactl/kumactl_delete.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_delete.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_delete.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate.md b/app/docs/dev/generated/cmd/kumactl/kumactl_generate.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_generate.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_dataplane-token.md b/app/docs/dev/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_generate_dataplane-token.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_public-key.md b/app/docs/dev/generated/cmd/kumactl/kumactl_generate_public-key.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_public-key.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_generate_public-key.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_signing-key.md b/app/docs/dev/generated/cmd/kumactl/kumactl_generate_signing-key.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_signing-key.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_generate_signing-key.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_tls-certificate.md b/app/docs/dev/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_generate_tls-certificate.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_user-token.md b/app/docs/dev/generated/cmd/kumactl/kumactl_generate_user-token.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_user-token.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_generate_user-token.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md b/app/docs/dev/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_generate_zone-ingress-token.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_zone-token.md b/app/docs/dev/generated/cmd/kumactl/kumactl_generate_zone-token.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_generate_zone-token.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_generate_zone-token.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_circuit-breaker.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_circuit-breaker.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_circuit-breakers.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_circuit-breakers.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_dataplane.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_dataplane.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_dataplane.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_dataplane.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_dataplanes.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_dataplanes.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_dataplanes.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_dataplanes.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_external-service.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_external-service.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_external-service.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_external-service.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_external-services.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_external-services.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_external-services.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_external-services.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_fault-injection.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_fault-injection.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_fault-injection.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_fault-injection.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_fault-injections.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_fault-injections.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_fault-injections.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_fault-injections.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_global-secret.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_global-secret.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_global-secret.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_global-secret.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_global-secrets.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_global-secrets.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_global-secrets.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_global-secrets.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_healthcheck.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_healthcheck.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_healthcheck.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_healthcheck.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_healthchecks.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_healthchecks.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_healthchecks.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_healthchecks.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_mesh.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_mesh.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_mesh.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_mesh.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshaccesslog.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshaccesslog.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshaccesslogs.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshcircuitbreaker.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshcircuitbreakers.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshes.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshes.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshes.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshes.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshfaultinjection.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshfaultinjections.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshgateway.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshgateway.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshgateway.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshgateway.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshgatewayroute.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshgatewayroutes.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshgateways.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshgateways.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshgateways.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshgateways.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshhealthcheck.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshhealthchecks.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshhttproute.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshhttproute.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshhttproute.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshhttproute.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshhttproutes.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshhttproutes.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategies.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshloadbalancingstrategy.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshproxypatch.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshproxypatch.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshproxypatches.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshproxypatches.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshratelimit.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshratelimit.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshratelimit.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshratelimit.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshratelimits.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshratelimits.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshratelimits.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshratelimits.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshretries.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshretries.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshretries.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshretries.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshretry.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshretry.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshretry.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshretry.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtcproute.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtcproute.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtcproute.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtcproute.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtcproutes.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtcproutes.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtcproutes.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtcproutes.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtimeout.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtimeout.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtimeout.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtimeout.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtimeouts.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtimeouts.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtrace.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtrace.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtrace.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtrace.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtraces.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtraces.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtraces.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtraces.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtrafficpermission.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_meshtrafficpermissions.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_proxytemplate.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_proxytemplate.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_proxytemplate.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_proxytemplate.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_proxytemplates.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_proxytemplates.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_proxytemplates.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_proxytemplates.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_rate-limit.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_rate-limit.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_rate-limit.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_rate-limit.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_rate-limits.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_rate-limits.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_rate-limits.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_rate-limits.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_retries.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_retries.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_retries.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_retries.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_retry.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_retry.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_retry.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_retry.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_secret.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_secret.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_secret.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_secret.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_secrets.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_secrets.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_secrets.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_secrets.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_timeout.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_timeout.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_timeout.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_timeout.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_timeouts.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_timeouts.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_timeouts.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_timeouts.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-log.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-log.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-log.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-log.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-logs.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-logs.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-logs.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-logs.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-permission.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-permission.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-permission.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-permission.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-permissions.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-permissions.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-route.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-route.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-route.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-route.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-routes.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-routes.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-routes.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-routes.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-trace.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-trace.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-trace.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-trace.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-traces.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-traces.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_traffic-traces.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_traffic-traces.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_virtual-outbound.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_virtual-outbound.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_virtual-outbounds.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zone-ingress.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_zone-ingress.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zone-ingress.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_zone-ingress.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zone-ingresses.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_zone-ingresses.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zone.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_zone.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zone.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_zone.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zoneegress.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_zoneegress.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zoneegress.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_zoneegress.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zoneegresses.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_zoneegresses.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zoneegresses.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_zoneegresses.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zones.md b/app/docs/dev/generated/cmd/kumactl/kumactl_get_zones.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_get_zones.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_get_zones.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_circuit-breaker.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_dataplane.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_dataplane.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_dataplane.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_dataplane.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_dataplanes.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_dataplanes.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_fault-injection.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_fault-injection.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_healthcheck.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_healthcheck.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshaccesslog.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshcircuitbreaker.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshes.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshes.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshes.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshes.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshfaultinjection.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshgateway.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshgateway.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshhealthcheck.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshhttproute.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshloadbalancingstrategy.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshproxypatch.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshratelimit.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshretry.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshretry.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshretry.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshretry.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshtcproute.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshtcproute.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshtcproute.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshtcproute.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshtimeout.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshtrace.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshtrace.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_meshtrafficpermission.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_proxytemplate.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_rate-limit.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_rate-limit.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_retry.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_retry.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_retry.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_retry.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_services.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_services.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_services.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_services.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_timeout.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_timeout.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_timeout.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_timeout.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_traffic-log.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_traffic-log.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_traffic-permission.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_traffic-route.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_traffic-route.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_traffic-trace.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zone-ingresses.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zoneegress.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zoneegress.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zoneegresses.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zoneingress.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zoneingress.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zones.md b/app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zones.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_inspect_zones.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_inspect_zones.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_control-plane.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_control-plane.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_control-plane.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_control-plane.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_crds.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_crds.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_crds.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_crds.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_demo.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_demo.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_demo.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_demo.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_gateway.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_gateway.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_gateway.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_gateway.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_gateway_kong-enterprise.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_gateway_kong.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_gateway_kong.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_gateway_kong.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_gateway_kong.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_logging.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_logging.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_logging.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_logging.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_metrics.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_metrics.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_metrics.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_metrics.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_observability.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_observability.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_observability.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_observability.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_tracing.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_tracing.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_tracing.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_tracing.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_transparent-proxy.md b/app/docs/dev/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_install_transparent-proxy.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_uninstall.md b/app/docs/dev/generated/cmd/kumactl/kumactl_uninstall.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_uninstall.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_uninstall.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_uninstall_ebpf.md b/app/docs/dev/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_uninstall_ebpf.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md b/app/docs/dev/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_uninstall_transparent-proxy.md
diff --git a/app/assets/dev/raw/generated/cmd/kumactl/kumactl_version.md b/app/docs/dev/generated/cmd/kumactl/kumactl_version.md
similarity index 100%
rename from app/assets/dev/raw/generated/cmd/kumactl/kumactl_version.md
rename to app/docs/dev/generated/cmd/kumactl/kumactl_version.md
diff --git a/app/assets/dev/raw/generated/kuma-cp.md b/app/docs/dev/generated/kuma-cp.md
similarity index 100%
rename from app/assets/dev/raw/generated/kuma-cp.md
rename to app/docs/dev/generated/kuma-cp.md
diff --git a/app/assets/dev/raw/generated/resources/other_mesh.md b/app/docs/dev/generated/resources/other_mesh.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/other_mesh.md
rename to app/docs/dev/generated/resources/other_mesh.md
diff --git a/app/assets/dev/raw/generated/resources/policy_circuit-breaker.md b/app/docs/dev/generated/resources/policy_circuit-breaker.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_circuit-breaker.md
rename to app/docs/dev/generated/resources/policy_circuit-breaker.md
diff --git a/app/assets/dev/raw/generated/resources/policy_external-service.md b/app/docs/dev/generated/resources/policy_external-service.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_external-service.md
rename to app/docs/dev/generated/resources/policy_external-service.md
diff --git a/app/assets/dev/raw/generated/resources/policy_fault-injection.md b/app/docs/dev/generated/resources/policy_fault-injection.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_fault-injection.md
rename to app/docs/dev/generated/resources/policy_fault-injection.md
diff --git a/app/assets/dev/raw/generated/resources/policy_health-check.md b/app/docs/dev/generated/resources/policy_health-check.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_health-check.md
rename to app/docs/dev/generated/resources/policy_health-check.md
diff --git a/app/assets/dev/raw/generated/resources/policy_meshgateway.md b/app/docs/dev/generated/resources/policy_meshgateway.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_meshgateway.md
rename to app/docs/dev/generated/resources/policy_meshgateway.md
diff --git a/app/assets/dev/raw/generated/resources/policy_meshgatewayroute.md b/app/docs/dev/generated/resources/policy_meshgatewayroute.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_meshgatewayroute.md
rename to app/docs/dev/generated/resources/policy_meshgatewayroute.md
diff --git a/app/assets/dev/raw/generated/resources/policy_proxy-template.md b/app/docs/dev/generated/resources/policy_proxy-template.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_proxy-template.md
rename to app/docs/dev/generated/resources/policy_proxy-template.md
diff --git a/app/assets/dev/raw/generated/resources/policy_rate-limit.md b/app/docs/dev/generated/resources/policy_rate-limit.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_rate-limit.md
rename to app/docs/dev/generated/resources/policy_rate-limit.md
diff --git a/app/assets/dev/raw/generated/resources/policy_retry.md b/app/docs/dev/generated/resources/policy_retry.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_retry.md
rename to app/docs/dev/generated/resources/policy_retry.md
diff --git a/app/assets/dev/raw/generated/resources/policy_timeout.md b/app/docs/dev/generated/resources/policy_timeout.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_timeout.md
rename to app/docs/dev/generated/resources/policy_timeout.md
diff --git a/app/assets/dev/raw/generated/resources/policy_traffic-log.md b/app/docs/dev/generated/resources/policy_traffic-log.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_traffic-log.md
rename to app/docs/dev/generated/resources/policy_traffic-log.md
diff --git a/app/assets/dev/raw/generated/resources/policy_traffic-permissions.md b/app/docs/dev/generated/resources/policy_traffic-permissions.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_traffic-permissions.md
rename to app/docs/dev/generated/resources/policy_traffic-permissions.md
diff --git a/app/assets/dev/raw/generated/resources/policy_traffic-route.md b/app/docs/dev/generated/resources/policy_traffic-route.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_traffic-route.md
rename to app/docs/dev/generated/resources/policy_traffic-route.md
diff --git a/app/assets/dev/raw/generated/resources/policy_traffic-trace.md b/app/docs/dev/generated/resources/policy_traffic-trace.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_traffic-trace.md
rename to app/docs/dev/generated/resources/policy_traffic-trace.md
diff --git a/app/assets/dev/raw/generated/resources/policy_virtual-outbound.md b/app/docs/dev/generated/resources/policy_virtual-outbound.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/policy_virtual-outbound.md
rename to app/docs/dev/generated/resources/policy_virtual-outbound.md
diff --git a/app/assets/dev/raw/generated/resources/proxy_dataplane.md b/app/docs/dev/generated/resources/proxy_dataplane.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/proxy_dataplane.md
rename to app/docs/dev/generated/resources/proxy_dataplane.md
diff --git a/app/assets/dev/raw/generated/resources/proxy_zoneegress.md b/app/docs/dev/generated/resources/proxy_zoneegress.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/proxy_zoneegress.md
rename to app/docs/dev/generated/resources/proxy_zoneegress.md
diff --git a/app/assets/dev/raw/generated/resources/proxy_zoneingress.md b/app/docs/dev/generated/resources/proxy_zoneingress.md
similarity index 100%
rename from app/assets/dev/raw/generated/resources/proxy_zoneingress.md
rename to app/docs/dev/generated/resources/proxy_zoneingress.md
diff --git a/app/assets/dev/raw/helm-values.yaml b/app/docs/dev/helm-values.yaml
similarity index 99%
rename from app/assets/dev/raw/helm-values.yaml
rename to app/docs/dev/helm-values.yaml
index d2f9a3242..7465b9739 100644
--- a/app/assets/dev/raw/helm-values.yaml
+++ b/app/docs/dev/helm-values.yaml
@@ -728,7 +728,6 @@ plugins:
meshhealthchecks: {}
meshhttproutes: {}
meshloadbalancingstrategies: {}
- meshmetrics: {}
meshproxypatches: {}
meshratelimits: {}
meshretries: {}
diff --git a/app/assets/dev/raw/kuma-cp.yaml b/app/docs/dev/kuma-cp.yaml
similarity index 96%
rename from app/assets/dev/raw/kuma-cp.yaml
rename to app/docs/dev/kuma-cp.yaml
index 3e0b8ace6..7c7df697e 100644
--- a/app/assets/dev/raw/kuma-cp.yaml
+++ b/app/docs/dev/kuma-cp.yaml
@@ -41,9 +41,8 @@ store:
# MaxOpenConnections is the maximum number of open connections to the database
# `0` value means number of open connections is unlimited
maxOpenConnections: 50 # ENV: KUMA_STORE_POSTGRES_MAX_OPEN_CONNECTIONS
- # MaxIdleConnections is the maximum number of connections in the idle connection pool
- # <0 value means no idle connections and 0 means default max idle connections.
- # Deprecated: it's only used when driverName=postgres (lib/pq) which is deprecated, use driverName=pgx instead.
+ # MaxIdleConnections (applied only when driverName=postgres) is the maximum number of connections in the idle connection pool
+ # <0 value means no idle connections and 0 means default max idle connections
maxIdleConnections: 50 # ENV: KUMA_STORE_POSTGRES_MAX_IDLE_CONNECTIONS
# MaxListQueryElements defines maximum number of changed elements before requesting full list of elements from the store.
maxListQueryElements: 0 # ENV: KUMA_STORE_POSTGRES_MAX_LIST_QUERY_ELEMENTS
@@ -57,16 +56,14 @@ store:
keyPath: # ENV: KUMA_STORE_POSTGRES_TLS_KEY_PATH
# Path to the root certificate. Used in verifyCa and verifyFull modes.
caPath: # ENV: KUMA_STORE_POSTGRES_TLS_ROOT_CERT_PATH
- # MinReconnectInterval controls the duration to wait before trying to
+ # MinReconnectInterval (applied only when driverName=postgres) controls the duration to wait before trying to
# re-establish the database connection after connection loss. After each
# consecutive failure this interval is doubled, until MaxReconnectInterval
# is reached. Successfully completing the connection establishment procedure
# resets the interval back to MinReconnectInterval.
- # Deprecated: it's only used when driverName=postgres (lib/pq) which is deprecated, use driverName=pgx instead.
minReconnectInterval: "10s" # ENV: KUMA_STORE_POSTGRES_MIN_RECONNECT_INTERVAL
- # MaxReconnectInterval controls the maximum possible duration to wait before trying
+ # MaxReconnectInterval (applied only when driverName=postgres) controls the maximum possible duration to wait before trying
# to re-establish the database connection after connection loss.
- # Deprecated: it's only used when driverName=postgres (lib/pq) which is deprecated, use driverName=pgx instead.
maxReconnectInterval: "60s" # ENV: KUMA_STORE_POSTGRES_MAX_RECONNECT_INTERVAL
# ReadReplica is a setting for a DB replica used only for read queries
readReplica:
@@ -369,11 +366,6 @@ runtime:
tcAttachIface: "" # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_TC_ATTACH_IFACE
# Path where compiled eBPF programs are placed
programsSourcePath: /kuma/ebpf # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_PROGRAMS_SOURCE_PATH
- # IgnoredServiceSelectorLabels defines a list ignored labels in Service selector.
- # If Pod matches a Service with ignored labels, but does not match it fully, it gets Ignored inbound.
- # It is useful when you change Service selector and expect traffic to be sent immediately.
- # An example of this is ArgoCD's BlueGreen deployment and "rollouts-pod-template-hash" selector.
- ignoredServiceSelectorLabels: [] # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_IGNORED_SERVICE_SELECTOR_LABELS
marshalingCacheExpirationTime: 5m # ENV: KUMA_RUNTIME_KUBERNETES_MARSHALING_CACHE_EXPIRATION_TIME
# Kubernetes's resources reconciliation concurrency configuration
controllersConcurrency:
@@ -407,8 +399,6 @@ defaults:
skipMeshCreation: false # ENV: KUMA_DEFAULTS_SKIP_MESH_CREATION
# If true, it skips creating the default tenant resources
skipTenantResources: false # ENV: KUMA_DEFAULTS_SKIP_TENANT_RESOURCES
- # If true, it creates the default routing (TrafficPermisson and TrafficRoute) resources for a new Mesh
- createMeshRoutingResources: false # ENV: KUMA_DEFAULTS_CREATE_MESH_ROUTING_RESOURCES
# Metrics configuration
metrics:
@@ -509,7 +499,7 @@ multizone:
responseBackoff: 0s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_RESPONSE_BACKOFF
zone:
# Kuma Zone name used to mark the zone dataplane resources
- name: "default" # ENV: KUMA_MULTIZONE_ZONE_NAME
+ name: "" # ENV: KUMA_MULTIZONE_ZONE_NAME
# GlobalAddress URL of Global Kuma CP
globalAddress: # ENV KUMA_MULTIZONE_ZONE_GLOBAL_ADDRESS
kds:
@@ -530,8 +520,6 @@ multizone:
# Response backoff is a time Zone CP waits before sending ACK/NACK.
# This is a way to slow down Global CP from sending resources too often.
responseBackoff: 0s # ENV: KUMA_MULTIZONE_ZONE_KDS_RESPONSE_BACKOFF
- # disableOriginLabelValidation disables validation of the origin label when applying resources on Zone CP
- disableOriginLabelValidation: false # ENV: KUMA_MULTIZONE_ZONE_DISABLE_ORIGIN_LABEL_VALIDATION
# Diagnostics configuration
diagnostics:
@@ -757,6 +745,11 @@ experimental:
# If true then control plane computes reachable services automatically based on MeshTrafficPermission.
# Lack of MeshTrafficPermission is treated as Deny the traffic.
autoReachableServices: false # ENV: KUMA_EXPERIMENTAL_AUTO_REACHABLE_SERVICES
+ # KDSSyncNameWithHashSuffix if true then during KDS sync resource name is going to be suffixed with hash.
+ # The hash is computed based on various resource characteristics like mesh, namespace, etc. The feature prevents name
+ # collisions when syncing policies with the same names but different meshes from Global(Universal) to Zone(Kubernetes).
+ # More extensive explanation of the problem and solution can be found in the MADR https://github.com/kumahq/kuma/blob/master/docs/madr/decisions/029-kds-sync-hash-suffix.md
+ KDSSyncNameWithHashSuffix: false # ENV: KUMA_EXPERIMENTAL_KDS_SYNC_NAME_WITH_HASH_SUFFIX
proxy:
gateway:
diff --git a/app/assets/dev/raw/protos/CertificateAuthorityBackend.json b/app/docs/dev/protos/CertificateAuthorityBackend.json
similarity index 100%
rename from app/assets/dev/raw/protos/CertificateAuthorityBackend.json
rename to app/docs/dev/protos/CertificateAuthorityBackend.json
diff --git a/app/assets/dev/raw/protos/CircuitBreaker.json b/app/docs/dev/protos/CircuitBreaker.json
similarity index 100%
rename from app/assets/dev/raw/protos/CircuitBreaker.json
rename to app/docs/dev/protos/CircuitBreaker.json
diff --git a/app/assets/dev/raw/protos/ClustersRequest.json b/app/docs/dev/protos/ClustersRequest.json
similarity index 100%
rename from app/assets/dev/raw/protos/ClustersRequest.json
rename to app/docs/dev/protos/ClustersRequest.json
diff --git a/app/assets/dev/raw/protos/ClustersResponse.json b/app/docs/dev/protos/ClustersResponse.json
similarity index 100%
rename from app/assets/dev/raw/protos/ClustersResponse.json
rename to app/docs/dev/protos/ClustersResponse.json
diff --git a/app/assets/dev/raw/protos/DatadogTracingBackendConfig.json b/app/docs/dev/protos/DatadogTracingBackendConfig.json
similarity index 100%
rename from app/assets/dev/raw/protos/DatadogTracingBackendConfig.json
rename to app/docs/dev/protos/DatadogTracingBackendConfig.json
diff --git a/app/assets/2.5.x/raw/protos/Dataplane.json b/app/docs/dev/protos/Dataplane.json
similarity index 96%
rename from app/assets/2.5.x/raw/protos/Dataplane.json
rename to app/docs/dev/protos/Dataplane.json
index 29b8197c1..a6888446a 100644
--- a/app/assets/2.5.x/raw/protos/Dataplane.json
+++ b/app/docs/dev/protos/Dataplane.json
@@ -136,25 +136,6 @@
"$ref": "#/definitions/kuma.mesh.v1alpha1.Dataplane.Networking.Inbound.ServiceProbe",
"additionalProperties": true,
"description": "ServiceProbe defines parameters for probing the service next to sidecar. When service probe is defined, Envoy will periodically health check the application next to it and report the status to the control plane. On Kubernetes, Kuma deployments rely on Kubernetes probes so this is not used. See https://kuma.io/docs/latest/documentation/health for more information."
- },
- "state": {
- "enum": [
- "Ready",
- 0,
- "NotReady",
- 1,
- "Ignored",
- 2
- ],
- "oneOf": [
- {
- "type": "string"
- },
- {
- "type": "integer"
- }
- ],
- "title": "State"
}
},
"additionalProperties": true,
diff --git a/app/assets/dev/raw/protos/DataplaneInsight.json b/app/docs/dev/protos/DataplaneInsight.json
similarity index 100%
rename from app/assets/dev/raw/protos/DataplaneInsight.json
rename to app/docs/dev/protos/DataplaneInsight.json
diff --git a/app/assets/dev/raw/protos/DataplaneOverview.json b/app/docs/dev/protos/DataplaneOverview.json
similarity index 98%
rename from app/assets/dev/raw/protos/DataplaneOverview.json
rename to app/docs/dev/protos/DataplaneOverview.json
index fa880156a..04e4385b8 100644
--- a/app/assets/dev/raw/protos/DataplaneOverview.json
+++ b/app/docs/dev/protos/DataplaneOverview.json
@@ -152,25 +152,6 @@
"$ref": "#/definitions/kuma.mesh.v1alpha1.Dataplane.Networking.Inbound.ServiceProbe",
"additionalProperties": true,
"description": "ServiceProbe defines parameters for probing the service next to sidecar. When service probe is defined, Envoy will periodically health check the application next to it and report the status to the control plane. On Kubernetes, Kuma deployments rely on Kubernetes probes so this is not used. See https://kuma.io/docs/latest/documentation/health for more information."
- },
- "state": {
- "enum": [
- "Ready",
- 0,
- "NotReady",
- 1,
- "Ignored",
- 2
- ],
- "oneOf": [
- {
- "type": "string"
- },
- {
- "type": "integer"
- }
- ],
- "title": "State"
}
},
"additionalProperties": true,
diff --git a/app/assets/dev/raw/protos/DiscoveryServiceStats.json b/app/docs/dev/protos/DiscoveryServiceStats.json
similarity index 100%
rename from app/assets/dev/raw/protos/DiscoveryServiceStats.json
rename to app/docs/dev/protos/DiscoveryServiceStats.json
diff --git a/app/assets/dev/raw/protos/DiscoverySubscription.json b/app/docs/dev/protos/DiscoverySubscription.json
similarity index 100%
rename from app/assets/dev/raw/protos/DiscoverySubscription.json
rename to app/docs/dev/protos/DiscoverySubscription.json
diff --git a/app/assets/dev/raw/protos/DiscoverySubscriptionStatus.json b/app/docs/dev/protos/DiscoverySubscriptionStatus.json
similarity index 100%
rename from app/assets/dev/raw/protos/DiscoverySubscriptionStatus.json
rename to app/docs/dev/protos/DiscoverySubscriptionStatus.json
diff --git a/app/assets/dev/raw/protos/EnvoyAdmin.json b/app/docs/dev/protos/EnvoyAdmin.json
similarity index 100%
rename from app/assets/dev/raw/protos/EnvoyAdmin.json
rename to app/docs/dev/protos/EnvoyAdmin.json
diff --git a/app/assets/dev/raw/protos/EnvoyVersion.json b/app/docs/dev/protos/EnvoyVersion.json
similarity index 100%
rename from app/assets/dev/raw/protos/EnvoyVersion.json
rename to app/docs/dev/protos/EnvoyVersion.json
diff --git a/app/assets/dev/raw/protos/ExternalService.json b/app/docs/dev/protos/ExternalService.json
similarity index 100%
rename from app/assets/dev/raw/protos/ExternalService.json
rename to app/docs/dev/protos/ExternalService.json
diff --git a/app/assets/dev/raw/protos/FaultInjection.json b/app/docs/dev/protos/FaultInjection.json
similarity index 100%
rename from app/assets/dev/raw/protos/FaultInjection.json
rename to app/docs/dev/protos/FaultInjection.json
diff --git a/app/assets/dev/raw/protos/FileLoggingBackendConfig.json b/app/docs/dev/protos/FileLoggingBackendConfig.json
similarity index 100%
rename from app/assets/dev/raw/protos/FileLoggingBackendConfig.json
rename to app/docs/dev/protos/FileLoggingBackendConfig.json
diff --git a/app/assets/dev/raw/protos/HealthCheck.json b/app/docs/dev/protos/HealthCheck.json
similarity index 100%
rename from app/assets/dev/raw/protos/HealthCheck.json
rename to app/docs/dev/protos/HealthCheck.json
diff --git a/app/assets/dev/raw/protos/HttpMethod.json b/app/docs/dev/protos/HttpMethod.json
similarity index 100%
rename from app/assets/dev/raw/protos/HttpMethod.json
rename to app/docs/dev/protos/HttpMethod.json
diff --git a/app/assets/dev/raw/protos/KumaDpVersion.json b/app/docs/dev/protos/KumaDpVersion.json
similarity index 100%
rename from app/assets/dev/raw/protos/KumaDpVersion.json
rename to app/docs/dev/protos/KumaDpVersion.json
diff --git a/app/assets/dev/raw/protos/KumaResource.json b/app/docs/dev/protos/KumaResource.json
similarity index 93%
rename from app/assets/dev/raw/protos/KumaResource.json
rename to app/docs/dev/protos/KumaResource.json
index 28f5ce5d1..a4781295d 100644
--- a/app/assets/dev/raw/protos/KumaResource.json
+++ b/app/docs/dev/protos/KumaResource.json
@@ -39,12 +39,6 @@
},
"version": {
"type": "string"
- },
- "labels": {
- "additionalProperties": {
- "type": "string"
- },
- "type": "object"
}
},
"additionalProperties": true,
diff --git a/app/assets/dev/raw/protos/Logging.json b/app/docs/dev/protos/Logging.json
similarity index 100%
rename from app/assets/dev/raw/protos/Logging.json
rename to app/docs/dev/protos/Logging.json
diff --git a/app/assets/dev/raw/protos/LoggingBackend.json b/app/docs/dev/protos/LoggingBackend.json
similarity index 100%
rename from app/assets/dev/raw/protos/LoggingBackend.json
rename to app/docs/dev/protos/LoggingBackend.json
diff --git a/app/assets/dev/raw/protos/Mesh.json b/app/docs/dev/protos/Mesh.json
similarity index 100%
rename from app/assets/dev/raw/protos/Mesh.json
rename to app/docs/dev/protos/Mesh.json
diff --git a/app/assets/dev/raw/protos/MeshGateway.json b/app/docs/dev/protos/MeshGateway.json
similarity index 100%
rename from app/assets/dev/raw/protos/MeshGateway.json
rename to app/docs/dev/protos/MeshGateway.json
diff --git a/app/assets/dev/raw/protos/MeshGatewayRoute.json b/app/docs/dev/protos/MeshGatewayRoute.json
similarity index 100%
rename from app/assets/dev/raw/protos/MeshGatewayRoute.json
rename to app/docs/dev/protos/MeshGatewayRoute.json
diff --git a/app/assets/dev/raw/protos/MeshInsight.json b/app/docs/dev/protos/MeshInsight.json
similarity index 100%
rename from app/assets/dev/raw/protos/MeshInsight.json
rename to app/docs/dev/protos/MeshInsight.json
diff --git a/app/assets/dev/raw/protos/Message.json b/app/docs/dev/protos/Message.json
similarity index 100%
rename from app/assets/dev/raw/protos/Message.json
rename to app/docs/dev/protos/Message.json
diff --git a/app/assets/dev/raw/protos/Metrics.json b/app/docs/dev/protos/Metrics.json
similarity index 100%
rename from app/assets/dev/raw/protos/Metrics.json
rename to app/docs/dev/protos/Metrics.json
diff --git a/app/assets/dev/raw/protos/MetricsBackend.json b/app/docs/dev/protos/MetricsBackend.json
similarity index 100%
rename from app/assets/dev/raw/protos/MetricsBackend.json
rename to app/docs/dev/protos/MetricsBackend.json
diff --git a/app/assets/dev/raw/protos/Networking.json b/app/docs/dev/protos/Networking.json
similarity index 100%
rename from app/assets/dev/raw/protos/Networking.json
rename to app/docs/dev/protos/Networking.json
diff --git a/app/assets/dev/raw/protos/PrometheusAggregateMetricsConfig.json b/app/docs/dev/protos/PrometheusAggregateMetricsConfig.json
similarity index 100%
rename from app/assets/dev/raw/protos/PrometheusAggregateMetricsConfig.json
rename to app/docs/dev/protos/PrometheusAggregateMetricsConfig.json
diff --git a/app/assets/dev/raw/protos/PrometheusEnvoyConfig.json b/app/docs/dev/protos/PrometheusEnvoyConfig.json
similarity index 100%
rename from app/assets/dev/raw/protos/PrometheusEnvoyConfig.json
rename to app/docs/dev/protos/PrometheusEnvoyConfig.json
diff --git a/app/assets/dev/raw/protos/PrometheusMetricsBackendConfig.json b/app/docs/dev/protos/PrometheusMetricsBackendConfig.json
similarity index 100%
rename from app/assets/dev/raw/protos/PrometheusMetricsBackendConfig.json
rename to app/docs/dev/protos/PrometheusMetricsBackendConfig.json
diff --git a/app/assets/dev/raw/protos/PrometheusTlsConfig.json b/app/docs/dev/protos/PrometheusTlsConfig.json
similarity index 100%
rename from app/assets/dev/raw/protos/PrometheusTlsConfig.json
rename to app/docs/dev/protos/PrometheusTlsConfig.json
diff --git a/app/assets/dev/raw/protos/ProxyTemplate.json b/app/docs/dev/protos/ProxyTemplate.json
similarity index 100%
rename from app/assets/dev/raw/protos/ProxyTemplate.json
rename to app/docs/dev/protos/ProxyTemplate.json
diff --git a/app/assets/dev/raw/protos/ProxyTemplateProfileSource.json b/app/docs/dev/protos/ProxyTemplateProfileSource.json
similarity index 100%
rename from app/assets/dev/raw/protos/ProxyTemplateProfileSource.json
rename to app/docs/dev/protos/ProxyTemplateProfileSource.json
diff --git a/app/assets/dev/raw/protos/ProxyTemplateRawResource.json b/app/docs/dev/protos/ProxyTemplateRawResource.json
similarity index 100%
rename from app/assets/dev/raw/protos/ProxyTemplateRawResource.json
rename to app/docs/dev/protos/ProxyTemplateRawResource.json
diff --git a/app/assets/dev/raw/protos/ProxyTemplateRawSource.json b/app/docs/dev/protos/ProxyTemplateRawSource.json
similarity index 100%
rename from app/assets/dev/raw/protos/ProxyTemplateRawSource.json
rename to app/docs/dev/protos/ProxyTemplateRawSource.json
diff --git a/app/assets/dev/raw/protos/ProxyTemplateSource.json b/app/docs/dev/protos/ProxyTemplateSource.json
similarity index 100%
rename from app/assets/dev/raw/protos/ProxyTemplateSource.json
rename to app/docs/dev/protos/ProxyTemplateSource.json
diff --git a/app/assets/dev/raw/protos/RateLimit.json b/app/docs/dev/protos/RateLimit.json
similarity index 100%
rename from app/assets/dev/raw/protos/RateLimit.json
rename to app/docs/dev/protos/RateLimit.json
diff --git a/app/assets/dev/raw/protos/Retry.json b/app/docs/dev/protos/Retry.json
similarity index 100%
rename from app/assets/dev/raw/protos/Retry.json
rename to app/docs/dev/protos/Retry.json
diff --git a/app/assets/dev/raw/protos/Routing.json b/app/docs/dev/protos/Routing.json
similarity index 100%
rename from app/assets/dev/raw/protos/Routing.json
rename to app/docs/dev/protos/Routing.json
diff --git a/app/assets/dev/raw/protos/Selector.json b/app/docs/dev/protos/Selector.json
similarity index 100%
rename from app/assets/dev/raw/protos/Selector.json
rename to app/docs/dev/protos/Selector.json
diff --git a/app/assets/dev/raw/protos/ServiceInsight.json b/app/docs/dev/protos/ServiceInsight.json
similarity index 100%
rename from app/assets/dev/raw/protos/ServiceInsight.json
rename to app/docs/dev/protos/ServiceInsight.json
diff --git a/app/assets/dev/raw/protos/StatsRequest.json b/app/docs/dev/protos/StatsRequest.json
similarity index 100%
rename from app/assets/dev/raw/protos/StatsRequest.json
rename to app/docs/dev/protos/StatsRequest.json
diff --git a/app/assets/dev/raw/protos/StatsResponse.json b/app/docs/dev/protos/StatsResponse.json
similarity index 100%
rename from app/assets/dev/raw/protos/StatsResponse.json
rename to app/docs/dev/protos/StatsResponse.json
diff --git a/app/assets/dev/raw/protos/TcpLoggingBackendConfig.json b/app/docs/dev/protos/TcpLoggingBackendConfig.json
similarity index 100%
rename from app/assets/dev/raw/protos/TcpLoggingBackendConfig.json
rename to app/docs/dev/protos/TcpLoggingBackendConfig.json
diff --git a/app/assets/dev/raw/protos/Timeout.json b/app/docs/dev/protos/Timeout.json
similarity index 100%
rename from app/assets/dev/raw/protos/Timeout.json
rename to app/docs/dev/protos/Timeout.json
diff --git a/app/assets/dev/raw/protos/Tracing.json b/app/docs/dev/protos/Tracing.json
similarity index 100%
rename from app/assets/dev/raw/protos/Tracing.json
rename to app/docs/dev/protos/Tracing.json
diff --git a/app/assets/dev/raw/protos/TracingBackend.json b/app/docs/dev/protos/TracingBackend.json
similarity index 100%
rename from app/assets/dev/raw/protos/TracingBackend.json
rename to app/docs/dev/protos/TracingBackend.json
diff --git a/app/assets/dev/raw/protos/TrafficLog.json b/app/docs/dev/protos/TrafficLog.json
similarity index 100%
rename from app/assets/dev/raw/protos/TrafficLog.json
rename to app/docs/dev/protos/TrafficLog.json
diff --git a/app/assets/dev/raw/protos/TrafficPermission.json b/app/docs/dev/protos/TrafficPermission.json
similarity index 100%
rename from app/assets/dev/raw/protos/TrafficPermission.json
rename to app/docs/dev/protos/TrafficPermission.json
diff --git a/app/assets/dev/raw/protos/TrafficRoute.json b/app/docs/dev/protos/TrafficRoute.json
similarity index 100%
rename from app/assets/dev/raw/protos/TrafficRoute.json
rename to app/docs/dev/protos/TrafficRoute.json
diff --git a/app/assets/dev/raw/protos/TrafficTrace.json b/app/docs/dev/protos/TrafficTrace.json
similarity index 100%
rename from app/assets/dev/raw/protos/TrafficTrace.json
rename to app/docs/dev/protos/TrafficTrace.json
diff --git a/app/assets/dev/raw/protos/Version.json b/app/docs/dev/protos/Version.json
similarity index 100%
rename from app/assets/dev/raw/protos/Version.json
rename to app/docs/dev/protos/Version.json
diff --git a/app/assets/dev/raw/protos/VirtualOutbound.json b/app/docs/dev/protos/VirtualOutbound.json
similarity index 100%
rename from app/assets/dev/raw/protos/VirtualOutbound.json
rename to app/docs/dev/protos/VirtualOutbound.json
diff --git a/app/assets/dev/raw/protos/XDSConfigRequest.json b/app/docs/dev/protos/XDSConfigRequest.json
similarity index 100%
rename from app/assets/dev/raw/protos/XDSConfigRequest.json
rename to app/docs/dev/protos/XDSConfigRequest.json
diff --git a/app/assets/dev/raw/protos/XDSConfigResponse.json b/app/docs/dev/protos/XDSConfigResponse.json
similarity index 100%
rename from app/assets/dev/raw/protos/XDSConfigResponse.json
rename to app/docs/dev/protos/XDSConfigResponse.json
diff --git a/app/assets/dev/raw/protos/ZipkinTracingBackendConfig.json b/app/docs/dev/protos/ZipkinTracingBackendConfig.json
similarity index 100%
rename from app/assets/dev/raw/protos/ZipkinTracingBackendConfig.json
rename to app/docs/dev/protos/ZipkinTracingBackendConfig.json
diff --git a/app/assets/dev/raw/protos/ZoneEgress.json b/app/docs/dev/protos/ZoneEgress.json
similarity index 100%
rename from app/assets/dev/raw/protos/ZoneEgress.json
rename to app/docs/dev/protos/ZoneEgress.json
diff --git a/app/assets/dev/raw/protos/ZoneEgressInsight.json b/app/docs/dev/protos/ZoneEgressInsight.json
similarity index 100%
rename from app/assets/dev/raw/protos/ZoneEgressInsight.json
rename to app/docs/dev/protos/ZoneEgressInsight.json
diff --git a/app/assets/dev/raw/protos/ZoneEgressOverview.json b/app/docs/dev/protos/ZoneEgressOverview.json
similarity index 100%
rename from app/assets/dev/raw/protos/ZoneEgressOverview.json
rename to app/docs/dev/protos/ZoneEgressOverview.json
diff --git a/app/assets/dev/raw/protos/ZoneHealthCheckRequest.json b/app/docs/dev/protos/ZoneHealthCheckRequest.json
similarity index 100%
rename from app/assets/dev/raw/protos/ZoneHealthCheckRequest.json
rename to app/docs/dev/protos/ZoneHealthCheckRequest.json
diff --git a/app/assets/dev/raw/protos/ZoneHealthCheckResponse.json b/app/docs/dev/protos/ZoneHealthCheckResponse.json
similarity index 100%
rename from app/assets/dev/raw/protos/ZoneHealthCheckResponse.json
rename to app/docs/dev/protos/ZoneHealthCheckResponse.json
diff --git a/app/assets/dev/raw/protos/ZoneIngress.json b/app/docs/dev/protos/ZoneIngress.json
similarity index 100%
rename from app/assets/dev/raw/protos/ZoneIngress.json
rename to app/docs/dev/protos/ZoneIngress.json
diff --git a/app/assets/dev/raw/protos/ZoneIngressInsight.json b/app/docs/dev/protos/ZoneIngressInsight.json
similarity index 100%
rename from app/assets/dev/raw/protos/ZoneIngressInsight.json
rename to app/docs/dev/protos/ZoneIngressInsight.json
diff --git a/app/assets/dev/raw/protos/ZoneIngressOverview.json b/app/docs/dev/protos/ZoneIngressOverview.json
similarity index 100%
rename from app/assets/dev/raw/protos/ZoneIngressOverview.json
rename to app/docs/dev/protos/ZoneIngressOverview.json
diff --git a/app/assets/raw/CHANGELOG.md b/app/docs/raw/CHANGELOG.md
similarity index 98%
rename from app/assets/raw/CHANGELOG.md
rename to app/docs/raw/CHANGELOG.md
index 7aa78df04..664bcd7bc 100644
--- a/app/assets/raw/CHANGELOG.md
+++ b/app/docs/raw/CHANGELOG.md
@@ -1,14 +1,6 @@
# Changelog
-## 2.5.1
-> Released on 2023/12/05
-
-* feat(dataplane): ignored listeners with ignored labels in selector (backport of #8463) [#8544](https://github.com/kumahq/kuma/pull/8544) @kumahq
-* fix(ZoneIngress): subset routing when tag is present on all subsets (backport of #8443) [#8475](https://github.com/kumahq/kuma/pull/8475) @kumahq
-* fix(metrics): fix kds metrics for simple watchdog (backport of #8428) [#8430](https://github.com/kumahq/kuma/pull/8430) @kumahq
-
-
## 2.5.0
> Released on 2023/11/15
diff --git a/app/assets/raw/UPGRADE.md b/app/docs/raw/UPGRADE.md
similarity index 90%
rename from app/assets/raw/UPGRADE.md
rename to app/docs/raw/UPGRADE.md
index d3b572bc8..a22c16452 100644
--- a/app/assets/raw/UPGRADE.md
+++ b/app/docs/raw/UPGRADE.md
@@ -8,25 +8,6 @@ does not have any particular instructions.
## Upgrade to `2.6.x`
-### Policy
-
-#### Sorting
-
-Policy merging now gives precedence to policies lexicographically before
-other policies.
-
-#### `targetRef.kind: MeshGateway`
-
-Note that when targeting `MeshGateways` you should be using `targetRef.kind:
-MeshGateway`. Previously `targetRef.kind: MeshService` was necessary but this
-left the control plane unable to fully validate policies for builtin gateway
-usage.
-
-##### `to` instead of `from`
-
-With `MeshFaultInjection` and `MeshRateLimit`, `spec.to` with `kind:
-MeshGateway` is now required instead of `spec.from` and `kind: MeshService`.
-
### Unifying Default Connection Timeout Values
To simplify configuration and provide a more consistent user experience, we've unified the default connection timeout values. When no `MeshTimeout` or `Timeout` policy is specified, the connection timeout will now be the same as the default `connectTimeout` values for `MeshTimeout` and `Timeout` policies. This value is now `5s`, which is a decrease from the previous default of `10s`.
@@ -37,60 +18,6 @@ The only users who need to take action are those who are explicitly relying on t
We encourage all users to review their configuration, but we do not anticipate that this change will require any action for most users.
-### Default `TrafficRoute` and `TrafficPermission` resources are not created when creating a new `Mesh`
-
-We decided to remove default `TrafficRoute` and `TrafficPermission` policies that were created during a new mesh creation. Since this release your applications can communicate without need to apply any policy by default.
-If you want to keep the previous behaviour set `KUMA_DEFAULTS_CREATE_MESH_ROUTING_RESOURCES` to `true`.
-
-**The following policies will no longer be created automatically**:
-
- * `CircuitBreaker`
- * `Retry`
- * `Timeout`
- * `TrafficPermission`
- * `TrafficRoute`
-
-**The following policies will be created by default**:
-
- * `MeshCircuitBreaker`
- * `MeshRetry`
- * `MeshTimeout`
-
-> [!CAUTION]
-> Before enabling `mTLS`, remember to add `MeshTrafficPermission.`
-
-Previously, Kuma would automatically create the default `TrafficPermission` policy for traffic routing. However, starting from version `2.6.0`, this is no longer the case.
-
-If you are using `mTLS`, you will need to manually create the `MeshTrafficPermission` policy before enabling `mTLS`.
-
-The `MeshTrafficPermission` policy allows you to specify which services can communicate with each other. This is necessary in a `mTLS` environment because `mTLS` requires that all communication between services be authenticated and authorized.
-
-#### When is it appropriate to set the `KUMA_DEFAULTS_CREATE_MESH_ROUTING_RESOURCES` environment variable to `true`?
-
-* When zones connecting to the global control plane may be running an older version than `2.6.0`.
-* When recreating an environment using continuous delivery (CD) with legacy policies, missing the `TrafficRoute` policy will prevent legacy policies from being applied.
-
-### Change of underlying envoy RBAC plugin for MeshTrafficPermission policies targeting HTTP services
-
-With the release of Kuma 2.6.0, we've made some changes to the implementation of `MeshTrafficPermission` policies targeting HTTP services. These changes primarily revolve around the use of the `envoy.filters.http.rbac` envoy filter instead of the `envoy.filters.network.rbac` filter. This migration entails the following adjustments:
-
-1. **Denied Request Response**: Rejected requests will now receive a 403 response code with the message `RBAC: access denied` instead of the previous 503 code. This aligns with the typical HTTP response code for authorization failures.
-
-2. **RBAC-Related Envoy Stats**: The prefix for RBAC-related Envoy stats has been updated from `:.rbac.` to `http..rbac.`. This reflects the use of the HTTP filter for RBAC enforcement. For instance, the stat `inbound:127.0.0.1:21011.rbac.allowed` will now become `http.127.0.0.1:21011.rbac.allowed.` If you're utilizing these stats in your observability stack, you'll need to update your configuration to reflect the change.
-
-To ensure a smooth transition to Kuma 2.6.0, carefully review your existing configuration files and make necessary adjustments related to denied request responses and RBAC-related Envoy stats.
-
-### Deprecation of postgres driverName=postgres (lib/pq)
-
-The postgres driver `postgres` (lib/pq) is deprecated and will be removed in the future.
-Please migrate to the new postgres driver `pgx` by setting `DriverName=pgx` configuration option or `KUMA_STORE_POSTGRES_DRIVER_NAME=pgx` env variable.
-
-### Make format SI valid for bandwidth in MeshFaultInjection policy
-
-Prior to this upgrade `mbps` and `gbps` were used for units for parameter `conf.responseBandwidth.percentage`.
-These are not valid units according to the [International System of Units](https://en.wikipedia.org/wiki/International_System_of_Units) they are respectively corrected to `Gbps` and `Mbps` if using
-these invalid units convert them into `kbps` prior to upgrade to avoid invalid format.
-
## Upgrade to `2.5.x`
### Transparent-proxy and CNI v1 removal
diff --git a/app/features/index.md b/app/policies/index.md
similarity index 53%
rename from app/features/index.md
rename to app/policies/index.md
index 382c329bb..4f4c5cc2b 100644
--- a/app/features/index.md
+++ b/app/policies/index.md
@@ -1,67 +1,54 @@
---
-layout: features
-title: Features
-subTitle: Bundled features for your service traffic and network configuration.
+layout: policies
+title: Policies
+subTitle: Bundled policies for your service traffic and network configuration.
themeContainerClasses: 'no-sidebar'
# the data that is used to build this page
-features:
+policies:
- section: security
sectionTitle: Security
sectionSubTitle: Identity, Encryption and Compliance
items:
- - title: Mesh / Multi-Mesh (Multi-tenancy)
+ - title: Mesh / Multi-Mesh
url: /docs/latest/production/mesh/
icon: /assets/images/icons/policies/icon-mesh-multi-tenancy@2x.png
- title: Mutual TLS (mTLS)
url: /docs/latest/policies/mutual-tls/
icon: /assets/images/icons/policies/icon-mtls@2x.png
- - title: Mesh Traffic Permissions
- url: /docs/latest/policies/meshtrafficpermission/
+ - title: Traffic Permissions
+ url: /docs/latest/policies/traffic-permissions/
icon: /assets/images/icons/policies/icon-traffic-control@2x.png
- - section: ingress-traffic
- sectionTitle: Ingress Traffic
- sectionSubTitle: Getting traffic inside your mesh
- items:
- - title: Delegated Gateway
- url: /docs/latest/explore/gateway/#delegated
- icon: /assets/images/icons/policies/icon-delegatedgateway.png
- - title: Builtin Gateway
- url: /docs/latest/explore/gateway/#builtin
- icon: /assets/images/icons/policies/icon-builtingateway.png
- - title: Gateway API
- url: /docs/latest/explore/gateway-api
- icon: /assets/images/icons/policies/icon-gatewayapi.png
- section: traffic-control
sectionTitle: Traffic Control
sectionSubTitle: Routing, Ingress, Failover
items:
- - title: Mesh HTTP Route
- url: /docs/latest/policies/meshhttproute/
- icon: /assets/images/icons/policies/icon-traffic-route@2x.png
- - title: Mesh TCP Route
- url: /docs/latest/policies/meshtcproute/
+ - title: Traffic Route
+ url: /docs/latest/policies/traffic-route/
icon: /assets/images/icons/policies/icon-traffic-route@2x.png
- - title: Mesh Health Check
- url: /docs/latest/policies/meshhealthcheck/
+ - title: Health Check
+ url: /docs/latest/policies/health-check/
icon: /assets/images/icons/policies/icon-healthcheck@2x.png
- - title: Mesh Circuit Breaker
- url: /docs/latest/policies/meshcircuitbreaker/
+ - title: Circuit Breaker
+ url: /docs/latest/policies/circuit-breaker/
icon: /assets/images/icons/policies/icon-circuitbreaker.png
- - title: Mesh Fault Injection
- url: /docs/latest/policies/meshfaultinjection
+ - title: Fault Injection
+ url: /docs/latest/policies/fault-injection
icon: /assets/images/icons/policies/icon-fault-injection@2x.png
+ - title: Kong Gateway
+ url: /docs/latest/explore/gateway/
+ icon: /assets/images/icons/policies/icon-kong-logo.png
- title: External Services
url: /docs/latest/policies/external-services/
icon: /assets/images/icons/policies/icon-external-services.png
- - title: Mesh Retry
- url: /docs/latest/policies/meshretry/
+ - title: Retries
+ url: /docs/latest/policies/retry/
icon: /assets/images/icons/policies/retry@2x.png
- - title: Mesh Timeout
- url: /docs/latest/policies/meshtimeout/
+ - title: Timeouts
+ url: /docs/latest/policies/timeout/
icon: /assets/images/icons/policies/icon-timeout@2x-80.jpg
- - title: Mesh Rate Limit
- url: /docs/latest/policies/meshratelimit/
+ - title: Rate Limit
+ url: /docs/latest/policies/rate-limit/
icon: /assets/images/icons/policies/icon-rate-limits.png
- title: Virtual Outbound
url: /docs/latest/policies/virtual-outbound/
@@ -70,24 +57,24 @@ features:
sectionTitle: Observability
sectionSubTitle: Metrics, Logs and Traces
items:
+ - title: Traffic Metrics
+ url: /docs/latest/policies/traffic-metrics/
+ icon: /assets/images/icons/policies/icon-dataplane-metrics@2x.png
- title: Service Map
url: /docs/latest/explore/observability/#datasource-and-service-map
icon: /assets/images/icons/policies/service-map@2x.png
- - title: Mesh Trace
- url: /docs/latest/policies/meshtrace/
+ - title: Traffic Trace
+ url: /docs/latest/policies/traffic-trace/
icon: /assets/images/icons/policies/icon-traffic-trace@2x.png
- - title: Mesh Access Log
- url: /docs/latest/policies/meshaccesslog/
+ - title: Traffic Log
+ url: /docs/latest/policies/traffic-log/
icon: /assets/images/icons/policies/icon-traffic-log@2x.png
- - title: Open telemetry support
- url: /docs/latest/explore/observability/
- icon: /assets/images/icons/policies/icon-opentelemetry.png
- section: advanced
sectionTitle: Advanced
sectionSubTitle: Envoy configuration and Miscellaneous
items:
- - title: Mesh Proxy Patch
- url: /docs/latest/policies/meshproxypatch/
+ - title: Proxy Template
+ url: /docs/latest/policies/proxy-template/
icon: /assets/images/icons/policies/icon-proxy-template@2x.png
- title: DP/CP Security
url: /docs/latest/production/secure-deployment/dp-auth/
diff --git a/jekyll-dev.yml b/jekyll-dev.yml
index 729fc7595..d52b70913 100644
--- a/jekyll-dev.yml
+++ b/jekyll-dev.yml
@@ -86,7 +86,3 @@ set_flag_values_prefix: ""
# Helm commands
mesh_helm_repo: kuma/kuma
mesh_helm_install_name: kuma
-
-mesh_raw_generated_paths:
- - app/assets
- - app/docs
diff --git a/jekyll-kuma-plugins/lib/jekyll/kuma-plugins/liquid/tags/embed.rb b/jekyll-kuma-plugins/lib/jekyll/kuma-plugins/liquid/tags/embed.rb
index a2ce3efe1..0e1037084 100644
--- a/jekyll-kuma-plugins/lib/jekyll/kuma-plugins/liquid/tags/embed.rb
+++ b/jekyll-kuma-plugins/lib/jekyll/kuma-plugins/liquid/tags/embed.rb
@@ -19,7 +19,7 @@ def render(context)
ignored_links = context.registers[:site].config.fetch('mesh_ignored_links_regex', [])
release = context.registers[:page]['release']
begin
- f = read_file(base_paths, File.join(@versioned ? release : '', 'raw', @file))
+ f = read_file(base_paths, File.join(@versioned ? release : '', @file))
data = f.read()
ignored_links.each {|re| data = data.gsub(Regexp.new(re), '') }
return data
diff --git a/jekyll-kuma-plugins/lib/jekyll/kuma-plugins/liquid/tags/jsonschema.rb b/jekyll-kuma-plugins/lib/jekyll/kuma-plugins/liquid/tags/jsonschema.rb
index 5b9fb4fca..6c2a5f889 100644
--- a/jekyll-kuma-plugins/lib/jekyll/kuma-plugins/liquid/tags/jsonschema.rb
+++ b/jekyll-kuma-plugins/lib/jekyll/kuma-plugins/liquid/tags/jsonschema.rb
@@ -58,7 +58,7 @@ def render(context)
end
PATHS_CONFIG = 'mesh_raw_generated_paths'
-DEFAULT_PATHS = ['app/assets']
+DEFAULT_PATHS = ['app/docs']
def read_file(paths, file_name)
paths.each do |path|
file_path = File.join(path, file_name)
@@ -73,16 +73,16 @@ def create_loader(type, name)
case type
when 'proto'
l = lambda do |paths, release|
- return JSON.load(read_file(paths, File.join("#{release}", 'raw', 'protos', "#{name}.json")))
+ return JSON.load(read_file(paths, File.join("#{release}", 'protos', "#{name}.json")))
end
when 'crd'
l = lambda do |paths, release|
- d = YAML.load(read_file(paths, File.join("#{release}", 'raw', 'crds', "#{name}.yaml")))
+ d = YAML.load(read_file(paths, File.join("#{release}", 'crds', "#{name}.yaml")))
return d['spec']['versions'][0]['schema']['openAPIV3Schema']
end
when 'policy'
l = lambda do |paths, release|
- d = YAML.load(read_file(paths, File.join("#{release}", 'raw', 'crds', "kuma.io_#{name.downcase}.yaml")))
+ d = YAML.load(read_file(paths, File.join("#{release}", 'crds', "kuma.io_#{name.downcase}.yaml")))
return d['spec']['versions'][0]['schema']['openAPIV3Schema']['properties']['spec']
end
else
diff --git a/jekyll.yml b/jekyll.yml
index 1b9f37c6f..1189f4d7b 100644
--- a/jekyll.yml
+++ b/jekyll.yml
@@ -94,7 +94,3 @@ mesh_helm_install_name: kuma
# binary options
mesh_install_archive_name: kuma
-
-mesh_raw_generated_paths:
- - app/assets
- - app/docs
diff --git a/meta_org.yml b/meta_org.yml
index 57a7e7cd2..07b3c4d3c 100644
--- a/meta_org.yml
+++ b/meta_org.yml
@@ -96,9 +96,3 @@ default:
description: "2.5.x release"
- title: 2.6.x
description: "2.6.x release"
- - title: 2.7.x
- description: "2.7.x release"
- - title: 2.8.x
- description: "2.8.x release"
- - title: 2.9.x
- description: "2.9.x release"
diff --git a/package.json b/package.json
index e93cb91df..0426066cc 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,7 @@
"devDependencies": {
"sass": "^1.63.5",
"stylus": "^0.59.0",
- "vite": "^4.5.2",
+ "vite": "^4.3.9",
"vite-plugin-ruby": "^3.2.2",
"vite-plugin-windicss": "^1.9.0",
"windicss": "^3.5.6"
diff --git a/yarn.lock b/yarn.lock
index 87fb8fca3..6d2996f29 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12,115 +12,115 @@
resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.4.tgz#b1c11b95f89f13842204d3d83de01e10bb9257db"
integrity sha512-qe8Nmh9rYI/HIspLSTwtbMFPj6dISG6+dJnOguTlPNXtCvS2uezdxscVBb7/3DrmNbQK49TDqpkSQ1chbRGdpQ==
-"@esbuild/android-arm64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
- integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
-
-"@esbuild/android-arm@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
- integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
-
-"@esbuild/android-x64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
- integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
-
-"@esbuild/darwin-arm64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
- integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
-
-"@esbuild/darwin-x64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
- integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
-
-"@esbuild/freebsd-arm64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
- integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
-
-"@esbuild/freebsd-x64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
- integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
-
-"@esbuild/linux-arm64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
- integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
-
-"@esbuild/linux-arm@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
- integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
-
-"@esbuild/linux-ia32@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
- integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
-
-"@esbuild/linux-loong64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
- integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
-
-"@esbuild/linux-mips64el@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
- integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
-
-"@esbuild/linux-ppc64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
- integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
-
-"@esbuild/linux-riscv64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
- integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
-
-"@esbuild/linux-s390x@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
- integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
-
-"@esbuild/linux-x64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
- integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
-
-"@esbuild/netbsd-x64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
- integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
-
-"@esbuild/openbsd-x64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
- integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
-
-"@esbuild/sunos-x64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
- integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
-
-"@esbuild/win32-arm64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
- integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
-
-"@esbuild/win32-ia32@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
- integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
-
-"@esbuild/win32-x64@0.18.20":
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
- integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
+"@esbuild/android-arm64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd"
+ integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==
+
+"@esbuild/android-arm@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d"
+ integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==
+
+"@esbuild/android-x64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1"
+ integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==
+
+"@esbuild/darwin-arm64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276"
+ integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==
+
+"@esbuild/darwin-x64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb"
+ integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==
+
+"@esbuild/freebsd-arm64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2"
+ integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==
+
+"@esbuild/freebsd-x64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4"
+ integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==
+
+"@esbuild/linux-arm64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb"
+ integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==
+
+"@esbuild/linux-arm@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a"
+ integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==
+
+"@esbuild/linux-ia32@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a"
+ integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==
+
+"@esbuild/linux-loong64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72"
+ integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==
+
+"@esbuild/linux-mips64el@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289"
+ integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==
+
+"@esbuild/linux-ppc64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7"
+ integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==
+
+"@esbuild/linux-riscv64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09"
+ integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==
+
+"@esbuild/linux-s390x@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829"
+ integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==
+
+"@esbuild/linux-x64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4"
+ integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==
+
+"@esbuild/netbsd-x64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462"
+ integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==
+
+"@esbuild/openbsd-x64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691"
+ integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==
+
+"@esbuild/sunos-x64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273"
+ integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==
+
+"@esbuild/win32-arm64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f"
+ integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==
+
+"@esbuild/win32-ia32@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03"
+ integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==
+
+"@esbuild/win32-x64@0.17.19":
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061"
+ integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==
"@jridgewell/sourcemap-codec@^1.4.13":
version "1.4.15"
@@ -250,33 +250,33 @@ debug@^4.3.2, debug@^4.3.4:
dependencies:
ms "2.1.2"
-esbuild@^0.18.10:
- version "0.18.20"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
- integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
+esbuild@^0.17.5:
+ version "0.17.19"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955"
+ integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==
optionalDependencies:
- "@esbuild/android-arm" "0.18.20"
- "@esbuild/android-arm64" "0.18.20"
- "@esbuild/android-x64" "0.18.20"
- "@esbuild/darwin-arm64" "0.18.20"
- "@esbuild/darwin-x64" "0.18.20"
- "@esbuild/freebsd-arm64" "0.18.20"
- "@esbuild/freebsd-x64" "0.18.20"
- "@esbuild/linux-arm" "0.18.20"
- "@esbuild/linux-arm64" "0.18.20"
- "@esbuild/linux-ia32" "0.18.20"
- "@esbuild/linux-loong64" "0.18.20"
- "@esbuild/linux-mips64el" "0.18.20"
- "@esbuild/linux-ppc64" "0.18.20"
- "@esbuild/linux-riscv64" "0.18.20"
- "@esbuild/linux-s390x" "0.18.20"
- "@esbuild/linux-x64" "0.18.20"
- "@esbuild/netbsd-x64" "0.18.20"
- "@esbuild/openbsd-x64" "0.18.20"
- "@esbuild/sunos-x64" "0.18.20"
- "@esbuild/win32-arm64" "0.18.20"
- "@esbuild/win32-ia32" "0.18.20"
- "@esbuild/win32-x64" "0.18.20"
+ "@esbuild/android-arm" "0.17.19"
+ "@esbuild/android-arm64" "0.17.19"
+ "@esbuild/android-x64" "0.17.19"
+ "@esbuild/darwin-arm64" "0.17.19"
+ "@esbuild/darwin-x64" "0.17.19"
+ "@esbuild/freebsd-arm64" "0.17.19"
+ "@esbuild/freebsd-x64" "0.17.19"
+ "@esbuild/linux-arm" "0.17.19"
+ "@esbuild/linux-arm64" "0.17.19"
+ "@esbuild/linux-ia32" "0.17.19"
+ "@esbuild/linux-loong64" "0.17.19"
+ "@esbuild/linux-mips64el" "0.17.19"
+ "@esbuild/linux-ppc64" "0.17.19"
+ "@esbuild/linux-riscv64" "0.17.19"
+ "@esbuild/linux-s390x" "0.17.19"
+ "@esbuild/linux-x64" "0.17.19"
+ "@esbuild/netbsd-x64" "0.17.19"
+ "@esbuild/openbsd-x64" "0.17.19"
+ "@esbuild/sunos-x64" "0.17.19"
+ "@esbuild/win32-arm64" "0.17.19"
+ "@esbuild/win32-ia32" "0.17.19"
+ "@esbuild/win32-x64" "0.17.19"
fast-glob@^3.2.12:
version "3.2.12"
@@ -421,10 +421,10 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-nanoid@^3.3.7:
- version "3.3.7"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
- integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+nanoid@^3.3.6:
+ version "3.3.6"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
+ integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
@@ -453,12 +453,12 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-postcss@^8.4.27:
- version "8.4.33"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742"
- integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==
+postcss@^8.4.23:
+ version "8.4.31"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
+ integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
dependencies:
- nanoid "^3.3.7"
+ nanoid "^3.3.6"
picocolors "^1.0.0"
source-map-js "^1.0.2"
@@ -484,10 +484,10 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rollup@^3.27.1:
- version "3.29.4"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981"
- integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
+rollup@^3.21.0:
+ version "3.25.1"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.25.1.tgz#9fff79d22ff1a904b2b595a2fb9bc3793cb987d8"
+ integrity sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==
optionalDependencies:
fsevents "~2.3.2"
@@ -563,14 +563,14 @@ vite-plugin-windicss@^1.9.0:
kolorist "^1.8.0"
windicss "^3.5.6"
-vite@^4.5.2:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.2.tgz#d6ea8610e099851dad8c7371599969e0f8b97e82"
- integrity sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==
+vite@^4.3.9:
+ version "4.3.9"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.9.tgz#db896200c0b1aa13b37cdc35c9e99ee2fdd5f96d"
+ integrity sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==
dependencies:
- esbuild "^0.18.10"
- postcss "^8.4.27"
- rollup "^3.27.1"
+ esbuild "^0.17.5"
+ postcss "^8.4.23"
+ rollup "^3.21.0"
optionalDependencies:
fsevents "~2.3.2"