Skip to content

CLOUDP-336718: Bump Ops Manager Container Image version to 8.0.12 #318

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

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .evergreen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ variables:

- &ops_manager_70_latest 7.0.15 # The order/index is important, since these are anchors. Please do not change

- &ops_manager_80_latest 8.0.11 # The order/index is important, since these are anchors. Please do not change
- &ops_manager_80_latest 8.0.12 # The order/index is important, since these are anchors. Please do not change

# The dependency unification between static and non-static is intentional here.
# Even though some images are exclusive, in EVG they all are built once and in parallel.
Expand Down
20 changes: 10 additions & 10 deletions config/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,14 @@ spec:
value: "quay.io/mongodb/mongodb-agent-ubi:108.0.11.8830-1_1.1.0"
- name: RELATED_IMAGE_AGENT_IMAGE_108_0_11_8830_1_1_2_0
value: "quay.io/mongodb/mongodb-agent-ubi:108.0.11.8830-1_1.2.0"
- name: RELATED_IMAGE_AGENT_IMAGE_108_0_12_8846_1
value: "quay.io/mongodb/mongodb-agent-ubi:108.0.12.8846-1"
- name: RELATED_IMAGE_AGENT_IMAGE_108_0_12_8846_1_1_0_1
value: "quay.io/mongodb/mongodb-agent-ubi:108.0.12.8846-1_1.0.1"
- name: RELATED_IMAGE_AGENT_IMAGE_108_0_12_8846_1_1_1_0
value: "quay.io/mongodb/mongodb-agent-ubi:108.0.12.8846-1_1.1.0"
- name: RELATED_IMAGE_AGENT_IMAGE_108_0_12_8846_1_1_2_0
value: "quay.io/mongodb/mongodb-agent-ubi:108.0.12.8846-1_1.2.0"
- name: RELATED_IMAGE_AGENT_IMAGE_108_0_2_8729_1
value: "quay.io/mongodb/mongodb-agent-ubi:108.0.2.8729-1"
- name: RELATED_IMAGE_AGENT_IMAGE_108_0_2_8729_1_1_0_1
Expand Down Expand Up @@ -226,14 +234,6 @@ spec:
value: "quay.io/mongodb/mongodb-agent-ubi:108.0.7.8810-1_1.1.0"
- name: RELATED_IMAGE_AGENT_IMAGE_108_0_7_8810_1_1_2_0
value: "quay.io/mongodb/mongodb-agent-ubi:108.0.7.8810-1_1.2.0"
- name: RELATED_IMAGE_AGENT_IMAGE_12_0_33_7866_1
value: "quay.io/mongodb/mongodb-agent-ubi:12.0.33.7866-1"
- name: RELATED_IMAGE_AGENT_IMAGE_12_0_33_7866_1_1_0_1
value: "quay.io/mongodb/mongodb-agent-ubi:12.0.33.7866-1_1.0.1"
- name: RELATED_IMAGE_AGENT_IMAGE_12_0_33_7866_1_1_1_0
value: "quay.io/mongodb/mongodb-agent-ubi:12.0.33.7866-1_1.1.0"
- name: RELATED_IMAGE_AGENT_IMAGE_12_0_33_7866_1_1_2_0
value: "quay.io/mongodb/mongodb-agent-ubi:12.0.33.7866-1_1.2.0"
- name: RELATED_IMAGE_AGENT_IMAGE_12_0_34_7888_1
value: "quay.io/mongodb/mongodb-agent-ubi:12.0.34.7888-1"
- name: RELATED_IMAGE_AGENT_IMAGE_12_0_34_7888_1_1_0_1
Expand All @@ -258,8 +258,6 @@ spec:
value: "quay.io/mongodb/mongodb-agent-ubi:13.37.0.9590-1_1.1.0"
- name: RELATED_IMAGE_AGENT_IMAGE_13_37_0_9590_1_1_2_0
value: "quay.io/mongodb/mongodb-agent-ubi:13.37.0.9590-1_1.2.0"
- name: RELATED_IMAGE_OPS_MANAGER_IMAGE_REPOSITORY_6_0_25
value: "quay.io/mongodb/mongodb-enterprise-ops-manager-ubi:6.0.25"
- name: RELATED_IMAGE_OPS_MANAGER_IMAGE_REPOSITORY_6_0_26
value: "quay.io/mongodb/mongodb-enterprise-ops-manager-ubi:6.0.26"
- name: RELATED_IMAGE_OPS_MANAGER_IMAGE_REPOSITORY_6_0_27
Expand Down Expand Up @@ -292,6 +290,8 @@ spec:
value: "quay.io/mongodb/mongodb-enterprise-ops-manager-ubi:8.0.7"
- name: RELATED_IMAGE_OPS_MANAGER_IMAGE_REPOSITORY_8_0_11
value: "quay.io/mongodb/mongodb-enterprise-ops-manager-ubi:8.0.11"
- name: RELATED_IMAGE_OPS_MANAGER_IMAGE_REPOSITORY_8_0_12
value: "quay.io/mongodb/mongodb-enterprise-ops-manager-ubi:8.0.12"
# since the official server images end with a different suffix we can re-use the same $mongodbImageEnv
- name: RELATED_IMAGE_MONGODB_IMAGE_4_4_0_ubi8
value: "quay.io/mongodb/mongodb-enterprise-server:4.4.0-ubi8"
Expand Down
19 changes: 2 additions & 17 deletions docker/mongodb-agent/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,5 @@
FROM scratch AS base

