[Draft] CLOUDP-333692: Re-design images building #209
Closed
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
Closed in favor of #303
===================
Changes
Usage of standalone Dockerfiles
Added in a previous PR, they eliminate the need for templating, and make it possible to retire Sonar once the Epic is completed.
Building with docker buildx, multi-platform builds
In
build_images.pywe use docker buildx through a python API. It eliminates the need for building images separately for each platform, and manually bundling them in a manifest.Handle build environments explicitly,
Each build scenario, such as merge to master or a local patch, is handled and defined explicitly, at top level, in the main.py CLI. All options are inferred from the environment as before, but can be overridden through flags.
They define parameters such as registry, image tag, signing enabled ...
Proof of work
CI
Note
For the duration of the Atomic Releases epic, both pipelines will be in the repository, until we are done with the staging and promotion process. For now, this new system only work for patches (local, PR, merge to master).
Releases and daily builds still happen with the legacy
pipeline.py, the functionlegacy_pipelinewas created in.evergreen-functions.ymlfor this.Once the Epic is complete, we'll be able to remove:
pipeline.py