Skip to content

Releases: webmeshproj/webmesh-vdi

v0.3.6

24 Oct 15:31
00f33f4
Compare
Choose a tag to compare

This release adds a userdataSpec.retainPVCs boolean field to the VDICluster spec that when enabled, will retain user PVCs across sessions. See #53 for more information.

Since the CRDs have been updated you will need to apply them manually if upgrading an existing installation. For example:

export KVDI_VERSION=v0.3.6

kubectl apply \
  -f https://github.com/kvdi/kvdi/raw/${KVDI_VERSION}/config/crd/bases/app.kvdi.io_vdiclusters.yaml \
  -f https://github.com/kvdi/kvdi/raw/${KVDI_VERSION}/config/crd/bases/desktops.kvdi.io_sessions.yaml \
  -f https://github.com/kvdi/kvdi/raw/${KVDI_VERSION}/config/crd/bases/desktops.kvdi.io_templates.yaml \
  -f https://github.com/kvdi/kvdi/raw/${KVDI_VERSION}/config/crd/bases/rbac.kvdi.io_vdiroles.yaml

IMPORTANT: This is the first helm chart release only published to the new helm-charts repo. See the top of the README for more information. (This is technically the second move, but the first one was just a redirection).

There have also been updates to go and application dependencies.

v0.3.5

14 Aug 19:41
136b7fa
Compare
Choose a tag to compare

This release contains a handful of security updates to the frontend and backend dependencies

v0.3.4

05 Mar 14:08
312d8a6
Compare
Choose a tag to compare
Make all images in helm chart configurable and bundle logo in distrib…

v0.3.3

03 Mar 06:06
7fe9b5c
Compare
Choose a tag to compare

This release does not contain any new features or bugfixes. It is meant as a verification that the repository migration went smoothly.

v0.3.2

28 Feb 17:45
e4de726
Compare
Choose a tag to compare

This release contains a bugfix for the UI when leaving a session in a tab and trying to reconnect in a new window or tab.

Also a couple new commands have been added to the CLI. Most notably, the ability to proxy the display or audio stream for a desktop session to your local machine. See the CLI docs for more info.

v0.3.1

27 Feb 16:08
b794da9
Compare
Choose a tag to compare

This release contains a couple new features to desktop sessions and the first release of the kvdictl command-line utility. The CLI was really a "why not" sort of thing, but it could prove useful for automated management. In the future it might be extended to offer a debug command that can gather a complete debug dump of the environment to provide with issues (version, logs, configurations, etc.). As of now, it can already be used for just about all of that (and more) except for logs which you can still grab with kubectl or wherever else you ship your Kubernetes logs.

In regards to desktop sessions:

  • If you specify a Volume that provides /tmp in your Template, it will take precedence over the EmptyDir created automatically.
  • A new configuration option is available for the cluster configuration called userdataSelector. See the docs for more information, but essentially this allows you to use pre-existing PVCs for user home directories. This serves as an alternative to the existing userdataSpec option.

Since this release contains changes to the CRD (non-breaking from the previous version), you'll need to update those separately from helm (or however else you installed kvdi).

export KVDI_VERSION=v0.3.1

kubectl apply \
  -f https://raw.githubusercontent.com/tinyzimmer/kvdi/${KVDI_VERSION}/deploy/charts/kvdi/crds/app.kvdi.io_vdiclusters.yaml \
  -f https://raw.githubusercontent.com/tinyzimmer/kvdi/${KVDI_VERSION}/deploy/charts/kvdi/crds/desktops.kvdi.io_sessions.yaml \
  -f https://raw.githubusercontent.com/tinyzimmer/kvdi/${KVDI_VERSION}/deploy/charts/kvdi/crds/desktops.kvdi.io_templates.yaml \
  -f https://raw.githubusercontent.com/tinyzimmer/kvdi/${KVDI_VERSION}/deploy/charts/kvdi/crds/rbac.kvdi.io_vdiroles.yaml

v0.3.0

26 Feb 10:06
b8e35d4
Compare
Choose a tag to compare

This release does not contain any major API changes, however enough internals have changed to justify a point release.

  • The kvdi-proxy has been rewritten as a more lightweight TCP/TLS server (instead of a HTTPS/Websocket server). Until now, the proxy has not undergone many changes, and the images have been largely backwards compatible. However, due to this shift, older versions of kvdi will not work with this proxy.
  • A lot of UI plumbing and minor bug fixes
  • I've started a CLI client for kvdi called kvdictl. It is not complete, but the goal is to have it serve as a useful utility for quick operations or gathering debugging information. When it is more finished I'll begin publishing binaries alongside releases.
  • Very very experimental QEMU support is available via the Templates API. A lot of things don't work still (most notably, dynamic display resizing), and the SPICE support does not work at all yet (but VNC does). But there is enough of it there to make it available so people can at least start to play with it if they want.

v0.2.2

12 Feb 15:27
5c7ac98
Compare
Choose a tag to compare

This release contains a long overdue restructure of the Templates API. Refer to the examples and API Reference for the new structure.

I've also added experimental support for running docker inside desktop sessions. This utilizes one of the additions to the Templates API:

apiVersion: desktops.kvdi.io/v1
kind: Template
metadata:
  name: ubuntu-xfce
spec:
  desktop:
    image: ghcr.io/tinyzimmer/kvdi:ubuntu-xfce4-latest
    imagePullPolicy: IfNotPresent
    allowRoot: true
  proxy:
    allowFileTransfer: true
  # When defined a dind sidecar is run and the client binaries are copied into the desktop container
  # at /usr/local/docker/bin
  dind: 
    image: "docker:19-dind" # Defaults to latest which may have issues depending on your runtime
  tags:
    os: ubuntu
    desktop: xfce4
    applications: minimal

Unfortunately, rootless is not supported at the moment, neither for the client or the daemon. Inside the desktop instance you will have to use sudo.

If using helm, you will need to update the Template CRD manually after upgrade.

export KVDI_VERSION=v0.2.2

kubectl apply \
  -f https://raw.githubusercontent.com/tinyzimmer/kvdi/${KVDI_VERSION}/deploy/charts/kvdi/crds/desktops.kvdi.io_templates.yaml

v0.2.1

10 Feb 20:11
eab909e
Compare
Choose a tag to compare

This release contains a small backend bugfix and some major UI plumbing fixes.

  • Fixes a bug from the kubebuilder-v3 migration where Prometheus instances could not be created when requested.
  • Removes the use of setTimeout() for refreshing access tokens, in favor of axios and websocket interceptors handling refreshes when needed.
  • Communicate token refreshes to instances of kvdi running in multiple browser tabs/windows

v0.2.0

10 Feb 05:46
0b5314f
Compare
Choose a tag to compare

This is the first "major" release of kvdi. The APIs have all been brought out of v1alpha1 and will be kept mostly backwards compatible going forward. As such, upgrades directly from previous versions to this one are unsupported. It isn't impossible, there is just no clean-cut automated way to do it. If you are in a situation where you have a bunch of persistence in use that you want to keep, reach out in an Issue and I can try to help you through the process.

The release contains the following changes from previous versions:

  • operator-sdk dependency has been removed and the codebase has been migrated to kubebuilder-v3.
  • The v1alpha1 API has been removed in favor of new v1 APIs. Functionality remains mostly the same as previous versions.
    • kvdi.io/v1alpha1/VDICluster has been moved to app.kvdi.io/v1/VDICluster
    • kvdi.io/v1alpha1/VDIRole has been moved to rbac.kvdi.io/v1/VDIRole
    • kvdi.io/v1alpha1/DesktopTemplate has been moved to desktops.kvdi.io/v1/Template
      • This API is most likely to continue to undergo potentially breaking changes in the near future
    • kvdi.io/v1alpha1/Desktop has been moved to desktops.kvdi.io/v1/Session
  • #19 Auth providers are now able to store additional data in the user JWT. This allows for mapping user secrets in desktop sessions. Currently only applies to the OIDC Provider. See the documentation for more information and security disclaimers.
  • Templates now allow for two new configurations:
    • env: Arbitrary static environment variables for desktop sessions
    • envTemplates: Environment variables to be populated with user information during desktop sessions (to be used with the new feature above)
  • RBAC now supports providing users access to ServiceAccounts in specific namespaces when launching Sessions.
  • You can now configure the maximum number of sessions per user in the VDICluster configuration.
  • The default init for Templates is now systemd.
  • You can now override the default pulseServer in Templates.
  • The xpra socketType has been removed (this was being used for app-profile testing).
  • Convert app-profile base to use supervisord. This is still a WIP.
  • Provide a base dosbox template. This is confirmed working (with audio as well), but is still a WIP. Mainly, I'd like to explore new CRDs for both dosbox and app-profiles.
  • go-gst bindings for audio updated to latest version.
  • Additional methods of installation besides helm and the architect script are now available.