Openjdk-tests: Gather Requirements for enabling TestContainers on P & Z Linux, ARM

Created on 23 Oct 2020  路  7Comments  路  Source: AdoptOpenJDK/openjdk-tests

This issue is intended to gather answers for 2 questions:

  1. What is needed to enable TestContainers on some platforms that are currently not supported on?

  2. If TestContainers are enabled on more platforms that we require, where can we leverage them at the project?

discussion

Most helpful comment

We roughly outlined the following short term TODOs:

  • Researching and building a PowerPC based image of Ryuk (has been proven to work in our call)
  • Running the adopt ca test as a proof-of-concept using the PowerPC Ryuk image on a remote docker daemon (the test itself can run on a JVM running in x86)

More long term plans involve making sure Testcontainers and docker-java work on the other architectures as well, however, this is not a requirement for this issue here (which only tackles instrumenting containers running on those architectures).

Besides Ryuk, the other sidecar containers (VNC, Socat, etc.) are not a high priority to get running on the architectures.

All 7 comments

For installer and OS package testing, we need:

  • GenericContainer with resource clean-up on all Linux-based platforms supported by AdoptOpenJDK: arm, aarch64, ppc64le, s390x.
  • GenericContainer with Windows Containers (Windows running inside the container). Resource clean-up is optional because we can run the test in disposable VMs.

Is Docker already supported on the mentioned Linux-based platforms?

Depends on the definition of supported. Docker is in principle available on those platforms and more. See for example Debian: https://packages.debian.org/buster/docker.io. Docker themselves only offers packages for amd64, armhf and arm64 (https://docs.docker.com/engine/install/debian/).

We're already producing container images for all those platforms, see https://hub.docker.com/_/adoptopenjdk.

Travis CI has multi-arch support for OSS projects: https://docs.travis-ci.com/user/multi-cpu-architectures. It covers all architectures we currently need and Docker (via LXD) is preinstalled.

We roughly outlined the following short term TODOs:

  • Researching and building a PowerPC based image of Ryuk (has been proven to work in our call)
  • Running the adopt ca test as a proof-of-concept using the PowerPC Ryuk image on a remote docker daemon (the test itself can run on a JVM running in x86)

More long term plans involve making sure Testcontainers and docker-java work on the other architectures as well, however, this is not a requirement for this issue here (which only tackles instrumenting containers running on those architectures).

Besides Ryuk, the other sidecar containers (VNC, Socat, etc.) are not a high priority to get running on the architectures.

I'd also suggest getting the research team familiar with running Testcontainers with the adopt ca tests on plain old Intel architecture first. Running on PowerPC may work easily, but it's uncharted territory and probably better if they have a known-working setup to refer back to (plus the experience of running it).

Also to emphasise something mentioned on the call: it's always an option to disable ryuk and disable startup self-checks to make Testcontainers work without sidecar containers. This might allow progress to be made with running your containers on PowerPC _in parallel_ to the effort to port the sidecar images. We don't recommend running without these sidecars for long, but they can be disabled for experimentation.

I believe the gathering of requirements has happened, and some great progress has been made (from both the TestContainers team (https://twitter.com/whichrich/status/1341730726270492672, hazaa!) and from Adopt superhero @aahlenst on the installer testing 馃憤 ). I believe I can close this issue. Put a comment if you feel I should re-open, but I think the remaining work of putting installer testing in place will fall under separate issues.

Was this page helpful?
0 / 5 - 0 ratings