46 Commits

Author SHA1 Message Date
Wouter Verlaek
c5ba13cdf2
[ws-daemon] Take backup once container has stopped (#19411) 2024-02-09 17:02:51 +02:00
Wouter Verlaek
1d68d002d5
[ws-daemon] Fix workspace location for log backup (#18401)
* [ws-daemon] Fix workspace location for log backup

* Update integration test to check for uploaded logs
2023-08-02 17:36:27 +08:00
Wouter Verlaek
cbc8b38a91
[ws-daemon] Add OWI to logs (#18017) 2023-06-22 21:44:12 +08:00
Thomas Schubart
20164cbb4a
[wsman-mk2] Simplify condition checking (#17961) 2023-06-17 22:59:07 +08:00
Thomas Schubart
c4f9a428aa
[ws-manager-mk2] Simplify workspace session management (#17924)
* [ws-daemon] Simplify session management

* [ws-daemon] Remove duplicated code

* [ws-daemon] Fix names for tracing
2023-06-15 19:12:06 +08:00
Thomas Schubart
2cab1406dd
[ws-manager-mk2] Remove persistent volume claim feature (#17860)
* [ws-daemon] Remove PVC

* [installer] Remove PVC

* [workspacekit] Remove PVC

* [content] Remove PVC

* [preview] Remove PVC

* [wsman-api] Remove PVC

* [ws-daemon-api] Remove PVC

* [workspacekit] Mount workspace directory

* [supervisor] Remove PVC

* [test] Remove PVC

* Fix build
2023-06-13 18:35:04 +08:00
Thomas Schubart
fe08421325
[ws-daemon] Remove full workspace backup (#17803) 2023-06-01 17:36:06 +08:00
Thomas Schubart
588d2919de
[ws-manager-mk2] Remove workspace service (#17801)
* [ws-daemon] Remove workspace service

* [ws-daemon] Move metrics
2023-05-31 23:08:06 +08:00
Thomas Schubart
4dadd7be61
[ws-manager-mk2] Ensure restarting ws-daemon does not break running workspaces (#17711)
* [ws-daemon] Ensure backup can be taken

* [wskit] Retry mount call

* [ws-daemon] Ensure hard storage quota is applied

* [ws-daemon] Replace map with sync.Map
2023-05-25 20:46:59 +08:00
Kyle Brennan
1a7c50a8b5
[ws-manager-mk2] support storage quotas (#17606)
* [ws-manager-mk2] add support for storage quotas

This way, on workspace create, `ws-daemon` can set XFS limits for `/workspace`

* [preview] set smaller /workspace limits

This way we don't have to spend more on preview environments.

* [ws-daemon] warn when xfs is missing

* Partial revert of "Revert "[ws-daemon] Restart IWS if ws-daemon is restarted (#17552)" (#17645)"

This reverts commit e082b7f48885199013df927d3c71c62935f74047.

It avoids reverts on notify.go and workspace_provider.go.

* [ws-daemon] log when handling running workspaces

* [test] add test for xfs quotas
2023-05-19 20:49:53 +08:00
Wouter Verlaek
09981c4661
[ws-daemon] Log backup failure error (#17655) 2023-05-17 22:39:51 +08:00
Wouter Verlaek
e082b7f488
Revert "[ws-daemon] Restart IWS if ws-daemon is restarted (#17552)" (#17645)
This reverts commit b84404abd559b4f14556b2ce94c76ab7b0c2bac3.
2023-05-17 18:10:51 +08:00
Thomas Schubart
b84404abd5
[ws-daemon] Restart IWS if ws-daemon is restarted (#17552)
* [ws-daemon] Restart IWS if ws-daemon is restarted

* [workspacekit] Back-off IWS interaction

* Post rebase fix

---------

Co-authored-by: csweichel <chris@gitpod.io>
2023-05-17 05:00:02 +08:00
Manuel Alejandro de Brito Fontes
4eff2355c1
Without RequeueAfter the concurrent reconciles will process immediately (#17567)
* Without RequeueAfter the concurrent reconciles will process immediately

* Fix metric test listening address collision
2023-05-11 22:11:56 +08:00
Thomas Schubart
b262fa428d
[ws-manager-mk2] Test automation for ws-daemon (#17502)
* [ws-daemon] Generate mocks

* [ws-daemon] Add tests

* [ws-daemon] Remove unused constant

* [ws-daemon] Find CRDs during leeway build

* Delete symlink

* Add dummy file

* [installer] Update go.mod
2023-05-10 17:59:55 +08:00
Thomas Schubart
81a6623ac3
[wsman-mk2] Ensure stop reason is logged (#17517) 2023-05-05 23:21:43 +08:00
Thomas Schubart
f78093f858
[wsman-mk2] Log reconcilliations (#17434) 2023-05-01 16:00:39 +08:00
Wouter Verlaek
c1e627a66f
[ws-manager-mk2] Improve reconcile err logging (#17419)
* [ws-manager-mk2] Improve reconcile err logging

* Update StopWorkspace err log

* Fix errors
2023-04-28 14:56:36 +08:00
Wouter Verlaek
2d4f94634c
[ws-manager-mk2] Fix git status (#17097)
* [ws-manager-mk2] Fix git status

* Remove unused var
2023-04-03 11:03:43 +02:00
Wouter Verlaek
c828d4176c
[ws-manager-mk2] Remember existing workspaces after a restart (#17066) 2023-03-29 20:43:39 +02:00
Thomas Schubart
d6cb9d1885
[ws-daemon] Refactor workspace operations (#17069) 2023-03-29 11:07:39 +02:00
Wouter Verlaek
c14a25cfdf
[ws-manager-mk2] Report content init/dispose failures (#17015) 2023-03-27 17:22:25 +02:00
Thomas Schubart
8871aed078
[wsman-mk2] Garbage collection for mk2 workspaces (#17021) 2023-03-24 18:18:16 +01:00
Thomas Schubart
b84a256400
[wsman-mk2] Ensure content init can be restarted (#17002) 2023-03-24 14:41:16 +01:00
Thomas Schubart
2cfe264c12
(wsman-mk2] Prevent partial backups (#16997) 2023-03-24 11:50:16 +01:00
Thomas Schubart
c64c4f3530
[ws-manager-mk2] Rely on controller concurrency mechanism for content init and backup (#16823)
* [wsman-mk2] Replace in memory state handling

* [ws-daemon] Operate on latest workspace CR

* [ws-daemon] Review comments
2023-03-23 16:31:17 +01:00
Thomas Schubart
42a3602fce
[ws-manager-mk2] Emit events for workspaces and snapshots (#16907)
* [wsman-mk2] Emit workspace events

* [installer] Permissions for events

* [ws-man-mk2] Emit snapshot events

* [installer] Update render tests

* [wsman-mk2] Include review comments
2023-03-20 13:59:12 +01:00
Wouter Verlaek
95158eba38
[ws-manager-mk2] Don't dispose image builds (#16902) 2023-03-20 11:34:12 +01:00
Thomas Schubart
ace513ad7e
[ws-manager-mk2] Refactor workspace status conditions (#16896)
* [wsman-mk2] Refactor conditions

* [wsman-mk2] Specify reason
2023-03-20 11:10:12 +01:00
Thomas Schubart
c800175c72
[ws-manager-mk2] Protect tokens (#16806)
* [wsman-mk2] Create token secret

* [installer] Fix casing for namespace type metadata

* [installer] Create secrets namespace

* [installer] Configure roles and bindings

* [installer] Move namespace constant to common pkg

* [installer] Create permissions for ws-daemon

* [wsman-mk2] Watch on multiple ns

* [ws-daemon] Use token secret

* [wsman-mk2] Remove secret from initializer

* [wsman-mk2] Test token secret

* [werft] Fix document index

* [installer] Update render tests

* [wsman-mk2] Fix imports

* [wsman-mk2] Ensure maintenance controller required permissions

* [wsman-mk2] Retry deleting secret

* [installer] Ensure objects in secrets namespace are only created with mk2 option
2023-03-15 12:57:07 +01:00
Thomas Schubart
040ab4de13
[ws-manager-mk2] Fix prebuild update events (#16688)
* [wsman-mk2] Change snapshot name for prebuilds

* [ws-manager-mk2] Return false instead of empty bool

* [ws-daemon] Update snapshot url while in stopping phase
2023-03-07 14:34:04 +01:00
Wouter Verlaek
1631a4a038
[ws-manager-mk2] Loadgen fixes, concurrent reconciliation (#16613)
* [ws-manager-mk2] Loadgen fixes, concurrent reconciliation

* [ws-manager-mk2] Update tests with content readiness

* Simplify content ready check

* Fix json tags

* Revert poll interval
2023-03-06 15:18:04 +01:00
Thomas Schubart
12f3c91599
[ws-manager-mk2] Ensure workspace enters stopped (#16479) 2023-02-27 11:45:57 +01:00
Wouter Verlaek
df3e15a1d4
[ws-manager-mk2] Remove headless from status (#16530) 2023-02-23 17:36:53 +01:00
Thomas Schubart
116a5b97b2
[ws-manager-mk2] Support workspace snapshots (#16471)
* [ws-manager-mk2] Scaffold snapshot CRD

* [ws-mangaer-mk2] Generate snapshot type

* [ws-manger-mk2] Provide snapshot endpoint

* [ws-daemon] Handle snapshots

* [ws-manager-mk2] Harmonize imports

* [ws-manger-mk2] Set owner reference

* [installer] Install snapshot CRD

* [ws-manager-api] Fix descriptions

* [ws-manager-mk2] Review comments

- Name controller
- Return early in case of error
- Reduce scope of permissions
2023-02-23 16:45:53 +01:00
Wouter Verlaek
7440f00796
[ws-manager-mk2] Add Grafana dashboard (#16455)
* [ws-manager-mk2] Add Grafana dashboard

* [ws-manager-mk2] Add reconciliations by controller panel
2023-02-23 00:19:52 +01:00
Wouter Verlaek
eece193bef [ws-manager-mk2] Fix stuck on init/dispose failure 2023-02-15 10:52:19 +01:00
Wouter Verlaek
e62c773362 [ws-manager-mk2] Aborted condition, grace period 2023-02-14 12:04:19 +01:00
Thomas Schubart
382bde1767 [ws-manager-mk2] Switch to lru cache 2023-01-30 23:22:38 +01:00
Thomas Schubart
456e76bad7 [ws-daemon] Add metrics 2023-01-30 23:22:38 +01:00
Thomas Schubart
81e0623e0f [ws-daemon] Review comments
- Reuse workspace
- Update metric name
- Check if backup timed out
- Ensure temp directory is deleted
2023-01-30 14:59:37 +01:00
Thomas Schubart
9d2cba620d [ws-daemon] Filter notifications 2023-01-30 14:59:37 +01:00
Thomas Schubart
f1454d3994 [ws-daemon] Only handle k8s operations in controller 2023-01-30 14:59:37 +01:00
Thomas Schubart
75be62fba0 [ws-daemon] Dispose workspace 2023-01-30 14:59:37 +01:00
Thomas Schubart
cb6fc74429 [ws-daemon] Do not hide errors 2023-01-23 14:14:30 +01:00
Christian Weichel
572fcbb008 [ws-daemon] Start workspace controller based content init 2023-01-23 14:14:30 +01:00