[go: up one dir, main page]

CI/Images: Add base images for debian and ubuntu + datadog-ci

What

This is a preliminary work to add datadog-ci to all base images. This MR in particular setup the infrastructure needed to generate such images and add the first two images in the registry for debian and ubuntu.

Followup MR will add support also for apk and rpm based images as well as adding all our caches ( via env vars ) by default.

Why

To have observability by default everywhere in the CI

How

I add a new child pipeline that is manual in before merging pipelines to allow for easy testing and reduce the amount of jobs we need to run just when debugging/regenerating base images. An automatic pipeline ( with a changeset ) run in the scheduled pipeline.

I also added the job ( with changeset ) in the merge train pipeline as if we decide to modify these base images for some reasons ( security rebuild for example ), I think they should be available immediately to use, without waiting for a schedule pipeline the night after. These pipelines are very light, but I'm open to debate if this something we want or not.

The script to build the images uses quemu to do multi arch builds, simplifying the scripting and workflow ( same as we do for the ci-docker images ).

I use the docker caches as usual.

Tags on normal branches, for testing are postifixed with the name of the branch, while tags one protected branches are just tezos/distro:release

The image itself adds datadog-ci to the image using the script images/scripts/install_datadog_static.sh .

This script builds both amd64 and arm64 images in one go automatically handling the docker multi-arch manifest.

For the debian images I also add the APT_PROXY variable by default. So all images will have access to our proxy.

In a followup MR I'll add also support for kisscache and npm caches

Manually testing the MR

For the moment, these images are not used. We just need to make sure that the images are generated and stored in the registries.

For example:

$ docker run -it us-central1-docker.pkg.dev/nl-gitlab-runner/registry/tezos/tezos/ubuntu:jammy-abate-base-datadog-images
$ docker run -it us-central1-docker.pkg.dev/nl-gitlab-runner/registry/tezos/tezos/ubuntu:jammy-abate-base-datadog-images
root@f392a4cd7ff0:/# datadog-ci --version
3.4.0
root@f392a4cd7ff0:/# 

Checklist

  • Document the interface of any function added or modified (see the coding guidelines)
  • Document any change to the user interface, including configuration parameters (see node configuration)
  • Provide automatic testing (see the testing guide).
  • For new features and bug fixes, add an item in the appropriate changelog (docs/protocols/alpha.rst for the protocol and the environment, CHANGES.rst at the root of the repository for everything else).
  • Select suitable reviewers using the Reviewers field below.
  • Select as Assignee the next person who should take action on that MR
Edited by pietro

Merge request reports

Loading