-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[inner-loop] run Isolated docker in debug workspace #16363
Conversation
started the job as gitpod-build-pd-dind.1 because the annotations in the pull request description changed |
4baee6f
to
4d4b239
Compare
@iQQBot it is awesome I've noticed following output on shutdown:
it could be addressed separately, but we should try no clean up unnecessary or misleading errors. It will make our life better as well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you, it turned out to be not so complicated :)
@iQQBot if we merge it without docker-up deployed first it is going to break docker in debug workspace all together? |
/hold we probably should extract a PR for the workspace team first cc @kylos101 would it be possible to patch this thing somehow? |
Yes....let's extract a PR for workspace team |
components/gitpod-cli/cmd/rebuild.go
Outdated
@@ -241,6 +241,11 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie | |||
return err | |||
} | |||
|
|||
err = os.MkdirAll("/workspace/.docker-root-debug", 0710) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@iQQBot I think we should think about long term approach, we will need to move there VS Code user data and JB config/cache folders.
I thought that in regular workspace we should do something like:
/workspace/.gitpod/root/.docker
/workspace/.gitpod/root/.vscode-remote
/workspace/.gitpod/root/.cache
/workspace/.gitpod/root/.config
And then for the debug workspace use something like /workspace/.gitpod/debug-root
?
We don't need to change for the regular workspace for now. But for the debug workspace we could do it clean? i.e. start now /workspace/.gitpod/debug-root/.docker
.
I wonder whether it also applies to /workspace/.gitpod
folder generally? i.e why would we shate gitpod tasks between them?
Maybe instead it should move folders under /workspace/.gitpod
and in the debug mount /workspace/.gitpod-debug:/workspace/.gitpod
WDYT? Should we talk sync?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@iQQBot we maybe should consider to keep debug workspace data somewhere under /var/tmp? Because of recent perf concerns
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@iQQBot we maybe should consider to keep debug workspace data somewhere under /var/tmp? Because of recent perf concerns
Pudong said it is impossible, because linux allows only 2 layers, and we already have it for root fs
For the structure we agreed on:
/workspace/.gitpod-debug/.docker-root -> /workspace/.docker-root
/workspace/.gitpod-debug/.gitpod -> /workspace/.gitpod
/workspace/.gitpod-debug/.vscode-remote -> /workspace/.vscode-remote
/workspace/.gitpod-debug/.cache -> /workspace/.cache
/workspace/.gitpod-debug/.config -> /workspace/.config
@@ -398,9 +398,9 @@ func Run(options ...RunOption) { | |||
tasksSuccessChan := make(chan taskSuccess, 1) | |||
go taskManager.Run(ctx, &wg, tasksSuccessChan) | |||
|
|||
if !opts.RunGP && !cfg.isDebugWorkspace() { | |||
if !opts.RunGP { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in this file we only need to remove a guard
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will change after #16368 merged
@akosyakov we can patch docker-up, we cannot patch ws-daemon. edit: Assuming this change is dependent on the |
@akosyakov I rerequested your approval because this comment. Also, I'm not sure how much content you're thinking about putting there, but, depending on size, it could violate ephemeral storage limits and cause workspace to stop. Standard ephemeral storage limit is 10GB, Large is 20GB. edit: also there's a conflict with supervisor.go |
3327780
to
aa33c8c
Compare
/werft run 👍 started the job as gitpod-build-pd-dind.12 |
/hold this PR need hold until new workspace cluster deployed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
/hold
let's wait for workspace deployment
Workspace deployment is done (both regions are at 100%) @akosyakov @iQQBot |
/unhold |
Description
[inner-loop] run Isolated docker in debug workspace
Related Issue(s)
Fixes #
How to test
gp rebuild
Release Notes
Documentation
Build Options:
Experimental feature to run the build with GitHub Actions (and not in Werft).
leeway-target=components:all
Run Leeway with
--dont-test
Publish Options
Installer Options
Add desired feature flags to the end of the line above, space separated
Preview Environment Options:
If enabled this will build
install/preview
If enabled this will create the environment on GCE infra
Valid options are
all
,workspace
,webapp
,ide
,jetbrains
,vscode
,ssh