Sync
This feature is only available for the following:
Running the control plane as a container and the following worker node types:How does syncing work?β
Since a virtual cluster does not have actual worker nodes or a network, syncing is the process where vCluster copies a resource between the virtual cluster and the host cluster. It's the basic principle that vCluster uses to emulate a fully functional Kubernetes cluster.
By default, vCluster only syncs low-level resources, such as pods, secrets, configmaps, or services, but a user can enable many other resources for all use cases. vCluster control plane runs with a minimal set of RBAC permissions to allow execution in restricted environments. Certain resources require extra permissions to sync, which are automatically given to the vCluster ServiceAccount if you enable a resource that requires additional permissions.
All fields of a resources are synced from either the virtual cluster to the host cluster or the inverse (i.e. from the host cluster to the virtual cluster). The direction on how
the sync of the resources is based on what section the resource is part of in the vcluster.yaml. There
are a few exceptions for each resource where specific fields are kept in sync in both directions (i.e. bi-directional sync).
If the resource is being asked to sync from the virtual cluster to the host cluster, vCluster copies the resources from the vCluster and sends it to the host cluster to be created. There are a couple of additional labels added to the host cluster resource object for vCluster to keep it in sync. The syncer starts watching for changes to the resource on either side. When the resource is updated in the virtual cluster, the syncer copies those changes in host cluster.
When you enable a sync, the syncer will usually copy changes in one direction. For example, if you are syncing pods from the virtual cluster to the host cluster, when changes are made to one of the pods in the host cluster, those fields are overwritten when the sync occurs. There are a couple of fields that are exceptions that are supported due to bi-directional sync.
If the resource is being asked to sync from the host cluster to the virtual cluster, as soon as that resource is created in the host cluster, vCluster copies it to the virtual cluster. Any changes to the resource in the host cluster are automatically applied to the resource in the virtual cluster.
When syncing resources, vCluster stores the mapping of the VIRTUAL NAME <-> HOST NAME for the actual resource, and the references of the other resources used by this resource.
Tracking references helps the vCluster to understand what resources are still needed in the host cluster. This important for secrets and configmaps because by default only the secrets and configmaps used by pods are actually synced to the host cluster.
Assume you've started your vCluster with ingress syncing to the host enabled.
sync:
toHost:
ingresses:
enabled: true
After the virtual cluster is up, the user creates an ingress in the virtual cluster.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx
spec:
tls:
- hosts:
- https-example.foo.com
secretName: testsecret-tls
rules:
- http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: nginx
port:
number: 80
When vCluster copies the ingress to the host cluster, the vCluster creates an ingress in the namespace of the virtual cluster with the following changes:
- Name Rewritten: vCluster rewrites the name of the resource to avoid conflicts in the host cluster. The name is rewritten in the form of
NAME-x-NAMESPACE-x-VCLUSTER_NAME - Namespace Rewritten: vCluster rewrites the namespace of the resource to sync everything into the namespace of the deployed virtual cluster control plane.
- Annotations / Labels Added: vCluster adds annotations and labels to identify the resource in the host cluster, which are pre-fixed with
vcluster.loft.sh/. - References Rewritten: vCluster rewrites the
spec.rules[*].http.paths[*].backend.service.nameandspec.tls[*].secretNameto match the rewritten names of the resources in the host cluster.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
vcluster.loft.sh/object-host-name: nginx-x-default-x-vcluster
vcluster.loft.sh/object-host-namespace: vcluster
vcluster.loft.sh/object-kind: networking.k8s.io/v1, Kind=Ingress
vcluster.loft.sh/object-name: nginx
vcluster.loft.sh/object-namespace: default
vcluster.loft.sh/object-uid: bb8bea39-8c0c-4295-8616-6a20b3b1900a
labels:
vcluster.loft.sh/managed-by: vcluster
vcluster.loft.sh/namespace: default
name: nginx-x-default-x-vcluster
namespace: vcluster
spec:
rules:
- http:
paths:
- backend:
service:
name: nginx-x-default-x-vcluster
port:
number: 80
path: /
pathType: ImplementationSpecific
tls:
- hosts:
- https-example.foo.com
secretName: testsecret-tls-x-default-x-vcluster
Syncing labels to the host clusterβ
When syncing labels to the host cluster, vCluster rewrites the following labels to avoid conflicts:
release- This label must be rewritten when pods are synced to the single namespace where the vCluster control plane pod is running, but not rewritten when the pod is synced in a namespace that is synced from the virtual cluster to the host cluster.vcluster.loft.sh/namespacevcluster.loft.sh/managed-byvcluster.loft.sh/controlled-by
Resources available to sync from virtual cluster to host clusterβ
vCluster syncs specific Kubernetes resources from the virtual cluster to the host cluster. These resources are expected to be created and updated within the virtual cluster. In addition to standard Kubernetes resources, custom resources can also be synced if configured.
Enabled by defaultβ
The following resources are synced by default.
Disabled by defaultβ
The following resources are not synced by default. You can explicitly enable them in your vcluster.yaml configuration.
- CustomResources
- Ingresses
- NetworkPolicies
- PersistentVolumes
- VolumeSnapshots
- StorageClasses
- ServiceAccounts
- PodDisruptionBudgets
- PriorityClasses
- Custom Resources
- Namespaces
Bidirectional syncingβ
For all resources synced from the virtual cluster to the host cluster, metadata.labels and metadata.annotations are synchronized in both directions.
This means changes made in the virtual cluster are reflected in the host cluster, and changes made in the host cluster are also reflected in the virtual cluster.
Any labels prefixed with vcluster.loft.sh on the host resources should not be updated by the user. These labels are managed by the vCluster control plane to track resources and prevent conflicts.
Additional fields that support bidirectional syncβ
All metadata.labels and metadata.annotations are bidirectionally synced for resources synced from the virtual cluster to the host cluster.
In addition to these fields, vCluster also supports bidirectional syncing for the following resource-specific fields:
| Resource | Fields |
|---|---|
| Pods |
|
| Secrets |
|
| ConfigMaps |
|
| Services |
|
| Ingresses |
|
| PersistentVolumes |
|
| StorageClass |
|
Resources available to sync from host cluster to virtual clusterβ
vCluster can sync certain resources from the host cluster to make them available inside the virtual cluster, but when these resources are synced, they are only synced in read-only mode. No changes to the resource in the virtual cluster syncs back to the host cluster as the resources are shared across the host cluster.
A good example would be nodes, which are nice to view inside the virtual cluster and can be also used to enabled certain features such as scheduling inside the vCluster, but you wouldn't want your virtual cluster to change the node itself. Another benefit of only syncing from host is that vCluster itself only requires read-only RBAC permissions.
vCluster also allows to sync custom resources via the custom resource definitions syncer
There are a couple of labels that are created on the host cluster by vCluster that never get synced to the virtual cluster resource. These labels are:
release(Label is needed to avoid conflicts with the vCluster pods themselves).vcluster.loft.sh/namespacevcluster.loft.sh/managed-byvcluster.loft.sh/controlled-by
Enabled by defaultβ
Disabled by defaultβ
- CustomResources
- Nodes
- IngressClasses
- StorageClasses
- CSINodes
- CSIDrivers
- CSIStorageCapacities
- ConfigMaps
- Secrets
No bi-directional syncingβ
Since syncing resources from the host cluster is in read only mode and changes in the virtual cluster do not get applied to the resource in the host cluster, bi-directional syncing does not exist across these resources.
Config referenceβ
sync required object β
Sync describes how to sync resources from the virtual cluster to host cluster and back.
sync required object βtoHost required object β
Configure resources to sync from the virtual cluster to the host cluster.
toHost required object βpods required object β
Pods defines if pods created within the virtual cluster should get synced to the host cluster.
pods required object βenabled required boolean true β
Enabled defines if pod syncing should be enabled.
enabled required boolean true βtranslateImage required object {} β
TranslateImage maps an image to another image that should be used instead. For example this can be used to rewrite
a certain image that is used within the virtual cluster to be another image on the host cluster
translateImage required object {} βenforceTolerations required string[] [] β
EnforceTolerations will add the specified tolerations to all pods synced by the virtual cluster.
enforceTolerations required string[] [] βuseSecretsForSATokens required boolean false β
UseSecretsForSATokens will use secrets to save the generated service account tokens by virtual cluster instead of using a
pod annotation.
useSecretsForSATokens required boolean false βruntimeClassName required string β
RuntimeClassName is the runtime class to set for synced pods.
runtimeClassName required string βpriorityClassName required string β
PriorityClassName is the priority class to set for synced pods.
priorityClassName required string βrewriteHosts required object β
RewriteHosts is a special option needed to rewrite statefulset containers to allow the correct FQDN. virtual cluster will add
a small container to each stateful set pod that will initially rewrite the /etc/hosts file to match the FQDN expected by
the virtual cluster.
rewriteHosts required object βenabled required boolean true β
Enabled specifies if rewriting stateful set pods should be enabled.
enabled required boolean true βinitContainer required object β
InitContainer holds extra options for the init container used by vCluster to rewrite the FQDN for stateful set pods.
initContainer required object βimage required object β
Image is the image virtual cluster should use to rewrite this FQDN.
image required object βregistry required string mirror.gcr.io β
Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally
overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.
registry required string mirror.gcr.io βrepository required string library/alpine β
Repository is the repository of the container image, e.g. my-repo/my-image
repository required string library/alpine βtag required string 3.20 β
Tag is the tag of the container image, and is the default version.
tag required string 3.20 βresources required object β
Resources are the resources that should be assigned to the init container for each stateful set init container.
resources required object βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βhybridScheduling required object β
HybridScheduling is used to enable and configure hybrid scheduling for pods in the virtual cluster.
hybridScheduling required object βsecrets required object β
Secrets defines if secrets created within the virtual cluster should get synced to the host cluster.
secrets required object βenabled required boolean true β
Enabled defines if this option should be enabled.
enabled required boolean true βall required boolean false β
All defines if all resources of that type should get synced or only the necessary ones that are needed.
all required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βconfigMaps required object β
ConfigMaps defines if config maps created within the virtual cluster should get synced to the host cluster.
configMaps required object βenabled required boolean true β
Enabled defines if this option should be enabled.
enabled required boolean true βall required boolean false β
All defines if all resources of that type should get synced or only the necessary ones that are needed.
all required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βingresses required object β
Ingresses defines if ingresses created within the virtual cluster should get synced to the host cluster.
ingresses required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βservices required object β
Services defines if services created within the virtual cluster should get synced to the host cluster.
services required object βenabled required boolean true β
Enabled defines if this option should be enabled.
enabled required boolean true βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βendpoints required object β
Endpoints defines if endpoints created within the virtual cluster should get synced to the host cluster.
endpoints required object βenabled required boolean true β
Enabled defines if this option should be enabled.
enabled required boolean true βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βnetworkPolicies required object β
NetworkPolicies defines if network policies created within the virtual cluster should get synced to the host cluster.
networkPolicies required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βpersistentVolumeClaims required object β
PersistentVolumeClaims defines if persistent volume claims created within the virtual cluster should get synced to the host cluster.
persistentVolumeClaims required object βenabled required boolean true β
Enabled defines if this option should be enabled.
enabled required boolean true βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βpersistentVolumes required object β
PersistentVolumes defines if persistent volumes created within the virtual cluster should get synced to the host cluster.
persistentVolumes required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βvolumeSnapshots required object β
VolumeSnapshots defines if volume snapshots created within the virtual cluster should get synced to the host cluster.
volumeSnapshots required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βvolumeSnapshotContents required object β
VolumeSnapshotContents defines if volume snapshot contents created within the virtual cluster should get synced to the host cluster.
volumeSnapshotContents required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βstorageClasses required object β
StorageClasses defines if storage classes created within the virtual cluster should get synced to the host cluster.
storageClasses required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βserviceAccounts required object β
ServiceAccounts defines if service accounts created within the virtual cluster should get synced to the host cluster.
serviceAccounts required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βpodDisruptionBudgets required object β
PodDisruptionBudgets defines if pod disruption budgets created within the virtual cluster should get synced to the host cluster.
podDisruptionBudgets required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βpriorityClasses required object β
PriorityClasses defines if priority classes created within the virtual cluster should get synced to the host cluster.
priorityClasses required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βcustomResources required {key: object} β
CustomResources defines what custom resources should get synced from the virtual cluster to the host cluster. vCluster will copy the definition automatically from host cluster to virtual cluster on startup.
vCluster will also automatically add any required RBAC permissions to the vCluster role for this to work.
customResources required {key: object} βenabled required boolean β
Enabled defines if this option should be enabled.
enabled required boolean βscope required string β
Scope defines the scope of the resource. If undefined, will use Namespaced. Currently only Namespaced is supported.
scope required string βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βnamespaces required object β
Namespaces defines if namespaces created within the virtual cluster should get synced to the host cluster.
namespaces required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βmappings required object β
Mappings for Namespace and Object
mappings required object βbyName required object β
ByName is a map of host-object-namespace/host-object-name: virtual-object-namespace/virtual-object-name.
There are several wildcards supported:
- To match all objects in host namespace and sync them to different namespace in vCluster:
byName:
"foo/": "foo-in-virtual/"
- To match specific object in the host namespace and sync it to the same namespace with the same name:
byName:
"foo/my-object": "foo/my-object"
- To match specific object in the host namespace and sync it to the same namespace with different name:
byName:
"foo/my-object": "foo/my-virtual-object"
- To match all objects in the vCluster host namespace and sync them to a different namespace in vCluster:
byName:
"": "my-virtual-namespace/*"
- To match specific objects in the vCluster host namespace and sync them to a different namespace in vCluster:
byName:
"/my-object": "my-virtual-namespace/my-object"
byName required object βmappingsOnly required boolean false β
MappingsOnly defines if creation of namespaces not matched by mappings should be allowed.
mappingsOnly required boolean false βextraLabels required object β
ExtraLabels are additional labels to add to the namespace in the host cluster.
extraLabels required object βfromHost required object β
Configure what resources vCluster should sync from the host cluster to the virtual cluster.
fromHost required object βnodes required object β
Nodes defines if nodes should get synced from the host cluster to the virtual cluster, but not back.
nodes required object βenabled required boolean false β
Enabled specifies if syncing real nodes should be enabled. If this is disabled, vCluster will create fake nodes instead.
enabled required boolean false βsyncBackChanges required boolean false β
SyncBackChanges enables syncing labels and taints from the virtual cluster to the host cluster. If this is enabled someone within the virtual cluster will be able to change the labels and taints of the host cluster node.
syncBackChanges required boolean false βclearImageStatus required boolean false β
ClearImageStatus will erase the image status when syncing a node. This allows to hide images that are pulled by the node.
clearImageStatus required boolean false βselector required object β
Selector can be used to define more granular what nodes should get synced from the host cluster to the virtual cluster.
selector required object βall required boolean false β
All specifies if all nodes should get synced by vCluster from the host to the virtual cluster or only the ones where pods are assigned to.
all required boolean false βlabels required object {} β
Labels are the node labels used to sync nodes from host cluster to virtual cluster. This will also set the node selector when syncing a pod from virtual cluster to host cluster to the same value.
labels required object {} βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βevents required object β
Events defines if events should get synced from the host cluster to the virtual cluster, but not back.
events required object βenabled required boolean true β
Enabled defines if this option should be enabled.
enabled required boolean true βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βingressClasses required object β
IngressClasses defines if ingress classes should get synced from the host cluster to the virtual cluster, but not back.
ingressClasses required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βruntimeClasses required object β
RuntimeClasses defines if runtime classes should get synced from the host cluster to the virtual cluster, but not back.
runtimeClasses required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βpriorityClasses required object β
PriorityClasses defines if priority classes classes should get synced from the host cluster to the virtual cluster, but not back.
priorityClasses required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βstorageClasses required object β
StorageClasses defines if storage classes should get synced from the host cluster to the virtual cluster, but not back. If auto, is automatically enabled when the virtual scheduler is enabled.
storageClasses required object βenabled required string|boolean auto β
Enabled defines if this option should be enabled.
enabled required string|boolean auto βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βcsiNodes required object β
CSINodes defines if csi nodes should get synced from the host cluster to the virtual cluster, but not back. If auto, is automatically enabled when the virtual scheduler is enabled.
csiNodes required object βenabled required string|boolean auto β
Enabled defines if this option should be enabled.
enabled required string|boolean auto βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βcsiDrivers required object β
CSIDrivers defines if csi drivers should get synced from the host cluster to the virtual cluster, but not back. If auto, is automatically enabled when the virtual scheduler is enabled.
csiDrivers required object βenabled required string|boolean auto β
Enabled defines if this option should be enabled.
enabled required string|boolean auto βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βcsiStorageCapacities required object β
CSIStorageCapacities defines if csi storage capacities should get synced from the host cluster to the virtual cluster, but not back. If auto, is automatically enabled when the virtual scheduler is enabled.
csiStorageCapacities required object βenabled required string|boolean auto β
Enabled defines if this option should be enabled.
enabled required string|boolean auto βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βcustomResources required {key: object} β
CustomResources defines what custom resources should get synced read-only to the virtual cluster from the host cluster. vCluster will automatically add any required RBAC to the vCluster cluster role.
customResources required {key: object} βenabled required boolean β
Enabled defines if this option should be enabled.
enabled required boolean βscope required string β
Scope defines the scope of the resource
scope required string βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βmappings required object β
Mappings for Namespace and Object
mappings required object βbyName required object β
ByName is a map of host-object-namespace/host-object-name: virtual-object-namespace/virtual-object-name.
There are several wildcards supported:
- To match all objects in host namespace and sync them to different namespace in vCluster:
byName:
"foo/": "foo-in-virtual/"
- To match specific object in the host namespace and sync it to the same namespace with the same name:
byName:
"foo/my-object": "foo/my-object"
- To match specific object in the host namespace and sync it to the same namespace with different name:
byName:
"foo/my-object": "foo/my-virtual-object"
- To match all objects in the vCluster host namespace and sync them to a different namespace in vCluster:
byName:
"": "my-virtual-namespace/*"
- To match specific objects in the vCluster host namespace and sync them to a different namespace in vCluster:
byName:
"/my-object": "my-virtual-namespace/my-object"
byName required object βvolumeSnapshotClasses required object β
VolumeSnapshotClasses defines if volume snapshot classes created within the virtual cluster should get synced to the host cluster.
volumeSnapshotClasses required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βconfigMaps required object β
ConfigMaps defines if config maps in the host should get synced to the virtual cluster.
configMaps required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βmappings required object β
Mappings for Namespace and Object
mappings required object βbyName required object {} β
ByName is a map of host-object-namespace/host-object-name: virtual-object-namespace/virtual-object-name.
There are several wildcards supported:
- To match all objects in host namespace and sync them to different namespace in vCluster:
byName:
"foo/": "foo-in-virtual/"
- To match specific object in the host namespace and sync it to the same namespace with the same name:
byName:
"foo/my-object": "foo/my-object"
- To match specific object in the host namespace and sync it to the same namespace with different name:
byName:
"foo/my-object": "foo/my-virtual-object"
- To match all objects in the vCluster host namespace and sync them to a different namespace in vCluster:
byName:
"": "my-virtual-namespace/*"
- To match specific objects in the vCluster host namespace and sync them to a different namespace in vCluster:
byName:
"/my-object": "my-virtual-namespace/my-object"
byName required object {} βsecrets required object β
Secrets defines if secrets in the host should get synced to the virtual cluster.
secrets required object βenabled required boolean false β
Enabled defines if this option should be enabled.
enabled required boolean false βpatches required object[] β
Patches patch the resource according to the provided specification.
patches required object[] βpath required string β
Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.
path required string βexpression required string β
Expression transforms the value according to the given JavaScript expression.
expression required string βreverseExpression required string β
ReverseExpression transforms the value according to the given JavaScript expression.
reverseExpression required string βreference required object β
Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode
automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with
other names, in multi-namespace mode this will not translate the name.
reference required object βapiVersion required string β
APIVersion is the apiVersion of the referenced object.
apiVersion required string βapiVersionPath required string β
APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.
apiVersionPath required string βkind required string β
Kind is the kind of the referenced object.
kind required string βkindPath required string β
KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.
kindPath required string βnamePath required string β
NamePath is the optional relative path to the reference name within the object.
namePath required string βnamespacePath required string β
NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the
metadata.namespace path of the object.
namespacePath required string βlabels required object β
Labels treats the path value as a labels selector.
labels required object βmappings required object β
Mappings for Namespace and Object
mappings required object βbyName required object {} β
ByName is a map of host-object-namespace/host-object-name: virtual-object-namespace/virtual-object-name.
There are several wildcards supported:
- To match all objects in host namespace and sync them to different namespace in vCluster:
byName:
"foo/": "foo-in-virtual/"
- To match specific object in the host namespace and sync it to the same namespace with the same name:
byName:
"foo/my-object": "foo/my-object"
- To match specific object in the host namespace and sync it to the same namespace with different name:
byName:
"foo/my-object": "foo/my-virtual-object"
- To match all objects in the vCluster host namespace and sync them to a different namespace in vCluster:
byName:
"": "my-virtual-namespace/*"
- To match specific objects in the vCluster host namespace and sync them to a different namespace in vCluster:
byName:
"/my-object": "my-virtual-namespace/my-object"
byName required object {} β