Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ kind: feature
date: 2025-09-09
---

* Improve automation agent certificate rotation: the agent now restarts automatically when its certificate is renewed, ensuring smooth operation without manual intervention and allowing seamless certificate updates without requiring manual Pod restarts.
* Improved automation agent certificate rotation: the agent now restarts automatically when its certificate is renewed, ensuring smooth operation without manual intervention and allowing seamless certificate updates without requiring manual Pod restarts.
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ kind: fix
date: 2025-10-01
---

* **MongoDBMultiCluster**: fix resource stuck in Pending state if any `clusterSpecList` item has 0 members. After the fix, a value of 0 members is handled correctly, similarly to how it's done in the **MongoDB** resource.
* **MongoDBMultiCluster**: Fixed resource stuck in Pending state if any `clusterSpecList` item has 0 members. After the fix, a value of 0 members is handled correctly, similarly to how it's done in the **MongoDB** resource.
26 changes: 13 additions & 13 deletions config/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ spec:
serviceAccountName: mongodb-kubernetes-operator
containers:
- name: mongodb-kubernetes-operator
image: "quay.io/mongodb/mongodb-kubernetes:1.4.0"
image: "quay.io/mongodb/mongodb-kubernetes:1.5.0"
imagePullPolicy: Always
args:
- -watch-resource=mongodb
Expand Down Expand Up @@ -69,21 +69,21 @@ spec:
- name: INIT_DATABASE_IMAGE_REPOSITORY
value: quay.io/mongodb/mongodb-kubernetes-init-database
- name: INIT_DATABASE_VERSION
value: 1.4.0
value: 1.5.0
- name: DATABASE_VERSION
value: 1.4.0
value: 1.5.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.4.0
value: 1.5.0
# AppDB
- name: INIT_APPDB_IMAGE_REPOSITORY
value: quay.io/mongodb/mongodb-kubernetes-init-appdb
- name: INIT_APPDB_VERSION
value: 1.4.0
value: 1.5.0
- name: OPS_MANAGER_IMAGE_PULL_POLICY
value: Always
- name: AGENT_IMAGE
Expand Down Expand Up @@ -122,14 +122,14 @@ spec:
- name: MDB_COMMUNITY_IMAGE_TYPE
value: "ubi8"
# Community Env Vars End
- name: RELATED_IMAGE_MONGODB_ENTERPRISE_DATABASE_IMAGE_1_4_0
value: "quay.io/mongodb/mongodb-kubernetes-database:1.4.0"
- name: RELATED_IMAGE_INIT_DATABASE_IMAGE_REPOSITORY_1_4_0
value: "quay.io/mongodb/mongodb-kubernetes-init-database:1.4.0"
- name: RELATED_IMAGE_INIT_OPS_MANAGER_IMAGE_REPOSITORY_1_4_0
value: "quay.io/mongodb/mongodb-kubernetes-init-ops-manager:1.4.0"
- name: RELATED_IMAGE_INIT_APPDB_IMAGE_REPOSITORY_1_4_0
value: "quay.io/mongodb/mongodb-kubernetes-init-appdb:1.4.0"
- 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_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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ metadata:
capabilities: Deep Insights
categories: Database
certified: "true"
containerImage: quay.io/mongodb/mongodb-kubernetes:1.4.0
containerImage: quay.io/mongodb/mongodb-kubernetes:1.5.0
createdAt: ""
description: The MongoDB Controllers for Kubernetes enable easy deploys of
MongoDB into Kubernetes clusters, using our management, monitoring and
Expand Down Expand Up @@ -462,5 +462,5 @@ spec:
maturity: stable
provider:
name: MongoDB, Inc
replaces: mongodb-kubernetes.v1.3.0
replaces: mongodb-kubernetes.v1.4.0
version: 0.0.0
4 changes: 2 additions & 2 deletions docs/search/01-search-community-deploy/env_variables.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ export K8S_CTX="<local cluster context>"
# the following namespace will be created if not exists
export MDB_NS="mongodb"

# minimum required MongoDB version for running MongoDB Search is 8.0.10
export MDB_VERSION="8.0.10"
# minimum required MongoDB version for running MongoDB Search is 8.2.0
export MDB_VERSION="8.2.0"

# root admin user for convenience, not used here at all in this guide
export MDB_ADMIN_USER_PASSWORD="admin-user-password-CHANGE-ME"
Expand Down
4 changes: 2 additions & 2 deletions docs/search/02-search-enterprise-deploy/env_variables.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ export OPS_MANAGER_API_USER="<SET API USER>"
export OPS_MANAGER_API_KEY="<SET API KEY>"
export OPS_MANAGER_ORG_ID="<SET ORG ID>"

# minimum required MongoDB version for running MongoDB Search is 8.0.10
export MDB_VERSION="8.0.14-ent"
# minimum required MongoDB version for running MongoDB Search is 8.2.0
export MDB_VERSION="8.2.0-ent"

# root admin user for convenience, not used here at all in this guide
export MDB_ADMIN_USER_PASSWORD="admin-user-password-CHANGE-ME"
Expand Down
2 changes: 1 addition & 1 deletion docs/search/02-search-enterprise-deploy/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ prepare_snippets

run 02_0045_create_namespaces.sh
run 02_0046_create_image_pull_secrets.sh
run 02_0050_create_ops_manager_resources.sh
run 02_0048_configure_prerelease_image_pullsecret.sh

run_for_output 02_0090_helm_add_mogodb_repo.sh
run_for_output 02_0100_install_operator.sh
run 02_0300_create_ops_manager_resources.sh
run 02_0305_create_mongodb_database_resource.sh
run_for_output 02_0310_wait_for_database_resource.sh
run 02_0315_create_mongodb_users.sh
Expand Down
2 changes: 1 addition & 1 deletion helm_chart/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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.4.0
version: 1.5.0
kubeVersion: '>=1.16-0'
type: application
keywords:
Expand Down
2 changes: 1 addition & 1 deletion helm_chart/values-openshift.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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.4.0
version: 1.5.0
relatedImages:
opsManager:
- 6.0.26
Expand Down
10 changes: 5 additions & 5 deletions helm_chart/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ operator:
deployment_name: mongodb-kubernetes-operator

# Version of mongodb-kubernetes-operator
version: 1.4.0
version: 1.5.0

# The Custom Resources that will be watched by the Operator. Needs to be changed if only some of the CRDs are installed
watchedResources:
Expand Down Expand Up @@ -123,24 +123,24 @@ operator:
## Database
database:
name: mongodb-kubernetes-database
version: 1.4.0
version: 1.5.0

initDatabase:
name: mongodb-kubernetes-init-database
version: 1.4.0
version: 1.5.0

## Ops Manager
opsManager:
name: mongodb-enterprise-ops-manager-ubi

initOpsManager:
name: mongodb-kubernetes-init-ops-manager
version: 1.4.0
version: 1.5.0

## Application Database
initAppDb:
name: mongodb-kubernetes-init-appdb
version: 1.4.0
version: 1.5.0

agent:
name: mongodb-agent
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
ARG imagebase
FROM ${imagebase} as base

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


LABEL name="MongoDB Enterprise Ops Manager" \
maintainer="support@mongodb.com" \
vendor="MongoDB" \
version="8.0.14" \
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 https://downloads.mongodb.com/on-prem-mms/tar/mongodb-mms-8.0.14.500.20250915T2014Z.tar.gz \
&& 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
@@ -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
Loading