Vcluster Versions Save

vCluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.

v0.20.0-beta.1

3 days ago

⚠ Breaking Changes ⚠

Unified Helm chart for simplified deployment

We've streamlined the deployment process by consolidating all different vCluster Helm charts (vcluster, vcluster-k8s, vcluster-k0s, and vcluster-eks) into a single, unified chart. This change is designed to simplify management and upgrading of virtual clusters:

  • Single source: No more juggling multiple charts.
  • Value conversion: A new vCluster CLI command to convert vCluster v0.19 to v0.20 values is provided (view conversion guide)
  • Enhanced validation: We've introduced a values schema JSON to the Helm chart, ensuring that upgrades will only proceed if your configuration matches the expected format to reduce deployment errors.
  • Customizable distributions: The new unified chart structure enables easier customization of Kubernetes distributions directly via the Helm chart values:
controlPlane:
  distro:
    k8s:
      enabled: true

View the new format

New intuitive vcluster.yaml configuration & docs

We're excited to introduce the new vcluster.yaml file, replacing the previous Helm values.yaml. This new configuration features a completely revamped format designed to enhance the user experience:

  • Validation: The vCluster CLI and Platform UI now validate configurations when creating virtual clusters. In addition, most IDEs will now automatically provide validation and autocomplete for vCluster configurations.
  • Consolidated configuration: All configurations are centralized in the vcluster.yaml file, eliminating confusion previously caused by the mix of CLI flags and Helm values. Please note, this release has a set of unsupported CLI flags (view release notes) however, the vCluster CLI vcluster convert config command makes it easy to transition to the new vcluster.yaml format.
  • Renamed fields: We've updated field names to be more intuitive, making them easier to understand and remember.
  • Reorganized structure: Fields are now logically grouped under topical categories, simplifying navigation and enhancing discoverability of related features.
  • Docs alignment: Our documentation now mirrors the structure of vcluster.yaml, making it easier to cross-reference settings within the file and corresponding sections in the docs.

New vCluster CLI command to convert old values to vcluster.yaml

In order to make it easy to convert your old values (pre-v0.20) to the new vcluster.yaml format, you can leverage the new CLI command: vcluster convert config command. For example, let's take these pre-v0.20 configuration values:

service:
  type: NodePort
sync:
  nodes:
    enabled: true

Passing the above old values using the vCluster CLI command vcluster convert config --distro k8s < /path/to/this/file.yaml will generate the following values:

controlPlane:
  backingStore:
    etcd:
      deploy:
        enabled: true
  distro:
    k8s:
      enabled: true
  service:
    spec:
      type: NodePort
  statefulSet:
    scheduling:
      podManagementPolicy: OrderedReady
sync:
  fromHost:
    nodes:
      enabled: true

View configuration conversion guide

Vanilla K8s is now the default distribution

We changed the default distribution for the vCluster control plane from K3s to K8s. This is the least opinionated option, offering greater flexibility and compatibility:

  • Flexibility: More customization and scalability options, catering to a broader range of deployment needs.
  • Compatibility: In addition to embedded and external etcd, you can now use various storage backends including SQLite, Postgres, and MySQL. This addition addresses previous challenges with using K8s for smaller virtual clusters.

Embedded SQLite is now the default backing store

Embedded SQLite has been set as the default backing store for the K8s distribution. This is to simplify operations and enhance performance for smaller virtual clusters:

  • Efficiency: SQLite offers a more lightweight solution for data storage without the overhead associated with more complex choices like etcd.
  • Simplicity: Setup is more straightforward, reducing the complexity and time required to get virtual clusters up and running.

Continued Support for etcd: For users with larger deployments or those needing more advanced features, external etcd deployed by vCluster remains a fully supported option:

controlPlane:
  distro:
    k8s:
      enabled: true
  backingStore:
    etcd:
      deploy:
        enabled: true


Pro is now the default image

We've updated the default image for vCluster to ghcr.io/loft-sh/vcluster-pro. This change allows users to seamlessly test and adopt vCluster Pro features without disrupting the existing open-source functionality. The Pro features are integrated into the Pro image but remain inactive by default to ensure that your experience remains consistent with the open-source version unless you specifically activate Pro features.

For users who prefer using the open-source image, simply adjust your vcluster.yaml configuration to use ghcr.io/loft-sh/vcluster-oss:

controlPlane:
  statefulSet:
    image:
      repository: ghcr.io/loft-sh/vcluster-oss


Ingress syncing behavior has changed

Pre-v0.20.0-beta.1, when you enabled syncing Ingresses from the virtual to the host cluster, it would also automatically sync all IngressClasses from the host cluster. However, this required a cluster role which some vCluster users don’t have. We’ve now decoupled these syncing behaviors so you can individually enable syncing Ingresses as well as IngressClasses separately.

sync:
  toHost:
    ingresses:
      enabled: true
  fromHost:
    ingressClasses:
      enabled: true


Unsupported CLI flags

vcluster create Flags:

  • --disable-ingress-sync
  • --extra-values
  • --labels
  • --annotations
  • --project
  • --cluster
  • --template
  • --template-version
  • --link
  • --params
  • --set-param
  • --disable-pro

