che
che copied to clipboard
Cannot install extensions if automount configmap mounts /checode/remote/data/Machine/
Describe the bug
If I create this configmap to mount a vs code settings file:
kind: ConfigMap
apiVersion: v1
metadata:
name: vscode-settings
namespace: <USER'S NAMESPACE>
labels:
controller.devfile.io/mount-to-devworkspace: 'true'
controller.devfile.io/watch-configmap: 'true'
annotations:
controller.devfile.io/mount-as: subpath
controller.devfile.io/mount-path: /checode/remote/data/Machine/
data:
settings.json: |
{
"git.defaultCloneDirectory": "/projects/", // This setting MUST be used in this configmap for the git clone functionality to work correctly
// Example settings configuration that will be applied to all workspaces
"editor.cursorBlinking": "expand",
"editor.cursorStyle": "block",
"workbench.colorTheme": "Solarized Dark",
}
I cannot install extensions in my CDE:
Here are the logs in the che-code entrypoint-logs.txt
total 24
drwxrwsr-x. 6 root user 4096 Sep 5 23:45 .
dr-xr-xr-x. 1 root root 141 Sep 5 23:45 ..
drwxr-sr-x. 2 user user 4096 Sep 5 23:45 bin
drwxr-sr-x. 4 user user 4096 Sep 5 23:45 checode-linux-libc
drwxr-sr-x. 8 user user 4096 Sep 5 23:45 checode-linux-musl
-rw-r--r--. 1 user user 0 Sep 5 23:45 entrypoint-logs.txt
-rwxr-xr-x. 1 user user 3547 Sep 5 23:45 entrypoint-volume.sh
drwxr-sr-x. 3 root user 4096 Sep 5 23:45 remote
[INFO] openssl command is available, OpenSSL version is: OpenSSL 1.1.1k FIPS 25 Mar 2021
[INFO] OpenSSL major version is: 1.
[INFO] Using linux-libc ubi8-based assembly...
[INFO] Node.js dir for running VS Code: /checode/checode-linux-libc/ubi8
time="2024-09-05T23:45:30Z" level=info msg="Default 'info' log level is applied"
time="2024-09-05T23:45:30Z" level=info msg="Exec containers configuration:"
time="2024-09-05T23:45:30Z" level=info msg="==> Debug level info"
time="2024-09-05T23:45:30Z" level=info msg="==> Application url 0.0.0.0:3333"
time="2024-09-05T23:45:30Z" level=info msg="==> Absolute path to folder with static resources "
time="2024-09-05T23:45:30Z" level=info msg="==> Use bearer token: false"
time="2024-09-05T23:45:30Z" level=info msg="==> Pod selector: controller.devfile.io/devworkspace_id=workspace266fc11244594bb1"
time="2024-09-05T23:45:30Z" level=info msg="==> Idle timeout: 3h0m0s"
time="2024-09-05T23:45:30Z" level=info msg="==> Run timeout: 24h0m0s"
time="2024-09-05T23:45:30Z" level=info msg="==> Stop retry period: 10s"
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
- using code: gin.SetMode(gin.ReleaseMode)
[GIN-debug] GET /connect --> main.main.func2 (3 handlers)
[GIN-debug] GET /attach/:id --> main.main.func3 (3 handlers)
[GIN-debug] POST /exec/config --> main.main.func4 (3 handlers)
[GIN-debug] POST /exec/init --> main.main.func5 (3 handlers)
[GIN-debug] POST /activity/tick --> main.main.func6 (3 handlers)
[GIN-debug] GET /healthz --> main.main.func7 (3 handlers)
⇩ Registered RPCRoutes:
Json-rpc MachineExec Routes:
✓ create
✓ check
✓ resize
✓ listContainers
time="2024-09-05T23:45:30Z" level=info msg="Activity tracker is run and workspace will be stopped in 3h0m0s if there is no activity"
time="2024-09-05T23:45:30Z" level=info msg="Run idle manager is running. The workspace will be stopped in 24h0m0s"
[GIN-debug] Listening and serving HTTP on 0.0.0.0:3333
# Setting curent DevWorkspace ID to che-code...
> apply DevWorkspace ID [workspace266fc11244594bb1]
# Configuring OpenVSIX registry...
> env.OPENVSX_REGISTRY_URL set to https://open-vsx.org
> apply OpenVSIX URL [https://open-vsx.org/vscode]
# Configuring Webview Resources location...
> env.WEBVIEW_LOCAL_RESOURCES is not set to 'true', skip this step
# Configuring Node extra certificates...
> found /public-certs/kube-root-ca.crt.ca.crt
> writing /tmp/node-extra-certificates/ca.crt..
# Injecting server public key to che-code...
> found key file /etc/ssh/default-1627504635564.pub
> out/vs/code/browser/workbench/workbench.js has been updated
# Configuring Trusted Extensions...
> env.VSCODE_TRUSTED_EXTENSIONS is not defined, skip this step
# Generating Workspace file...
> Creating new workspace file /projects/.code-workspace
# Launching VS Code...
> Setting DEVWORKSPACE_POD_NAME environment variable to workspace266fc11244594bb1-b9f6659bc-zkfg5
> Running: /checode/checode-linux-libc/ubi8/node
> Params: out/server-main.js,--host,127.0.0.1,--port,3100,--without-connection-token,--default-workspace,/projects/.code-workspace
Server bound to 127.0.0.1:3100 (IPv4)
Extension host agent listening on 3100
Error: EACCES: permission denied, mkdir '/checode/remote/extensions'
at Object.mkdirSync (node:fs:1373:26)
at /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1792
at Array.forEach (<anonymous>)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1757)
at g._safeInvokeFunction (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1245)
at g._invokeFactory (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1425)
at g.complete (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1682)
at a._onModuleComplete (/checode/checode-linux-libc/ubi8/out/server-main.js:4:1051)
at a._resolve (/checode/checode-linux-libc/ubi8/out/server-main.js:4:510)
at a.defineModule (/checode/checode-linux-libc/ubi8/out/server-main.js:3:5561)
at p (/checode/checode-linux-libc/ubi8/out/server-main.js:4:1741)
at b (/checode/checode-linux-libc/ubi8/out/server-main.js:2:2448)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:565)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1921)
at r._createAndEvalScript (/checode/checode-linux-libc/ubi8/out/server-main.js:2:2492)
at /checode/checode-linux-libc/ubi8/out/server-main.js:2:2133
at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read/context:68:3) {
errno: -13,
code: 'EACCES',
syscall: 'mkdir',
path: '/checode/remote/extensions'
}
Error: EACCES: permission denied, mkdir '/checode/remote/data/User'
at Object.mkdirSync (node:fs:1373:26)
at /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1792
at Array.forEach (<anonymous>)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1757)
at g._safeInvokeFunction (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1245)
at g._invokeFactory (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1425)
at g.complete (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1682)
at a._onModuleComplete (/checode/checode-linux-libc/ubi8/out/server-main.js:4:1051)
at a._resolve (/checode/checode-linux-libc/ubi8/out/server-main.js:4:510)
at a.defineModule (/checode/checode-linux-libc/ubi8/out/server-main.js:3:5561)
at p (/checode/checode-linux-libc/ubi8/out/server-main.js:4:1741)
at b (/checode/checode-linux-libc/ubi8/out/server-main.js:2:2448)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:565)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1921)
at r._createAndEvalScript (/checode/checode-linux-libc/ubi8/out/server-main.js:2:2492)
at /checode/checode-linux-libc/ubi8/out/server-main.js:2:2133
at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read/context:68:3) {
errno: -13,
code: 'EACCES',
syscall: 'mkdir',
path: '/checode/remote/data/User'
}
Error: ENOENT: no such file or directory, mkdir '/checode/remote/data/User/globalStorage'
at Object.mkdirSync (node:fs:1373:26)
at /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1792
at Array.forEach (<anonymous>)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1757)
at g._safeInvokeFunction (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1245)
at g._invokeFactory (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1425)
at g.complete (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1682)
at a._onModuleComplete (/checode/checode-linux-libc/ubi8/out/server-main.js:4:1051)
at a._resolve (/checode/checode-linux-libc/ubi8/out/server-main.js:4:510)
at a.defineModule (/checode/checode-linux-libc/ubi8/out/server-main.js:3:5561)
at p (/checode/checode-linux-libc/ubi8/out/server-main.js:4:1741)
at b (/checode/checode-linux-libc/ubi8/out/server-main.js:2:2448)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:565)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1921)
at r._createAndEvalScript (/checode/checode-linux-libc/ubi8/out/server-main.js:2:2492)
at /checode/checode-linux-libc/ubi8/out/server-main.js:2:2133
at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read/context:68:3) {
errno: -2,
code: 'ENOENT',
syscall: 'mkdir',
path: '/checode/remote/data/User/globalStorage'
}
Error: ENOENT: no such file or directory, mkdir '/checode/remote/data/User/History'
at Object.mkdirSync (node:fs:1373:26)
at /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1792
at Array.forEach (<anonymous>)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1757)
at g._safeInvokeFunction (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1245)
at g._invokeFactory (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1425)
at g.complete (/checode/checode-linux-libc/ubi8/out/server-main.js:3:1682)
at a._onModuleComplete (/checode/checode-linux-libc/ubi8/out/server-main.js:4:1051)
at a._resolve (/checode/checode-linux-libc/ubi8/out/server-main.js:4:510)
at a.defineModule (/checode/checode-linux-libc/ubi8/out/server-main.js:3:5561)
at p (/checode/checode-linux-libc/ubi8/out/server-main.js:4:1741)
at b (/checode/checode-linux-libc/ubi8/out/server-main.js:2:2448)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:565)
at Object.<anonymous> (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:226:1921)
at r._createAndEvalScript (/checode/checode-linux-libc/ubi8/out/server-main.js:2:2492)
at /checode/checode-linux-libc/ubi8/out/server-main.js:2:2133
at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read/context:68:3) {
errno: -2,
code: 'ENOENT',
syscall: 'mkdir',
path: '/checode/remote/data/User/History'
}
[23:45:31]
[Error: EACCES: permission denied, mkdir '/checode/remote/data/logs'] {
errno: -13,
code: 'EACCES',
syscall: 'mkdir',
path: '/checode/remote/data/logs'
}
Web UI available at http://localhost:3100
[23:45:31] Extension host agent started.
[23:45:31] Started initializing default profile extensions in extensions installation folder. file:///checode/remote/extensions
[Error: EACCES: permission denied, mkdir '/checode/remote/data/logs'] {
errno: -13,
code: 'EACCES',
syscall: 'mkdir',
path: '/checode/remote/data/logs'
}
[23:45:31] be [Error]: Unable to resolve nonexistent file '/checode/remote/extensions'
at o.resolve (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:128:5171)
at async J.s (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58923)
at async J.scanExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58678)
at async a.scanUserExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:50898)
at async /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:53276
at async a.initializeDefaultProfileExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:53054)
at async s (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:154:1207) {
fileOperationResult: 1,
options: undefined
}
[23:45:31] be [Error]: Unable to write file '/checode/remote/data/User/globalStorage/storage.json' (NoPermissions (FileSystemError): Error: EACCES: permission denied, mkdir '/checode/remote/data/User')
at o.writeFile (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:128:7830)
at async S.t (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:134:7041) {
fileOperationResult: 6,
options: { atomic: { postfix: '.vsctmp' } }
}
[23:45:31] Error while initializing Extensions Watcher Unable to resolve nonexistent file '/checode/remote/extensions'
rejected promise not handled within 1 second: Error: Unable to resolve nonexistent file '/checode/remote/extensions'
stack trace: Error: Unable to resolve nonexistent file '/checode/remote/extensions'
at o.resolve (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:128:5171)
at async U.tb (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:82125)
[23:45:32] be [Error]: Unable to resolve nonexistent file '/checode/remote/extensions'
at o.resolve (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:128:5171)
at async U.tb (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:82125) {
fileOperationResult: 1,
options: undefined
}
File not found: /checode/checode-linux-libc/ubi8/out/vsda.js
File not found: /checode/checode-linux-libc/ubi8/out/vsda_bg.wasm
[23:45:36] [127.0.0.1][e38ac5ea][ManagementConnection] New connection established.
[23:45:36] [127.0.0.1][cec99d40][ExtensionHostConnection] New connection established.
[23:45:36] Started initializing default profile extensions in extensions installation folder. file:///checode/remote/extensions
[23:45:36] be [Error]: Unable to resolve nonexistent file '/checode/remote/extensions'
at o.resolve (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:128:5171)
at async J.s (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58923)
at async J.scanExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58678)
at async a.scanUserExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:50898)
at async /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:53276 {
fileOperationResult: 1,
options: undefined
}
[23:45:36] Started initializing default profile extensions in extensions installation folder. file:///checode/remote/extensions
[23:45:36] be [Error]: Unable to resolve nonexistent file '/checode/remote/extensions'
at o.resolve (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:128:5171)
at async J.s (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58923)
at async J.scanExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58678)
at async a.scanUserExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:50898)
at async /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:53276
at async a.scanUserExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:51030)
at async Promise.all (index 1)
at async a.scanAllExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:50025) {
fileOperationResult: 1,
options: undefined
}
[23:45:37] [127.0.0.1][cec99d40][ExtensionHostConnection] <480> Launched Extension Host Process.
[23:45:38] Started initializing default profile extensions in extensions installation folder. file:///checode/remote/extensions
[23:45:38] be [Error]: Unable to resolve nonexistent file '/checode/remote/extensions'
at o.resolve (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:128:5171)
at async J.s (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58923)
at async J.scanExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58678)
at async a.scanUserExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:50898)
at async /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:53276
at async a.scanUserExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:51030)
at async Promise.all (index 1)
at async a.scanAllExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:50025)
at async ee.scanExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:84370)
at async g.call (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:131:27856) {
fileOperationResult: 1,
options: undefined
}
[23:45:38] Started initializing default profile extensions in extensions installation folder. file:///checode/remote/extensions
[23:45:38] be [Error]: Unable to resolve nonexistent file '/checode/remote/extensions'
at o.resolve (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:128:5171)
at async J.s (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58923)
at async J.scanExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58678)
at async a.scanUserExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:50898)
at async /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:53276 {
fileOperationResult: 1,
options: undefined
}
[23:45:39] Started initializing default profile extensions in extensions installation folder. file:///checode/remote/extensions
[23:45:39] be [Error]: Unable to resolve nonexistent file '/checode/remote/extensions'
at o.resolve (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:128:5171)
at async J.s (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58923)
at async J.scanExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:58678)
at async a.scanUserExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:50898)
at async /checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:53276
at async a.scanUserExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:51030)
at async Promise.all (index 1)
at async a.scanAllExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:50025)
at async ee.scanExtensions (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:180:84370)
at async g.call (/checode/checode-linux-libc/ubi8/out/vs/server/node/server.main.js:131:27856) {
fileOperationResult: 1,
options: undefined
}
[23:45:41] [Error: ENOENT: no such file or directory, scandir '/checode/remote/data/logs'] {
errno: -2,
code: 'ENOENT',
syscall: 'scandir',
path: '/checode/remote/data/logs'
}
[IPC Library: Pty Host] Error: EACCES: permission denied, mkdir '/checode/remote/data/logs'
Che version
7.91@latest
Steps to reproduce
- Create the configmap above
- Start an empty workspace
- Try to install the Python extension
Expected behavior
The extension should install successfully
Runtime
OpenShift
Screenshots
No response
Installation method
chectl/latest
Environment
Linux
Eclipse Che Logs
No response
Additional context
No response