system-tests icon indicating copy to clipboard operation
system-tests copied to clipboard

Docker SSI: Update the docker build system to use rebuildr

Open robertomonteromiguel opened this issue 1 month ago • 0 comments
trafficstars

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

  1. ⚠️ Create your PR as draft ⚠️
  2. Work on you PR until the CI passes
  3. 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!

🛟 #apm-shared-testing 🛟

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-image label is present
  • [ ] A scenario is added (or removed)?

robertomonteromiguel avatar Sep 26 '25 09:09 robertomonteromiguel