From fa3c6e2281c0b93f64baeb0a4ddf4b6479710349 Mon Sep 17 00:00:00 2001 From: k Date: Mon, 20 Oct 2025 16:05:20 +0200 Subject: [PATCH 01/21] remove k3s in the docs --- CONTRIBUTING.md | 1 - .../vcluster/create-ui-optional-fields.mdx | 2 +- .../_partials/virtual-cluster-content.mdx | 2 +- vcluster/_fragments/distro/compat-k3s.mdx | 9 --- vcluster/_fragments/high-availability-k3s.mdx | 58 ------------------- .../_fragments/private-nodes-limitations.mdx | 3 - .../_fragments/virtual-cluster-content.mdx | 2 +- vcluster/_partials/deploy/distros.mdx | 1 - .../_partials/what-are-virtual-clusters.mdx | 2 +- .../control-plane/components/distro/k3s.mdx | 42 -------------- .../container/security/corporate-proxy.mdx | 2 +- vcluster/integrations/metrics-server.mdx | 27 --------- .../gitops/_category_.json | 5 ++ .../gitops}/flux.mdx | 0 14 files changed, 10 insertions(+), 146 deletions(-) delete mode 100644 vcluster/_fragments/distro/compat-k3s.mdx delete mode 100644 vcluster/_fragments/high-availability-k3s.mdx delete mode 100644 vcluster/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx create mode 100644 vcluster/third-party-integrations/gitops/_category_.json rename vcluster/{deploy/control-plane/container => third-party-integrations/gitops}/flux.mdx (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8f3b39544..57938cbe7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -287,7 +287,6 @@ The command line interface name is `vcluster`. ### Abbreviations for Kubernetes distros -- [Lightweight Kubernetes](https://k3s.io/): K3s - [Kubernetes](https://kubernetes.io/): K8s - [Zero Friction Kubernetes](https://k0sproject.io/): k0s Note that k0s is the only Kubernetes distro to use a lower case 'k' diff --git a/platform/_partials/vcluster/create-ui-optional-fields.mdx b/platform/_partials/vcluster/create-ui-optional-fields.mdx index bd6aeedbd..2773ba247 100644 --- a/platform/_partials/vcluster/create-ui-optional-fields.mdx +++ b/platform/_partials/vcluster/create-ui-optional-fields.mdx @@ -6,7 +6,7 @@ import Label from "@site/src/components/Label"; The tab contains settings relating to the virtual cluster deployment itself, here you can provide Helm values to be used when deploying the virtual cluster, select the virtual cluster distribution (e.g. - k8s (default), k3s, k0s), as well as configurations for sleep mode and + k8s (default)), as well as configurations for sleep mode and ingress access. diff --git a/platform/_partials/virtual-cluster-content.mdx b/platform/_partials/virtual-cluster-content.mdx index ad49b430c..665051e11 100644 --- a/platform/_partials/virtual-cluster-content.mdx +++ b/platform/_partials/virtual-cluster-content.mdx @@ -86,7 +86,7 @@ Virtual clusters provide immense benefits for large-scale Kubernetes deployments - Auto-scale, purge, snapshot, and move your vCluster instances, since they are Kubernetes deployments. - **Low Overhead:** - vCluster instances are super lightweight and only reside in a single namespace. - - vCluster instances run with [K3s](https://k3s.io/), a super low-footprint K8s distribution. You can use other supported distributions such as [K0s](https://k0sproject.io/), vanilla [Kubernetes](https://kubernetes.io/), and [AWS EKS](https://aws.amazon.com/eks/). + - You can run vCluster with supported distributions such as vanilla [Kubernetes](https://kubernetes.io/), and [AWS EKS](https://aws.amazon.com/eks/). - The vCluster control plane runs inside a single pod. Open source vCluster also uses a CoreDNS pod for vCluster-internal DNS capabilities. With vCluster Platform, however, you can enable the integrated CoreDNS so you don't need the additional pod. - **No Network Degradation:** - Since the pods and services inside a vCluster are actually being synchronized down to the host cluster, they are effectively using the underlying cluster's pod and service networking. The vCluster pods are as fast as other pods in the underlying host cluster. diff --git a/vcluster/_fragments/distro/compat-k3s.mdx b/vcluster/_fragments/distro/compat-k3s.mdx deleted file mode 100644 index 155664358..000000000 --- a/vcluster/_fragments/distro/compat-k3s.mdx +++ /dev/null @@ -1,9 +0,0 @@ -import KubernetesVersions from '../../_partials/deploy/kubernetes-versions.mdx' -import { HostClusterCompat } from '../../_partials/deploy/host-cluster-compat.mdx' - -### Host cluster compatibility - - -vCluster should work when deployed on a host cluster with the following supported Kubernetes versions: - - diff --git a/vcluster/_fragments/high-availability-k3s.mdx b/vcluster/_fragments/high-availability-k3s.mdx deleted file mode 100644 index 2679ccdfb..000000000 --- a/vcluster/_fragments/high-availability-k3s.mdx +++ /dev/null @@ -1,58 +0,0 @@ -### Enabling High Availability - -In order to run vCluster with k3s as Kubernetes distribution in high availability mode, the following steps are required: - -* create and use an [external datastore](../deploying-vclusters/persistence.mdx) (as opposed to the embedded SQLite datastore used in single-server setups) -* run two or more k3s pods that will serve the Kubernetes API and run other control plane services - -First create a `vcluster.yaml` in the following form and make sure to change the connection string in `K3S_DATASTORE_ENDPOINT`: - -``` -syncer: - replicas: 3 - -# Set external datastore endpoint -vcluster: - env: - - name: K3S_DATASTORE_ENDPOINT - value: mysql://username:password@tcp(hostname:3306)/database-name - -# Disable persistent storage as all data (including bootstrap data) is stored in external datastore -storage: - persistence: false - -# Scale up CoreDNS replicas -coredns: - replicas: 2 -``` - -Then create the vCluster with the following command: - -``` -vcluster create ... --connect=false -f values.yaml -``` - -Check that vCluster including the control plane is running correctly: - -``` -kubectl get pods -n vcluster -NAME READY STATUS RESTARTS AGE -coredns-66ffcc6b58-bhk4s-x-kube-system-x-vcluster 1/1 Running 0 21s -coredns-66ffcc6b58-n7npd-x-kube-system-x-vcluster 1/1 Running 0 21s -vcluster-54fb5dd76-92szq 2/2 Running 0 3m1s -vcluster-54fb5dd76-ntbrh 2/2 Running 0 3m1s -``` - -Now connect to the vCluster: - -``` -vcluster connect vcluster -n vcluster - -# Then execute in a new terminal -export KUBECONFIG=kubeconfig.yaml -kubectl get ns -... -``` - - -Check the [GitHub repository](https://github.com/loft-sh/vcluster/tree/main/charts/k3s) for all available chart options. diff --git a/vcluster/_fragments/private-nodes-limitations.mdx b/vcluster/_fragments/private-nodes-limitations.mdx index 8e3f12a16..ae445b254 100644 --- a/vcluster/_fragments/private-nodes-limitations.mdx +++ b/vcluster/_fragments/private-nodes-limitations.mdx @@ -7,7 +7,6 @@ The following features are not available: - `sync.*` - No resource syncing between virtual and host clusters - `integrations.*` - Integrations depend on syncing functionality - `networking.replicateServices` - Services are not replicated to host -- `controlPlane.distro.k3s` - Only standard Kubernetes (k8s) is supported - `controlPlane.coredns.embedded: true` - Embedded CoreDNS conflicts with custom CNI - `controlPlane.advanced.virtualScheduler.enabled: false` - Virtual scheduler cannot be disabled - `sleepMode.*` - No ability to sleep workloads or control plane @@ -38,8 +37,6 @@ networking: # Distribution restrictions controlPlane: distro: - k3s: - enabled: false # k3s distribution not supported k8s: enabled: true # Only standard Kubernetes works diff --git a/vcluster/_fragments/virtual-cluster-content.mdx b/vcluster/_fragments/virtual-cluster-content.mdx index 1391b05a3..d43832480 100644 --- a/vcluster/_fragments/virtual-cluster-content.mdx +++ b/vcluster/_fragments/virtual-cluster-content.mdx @@ -86,7 +86,7 @@ Virtual clusters provide immense benefits for large-scale Kubernetes deployments - Auto-scale, purge, snapshot, and move your vCluster instances, since they are Kubernetes deployments. - **Low Overhead:** - vCluster instances are super lightweight and only reside in a single namespace. - - vCluster instances run with [K3s](https://k3s.io/), a super low-footprint K8s distribution. You can use other supported distributions such as [K0s](https://k0sproject.io/), vanilla [Kubernetes](https://kubernetes.io/), and [AWS EKS](https://aws.amazon.com/eks/). + - You run vCluster with supported distributions such as [K0s](https://k0sproject.io/), vanilla [Kubernetes](https://kubernetes.io/), and [AWS EKS](https://aws.amazon.com/eks/). - The vCluster control plane runs inside a single pod. Open source vCluster also uses a CoreDNS pod for vCluster-internal DNS capabilities. With vCluster Platform, however, you can enable the integrated CoreDNS so you don't need the additional pod. - **No Network Degradation:** - Since the pods and services inside a vCluster are actually being synchronized down to the host cluster, they are effectively using the underlying cluster's pod and service networking. The vCluster pods are as fast as other pods in the underlying host cluster. diff --git a/vcluster/_partials/deploy/distros.mdx b/vcluster/_partials/deploy/distros.mdx index bee9446fe..6c6725f15 100644 --- a/vcluster/_partials/deploy/distros.mdx +++ b/vcluster/_partials/deploy/distros.mdx @@ -14,7 +14,6 @@ By default, the distribution of vCluster is vanilla Kubernetes (K8s) and is the The following distributions are supported for virtual clusters: - **K8s**: By default, vCluster uses vanilla Kubernetes. This is the recommended distribution. -- [**K3s**](https://github.com/k3s-io/k3s): A lightweight, certified Kubernetes distribution designed for resource-constrained environments, remote locations, and IoT devices. K3s is only supported for control plane as a container and worker nodes as host nodes. diff --git a/vcluster/_partials/what-are-virtual-clusters.mdx b/vcluster/_partials/what-are-virtual-clusters.mdx index 6e62ff026..c0b446311 100644 --- a/vcluster/_partials/what-are-virtual-clusters.mdx +++ b/vcluster/_partials/what-are-virtual-clusters.mdx @@ -50,7 +50,7 @@ Virtual clusters provide immense benefits for large-scale Kubernetes deployments ### Enhanced flexibility and compatibility - - **Diverse Kubernetes environments:** vCluster supports different Kubernetes versions and distributions (including Kubernetes, K3s, and K0s), allowing version skews. This makes it possible to tailor each virtual cluster to specific requirements without impacting others. + - **Diverse Kubernetes environments:** vCluster supports different Kubernetes versions and distributions (including Kubernetes, and K0s), allowing version skews. This makes it possible to tailor each virtual cluster to specific requirements without impacting others. - **Adaptable backing stores:** Choose from a range of data stores, from lightweight (SQLite) to enterprise-grade options (embedded etcd, external data stores like Global RDS), catering to various scalability and durability needs. - **Runs anywhere:** Virtual clusters can run on EKS, GKE, AKS, OpenShift, RKE, K3s, cloud, edge, and on-prem. As long as it's a Kubernetes cluster, you can run a virtual cluster on top of it. diff --git a/vcluster/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx deleted file mode 100644 index fda970023..000000000 --- a/vcluster/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Lightweight Kubernetes K3s -sidebar_label: K3s -sidebar_position: 2 -description: Configure K3s as the distro for the virtual cluster. -sidebar_class_name: host-nodes ---- - -import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' - -import TenancySupport from '../../../../../_fragments/tenancy-support.mdx'; - -:::warning Deprecation notice -Support for **K3s** is deprecated. Migration to a supported Kubernetes distribution is recommended. -::: - - - -[Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. For more information on features, see the [K3s documentation](https://docs.k3s.io/). - -To use K3s with default deployment options, add the following to your `vcluster.yaml` config file: - -```yaml -controlPlane: - distro: - k3s: - enabled: true -``` - -:::warning -After deploying your vCluster, changing the Kubernetes distribution of vCluster is not supported. -::: - - -## Compatibility matrix - - - -## Config reference - - \ No newline at end of file diff --git a/vcluster/deploy/control-plane/container/security/corporate-proxy.mdx b/vcluster/deploy/control-plane/container/security/corporate-proxy.mdx index ab1cabad8..037408c38 100644 --- a/vcluster/deploy/control-plane/container/security/corporate-proxy.mdx +++ b/vcluster/deploy/control-plane/container/security/corporate-proxy.mdx @@ -245,7 +245,7 @@ kubectl exec -n vcluster-proxy my-vcluster-0 -- curl -I http://my-vcluster-etcd: ## External etcd deployments -When using external etcd as the backing store for vCluster instead of the default embedded SQLite/k3s, you **must** include the etcd service name explicitly in the `NO_PROXY` environment variable. The service name follows the pattern `-etcd`. This requirement is critical because: +When using external etcd as the backing store for vCluster instead of the default embedded SQLite, you **must** include the etcd service name explicitly in the `NO_PROXY` environment variable. The service name follows the pattern `-etcd`. This requirement is critical because: - The Go HTTP client used by vCluster requires exact hostname matches for services without a leading dot - Domain patterns like `.local` or `.svc.cluster.local` do not cover the etcd service name diff --git a/vcluster/integrations/metrics-server.mdx b/vcluster/integrations/metrics-server.mdx index 7ba4e450f..7bfb56660 100644 --- a/vcluster/integrations/metrics-server.mdx +++ b/vcluster/integrations/metrics-server.mdx @@ -25,33 +25,6 @@ kube-system coredns-854c77959c-q5878 3m 17Mi kube-system metrics-server-5fbdc54f8c-fgrqk 0m 6Mi ``` -:::info K3s Errors - -If you see the below error after installing metrics-server (check [k3s#5334](https://github.com/k3s-io/k3s/issues/5344) for more information): - -``` -loading OpenAPI spec for "v1beta1.metrics.k8s.io" failed with: failed to retrieve openAPI spec, http error: ResponseCode: 503 -``` -Create a file named `metrics_patch.yaml` with the following contents: -``` -spec: - template: - spec: - containers: - - name: metrics-server - command: - - /metrics-server - - --metric-resolution=30s - - --kubelet-insecure-tls=true - - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP -``` -and apply the patch with kubectl: -``` -kubectl patch deployment metrics-server --patch-file metrics_patch.yaml -n kube-system -``` - -::: - ### How does it work? By default, vCluster will create a service for each node that redirects incoming traffic from within the vCluster to the node kubelet to vCluster itself. This means that if workloads within the vCluster try to scrape node metrics the traffic reaches vCluster first. Vcluster will redirect the incoming request to the host cluster, rewrite the response (pod names, pod namespaces etc) and return it to the requester. diff --git a/vcluster/third-party-integrations/gitops/_category_.json b/vcluster/third-party-integrations/gitops/_category_.json new file mode 100644 index 000000000..0ba7700d6 --- /dev/null +++ b/vcluster/third-party-integrations/gitops/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Git Operations", + "position": "8", + "collapsible": false +} diff --git a/vcluster/deploy/control-plane/container/flux.mdx b/vcluster/third-party-integrations/gitops/flux.mdx similarity index 100% rename from vcluster/deploy/control-plane/container/flux.mdx rename to vcluster/third-party-integrations/gitops/flux.mdx From 119fbed094db01e3dfeccdf75ea572e5a9289349 Mon Sep 17 00:00:00 2001 From: k Date: Tue, 21 Oct 2025 17:38:42 +0200 Subject: [PATCH 02/21] remove k3s in the vcluster/main.go --- hack/vcluster/partials/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/vcluster/partials/main.go b/hack/vcluster/partials/main.go index 37ad723e3..a4d8fb7c4 100644 --- a/hack/vcluster/partials/main.go +++ b/hack/vcluster/partials/main.go @@ -90,7 +90,7 @@ var paths = []string{ "controlPlane/proxy", "controlPlane/hostPathMapper", "controlPlane/distro/k8s", - "controlPlane/distro/k3s", + // "controlPlane/distro/k3s", "controlPlane/distro/k0s", "controlPlane/distro", "controlPlane/coredns", From 944680dc887c2a696d021e28cab77583f7a5c658 Mon Sep 17 00:00:00 2001 From: k Date: Tue, 21 Oct 2025 17:51:53 +0200 Subject: [PATCH 03/21] fix vale linting errors --- .../vcluster/create-ui-optional-fields.mdx | 2 ++ platform/_partials/virtual-cluster-content.mdx | 11 +++++++---- .../_fragments/private-nodes-limitations.mdx | 2 +- .../_fragments/virtual-cluster-content.mdx | 18 +++++++++++------- .../control-plane/container}/flux.mdx | 2 +- .../container/security/corporate-proxy.mdx | 2 +- vcluster/integrations/metrics-server.mdx | 4 ++-- .../gitops/_category_.json | 5 ----- 8 files changed, 25 insertions(+), 21 deletions(-) rename vcluster/{third-party-integrations/gitops => deploy/control-plane/container}/flux.mdx (99%) delete mode 100644 vcluster/third-party-integrations/gitops/_category_.json diff --git a/platform/_partials/vcluster/create-ui-optional-fields.mdx b/platform/_partials/vcluster/create-ui-optional-fields.mdx index 2773ba247..420037c1b 100644 --- a/platform/_partials/vcluster/create-ui-optional-fields.mdx +++ b/platform/_partials/vcluster/create-ui-optional-fields.mdx @@ -26,7 +26,9 @@ import Label from "@site/src/components/Label"; + :::tip All configuration options in a vCluster defined in the `vcluster.yaml` can be manually configured when creating any virtual cluster. [Read more](/vcluster/configure/vcluster-yaml/) about the `vcluster.yaml` configuration options. ::: + \ No newline at end of file diff --git a/platform/_partials/virtual-cluster-content.mdx b/platform/_partials/virtual-cluster-content.mdx index 665051e11..9784213d6 100644 --- a/platform/_partials/virtual-cluster-content.mdx +++ b/platform/_partials/virtual-cluster-content.mdx @@ -5,7 +5,7 @@ referred to as the "host" cluster, or the "parent" cluster. Virtual clusters, being fully functional Kubernetes clusters in their own right, can be a very useful tool if you are running into issues with the limitations of traditional Kubernetes namespaces. Often administrator do not want to make, or cannot make any special exceptions to the -multi-tenancy configuration of the underlying parent cluster in order to accommodate user requests. +multi-tenancy configuration of the underlying parent cluster to accommodate user requests. For example, some users may need to create their own Custom Resource Definitions (CRDs) which could potentially impact any other users in the cluster. Another user may need pods from two separate namespaces to communicate with each other, despite the standard NetworkPolicy not @@ -15,6 +15,7 @@ solution. The diagram below briefly outlines the attributes of virtual clusters as compared to using namespaces or physical clusters for isolation and multi-tenancy. +
vcluster - Comparison
+ -The virtual cluster functionality of vCluster Platform comes from the popular open-source project +The virtual cluster capability of vCluster Platform comes from the popular open source project [vcluster](https://vcluster.com). vCluster Platform provides a centralized management layer for virtual clusters, allowing users to provision virtual clusters in any vCluster Platform managed cluster (or virtual cluster!). vCluster Platform also offers the capability to import existing virtual clusters such that they can then be managed from the central vCluster Platform instance. -## Why use Virtual Kubernetes Clusters? +## Why use virtual kubernetes clusters? Virtual clusters can be used to partition a single physical cluster into multiple logical, virtual clusters. This partitioning process still allows for leveraging the benefits of Kubernetes @@ -76,11 +78,12 @@ quickly setting up demo applications for your sales team. ## Benefits of vCluster Virtual clusters provide immense benefits for large-scale Kubernetes deployments and multi-tenancy. - + - **Full Admin Access**: - Deploy operators with CRDs, create namespaces and other cluster-scoped resources that you normally can't create inside a namespace. - Taint and label nodes without influencing the host cluster. - Reuse and share services across multiple virtual clusters with ease. + - **Cost Savings:** - Create lightweight vCluster instances that share the underlying host cluster instead of creating separate "real" clusters. - Auto-scale, purge, snapshot, and move your vCluster instances, since they are Kubernetes deployments. diff --git a/vcluster/_fragments/private-nodes-limitations.mdx b/vcluster/_fragments/private-nodes-limitations.mdx index ae445b254..a5069f227 100644 --- a/vcluster/_fragments/private-nodes-limitations.mdx +++ b/vcluster/_fragments/private-nodes-limitations.mdx @@ -5,7 +5,7 @@ Certain vCluster features are automatically disabled or unavailable. If you incl The following features are not available: - `sync.*` - No resource syncing between virtual and host clusters -- `integrations.*` - Integrations depend on syncing functionality +- `integrations.*` - Integrations depend on syncing capability - `networking.replicateServices` - Services are not replicated to host - `controlPlane.coredns.embedded: true` - Embedded CoreDNS conflicts with custom CNI - `controlPlane.advanced.virtualScheduler.enabled: false` - Virtual scheduler cannot be disabled diff --git a/vcluster/_fragments/virtual-cluster-content.mdx b/vcluster/_fragments/virtual-cluster-content.mdx index d43832480..eea533a36 100644 --- a/vcluster/_fragments/virtual-cluster-content.mdx +++ b/vcluster/_fragments/virtual-cluster-content.mdx @@ -5,16 +5,17 @@ referred to as the "host" cluster, or the "parent" cluster. Virtual clusters, being fully functional Kubernetes clusters in their own right, can be a very useful tool if you are running into issues with the limitations of traditional Kubernetes namespaces. Often administrator do not want to make, or cannot make any special exceptions to the -multi-tenancy configuration of the underlying parent cluster in order to accommodate user requests. +multi-tenancy configuration of the underlying parent cluster to accommodate user requests. For example, some users may need to create their own Custom Resource Definitions (CRDs) which could potentially impact any other users in the cluster. Another user may need pods from two separate namespaces to communicate with each other, despite the standard NetworkPolicy not -permitting this. In both of these (and many more!) scenarios, a virtual cluster may be a perfect -solution! +permitting this. In both of these (and many more) scenarios, a virtual cluster may be a perfect +solution. The diagram below briefly outlines the attributes of virtual clusters as compared to using namespaces or physical clusters for isolation and multi-tenancy. +
vcluster - Comparison
-The virtual cluster functionality of vCluster Platform comes from the popular open-source project +The virtual cluster capability of vCluster Platform comes from the popular open source project [vcluster](https://vcluster.com). vCluster Platform provides a centralized management layer for virtual clusters, allowing users to provision virtual clusters in any vCluster Platform managed cluster (or virtual -cluster!). vCluster Platform also offers the capability to import existing virtual clusters such that they -can then be managed from the central vCluster Platform instance! +cluster). vCluster Platform also offers the capability to import existing virtual clusters such that they +can then be managed from the central vCluster Platform instance. + -## Why use Virtual Kubernetes Clusters? +## Why use virtual kubernetes clusters? Virtual clusters can be used to partition a single physical cluster into multiple logical, virtual clusters. This partitioning process still allows for leveraging the benefits of Kubernetes @@ -77,10 +79,12 @@ quickly setting up demo applications for your sales team. Virtual clusters provide immense benefits for large-scale Kubernetes deployments and multi-tenancy. + - **Full Admin Access**: - Deploy operators with CRDs, create namespaces and other cluster-scoped resources that you normally can't create inside a namespace. - Taint and label nodes without influencing the host cluster. - Reuse and share services across multiple virtual clusters with ease. +<-- vale on --> - **Cost Savings:** - Create lightweight vCluster instances that share the underlying host cluster instead of creating separate "real" clusters. - Auto-scale, purge, snapshot, and move your vCluster instances, since they are Kubernetes deployments. diff --git a/vcluster/third-party-integrations/gitops/flux.mdx b/vcluster/deploy/control-plane/container/flux.mdx similarity index 99% rename from vcluster/third-party-integrations/gitops/flux.mdx rename to vcluster/deploy/control-plane/container/flux.mdx index e0759e32f..d2552a18a 100644 --- a/vcluster/third-party-integrations/gitops/flux.mdx +++ b/vcluster/deploy/control-plane/container/flux.mdx @@ -801,4 +801,4 @@ kubectl get secret -n -o jsonpath= 3. Ensure the server URL is accessible from the Flux controllers. Using the service DNS name is generally more reliable: ```yaml title="Recommended server URL format" server: https://vcluster-name.vcluster-namespace.svc.cluster.local:443 -``` +``` \ No newline at end of file diff --git a/vcluster/deploy/control-plane/container/security/corporate-proxy.mdx b/vcluster/deploy/control-plane/container/security/corporate-proxy.mdx index 037408c38..c9be5f70c 100644 --- a/vcluster/deploy/control-plane/container/security/corporate-proxy.mdx +++ b/vcluster/deploy/control-plane/container/security/corporate-proxy.mdx @@ -23,7 +23,7 @@ Configure vCluster to work behind a ## Overview -When deploying vcluster behind a corporate proxy, you need to configure the standard proxy environment variables (`HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`) on the vcluster control plane pods. The statefulSet configuration ensures that vcluster can: +When deploying vCluster behind a corporate proxy, you need to configure the standard proxy environment variables (`HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`) on the vCluster control plane pods. The `statefulSet` configuration ensures that vCluster can: - Access external resources through the proxy when needed - Communicate with internal cluster services without going through the proxy diff --git a/vcluster/integrations/metrics-server.mdx b/vcluster/integrations/metrics-server.mdx index 7bfb56660..54a6a2c41 100644 --- a/vcluster/integrations/metrics-server.mdx +++ b/vcluster/integrations/metrics-server.mdx @@ -10,7 +10,7 @@ import TenancySupport from '../_fragments/tenancy-support.mdx'; -### Installing metrics server (inside vCluster) +### Install metrics server (inside vCluster) In case the above recommended method of getting metrics in vCluster using the metrics server proxy does not fulfill your requirements and you need a dedicated metrics server installation in the vCluster you can follow this section. Make sure the vCluster has access to the host clusters nodes. @@ -27,7 +27,7 @@ kube-system metrics-server-5fbdc54f8c-fgrqk 0m 6Mi ### How does it work? -By default, vCluster will create a service for each node that redirects incoming traffic from within the vCluster to the node kubelet to vCluster itself. This means that if workloads within the vCluster try to scrape node metrics the traffic reaches vCluster first. Vcluster will redirect the incoming request to the host cluster, rewrite the response (pod names, pod namespaces etc) and return it to the requester. +By default, vCluster will create a service for each node that redirects incoming traffic from within the vCluster to the node kubelet to vCluster itself. This means that if workloads within the vCluster try to scrape node metrics the traffic reaches vCluster first. vCluster will redirect the incoming request to the host cluster, rewrite the response (pod names, pod namespaces etc) and return it to the requester. diff --git a/vcluster/third-party-integrations/gitops/_category_.json b/vcluster/third-party-integrations/gitops/_category_.json deleted file mode 100644 index 0ba7700d6..000000000 --- a/vcluster/third-party-integrations/gitops/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "label": "Git Operations", - "position": "8", - "collapsible": false -} From ae41c70ecd047612218a8c878a4e8dfb56eba07b Mon Sep 17 00:00:00 2001 From: k Date: Tue, 21 Oct 2025 18:01:26 +0200 Subject: [PATCH 04/21] fix vale linting errors --- vcluster/deploy/control-plane/container/flux.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcluster/deploy/control-plane/container/flux.mdx b/vcluster/deploy/control-plane/container/flux.mdx index d2552a18a..e0759e32f 100644 --- a/vcluster/deploy/control-plane/container/flux.mdx +++ b/vcluster/deploy/control-plane/container/flux.mdx @@ -801,4 +801,4 @@ kubectl get secret -n -o jsonpath= 3. Ensure the server URL is accessible from the Flux controllers. Using the service DNS name is generally more reliable: ```yaml title="Recommended server URL format" server: https://vcluster-name.vcluster-namespace.svc.cluster.local:443 -``` \ No newline at end of file +``` From 95743226c5cb705605fdcee10ee56b2e8e4f5fdc Mon Sep 17 00:00:00 2001 From: k Date: Wed, 22 Oct 2025 16:28:54 +0200 Subject: [PATCH 05/21] remove k0s reference --- hack/vcluster/partials/main.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/hack/vcluster/partials/main.go b/hack/vcluster/partials/main.go index a4d8fb7c4..d2a437f58 100644 --- a/hack/vcluster/partials/main.go +++ b/hack/vcluster/partials/main.go @@ -90,8 +90,6 @@ var paths = []string{ "controlPlane/proxy", "controlPlane/hostPathMapper", "controlPlane/distro/k8s", - // "controlPlane/distro/k3s", - "controlPlane/distro/k0s", "controlPlane/distro", "controlPlane/coredns", "controlPlane/backingStore/etcd/embedded", From 655f2cc2a3a41d2b257b28d0c751e8d5e143953c Mon Sep 17 00:00:00 2001 From: k Date: Wed, 22 Oct 2025 16:31:32 +0200 Subject: [PATCH 06/21] fix vale linting errors --- platform/_partials/virtual-cluster-content.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/_partials/virtual-cluster-content.mdx b/platform/_partials/virtual-cluster-content.mdx index 9784213d6..db7828bb0 100644 --- a/platform/_partials/virtual-cluster-content.mdx +++ b/platform/_partials/virtual-cluster-content.mdx @@ -19,7 +19,7 @@ namespaces or physical clusters for isolation and multi-tenancy.
vcluster Comparison
vcluster - Comparison
From 06babb5581a8abbc13a1eae384661d5c350e88a6 Mon Sep 17 00:00:00 2001 From: k Date: Wed, 22 Oct 2025 16:43:25 +0200 Subject: [PATCH 07/21] fix broken link in previous versioned docs --- platform/_partials/virtual-cluster-content.mdx | 12 +++++++----- .../control-plane/components/distro/k3s.mdx | 2 +- .../control-plane/components/distro/k3s.mdx | 2 +- .../control-plane/components/distro/k3s.mdx | 2 +- .../control-plane/components/distro/k3s.mdx | 2 +- .../control-plane/components/distro/k3s.mdx | 2 +- .../control-plane/components/distro/k3s.mdx | 2 +- .../control-plane/components/distro/k3s.mdx | 2 +- .../control-plane/components/distro/k3s.mdx | 2 +- .../control-plane/components/distro/k3s.mdx | 2 +- 10 files changed, 16 insertions(+), 14 deletions(-) diff --git a/platform/_partials/virtual-cluster-content.mdx b/platform/_partials/virtual-cluster-content.mdx index db7828bb0..ce8771cf7 100644 --- a/platform/_partials/virtual-cluster-content.mdx +++ b/platform/_partials/virtual-cluster-content.mdx @@ -15,16 +15,18 @@ solution. The diagram below briefly outlines the attributes of virtual clusters as compared to using namespaces or physical clusters for isolation and multi-tenancy. +
-vCluster Comparison -
vcluster - Comparison
+ vCluster Comparison +
vCluster - Comparison
+ The virtual cluster capability of vCluster Platform comes from the popular open source project [vcluster](https://vcluster.com). vCluster Platform provides a centralized management layer for virtual clusters, allowing users to provision virtual clusters in any vCluster Platform managed cluster (or virtual diff --git a/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index 110753b1e..c63741f1b 100644 --- a/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. diff --git a/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index 78a110cff..27b272f31 100644 --- a/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. diff --git a/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index 110753b1e..c63741f1b 100644 --- a/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. diff --git a/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index 468f704fe..bc044cc77 100644 --- a/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. diff --git a/vcluster_versioned_docs/version-0.25.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.25.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index e4239cabc..e23831889 100644 --- a/vcluster_versioned_docs/version-0.25.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.25.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' :::warning Deprecation notice Support for **K3s** is deprecated. Migration to a supported Kubernetes distribution is recommended. diff --git a/vcluster_versioned_docs/version-0.26.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.26.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index e4239cabc..e23831889 100644 --- a/vcluster_versioned_docs/version-0.26.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.26.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' :::warning Deprecation notice Support for **K3s** is deprecated. Migration to a supported Kubernetes distribution is recommended. diff --git a/vcluster_versioned_docs/version-0.27.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.27.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index fda970023..59c6c91e6 100644 --- a/vcluster_versioned_docs/version-0.27.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.27.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -7,7 +7,7 @@ sidebar_class_name: host-nodes --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' import TenancySupport from '../../../../../_fragments/tenancy-support.mdx'; diff --git a/vcluster_versioned_docs/version-0.28.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.28.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index fda970023..59c6c91e6 100644 --- a/vcluster_versioned_docs/version-0.28.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.28.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -7,7 +7,7 @@ sidebar_class_name: host-nodes --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' import TenancySupport from '../../../../../_fragments/tenancy-support.mdx'; diff --git a/vcluster_versioned_docs/version-0.29.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.29.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index fda970023..59c6c91e6 100644 --- a/vcluster_versioned_docs/version-0.29.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.29.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -7,7 +7,7 @@ sidebar_class_name: host-nodes --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' import TenancySupport from '../../../../../_fragments/tenancy-support.mdx'; From aa9688fd35900fb11b2403bc42040e70aa5c22d9 Mon Sep 17 00:00:00 2001 From: k Date: Wed, 22 Oct 2025 17:13:09 +0200 Subject: [PATCH 08/21] remove k3s reference --- vcluster/_partials/what-are-virtual-clusters.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcluster/_partials/what-are-virtual-clusters.mdx b/vcluster/_partials/what-are-virtual-clusters.mdx index c0b446311..907ccabd0 100644 --- a/vcluster/_partials/what-are-virtual-clusters.mdx +++ b/vcluster/_partials/what-are-virtual-clusters.mdx @@ -52,7 +52,7 @@ Virtual clusters provide immense benefits for large-scale Kubernetes deployments - **Diverse Kubernetes environments:** vCluster supports different Kubernetes versions and distributions (including Kubernetes, and K0s), allowing version skews. This makes it possible to tailor each virtual cluster to specific requirements without impacting others. - **Adaptable backing stores:** Choose from a range of data stores, from lightweight (SQLite) to enterprise-grade options (embedded etcd, external data stores like Global RDS), catering to various scalability and durability needs. - - **Runs anywhere:** Virtual clusters can run on EKS, GKE, AKS, OpenShift, RKE, K3s, cloud, edge, and on-prem. As long as it's a Kubernetes cluster, you can run a virtual cluster on top of it. + - **Runs anywhere:** Virtual clusters can run on EKS, GKE, AKS, OpenShift, RKE, cloud, edge, and on-prem. As long as it's a Kubernetes cluster, you can run a virtual cluster on top of it. ### Improved scalability From e58c8e8a49be9ebccba97aad2972624eee32c263 Mon Sep 17 00:00:00 2001 From: k Date: Thu, 23 Oct 2025 14:27:11 +0200 Subject: [PATCH 09/21] remove k0s and k3s references --- CONTRIBUTING.md | 2 -- vcluster/_fragments/distro/compat-k0s.mdx | 8 -------- vcluster/_partials/what-are-virtual-clusters.mdx | 2 +- vcluster/manage/accessing-vcluster.mdx | 2 +- 4 files changed, 2 insertions(+), 12 deletions(-) delete mode 100644 vcluster/_fragments/distro/compat-k0s.mdx diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 57938cbe7..f2d1c0ded 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -288,8 +288,6 @@ The command line interface name is `vcluster`. ### Abbreviations for Kubernetes distros - [Kubernetes](https://kubernetes.io/): K8s -- [Zero Friction Kubernetes](https://k0sproject.io/): k0s Note that k0s is the - only Kubernetes distro to use a lower case 'k' - [AWS Elastic Kubernetes Service](https://aws.amazon.com/eks/): EKS ### Other product terms diff --git a/vcluster/_fragments/distro/compat-k0s.mdx b/vcluster/_fragments/distro/compat-k0s.mdx deleted file mode 100644 index cb17bbcb8..000000000 --- a/vcluster/_fragments/distro/compat-k0s.mdx +++ /dev/null @@ -1,8 +0,0 @@ -import KubernetesVersions from '../../_partials/deploy/kubernetes-versions.mdx' -import { HostClusterCompat } from '../../_partials/deploy/host-cluster-compat.mdx' - -### Host cluster compatibility - - -vCluster should work when deployed on a host cluster with the following supported Kubernetes versions: - diff --git a/vcluster/_partials/what-are-virtual-clusters.mdx b/vcluster/_partials/what-are-virtual-clusters.mdx index 907ccabd0..0d00a66fd 100644 --- a/vcluster/_partials/what-are-virtual-clusters.mdx +++ b/vcluster/_partials/what-are-virtual-clusters.mdx @@ -50,7 +50,7 @@ Virtual clusters provide immense benefits for large-scale Kubernetes deployments ### Enhanced flexibility and compatibility - - **Diverse Kubernetes environments:** vCluster supports different Kubernetes versions and distributions (including Kubernetes, and K0s), allowing version skews. This makes it possible to tailor each virtual cluster to specific requirements without impacting others. + - **Diverse Kubernetes environments:** vCluster supports different Kubernetes versions and distributions (including Kubernetes), allowing version skews. This makes it possible to tailor each virtual cluster to specific requirements without impacting others. - **Adaptable backing stores:** Choose from a range of data stores, from lightweight (SQLite) to enterprise-grade options (embedded etcd, external data stores like Global RDS), catering to various scalability and durability needs. - **Runs anywhere:** Virtual clusters can run on EKS, GKE, AKS, OpenShift, RKE, cloud, edge, and on-prem. As long as it's a Kubernetes cluster, you can run a virtual cluster on top of it. diff --git a/vcluster/manage/accessing-vcluster.mdx b/vcluster/manage/accessing-vcluster.mdx index 5dd544fac..ed909e2f5 100644 --- a/vcluster/manage/accessing-vcluster.mdx +++ b/vcluster/manage/accessing-vcluster.mdx @@ -160,7 +160,7 @@ For example, if you want to expose a vCluster at `https://my-domain.org`, you ca # and use it in the generated kube config secret. controlPlane: # distro: (update distro details as per your configurations) - # k3s: + # k8s: # enabled: true proxy: extraSANs: From 3230d7ed18126e8c7fe78a678f25655849b33b22 Mon Sep 17 00:00:00 2001 From: k Date: Thu, 23 Oct 2025 14:30:04 +0200 Subject: [PATCH 10/21] fix vale linting errors --- vcluster/manage/accessing-vcluster.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vcluster/manage/accessing-vcluster.mdx b/vcluster/manage/accessing-vcluster.mdx index ed909e2f5..f0d9e2913 100644 --- a/vcluster/manage/accessing-vcluster.mdx +++ b/vcluster/manage/accessing-vcluster.mdx @@ -50,7 +50,7 @@ If you have manually [exposed the vCluster](#expose-vcluster), you can specify t vcluster connect my-vcluster -n my-vcluster --server my-domain.org ``` -#### Connect using Service Accounts +#### Connect using service accounts By default, vCluster updates the current kubeconfig to access the vCluster that contains the default admin client certificate and client key to authenticate to the vCluster. This means that all kubeconfig files generated have cluster admin access within the vCluster. @@ -104,7 +104,7 @@ Error from server (Forbidden): namespaces is forbidden: User "system:serviceacco You can replace the token field in the kubeconfig with any other service account token from inside the vCluster to act as this service account against the vCluster. For more information about service accounts and tokens, refer to the [official Kubernetes documentation](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens). -## Retrieving the kubeconfig from the vCluster secret +## Retrieve the kubeconfig from the vCluster secret From 76d8b634d27f2abbc807cc4e50347e0576862b8c Mon Sep 17 00:00:00 2001 From: k Date: Thu, 23 Oct 2025 17:00:48 +0200 Subject: [PATCH 11/21] update statement format --- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index a0f6feabf..44f111479 100644 --- a/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' +import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index ae1fc9a50..1b6c7c849 100644 --- a/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' +import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index a0f6feabf..44f111479 100644 --- a/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' +import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index ae1fc9a50..1b6c7c849 100644 --- a/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' +import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.25.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.25.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index efb41b2de..8dce8214c 100644 --- a/vcluster_versioned_docs/version-0.25.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.25.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' +import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' :::warning Deprecation notice Support for **K0s** is deprecated in vCluster `v0.25` and removed in `v0.26`. Migration to a supported Kubernetes distribution is recommended. From e59bb2cd6e07014707e074d54e1bd541cd5014e1 Mon Sep 17 00:00:00 2001 From: k Date: Thu, 23 Oct 2025 17:21:23 +0200 Subject: [PATCH 12/21] remove k3s and k0s reference --- vcluster/_fragments/virtual-cluster-content.mdx | 2 +- vcluster/cli/vcluster_convert_config.md | 3 +-- vcluster/manage/accessing-vcluster.mdx | 4 ++-- vcluster/manage/backup-restore/backup.mdx | 4 ---- vcluster/manage/backup-restore/restore.mdx | 4 ---- 5 files changed, 4 insertions(+), 13 deletions(-) diff --git a/vcluster/_fragments/virtual-cluster-content.mdx b/vcluster/_fragments/virtual-cluster-content.mdx index eea533a36..2f2833df9 100644 --- a/vcluster/_fragments/virtual-cluster-content.mdx +++ b/vcluster/_fragments/virtual-cluster-content.mdx @@ -90,7 +90,7 @@ Virtual clusters provide immense benefits for large-scale Kubernetes deployments - Auto-scale, purge, snapshot, and move your vCluster instances, since they are Kubernetes deployments. - **Low Overhead:** - vCluster instances are super lightweight and only reside in a single namespace. - - You run vCluster with supported distributions such as [K0s](https://k0sproject.io/), vanilla [Kubernetes](https://kubernetes.io/), and [AWS EKS](https://aws.amazon.com/eks/). + - You run vCluster with supported distributions such as vanilla [Kubernetes](https://kubernetes.io/), and [AWS EKS](https://aws.amazon.com/eks/). - The vCluster control plane runs inside a single pod. Open source vCluster also uses a CoreDNS pod for vCluster-internal DNS capabilities. With vCluster Platform, however, you can enable the integrated CoreDNS so you don't need the additional pod. - **No Network Degradation:** - Since the pods and services inside a vCluster are actually being synchronized down to the host cluster, they are effectively using the underlying cluster's pod and service networking. The vCluster pods are as fast as other pods in the underlying host cluster. diff --git a/vcluster/cli/vcluster_convert_config.md b/vcluster/cli/vcluster_convert_config.md index 961e1b992..788066f62 100644 --- a/vcluster/cli/vcluster_convert_config.md +++ b/vcluster/cli/vcluster_convert_config.md @@ -21,7 +21,6 @@ Reads from stdin if no file is given via "-f". Examples: vcluster convert config --distro k8s -f /my/k8s/values.yaml -vcluster convert config --distro k3s < /my/k3s/values.yaml ############################################################## ``` @@ -29,7 +28,7 @@ vcluster convert config --distro k3s < /my/k3s/values.yaml ## Flags ``` - --distro string Kubernetes distro of the config. Allowed distros: k8s, k3s + --distro string Kubernetes distro of the config. Allowed distros: k8s -f, --file string Path to the input file -h, --help help for config -o, --output string Prints the output in the specified format. Allowed values: yaml, json (default "yaml") diff --git a/vcluster/manage/accessing-vcluster.mdx b/vcluster/manage/accessing-vcluster.mdx index f0d9e2913..ed909e2f5 100644 --- a/vcluster/manage/accessing-vcluster.mdx +++ b/vcluster/manage/accessing-vcluster.mdx @@ -50,7 +50,7 @@ If you have manually [exposed the vCluster](#expose-vcluster), you can specify t vcluster connect my-vcluster -n my-vcluster --server my-domain.org ``` -#### Connect using service accounts +#### Connect using Service Accounts By default, vCluster updates the current kubeconfig to access the vCluster that contains the default admin client certificate and client key to authenticate to the vCluster. This means that all kubeconfig files generated have cluster admin access within the vCluster. @@ -104,7 +104,7 @@ Error from server (Forbidden): namespaces is forbidden: User "system:serviceacco You can replace the token field in the kubeconfig with any other service account token from inside the vCluster to act as this service account against the vCluster. For more information about service accounts and tokens, refer to the [official Kubernetes documentation](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens). -## Retrieve the kubeconfig from the vCluster secret +## Retrieving the kubeconfig from the vCluster secret diff --git a/vcluster/manage/backup-restore/backup.mdx b/vcluster/manage/backup-restore/backup.mdx index 31aaaf56d..53d8f453f 100644 --- a/vcluster/manage/backup-restore/backup.mdx +++ b/vcluster/manage/backup-restore/backup.mdx @@ -210,9 +210,5 @@ When taking snapshots and restoring virtual clusters, there are limitations: **Sleeping virtual clusters** - Snapshots require a running vCluster control plane and do not work with sleeping virtual clusters. -**Virtual clusters using the k0s distro** -- Use the `--pod-exec` flag to take a snapshot of a k0s virtual cluster. -- k0s virtual clusters do not support restore or clone operations. Migrate them to k8s instead. - **Virtual clusters using an external database** - Virtual clusters with an external database handle backup and restore outside of vCluster. A database administrator must back up or restore the external database according to the database documentation. Avoid using the vCluster CLI backup and restore commands for clusters with an external database. diff --git a/vcluster/manage/backup-restore/restore.mdx b/vcluster/manage/backup-restore/restore.mdx index 9142cecb7..f8d6d7408 100644 --- a/vcluster/manage/backup-restore/restore.mdx +++ b/vcluster/manage/backup-restore/restore.mdx @@ -120,10 +120,6 @@ When taking snapshots and restoring virtual clusters, there are limitations: **Sleeping virtual clusters** - Snapshots require a running vCluster control plane and do not work with sleeping virtual clusters. -**Virtual clusters using the k0s distro** -- Use the `--pod-exec` flag to take a snapshot of a k0s virtual cluster. -- k0s virtual clusters do not support restore or clone operations. Migrate them to k8s instead. - **Virtual clusters using an external database** - Virtual clusters with an external database handle backup and restore outside of vCluster. A database administrator must back up or restore the external database according to the database documentation. Avoid using the vCluster CLI backup and restore commands for clusters with an external database. From ef3bcc308e700ce4259d81d7cb483815f9254e31 Mon Sep 17 00:00:00 2001 From: k Date: Thu, 23 Oct 2025 17:22:19 +0200 Subject: [PATCH 13/21] restore main.go changes --- hack/vcluster/partials/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hack/vcluster/partials/main.go b/hack/vcluster/partials/main.go index d2a437f58..37ad723e3 100644 --- a/hack/vcluster/partials/main.go +++ b/hack/vcluster/partials/main.go @@ -90,6 +90,8 @@ var paths = []string{ "controlPlane/proxy", "controlPlane/hostPathMapper", "controlPlane/distro/k8s", + "controlPlane/distro/k3s", + "controlPlane/distro/k0s", "controlPlane/distro", "controlPlane/coredns", "controlPlane/backingStore/etcd/embedded", From 1d21fe0689f889605c70cc18a5052a225d200abd Mon Sep 17 00:00:00 2001 From: k Date: Thu, 23 Oct 2025 17:24:41 +0200 Subject: [PATCH 14/21] fix vale linting errors --- vcluster/manage/backup-restore/restore.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcluster/manage/backup-restore/restore.mdx b/vcluster/manage/backup-restore/restore.mdx index f8d6d7408..a9201c218 100644 --- a/vcluster/manage/backup-restore/restore.mdx +++ b/vcluster/manage/backup-restore/restore.mdx @@ -101,7 +101,7 @@ Migrate between Kubernetes distributions based on your workload requirements. Yo - k3s -> k8s - k8s -> k3s -#### Backing store +#### Back store Change your data store to improve efficiency, scalability, and Kubernetes compatibility. You can migrate betweeen the following data stores: From 4cdd4e1c66c3353125c1132f31fa02226519c18d Mon Sep 17 00:00:00 2001 From: guowenatk Date: Thu, 30 Oct 2025 13:25:53 +0100 Subject: [PATCH 15/21] restore old versioned docs --- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k3s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k3s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k3s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k3s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k3s.mdx | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index 44f111479..a0f6feabf 100644 --- a/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' +import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index c63741f1b..110753b1e 100644 --- a/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' +import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. diff --git a/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index 44f111479..a0f6feabf 100644 --- a/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' +import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index c63741f1b..110753b1e 100644 --- a/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.21.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' +import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. diff --git a/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index 1b6c7c849..ae1fc9a50 100644 --- a/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' +import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index 27b272f31..78a110cff 100644 --- a/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.22.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' +import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. diff --git a/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index 44f111479..a0f6feabf 100644 --- a/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' +import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index c63741f1b..110753b1e 100644 --- a/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.23.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' +import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. diff --git a/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index 1b6c7c849..ae1fc9a50 100644 --- a/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' +import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index bc044cc77..468f704fe 100644 --- a/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.24.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' +import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. From 53cf0379bcdfa79c57f4dd6c0e71565d1e1dc602 Mon Sep 17 00:00:00 2001 From: guowenatk Date: Thu, 30 Oct 2025 13:28:04 +0100 Subject: [PATCH 16/21] fix versioned docs --- .../vcluster-yaml/control-plane/components/distro/k0s.mdx | 2 +- .../vcluster-yaml/control-plane/components/distro/k3s.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx b/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx index a0f6feabf..44f111479 100644 --- a/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx +++ b/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k0s.mdx @@ -6,7 +6,7 @@ description: Configure k0s as the distro for the virtual cluster. --- import DistroK0s from '../../../../../_partials/config/controlPlane/distro/k0s.mdx' -import K0sCompat from '@site/vcluster/_fragments/distro/compat-k0s.mdx' +import K0sCompat from '../../../../../_fragments/distro/compat-k0s.mdx' [Zero Friction Kubernetes (k0s)](https://k0sproject.io/) is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. See the [k0s docs](https://docs.k0sproject.io/) for k0s' features. diff --git a/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index 110753b1e..c63741f1b 100644 --- a/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.20.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -6,7 +6,7 @@ description: Configure K3s as the distro for the virtual cluster. --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' [Lightweight Kubernetes (K3s)](https://k3s.io) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. See the [K3s docs](https://docs.k3s.io/) for K3s' features. From 9a80586478835782d390134bfda981ecf821fb43 Mon Sep 17 00:00:00 2001 From: guowenatk Date: Thu, 30 Oct 2025 13:30:25 +0100 Subject: [PATCH 17/21] fix vale error --- vcluster/manage/accessing-vcluster.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcluster/manage/accessing-vcluster.mdx b/vcluster/manage/accessing-vcluster.mdx index ed909e2f5..0ca6d650f 100644 --- a/vcluster/manage/accessing-vcluster.mdx +++ b/vcluster/manage/accessing-vcluster.mdx @@ -54,7 +54,7 @@ vcluster connect my-vcluster -n my-vcluster --server my-domain.org By default, vCluster updates the current kubeconfig to access the vCluster that contains the default admin client certificate and client key to authenticate to the vCluster. This means that all kubeconfig files generated have cluster admin access within the vCluster. -Often this might not be desired. Instead of giving a user admin access to the virtual cluster, you can also use [service account authentication](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens) to the virtual cluster. Let's say we want to create a kubeconfig file that only has view access in the virtual cluster. Then you would create a new service account inside the vCluster and assign it the cluster role `view` via a cluster role binding. Then we would generate a service account token and use that instead of the client-cert and client-key inside the kubeconfig. +Often this might not be desired. Instead of giving a user admin access to the virtual cluster, you can also use [service account authentication](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens) to the virtual cluster. Suppose we want to create a kubeconfig file that only has view access in the virtual cluster. Then you would create a new service account inside the vCluster and assign it the cluster role `view` via a cluster role binding. Then we would generate a service account token and use that instead of the client-cert and client-key inside the kubeconfig. ``` vcluster connect my-vcluster -n my-vcluster --service-account kube-system/my-user --cluster-role view From 74b1a751f6fade143f4f703e820fe6100bea75eb Mon Sep 17 00:00:00 2001 From: guowenatk Date: Thu, 30 Oct 2025 13:33:05 +0100 Subject: [PATCH 18/21] fix vale error --- vcluster/manage/accessing-vcluster.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vcluster/manage/accessing-vcluster.mdx b/vcluster/manage/accessing-vcluster.mdx index 0ca6d650f..aaff1232a 100644 --- a/vcluster/manage/accessing-vcluster.mdx +++ b/vcluster/manage/accessing-vcluster.mdx @@ -50,7 +50,7 @@ If you have manually [exposed the vCluster](#expose-vcluster), you can specify t vcluster connect my-vcluster -n my-vcluster --server my-domain.org ``` -#### Connect using Service Accounts +#### Connect using service accounts By default, vCluster updates the current kubeconfig to access the vCluster that contains the default admin client certificate and client key to authenticate to the vCluster. This means that all kubeconfig files generated have cluster admin access within the vCluster. @@ -104,7 +104,7 @@ Error from server (Forbidden): namespaces is forbidden: User "system:serviceacco You can replace the token field in the kubeconfig with any other service account token from inside the vCluster to act as this service account against the vCluster. For more information about service accounts and tokens, refer to the [official Kubernetes documentation](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens). -## Retrieving the kubeconfig from the vCluster secret +## Retrieve the kubeconfig from the vCluster secret From 98d3ef2a3be6040920d8ea6e2251d5ebfc54bf9f Mon Sep 17 00:00:00 2001 From: guowenatk Date: Thu, 30 Oct 2025 13:39:53 +0100 Subject: [PATCH 19/21] fix versioned docs --- .../vcluster-yaml/control-plane/components/distro/k3s.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcluster_versioned_docs/version-0.30.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx b/vcluster_versioned_docs/version-0.30.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx index fda970023..59c6c91e6 100644 --- a/vcluster_versioned_docs/version-0.30.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx +++ b/vcluster_versioned_docs/version-0.30.0/configure/vcluster-yaml/control-plane/components/distro/k3s.mdx @@ -7,7 +7,7 @@ sidebar_class_name: host-nodes --- import DistroK3s from '../../../../../_partials/config/controlPlane/distro/k3s.mdx' -import K3sCompat from '@site/vcluster/_fragments/distro/compat-k3s.mdx' +import K3sCompat from '../../../../../_fragments/distro/compat-k3s.mdx' import TenancySupport from '../../../../../_fragments/tenancy-support.mdx'; From a46df8afe152d1330fedb32b96592f550abb6d84 Mon Sep 17 00:00:00 2001 From: guowenatk Date: Thu, 30 Oct 2025 13:58:39 +0100 Subject: [PATCH 20/21] split platform changes --- .../vcluster/create-ui-optional-fields.mdx | 6 ++--- .../_partials/virtual-cluster-content.mdx | 27 ++++++++----------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/platform/_partials/vcluster/create-ui-optional-fields.mdx b/platform/_partials/vcluster/create-ui-optional-fields.mdx index 420037c1b..6b2290853 100644 --- a/platform/_partials/vcluster/create-ui-optional-fields.mdx +++ b/platform/_partials/vcluster/create-ui-optional-fields.mdx @@ -6,7 +6,7 @@ import Label from "@site/src/components/Label"; The tab contains settings relating to the virtual cluster deployment itself, here you can provide Helm values to be used when deploying the virtual cluster, select the virtual cluster distribution (e.g. - k8s (default)), as well as configurations for sleep mode and + k8s (default), k3s, k0s), as well as configurations for sleep mode and ingress access. @@ -26,9 +26,7 @@ import Label from "@site/src/components/Label"; - :::tip All configuration options in a vCluster defined in the `vcluster.yaml` can be manually configured when creating any virtual cluster. [Read more](/vcluster/configure/vcluster-yaml/) about the `vcluster.yaml` configuration options. -::: - \ No newline at end of file +::: \ No newline at end of file diff --git a/platform/_partials/virtual-cluster-content.mdx b/platform/_partials/virtual-cluster-content.mdx index ce8771cf7..51d7b1f5e 100644 --- a/platform/_partials/virtual-cluster-content.mdx +++ b/platform/_partials/virtual-cluster-content.mdx @@ -5,7 +5,7 @@ referred to as the "host" cluster, or the "parent" cluster. Virtual clusters, being fully functional Kubernetes clusters in their own right, can be a very useful tool if you are running into issues with the limitations of traditional Kubernetes namespaces. Often administrator do not want to make, or cannot make any special exceptions to the -multi-tenancy configuration of the underlying parent cluster to accommodate user requests. +multi-tenancy configuration of the underlying parent cluster in order to accommodate user requests. For example, some users may need to create their own Custom Resource Definitions (CRDs) which could potentially impact any other users in the cluster. Another user may need pods from two separate namespaces to communicate with each other, despite the standard NetworkPolicy not @@ -15,25 +15,21 @@ solution. The diagram below briefly outlines the attributes of virtual clusters as compared to using namespaces or physical clusters for isolation and multi-tenancy. - -
- vCluster Comparison -
vCluster - Comparison
+vcluster Comparison +
vcluster - Comparison
- - -The virtual cluster capability of vCluster Platform comes from the popular open source project +The virtual cluster functionality of vCluster Platform comes from the popular open-source project [vcluster](https://vcluster.com). vCluster Platform provides a centralized management layer for virtual clusters, allowing users to provision virtual clusters in any vCluster Platform managed cluster (or virtual cluster!). vCluster Platform also offers the capability to import existing virtual clusters such that they can then be managed from the central vCluster Platform instance. -## Why use virtual kubernetes clusters? +## Why use Virtual Kubernetes Clusters? Virtual clusters can be used to partition a single physical cluster into multiple logical, virtual clusters. This partitioning process still allows for leveraging the benefits of Kubernetes @@ -80,18 +76,17 @@ quickly setting up demo applications for your sales team. ## Benefits of vCluster Virtual clusters provide immense benefits for large-scale Kubernetes deployments and multi-tenancy. - + - **Full Admin Access**: - Deploy operators with CRDs, create namespaces and other cluster-scoped resources that you normally can't create inside a namespace. - Taint and label nodes without influencing the host cluster. - Reuse and share services across multiple virtual clusters with ease. - - **Cost Savings:** - Create lightweight vCluster instances that share the underlying host cluster instead of creating separate "real" clusters. - Auto-scale, purge, snapshot, and move your vCluster instances, since they are Kubernetes deployments. - **Low Overhead:** - vCluster instances are super lightweight and only reside in a single namespace. - - You can run vCluster with supported distributions such as vanilla [Kubernetes](https://kubernetes.io/), and [AWS EKS](https://aws.amazon.com/eks/). + - vCluster instances run with [K3s](https://k3s.io/), a super low-footprint K8s distribution. You can use other supported distributions such as [K0s](https://k0sproject.io/), vanilla [Kubernetes](https://kubernetes.io/), and [AWS EKS](https://aws.amazon.com/eks/). - The vCluster control plane runs inside a single pod. Open source vCluster also uses a CoreDNS pod for vCluster-internal DNS capabilities. With vCluster Platform, however, you can enable the integrated CoreDNS so you don't need the additional pod. - **No Network Degradation:** - Since the pods and services inside a vCluster are actually being synchronized down to the host cluster, they are effectively using the underlying cluster's pod and service networking. The vCluster pods are as fast as other pods in the underlying host cluster. @@ -105,4 +100,4 @@ Virtual clusters provide immense benefits for large-scale Kubernetes deployments - **Scalability:** - Less pressure / fewer requests on the K8s API server in a large-scale cluster. - Higher scalability of clusters via cluster sharding / API server sharding into smaller vCluster instances. - - No need for cluster admins to worry about conflicting CRDs or CRD versions with a growing number of users and deployments. + - No need for cluster admins to worry about conflicting CRDs or CRD versions with a growing number of users and deployments. \ No newline at end of file From 6c0d1c9aee31ec965a07c71e7de548ffe02938e3 Mon Sep 17 00:00:00 2001 From: guowenatk Date: Thu, 30 Oct 2025 14:00:05 +0100 Subject: [PATCH 21/21] split platform changes --- platform/_partials/vcluster/create-ui-optional-fields.mdx | 2 +- platform/_partials/virtual-cluster-content.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/_partials/vcluster/create-ui-optional-fields.mdx b/platform/_partials/vcluster/create-ui-optional-fields.mdx index 6b2290853..bd6aeedbd 100644 --- a/platform/_partials/vcluster/create-ui-optional-fields.mdx +++ b/platform/_partials/vcluster/create-ui-optional-fields.mdx @@ -29,4 +29,4 @@ import Label from "@site/src/components/Label"; :::tip All configuration options in a vCluster defined in the `vcluster.yaml` can be manually configured when creating any virtual cluster. [Read more](/vcluster/configure/vcluster-yaml/) about the `vcluster.yaml` configuration options. -::: \ No newline at end of file +::: diff --git a/platform/_partials/virtual-cluster-content.mdx b/platform/_partials/virtual-cluster-content.mdx index 51d7b1f5e..ad49b430c 100644 --- a/platform/_partials/virtual-cluster-content.mdx +++ b/platform/_partials/virtual-cluster-content.mdx @@ -100,4 +100,4 @@ Virtual clusters provide immense benefits for large-scale Kubernetes deployments - **Scalability:** - Less pressure / fewer requests on the K8s API server in a large-scale cluster. - Higher scalability of clusters via cluster sharding / API server sharding into smaller vCluster instances. - - No need for cluster admins to worry about conflicting CRDs or CRD versions with a growing number of users and deployments. \ No newline at end of file + - No need for cluster admins to worry about conflicting CRDs or CRD versions with a growing number of users and deployments.