diff --git a/.gitignore b/.gitignore index ec7ebbab0..019333347 100644 --- a/.gitignore +++ b/.gitignore @@ -42,7 +42,6 @@ public/architectures/**/certs/* public/architectures/**/secrets/* docker/mongodb-kubernetes-appdb/content/readinessprobe -mongodb-kubernetes docker/mongodb-kubernetes-operator/content/mongodb-kubernetes-operator.tar docker/mongodb-kubernetes-tests/helm_chart/ docker/mongodb-kubernetes-tests/public/ diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index 409cf1afd..c987bee93 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.2.0" + image: "quay.io/mongodb/mongodb-kubernetes:1.3.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.2.0 + value: 1.3.0 - name: DATABASE_VERSION - value: 1.2.0 + value: 1.3.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.2.0 + value: 1.3.0 # AppDB - name: INIT_APPDB_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-appdb - name: INIT_APPDB_VERSION - value: 1.2.0 + value: 1.3.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_2_0 - value: "quay.io/mongodb/mongodb-kubernetes-database:1.2.0" - - name: RELATED_IMAGE_INIT_DATABASE_IMAGE_REPOSITORY_1_2_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-database:1.2.0" - - name: RELATED_IMAGE_INIT_OPS_MANAGER_IMAGE_REPOSITORY_1_2_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-ops-manager:1.2.0" - - name: RELATED_IMAGE_INIT_APPDB_IMAGE_REPOSITORY_1_2_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-appdb:1.2.0" + - name: RELATED_IMAGE_MONGODB_ENTERPRISE_DATABASE_IMAGE_1_3_0 + value: "quay.io/mongodb/mongodb-kubernetes-database:1.3.0" + - name: RELATED_IMAGE_INIT_DATABASE_IMAGE_REPOSITORY_1_3_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-database:1.3.0" + - name: RELATED_IMAGE_INIT_OPS_MANAGER_IMAGE_REPOSITORY_1_3_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-ops-manager:1.3.0" + - name: RELATED_IMAGE_INIT_APPDB_IMAGE_REPOSITORY_1_3_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-appdb:1.3.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 @@ -295,8 +295,6 @@ spec: value: "quay.io/mongodb/mongodb-enterprise-server:8.0.0-ubi8" - name: RELATED_IMAGE_MONGODB_IMAGE_8_0_0_ubi9 value: "quay.io/mongodb/mongodb-enterprise-server:8.0.0-ubi9" - - name: RELATED_IMAGE_MDB_SEARCH_IMAGE_1_47_0 - value: "quay.io/mongodb/mongodb-search-community:1.47.0" - name: MDB_SEARCH_COMMUNITY_REPO_URL value: "quay.io/mongodb" - name: MDB_SEARCH_COMMUNITY_NAME diff --git a/config/manifests/bases/mongodb-kubernetes.clusterserviceversion.yaml b/config/manifests/bases/mongodb-kubernetes.clusterserviceversion.yaml index ff25f458d..522047051 100644 --- a/config/manifests/bases/mongodb-kubernetes.clusterserviceversion.yaml +++ b/config/manifests/bases/mongodb-kubernetes.clusterserviceversion.yaml @@ -6,7 +6,7 @@ metadata: capabilities: Deep Insights categories: Database certified: "true" - containerImage: quay.io/mongodb/mongodb-kubernetes:1.2.0 + containerImage: quay.io/mongodb/mongodb-kubernetes:1.3.0 createdAt: "" description: The MongoDB Controllers for Kubernetes enable easy deploys of MongoDB into Kubernetes clusters, using our management, monitoring and @@ -456,5 +456,5 @@ spec: maturity: stable provider: name: MongoDB, Inc - replaces: mongodb-kubernetes.v1.1.0 + replaces: mongodb-kubernetes.v1.2.0 version: 0.0.0 diff --git a/helm_chart/Chart.yaml b/helm_chart/Chart.yaml index 65bae41cc..33160e56b 100644 --- a/helm_chart/Chart.yaml +++ b/helm_chart/Chart.yaml @@ -3,7 +3,7 @@ name: mongodb-kubernetes description: MongoDB Controllers for Kubernetes translate the human knowledge of creating a MongoDB instance into a scalable, repeatable, and standardized method. -version: 1.2.0 +version: 1.3.0 kubeVersion: '>=1.16-0' type: application keywords: diff --git a/helm_chart/templates/operator.yaml b/helm_chart/templates/operator.yaml index e9c5dcb4b..4a224bcd8 100644 --- a/helm_chart/templates/operator.yaml +++ b/helm_chart/templates/operator.yaml @@ -262,10 +262,6 @@ spec: - name: RELATED_IMAGE_{{ $mongodbImageEnv }}_{{ $version | replace "." "_" | replace "-" "_" }} value: "{{ $.Values.mongodb.repo }}/{{ $.Values.mongodb.name }}:{{ $version }}" {{- end }} - {{- if .Values.search }} - - name: RELATED_IMAGE_MDB_SEARCH_IMAGE_{{ .Values.search.community.version | replace "." "_" | replace "-" "_" }} - value: "{{ .Values.search.community.repo }}/{{ .Values.search.community.name }}:{{ $.Values.search.community.version }}" - {{- end }} {{- end }} {{- if .Values.search }} - name: MDB_SEARCH_COMMUNITY_REPO_URL diff --git a/helm_chart/values-openshift.yaml b/helm_chart/values-openshift.yaml index bf568af92..7c64b0aa6 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.2.0 + version: 1.3.0 relatedImages: opsManager: - 6.0.26 diff --git a/helm_chart/values.yaml b/helm_chart/values.yaml index b11aca350..ee4a58154 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.2.0 + version: 1.3.0 # The Custom Resources that will be watched by the Operator. Needs to be changed if only some of the CRDs are installed watchedResources: @@ -123,11 +123,11 @@ operator: ## Database database: name: mongodb-kubernetes-database - version: 1.2.0 + version: 1.3.0 initDatabase: name: mongodb-kubernetes-init-database - version: 1.2.0 + version: 1.3.0 ## Ops Manager opsManager: @@ -135,12 +135,12 @@ opsManager: initOpsManager: name: mongodb-kubernetes-init-ops-manager - version: 1.2.0 + version: 1.3.0 ## Application Database initAppDb: name: mongodb-kubernetes-init-appdb - version: 1.2.0 + version: 1.3.0 agent: name: mongodb-agent diff --git a/public/dockerfiles/mongodb-kubernetes-database/1.3.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes-database/1.3.0/ubi/Dockerfile new file mode 100644 index 000000000..dd7704169 --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes-database/1.3.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.3.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes-init-appdb/1.3.0/ubi/Dockerfile new file mode 100644 index 000000000..eeb48b288 --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes-init-appdb/1.3.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.3.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes-init-database/1.3.0/ubi/Dockerfile new file mode 100644 index 000000000..9a0b009fd --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes-init-database/1.3.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.3.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes-init-ops-manager/1.3.0/ubi/Dockerfile new file mode 100644 index 000000000..07427ff0f --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes-init-ops-manager/1.3.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.3.0/ubi/Dockerfile b/public/dockerfiles/mongodb-kubernetes/1.3.0/ubi/Dockerfile new file mode 100644 index 000000000..8253c5e4f --- /dev/null +++ b/public/dockerfiles/mongodb-kubernetes/1.3.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 74bf8af0f..fd845b70b 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.2.0" + image: "quay.io/mongodb/mongodb-kubernetes:1.3.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.2.0 + value: 1.3.0 - name: DATABASE_VERSION - value: 1.2.0 + value: 1.3.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.2.0 + value: 1.3.0 # AppDB - name: INIT_APPDB_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-appdb - name: INIT_APPDB_VERSION - value: 1.2.0 + value: 1.3.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 e557f73c9..de796cb3c 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.2.0" + image: "quay.io/mongodb/mongodb-kubernetes:1.3.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.2.0 + value: 1.3.0 - name: DATABASE_VERSION - value: 1.2.0 + value: 1.3.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.2.0 + value: 1.3.0 # AppDB - name: INIT_APPDB_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-appdb - name: INIT_APPDB_VERSION - value: 1.2.0 + value: 1.3.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_2_0 - value: "quay.io/mongodb/mongodb-kubernetes-database:1.2.0" - - name: RELATED_IMAGE_INIT_DATABASE_IMAGE_REPOSITORY_1_2_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-database:1.2.0" - - name: RELATED_IMAGE_INIT_OPS_MANAGER_IMAGE_REPOSITORY_1_2_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-ops-manager:1.2.0" - - name: RELATED_IMAGE_INIT_APPDB_IMAGE_REPOSITORY_1_2_0 - value: "quay.io/mongodb/mongodb-kubernetes-init-appdb:1.2.0" + - name: RELATED_IMAGE_MONGODB_ENTERPRISE_DATABASE_IMAGE_1_3_0 + value: "quay.io/mongodb/mongodb-kubernetes-database:1.3.0" + - name: RELATED_IMAGE_INIT_DATABASE_IMAGE_REPOSITORY_1_3_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-database:1.3.0" + - name: RELATED_IMAGE_INIT_OPS_MANAGER_IMAGE_REPOSITORY_1_3_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-ops-manager:1.3.0" + - name: RELATED_IMAGE_INIT_APPDB_IMAGE_REPOSITORY_1_3_0 + value: "quay.io/mongodb/mongodb-kubernetes-init-appdb:1.3.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 @@ -599,8 +599,6 @@ spec: value: "quay.io/mongodb/mongodb-enterprise-server:8.0.0-ubi8" - name: RELATED_IMAGE_MONGODB_IMAGE_8_0_0_ubi9 value: "quay.io/mongodb/mongodb-enterprise-server:8.0.0-ubi9" - - name: RELATED_IMAGE_MDB_SEARCH_IMAGE_1_47_0 - value: "quay.io/mongodb/mongodb-search-community:1.47.0" - name: MDB_SEARCH_COMMUNITY_REPO_URL value: "quay.io/mongodb" - name: MDB_SEARCH_COMMUNITY_NAME diff --git a/public/mongodb-kubernetes.yaml b/public/mongodb-kubernetes.yaml index 73baa2fa9..71beff08d 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.2.0" + image: "quay.io/mongodb/mongodb-kubernetes:1.3.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.2.0 + value: 1.3.0 - name: DATABASE_VERSION - value: 1.2.0 + value: 1.3.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.2.0 + value: 1.3.0 # AppDB - name: INIT_APPDB_IMAGE_REPOSITORY value: quay.io/mongodb/mongodb-kubernetes-init-appdb - name: INIT_APPDB_VERSION - value: 1.2.0 + value: 1.3.0 - name: OPS_MANAGER_IMAGE_PULL_POLICY value: Always - name: AGENT_IMAGE diff --git a/release.json b/release.json index b3fbd3536..3614981fe 100644 --- a/release.json +++ b/release.json @@ -2,11 +2,11 @@ "mongodbToolsBundle": { "ubi": "mongodb-database-tools-rhel88-x86_64-100.12.2.tgz" }, - "mongodbOperator": "1.2.0", - "initDatabaseVersion": "1.2.0", - "initOpsManagerVersion": "1.2.0", - "initAppDbVersion": "1.2.0", - "databaseImageVersion": "1.2.0", + "mongodbOperator": "1.3.0", + "initDatabaseVersion": "1.3.0", + "initOpsManagerVersion": "1.3.0", + "initAppDbVersion": "1.3.0", + "databaseImageVersion": "1.3.0", "agentVersion": "108.0.12.8846-1", "openshift": { "minimumSupportedVersion": "4.6" @@ -67,7 +67,8 @@ "versions": [ "1.0.1", "1.1.0", - "1.2.0" + "1.2.0", + "1.3.0" ], "variants": [ "ubi" @@ -185,7 +186,8 @@ "versions": [ "1.0.1", "1.1.0", - "1.2.0" + "1.2.0", + "1.3.0" ], "variants": [ "ubi" @@ -197,7 +199,8 @@ "versions": [ "1.0.1", "1.1.0", - "1.2.0" + "1.2.0", + "1.3.0" ], "variants": [ "ubi" @@ -209,7 +212,8 @@ "versions": [ "1.0.1", "1.1.0", - "1.2.0" + "1.2.0", + "1.3.0" ], "variants": [ "ubi" @@ -221,7 +225,8 @@ "versions": [ "1.0.1", "1.1.0", - "1.2.0" + "1.2.0", + "1.3.0" ], "variants": [ "ubi"