ARG agent_version
ARG agent_distro
ARG tools_version
ARG tools_distro

ADD https://mciuploads.s3.amazonaws.com/mms-automation/mongodb-mms-build-agent/builds/automation-agent/prod/mongodb-mms-automation-agent-${agent_version}.${agent_distro}.tar.gz /data/mongodb-agent.tar.gz
ADD https://downloads.mongodb.org/tools/db/mongodb-database-tools-${tools_distro}-${tools_version}.tgz /data/mongodb-tools.tgz

COPY ./docker/mongodb-kubernetes-init-database/content/LICENSE /data/LICENSE
COPY ./docker/mongodb-kubernetes-init-database/content/LICENSE /data/LICENSE
COPY ./docker/mongodb-agent/agent-launcher-shim.sh /opt/scripts/agent-launcher-shim.sh
COPY ./docker/mongodb-agent/setup-agent-files.sh /opt/scripts/setup-agent-files.sh
COPY ./docker/mongodb-agent/dummy-probe.sh /opt/scripts/dummy-probe.sh
COPY ./docker/mongodb-agent/dummy-readinessprobe.sh /opt/scripts/dummy-readinessprobe.sh
ARG imagebase
FROM ${imagebase} as base

FROM registry.access.redhat.com/ubi9/ubi-minimal

Expand Down Expand Up @@ -55,7 +41,6 @@ RUN mkdir -p /agent \
&& touch /var/log/mongodb-mms-automation/readiness.log \
&& chmod ugo+rw /var/log/mongodb-mms-automation/readiness.log


COPY --from=base /data/mongodb-agent.tar.gz /agent
COPY --from=base /data/mongodb-tools.tgz /agent
COPY --from=base /data/LICENSE /licenses/LICENSE
Expand Down
80 changes: 80 additions & 0 deletions docker/mongodb-agent/Dockerfile.atomic
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
FROM scratch AS base

ARG agent_version
ARG agent_distro
ARG tools_version
ARG tools_distro

ADD https://mciuploads.s3.amazonaws.com/mms-automation/mongodb-mms-build-agent/builds/automation-agent/prod/mongodb-mms-automation-agent-${agent_version}.${agent_distro}.tar.gz /data/mongodb-agent.tar.gz
ADD https://downloads.mongodb.org/tools/db/mongodb-database-tools-${tools_distro}-${tools_version}.tgz /data/mongodb-tools.tgz

COPY ./docker/mongodb-kubernetes-init-database/content/LICENSE /data/LICENSE
COPY ./docker/mongodb-kubernetes-init-database/content/LICENSE /data/LICENSE
COPY ./docker/mongodb-agent/agent-launcher-shim.sh /opt/scripts/agent-launcher-shim.sh
COPY ./docker/mongodb-agent/setup-agent-files.sh /opt/scripts/setup-agent-files.sh
COPY ./docker/mongodb-agent/dummy-probe.sh /opt/scripts/dummy-probe.sh
COPY ./docker/mongodb-agent/dummy-readinessprobe.sh /opt/scripts/dummy-readinessprobe.sh

FROM registry.access.redhat.com/ubi9/ubi-minimal

ARG version

LABEL name="MongoDB Agent" \
version="${version}" \
summary="MongoDB Agent" \
description="MongoDB Agent" \
vendor="MongoDB" \
release="1" \
maintainer="[email protected]"

