diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index ba54ae644..adb403b37 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -22,7 +22,7 @@ spec: serviceAccountName: mongodb-kubernetes-operator containers: - name: mongodb-kubernetes-operator - image: "quay.io/mongodb/mongodb-kubernetes:1.5.0" + image: "quay.io/mongodb/mongodb-kubernetes:1.6.0" imagePullPolicy: Always args: - -watch-resource=mongodb @@ -69,21 +69,21 @@ spec: - name: INIT_DATABASE_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-database - name: INIT_DATABASE_VERSION - value: "1.5.0" + value: "1.6.0" - name: DATABASE_VERSION - value: "1.5.0" + value: "1.6.0" # Ops Manager - name: OPS_MANAGER_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-enterprise-ops-manager-ubi - name: INIT_OPS_MANAGER_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-ops-manager - name: INIT_OPS_MANAGER_VERSION - value: "1.5.0" + value: "1.6.0" # AppDB - name: INIT_APPDB_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-appdb - name: INIT_APPDB_VERSION - value: "1.5.0" + value: "1.6.0" - name: OPS_MANAGER_IMAGE_PULL_POLICY value: Always - name: AGENT_IMAGE @@ -122,14 +122,14 @@ spec: - name: MDB_COMMUNITY_IMAGE_TYPE value: "ubi8" # Community Env Vars End - - name: RELATED_IMAGE_MONGODB_ENTERPRISE_DATABASE_IMAGE_1_5_0 - value: "quay.io/mongodb/mongodb-kubernetes-database:1.5.0" - - name: RELATED_IMAGE_INIT_DATABASE_IMAGE_REPOSITORY_1_5_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-database:1.5.0" - - name: RELATED_IMAGE_INIT_OPS_MANAGER_IMAGE_REPOSITORY_1_5_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-ops-manager:1.5.0" - - name: RELATED_IMAGE_INIT_APPDB_IMAGE_REPOSITORY_1_5_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-appdb:1.5.0" + - name: RELATED_IMAGE_MONGODB_ENTERPRISE_DATABASE_IMAGE_1_6_0 + value: "quay.io/mongodb/mongodb-kubernetes-database:1.6.0" + - name: RELATED_IMAGE_INIT_DATABASE_IMAGE_REPOSITORY_1_6_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-database:1.6.0" + - name: RELATED_IMAGE_INIT_OPS_MANAGER_IMAGE_REPOSITORY_1_6_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-ops-manager:1.6.0" + - name: RELATED_IMAGE_INIT_APPDB_IMAGE_REPOSITORY_1_6_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-appdb:1.6.0" - name: RELATED_IMAGE_AGENT_IMAGE_107_0_12_8669_1 value: "quay.io/mongodb/mongodb-agent:107.0.12.8669-1" - name: RELATED_IMAGE_AGENT_IMAGE_107_0_13_8702_1 diff --git a/config/manifests/bases/mongodb-kubernetes.clusterserviceversion.yaml b/config/manifests/bases/mongodb-kubernetes.clusterserviceversion.yaml index ffcaf3cdc..0fac6c911 100644 --- a/config/manifests/bases/mongodb-kubernetes.clusterserviceversion.yaml +++ b/config/manifests/bases/mongodb-kubernetes.clusterserviceversion.yaml @@ -12,7 +12,7 @@ metadata: capabilities: Deep Insights categories: Database certified: "true" - containerImage: quay.io/mongodb/mongodb-kubernetes:1.5.0 + containerImage: quay.io/mongodb/mongodb-kubernetes:1.6.0 createdAt: "" description: The MongoDB Controllers for Kubernetes enable easy deploys of MongoDB into Kubernetes clusters, using our management, monitoring and @@ -462,5 +462,5 @@ spec: maturity: stable provider: name: MongoDB, Inc - replaces: mongodb-kubernetes.v1.4.0 + replaces: mongodb-kubernetes.v1.5.0 version: 0.0.0 diff --git a/helm_chart/Chart.yaml b/helm_chart/Chart.yaml index b12d6fff9..e030bc5b9 100644 --- a/helm_chart/Chart.yaml +++ b/helm_chart/Chart.yaml @@ -4,7 +4,7 @@ description: | MongoDB Controllers for Kubernetes translate the human knowledge of creating a MongoDB instance into a scalable, repeatable, and standardized method. -version: 1.5.0 +version: 1.6.0 kubeVersion: '>=1.16-0' type: application keywords: diff --git a/helm_chart/values-openshift.yaml b/helm_chart/values-openshift.yaml index 5d863a517..1a24fccc0 100644 --- a/helm_chart/values-openshift.yaml +++ b/helm_chart/values-openshift.yaml @@ -27,7 +27,7 @@ operator: # Environment variables prefixed with RELATED_IMAGE_ are used by operator-sdk to generate relatedImages section # with sha256 digests pinning for the certified operator bundle with disconnected environment feature enabled. # https://docs.openshift.com/container-platform/4.14/operators/operator_sdk/osdk-generating-csvs.html#olm-enabling-operator-for-restricted-network_osdk-generating-csvs - version: 1.5.0 + version: 1.6.0 relatedImages: opsManager: - 6.0.26 diff --git a/helm_chart/values.yaml b/helm_chart/values.yaml index 9990edc82..4d903d94b 100644 --- a/helm_chart/values.yaml +++ b/helm_chart/values.yaml @@ -22,7 +22,7 @@ operator: deployment_name: mongodb-kubernetes-operator # Version of mongodb-kubernetes-operator - version: 1.5.0 + version: 1.6.0 # The Custom Resources that will be watched by the Operator. Needs to be changed if only some of the CRDs are installed watchedResources: @@ -129,11 +129,11 @@ operator: ## Database database: name: mongodb-kubernetes-database - version: 1.5.0 + version: 1.6.0 initDatabase: name: mongodb-kubernetes-init-database - version: 1.5.0 + version: 1.6.0 ## Ops Manager opsManager: @@ -141,12 +141,12 @@ opsManager: initOpsManager: name: mongodb-kubernetes-init-ops-manager - version: 1.5.0 + version: 1.6.0 ## Application Database initAppDb: name: mongodb-kubernetes-init-appdb - version: 1.5.0 + version: 1.6.0 agent: name: mongodb-agent diff --git a/public/dockerfiles/mongodb-agent/107.0.19.8805-1/ubi/Dockerfile b/public/dockerfiles/mongodb-agent/107.0.19.8805-1/ubi/Dockerfile new file mode 100644 index 000000000..15a534ca4 --- /dev/null +++ b/public/dockerfiles/mongodb-agent/107.0.19.8805-1/ubi/Dockerfile @@ -0,0 +1,113 @@ +FROM --platform=${BUILDPLATFORM} registry.access.redhat.com/ubi9/ubi-minimal AS tools_downloader + +ARG TARGETPLATFORM +ARG mongodb_tools_url +ARG mongodb_tools_version_s390x +ARG mongodb_tools_version_ppc64le +ARG mongodb_tools_version_amd64 +ARG mongodb_tools_version_arm64 + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip \ + && microdnf clean all + +RUN case ${TARGETPLATFORM} in \ + "linux/amd64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_amd64} ;; \ + "linux/arm64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_arm64} ;; \ + "linux/s390x") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_s390x} ;; \ + "linux/ppc64le") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_ppc64le} ;; \ + esac \ + && mkdir -p /tools \ + && curl -o /tools/mongodb_tools.tgz "${mongodb_tools_url}/${MONGODB_TOOLS_VERSION}" + +RUN tar xfz /tools/mongodb_tools.tgz \ + && mv mongodb-database-tools-*/bin/* /tools \ + && chmod +x /tools/* \ + && rm /tools/mongodb_tools.tgz \ + && rm -r mongodb-database-tools-* + +FROM --platform=${BUILDPLATFORM} registry.access.redhat.com/ubi9/ubi-minimal AS agent_downloader + +ARG TARGETPLATFORM +ARG mongodb_agent_url +ARG mongodb_agent_version_s390x +ARG mongodb_agent_version_ppc64le +ARG mongodb_agent_version_amd64 +ARG mongodb_agent_version_arm64 + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip \ + && microdnf clean all + +RUN case ${TARGETPLATFORM} in \ + "linux/amd64") export MONGODB_AGENT_VERSION=${mongodb_agent_version_amd64} ;; \ + "linux/arm64") export MONGODB_AGENT_VERSION=${mongodb_agent_version_arm64} ;; \ + "linux/s390x") export MONGODB_AGENT_VERSION=${mongodb_agent_version_s390x} ;; \ + "linux/ppc64le") export MONGODB_AGENT_VERSION=${mongodb_agent_version_ppc64le} ;; \ + esac \ + && mkdir -p /agent \ + && curl -o /agent/mongodb_agent.tgz "${mongodb_agent_url}/${MONGODB_AGENT_VERSION}" + +RUN tar xfz /agent/mongodb_agent.tgz \ + && mv mongodb-mms-automation-agent-*/mongodb-mms-automation-agent /agent/mongodb-agent \ + && chmod +x /agent/mongodb-agent \ + && rm /agent/mongodb_agent.tgz \ + && rm -r mongodb-mms-automation-agent-* + +FROM registry.access.redhat.com/ubi9/ubi-minimal + +# 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 scripts to a safe location that won't be overwritten by volume mount +COPY ./docker/mongodb-kubernetes-init-database/content/LICENSE /licenses/LICENSE +COPY ./docker/mongodb-agent/agent-launcher-shim.sh /usr/local/bin/agent-launcher-shim.sh +COPY ./docker/mongodb-agent/setup-agent-files.sh /usr/local/bin/setup-agent-files.sh +COPY ./docker/mongodb-agent/dummy-probe.sh /usr/local/bin/dummy-probe.sh +COPY ./docker/mongodb-agent/dummy-readinessprobe /usr/local/bin/dummy-readinessprobe + +RUN mkdir -p /var/lib/automation/config \ + && chmod -R +r /var/lib/automation/config + +RUN mkdir -p /tools /agent + +COPY --from=tools_downloader "/tools/" /tools/ +COPY --from=agent_downloader "/agent/" /agent/ + +ARG version + +LABEL name="MongoDB Agent" \ + version="${version}" \ + summary="MongoDB Agent" \ + description="MongoDB Agent" \ + vendor="MongoDB" \ + release="1" \ + maintainer="support@mongodb.com" + +USER 2000 +CMD ["/agent/mongodb-agent", "-cluster=/var/lib/automation/config/automation-config.json"] diff --git a/public/dockerfiles/mongodb-agent/108.0.15.8888-1/ubi/Dockerfile b/public/dockerfiles/mongodb-agent/108.0.15.8888-1/ubi/Dockerfile new file mode 100644 index 000000000..15a534ca4 --- /dev/null +++ b/public/dockerfiles/mongodb-agent/108.0.15.8888-1/ubi/Dockerfile @@ -0,0 +1,113 @@ +FROM --platform=${BUILDPLATFORM} registry.access.redhat.com/ubi9/ubi-minimal AS tools_downloader + +ARG TARGETPLATFORM +ARG mongodb_tools_url +ARG mongodb_tools_version_s390x +ARG mongodb_tools_version_ppc64le +ARG mongodb_tools_version_amd64 +ARG mongodb_tools_version_arm64 + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip \ + && microdnf clean all + +RUN case ${TARGETPLATFORM} in \ + "linux/amd64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_amd64} ;; \ + "linux/arm64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_arm64} ;; \ + "linux/s390x") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_s390x} ;; \ + "linux/ppc64le") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_ppc64le} ;; \ + esac \ + && mkdir -p /tools \ + && curl -o /tools/mongodb_tools.tgz "${mongodb_tools_url}/${MONGODB_TOOLS_VERSION}" + +RUN tar xfz /tools/mongodb_tools.tgz \ + && mv mongodb-database-tools-*/bin/* /tools \ + && chmod +x /tools/* \ + && rm /tools/mongodb_tools.tgz \ + && rm -r mongodb-database-tools-* + +FROM --platform=${BUILDPLATFORM} registry.access.redhat.com/ubi9/ubi-minimal AS agent_downloader + +ARG TARGETPLATFORM +ARG mongodb_agent_url +ARG mongodb_agent_version_s390x +ARG mongodb_agent_version_ppc64le +ARG mongodb_agent_version_amd64 +ARG mongodb_agent_version_arm64 + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip \ + && microdnf clean all + +RUN case ${TARGETPLATFORM} in \ + "linux/amd64") export MONGODB_AGENT_VERSION=${mongodb_agent_version_amd64} ;; \ + "linux/arm64") export MONGODB_AGENT_VERSION=${mongodb_agent_version_arm64} ;; \ + "linux/s390x") export MONGODB_AGENT_VERSION=${mongodb_agent_version_s390x} ;; \ + "linux/ppc64le") export MONGODB_AGENT_VERSION=${mongodb_agent_version_ppc64le} ;; \ + esac \ + && mkdir -p /agent \ + && curl -o /agent/mongodb_agent.tgz "${mongodb_agent_url}/${MONGODB_AGENT_VERSION}" + +RUN tar xfz /agent/mongodb_agent.tgz \ + && mv mongodb-mms-automation-agent-*/mongodb-mms-automation-agent /agent/mongodb-agent \ + && chmod +x /agent/mongodb-agent \ + && rm /agent/mongodb_agent.tgz \ + && rm -r mongodb-mms-automation-agent-* + +FROM registry.access.redhat.com/ubi9/ubi-minimal + +# 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 scripts to a safe location that won't be overwritten by volume mount +COPY ./docker/mongodb-kubernetes-init-database/content/LICENSE /licenses/LICENSE +COPY ./docker/mongodb-agent/agent-launcher-shim.sh /usr/local/bin/agent-launcher-shim.sh +COPY ./docker/mongodb-agent/setup-agent-files.sh /usr/local/bin/setup-agent-files.sh +COPY ./docker/mongodb-agent/dummy-probe.sh /usr/local/bin/dummy-probe.sh +COPY ./docker/mongodb-agent/dummy-readinessprobe /usr/local/bin/dummy-readinessprobe + +RUN mkdir -p /var/lib/automation/config \ + && chmod -R +r /var/lib/automation/config + +RUN mkdir -p /tools /agent + +COPY --from=tools_downloader "/tools/" /tools/ +COPY --from=agent_downloader "/agent/" /agent/ + +ARG version + +LABEL name="MongoDB Agent" \ + version="${version}" \ + summary="MongoDB Agent" \ + description="MongoDB Agent" \ + vendor="MongoDB" \ + release="1" \ + maintainer="support@mongodb.com" + +USER 2000 +CMD ["/agent/mongodb-agent", "-cluster=/var/lib/automation/config/automation-config.json"] diff --git a/public/dockerfiles/mongodb-agent/108.0.16.8895-1/ubi/Dockerfile b/public/dockerfiles/mongodb-agent/108.0.16.8895-1/ubi/Dockerfile new file mode 100644 index 000000000..15a534ca4 --- /dev/null +++ b/public/dockerfiles/mongodb-agent/108.0.16.8895-1/ubi/Dockerfile @@ -0,0 +1,113 @@ +FROM --platform=${BUILDPLATFORM} registry.access.redhat.com/ubi9/ubi-minimal AS tools_downloader + +ARG TARGETPLATFORM +ARG mongodb_tools_url +ARG mongodb_tools_version_s390x +ARG mongodb_tools_version_ppc64le +ARG mongodb_tools_version_amd64 +ARG mongodb_tools_version_arm64 + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip \ + && microdnf clean all + +RUN case ${TARGETPLATFORM} in \ + "linux/amd64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_amd64} ;; \ + "linux/arm64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_arm64} ;; \ + "linux/s390x") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_s390x} ;; \ + "linux/ppc64le") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_ppc64le} ;; \ + esac \ + && mkdir -p /tools \ + && curl -o /tools/mongodb_tools.tgz "${mongodb_tools_url}/${MONGODB_TOOLS_VERSION}" + +RUN tar xfz /tools/mongodb_tools.tgz \ + && mv mongodb-database-tools-*/bin/* /tools \ + && chmod +x /tools/* \ + && rm /tools/mongodb_tools.tgz \ + && rm -r mongodb-database-tools-* + +FROM --platform=${BUILDPLATFORM} registry.access.redhat.com/ubi9/ubi-minimal AS agent_downloader + +ARG TARGETPLATFORM +ARG mongodb_agent_url +ARG mongodb_agent_version_s390x +ARG mongodb_agent_version_ppc64le +ARG mongodb_agent_version_amd64 +ARG mongodb_agent_version_arm64 + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip \ + && microdnf clean all + +RUN case ${TARGETPLATFORM} in \ + "linux/amd64") export MONGODB_AGENT_VERSION=${mongodb_agent_version_amd64} ;; \ + "linux/arm64") export MONGODB_AGENT_VERSION=${mongodb_agent_version_arm64} ;; \ + "linux/s390x") export MONGODB_AGENT_VERSION=${mongodb_agent_version_s390x} ;; \ + "linux/ppc64le") export MONGODB_AGENT_VERSION=${mongodb_agent_version_ppc64le} ;; \ + esac \ + && mkdir -p /agent \ + && curl -o /agent/mongodb_agent.tgz "${mongodb_agent_url}/${MONGODB_AGENT_VERSION}" + +RUN tar xfz /agent/mongodb_agent.tgz \ + && mv mongodb-mms-automation-agent-*/mongodb-mms-automation-agent /agent/mongodb-agent \ + && chmod +x /agent/mongodb-agent \ + && rm /agent/mongodb_agent.tgz \ + && rm -r mongodb-mms-automation-agent-* + +FROM registry.access.redhat.com/ubi9/ubi-minimal + +# 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 scripts to a safe location that won't be overwritten by volume mount +COPY ./docker/mongodb-kubernetes-init-database/content/LICENSE /licenses/LICENSE +COPY ./docker/mongodb-agent/agent-launcher-shim.sh /usr/local/bin/agent-launcher-shim.sh +COPY ./docker/mongodb-agent/setup-agent-files.sh /usr/local/bin/setup-agent-files.sh +COPY ./docker/mongodb-agent/dummy-probe.sh /usr/local/bin/dummy-probe.sh +COPY ./docker/mongodb-agent/dummy-readinessprobe /usr/local/bin/dummy-readinessprobe + +RUN mkdir -p /var/lib/automation/config \ + && chmod -R +r /var/lib/automation/config + +RUN mkdir -p /tools /agent + +COPY --from=tools_downloader "/tools/" /tools/ +COPY --from=agent_downloader "/agent/" /agent/ + +ARG version + +LABEL name="MongoDB Agent" \ + version="${version}" \ + summary="MongoDB Agent" \ + description="MongoDB Agent" \ + vendor="MongoDB" \ + release="1" \ + maintainer="support@mongodb.com" + +USER 2000 +CMD ["/agent/mongodb-agent", "-cluster=/var/lib/automation/config/automation-config.json"] diff --git a/public/dockerfiles/mongodb-enterprise-ops-manager/7.0.19/ubi/Dockerfile b/public/dockerfiles/mongodb-enterprise-ops-manager/7.0.19/ubi/Dockerfile new file mode 100644 index 000000000..aa95b4bee --- /dev/null +++ b/public/dockerfiles/mongodb-enterprise-ops-manager/7.0.19/ubi/Dockerfile @@ -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="support@mongodb.com" \ + 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" ] diff --git a/public/dockerfiles/mongodb-enterprise-ops-manager/8.0.15/ubi/Dockerfile b/public/dockerfiles/mongodb-enterprise-ops-manager/8.0.15/ubi/Dockerfile new file mode 100644 index 000000000..aa95b4bee --- /dev/null +++ b/public/dockerfiles/mongodb-enterprise-ops-manager/8.0.15/ubi/Dockerfile @@ -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="support@mongodb.com" \ + 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" ] diff --git a/public/dockerfiles/mongodb-enterprise-ops-manager/8.0.16/ubi/Dockerfile b/public/dockerfiles/mongodb-enterprise-ops-manager/8.0.16/ubi/Dockerfile new file mode 100644 index 000000000..aa95b4bee --- /dev/null +++ b/public/dockerfiles/mongodb-enterprise-ops-manager/8.0.16/ubi/Dockerfile @@ -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="support@mongodb.com" \ + 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" ] diff --git a/public/dockerfiles/mongodb-kubernetes-database/1.6.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes-database/1.6.0/ubi/Dockerfile new file mode 100644 index 000000000..9bf3a24bc --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes-database/1.6.0/ubi/Dockerfile @@ -0,0 +1,71 @@ +FROM scratch AS base + +COPY ./docker/mongodb-kubernetes-database/LICENSE /data/licenses/mongodb-kubernetes-database + +FROM registry.access.redhat.com/ubi8/ubi-minimal + +ENV MMS_HOME=/mongodb-automation +ENV MMS_LOG_DIR=/var/log/mongodb-mms-automation + +RUN microdnf update -y && rm -rf /var/cache/yum + +# these are the packages needed for the agent +RUN microdnf install -y --disableplugin=subscription-manager --setopt=install_weak_deps=0 nss_wrapper +RUN microdnf install -y --disableplugin=subscription-manager \ + hostname \ + procps + +# these are the packages needed for MongoDB +# (https://docs.mongodb.com/manual/tutorial/install-mongodb-enterprise-on-red-hat-tarball/ "RHEL/CentOS 8" tab) +RUN microdnf install -y --disableplugin=subscription-manager \ + cyrus-sasl \ + cyrus-sasl-gssapi \ + cyrus-sasl-plain \ + krb5-libs \ + libcurl \ + lm_sensors-libs \ + net-snmp \ + net-snmp-agent-libs \ + openldap \ + openssl \ + jq \ + tar \ + xz-libs \ + findutils + +RUN ln -s /usr/lib64/libsasl2.so.3 /usr/lib64/libsasl2.so.2 + +# Set the required perms +RUN mkdir -p "${MMS_LOG_DIR}" \ + && chmod 0775 "${MMS_LOG_DIR}" \ + && mkdir -p /var/lib/mongodb-mms-automation \ + && chmod 0775 /var/lib/mongodb-mms-automation \ + && mkdir -p /data \ + && chmod 0775 /data \ + && mkdir -p /journal \ + && chmod 0775 /journal \ + && mkdir -p "${MMS_HOME}" \ + && chmod -R 0775 "${MMS_HOME}" + +ARG version + +LABEL name="MongoDB Kubernetes Database" \ + version="${version}" \ + summary="MongoDB Kubernetes Database Image" \ + description="MongoDB Kubernetes Database Image" \ + vendor="MongoDB" \ + release="1" \ + maintainer="support@mongodb.com" + +# USER needs to be set for this image to pass RedHat verification. Some customers have these requirements as well +# It does not matter what number it is, as long as it is set to something. +# However, OpenShift will run the container as a random user, +# and the number in this configuration is not relevant. +USER 2000 + +# The docker image doesn't have any scripts so by default does nothing +# The script will be copied in runtime from init containers and the operator is expected +# to override the COMMAND +ENTRYPOINT ["sleep infinity"] + +COPY --from=base /data/licenses/mongodb-kubernetes-database /licenses/mongodb-kubernetes-database diff --git a/public/dockerfiles/mongodb-kubernetes-init-appdb/1.6.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes-init-appdb/1.6.0/ubi/Dockerfile new file mode 100644 index 000000000..eeb48b288 --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes-init-appdb/1.6.0/ubi/Dockerfile @@ -0,0 +1,82 @@ +FROM --platform=${BUILDPLATFORM} registry.access.redhat.com/ubi8/ubi-minimal AS tools_downloader + +ARG mongodb_tools_url +ARG mongodb_tools_version_s390x +ARG mongodb_tools_version_ppc64le +ARG mongodb_tools_version_amd64 +ARG mongodb_tools_version_arm64 + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip curl \ + && microdnf clean all + +RUN case ${TARGETPLATFORM} in \ + "linux/amd64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_amd64} ;; \ + "linux/arm64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_arm64} ;; \ + "linux/s390x") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_s390x} ;; \ + "linux/ppc64le") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_ppc64le} ;; \ + esac \ + && mkdir -p /tools \ + && if [ -n "$MONGODB_TOOLS_VERSION" ]; then \ + curl -o /tools/mongodb_tools.tgz "${mongodb_tools_url}/${MONGODB_TOOLS_VERSION}"; \ + fi + +RUN if [ -f "/tools/mongodb_tools.tgz" ]; then \ + tar xfz /tools/mongodb_tools.tgz --directory /tools \ + && rm /tools/mongodb_tools.tgz; \ + fi + +FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/golang:1.24 AS readiness_builder + +WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes/ + +COPY go.mod go.sum ./ + +RUN go mod download + +COPY mongodb-community-operator ./mongodb-community-operator + +ARG TARGETOS +ARG TARGETARCH +RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /readinessprobe ./mongodb-community-operator/cmd/readiness/main.go +RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /version-upgrade-hook ./mongodb-community-operator/cmd/versionhook/main.go + +FROM scratch AS base + +COPY --from=readiness_builder /readinessprobe /data/readinessprobe +COPY --from=readiness_builder /version-upgrade-hook /data/version-upgrade-hook + +COPY ./docker/mongodb-kubernetes-init-database/content/probe.sh /data/probe.sh + +COPY ./docker/mongodb-kubernetes-init-database/content/agent-launcher-lib.sh /data/scripts/ +COPY ./docker/mongodb-kubernetes-init-database/content/agent-launcher.sh /data/scripts/ + +COPY ./docker/mongodb-kubernetes-init-database/content/LICENSE /data/licenses/ + +FROM registry.access.redhat.com/ubi8/ubi-minimal + +# Copy the extracted tools from the downloader stage (tools are already extracted there) +COPY --from=tools_downloader /tools/ /tools/ + +COPY --from=base /data/readinessprobe /probes/readinessprobe +COPY --from=base /data/probe.sh /probes/probe.sh +COPY --from=base /data/scripts/ /scripts/ +COPY --from=base /data/licenses /licenses/ +COPY --from=base /data/version-upgrade-hook /probes/version-upgrade-hook + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip \ + && microdnf clean all + +ARG version +LABEL name="MongoDB Kubernetes Init AppDB" \ + version="mongodb-kubernetes-init-appdb-${version}" \ + summary="MongoDB Kubernetes AppDB Init Image" \ + description="Startup Scripts for MongoDB Enterprise Application Database for Ops Manager" \ + release="1" \ + vendor="MongoDB" \ + maintainer="support@mongodb.com" + +USER 2000 + +ENTRYPOINT [ "/bin/cp", "-f", "-r", "/scripts/agent-launcher.sh", "/scripts/agent-launcher-lib.sh", "/probes/readinessprobe", "/probes/probe.sh", "/tools", "/opt/scripts/" ] diff --git a/public/dockerfiles/mongodb-kubernetes-init-database/1.6.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes-init-database/1.6.0/ubi/Dockerfile new file mode 100644 index 000000000..9a0b009fd --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes-init-database/1.6.0/ubi/Dockerfile @@ -0,0 +1,81 @@ +FROM --platform=${BUILDPLATFORM} registry.access.redhat.com/ubi8/ubi-minimal AS tools_downloader + +ARG mongodb_tools_url +ARG mongodb_tools_version_s390x +ARG mongodb_tools_version_ppc64le +ARG mongodb_tools_version_amd64 +ARG mongodb_tools_version_arm64 + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip curl \ + && microdnf clean all + +RUN case ${TARGETPLATFORM} in \ + "linux/amd64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_amd64} ;; \ + "linux/arm64") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_arm64} ;; \ + "linux/s390x") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_s390x} ;; \ + "linux/ppc64le") export MONGODB_TOOLS_VERSION=${mongodb_tools_version_ppc64le} ;; \ + esac \ + && mkdir -p /tools \ + && if [ -n "$MONGODB_TOOLS_VERSION" ]; then \ + curl -o /tools/mongodb_tools.tgz "${mongodb_tools_url}/${MONGODB_TOOLS_VERSION}"; \ + fi + +RUN if [ -f "/tools/mongodb_tools.tgz" ]; then \ + tar xfz /tools/mongodb_tools.tgz --directory /tools \ + && rm /tools/mongodb_tools.tgz; \ + fi + +FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/golang:1.24 AS readiness_builder + +WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes/ + +COPY go.mod go.sum ./ + +RUN go mod download + +COPY mongodb-community-operator ./mongodb-community-operator + +ARG TARGETOS +ARG TARGETARCH +RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /readinessprobe ./mongodb-community-operator/cmd/readiness/main.go +RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /version-upgrade-hook ./mongodb-community-operator/cmd/versionhook/main.go + +FROM scratch AS base + +COPY --from=readiness_builder /readinessprobe /data/readinessprobe +COPY --from=readiness_builder /version-upgrade-hook /data/version-upgrade-hook + +COPY ./docker/mongodb-kubernetes-init-database/content/probe.sh /data/probe.sh + +COPY ./docker/mongodb-kubernetes-init-database/content/agent-launcher-lib.sh /data/scripts/ +COPY ./docker/mongodb-kubernetes-init-database/content/agent-launcher.sh /data/scripts/ + +COPY ./docker/mongodb-kubernetes-init-database/content/LICENSE /data/licenses/ + +FROM registry.access.redhat.com/ubi8/ubi-minimal + +# Copy the extracted tools from the downloader stage (tools are already extracted there) +COPY --from=tools_downloader /tools/ /tools/ + +COPY --from=base /data/readinessprobe /probes/readinessprobe +COPY --from=base /data/probe.sh /probes/probe.sh +COPY --from=base /data/scripts/ /scripts/ +COPY --from=base /data/licenses /licenses/ + +RUN microdnf -y update --nodocs \ + && microdnf -y install --nodocs tar gzip \ + && microdnf clean all + +ARG version +LABEL name="MongoDB Kubernetes Init Database" \ + version="mongodb-kubernetes-init-database-${version}" \ + summary="MongoDB Kubernetes Database Init Image" \ + description="Startup Scripts for MongoDB Enterprise Database" \ + release="1" \ + vendor="MongoDB" \ + maintainer="support@mongodb.com" + +USER 2000 + +ENTRYPOINT [ "/bin/cp", "-f", "-r", "/scripts/agent-launcher.sh", "/scripts/agent-launcher-lib.sh", "/probes/readinessprobe", "/probes/probe.sh", "/tools", "/opt/scripts/" ] diff --git a/public/dockerfiles/mongodb-kubernetes-init-ops-manager/1.6.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes-init-ops-manager/1.6.0/ubi/Dockerfile new file mode 100644 index 000000000..07427ff0f --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes-init-ops-manager/1.6.0/ubi/Dockerfile @@ -0,0 +1,34 @@ +FROM --platform=${BUILDPLATFORM} public.ecr.aws/docker/library/golang:1.24 AS base + +WORKDIR /go/src +ADD ./docker/mongodb-kubernetes-init-ops-manager . + +ARG TARGETOS +ARG TARGETARCH +RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -a -buildvcs=false -o /data/scripts/mmsconfiguration ./mmsconfiguration +RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -a -buildvcs=false -o /data/scripts/backup-daemon-readiness-probe ./backupdaemon_readinessprobe/ + +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 + +LABEL name="MongoDB Kubernetes Ops Manager Init" \ + maintainer="support@mongodb.com" \ + vendor="MongoDB" \ + version="mongodb-kubernetes-init-ops-manager-${version}" \ + release="1" \ + summary="MongoDB Kubernetes Ops Manager Init Image" \ + description="Startup Scripts for MongoDB Enterprise Ops Manager" + +COPY --from=base /data/scripts /scripts +COPY --from=base /data/licenses /licenses + +RUN microdnf -y update --nodocs \ + && microdnf clean all + +USER 2000 +ENTRYPOINT [ "/bin/cp", "-f", "/scripts/docker-entry-point.sh", "/scripts/backup-daemon-liveness-probe.sh", "/scripts/mmsconfiguration", "/scripts/backup-daemon-readiness-probe", "/opt/scripts/" ] diff --git a/public/dockerfiles/mongodb-kubernetes/1.6.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes/1.6.0/ubi/Dockerfile new file mode 100644 index 000000000..c08b228f9 --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes/1.6.0/ubi/Dockerfile @@ -0,0 +1,72 @@ +FROM --platform=${BUILDPLATFORM} public.ecr.aws/docker/library/golang:1.24 AS builder + +ARG BUILDARCH +ADD "https://github.com/stedolan/jq/releases/download/jq-1.8.1/jq-linux-${BUILDARCH}" /usr/local/bin/jq +RUN chmod +x /usr/local/bin/jq + +COPY go.sum go.mod /go/src/github.com/mongodb/mongodb-kubernetes/ + +WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes +RUN go mod download + +COPY . /go/src/github.com/mongodb/mongodb-kubernetes + +ARG version +ARG log_automation_config_diff +ARG use_race +ARG TARGETOS +ARG TARGETARCH + +RUN mkdir /build && \ + if [ $use_race = "true" ]; then \ + echo "Building with race detector" && \ + CGO_ENABLED=1 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /build/mongodb-kubernetes-operator \ + -buildvcs=false \ + -race \ + -ldflags=" -X github.com/mongodb/mongodb-kubernetes/pkg/util.OperatorVersion=${version} \ + -X github.com/mongodb/mongodb-kubernetes/pkg/util.LogAutomationConfigDiff=${log_automation_config_diff}"; \ + else \ + echo "Building without race detector" && \ + CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /build/mongodb-kubernetes-operator \ + -buildvcs=false \ + -ldflags="-s -w -X github.com/mongodb/mongodb-kubernetes/pkg/util.OperatorVersion=${version} \ + -X github.com/mongodb/mongodb-kubernetes/pkg/util.LogAutomationConfigDiff=${log_automation_config_diff}"; \ + fi + +RUN mkdir -p /data +RUN cat release.json | jq -r '.supportedImages."mongodb-agent" | { "supportedImages": { "mongodb-agent": . } }' > /data/om_version_mapping.json +RUN chmod +r /data/om_version_mapping.json + +FROM scratch AS base + +COPY --from=builder /build/mongodb-kubernetes-operator /data/ +COPY --from=builder /data/om_version_mapping.json /data/om_version_mapping.json + +ADD docker/mongodb-kubernetes-operator/licenses /data/licenses/ + +FROM registry.access.redhat.com/ubi9/ubi-minimal + +# Building an UBI-based image: https://red.ht/3n6b9y0 +RUN microdnf update \ + --disableplugin=subscription-manager \ + --disablerepo=* --enablerepo=ubi-9-appstream-rpms --enablerepo=ubi-9-baseos-rpms -y \ + && rm -rf /var/cache/yum +RUN microdnf install -y glibc-langpack-en + +COPY --from=base /data/mongodb-kubernetes-operator /usr/local/bin/mongodb-kubernetes-operator +COPY --from=base /data/om_version_mapping.json /usr/local/om_version_mapping.json +COPY --from=base /data/licenses /licenses/ + +ARG version + +LABEL name="MongoDB Kubernetes Operator" \ + maintainer="support@mongodb.com" \ + vendor="MongoDB" \ + version="${version}" \ + release="1" \ + summary="MongoDB Kubernetes Operator Image" \ + description="MongoDB Kubernetes Operator Image" + +USER 2000 + +ENTRYPOINT exec /usr/local/bin/mongodb-kubernetes-operator diff --git a/public/mongodb-kubernetes-multi-cluster.yaml b/public/mongodb-kubernetes-multi-cluster.yaml index 29a4520f6..27e9b8d44 100644 --- a/public/mongodb-kubernetes-multi-cluster.yaml +++ b/public/mongodb-kubernetes-multi-cluster.yaml @@ -331,7 +331,7 @@ spec: runAsUser: 2000 containers: - name: mongodb-kubernetes-operator-multi-cluster - image: "quay.io/mongodb/mongodb-kubernetes:1.5.0" + image: "quay.io/mongodb/mongodb-kubernetes:1.6.0" imagePullPolicy: Always args: - -watch-resource=mongodb @@ -380,21 +380,21 @@ spec: - name: INIT_DATABASE_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-database - name: INIT_DATABASE_VERSION - value: "1.5.0" + value: "1.6.0" - name: DATABASE_VERSION - value: "1.5.0" + value: "1.6.0" # Ops Manager - name: OPS_MANAGER_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-enterprise-ops-manager-ubi - name: INIT_OPS_MANAGER_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-ops-manager - name: INIT_OPS_MANAGER_VERSION - value: "1.5.0" + value: "1.6.0" # AppDB - name: INIT_APPDB_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-appdb - name: INIT_APPDB_VERSION - value: "1.5.0" + value: "1.6.0" - name: OPS_MANAGER_IMAGE_PULL_POLICY value: Always - name: AGENT_IMAGE diff --git a/public/mongodb-kubernetes-openshift.yaml b/public/mongodb-kubernetes-openshift.yaml index 8d658767d..33ef2fa0b 100644 --- a/public/mongodb-kubernetes-openshift.yaml +++ b/public/mongodb-kubernetes-openshift.yaml @@ -328,7 +328,7 @@ spec: serviceAccountName: mongodb-kubernetes-operator containers: - name: mongodb-kubernetes-operator - image: "quay.io/mongodb/mongodb-kubernetes:1.5.0" + image: "quay.io/mongodb/mongodb-kubernetes:1.6.0" imagePullPolicy: Always args: - -watch-resource=mongodb @@ -375,21 +375,21 @@ spec: - name: INIT_DATABASE_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-database - name: INIT_DATABASE_VERSION - value: "1.5.0" + value: "1.6.0" - name: DATABASE_VERSION - value: "1.5.0" + value: "1.6.0" # Ops Manager - name: OPS_MANAGER_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-enterprise-ops-manager-ubi - name: INIT_OPS_MANAGER_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-ops-manager - name: INIT_OPS_MANAGER_VERSION - value: "1.5.0" + value: "1.6.0" # AppDB - name: INIT_APPDB_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-appdb - name: INIT_APPDB_VERSION - value: "1.5.0" + value: "1.6.0" - name: OPS_MANAGER_IMAGE_PULL_POLICY value: Always - name: AGENT_IMAGE @@ -426,14 +426,14 @@ spec: - name: MDB_COMMUNITY_IMAGE_TYPE value: "ubi8" # Community Env Vars End - - name: RELATED_IMAGE_MONGODB_ENTERPRISE_DATABASE_IMAGE_1_5_0 - value: "quay.io/mongodb/mongodb-kubernetes-database:1.5.0" - - name: RELATED_IMAGE_INIT_DATABASE_IMAGE_REPOSITORY_1_5_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-database:1.5.0" - - name: RELATED_IMAGE_INIT_OPS_MANAGER_IMAGE_REPOSITORY_1_5_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-ops-manager:1.5.0" - - name: RELATED_IMAGE_INIT_APPDB_IMAGE_REPOSITORY_1_5_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-appdb:1.5.0" + - name: RELATED_IMAGE_MONGODB_ENTERPRISE_DATABASE_IMAGE_1_6_0 + value: "quay.io/mongodb/mongodb-kubernetes-database:1.6.0" + - name: RELATED_IMAGE_INIT_DATABASE_IMAGE_REPOSITORY_1_6_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-database:1.6.0" + - name: RELATED_IMAGE_INIT_OPS_MANAGER_IMAGE_REPOSITORY_1_6_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-ops-manager:1.6.0" + - name: RELATED_IMAGE_INIT_APPDB_IMAGE_REPOSITORY_1_6_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-appdb:1.6.0" - name: RELATED_IMAGE_AGENT_IMAGE_107_0_12_8669_1 value: "quay.io/mongodb/mongodb-agent:107.0.12.8669-1" - name: RELATED_IMAGE_AGENT_IMAGE_107_0_13_8702_1 diff --git a/public/mongodb-kubernetes.yaml b/public/mongodb-kubernetes.yaml index c409d9e5c..ff3d7a68f 100644 --- a/public/mongodb-kubernetes.yaml +++ b/public/mongodb-kubernetes.yaml @@ -331,7 +331,7 @@ spec: runAsUser: 2000 containers: - name: mongodb-kubernetes-operator - image: "quay.io/mongodb/mongodb-kubernetes:1.5.0" + image: "quay.io/mongodb/mongodb-kubernetes:1.6.0" imagePullPolicy: Always args: - -watch-resource=mongodb @@ -376,21 +376,21 @@ spec: - name: INIT_DATABASE_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-database - name: INIT_DATABASE_VERSION - value: "1.5.0" + value: "1.6.0" - name: DATABASE_VERSION - value: "1.5.0" + value: "1.6.0" # Ops Manager - name: OPS_MANAGER_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-enterprise-ops-manager-ubi - name: INIT_OPS_MANAGER_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-ops-manager - name: INIT_OPS_MANAGER_VERSION - value: "1.5.0" + value: "1.6.0" # AppDB - name: INIT_APPDB_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-appdb - name: INIT_APPDB_VERSION - value: "1.5.0" + value: "1.6.0" - name: OPS_MANAGER_IMAGE_PULL_POLICY value: Always - name: AGENT_IMAGE diff --git a/release.json b/release.json index 31abd264c..72e52f9cc 100644 --- a/release.json +++ b/release.json @@ -2,11 +2,11 @@ "mongodbToolsBundle": { "ubi": "mongodb-database-tools-rhel88-x86_64-100.13.0.tgz" }, - "mongodbOperator": "1.5.0", - "initDatabaseVersion": "1.5.0", - "initOpsManagerVersion": "1.5.0", - "initAppDbVersion": "1.5.0", - "databaseImageVersion": "1.5.0", + "mongodbOperator": "1.6.0", + "initDatabaseVersion": "1.6.0", + "initOpsManagerVersion": "1.6.0", + "initAppDbVersion": "1.6.0", + "databaseImageVersion": "1.6.0", "agentVersion": "108.0.12.8846-1", "readinessProbeVersion": "1.0.23", "versionUpgradeHookVersion": "1.0.10", @@ -58,7 +58,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "variants": [ "ubi" @@ -199,7 +200,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "variants": [ "ubi" @@ -214,7 +216,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "variants": [ "ubi" @@ -229,7 +232,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "variants": [ "ubi" @@ -244,7 +248,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "variants": [ "ubi"