Skip to content

Commit 2b3cb3a

Browse files
ysokcursoragent
andcommitted
RHAIENG-2846: Hermetic Dockerfile + build patches + Tekton for codeserver
Complete hermetic (--network=none) build for codeserver/ubi9-python-3.12: Dockerfile.cpu: rewrite as 5-stage hermetic build (rpm-base, whl-cache, cpu-base, codeserver, tests). All dependencies fetched from cachi2 mounts instead of network. Replaces get_code_server_rpm.sh with offline patch system. Build patches: - apply-patch.sh: applies patches to prefetched code-server source - setup-offline-binaries.sh: populates Electron/ripgrep/Playwright caches, rewrites npm URLs to file:///cachi2/... - codeserver-offline-env.sh: env vars for offline build steps - s390x.patch + package.json overrides for npm ci compatibility Tekton pipelines: add prefetch-input config for Konflux (RPM, pip, npm, generic artifacts), upgrade build machines to m8xlarge, enable cache proxy. Also: simplify devel_env_setup.sh (RHOAI pre-built wheels replace source builds), update README, add docs/konflux.md Cargo version note. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 55302c7 commit 2b3cb3a

File tree

17 files changed

+7383
-398
lines changed

17 files changed

+7383
-398
lines changed

.dockerignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ tests/
66
.idea/
77

88
# git
9-
.git/
9+
#.git/ # Need to keep for gitsubmodule
1010
.gitignore
1111
.gitkeep
1212

.tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml

