Skip to content

MLE-31141: Merge ARM Docker feature branch to develop#467

Open
barkhachoithani wants to merge 37 commits into
developfrom
Docker-ARM-support
Open

MLE-31141: Merge ARM Docker feature branch to develop#467
barkhachoithani wants to merge 37 commits into
developfrom
Docker-ARM-support

Conversation

@barkhachoithani

Copy link
Copy Markdown
Collaborator

Description

Checklist:

  • Owner:
  • JIRA_ID as part of branch/PR name

  • Rebase the branch with upstream

  • Squashed all commits into a single commit

  • Added Tests

  • Reviewer:
  • Reviewed Tests

  • Added to Release Wiki/Jira

vitalykorolev and others added 29 commits March 26, 2026 11:23
* Update the build pipeline to handle ARM builds.
Adding new Docker image types: ubi9-arm and ubi9-rootless-arm.
Restructure the pipeline to run tests on external ARM agent.

* Increment Docker release version

* Update publishing flow and cleanup

* Fix image versioning.

* add MarkLogic 12 support

* add support for MarkLogic 12 ARM builds

* Clean up RPM path logic

* revert a bug

* remove graviton ip handling since jenkins takes care of the agent now

---------

Co-authored-by: Vitaly Korolev <vitaly.korolev@marklogic.com>
Prevent concurrent runs on a single EC2 instance
Add def keyword to top level variables
Revert last change.
Stash RPMs to ensure they're available across copy and builds stages.
…es-arm

MLE-28391: Update Docker base UBI images to the latest (ARM)
Co-authored-by: Copilot <copilot@github.com>
…dependency

MLE-30361: Fix aarch64 UBI9 libnsl dependency mismatch by updating to Rocky Linux 9.8 repo
)

* Update UBI base versions

* Remove UBI9 update to resolve libnsl conflict

* Fix notice file and increment Docker version for release

