Skip to content

Commit 9cb86d8

Browse files
committed
[test-commit] [server] using sysenvvar and imagelayer
1 parent 9c5bbf7 commit 9cb86d8

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

components/server/src/workspace/workspace-starter.ts

+19-13
Original file line numberDiff line numberDiff line change
@@ -1370,6 +1370,8 @@ export class WorkspaceStarter {
13701370

13711371
const envvars: EnvironmentVariable[] = [];
13721372

1373+
const sysEnvvars: EnvironmentVariable[] = [];
1374+
13731375
// TODO(cw): for the time being we're still pushing the env vars as we did before.
13741376
// Once everything is running with the latest supervisor, we can stop doing that.
13751377
allEnvVars.forEach((e) => {
@@ -1384,27 +1386,27 @@ export class WorkspaceStarter {
13841386
const ideAliasEnv = new EnvironmentVariable();
13851387
ideAliasEnv.setName("GITPOD_IDE_ALIAS");
13861388
ideAliasEnv.setValue(ideAlias);
1387-
envvars.push(ideAliasEnv);
1389+
sysEnvvars.push(ideAliasEnv);
13881390
}
13891391

13901392
const contextUrlEnv = new EnvironmentVariable();
13911393
contextUrlEnv.setName("GITPOD_WORKSPACE_CONTEXT_URL");
13921394
// Beware that `workspace.contextURL` is not normalized so it might contain other modifiers
13931395
// making it not a valid URL
13941396
contextUrlEnv.setValue(workspace.context.normalizedContextURL || workspace.contextURL);
1395-
envvars.push(contextUrlEnv);
1397+
sysEnvvars.push(contextUrlEnv);
13961398

13971399
const contextEnv = new EnvironmentVariable();
13981400
contextEnv.setName("GITPOD_WORKSPACE_CONTEXT");
13991401
contextEnv.setValue(JSON.stringify(workspace.context));
1400-
envvars.push(contextEnv);
1402+
sysEnvvars.push(contextEnv);
14011403

14021404
const info = this.config.workspaceClasses.find((cls) => cls.id === instance.workspaceClass);
14031405
if (!!info) {
14041406
const workspaceClassInfoEnv = new EnvironmentVariable();
14051407
workspaceClassInfoEnv.setName("GITPOD_WORKSPACE_CLASS_INFO");
14061408
workspaceClassInfoEnv.setValue(JSON.stringify(info));
1407-
envvars.push(workspaceClassInfoEnv);
1409+
sysEnvvars.push(workspaceClassInfoEnv);
14081410
}
14091411

14101412
log.debug("Workspace config", workspace.config);
@@ -1415,19 +1417,19 @@ export class WorkspaceStarter {
14151417
const ev = new EnvironmentVariable();
14161418
ev.setName("GITPOD_TASKS");
14171419
ev.setValue(JSON.stringify(tasks));
1418-
envvars.push(ev);
1420+
sysEnvvars.push(ev);
14191421
}
14201422

14211423
const vsxRegistryUrl = new EnvironmentVariable();
14221424
vsxRegistryUrl.setName("VSX_REGISTRY_URL");
14231425
vsxRegistryUrl.setValue(this.config.vsxRegistryUrl);
1424-
envvars.push(vsxRegistryUrl);
1426+
sysEnvvars.push(vsxRegistryUrl);
14251427

14261428
// supervisor ensures dotfiles are only used if the workspace is a regular workspace
14271429
const dotfileEnv = new EnvironmentVariable();
14281430
dotfileEnv.setName("SUPERVISOR_DOTFILE_REPO");
14291431
dotfileEnv.setValue(user.additionalData?.dotfileRepo || "");
1430-
envvars.push(dotfileEnv);
1432+
sysEnvvars.push(dotfileEnv);
14311433

14321434
if (workspace.config.coreDump?.enabled) {
14331435
// default core dump size is 262144 blocks (if blocksize is 4096)
@@ -1441,7 +1443,7 @@ export class WorkspaceStarter {
14411443
hardLimit: workspace.config.coreDump?.hardLimit || defaultLimit,
14421444
}),
14431445
);
1444-
envvars.push(rLimitCore);
1446+
sysEnvvars.push(rLimitCore);
14451447
}
14461448

14471449
const createGitpodTokenPromise = (async () => {
@@ -1475,7 +1477,7 @@ export class WorkspaceStarter {
14751477
},
14761478
]),
14771479
);
1478-
envvars.push(ev);
1480+
sysEnvvars.push(ev);
14791481
})();
14801482

14811483
const portIndex = new Set<number>();
@@ -1571,16 +1573,20 @@ export class WorkspaceStarter {
15711573
const spec = new StartWorkspaceSpec();
15721574
await createGitpodTokenPromise;
15731575
spec.setEnvvarsList(envvars);
1576+
spec.setSysEnvvarsList(sysEnvvars);
15741577
spec.setGit(this.createGitSpec(workspace, user));
15751578
spec.setPortsList(ports);
15761579
spec.setInitializer((await initializerPromise).initializer);
1580+
15771581
const startWorkspaceSpecIDEImage = new IDEImage();
15781582
startWorkspaceSpecIDEImage.setWebRef(ideImage);
1579-
startWorkspaceSpecIDEImage.setDesktopRef(instance.configuration?.desktopIdeImage || "");
1580-
startWorkspaceSpecIDEImage.setDesktopPluginRef(instance.configuration?.desktopIdePluginImage || "");
1581-
startWorkspaceSpecIDEImage.setSupervisorRef(instance.configuration?.supervisorImage || "");
1583+
startWorkspaceSpecIDEImage.setSupervisorRef(instance.configuration?.supervisorImage ?? "");
15821584
spec.setIdeImage(startWorkspaceSpecIDEImage);
1583-
spec.setDeprecatedIdeImage(ideImage);
1585+
1586+
instance.configuration?.desktopIdeImage ?? spec.addImageLayers(instance.configuration?.desktopIdeImage!);
1587+
instance.configuration?.desktopIdePluginImage ??
1588+
spec.addImageLayers(instance.configuration?.desktopIdePluginImage!);
1589+
15841590
spec.setWorkspaceImage(instance.workspaceImage);
15851591
spec.setWorkspaceLocation(workspace.config.workspaceLocation || checkoutLocation);
15861592
spec.setFeatureFlagsList(this.toWorkspaceFeatureFlags(featureFlags));

0 commit comments

Comments
 (0)