vcluster delete Flags:

  • --project

vcluster connect Flags:

  • --project

vcluster pause Flags:

  • --project
  • --prevent-wakeup

vcluster resume Flags:

  • --project

vcluster start Flags:

  • --kube-config-context-name
  • --sync
  • --request-header-ca-cert
  • --client-ca-cert
  • --server-ca-cert
  • --server-ca-key
  • --kube-config
  • --tls-san
  • --out-kube-config-secret
  • --out-kube-config-secret-namespace
  • --out-kube-config-server
  • --target-namespace
  • --service-name
  • --set-owner
  • --name
  • --bind-address
  • --port
  • --sync-all-nodes
  • --enable-scheduler
  • --disable-fake-kubelets
  • --fake-kubelet-ips
  • --node-clear-image-status
  • --translate-image
  • --enforce-node-selector
  • --enforce-toleration
  • --node-selector
  • --service-account
  • --override-hosts
  • --override-hosts-container-image
  • --cluster-domain
  • --leader-elect
  • --lease-duration
  • --renew-deadline
  • --retry-period
  • --disable-plugins
  • --plugin-listen-address
  • --default-image-registry
  • --enforce-pod-security-standard
  • --sync-labels
  • --plugins
  • --map-virtual-service
  • --map-host-service
  • --host-metrics-bind-address
  • --virtual-metrics-bind-address
  • --mount-physical-host-paths
  • --multi-namespace-mode
  • --namespace-labels
  • --sync-all-configmaps
  • --sync-all-secrets
  • --proxy-metrics-server
  • --service-account-token-secrets
  • --rewrite-host-paths
  • --sync-node-changes
  • --fake-kubelets
  • --fake-nodes
  • --fake-persistent-volumes
  • --enable-storage-classes
  • --enable-priority-classes
  • --suffix
  • --owning-statefulset
  • --disable-sync-resources
  • --pro-license-secret
  • --remote-kube-config
  • --remote-namespace
  • --remote-service-name
  • --integrated-coredns
  • --use-coredns-plugin
  • --noop-syncer
  • --sync-k8s-service
  • --etcd-embedded
  • --migrate-from
  • --etcd-replicas
  • --enforce-validating-hook
  • --enforce-mutating-hook


All Changes

Features

Bugfixes

Refactoring

Chores

New Contributors

v0.20.0-alpha.4

1 week ago

!!! Breaking Changes !!!

New helm values.yaml format

We changed the vCluster values.yaml format in this release and most old helm values will no longer work. We will provide a migration script that automatically updates the old values to the new ones. You can check the new format at https://github.com/loft-sh/vcluster/blob/main/chart/values.yaml

Merged all vCluster charts into a single one

We merged all different vCluster charts (vcluster, vcluster-k8s, vcluster-k0s & vcluster-eks) into a single helm chart. This should simplify vCluster deployment in the future. We will provide a migration script that automatically updates the old values to the new ones and we added a values schema json to the helm chart that will let upgrading of the chart fail if the values format doesn't match. You can check the new format at https://github.com/loft-sh/vcluster/blob/main/chart/values.yaml

You can enable a specific distro now via the helm chart values:

controlPlane:
  distro:
    k8s:
      enabled: true

K8s distro is now the default distribution

We changed the default distro from k3s to k8s as k8s is the least opinionated and you can now also use kine with k8s, which allows to use SQLite and other storage backends with the regular k8s distro to overcome the biggest problem using k8s so far for smaller vClusters.

K8s distro default backing store is now SQLite

Currently it was only possible to use external etcd deployed by vCluster or embedded etcd (as a pro feature) with the k8s distro. With v0.20 its also possible to use Kine with the k8s distro and SQLite is the new default for it. You can still use the external etcd deployed by vCluster with:

controlPlane:
  distro:
    k8s:
      enabled: true
  backingStore:
    etcd:
      deploy:
        enabled: true

Changed default image to be vcluster-pro

To allow easier trying out of pro features, we changed the default image repository to be ghcr.io/loft-sh/vcluster-pro, which includes besides the oss code extra optional pro features. Pro features need to be enabled manually to have an effect and are all disabled by default, which means only oss code is executed without any extra configuration.

If you want to use the pure oss image, you can use the following configuration:

controlPlane:
  statefulSet:
    image:
      repository: ghcr.io/loft-sh/vcluster-oss

What's Changed

New Contributors

Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.19.5...v0.20.0-alpha.4

v0.20.0-alpha.3

1 week ago

!!! Breaking Changes !!!

New helm values.yaml format

We changed the vCluster values.yaml format in this release and most old helm values will no longer work. We will provide a migration script that automatically updates the old values to the new ones. You can check the new format at https://github.com/loft-sh/vcluster/blob/main/chart/values.yaml

Merged all vCluster charts into a single one

