Blubber merge requestshttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests2024-03-19T08:32:36Zhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/78Fix documentation site menu2024-03-19T08:32:36ZKBachFix documentation site menuRestructure documentation menu:
* Add links to the readme
* Update configuration links
* Remove links to external documentation
Bug: T352262Restructure documentation menu:
* Add links to the readme
* Update configuration links
* Remove links to external documentation
Bug: T352262KBachKBachhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/77Fix logo in vitepress, add syntax highlighting to code sample2024-03-19T06:13:31ZKBachFix logo in vitepress, add syntax highlighting to code sample* Fixes the logo display on the docs website - logo is now hosted locally instead of making a call to the GitLab repository
* Changes the syntax of one of the code samples in README.md to add syntax highlighting
Bug: T352262* Fixes the logo display on the docs website - logo is now hosted locally instead of making a call to the GitLab repository
* Changes the syntax of one of the code samples in README.md to add syntax highlighting
Bug: T352262KBachKBachhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/76Fix loading of assets in Blubber documentation on doc.wikimedia.org2024-03-18T07:04:10ZKBachFix loading of assets in Blubber documentation on doc.wikimedia.orgVitepress attempts to load assets (both JS and CSS) from doc.wikimedia.org/assets, instead of doc.wikimedia.org/releng/blubber/assets. Setting the `base` option in Vitepress configuration should fix this problem.
Solves https://gitlab.w...Vitepress attempts to load assets (both JS and CSS) from doc.wikimedia.org/assets, instead of doc.wikimedia.org/releng/blubber/assets. Setting the `base` option in Vitepress configuration should fix this problem.
Solves https://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/74#note_74158. FYI @dancy
Bug: T352262https://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/74Improve autogenerated documentation and introduce Vitepress2024-03-15T15:14:26ZKBachImprove autogenerated documentation and introduce Vitepress* Add missing documentation (from the Wikitech pages) to the JSON schema
* Slightly improve the mechanism of generating markdown documentation from the schema
* Add Vitepress, a static site generator, to `docs`. This includes adding rele...* Add missing documentation (from the Wikitech pages) to the JSON schema
* Slightly improve the mechanism of generating markdown documentation from the schema
* Add Vitepress, a static site generator, to `docs`. This includes adding relevant configuration files, CSS customizations, and package.json/package-lock.json.
* Add cache and dist files and directories to .gitignore
* Modify existing markdown files to make them usable as pages in the static site generated using Vitepress
* Add Blubber and GitLab CI configuration to generate and publish the documentation on doc.wikimedia.org
Bug: T352262
Change-Id: I15a017adbfd7859ebe3442750f3ffba954239a26https://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/72version: 0.22.02024-02-12T22:44:19ZDduvallversion: 0.22.0Change-Id: Icd46c2dcf400b7d3352862baa19b64ab9600b90dChange-Id: Icd46c2dcf400b7d3352862baa19b64ab9600b90dDduvallDduvallhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/71scripts: Update version references in README.md during release2024-02-12T21:53:26ZDduvallscripts: Update version references in README.md during release
Bug: T356908
Bug: T356908DduvallDduvallhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/70Use blubber v0.21.1 to build blubber2024-02-07T21:46:44ZDduvallUse blubber v0.21.1 to build blubber
Updated the README.md as well to mention the newest version.
Bug: T356908
Updated the README.md as well to mention the newest version.
Bug: T356908DduvallDduvallhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/69Provide JSON Schema for Blubber configuration2024-02-07T16:40:12ZDduvallProvide JSON Schema for Blubber configuration
Include a `api/config.schema.json` JSON Schema document to serve both as
documentation and a base layer of validation.
Refactor `config.ReadConfig` to validate against the schema.
Provide a Makefile target for generating d...
Include a `api/config.schema.json` JSON Schema document to serve both as
documentation and a base layer of validation.
Refactor `config.ReadConfig` to validate against the schema.
Provide a Makefile target for generating documentation from the schema
and include a CI job that ensures the documentation was generated prior
to code review.https://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/68version: 0.21.12023-09-18T22:57:27ZAhmon Dancyversion: 0.21.1Change-Id: I80c6ddf8778295cabec7695a2b1c3b08112e1ab2Change-Id: I80c6ddf8778295cabec7695a2b1c3b08112e1ab2Ahmon DancyAhmon Dancyhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/67python: Fix merging of `tox-version`2023-09-18T22:52:34ZDduvallpython: Fix merging of `tox-version`Bug: T346226
Change-Id: Ib7bc27f14a6f6c99e7f215f6aaa6861b361b2245Bug: T346226
Change-Id: Ib7bc27f14a6f6c99e7f215f6aaa6861b361b2245DduvallDduvallhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/66version: 0.21.02023-09-18T21:24:02ZAhmon Dancyversion: 0.21.0Change-Id: If6f86371ea2cbd54c1ac21c433043be12c6353fdChange-Id: If6f86371ea2cbd54c1ac21c433043be12c6353fdAhmon DancyAhmon Dancyhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/65Python: Allow tox version to be specified2023-09-18T21:18:47ZAhmon DancyPython: Allow tox version to be specifiedAdd `tox-version` key to the `python` builder to allow for specifying
a specific version of tox to be installed. If not supplied, the
latest version of tox is installed.
Bug: T346226Add `tox-version` key to the `python` builder to allow for specifying
a specific version of tox to be installed. If not supplied, the
latest version of tox is installed.
Bug: T346226Ahmon DancyAhmon Dancyhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/64build: Refactor image configuration methods2023-09-12T23:04:47ZDduvallbuild: Refactor image configuration methodsFixes a former lack of correct environment variable and build argument
substitution on image configuration fields.
Instead of providing one general `ConfigureImage` method on a
`build.Target`, provide an exported field `Image` and new c...Fixes a former lack of correct environment variable and build argument
substitution on image configuration fields.
Instead of providing one general `ConfigureImage` method on a
`build.Target`, provide an exported field `Image` and new corresponding
struct type that provides builder methods for altering specific parts of
the target's internal image configuration. This makes the interface
clearer and ensures that environment variable and build argument
substitution on new values is performed.
Change-Id: I041f7c55ea09899b33773c1872e9543422a99e36DduvallDduvallhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/62version: 0.20.02023-09-11T22:48:17ZAhmon Dancyversion: 0.20.0Change-Id: Ibfad44029708ca2bf60a3089280723009056f582Change-Id: Ibfad44029708ca2bf60a3089280723009056f582Ahmon DancyAhmon Dancyhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/61Python: Set PIP_BREAK_SYSTEM_PACKAGES2023-09-12T14:34:49ZAhmon DancyPython: Set PIP_BREAK_SYSTEM_PACKAGES
During build.PhasePrivileged set PIP_BREAK_SYSTEM_PACKAGES=1 in the
environment. This is equivalent to always passing
--break-system-packages to pip install. This works around image
building problems on Debian Bookworm. Older...
During build.PhasePrivileged set PIP_BREAK_SYSTEM_PACKAGES=1 in the
environment. This is equivalent to always passing
--break-system-packages to pip install. This works around image
building problems on Debian Bookworm. Older versions of pip which
don't understand this environment variable simply ignore it.
Bug: T346090https://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/60ci: Publish experimental images for every merged MR2023-09-06T16:30:23ZDduvallci: Publish experimental images for every merged MRChange-Id: I3b35bc2c702b8d8d16ad3e12d1e6a5dc80f783f6Change-Id: I3b35bc2c702b8d8d16ad3e12d1e6a5dc80f783f6DduvallDduvallhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/59ci: Publish a multi-platform image once more2023-09-06T15:57:29ZDduvallci: Publish a multi-platform image once moreNow that T322453 has been resolved and the BuildKit frontend no longer
relies on `dockerfile2llb`, a multi-platform image is possible and will
hopefully provide folks developing on arm64 a way to run Blubber builds
without emulation.
Bu...Now that T322453 has been resolved and the BuildKit frontend no longer
relies on `dockerfile2llb`, a multi-platform image is possible and will
hopefully provide folks developing on arm64 a way to run Blubber builds
without emulation.
Bug: T318866
Change-Id: Ibe19b7faae99d8e531b90dbc72e5f7a2b884310aDduvallDduvallhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/57build: Refactor to use BuildKit LLB library directly2023-09-05T22:41:39ZDduvallbuild: Refactor to use BuildKit LLB library directly
Provide new `build` interfaces, `build.Target` and `build.Options`.
The latter, `build.Options`, moves configuration of build-time options
from the `buildkit` module into the core `build` module. New fields
are introduced tha...
Provide new `build` interfaces, `build.Target` and `build.Options`.
The latter, `build.Options`, moves configuration of build-time options
from the `buildkit` module into the core `build` module. New fields
are introduced that were formerly handled by `dockerfile2llb`.
The former, `build.Target`, provides a single interface to perform
operations that will either affect the image config result (entrypoint,
runtime user, etc.) or the `llb.State` graph (copy files, run commands,
etc.).
Refactor `build.Instruction` interface and implementations to accept a
single `build.Target` argument. Instead of returning half-compiled
Dockerfile instructions, each `build.Instruction` implementation uses
the passed `build.Target` to add to the `llb.State` graph or make
changes to image configuration.
Note, it may be better long-term to remove the `build.Instruction`
abstraction altogether (e.g. ostensibly we could pass the `build.Target`
directly to `config` types), but this seems like a good interim part of
the large refactoring as it avoided having to change anything in the
`config` module.
Refactor `buildkit` module to use the new `build.Target` and
`build.TargetGroup` interfaces. Instead of compiling to Dockerfile and
using `dockerfile2llb` to convert that to LLB, `build.Instruction`s are
compiled to the `build.Target` which is marshaled directly to a
`llb.Definition`.
Provide test helper modules `llbtest` and `testtarget` to ease making
complex assertions on the `llb.Definition` result of `build.Target`.
Provide test coverage for all `build.Target` methods and refactor
existing `build.Instruction` tests.
Remove `docker` module.
Bug: T345458DduvallDduvallhttps://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/55blubberoid: Remove blubberoid2023-09-05T21:35:58ZDduvallblubberoid: Remove blubberoid
Blubberoid is no longer being published, and the Blubber BuildKit
gateway is the sole way that production images are being built.
Refactoring is underway to have the gateway construct a build graph
using the `llb` library direct...
Blubberoid is no longer being published, and the Blubber BuildKit
gateway is the sole way that production images are being built.
Refactoring is underway to have the gateway construct a build graph
using the `llb` library directly.
Fully remove blubberoid source from the repo first to ease LLB
refactoring (tests can pass without needless blubberoid-related
refactoring).
This should first be merged into an experimental branch with the
subsequent LLB refactoring and merged into main together.
Bug: T345458https://gitlab.wikimedia.org/repos/releng/blubber/-/merge_requests/54examples: Refactor env variable comparison step2023-08-29T16:46:32ZDduvallexamples: Refactor env variable comparison step
Environment variables can be stored in the image config in different
forms, with or without qualifying quotes around the variable value.
Refactor the example step implementation to parse/normalize environment
variable values ...
Environment variables can be stored in the image config in different
forms, with or without qualifying quotes around the variable value.
Refactor the example step implementation to parse/normalize environment
variable values before comparing.DduvallDduvall