* MLE-24929 Add internal ECR publishing for K8s tests (#431)

* Add internal ECR publishing for K8s tests

* fix typo

* chore: derive ECR registry URL via STS instead of hardcoded account ID

Remove the global kubeNinjasEcrRegistry = '308453789681.dkr.ecr.us-west-1.amazonaws.com'
constant. Instead, resolve the AWS account ID at runtime inside the existing
KUBE_NINJAS_OPS_AWS_JENKINS withCredentials block using:

  aws sts get-caller-identity --query Account --output text

This eliminates the hardcoded account number and is consistent with the
approach used in marklogic-operator-kubernetes Jenkinsfile.

---------

Co-authored-by: Vitaly Korolev <vitaly.korolev@marklogic.com>

* Update Jenkinsfile

Add explicit region

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* MLE-22732 : BUGFIX stacktrace for root (#423)

* add missing python3 lib for root image

* fix some bugs and update README

* update lbnsl for UBI8

* review of the README

* rewording in README

* add lightweight test for gdb and python3

* fix issue with tzdata install

* sync with develop branch

* add microdnf clean all

* fix TZ issue

* fix gliches

* try fix issue with timezone

* fix test for gdb

* fix structure-tests.yaml

* MLE-27788: add tests for dynamic-host api changes

* Update test/keywords.resource

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* MLE-28295: restore redhat-lsb-core for UBI8 images

PR #423 removed redhat-lsb-core unconditionally from the UBI8 deps
image. Both MarkLogic 10 and 11 RPMs require the lsb-core-amd64
package it provides; ML12 does not.

Restore redhat-lsb-core to the main microdnf install line so it is
present for all ML versions on UBI8. The ML10 conditional block is
retained for libstdc++.i686 only.

* MLE-27707 : Add stack trace capability for rootless image (#429)

* review lib for stack trace and enable gdp for rootless

* Update dockerFiles/add mising microdnf clean

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix tzdata install

* fix TZ issue

* fix gliches

* new fix for tzdata

* fix test

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* PDP-1182: Remove per-repo pr-workflow.yaml

* PDP-1182: Remove per-repo pr-workflow.yaml

* MLE-3247: Load pipeline notification emails from Jenkins secret file

Replace hardcoded emailList and emailSecList global variables with a
loadEmailConfig() helper that reads both values from the
KUBE_NINJAS_PIPELINE_EMAILS Jenkins secret file credential at runtime.

The emailList pipeline parameter is kept as an optional override at the
bottom of the parameter list; when left blank the credential value is
used, preserving the existing override behaviour for ad-hoc build runs.

* MLE-28391: Update UBI base images to latest (8.10-1775152441, 9.7-1775623882)

* MLE-29349: Update libnsl RPM version to match upgraded glibc 2.28-251.el8_10.34

* MLE-29350: Publish MarkLogic 11 nightly Docker images to PDC

* MLE-29703 MLE-29709 Update UBI base images and fix libnsl dependency

- Update UBI8 base image: 8.10-1775152441 -> 8.10-1778735208
- Update UBI9 base image: 9.7-1775623882 -> 9.7-1778562320
- Fix UBI8 libnsl: bump to el8_10.34 (matches updated glibc)
- Fix UBI9 libnsl: use --nodeps to bypass glibc el9_8 version pin
  (UBI CDN serves glibc el9_8 after microdnf update; AlmaLinux 9.8 stable
  not yet released; libnsl.so.1 ABI compatible across all RHEL 9.x)
- Bump dockerVersion 2.2.4 -> 2.2.5 in Jenkinsfile and keywords.resource

* MLE-29703 Address PR review: targeted glibc upgrade and cache cleanup in UBI9 deps

- Replace broad microdnf -y update with targeted microdnf -y upgrade glibc
- Add microdnf clean all in same RUN layer to reduce image layer size
- Add comment explaining why --nodeps is required and safe for libnsl install

* MLE-29703 MLE-29709 Update UBI base images and fix libnsl dependency

- Update UBI8 base image: 8.10-1771947229 -> 8.10-1778735208
- Update UBI9 base image: 9.7-1771346502 -> 9.7-1778562320
- Fix UBI8 libnsl: bump to el8_10.34, targeted glibc upgrade, cache cleanup
- Fix UBI9 libnsl: use --nodeps to bypass glibc el9_8 version pin,
  targeted glibc upgrade, cache cleanup; add comment explaining rationale
- Bump dockerVersion 2.2.4 -> 2.2.5 in Jenkinsfile and keywords.resource

* Revert "MLE-29703 MLE-29709 Update UBI base images and fix libnsl dependency"

This reverts commit a50402c.

* MLE-29703 MLE-29709 Update UBI base images and fix libnsl dependency

- Update UBI8 base image: 8.10-1771947229 -> 8.10-1778735208
- Update UBI9 base image: 9.7-1771346502 -> 9.7-1778562320
- Fix UBI8 libnsl: bump to el8_10.34, targeted glibc upgrade, cache cleanup
- Fix UBI9 libnsl: use --nodeps to bypass glibc el9_8 version pin,
  targeted glibc upgrade, cache cleanup; add comment explaining rationale
- Bump dockerVersion 2.2.4 -> 2.2.5 in Jenkinsfile and keywords.resource

* Revert "MLE-29703 MLE-29709 Update UBI base images and fix libnsl dependency"

This reverts commit 15ad66f.

* MLE-29703 MLE-29709 Update UBI base images and fix libnsl dependency

- Update UBI8 base image: 8.10-1771947229 -> 8.10-1778735208
- Update UBI9 base image: 9.7-1771346502 -> 9.7-1778562320
- Fix UBI8 libnsl: bump to el8_10.34, targeted glibc upgrade, cache cleanup
- Fix UBI9 libnsl: use --nodeps to bypass glibc el9_8 version pin,
  targeted glibc upgrade, cache cleanup; add comment explaining rationale
- Bump dockerVersion 2.2.4 -> 2.2.5 in Jenkinsfile and keywords.resource

* MLE-29737: Remove MarkLogic 10 builds from pipeline (#453)

Co-authored-by: sumanthravipati <sumanth.ravipati@progress.com>

* MLE-29914: update libnsl repo path to AlmaLinux 9.7

* MLE-29914: update libnsl repo path to AlmaLinux 9.7

* MLE-29914: update UBI8 libnsl repo path to AlmaLinux 8.10

* MLE-29914: update UBI8 libnsl repo path to AlmaLinux 8.10

* MLE-29914: add --nodeps to UBI8 libnsl install to fix glibc compatibility

* MLE-29914: add --nodeps to UBI8 libnsl install to fix glibc compatibility

* MLE-29914: upgrade tzdata in UBI8 deps to fix reinstall failure in server image

* MLE-30361: Update libnsl URL to AlmaLinux 9.8 to match glibc upgrade

* Update libnsl version

* Increment Docker version to 2.2.6

* increment marklogic version in tests

* implement copilot suggestions (typos)

* increment docker version with the release

* fix mixed up merge

* another missing commit

* MLE-4163: robot tests enhancements (#464)

* robot tests enhancements

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* recommendation fixes

* updated test tags

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* updated compose file names and removed redundant compose yaml.

* updated copyright info in compose files

* added test numbers

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Vitaly <vitaly.korolev@gmail.com>
Co-authored-by: Vitaly <korolev@progress.com>
Co-authored-by: Vitaly Korolev <vitaly.korolev@marklogic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Romain Winieski <winieski@progress.com>
Co-authored-by: tposham <tposham@progress.com>
Co-authored-by: SameeraPriyathamTadikonda <preethu4476@gmail.com>
Co-authored-by: sumanthravipati <43222215+sumanthravipati@users.noreply.github.com>
Co-authored-by: sumanthravipati <sumanth.ravipati@progress.com>
@barkhachoithani
barkhachoithani requested a review from Copilot July 17, 2026 18:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR merges an ARM-focused feature branch into develop, extending the MarkLogic Docker build/test system to support ARM64 image variants while also improving crash-debug/stack-trace support and updating the test suite + compose scenarios.

Changes:

  • Add ARM64 build support across the build system (Makefile + Jenkins pipeline), including new UBI9 ARM Dockerfile templates and cross-agent image handoff via docker save/load.
  • Improve debugging support by retaining/validating stack-trace tooling (gdb/python3) and documenting SYS_PTRACE usage.
  • Restructure and expand Robot/compose-based tests (test IDs, updated compose scenarios, additional dynamic-host/coupled-cluster coverage).

Reviewed changes

Copilot reviewed 31 out of 33 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
test/structure-test.yaml Adds structure assertions for gdb and python3 binaries.
test/keywords.resource Introduces configurable Docker platform selection and updates test image/version defaults.
test/docker-tests.robot Renames tests with IDs, updates compose file references, and adds coupled-cluster/dynamic-host validations.
test/compose-test-1.yaml Removed legacy compose scenario file.
test/compose-test-2.yaml Removed legacy compose scenario file.
test/compose-test-14.yaml Removed legacy compose scenario file.
test/compose-test-15.yaml Removed legacy compose scenario file.
test/compose-3core-11dynamic-hosts.yaml Updates scenario header/metadata for the dynamic-host topology.
test/compose-2x2node-clusters-secrets.yaml New compose scenario for two separate clusters (cross-cluster coupling tests).
test/compose-2node-second-uninitialized.yaml Updates scenario header/metadata.
test/compose-2node-second-uncoupled.yaml Updates scenario header/metadata.
test/compose-2node-join-https-secrets.yaml Updates scenario header/metadata.
test/compose-2node-join-https-missing-cacert.yaml Updates scenario header/metadata.
test/compose-2node-join-https-invalid-tls.yaml Updates scenario header/metadata.
test/compose-2node-join-enode-secrets.yaml Updates scenario header/metadata.
test/compose-2node-invalid-bootstrap-host.yaml Updates scenario header/metadata.
test/compose-2node-cluster-env-creds.yaml Updates scenario header/metadata.
test/compose-2node-bootstrap-only.yaml Updates scenario header/metadata.
test/compose-1node-self-join.yaml Updates scenario header/metadata.
test/compose-1node-bootstrap-env-creds.yaml Updates scenario header/metadata.
README.md Documents stack-trace enablement (SYS_PTRACE) and updates command/code fence formatting; adds cap_add to compose examples.
NOTICE.txt Updates copyright year.
Makefile Adds platform selection logic + ARM emulation setup; improves SCAP container handling; adds Robot test ID catalog helper.
Jenkinsfile Major pipeline updates: ARM agent support, artifact stashing, image save/load across agents, updated publishing/email handling.
dockerFiles/marklogic-server-ubi9-arm:base New UBI9 ARM server image template.
dockerFiles/marklogic-server-ubi:base Keeps stack-trace-related deps (python/gdb) by adjusting vulnerability-removal list.
dockerFiles/marklogic-server-ubi-rootless:base ARM-aware TINI download + GDB capability setup; retains stack-trace dependencies.
dockerFiles/marklogic-deps-ubi9:base Updates base image + libnsl/glibc handling and adds stack-trace tooling deps.
dockerFiles/marklogic-deps-ubi9-arm:base New UBI9 ARM deps image template.
dockerFiles/marklogic-deps-ubi:base Updates base image + libnsl handling and adds stack-trace tooling deps.
.github/workflows/pr-workflow.yaml Removes the PR workflow (JIRA/copyright validation).
.github/PULL_REQUEST_TEMPLATE.md Minor formatting tweak.
.github/copilot-instructions.md Minor formatting tweak.

Comment thread README.md
Comment thread README.md
Comment thread README.md
Comment thread README.md
Comment thread README.md
Comment thread dockerFiles/marklogic-deps-ubi9-arm:base Outdated
Comment thread dockerFiles/marklogic-server-ubi9-arm:base
Comment thread Jenkinsfile Outdated
Comment thread Jenkinsfile Outdated
Comment thread Jenkinsfile
vitalykorolev and others added 6 commits July 20, 2026 18:42
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
vitalykorolev
vitalykorolev previously approved these changes Jul 23, 2026

@vitalykorolev vitalykorolev left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure that the pipeline jobs are green for every image type before merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants