Page MenuHomePhabricator

OpenSearch on K8s: build a new OpenSearch 2 Docker image
Closed, ResolvedPublic

Description

I created a proof-of-concept OpenSearch 2 image in T373034. The time has come to create a working production image for the OpenSearch on K8s project ( T362105 ).

AC:

  • Image is running OpenSearch 2
  • Image uses Debian's java packages instead of OpenSearch's bundled java
  • Image is compatible with the upstream OpenSearch helm chart and operator

Potential sources of inspiration:

Details

Related Changes in GitLab:
TitleReferenceAuthorSource BranchDest Branch
Add curl, java security policyrepos/data-engineering/opensearch!6bkingcurlmain
Use the docker entrypoint script from Amazon's build repo; clean uprepos/data-engineering/opensearch!5bkingentrypointmain
use openjdk-17-jre as base imagerepos/data-engineering/opensearch!4bkinguse-openjdk-imgmain
blubber.yaml: changes to mimic upstream opensearch imagerepos/data-engineering/opensearch!3bkingmimic-upstreammain
Test CI...againrepos/data-engineering/opensearch!2bkingci_testmain
README cleanup, trigger CIrepos/data-engineering/opensearch!1bkingdeb_javamain
Customize query in GitLab

Event Timeline

I've updated our OpenSearch docker image repo with a working image. There's still a bit left to do (see checkboxes above), but we're making progress.

bking changed the task status from Open to In Progress.Jul 15 2025, 2:54 PM
bking triaged this task as High priority.

Progress report:

I've been building the OpenSearch image using releng's java image because Debian's java packages are ill-behaved: they assume a manpage directory exists, and they won't install if it doesn't. I haven't been able to figure out how to work around this in Blubber.

However, that image is based on Bullseye and the systemd-standalone-tmpfiles package appears to have disappeared from our Bullseye repos sometime over the weekend. Unfortunately, this package is required for installing the opensearch package inside a container.

I've asked the Infrastructure Foundations team what happened to the package, but assuming it isn't becoming back, I'll need to either:

  • Figure out how to get Blubber to Java to install cleanly in a Bookworm container (maybe a separate step just to create a manpage dir, similar to the Dockerfile?)
  • Convince releng to make a Bookworm-based Java 17 image
  • Use Dockerfile or some alternative container building method

I'll start by talking to Releng.

You can use this image instead. https://docker-registry.wikimedia.org/openjdk-17-jre/tags/

That's based on bookworm, so you will still be able to install the systemd-standalone-tmpfiles package.

I've confirmed that our new opensearch image does work with the upstream cluster and operator charts . You can find the values files I used to deploy the operator and cluster here.

As we've satisfied the AC, I'm closing this ticket. Work to build an opensearch operator image continues in T400295...