Skip to content
This repository has been archived by the owner on Sep 19, 2021. It is now read-only.

Update build-tool image to support real multi-arch image build #69

Open
5 of 7 tasks
morvencao opened this issue Mar 21, 2020 · 1 comment
Open
5 of 7 tasks

Update build-tool image to support real multi-arch image build #69

morvencao opened this issue Mar 21, 2020 · 1 comment
Assignees

Comments

@morvencao
Copy link

morvencao commented Mar 21, 2020

Currently, we have two docker images to provide building env for prow jobs:

  1. quay.io/multicloudlab/build-tools
  2. quay.io/multicloudlab/multicloudlab-builder

The first image contains all kinds of linter(golangci-linter, helm, yamllinter, mdl, shellcheck...) and some common language runtime( nodejs, python, ruby, golang...). It's mainly used to provide env for:

  • make check
  • make build(without docker image)
  • make coverage....

The second image contains golang, gcloud-sdk(to get credentials from GKE cluster) and docker client and daemon. It's mainly used to provide env for:

  • make image(build go binary and docker image)

We need to pay attention to the command of prow job when trying to use the second image, because we need to start docker daemon before running the make target, so you can see, I have to manually add entrypoint before `make images':

      - command:
        - entrypoint
        - make
        - images
        image: quay.io/multicloudlab/multicloudlab-builder:v20191217-d33a10d

Since we're going to support real multi-arch build(building artifacts in each platform) to replace current qemu simulation on amd64 platform, we need to build the build-tool image for different platforms(amd64, ppc64le and s390x).

However, given that the original quay.io/multicloudlab/build-tools image contains lots of linter tools that haven't been migrated to ppc64le and s390x. Besides IMO, running the make check or make lint stage in single platform(amd64) should be sufficient.

So my plan is:

  • rename the quay.io/multicloudlab/build-tools image to quay.io/multicloudlab/check-tool
  • only support the quay.io/multicloudlab/check-tool image for amd64 and make sure make check or make lint only run on amd64 cluster.
  • rename the quay.io/multicloudlab/multicloudlab-builder image to quay.io/multicloudlab/build-tool
  • support all platforms(amd64, power and s390x) for the quay.io/multicloudlab/build-tool image and create multi-arch manifest for it.
  • reduce the size of the quay.io/multicloudlab/check-tool and quay.io/multicloudlab/build-tool images by removing the unused tools for now, we can add more tools if required.
  • create prow jobs to automatically build the quay.io/multicloudlab/check-tool and quay.io/multicloudlab/build-tool images once any file in https://github.com/IBM/test-infra/tree/master/prow/docker is changed.
  • create prow job to automatically update the quay.io/multicloudlab/check-tool and quay.io/multicloudlab/build-tool images for all prow jobs after new images are ready in quay.io

/kind epic
/assign
/cc @gyliu513

@IBM IBM deleted a comment from ibm-ci-bot Mar 21, 2020
@IBM IBM deleted a comment from ibm-ci-bot Mar 21, 2020
@IBM IBM deleted a comment from ibm-ci-bot Mar 21, 2020
@IBM IBM deleted a comment from ibm-ci-bot Mar 21, 2020
@IBM IBM deleted a comment from ibm-ci-bot Mar 21, 2020
@IBM IBM deleted a comment from ibm-ci-bot Mar 21, 2020
@morvencao
Copy link
Author

Have implemented 1-5 by the following PR:

For 6, I encountered the traffic issue while build build-tool image on power cluster, power guys are looking..., I have to manually build build-tool image for ppc64le now to workaround this.
For 7, I'll put it to future, may be need to create prow plugin for this.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants