vcluster

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.

APACHE-2.0 License

Stars
5.4K
Committers
139

Bot releases are hidden (Show)

vcluster - v0.5.0-alpha.6

Published by FabianKramm almost 3 years ago

!! BREAKING CHANGES !!

vcluster will now deploy coredns itself instead of depending on the k3s coredns deployment. This makes it possible to customize the coredns deployment (e.g. for rootless mode) and also support other kubernetes distributions besides k3s. However, this will break the current coredns deployment created by k3s.

This means that after you have upgraded vcluster from an v0.4.x version, you need to delete the coredns deployment inside vcluster and then restart vcluster by deleting the vcluster pod to let it redeploy the correct coredns deployment:

# Delete coredns deployment inside vcluster
export KUBECONFIG=vcluster-kubeconfig.yaml
kubectl delete deployment coredns -n kube-system

# Restart vcluster by deleting its pod
export KUBECONFIG=host-kubeconfig.yaml
kubectl delete pod vcluster-pod-0 -n vcluster-namespace

Support for k0s and vanilla k8s virtual Kubernetes Clusters

vcluster now supports creating k0s and vanilla k8s virtual Kubernetes clusters instead of k3s. You can now specify the target virtual Kubernetes cluster distribution via the --distro flag in vcluster create. For vanilla k8s there is now also a high availability mode.

Examples:

# Create a virtual k3s Kubernetes cluster
vcluster create my-vcluster -n my-vcluster

# Create a virtual k0s Kubernetes cluster 
vcluster create my-vcluster -n my-vcluster --distro k0s

# Create a virtual k8s Kubernetes cluster with kubernetes version v1.20
vcluster create my-vcluster -n my-vcluster --distro k8s --kubernetes-version v1.20

