February 11th 2024
New
Improved
Fixed
Changes made since: v0.18.1
We previously released embedded etcd for K3s and have now added support for the EKS, K0s and K8s distributions. When enabled, vCluster will start managing an embedded etcd cluster within the Syncer container. vCluster will automatically add or remove peers based on new replicas of the statefulset. This makes using HA a lot easier.
For more information, refer to the doc
The Centralized Admission Control feature allows platform admins to enforce webhook configurations (both validating and mutating) referencing the host cluster or external policy services from within the vCluster.
These configurations will be read-only within the vCluster and can only be set from the vCluster CLI or Helm values upon creation. This provides assurance to platform admins that vCluster admins will not be able to bypass or alter the hooks they set for a vCluster.
For more information, refer to the doc
Allow node port service for remote vCluster by @FabianKramm
Added offline license support by @FabianKramm
Added OSS license report automation by @ThomasK33
Bumped k8s version by @FabianKramm
Added Kyverno guide to docs by @facchettos
Removed enableHA field by @facchettos
Added migration support for etcd by @facchettos
Fix remote vCluster kubeconfig creation by @FabianKramm
vClusters are now even more streamlined with only 1 Pod instead of 3+ Pods. Similar to how we refactored K3s and K0s in the earlier version, we have now refactored the K8s and EKS distros to copy the api-server and controller-manager binary directly into the Syncer container to reduce complexity and to make the different vCluster distributions more similar and streamline certain features, such as metrics-server proxying.
We refactored how plugins in vCluster work and moved from a sidecar pattern to an init container pattern, where plugin binaries are copied through an init container into the syncer container.
This allows us to reuse go-plugin, which is one of the most used plugin frameworks out there. This makes logging easier as there is only a single container as well as allows you to directly package the plugin binary into the syncer image if needed.
Besides changing the architecture of plugins we also now allow specifying plugin configuration through a config
Helm value:
plugin:
my-plugin:
version: v2
image: ...
config:
my-plugin-config: my-value
other-plugin-config: other-value
This config will be passed to the plugin and can easily be used within the plugin to unmarshal into a config struct. We also got rid of a lot of tech debt with this refactoring and added a new example plugin to sync secrets from the host cluster to the virtual cluster.
For more information about plugins, refer to the doc
Added basic comparison matrix for vCluster distro versions by @ishankhare07 in https://github.com/loft-sh/vcluster/pull/1411
Disabled dualstack for k0s by @facchettos in https://github.com/loft-sh/vcluster/pull/1413
Added connect cluster
command by @ThomasK33 in https://github.com/loft-sh/vcluster/pull/1415
Now writes the config to disk to avoid race condition with secret update by @facchettos in https://github.com/loft-sh/vcluster/pull/1418
Added the cp subcommand by @facchettos in https://github.com/loft-sh/vcluster/pull/1423
Feat: add node port config by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1426
Added initial Generic Sync Example for Traefik by @MarkTurney in https://github.com/loft-sh/vcluster/pull/1431
Added how to eneable-ssl-passthrough so users can avoid leaving the docs by @mpetason in https://github.com/loft-sh/vcluster/pull/1441
Merged k8s api-server, controller-manager, scheduler into syncer container by @facchettos in https://github.com/loft-sh/vcluster/pull/1440
Removed special cases for setup with k8s by @facchettos in https://github.com/loft-sh/vcluster/pull/1443
Added OSS license report action by @ThomasK33 in https://github.com/loft-sh/vcluster/pull/1447
Changed distro detection by @facchettos in https://github.com/loft-sh/vcluster/pull/1451
Added field to specify dedicated loadbalancer annotations by @ThomasK33 in https://github.com/loft-sh/vcluster/pull/1450
Use external package to manage values & fix imports by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1452
Adde plugin v2 by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1455
Adde hint about wildcard support for sync-labels field in docs by @neogopher in https://github.com/loft-sh/vcluster/pull/1461
Added cli info
command by @facchettos in https://github.com/loft-sh/vcluster/pull/1462
Added loft crds to scheme by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1470
Added ignore-not-found flag by @mariuskimmina in https://github.com/loft-sh/vcluster/pull/1458
Removed unused syncer.noargs
by @facchettos in https://github.com/loft-sh/vcluster/pull/1475
Improved startup by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1479
Now handles both deprecated replicas
and syncer.replicas
by @facchettos in https://github.com/loft-sh/vcluster/pull/1474
Added embedded etcd in k8s by @facchettos in https://github.com/loft-sh/vcluster/pull/1459
Added volume mount by @facchettos in https://github.com/loft-sh/vcluster/pull/1482
Migrated all replicas to new format by @facchettos in https://github.com/loft-sh/vcluster/pull/1485
Sync endpoint updates for service mappings of headless services by @neogopher in https://github.com/loft-sh/vcluster/pull/1481
Changed the default to not delete the persistent volume claim by @facchettos in https://github.com/loft-sh/vcluster/pull/1488
Removed unused values since the merge into a single container by @facchettos in https://github.com/loft-sh/vcluster/pull/1476
Show vCluster output only in debug by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1495
Changed migrate arguments by @facchettos in https://github.com/loft-sh/vcluster/pull/1494
Renamed kubelet-config to worker-config as it is removed in k0s 1.29 by @facchettos in https://github.com/loft-sh/vcluster/pull/1516
Updated analytics client lib by @facchettos in https://github.com/loft-sh/vcluster/pull/1520
Bumped k3s to 1.29 by @ishankhare07 in https://github.com/loft-sh/vcluster/pull/1442
Bumped k8s dependencies by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1471
Bumped k8s to 1.29 and kind to 1.28 by @ishankhare07 in https://github.com/loft-sh/vcluster/pull/1410
Refactor: add syncer watch on host by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1493
Refactor: enqueue host events by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1497
Refactor: events controller by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1510
Refactor: add isRemote to WriteKubeConfigToSecret by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1433
Refactor: allow extra sans by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1434
Fix: issue where vcluster would fallback to 8.8.8.8 in isolated mode without any way to configure it by @facchettos in https://github.com/loft-sh/vcluster/pull/1511
Fix: show pro vclusters if not logged in by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1416
Fix: increase limits for init containers by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1422
Fix: wrong volumes check by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1432
Fix: metrics server proxying by @FabianKramm in https://github.com/loft-sh/vcluster/pull/1480
Fix: serviceCIDR bug by @facchettos in https://github.com/loft-sh/vcluster/pull/1477
Fix: issue where vcluster would create pvcs even with persistence disabled by @facchettos in https://github.com/loft-sh/vcluster/pull/1492
Fix: failing Conformance test - evicts pods with minTolerationSeconds by @neogopher in https://github.com/loft-sh/vcluster/pull/1506
Fix: issue where emptyDir data volume never gets created regardless of .Values.syncer.storage.persistence value by @Guent4 in https://github.com/loft-sh/vcluster/pull/1513
Fix: Resolved an issue where running applications in vCluster on ARM64 nodes were encountering architecture label mismatches by @yeahdongcn in https://github.com/loft-sh/vcluster/pull/1514
@MarkTurney made their first contribution in https://github.com/loft-sh/vcluster/pull/1431
@mariuskimmina made their first contribution in https://github.com/loft-sh/vcluster/pull/1458
@Guent4 made their first contribution in https://github.com/loft-sh/vcluster/pull/1513
@yeahdongcn made their first contribution in https://github.com/loft-sh/vcluster/pull/1514
Full Changelog: https://github.com/loft-sh/vcluster/compare/v0.18.1...v0.19.0