MLE-31141: Merge ARM Docker feature branch to develop#467
Open
barkhachoithani wants to merge 37 commits into
Open
MLE-31141: Merge ARM Docker feature branch to develop#467barkhachoithani wants to merge 37 commits into
barkhachoithani wants to merge 37 commits into
Conversation
* 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>
…nd schedule ML12 ARM builds
MLE-27979 add publish flag
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.
…1775152441, 9.7-1775623882)
…es-arm MLE-28391: Update Docker base UBI images to the latest (ARM)
Co-authored-by: Copilot <copilot@github.com>
MLE-29914: update libnsl repo path to AlmaLinux 9.7
…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>
Contributor
There was a problem hiding this comment.
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_PTRACEusage. - 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. |
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>
barkhachoithani
requested review from
pengzhouml,
rwinieski,
sumanthravipati and
vitalykorolev
July 22, 2026 16:02
vitalykorolev
previously approved these changes
Jul 23, 2026
vitalykorolev
left a comment
Collaborator
There was a problem hiding this comment.
Ensure that the pipeline jobs are green for every image type before merging.
vitalykorolev
approved these changes
Jul 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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