-
Epic
-
Resolution: Unresolved
-
Major
-
3.5.0.GA
-
productization: build & internals, Team A: Dashboard, devfile and plugin registries, open-vsx, operator + chectl/dsc, devfile-converter, configbump + traefik, image-puller, server, gateway, authentication, try-in-web-ide action, telemetry, Team B: DevWorkspace + Operator, Web Terminal + Operator, editors/IDEs + built-in vscode extensions, Universal Developer Image, machine-exec, dev environment config
-
None
-
False
-
None
-
False
-
-
Feature
-
In Progress
-
-
As discussed today w/ Sam, we're looking for a clean, simple approach to making devspaces-images repos buildable w/o RH VPN access, especially for the containers which now depend on Cachito for sources within Brew/OSBS.
Suggested solution:
- implement a rule that any brew.Dockerfile in the midstream project's root folder is copied and renamed when syncing to downstream, to just Dockerfile;
- therefore root folder's Dockerfile in midstream would be one that works locally in midstream repo, to make adoption/rebuild easier for customers/IBMers/people outside RH, and
- brew.Dockerfile in midstream will be equal to Dockerfile in downstream, which works with Cachito and OSBS
Phased approach would be:
1. set up the Jenkins job logic so we can start migrating to this new approach
2. refactor upstream projects for consistent folder structure, using build/dockerfiles/rhel.Dockerfile (or similar)
3. refactor midstream projects for consistent folder structure, such that upstream rhel.Dockerfile is copied to the project root
4. refactor midstream sync.sh scripts to copy from build/dockerfiles/rhel.Dockerfile into the root (as in #3), then transform that Dockerfile into something compatible with Brew, called brew.Dockerfile
NOTE: if transformation via sed is too onerous, then a static brew.Dockerfile should exist in the root folder (which will replace the Dockerfile when copied to downstream).
5. This guarantees that midstream and downstream will be NEARLY identical, except for the brew.Dockerfile and Dockerfile in the root folder, which should make maintenance relatively easy and avoid confusion