Experimental
The following features are experimental. They might have breaking changes or be deprecated.
Experimental features​
vCluster provides several experimental features that extend its capabilities:
Available features​
- Deploy - Configure deployment settings for experimental features
- Isolated control plane - Run vCluster with an isolated control plane
- Sync settings - Advanced synchronization configuration
- Deny proxy requests - Block proxy requests to the host cluster
- Virtual cluster kubeconfig - Customize virtual cluster kubeconfig generation
Configure experimental features​
Experimental features are configured under the experimental section of your vCluster configuration. These features might change between releases, so use them with caution in production environments.
Config reference​
experimental required object ​
Experimental features for vCluster. Configuration here might change, so be careful with this.
experimental required object ​deploy required object ​
Deploy allows you to configure manifests and Helm charts to deploy within the host or virtual cluster.
deploy required object ​host required object ​
Host defines what manifests to deploy into the host cluster
host required object ​vcluster required object ​
VCluster defines what manifests and charts to deploy into the vCluster
vcluster required object ​manifests required string ​
Manifests are raw Kubernetes manifests that should get applied within the virtual cluster.
manifests required string ​manifestsTemplate required string ​
ManifestsTemplate is a Kubernetes manifest template that will be rendered with vCluster values before applying it within the virtual cluster.
manifestsTemplate required string ​helm required object[] ​
Helm are Helm charts that should get deployed into the virtual cluster
helm required object[] ​chart required object ​
Chart defines what chart should get deployed.
chart required object ​release required object ​
Release defines what release should get deployed.
release required object ​values required string ​
Values defines what values should get used.
values required string ​timeout required string ​
Timeout defines the timeout for Helm
timeout required string ​bundle required string ​
Bundle allows to compress the Helm chart and specify this instead of an online chart
bundle required string ​syncSettings required object ​
SyncSettings are advanced settings for the syncer controller.
syncSettings required object ​targetNamespace required string ​
TargetNamespace is the namespace where the workloads should get synced to.
targetNamespace required string ​setOwner required boolean true ​
SetOwner specifies if vCluster should set an owner reference on the synced objects to the vCluster service. This allows for easy garbage collection.
setOwner required boolean true ​hostMetricsBindAddress required string ​
HostMetricsBindAddress is the bind address for the local manager
hostMetricsBindAddress required string ​virtualMetricsBindAddress required string ​
VirtualMetricsBindAddress is the bind address for the virtual manager
virtualMetricsBindAddress required string ​genericSync required object ​
GenericSync holds options to generically sync resources from virtual cluster to host.
genericSync required object ​version required string ​
Version is the config version
version required string ​export required object[] ​
Exports syncs a resource from the virtual cluster to the host
export required object[] ​apiVersion required string ​
APIVersion of the object to sync
apiVersion required string ​kind required string ​
Kind of the object to sync
kind required string ​optional required boolean ​
optional required boolean ​replaceOnConflict required boolean ​
ReplaceWhenInvalid determines if the controller should try to recreate the object
if there is a problem applying
replaceOnConflict required boolean ​patches required object[] ​
Patches are the patches to apply on the virtual cluster objects
when syncing them from the host cluster
patches required object[] ​op required string ​
Operation is the type of the patch
op required string ​fromPath required string ​
FromPath is the path from the other object
fromPath required string ​path required string ​
Path is the path of the patch
path required string ​namePath required string ​
NamePath is the path to the name of a child resource within Path
namePath required string ​namespacePath required string ​
NamespacePath is path to the namespace of a child resource within Path
namespacePath required string ​value required object ​
Value is the new value to be set to the path
value required object ​regex required string ​
Regex - is regular expresion used to identify the Name,
and optionally Namespace, parts of the field value that
will be replaced with the rewritten Name and/or Namespace
regex required string ​conditions required object[] ​
Conditions are conditions that must be true for
the patch to get executed
conditions required object[] ​path required string ​
Path is the path within the object to select
path required string ​subPath required string ​
SubPath is the path below the selected object to select
subPath required string ​equal required object ​
Equal is the value the path should be equal to
equal required object ​notEqual required object ​
NotEqual is the value the path should not be equal to
notEqual required object ​empty required boolean ​
Empty means that the path value should be empty or unset
empty required boolean ​ignore required boolean ​
Ignore determines if the path should be ignored if handled as a reverse patch
ignore required boolean ​reversePatches required object[] ​
ReversePatches are the patches to apply to host cluster objects
after it has been synced to the virtual cluster
reversePatches required object[] ​op required string ​
Operation is the type of the patch
op required string ​fromPath required string ​
FromPath is the path from the other object
fromPath required string ​path required string ​
Path is the path of the patch
path required string ​namePath required string ​
NamePath is the path to the name of a child resource within Path
namePath required string ​namespacePath required string ​
NamespacePath is path to the namespace of a child resource within Path
namespacePath required string ​value required object ​
Value is the new value to be set to the path
value required object ​regex required string ​
Regex - is regular expresion used to identify the Name,
and optionally Namespace, parts of the field value that
will be replaced with the rewritten Name and/or Namespace
regex required string ​conditions required object[] ​
Conditions are conditions that must be true for
the patch to get executed
conditions required object[] ​path required string ​
Path is the path within the object to select
path required string ​subPath required string ​
SubPath is the path below the selected object to select
subPath required string ​equal required object ​
Equal is the value the path should be equal to
equal required object ​notEqual required object ​
NotEqual is the value the path should not be equal to
notEqual required object ​empty required boolean ​
Empty means that the path value should be empty or unset
empty required boolean ​ignore required boolean ​
Ignore determines if the path should be ignored if handled as a reverse patch
ignore required boolean ​import required object[] ​
Imports syncs a resource from the host cluster to virtual cluster
import required object[] ​apiVersion required string ​
APIVersion of the object to sync
apiVersion required string ​kind required string ​
Kind of the object to sync
kind required string ​optional required boolean ​
optional required boolean ​replaceOnConflict required boolean ​
ReplaceWhenInvalid determines if the controller should try to recreate the object
if there is a problem applying
replaceOnConflict required boolean ​patches required object[] ​
Patches are the patches to apply on the virtual cluster objects
when syncing them from the host cluster
patches required object[] ​op required string ​
Operation is the type of the patch
op required string ​fromPath required string ​
FromPath is the path from the other object
fromPath required string ​path required string ​
Path is the path of the patch
path required string ​namePath required string ​
NamePath is the path to the name of a child resource within Path
namePath required string ​namespacePath required string ​
NamespacePath is path to the namespace of a child resource within Path
namespacePath required string ​value required object ​
Value is the new value to be set to the path
value required object ​regex required string ​
Regex - is regular expresion used to identify the Name,
and optionally Namespace, parts of the field value that
will be replaced with the rewritten Name and/or Namespace
regex required string ​conditions required object[] ​
Conditions are conditions that must be true for
the patch to get executed
conditions required object[] ​path required string ​
Path is the path within the object to select
path required string ​subPath required string ​
SubPath is the path below the selected object to select
subPath required string ​equal required object ​
Equal is the value the path should be equal to
equal required object ​notEqual required object ​
NotEqual is the value the path should not be equal to
notEqual required object ​empty required boolean ​
Empty means that the path value should be empty or unset
empty required boolean ​ignore required boolean ​
Ignore determines if the path should be ignored if handled as a reverse patch
ignore required boolean ​reversePatches required object[] ​
ReversePatches are the patches to apply to host cluster objects
after it has been synced to the virtual cluster
reversePatches required object[] ​op required string ​
Operation is the type of the patch
op required string ​fromPath required string ​
FromPath is the path from the other object
fromPath required string ​path required string ​
Path is the path of the patch
path required string ​namePath required string ​
NamePath is the path to the name of a child resource within Path
namePath required string ​namespacePath required string ​
NamespacePath is path to the namespace of a child resource within Path
namespacePath required string ​value required object ​
Value is the new value to be set to the path
value required object ​regex required string ​
Regex - is regular expresion used to identify the Name,
and optionally Namespace, parts of the field value that
will be replaced with the rewritten Name and/or Namespace
regex required string ​conditions required object[] ​
Conditions are conditions that must be true for
the patch to get executed
conditions required object[] ​path required string ​
Path is the path within the object to select
path required string ​subPath required string ​
SubPath is the path below the selected object to select
subPath required string ​equal required object ​
Equal is the value the path should be equal to
equal required object ​notEqual required object ​
NotEqual is the value the path should not be equal to
notEqual required object ​empty required boolean ​
Empty means that the path value should be empty or unset
empty required boolean ​ignore required boolean ​
Ignore determines if the path should be ignored if handled as a reverse patch
ignore required boolean ​hooks required object ​
Hooks are hooks that can be used to inject custom patches before syncing
hooks required object ​hostToVirtual required object[] ​
HostToVirtual is a hook that is executed before syncing from the host to the virtual cluster
hostToVirtual required object[] ​apiVersion required string ​
APIVersion of the object to sync
apiVersion required string ​kind required string ​
Kind of the object to sync
kind required string ​verbs required string[] ​
Verbs are the verbs that the hook should mutate
verbs required string[] ​patches required object[] ​
Patches are the patches to apply on the object to be synced
patches required object[] ​op required string ​
Operation is the type of the patch
op required string ​fromPath required string ​
FromPath is the path from the other object
fromPath required string ​path required string ​
Path is the path of the patch
path required string ​namePath required string ​
NamePath is the path to the name of a child resource within Path
namePath required string ​namespacePath required string ​
NamespacePath is path to the namespace of a child resource within Path
namespacePath required string ​value required object ​
Value is the new value to be set to the path
value required object ​regex required string ​
Regex - is regular expresion used to identify the Name,
and optionally Namespace, parts of the field value that
will be replaced with the rewritten Name and/or Namespace
regex required string ​conditions required object[] ​
Conditions are conditions that must be true for
the patch to get executed
conditions required object[] ​path required string ​
Path is the path within the object to select
path required string ​subPath required string ​
SubPath is the path below the selected object to select
subPath required string ​equal required object ​
Equal is the value the path should be equal to
equal required object ​notEqual required object ​
NotEqual is the value the path should not be equal to
notEqual required object ​empty required boolean ​
Empty means that the path value should be empty or unset
empty required boolean ​ignore required boolean ​
Ignore determines if the path should be ignored if handled as a reverse patch
ignore required boolean ​virtualToHost required object[] ​
VirtualToHost is a hook that is executed before syncing from the virtual to the host cluster
virtualToHost required object[] ​apiVersion required string ​
APIVersion of the object to sync
apiVersion required string ​kind required string ​
Kind of the object to sync
kind required string ​verbs required string[] ​
Verbs are the verbs that the hook should mutate
verbs required string[] ​patches required object[] ​
Patches are the patches to apply on the object to be synced
patches required object[] ​op required string ​
Operation is the type of the patch
op required string ​fromPath required string ​
FromPath is the path from the other object
fromPath required string ​path required string ​
Path is the path of the patch
path required string ​namePath required string ​
NamePath is the path to the name of a child resource within Path
namePath required string ​namespacePath required string ​
NamespacePath is path to the namespace of a child resource within Path
namespacePath required string ​value required object ​
Value is the new value to be set to the path
value required object ​regex required string ​
Regex - is regular expresion used to identify the Name,
and optionally Namespace, parts of the field value that
will be replaced with the rewritten Name and/or Namespace
regex required string ​conditions required object[] ​
Conditions are conditions that must be true for
the patch to get executed
conditions required object[] ​path required string ​
Path is the path within the object to select
path required string ​subPath required string ​
SubPath is the path below the selected object to select
subPath required string ​equal required object ​
Equal is the value the path should be equal to
equal required object ​notEqual required object ​
NotEqual is the value the path should not be equal to
notEqual required object ​empty required boolean ​
Empty means that the path value should be empty or unset
empty required boolean ​ignore required boolean ​
Ignore determines if the path should be ignored if handled as a reverse patch
ignore required boolean ​isolatedControlPlane required object ​
IsolatedControlPlane is a feature to run the vCluster control plane in a different Kubernetes cluster than the workloads themselves.
isolatedControlPlane required object ​enabled required boolean ​
Enabled specifies if the isolated control plane feature should be enabled.
enabled required boolean ​headless required boolean false ​
Headless states that Helm should deploy the vCluster in headless mode for the isolated control plane.
headless required boolean false ​kubeConfig required string ​
KubeConfig is the path where to find the remote workload cluster kubeconfig.
kubeConfig required string ​namespace required string ​
Namespace is the namespace where to sync the workloads into.
namespace required string ​service required string ​
Service is the vCluster service in the remote cluster.
service required string ​virtualClusterKubeConfig required object ​
VirtualClusterKubeConfig allows you to override distro specifics and specify where vCluster will find the required certificates and vCluster config.
virtualClusterKubeConfig required object ​kubeConfig required string ​
KubeConfig is the virtual cluster kubeconfig path.
kubeConfig required string ​serverCAKey required string ​
ServerCAKey is the server ca key path.
serverCAKey required string ​serverCACert required string ​
ServerCAKey is the server ca cert path.
serverCACert required string ​clientCACert required string ​
ServerCAKey is the client ca cert path.
clientCACert required string ​requestHeaderCACert required string ​
RequestHeaderCACert is the request header ca cert path.
requestHeaderCACert required string ​denyProxyRequests required object[] ​
DenyProxyRequests denies certain requests in the vCluster proxy.
denyProxyRequests required object[] ​name required string ​
The name of the check.
name required string ​namespaces required string[] ​
Namespace describe a list of namespaces that will be affected by the check.
An empty list means that all namespaces will be affected.
In case of ClusterScoped rules, only the Namespace resource is affected.
namespaces required string[] ​rules required object[] ​
Rules describes on which verbs and on what resources/subresources the webhook is enforced.
The webhook is enforced if it matches any Rule.
The version of the request must match the rule version exactly. Equivalent matching is not supported.
rules required object[] ​apiGroups required string[] ​
APIGroups is the API groups the resources belong to. '*' is all groups.
apiGroups required string[] ​apiVersions required string[] ​
APIVersions is the API versions the resources belong to. '*' is all versions.
apiVersions required string[] ​resources required string[] ​
Resources is a list of resources this rule applies to.
resources required string[] ​scope required string ​
Scope specifies the scope of this rule.
scope required string ​operations required string[] ​
Verb is the kube verb associated with the request for API requests, not the http verb. This includes things like list and watch.
For non-resource requests, this is the lowercase http verb.
If '*' is present, the length of the slice must be one.
operations required string[] ​excludedUsers required string[] ​
ExcludedUsers describe a list of users for which the checks will be skipped.
Impersonation attempts on these users will still be subjected to the checks.
excludedUsers required string[] ​