# Replace libcurl-minimal and curl-minimal with the full versions
# https://bugzilla.redhat.com/show_bug.cgi?id=1994521
RUN microdnf install -y libssh libpsl libbrotli \
&& microdnf download curl libcurl \
&& rpm -Uvh --nodeps --replacefiles "*curl*$( uname -i ).rpm" \
&& microdnf remove -y libcurl-minimal curl-minimal

RUN microdnf install -y --disableplugin=subscription-manager --setopt=install_weak_deps=0 nss_wrapper
# Copy-pasted from https://www.mongodb.com/docs/manual/tutorial/install-mongodb-enterprise-on-red-hat-tarball/
RUN microdnf install -y --disableplugin=subscription-manager \
cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs openldap openssl xz-libs
# Dependencies for the Agent
RUN microdnf install -y --disableplugin=subscription-manager --setopt=install_weak_deps=0 \
net-snmp \
net-snmp-agent-libs
RUN microdnf install -y --disableplugin=subscription-manager \
hostname tar gzip procps jq \
&& microdnf upgrade -y \
&& rm -rf /var/lib/apt/lists/*

RUN mkdir -p /agent \
&& mkdir -p /var/lib/mongodb-mms-automation \
&& mkdir -p /var/log/mongodb-mms-automation/ \
&& chmod -R +wr /var/log/mongodb-mms-automation/ \
# ensure that the agent user can write the logs in OpenShift
&& touch /var/log/mongodb-mms-automation/readiness.log \
&& chmod ugo+rw /var/log/mongodb-mms-automation/readiness.log


COPY --from=base /data/mongodb-agent.tar.gz /agent
COPY --from=base /data/mongodb-tools.tgz /agent
COPY --from=base /data/LICENSE /licenses/LICENSE

# Copy scripts to a safe location that won't be overwritten by volume mount
COPY --from=base /opt/scripts/agent-launcher-shim.sh /usr/local/bin/agent-launcher-shim.sh
COPY --from=base /opt/scripts/setup-agent-files.sh /usr/local/bin/setup-agent-files.sh
COPY --from=base /opt/scripts/dummy-probe.sh /usr/local/bin/dummy-probe.sh
COPY --from=base /opt/scripts/dummy-readinessprobe.sh /usr/local/bin/dummy-readinessprobe

RUN tar xfz /agent/mongodb-agent.tar.gz \
&& mv mongodb-mms-automation-agent-*/mongodb-mms-automation-agent /agent/mongodb-agent \
&& chmod +x /agent/mongodb-agent \
&& mkdir -p /var/lib/automation/config \
&& chmod -R +r /var/lib/automation/config \
&& rm /agent/mongodb-agent.tar.gz \
&& rm -r mongodb-mms-automation-agent-*

RUN tar xfz /agent/mongodb-tools.tgz --directory /var/lib/mongodb-mms-automation/ && rm /agent/mongodb-tools.tgz

USER 2000
CMD ["/agent/mongodb-agent", "-cluster=/var/lib/automation/config/automation-config.json"]
95 changes: 95 additions & 0 deletions docker/mongodb-enterprise-ops-manager/Dockerfile.atomic
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Build compilable stuff

FROM public.ecr.aws/docker/library/golang:1.24 AS readiness_builder
COPY . /go/src/github.com/mongodb/mongodb-kubernetes
WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes

RUN CGO_ENABLED=0 go build -a -buildvcs=false -o /data/scripts/mmsconfiguration ./docker/mongodb-kubernetes-init-ops-manager/mmsconfiguration/edit_mms_configuration.go
RUN CGO_ENABLED=0 go build -a -buildvcs=false -o /data/scripts/backup-daemon-readiness-probe ./docker/mongodb-kubernetes-init-ops-manager/backupdaemon_readinessprobe/backupdaemon_readiness.go

# Move binaries and scripts
FROM scratch AS base

COPY --from=readiness_builder /data/scripts/mmsconfiguration /data/scripts/mmsconfiguration
COPY --from=readiness_builder /data/scripts/backup-daemon-readiness-probe /data/scripts/backup-daemon-readiness-probe