Other Changes

  • cli: Deprecation of vcluster create flags --release-values and --k3s-image. Use --extra-values instead
  • cli: Changed default value of vcluster create flag --upgrade from true to false. vcluster will not try to upgrade an existing vcluster by default anymore
  • cli: New flag --kubernetes-version for vcluster create to override the kubernetes version used for creating the vcluster.
  • chart: New helm chart to deploy vcluster with k0s instead of k3s (#167) (see docs for more information)
  • chart: New helm chart to deploy vcluster with vanilla k8s instead of k3s (see docs for more information)
  • chart: Added support for rootless mode (see docs for more information)
  • chart: Added support for openshift v4 for k3s distro
  • syncer: New flag --name that specifies the vcluster name (replaces --suffix)
  • syncer: Deprecated flag --suffix, use --name instead
  • syncer: Flag --service-name now defaults to --name if omitted
  • syncer: Flag --set-owner now defaults to true and vcluster does not fail if setting the owner is not possible
  • syncer: Fixed an issue where nodes wouldn't get deleted correctly
  • syncer: Fixed an issue where vcluster would return a conflict error instead of already exists during service create
  • syncer: Fixed an error where vcluster would not correctly sync nodes and create node services (#214)
  • syncer: Removed flag --service-namespace as this would break vcluster if it's not the same value as current vcluster namespace
  • syncer: Fixed an issue where glusterfs volume endpoints would not get correctly translated
  • syncer: Fixed an issue where vcluster couldn't find the current pod if the flag --target-namespace was provided (#214)
  • syncer: New flag --leader-elect that defaults to false to avoid unnecessary leader election
  • build: Removed file name from the sha256 files (thanks @developer-guy)
vcluster - v0.5.0-alpha.5

Published by FabianKramm almost 3 years ago

Support for k0s and vanilla k8s virtual Kubernetes Clusters

vcluster now supports creating k0s and vanilla k8s virtual Kubernetes clusters instead of k3s. You can now specify the target virtual Kubernetes cluster distribution via the --distro flag in vcluster create. For vanilla k8s there is now also a high availability mode.

Examples:

# Create a virtual k3s Kubernetes cluster
vcluster create my-vcluster -n my-vcluster

# Create a virtual k0s Kubernetes cluster 
vcluster create my-vcluster -n my-vcluster --distro k0s

# Create a virtual k8s Kubernetes cluster with kubernetes version v1.20
vcluster create my-vcluster -n my-vcluster --distro k8s --kubernetes-version v1.20

Other Changes

  • cli: Deprecation of vcluster create flags --release-values and --k3s-image. Use --extra-values instead
  • cli: Changed default value of vcluster create flag --upgrade from true to false. vcluster will not try to upgrade an existing vcluster by default anymore
  • cli: New flag --kubernetes-version for vcluster create to override the kubernetes version used for creating the vcluster.
  • chart: New helm chart to deploy vcluster with k0s instead of k3s (#167) (see docs for more information)
  • chart: New helm chart to deploy vcluster with vanilla k8s instead of k3s (see docs for more information)
  • chart: Added support for rootless mode (see docs for more information)
  • chart: Added support for openshift v4 for k3s distro
  • syncer: New flag --name that specifies the vcluster name (replaces --suffix)
  • syncer: Deprecated flag --suffix, use --name instead
  • syncer: Flag --service-name now defaults to --name if omitted
  • syncer: Flag --set-owner now defaults to true and vcluster does not fail if setting the owner is not possible
  • syncer: Fixed an issue where vcluster would return a conflict error instead of already exists during service create
  • syncer: Fixed an error where vcluster would not correctly sync nodes and create node services (#214)
  • syncer: Removed flag --service-namespace as this would break vcluster if it's not the same value as current vcluster namespace
  • syncer: Fixed an issue where glusterfs volume endpoints would not get correctly translated
  • syncer: Fixed an issue where vcluster couldn't find the current pod if the flag --target-namespace was provided (#214)
  • syncer: New flag --leader-elect that defaults to false to avoid unnecessary leader election
  • syncer: vcluster will now deploy coredns itself instead of depending on k3s. This makes it possible to customize the coredns deployment (e.g. for rootless mode) and support other kubernetes distributions besides k3s.
  • build: Removed file name from the sha256 files (thanks @developer-guy)
vcluster - v0.5.0-alpha.4

Published by FabianKramm almost 3 years ago

Support for k0s and vanilla k8s virtual Kubernetes Clusters

vcluster now supports creating k0s and vanilla k8s virtual Kubernetes clusters instead of k3s. You can now specify the target virtual Kubernetes cluster distribution via the --distro flag in vcluster create. For vanilla k8s there is now also a high availability mode.

Examples:

# Create a virtual k3s Kubernetes cluster
vcluster create my-vcluster -n my-vcluster

# Create a virtual k0s Kubernetes cluster 
vcluster create my-vcluster -n my-vcluster --distro k0s

# Create a virtual k8s Kubernetes cluster with kubernetes version v1.20
vcluster create my-vcluster -n my-vcluster --distro k8s --kubernetes-version v1.20

Other Changes

  • cli: Deprecation of vcluster create flags --release-values and --k3s-image. Use --extra-values instead
  • cli: Changed default value of vcluster create flag --upgrade from true to false. vcluster will not try to upgrade an existing vcluster by default anymore
  • cli: New flag --kubernetes-version for vcluster create to override the kubernetes version used for creating the vcluster.
  • chart: New helm chart to deploy vcluster with k0s instead of k3s (#167) (see docs for more information)
  • chart: New helm chart to deploy vcluster with vanilla k8s instead of k3s (see docs for more information)
  • chart: Added support for rootless mode (see docs for more information)
  • chart: Added support for openshift v4 for k3s distro
  • syncer: Fixed an issue where glusterfs volume endpoints would not get correctly translated
  • syncer: Fixed an issue where vcluster couldn't find the current pod if the flag --target-namespace was provided (#214)
  • syncer: New flag --leader-elect that defaults to false to avoid unnecessary leader election
  • syncer: vcluster will now deploy coredns itself instead of k3s. This makes it possible to customize coredns deployment (e.g. for rootless mode) and support other kubernetes distributions besides k3s.
  • build: Removed file name from the sha256 files (thanks @developer-guy)
vcluster - v0.5.0-alpha.3

Published by FabianKramm almost 3 years ago

vcluster - v0.5.0-alpha.2

Published by FabianKramm almost 3 years ago

vcluster - v0.5.0-alpha.1

Published by FabianKramm almost 3 years ago

vcluster - v0.4.5

Published by FabianKramm almost 3 years ago

Changes

  • syncer: Fixed an issue where persistent volumes were not correctly synced if --fake-persistent-volumes=false
vcluster - v0.4.5-beta.0

Published by FabianKramm almost 3 years ago

Changes

  • syncer: Fixed an issue where persistent volumes were not correctly synced if --fake-persistent-volumes=false
vcluster - v0.4.4

Published by FabianKramm almost 3 years ago

Changes

  • syncer: Annotations are now merged with the host cluster annotations on objects instead of always overriding them.
  • syncer: New --set-owner flag that will figure out automatically the owning object of the vcluster pod and set that to the vcluster created objects (#181)
  • syncer: Deprecated the flag --owning-statefulset
  • syncer: vcluster now automatically adds the autoscaler annotation cluster-autoscaler.kubernetes.io/safe-to-evict for pods that are deployed with a deployment, replicaset or statefulset within the vcluster to signal autoscalers that it is safe to evict those pods.
  • cli: improve vcluster connect and make the command work without requiring a statefulset
vcluster - v0.4.4-beta.1

Published by FabianKramm almost 3 years ago

Changes

  • syncer: Annotations are now merged with the host cluster annotations on objects instead of always overriding them.
  • syncer: New --set-owner flag that will figure out automatically the owning object of the vcluster pod and set that to the vcluster created objects (#181)
  • syncer: Deprecated the flag --owning-statefulset
  • syncer: vcluster now automatically adds the autoscaler annotation cluster-autoscaler.kubernetes.io/safe-to-evict for pods that are deployed with a deployment, replicaset or statefulset within the vcluster to signal autoscalers that it is safe to evict those pods.
  • cli: improve vcluster connect and make the command work without requiring a statefulset
vcluster - v0.4.3

Published by FabianKramm almost 3 years ago

Changes

  • Fixed an issue where the hostname of pods created from a statefulset were wrong (thanks @moustafab)
vcluster - v0.4.2

Published by FabianKramm almost 3 years ago

Changes

  • cli: Updated k3s versions
  • cli: New --output flag in vcluster list (thanks @jzbruno)
  • cli: Use helm executable path for helm version in vcluster create (thanks @developer-guy)
  • cli: vcluster will now restart port-forwarding automatically if it loses connection to the pod
  • syncer: Rename the annotation vcluster.loft.sh/translate-pv to vcluster.loft.sh/skip-translate
vcluster - v0.4.2-beta.1

Published by FabianKramm almost 3 years ago

Changes

  • cli: Updated k3s versions
  • cli: New --output flag in vcluster list (thanks @jzbruno)
  • cli: Use helm executable path for helm version in vcluster create (thanks @developer-guy)
  • cli: vcluster will now restart port-forwarding automatically if it loses connection to the pod
  • syncer: Rename the annotation vcluster.loft.sh/translate-pv to vcluster.loft.sh/skip-translate
vcluster - v0.4.1

Published by FabianKramm about 3 years ago

Changes

  • cli: Improved waiting output of DevSpace running in a pipeline
  • cli: New flag --delete-namespace to delete the vcluster namespace in vcluster delete (#126)
  • syncer: Fixed an issue where issued service account tokens would fail the token review api
  • syncer: Replace pod host names that have a . with - (#131)
vcluster - v0.4.1-beta.0

Published by FabianKramm about 3 years ago

Changes

  • cli: Improved waiting output of DevSpace running in a pipeline
  • cli: New flag --delete-namespace to delete the vcluster namespace in vcluster delete (#126)
  • syncer: Fixed an issue where issued service account tokens would fail the token review api
  • syncer: Replace pod host names that have a . with - (#131)
vcluster - v0.4.0

Published by FabianKramm about 3 years ago

Support for Kubernetes v1.22

vcluster now officially supports Kubernetes v1.22 as host cluster.

Bi-Directional Sync for Persistent Volumes (#102)

vcluster does now support creating custom persistent volumes within vcluster that will be synced to the host cluster. This allows you to manage persistent volumes directly within a vcluster. Please take a look at the vcluster docs for more information.

Other Changes

  • syncer: Support added for ingress sync with version networking.k8s.io/v1. The old version networking.k8s.io/v1beta1 is still available and used if no v1 is supported in the host cluster (pre Kubernetes v1.19) (#64)
  • syncer: Fixed an issue where terminating pods wouldn't get cleaned up correctly if the service account was deleted beforehand (#119)
  • syncer: Fixed several instances where secret names where not correctly translated in volume definitions (#103)
  • cli: New --address flag for vcluster connect to start portforwarding with a specific address locally
  • cli: Updated k3s versions
  • cli: New --upgrade flag for vcluster create to disable automatic upgrading of a vcluster if it already exists
  • build: Fixed an issue where arm64 vcluster docker image contained amd64 binaries
vcluster - v0.4.0-beta.3

Published by FabianKramm about 3 years ago

Support for Kubernetes v1.22

vcluster now officially supports Kubernetes v1.22 as host cluster.

Bi-Directional Sync for Persistent Volumes (#102)

vcluster does now support creating custom persistent volumes within vcluster that will be synced to the host cluster. This allows you to manage persistent volumes directly within a vcluster. Please take a look at the vcluster docs for more information.

Other Changes

  • syncer: Support added for ingress sync with version networking.k8s.io/v1. The old version networking.k8s.io/v1beta1 is still available and used if no v1 is supported in the host cluster (pre Kubernetes v1.19) (#64)
  • syncer: Fixed an issue where terminating pods wouldn't get cleaned up correctly if the service account was deleted beforehand (#119)
  • syncer: Fixed several instances where secret names where not correctly translated in volume definitions (#103)
  • cli: New --address flag for vcluster connect to start portforwarding with a specific address locally
  • cli: Updated k3s versions
  • cli: New --upgrade flag for vcluster create to disable automatic upgrading of a vcluster if it already exists
  • build: Fixed an issue where arm64 vcluster docker image contained amd64 binaries
vcluster - v0.4.0-beta.2

Published by FabianKramm about 3 years ago

Support for Kubernetes v1.22

vcluster now officially supports Kubernetes v1.22 as host cluster. However, since k3s does not support it yet, you can only start vcluster on a host cluster with version v1.22, but not actually start vcluster with version v1.22 yet (we'll add that as soon as k3s gets released for v1.22).

Bi-Directional Sync for Persistent Volumes (#102)

vcluster does now support creating custom persistent volumes within vcluster that will be synced to the host cluster. This allows you to manage persistent volumes directly within a vcluster. Please take a look at the vcluster docs for more information.

Other Changes

  • syncer: Support added for ingress sync with version networking.k8s.io/v1. The old version networking.k8s.io/v1beta1 is still available and used if no v1 is supported in the host cluster (pre Kubernetes v1.19) (#64)
  • syncer: Fixed an issue where terminating pods wouldn't get cleaned up correctly if the service account was deleted beforehand (#119)
  • syncer: Fixed several instances where secret names where not correctly translated in volume definitions (#103)
  • cli: New --address flag for vcluster connect to start portforwarding with a specific address locally
  • cli: Updated k3s versions
vcluster - v0.4.0-beta.1

Published by FabianKramm about 3 years ago

vcluster - v0.3.3

Published by FabianKramm about 3 years ago

Changes

  • cli: New vcluster completion command to create bash & zsh completion scripts (#90) (thanks @mevech)
  • chart: set default requests & limits (#62)
Package Rankings
Top 1.89% on Proxy.golang.org
Badges
Extracted from project README
Join us on Slack! Open in DevPod!
Related Projects