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.yamlIMPORTANT: 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
Volumethat provides/tmpin yourTemplate, it will take precedence over theEmptyDircreated 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 existinguserdataSpecoption.
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.yamlv0.3.0
This release does not contain any major API changes, however enough internals have changed to justify a point release.
- The
kvdi-proxyhas 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
TemplatesAPI. 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: minimalUnfortunately, 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-v3migration wherePrometheusinstances could not be created when requested. - Removes the use of
setTimeout()for refreshing access tokens, in favor ofaxiosand 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-sdkdependency has been removed and the codebase has been migrated tokubebuilder-v3.- The
v1alpha1API has been removed in favor of newv1APIs. Functionality remains mostly the same as previous versions.kvdi.io/v1alpha1/VDIClusterhas been moved toapp.kvdi.io/v1/VDIClusterkvdi.io/v1alpha1/VDIRolehas been moved torbac.kvdi.io/v1/VDIRolekvdi.io/v1alpha1/DesktopTemplatehas 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/Desktophas 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.
Templatesnow 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
VDIClusterconfiguration. - The default
initforTemplatesis nowsystemd. - You can now override the default
pulseServerinTemplates. - The
xprasocketTypehas 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
dosboxtemplate. 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-gstbindings for audio updated to latest version.- Additional methods of installation besides
helmand thearchitectscript are now available.