# After v2.0, when non-Static Agent images will be removed, please ensure to copy those files
# into ./docker/mongodb-enterprise-ops-manager directory. Leaving it this way will make the maintenance easier.
COPY ./docker/mongodb-kubernetes-init-ops-manager/scripts/docker-entry-point.sh /data/scripts
COPY ./docker/mongodb-kubernetes-init-ops-manager/scripts/backup-daemon-liveness-probe.sh /data/scripts
COPY ./docker/mongodb-kubernetes-init-ops-manager/LICENSE /data/licenses/mongodb-enterprise-ops-manager

FROM registry.access.redhat.com/ubi9/ubi-minimal

ARG version
ARG om_download_url

LABEL name="MongoDB Enterprise Ops Manager" \
maintainer="[email protected]" \
vendor="MongoDB" \
version=${version} \
release="1" \
summary="MongoDB Enterprise Ops Manager Image" \
description="MongoDB Enterprise Ops Manager"

ENV MMS_HOME=/mongodb-ops-manager
ENV MMS_PROP_FILE=${MMS_HOME}/conf/conf-mms.properties
ENV MMS_CONF_FILE=${MMS_HOME}/conf/mms.conf
ENV MMS_LOG_DIR=${MMS_HOME}/logs
ENV MMS_TMP_DIR=${MMS_HOME}/tmp

EXPOSE 8080

# OpsManager docker image needs to have the MongoDB dependencies because the
# backup daemon is running its database locally

# Replace libcurl-minimal and curl-minimal with the full versions
# https://bugzilla.redhat.com/show_bug.cgi?id=1994521
RUN microdnf install -y libssh libpsl libbrotli \
&& microdnf download curl libcurl \
&& rpm -Uvh --nodeps --replacefiles "*curl*$( uname -i ).rpm" \
&& microdnf remove -y libcurl-minimal curl-minimal

RUN microdnf install --disableplugin=subscription-manager -y \
cyrus-sasl \
cyrus-sasl-gssapi \
cyrus-sasl-plain \
krb5-libs \
libpcap \
lm_sensors-libs \
net-snmp \
net-snmp-agent-libs \
openldap \
openssl \
tar \
rpm-libs \
net-tools \
procps-ng \
ncurses

COPY --from=base /data/licenses /licenses/
COPY --from=base /data/scripts /opt/scripts

RUN curl --fail -L -o ops_manager.tar.gz ${om_download_url} \
&& tar -xzf ops_manager.tar.gz \
&& rm ops_manager.tar.gz \
&& mv mongodb-mms* "${MMS_HOME}"

# permissions
RUN chmod -R 0777 "${MMS_LOG_DIR}" \
&& chmod -R 0777 "${MMS_TMP_DIR}" \
&& chmod -R 0775 "${MMS_HOME}/conf" \
&& chmod -R 0775 "${MMS_HOME}/jdk" \
&& mkdir "${MMS_HOME}/mongodb-releases/" \
&& chmod -R 0775 "${MMS_HOME}/mongodb-releases" \
&& chmod -R 0777 "${MMS_CONF_FILE}" \
&& chmod -R 0777 "${MMS_PROP_FILE}"

# The "${MMS_HOME}/conf" will be populated by the docker-entry-point.sh.
# For now we need to move into the templates directory.
RUN cp -r "${MMS_HOME}/conf" "${MMS_HOME}/conf-template"

USER 2000

# operator to change the entrypoint to: /mongodb-ops-manager/bin/mongodb-mms start_mms (or a wrapper around this)
ENTRYPOINT [ "sleep infinity" ]
95 changes: 95 additions & 0 deletions docker/mongodb-enterprise-ops-manager/Dockerfile.old
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Build compilable stuff

FROM public.ecr.aws/docker/library/golang:1.24 AS readiness_builder
COPY . /go/src/github.com/mongodb/mongodb-kubernetes
WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes

RUN CGO_ENABLED=0 go build -a -buildvcs=false -o /data/scripts/mmsconfiguration ./docker/mongodb-kubernetes-init-ops-manager/mmsconfiguration/edit_mms_configuration.go
RUN CGO_ENABLED=0 go build -a -buildvcs=false -o /data/scripts/backup-daemon-readiness-probe ./docker/mongodb-kubernetes-init-ops-manager/backupdaemon_readinessprobe/backupdaemon_readiness.go

# Move binaries and scripts
FROM scratch AS base

COPY --from=readiness_builder /data/scripts/mmsconfiguration /data/scripts/mmsconfiguration
COPY --from=readiness_builder /data/scripts/backup-daemon-readiness-probe /data/scripts/backup-daemon-readiness-probe