Lines changed: 129 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,13 @@ metadata:
1313
pipelinesascode.tekton.dev/max-keep-runs: '3'
1414
pipelinesascode.tekton.dev/on-comment: ^/kfbuild\s+(all|odh\-workbench\-codeserver\-datascience\-cpu\-py312\-ubi9|codeserver/ubi9\-python\-3\.12)
1515
pipelinesascode.tekton.dev/on-cel-expression: |
16-
event == "pull_request" && target_branch == "main" && !("manifests/base/params-latest.env".pathChanged()) && ( ".tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml".pathChanged() || "codeserver/ubi9-python-3.12/**".pathChanged() || "codeserver/ubi9-python-3.12/build-args/cpu.conf".pathChanged() )
17-
&& body.repository.full_name == "opendatahub-io/notebooks"
16+
event == "pull_request" && target_branch == "main" &&
17+
!("manifests/base/params-latest.env".pathChanged()) &&
18+
(
19+
".tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml".pathChanged() ||
20+
"codeserver/ubi9-python-3.12/**".pathChanged() ||
21+
"codeserver/ubi9-python-3.12/build-args/cpu.conf".pathChanged()
22+
) && body.repository.full_name == "opendatahub-io/notebooks"
1823
labels:
1924
appstudio.openshift.io/application: opendatahub-release
2025
appstudio.openshift.io/component: odh-workbench-codeserver-datascience-cpu-py312-ubi9
@@ -27,6 +32,8 @@ spec:
2732
params:
2833
- name: event-type
2934
value: '{{event_type}}'
35+
- name: enable-cache-proxy
36+
value: "true"
3037
- name: git-url
3138
value: '{{source_url}}'
3239
- name: revision
@@ -38,15 +45,133 @@ spec:
3845
- name: build-platforms
3946
value:
4047
# https://github.com/redhat-appstudio/infra-deployments/blob/main/components/multi-platform-controller/production-downstream/stone-prod-p02/host-config.yaml
41-
- linux-d160-m4xlarge/amd64
42-
- linux-d160-m4xlarge/arm64
48+
- linux-d160-m8xlarge/amd64
49+
- linux-d160-m8xlarge/arm64
4350
- linux/ppc64le
4451
- name: dockerfile
4552
value: codeserver/ubi9-python-3.12/Dockerfile.cpu
4653
- name: path-context
4754
value: .
4855
- name: build-args-file
4956
value: codeserver/ubi9-python-3.12/build-args/cpu.conf
57+
- name: hermetic
58+
value: "true"
59+
- name: prefetch-input
60+
value:
61+
- path: codeserver/ubi9-python-3.12/prefetch-input
62+
type: rpm
63+
- path: codeserver/ubi9-python-3.12/prefetch-input
64+
type: generic
65+
- path: codeserver/ubi9-python-3.12
66+
type: pip
67+
binary:
68+
arch: "x86_64,aarch64,ppc64le"
69+
requirements_files: ["requirements.txt"]
70+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/.vscode/extensions/vscode-selfhost-import-aid
71+
type: npm
72+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/.vscode/extensions/vscode-selfhost-test-provider
73+
type: npm
74+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/build
75+
type: npm
76+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/build/npm/gyp
77+
type: npm
78+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions
79+
type: npm
80+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/configuration-editing
81+
type: npm
82+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/css-language-features
83+
type: npm
84+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/css-language-features/server
85+
type: npm
86+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/debug-auto-launch
87+
type: npm
88+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/debug-server-ready
89+
type: npm
90+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/emmet
91+
type: npm
92+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/extension-editing
93+
type: npm
94+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/git
95+
type: npm
96+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/git-base
97+
type: npm
98+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/github
99+
type: npm
100+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/github-authentication
101+
type: npm
102+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/grunt
103+
type: npm
104+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/gulp
105+
type: npm
106+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/html-language-features
107+
type: npm
108+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/html-language-features/server
109+
type: npm
110+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/ipynb
111+
type: npm
112+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/jake
113+
type: npm
114+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/json-language-features
115+
type: npm
116+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/json-language-features/server
117+
type: npm
118+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/markdown-language-features
119+
type: npm
120+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/markdown-math
121+
type: npm
122+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/media-preview
123+
type: npm
124+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/merge-conflict
125+
type: npm
126+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/mermaid-chat-features
127+
type: npm
128+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/notebook-renderers
129+
type: npm
130+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/npm
131+
type: npm
132+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/php-language-features
133+
type: npm
134+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/references-view
135+
type: npm
136+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/simple-browser
137+
type: npm
138+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/tunnel-forwarding
139+
type: npm
140+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/typescript-language-features
141+
type: npm
142+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/vscode-api-tests
143+
type: npm
144+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/vscode-colorize-perf-tests
145+
type: npm
146+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/vscode-colorize-tests
147+
type: npm
148+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/vscode-test-resolver
149+
type: npm
150+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/remote
151+
type: npm
152+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/remote/web
153+
type: npm
154+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/automation
155+
type: npm
156+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/integration/browser
157+
type: npm
158+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/mcp
159+
type: npm
160+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/monaco
161+
type: npm
162+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/smoke
163+
type: npm
164+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/test/e2e/extensions/test-extension
165+
type: npm
166+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server
167+
type: npm
168+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode
169+
type: npm
170+
# patches/
171+
- path: codeserver/ubi9-python-3.12/prefetch-input/patches/code-server-v4.106.3/test
172+
type: npm
173+
- path: codeserver/ubi9-python-3.12/prefetch-input/patches/code-server-v4.106.3/lib/vscode/extensions/microsoft-authentication
174+
type: npm
50175
pipelineRef:
51176
name: multiarch-combined-pipeline
52177
taskRunTemplate:

.tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-push.yaml

Lines changed: 126 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@ metadata:
88
pipelinesascode.tekton.dev/cancel-in-progress: "false"
99
pipelinesascode.tekton.dev/max-keep-runs: "3"
1010
build.appstudio.openshift.io/build-nudge-files: "manifests/base/params-latest.env"
11-
pipelinesascode.tekton.dev/on-cel-expression: event == "push" && target_branch == "main" && !("manifests/base/params-latest.env".pathChanged()) && ( ".tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-push.yaml".pathChanged() || "codeserver/ubi9-python-3.12/**".pathChanged() || "codeserver/ubi9-python-3.12/build-args/cpu.conf".pathChanged() )
11+
pipelinesascode.tekton.dev/on-cel-expression: event == "push" && target_branch == "main" &&
12+
!("manifests/base/params-latest.env".pathChanged()) &&
13+
(
14+
".tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-push.yaml".pathChanged() ||
15+
"codeserver/ubi9-python-3.12/**".pathChanged() ||
16+
"codeserver/ubi9-python-3.12/build-args/cpu.conf".pathChanged()
17+
)
1218
creationTimestamp:
1319
labels:
1420
appstudio.openshift.io/application: opendatahub-release
@@ -38,8 +44,125 @@ spec:
3844
- 3.4_ea2-v1.42
3945
- name: build-platforms
4046
value:
41-
- linux-d160-m4xlarge/amd64
42-
- linux-d160-m4xlarge/arm64
47+
- linux-d160-m8xlarge/amd64
48+
- linux-d160-m8xlarge/arm64
49+
- name: prefetch-input
50+
value:
51+
- path: codeserver/ubi9-python-3.12/prefetch-input
52+
type: rpm
53+
- path: codeserver/ubi9-python-3.12/prefetch-input
54+
type: generic
55+
- path: codeserver/ubi9-python-3.12
56+
type: pip
57+
binary:
58+
arch: "x86_64,aarch64,ppc64le"
59+
requirements_files: ["requirements.txt"]
60+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/.vscode/extensions/vscode-selfhost-import-aid
61+
type: npm
62+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/.vscode/extensions/vscode-selfhost-test-provider
63+
type: npm
64+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/build
65+
type: npm
66+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/build/npm/gyp
67+
type: npm
68+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions
69+
type: npm
70+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/configuration-editing
71+
type: npm
72+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/css-language-features
73+
type: npm
74+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/css-language-features/server
75+
type: npm
76+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/debug-auto-launch
77+
type: npm
78+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/debug-server-ready
79+
type: npm
80+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/emmet
81+
type: npm
82+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/extension-editing
83+
type: npm
84+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/git
85+
type: npm
86+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/git-base
87+
type: npm
88+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/github
89+
type: npm
90+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/github-authentication
91+
type: npm
92+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/grunt
93+
type: npm
94+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/gulp
95+
type: npm
96+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/html-language-features
97+
type: npm
98+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/html-language-features/server
99+
type: npm
100+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/ipynb
101+
type: npm
102+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/jake
103+
type: npm
104+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/json-language-features
105+
type: npm
106+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/json-language-features/server
107+
type: npm
108+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/markdown-language-features
109+
type: npm
110+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/markdown-math
111+
type: npm
112+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/media-preview
113+
type: npm
114+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/merge-conflict
115+
type: npm
116+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/mermaid-chat-features
117+
type: npm
118+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/notebook-renderers
119+
type: npm
120+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/npm
121+
type: npm
122+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/php-language-features
123+
type: npm
124+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/references-view
125+
type: npm
126+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/simple-browser
127+
type: npm
128+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/tunnel-forwarding
129+
type: npm
130+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/typescript-language-features
131+
type: npm
132+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/vscode-api-tests
133+
type: npm
134+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/vscode-colorize-perf-tests
135+
type: npm
136+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/vscode-colorize-tests
137+
type: npm
138+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/extensions/vscode-test-resolver
139+
type: npm
140+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/remote
141+
type: npm
142+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/remote/web
143+
type: npm
144+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/automation
145+
type: npm
146+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/integration/browser
147+
type: npm
148+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/mcp
149+
type: npm
150+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/monaco
151+
type: npm
152+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode/test/smoke
153+
type: npm
154+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/test/e2e/extensions/test-extension
155+
type: npm
156+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server
157+
type: npm
158+
- path: codeserver/ubi9-python-3.12/prefetch-input/code-server/lib/vscode
159+
type: npm
160+
# patches/
161+
- path: codeserver/ubi9-python-3.12/prefetch-input/patches/code-server-v4.106.3/test
162+
type: npm
163+
- path: codeserver/ubi9-python-3.12/prefetch-input/patches/code-server-v4.106.3/lib/vscode/extensions/microsoft-authentication
164+
type: npm
165+
43166
pipelineRef:
44167
name: multiarch-combined-pipeline
45168
taskRunTemplate:

0 commit comments

Comments
 (0)