linkerd / linkerd/linkerd2

Cache external images in integration tests

Open
#7,587 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/test enhancement
Dominant language
Go
Stars
11.5k
Forks
1.4k
Avg merge
3d 22h
Merged PRs (30d)
53

Description

### What problem are you trying to solve?

One potential way of speeding up our integration tests might be to cache external dependencies. When discussing https://github.com/linkerd/linkerd2/issues/7403 with @alpeb, we noticed certain tests that rely on external images (such as rabbitmq, emojivoto and so on) tend to take longer to complete.

Same conclusion was sort of reached in https://github.com/linkerd/linkerd2/issues/7538#issuecomment-1006539192 too. Emojivoto in tracing takes quite a long time to spin up. We could perhaps lower these times if we can cache the images ahead of time instead of pulling them in.

### How should the problem be solved?

Cache external images that we use throughout our integration tests. Might be similar to how we do our caching for linkerd images:
https://github.com/linkerd/linkerd2/blob/main/.github/actions/docker-build/action.yml.

Luckily, the cache size was bumped to 10GB 🤞🏻

### Any alternatives you've considered?

N/A

### How would users interact with this feature?

_No response_

### Would you like to work on this feature?

maybe

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading .github/actions/docker-build/action.yml and reviewing the integration tests that pull external images such as RabbitMQ and Emojivoto. Define completion as caching the external images used by those tests before they run, with the integration tests completing successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, github-actions
Domain
ci-cd, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.