# After v2.0, when non-Static Agent images will be removed, please ensure to copy those files
# into ./docker/mongodb-enterprise-ops-manager directory. Leaving it this way will make the maintenance easier.
COPY ./docker/mongodb-kubernetes-init-ops-manager/scripts/docker-entry-point.sh /data/scripts
COPY ./docker/mongodb-kubernetes-init-ops-manager/scripts/backup-daemon-liveness-probe.sh /data/scripts
COPY ./docker/mongodb-kubernetes-init-ops-manager/LICENSE /data/licenses/mongodb-enterprise-ops-manager

FROM registry.access.redhat.com/ubi9/ubi-minimal

ARG version
ARG om_download_url

LABEL name="MongoDB Enterprise Ops Manager" \
maintainer="[email protected]" \
vendor="MongoDB" \
version=${version} \
release="1" \
summary="MongoDB Enterprise Ops Manager Image" \
description="MongoDB Enterprise Ops Manager"

ENV MMS_HOME=/mongodb-ops-manager
ENV MMS_PROP_FILE=${MMS_HOME}/conf/conf-mms.properties
ENV MMS_CONF_FILE=${MMS_HOME}/conf/mms.conf
ENV MMS_LOG_DIR=${MMS_HOME}/logs
ENV MMS_TMP_DIR=${MMS_HOME}/tmp

EXPOSE 8080

# OpsManager docker image needs to have the MongoDB dependencies because the
# backup daemon is running its database locally

# Replace libcurl-minimal and curl-minimal with the full versions
# https://bugzilla.redhat.com/show_bug.cgi?id=1994521
RUN microdnf install -y libssh libpsl libbrotli \
&& microdnf download curl libcurl \
&& rpm -Uvh --nodeps --replacefiles "*curl*$( uname -i ).rpm" \
&& microdnf remove -y libcurl-minimal curl-minimal

RUN microdnf install --disableplugin=subscription-manager -y \
cyrus-sasl \
cyrus-sasl-gssapi \
cyrus-sasl-plain \
krb5-libs \
libpcap \
lm_sensors-libs \
net-snmp \
net-snmp-agent-libs \
openldap \
openssl \
tar \
rpm-libs \
net-tools \
procps-ng \
ncurses

COPY --from=base /data/licenses /licenses/
COPY --from=base /data/scripts /opt/scripts

RUN curl --fail -L -o ops_manager.tar.gz ${om_download_url} \
&& tar -xzf ops_manager.tar.gz \
&& rm ops_manager.tar.gz \
&& mv mongodb-mms* "${MMS_HOME}"

# permissions
RUN chmod -R 0777 "${MMS_LOG_DIR}" \
&& chmod -R 0777 "${MMS_TMP_DIR}" \
&& chmod -R 0775 "${MMS_HOME}/conf" \
&& chmod -R 0775 "${MMS_HOME}/jdk" \
&& mkdir "${MMS_HOME}/mongodb-releases/" \
&& chmod -R 0775 "${MMS_HOME}/mongodb-releases" \
&& chmod -R 0777 "${MMS_CONF_FILE}" \
&& chmod -R 0777 "${MMS_PROP_FILE}"

# The "${MMS_HOME}/conf" will be populated by the docker-entry-point.sh.
# For now we need to move into the templates directory.
RUN cp -r "${MMS_HOME}/conf" "${MMS_HOME}/conf-template"

USER 2000

# operator to change the entrypoint to: /mongodb-ops-manager/bin/mongodb-mms start_mms (or a wrapper around this)
ENTRYPOINT [ "sleep infinity" ]
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,12 @@ spec:
volumeMounts:
- name: mongosh-versions
mountPath: /mongodb-ops-manager/mongodb-releases/compass
- name: setting-up-mongosh-2-5-3
- name: setting-up-mongosh-2-5-6
image: curlimages/curl:latest
command:
- sh
- -c
- curl -LO https://downloads.mongodb.com/compass/mongosh-2.5.3-linux-x64-openssl11.tgz --output-dir /mongodb-ops-manager/mongodb-releases/compass && true
- curl -LO https://downloads.mongodb.com/compass/mongosh-2.5.6-linux-x64-openssl11.tgz --output-dir /mongodb-ops-manager/mongodb-releases/compass && true
volumeMounts:
- name: mongosh-versions
mountPath: /mongodb-ops-manager/mongodb-releases/compass
Expand Down
Loading