Releases: webmeshproj/webmesh-vdi
v0.3.6
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
This release contains a handful of security updates to the frontend and backend dependencies
v0.3.4
Make all images in helm chart configurable and bundle logo in distrib…
v0.3.3
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
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
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 yourTemplate
, it will take precedence over theEmptyDir
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 existinguserdataSpec
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
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
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
This release contains a small backend bugfix and some major UI plumbing fixes.
- Fixes a bug from the
kubebuilder-v3
migration wherePrometheus
instances could not be created when requested. - Removes the use of
setTimeout()
for refreshing access tokens, in favor ofaxios
and websocket interceptors handling refreshes when needed. - Communicate token refreshes to instances of kvdi running in multiple browser tabs/windows
v0.2.0
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 tokubebuilder-v3
.- The
v1alpha1
API has been removed in favor of newv1
APIs. Functionality remains mostly the same as previous versions.kvdi.io/v1alpha1/VDICluster
has been moved toapp.kvdi.io/v1/VDICluster
kvdi.io/v1alpha1/VDIRole
has been moved torbac.kvdi.io/v1/VDIRole
kvdi.io/v1alpha1/DesktopTemplate
has been moved todesktops.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 todesktops.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 sessionsenvTemplates
: 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
forTemplates
is nowsystemd
. - You can now override the default
pulseServer
inTemplates
. - 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 thearchitect
script are now available.