system-tests
system-tests copied to clipboard
Docker SSI: Update the docker build system to use rebuildr
Motivation
Use the rebuidr tool to build the docker ssi images. We'll fix:
- Registry cache issues
- Faster builds Pending:
- Simplify the code.
- Create the system-tests runners to run on gitlab
- force build
- better arch handling
Changes
Pending to simplify the code that generates this image generation workflow:
Docker SSI Image Build Pipeline
┌─────────────────┐
│ base_image │
│ (e.g. ubuntu:22.04) │
│ [User Input] │
└─────────┬───────┘
│
▼
┌─────────────────┐
│ base_deps_image │
│ + system deps │
│ + curl, etc. │
└─────────┬───────┘
│
▼
┌─────────────────────────┐
│ Runtime Check │
│ installable_runtime │
│ specified? │
└─────┬─────────────┬─────┘
YES │ │ NO
▼ │
┌─────────────────┐ │
│base_runtime_image│ │
│ + language │ │
│ runtime │ │
│ (Java/Python/etc)│ │
└─────────┬───────┘ │
│ │
▼ │
┌────┴──────────────┴────┐
│ ssi_installer_image │
│ + DataDog SSI │
│ + installer tools │
└─────────┬──────────────┘
│
▼
┌─────────────────┐
│ ssi_full_image │
│ + auto-injection│
│ + instrumentation│
└─────────┬───────┘
│
▼
┌─────────────────┐
│ weblog_image │
│ + application │
│ + final setup │
│ [FINAL] │
└─────────────────┘
Build Tags Generated:
• base_deps_image → {base_image}deps{arch} • base_runtime_image → {base_image}{runtime}{arch} (optional) • ssi_installer_image→ ssi_installer_{base_tag} (pushed to registry) • ssi_full_image → ssi_full_{base_tag} • weblog_image → weblog-injection:latest
Build Dependencies:
base_image (input) ↓ base_deps_image (FROM base_image) ↓ base_runtime_image (FROM base_deps_image) [OPTIONAL] ↓ ssi_installer_image (FROM base_runtime_image OR base_deps_image) ↓ ssi_full_image (FROM ssi_installer_image) ↓ weblog_image (FROM ssi_full_image)
Workflow
- ⚠️ Create your PR as draft ⚠️
- Work on you PR until the CI passes
- Mark it as ready for review
- Test logic is modified? -> Get a review from RFC owner.
- Framework is modified, or non obvious usage of it -> get a review from R&P team
:rocket: Once your PR is reviewed and the CI green, you can merge it!
Reviewer checklist
- [ ] If PR title starts with
[<language>], double-check that only<language>is impacted by the change - [ ] No system-tests internal is modified. Otherwise, I have the approval from R&P team
- [ ] A docker base image is modified?
- [ ] the relevant
build-XXX-imagelabel is present
- [ ] the relevant
- [ ] A scenario is added (or removed)?
- [ ] Get a review from R&P team