164 Commits

Author SHA1 Message Date
Thomas Schubart
e4688a23a7
[ws-manager-mk2] Configure max workspace lifetime (#17767)
* [wsman-api] Add maximum lifetime to workspace request

* [wsman-api] Add maximum lifetime to workspace CRD

* [wsman] Set maximum lifetime during workspace start

* [wsman] Check custom max lifetime

* [wsman-api] Fix conflicting raw proto

* [wsman-mk2] Test custom max lifetime
2023-06-12 19:25:02 +08:00
Thomas Schubart
fe08421325
[ws-daemon] Remove full workspace backup (#17803) 2023-06-01 17:36:06 +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
Pudong
176393a0c8
Add support to forward https protocol port (#17644)
* add support to forward https protocol port

* Update components/ws-proxy/pkg/proxy/routes.go

Co-authored-by: Kyle Brennan <kyle@gitpod.io>

---------

Co-authored-by: Kyle Brennan <kyle@gitpod.io>
2023-05-19 15:22:53 +08:00
Wouter Verlaek
da50b8ceb6
[ws-manager-mk2] Cleanup and fail workspaces when node disappears (#17599)
* [ws-manager-mk2] Cleanup and fail workspaces when node disappears

* Cache nodes

* Fix test, and reconcile ws when node gets deleted
2023-05-15 22:53:00 +08:00
Wouter Verlaek
bfa7b301b7
[ws-manager-mk2] Fix headless task failures (#17429) 2023-04-28 19:26:36 +08:00
Manuel Alejandro de Brito Fontes
891cd5417d
Update k8s dependencies to v0.26.2 (#17211)
* Update k8s dependencies to v0.26.2

* Update controller-runtime to v0.14.6

* Update cloud storage
 https://github.com/googleapis/google-cloud-go/issues/6857

* Update copy options

* Update wolfi image

* Remove controller-runtime replace directives

* Fix integration tests
2023-04-18 03:59:49 +08:00
Manuel Alejandro de Brito Fontes
27979c9395
Update go dependencies (#17101)
* Update go dependencies

Signed-off-by: Manuel de Brito Fontes <aledbf@gmail.com>

* Update runc to v1.1.5

* Update docker cli to v23.0.2+incompatible

---------

Signed-off-by: Manuel de Brito Fontes <aledbf@gmail.com>
2023-04-12 10:03:52 +02:00
Wouter Verlaek
06ec36b564
[ws-manager-mk2] Refactor metrics with EverReady condition (#17114)
* [ws-manager-mk2] Refactor metrics with EverReady condition

* Fix test, default failure message

* Add stop reason metric
2023-04-08 11:57:48 +02:00
Pudong
24c401ab78
[ws-manager-mk2] support custom closed timeout (#16988)
* [ws-manager-mk2] support custom closed timeout

* Default to the RegularWorkspace timeout

* remove code

---------

Co-authored-by: Wouter Verlaek <wouter@gitpod.io>
2023-03-31 20:05:40 +02:00
Thomas Schubart
697d81ecbf
[ws-manager-mk2] Introduce experimental mode (#17048)
* [installer] Add experimental mode for mk2

* [wsman-mk2] Use ExperimentalMode flag
2023-03-28 17:56:26 +02:00
Wouter Verlaek
c14a25cfdf
[ws-manager-mk2] Report content init/dispose failures (#17015) 2023-03-27 17:22:25 +02: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
Wouter Verlaek
57840fc6ed
[ws-manager-mk2] Refactor maintenance mode to end at a timestamp (#16925)
* [ws-manager-mk2] Maintenance until

* Fix configmap

* Always show field

* Remove todo
2023-03-22 16:39:14 +01:00
Manuel Alejandro de Brito Fontes
5b30eb5b8c
Remove unused caCertSecret (#16793)
* Add trust.cert-manager.io for to bundle CA certificates

Signed-off-by: Manuel de Brito Fontes <aledbf@gmail.com>

* Configure CA volume and volumemount in components

* Update ws-manager golden files

* Deploy trust manager in preview

* Remove duplicated volume

* Update installer golden files

* Generate a bundle only for registry-facade

* Update golden files

* Fix initcontainer volume mounts

* Update golden files

* Fix registry-facade certificate

* Update golden files

* Disable skip_verify

* Enable force conflict with apply server side

Signed-off-by: Manuel de Brito Fontes <aledbf@gmail.com>

* Avoid random werft namespace errors

Signed-off-by: Manuel de Brito Fontes <aledbf@gmail.com>

---------

Signed-off-by: Manuel de Brito Fontes <aledbf@gmail.com>
2023-03-21 11:44:13 +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
3a561bf274
[ws-manager-mk2] Check empty ns, delete secrets before finalizer (#16900) 2023-03-20 11:32: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
2c259c4dc8
[ws-manager-mk2] Support public SSH keys (#16413) 2023-03-13 14:50:49 +01:00
Wouter Verlaek
25220bb30b
[ws-manager-mk2] Maintenance mode (#16702)
* [ws-manager-mk2] Maintenance mode reconciler

* [ws-manager-mk2] Check for maintenance mode

* [ws-manager-mk2] Default to maintenance mode on startup

* [ws-manager-mk2] Disable maintenance on unmarshal failure
2023-03-09 17:25:45 +01:00
Wouter Verlaek
311da7324c
[ws-manager-mk2] Add duration validation (#16687) 2023-03-06 18:39: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
Milan Pavlik
e4e05143e2
[baseserver] Initialize tracer with server (#16586)
* [baseserver] Initialize tracer with server

* fix

* Fix

* fix
2023-03-03 14:57:01 +01:00
Wouter Verlaek
bec87139a9
[ws-manager-mk2] Remove headless field (#16611) 2023-03-01 12:14:59 +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
00229da4af [ws-manager-mk2] Add finalizer on workspace, handle deletion 2023-02-15 11:27:19 +01:00
Thomas Schubart
ad3b05c064 [ws-manager-mk2] Support system environment variables 2023-02-15 08:22:19 +01:00
Wouter Verlaek
e62c773362 [ws-manager-mk2] Aborted condition, grace period 2023-02-14 12:04:19 +01:00
Wouter Verlaek
65d5cb2d88 [ws-manager-mk2] Cleanup EverReady condition 2023-02-14 11:28:19 +01:00
Pudong Zheng
377f00cb02 [ws-manager] Add custom closed timeout
Co-authored-by: Wouter Verlaek <wouter@gitpod.io>
2023-02-10 11:16:15 +01:00
Wouter Verlaek
172c58c0eb [ws-manager-mk2] Workspace timeouts 2023-02-10 10:49:15 +01:00
Wouter Verlaek
093338cca3 Increase envtest start/stop timeout 2023-02-08 16:47:46 +01:00
Wouter Verlaek
a4e0b11fe2 [ws-manager-mk2] Fix and enable controller tests 2023-02-08 16:47:46 +01:00
Sven Efftinge
74aa6db6e4 [ws-manager-api] Add region for cluster selection 2023-02-08 10:51:46 +01:00
Wouter Verlaek
971c3d6412 [ws-manager-mk2] Implement MarkActive 2023-02-07 10:51:45 +01:00
Thomas Schubart
382bde1767 [ws-manager-mk2] Switch to lru cache 2023-01-30 23:22:38 +01:00
Thomas Schubart
a485cb69a9 [ws-manager-mk2] Ensure metrics are only counted once 2023-01-30 23:22:38 +01:00
Thomas Schubart
a80ee4a26b [ws-manager] Delete workspace CR on stop 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
Wouter Verlaek
3651262ba2 [ws-manager-mk2] Configure health probes and leader election 2023-01-27 04:12:34 +01:00
Wouter Verlaek
8aa5a1d12c [ws-manager-mk2] Add print columns and shortname 2023-01-23 15:41:31 +01:00
Christian Weichel
572fcbb008 [ws-daemon] Start workspace controller based content init 2023-01-23 14:14:30 +01:00
Christian Weichel
7ca2a11572 [ws-manager-mk2] Remove ws-daemon connection 2023-01-23 14:14:30 +01:00
Christian Weichel
a3f8d86f3b [ws-manager-mk2] Fix build after rebase 2023-01-23 14:14:30 +01:00
Christian Weichel
99bff04aa5 [ws-manager-mk2] Rework CRD to better match k8s best practice 2023-01-23 14:14:30 +01:00
Christian Weichel
f91abd8a1e [ws-manager-mk2] Add workspace class support 2023-01-23 14:14:30 +01:00
Christian Weichel
56961e02a1 [ws-manager-mk2] Improve status extraction 2023-01-23 14:14:30 +01:00
Christian Weichel
9992d4fa32 [ws-proxy] Support workspace CRD 2023-01-23 14:14:30 +01:00