Skip to content

Commit b794da9

Browse files
committed
prep v0.3.1 release
1 parent c4d5801 commit b794da9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1113
-61
lines changed

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ build-kvdictl:
129129
cd cmd/kvdictl && \
130130
go build -ldflags=$(LDFLAGS) -o $(GOBIN)/kvdictl .
131131

132+
kvdictl-docs:
133+
go run hack/gen-kvdictl-docs.go
134+
132135
GOX ?= $(GOBIN)/gox
133136
$(GOX):
134137
GO111MODULE=off go get github.com/mitchellh/gox
@@ -423,4 +426,4 @@ check-release:
423426
echo "You must specify a VERSION for release" ; exit 1 ; \
424427
fi
425428

426-
prep-release: check-release generate manifests helm-chart api-docs helm-docs package-chart package-index
429+
prep-release: check-release generate manifests helm-chart api-docs helm-docs kvdictl-docs package-chart package-index

README.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ _Except as I've continued to work on this, I've noticed this is really just a fr
1515
This project has reached a point where I am not going to be making enormous changes all the time anymore. As such I am tagging a "stable" release and incrementing from there.
1616
That still doesn't mean I highly recommend it's usage, but rather I am relatively confident in its overall stability.
1717

18-
This also means I won't be doing any major refactoring in the near future. So, if you were considering a pull request, I'm not as likely to be making all your work irrelevant.
19-
If I end up doing more refactoring, I'll work on branches and update documentation on `main` to reflect the work-in-progress.
20-
2118
- [API Reference](doc/appv1.md)
2219
- [RBAC Reference](doc/rbacv1.md)
2320
- [Templates Reference](doc/desktopsv1.md)
@@ -27,6 +24,7 @@ If I end up doing more refactoring, I'll work on branches and update documentati
2724
- [Helm](#helm)
2825
- [Bundle](#bundle-manifest)
2926
- [Kustomize](#kustomize)
27+
- [CLI](#doc/kvdictl/kvdictl.md)
3028
- [Upgrading](#Upgrading)
3129
- [Building Desktop Images](build/desktops/README.md)
3230
- [Security](#security)
@@ -54,11 +52,10 @@ I wrote up a [`CONTRIBUTING`](CONTRIBUTING.md) doc just outlining some of the st
5452
- Use built-in local authentication, LDAP, or OpenID.
5553

5654
- App metrics to either scrape externally or view in the UI. More details in the `helm` doc.
57-
5855
### TODO
5956

6057
- "App Profiles" - I have a POC implementation on `main` but it is still pretty buggy
61-
- DOSBox/Game profiles could be cool...
58+
- DOSBox/Game profiles could be cool...same as "App Profiles"
6259
- UI could use a serious makeover from someone who actually knows what they are doing
6360

6461
## Requirements

config/manager/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ kind: Kustomization
1313
images:
1414
- name: controller
1515
newName: ghcr.io/tinyzimmer/kvdi
16-
newTag: manager-v0.3.0
16+
newTag: manager-v0.3.1

deploy/bundle.yaml

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ spec:
475475
description: Arbitrary tags for displaying in the app UI.
476476
type: object
477477
volumes:
478-
description: Additional volumes to attach to pods booted from this template. To mount them there must be cooresponding `volumeMounts` or `volumeDevices` specified.
478+
description: Additional volumes to attach to pods booted from this template. To mount them there must be corresponding `volumeMounts` or `volumeDevices` specified.
479479
items:
480480
description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
481481
properties:
@@ -1378,14 +1378,9 @@ spec:
13781378
type: object
13791379
type: array
13801380
type: object
1381-
status:
1382-
description: TemplateStatus defines the observed state of Template
1383-
type: object
13841381
type: object
13851382
served: true
13861383
storage: true
1387-
subresources:
1388-
status: {}
13891384
status:
13901385
acceptedNames:
13911386
kind: ""
@@ -1735,8 +1730,18 @@ spec:
17351730
type: string
17361731
type: object
17371732
type: object
1733+
userdataSelector:
1734+
description: A configuration for selecting pre-existing PVCs to use as the $HOME directory for sessions. This configuration takes precedence over `userdataSpec`.
1735+
properties:
1736+
matchLabel:
1737+
description: MatchLabel is a label **key** to use to select a PVC for the user. The value will in the selector will be the name of the user launching the session. Use this if your usernames may not always be DNS compliant.
1738+
type: string
1739+
matchName:
1740+
description: MatchName is a pattern to match for the name of the PVC. The string ${USERNAME} will be replaced in the pattern with the actual username when searching for the volume. Note, this will only work if usernames are DNS compliant.
1741+
type: string
1742+
type: object
17381743
userdataSpec:
1739-
description: The configuration for user volumes. **NOTE:** Even though the controller will try to force the reclaim policy on created volumes to `Retain`, you may want to set it explicitly on your storage-class controller as an extra safeguard.
1744+
description: "The configuration for user $HOME volumes to be managed by kVDI. \n **NOTE:** Even though the controller will try to force the reclaim policy on created volumes to `Retain`, you may want to set it explicitly on your storage-class controller as an extra safeguard."
17401745
properties:
17411746
accessModes:
17421747
description: 'AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
@@ -2404,7 +2409,7 @@ spec:
24042409
description: Arbitrary tags for displaying in the app UI.
24052410
type: object
24062411
volumes:
2407-
description: Additional volumes to attach to pods booted from this template. To mount them there must be cooresponding `volumeMounts` or `volumeDevices` specified.
2412+
description: Additional volumes to attach to pods booted from this template. To mount them there must be corresponding `volumeMounts` or `volumeDevices` specified.
24082413
items:
24092414
description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
24102415
properties:
@@ -3307,14 +3312,9 @@ spec:
33073312
type: object
33083313
type: array
33093314
type: object
3310-
status:
3311-
description: TemplateStatus defines the observed state of Template
3312-
type: object
33133315
type: object
33143316
served: true
33153317
storage: true
3316-
subresources:
3317-
status: {}
33183318
status:
33193319
acceptedNames:
33203320
kind: ""
@@ -3664,8 +3664,18 @@ spec:
36643664
type: string
36653665
type: object
36663666
type: object
3667+
userdataSelector:
3668+
description: A configuration for selecting pre-existing PVCs to use as the $HOME directory for sessions. This configuration takes precedence over `userdataSpec`.
3669+
properties:
3670+
matchLabel:
3671+
description: MatchLabel is a label **key** to use to select a PVC for the user. The value will in the selector will be the name of the user launching the session. Use this if your usernames may not always be DNS compliant.
3672+
type: string
3673+
matchName:
3674+
description: MatchName is a pattern to match for the name of the PVC. The string ${USERNAME} will be replaced in the pattern with the actual username when searching for the volume. Note, this will only work if usernames are DNS compliant.
3675+
type: string
3676+
type: object
36673677
userdataSpec:
3668-
description: The configuration for user volumes. **NOTE:** Even though the controller will try to force the reclaim policy on created volumes to `Retain`, you may want to set it explicitly on your storage-class controller as an extra safeguard.
3678+
description: "The configuration for user $HOME volumes to be managed by kVDI. \n **NOTE:** Even though the controller will try to force the reclaim policy on created volumes to `Retain`, you may want to set it explicitly on your storage-class controller as an extra safeguard."
36693679
properties:
36703680
accessModes:
36713681
description: 'AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
@@ -4180,7 +4190,7 @@ spec:
41804190
- --leader-elect
41814191
command:
41824192
- /manager
4183-
image: ghcr.io/tinyzimmer/kvdi:manager-v0.3.0
4193+
image: ghcr.io/tinyzimmer/kvdi:manager-v0.3.1
41844194
livenessProbe:
41854195
httpGet:
41864196
path: /healthz

deploy/charts/index.yaml

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
apiVersion: v1
22
entries:
33
kvdi:
4+
- apiVersion: v2
5+
appVersion: v0.3.1
6+
created: "2021-02-27T18:00:39.7319758+02:00"
7+
description: A Kubernetes-Native Virtual Desktop Infrastructure
8+
digest: 118ce0338cc036de90c81a01572a91f622093b131321c3f75e92b24d8aeed164
9+
name: kvdi
10+
type: application
11+
urls:
12+
- kvdi-v0.3.1.tgz
13+
version: v0.3.1
414
- apiVersion: v2
515
appVersion: v0.3.0
6-
created: "2021-02-26T12:00:07.5225496+02:00"
16+
created: "2021-02-27T18:00:39.730376+02:00"
717
description: A Kubernetes-Native Virtual Desktop Infrastructure
818
digest: 4b0620db91f21777ab9389574e95aa4a3ab812be7382727ddd94c7e81a3e7de7
919
name: kvdi
@@ -13,7 +23,7 @@ entries:
1323
version: v0.3.0
1424
- apiVersion: v2
1525
appVersion: v0.2.2
16-
created: "2021-02-26T12:00:07.5211082+02:00"
26+
created: "2021-02-27T18:00:39.7274889+02:00"
1727
description: A Kubernetes-Native Virtual Desktop Infrastructure
1828
digest: 426e46b70297154030266abf2d832838c0d00c58a0b3390e78281400cea961fa
1929
name: kvdi
@@ -23,7 +33,7 @@ entries:
2333
version: v0.2.2
2434
- apiVersion: v2
2535
appVersion: v0.2.1
26-
created: "2021-02-26T12:00:07.5189186+02:00"
36+
created: "2021-02-27T18:00:39.725236+02:00"
2737
description: A Kubernetes-Native Virtual Desktop Infrastructure
2838
digest: 29af60d73698d30af6253b7d8317904a66f4de6378a16ac287d3c5905035be65
2939
name: kvdi
@@ -33,7 +43,7 @@ entries:
3343
version: v0.2.1
3444
- apiVersion: v2
3545
appVersion: v0.2.0
36-
created: "2021-02-26T12:00:07.5165255+02:00"
46+
created: "2021-02-27T18:00:39.7237753+02:00"
3747
description: A Kubernetes-Native Virtual Desktop Infrastructure
3848
digest: f50123e34bc62e2954da3ff2ae747f7d82c250cef5c53cf25d9dd163b542ef77
3949
name: kvdi
@@ -43,7 +53,7 @@ entries:
4353
version: v0.2.0
4454
- apiVersion: v2
4555
appVersion: v0.1.4
46-
created: "2021-02-26T12:00:07.5151287+02:00"
56+
created: "2021-02-27T18:00:39.7223624+02:00"
4757
description: A Kubernetes-Native Virtual Desktop Infrastructure
4858
digest: 4dd6ffd2bb17689d042782056e7f90bb8bb1ad403a9dc4a9de340329f4d70322
4959
name: kvdi
@@ -53,7 +63,7 @@ entries:
5363
version: v0.1.4
5464
- apiVersion: v2
5565
appVersion: v0.1.3
56-
created: "2021-02-26T12:00:07.5134941+02:00"
66+
created: "2021-02-27T18:00:39.7201961+02:00"
5767
description: A Kubernetes-Native Virtual Desktop Infrastructure
5868
digest: f2b9302e26762c49ed0ad53835b2c190e6c7d0722c8497f46f1c2080fd5b0576
5969
name: kvdi
@@ -63,7 +73,7 @@ entries:
6373
version: v0.1.3
6474
- apiVersion: v2
6575
appVersion: v0.1.2
66-
created: "2021-02-26T12:00:07.5126139+02:00"
76+
created: "2021-02-27T18:00:39.7192527+02:00"
6777
description: A Kubernetes-Native Virtual Desktop Infrastructure
6878
digest: 369e83caa627379ba04bf79471da18e0ebca85ec527fc13729eb7bb733f502ef
6979
name: kvdi
@@ -73,7 +83,7 @@ entries:
7383
version: v0.1.2
7484
- apiVersion: v2
7585
appVersion: v0.1.1
76-
created: "2021-02-26T12:00:07.5117496+02:00"
86+
created: "2021-02-27T18:00:39.7182964+02:00"
7787
description: A Kubernetes-Native Virtual Desktop Infrastructure
7888
digest: 13667a42c4be002e2980ca0625bb4a7399b171ee73a1f0fe1a3c4de7bdc377ba
7989
name: kvdi
@@ -83,12 +93,12 @@ entries:
8393
version: v0.1.1
8494
- apiVersion: v2
8595
appVersion: v0.1.0
86-
created: "2021-02-26T12:00:07.5096974+02:00"
96+
created: "2021-02-27T18:00:39.7172789+02:00"
8797
description: A Kubernetes-Native Virtual Desktop Infrastructure
8898
digest: 75b553c4fea1303767743944a8e470f6d56784b85f8a0698edc5e786fc3c05ac
8999
name: kvdi
90100
type: application
91101
urls:
92102
- kvdi-v0.1.0.tgz
93103
version: v0.1.0
94-
generated: "2021-02-26T12:00:07.5084579+02:00"
104+
generated: "2021-02-27T18:00:39.714637+02:00"

deploy/charts/kvdi-v0.3.1.tgz

31.4 KB
Binary file not shown.

deploy/charts/kvdi/crds/app.kvdi.io_vdiclusters.yaml

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -488,11 +488,30 @@ spec:
488488
type: string
489489
type: object
490490
type: object
491+
userdataSelector:
492+
description: A configuration for selecting pre-existing PVCs to use
493+
as the $HOME directory for sessions. This configuration takes precedence
494+
over `userdataSpec`.
495+
properties:
496+
matchLabel:
497+
description: MatchLabel is a label **key** to use to select a
498+
PVC for the user. The value will in the selector will be the
499+
name of the user launching the session. Use this if your usernames
500+
may not always be DNS compliant.
501+
type: string
502+
matchName:
503+
description: MatchName is a pattern to match for the name of the
504+
PVC. The string ${USERNAME} will be replaced in the pattern
505+
with the actual username when searching for the volume. Note,
506+
this will only work if usernames are DNS compliant.
507+
type: string
508+
type: object
491509
userdataSpec:
492-
description: The configuration for user volumes. **NOTE:** Even though
493-
the controller will try to force the reclaim policy on created volumes
494-
to `Retain`, you may want to set it explicitly on your storage-class
495-
controller as an extra safeguard.
510+
description: "The configuration for user $HOME volumes to be managed
511+
by kVDI. \n **NOTE:** Even though the controller will try to force
512+
the reclaim policy on created volumes to `Retain`, you may want
513+
to set it explicitly on your storage-class controller as an extra
514+
safeguard."
496515
properties:
497516
accessModes:
498517
description: 'AccessModes contains the desired access modes the

deploy/charts/kvdi/crds/desktops.kvdi.io_templates.yaml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ spec:
542542
type: object
543543
volumes:
544544
description: Additional volumes to attach to pods booted from this
545-
template. To mount them there must be cooresponding `volumeMounts`
545+
template. To mount them there must be corresponding `volumeMounts`
546546
or `volumeDevices` specified.
547547
items:
548548
description: Volume represents a named volume in a pod that may
@@ -1974,14 +1974,9 @@ spec:
19741974
type: object
19751975
type: array
19761976
type: object
1977-
status:
1978-
description: TemplateStatus defines the observed state of Template
1979-
type: object
19801977
type: object
19811978
served: true
19821979
storage: true
1983-
subresources:
1984-
status: {}
19851980
status:
19861981
acceptedNames:
19871982
kind: ""

0 commit comments

Comments
 (0)