Skip to main content

Experimental

warning

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

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 object

Experimental features for vCluster. Configuration here might change, so be careful with this.

deploy object

Deploy allows you to configure manifests and Helm charts to deploy within the host or virtual cluster.

host object

Host defines what manifests to deploy into the host cluster

manifests string

Manifests are raw Kubernetes manifests that should get applied within the host cluster.

manifestsTemplate string

ManifestsTemplate is a Kubernetes manifest template that will be rendered with vCluster values before applying it within the host cluster.

vcluster object

VCluster defines what manifests and charts to deploy into the vCluster

manifests string

Manifests are raw Kubernetes manifests that should get applied within the virtual cluster.

manifestsTemplate string

ManifestsTemplate is a Kubernetes manifest template that will be rendered with vCluster values before applying it within the virtual cluster.

helm object[]

Helm are Helm charts that should get deployed into the virtual cluster

chart object

Chart defines what chart should get deployed.

name string
repo string
insecure boolean
version string
username string
password string
release object

Release defines what release should get deployed.

name string

Name of the release

namespace string

Namespace of the release

values string

Values defines what values should get used.

timeout string

Timeout defines the timeout for Helm

bundle string

Bundle allows to compress the Helm chart and specify this instead of an online chart

syncSettings object

SyncSettings are advanced settings for the syncer controller.

setOwner 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.

hostMetricsBindAddress string

HostMetricsBindAddress is the bind address for the local manager

virtualMetricsBindAddress string

VirtualMetricsBindAddress is the bind address for the virtual manager

virtualClusterKubeConfig object

VirtualClusterKubeConfig allows you to override distro specifics and specify where vCluster will find the required certificates and vCluster config. Deprecated: Removed in 0.29.0.

kubeConfig string

KubeConfig is the virtual cluster kubeconfig path.

serverCAKey string

ServerCAKey is the server ca key path.

serverCACert string

ServerCACert is the server ca cert path.

clientCACert string

ClientCACert is the client ca cert path.

clientCAKey string

ClientCAKey is the client ca key path.

requestHeaderCACert string

RequestHeaderCACert is the request header ca cert path.

denyProxyRequests object[]

DenyProxyRequests denies certain requests in the vCluster proxy.

name string

The name of the check.

namespaces 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.

rules 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.

apiGroups string[]

APIGroups is the API groups the resources belong to. '*' is all groups.

apiVersions string[]

APIVersions is the API versions the resources belong to. '*' is all versions.

resources string[]

Resources is a list of resources this rule applies to.

scope string

Scope specifies the scope of this rule.

operations 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.

excludedUsers 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.

proxy object

Proxy enables vCluster-to-vCluster proxying of resources

customResources {key: object}

CustomResources is a map of resource keys (format: "kind.apiGroup/version") to proxy configuration

enabled boolean

Enabled defines if this resource proxy should be enabled

targetVirtualCluster object

TargetVirtualCluster is the target virtual cluster for the custom resource proxy

name required string

Name is the name of the target virtual cluster.

project string

Project is the project of the target virtual cluster. If empty, defaults to the same project as the source vCluster.

accessResources string

AccessResources defines which resources should be accessible in the proxy.

docker object

Docker allows you to configure Docker related settings when deploying a vCluster using Docker.

image string

Image defines the image to use for the container. Defaults to ghcr.io/loft-sh/vm-container.

ports string[]

Ports defines extra port mappings to be added to the container.

volumes string[]

Volumes defines extra volumes to be added to the container.

env string[]

Env defines extra environment variables to be added to the container. Use key=value.

args string[]

Args defines extra arguments to be added to the docker run command of the container.

enabled boolean

Enabled defines if the vCluster was deployed using Docker. This is automatically set by vCluster and should not be set by the user.

network string

Network defines the network to use for the vCluster. If not specified, the a network will be created for the vCluster.

nodes object[]

Nodes defines the nodes of the vCluster.

image string

Image defines the image to use for the container. Defaults to ghcr.io/loft-sh/vm-container.

ports string[]

Ports defines extra port mappings to be added to the container.

volumes string[]

Volumes defines extra volumes to be added to the container.

env string[]

Env defines extra environment variables to be added to the container. Use key=value.

args string[]

Args defines extra arguments to be added to the docker run command of the container.

name string

Name defines the name of the node. If not specified, a random name will be generated.

registryProxy object

Defines if docker images should be pulled from the host docker daemon. This prevents pulling images again and allows to use purely local images. Only works if containerd image storage is used. For more information, see https://docs.docker.com/engine/storage/containerd

enabled boolean true

Enabled defines if this option should be enabled.

loadBalancer object

Defines if vCluster should configure load balancer services inside the vCluster. This might require sudo access on the host cluster for docker desktop or rancher desktop on macos.

enabled boolean true

Enabled defines if this option should be enabled.

forwardPorts boolean true

ForwardPorts defines if the load balancer ips should be made available locally via port forwarding. This will be only done if necessary for example on macos when using docker desktop.

nodeMonitors object[]

NodeMonitors allows you to create a service monitor for each node.

name string

Name is the name of the monitor. It will be suffixed with the node name.

nodeSelector object

NodeSelector defines the node selector for the service monitor.

endpoints object[]

Endpoints is a list of endpoints to add to the service monitor. By default, vCluster will relabel the node and instance label to the node name.

path string

Path is the kubelet path of the endpoint. vCluster will prepend /api/v1/nodes/NODE_NAME to the path.

params object

Params allows you to configure extra parameters to add to the endpoint.

extraRelabelings object[]

ExtraRelabelings allows you to configure extra relabelings to add to the endpoint. By default, vCluster will relabel the node and instance label to the node name.

metricsRelabelings object[]

MetricsRelabelings allows you to configure extra metrics relabelings to add to the endpoint.

interval string

Interval is the interval at which to scrape the endpoint.

scrapeTimeout string

ScrapeTimeout is the timeout for the scrape of the endpoint.

spec object

Spec allows you to configure extra service monitor options that will be merged into the spec.

annotations object

Annotations are extra annotations for this resource.

labels object

Labels are extra labels for this resource.