We merged all different vCluster charts (vcluster, vcluster-k8s, vcluster-k0s & vcluster-eks) into a single helm chart. This should simplify vCluster deployment in the future. We will provide a migration script that automatically updates the old values to the new ones and we added a values schema json to the helm chart that will let upgrading of the chart fail if the values format doesn't match. You can check the new format at https://github.com/loft-sh/vcluster/blob/main/chart/values.yaml

You can enable a specific distro now via the helm chart values:

controlPlane:
  distro:
    k8s:
      enabled: true

K8s distro is now the default distribution

We changed the default distro from k3s to k8s as k8s is the least opinionated and you can now also use kine with k8s, which allows to use SQLite and other storage backends with the regular k8s distro to overcome the biggest problem using k8s so far for smaller vClusters.

K8s distro default backing store is now SQLite

Currently it was only possible to use external etcd deployed by vCluster or embedded etcd (as a pro feature) with the k8s distro. With v0.20 its also possible to use Kine with the k8s distro and SQLite is the new default for it. You can still use the external etcd deployed by vCluster with:

controlPlane:
  distro:
    k8s:
      enabled: true
  backingStore:
    etcd:
      deploy:
        enabled: true

What's Changed

New Contributors

Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.19.5...v0.20.0-alpha.3

v0.20.0-alpha.2

2 weeks ago

!!! Breaking Changes !!!

New helm values.yaml format

We changed the vCluster values.yaml format in this release and most old helm values will no longer work. We will provide a migration script that automatically updates the old values to the new ones. You can check the new format at https://github.com/loft-sh/vcluster/blob/main/chart/values.yaml

Merged all vCluster charts into a single one

We merged all different vCluster charts (vcluster, vcluster-k8s, vcluster-k0s & vcluster-eks) into a single helm chart. This should simplify vCluster deployment in the future. We will provide a migration script that automatically updates the old values to the new ones and we added a values schema json to the helm chart that will let upgrading of the chart fail if the values format doesn't match. You can check the new format at https://github.com/loft-sh/vcluster/blob/main/chart/values.yaml

You can enable a specific distro now via the helm chart values:

controlPlane:
  distro:
    k8s:
      enabled: true

K8s distro is now the default distribution

We changed the default distro from k3s to k8s as k8s is the least opinionated and you can now also use kine with k8s, which allows to use SQLite and other storage backends with the regular k8s distro to overcome the biggest problem using k8s so far for smaller vClusters.

K8s distro default backing store is now SQLite

Currently it was only possible to use external etcd deployed by vCluster or embedded etcd (as a pro feature) with the k8s distro. With v0.20 its also possible to use Kine with the k8s distro and SQLite is the new default for it. You can still use the external etcd deployed by vCluster with:

controlPlane:
  distro:
    k8s:
      enabled: true
  backingStore:
    etcd:
      deploy:
        enabled: true

What's Changed

New Contributors

Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.19.5...v0.20.0-alpha.2

v0.20.0-alpha.1

3 weeks ago

!!! Breaking Changes !!!

New helm values.yaml format

We changed the vCluster values.yaml format in this release and old helm values will no longer work. We will provide a migration script that automatically updates the old values to the new ones. You can check the new format at https://github.com/loft-sh/vcluster/blob/main/chart/values.yaml

Merged all vCluster charts into a single one

We merged all different vCluster charts (vcluster, vcluster-k8s, vcluster-k0s & vcluster-eks) into a single helm chart. This should simplify vCluster deployment going further. We will provide a migration script that automatically updates the old values to the new ones. You can check the new format at https://github.com/loft-sh/vcluster/blob/main/chart/values.yaml

You can enable a specific distro now via the helm chart values:

controlPlane:
  distro:
    k8s:
      enabled: true
    k3s:
      enabled: false
    k0s:
      enabled: false

K8s distro is now the default

We changed the default distro from k3s to k8s as k8s is less opinionated and you can now also use kine with k8s, which allows to use SQLite and other storage backends with the regular k8s distro.

K8s distro default backing store is now SQLite

Currently it was only possible to use external etcd deployed by vCluster or embedded etcd (as a pro feature) with the k8s distro. With v0.20 its also possible to use Kine with the k8s distro and SQLite is the new default for it. You can still use the external etcd deployed by vCluster with:

controlPlane:
  distro:
    k8s:
      enabled: true
  backingStore:
    etcd:
      deploy:
        enabled: true

What's Changed

New Contributors

Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.19.4...v0.20.0-alpha.1

v0.19.5

3 weeks ago

What's Changed

Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.19.4...v0.19.5

v0.20.0-alpha.0

1 month ago

!!! Breaking Changes !!!

We changed the vCluster values.yaml format in this release and old helm values will no longer work. We also merged all vCluster charts into a single helm chart. We will provide a migration script that automatically updates the old values to the new ones. You can check the new format at https://github.com/loft-sh/vcluster/blob/main/chart/values.yaml

What's Changed

Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.19.4...v0.20.0-alpha.0

v0.19.4

1 month ago

What's Changed

New Contributors

Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.19.3...v0.19.4

v0.19.3

1 month ago

What's Changed

Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.19.2...v0.19.3

v0.19.2

1 month ago

What's Changed

New Contributors

Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.19.1...v0.19.2