Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configure all container image names in a one place #45746

Open
Karm opened this issue Jan 21, 2025 · 1 comment
Open

Configure all container image names in a one place #45746

Karm opened this issue Jan 21, 2025 · 1 comment
Labels
area/container-image area/housekeeping Issue type for generalized tasks not related to bugs or enhancements good first issue Good for newcomers

Comments

@Karm
Copy link
Member

Karm commented Jan 21, 2025

Description

Loosely related to #37912

I recently found myself in a situation where I wanted the TS run to use images from Quay.io instead of Docker.io. I had all the necessary images and tags ready, and yet the last mile, to actually make the TS to use them, was a surprisingly annoying experience.

The images found here in pom.xml are a mere subset of what you need to successfully execute all categories from native-tests.json.

Some images are in pom.xml, some are scattered in Java source files and IIUC, some are left to be set by TestContainers and its own defaults.

I ended up doing this before Quarkus build:

find . -name "pom.xml" -exec sed -i 's~image>docker.io/~image>quay.io/MYREPO/~g' {} \;
find . -name "*.java" -exec sed -i 's~"apachepulsar/pulsar:~"quay.io/MYREPO/apachepulsar/pulsar:~g' {} \;
find . -name "*.java" -exec sed -i 's~"axllent/mailpit~"quay.io/MYREPO/axllent/mailpit~g' {} \;
find . -name "*.java" -exec sed -i 's~"docker.io/grafana/otel-lgtm:~"quay.io/MYREPO/grafana/otel-lgtm:~g' {} \;
find . -name "pom.xml" -exec sed -i 's~<name>redis:~<name>quay.io/MYREPO/redis:~g' {} \;
find . -name "*.java" -exec sed -i 's~"rabbitmq:~"quay.io/MYREPO/rabbitmq:~g' {} \;
find . -name "*.java" -exec sed -i 's~"reachfive/fake-smtp-server:~"quay.io/MYREPO/reachfive/fake-smtp-server:~g' {} \;
find . -name "*.java" -exec sed -i 's~"docker.io/vectorized/redpanda~"quay.io/MYREPO/vectorized/redpanda~g' {} \;
find . -name "*.java" -exec sed -i 's~"vectorized/redpanda~"quay.io/MYREPO/vectorized/redpanda~g' {} \; 

...and then Quarkus build and then running the Integration testsuite.

It works, but it feels very brittle.

Proposal

I would like us to be able to configure all images in a one place, being it pom.xml or a property file. The source is riddled with people adding images here and there and you cannot even tell what all containers Quarkus depends on overall without cleverly grepping the sources for strings that might be container names.

I realize various extensions could bring arbitrary container image dependencies. This issue is meant to be concerned with the core Quarkus repo and its Integration testsuite in this main repo.

Implementation ideas

No response

@Karm Karm added area/housekeeping Issue type for generalized tasks not related to bugs or enhancements good first issue Good for newcomers labels Jan 21, 2025
Copy link

quarkus-bot bot commented Jan 21, 2025

/cc @radcortez (config)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/container-image area/housekeeping Issue type for generalized tasks not related to bugs or enhancements good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants