diff --git a/.evergreen-functions.yml b/.evergreen-functions.yml index 6a3e41cc5..7dd40e980 100644 --- a/.evergreen-functions.yml +++ b/.evergreen-functions.yml @@ -517,22 +517,26 @@ functions: # docker buildx needs the moby/buildkit image when setting up a builder so we pull it from our mirror docker buildx create --driver=docker-container --driver-opt=image=268558157000.dkr.ecr.eu-west-1.amazonaws.com/docker-hub-mirrors/moby/buildkit:buildx-stable-1 --use docker buildx inspect --bootstrap - - command: ec2.assume_role - display_name: Assume IAM role with permissions to pull Kondukto API token + - command: subprocess.exec + retry_on_failure: true + type: setup params: - role_arn: ${kondukto_role_arn} + shell: bash + <<: *e2e_include_expansions_in_env + working_dir: src/github.com/mongodb/mongodb-kubernetes + binary: scripts/dev/run_python.sh scripts/release/pipeline_main.py --parallel ${image_name} + + release_pipeline: + - *switch_context - command: shell.exec - display_name: Pull Kondukto API token from AWS Secrets Manager and write it to file + type: setup params: - silent: true shell: bash - include_expansions_in_env: [AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN] script: | - set -e - # use AWS CLI to get the Kondukto API token from AWS Secrets Manager - kondukto_token=$(aws secretsmanager get-secret-value --secret-id "kondukto-token" --region "us-east-1" --query 'SecretString' --output text) - # write the KONDUKTO_TOKEN environment variable to Silkbomb environment file - echo "KONDUKTO_TOKEN=$kondukto_token" > ${workdir}/silkbomb.env + # Docker Hub workaround + # docker buildx needs the moby/buildkit image when setting up a builder so we pull it from our mirror + docker buildx create --driver=docker-container --driver-opt=image=268558157000.dkr.ecr.eu-west-1.amazonaws.com/docker-hub-mirrors/moby/buildkit:buildx-stable-1 --use + docker buildx inspect --bootstrap - command: subprocess.exec retry_on_failure: true type: setup @@ -540,7 +544,9 @@ functions: shell: bash <<: *e2e_include_expansions_in_env working_dir: src/github.com/mongodb/mongodb-kubernetes - binary: scripts/dev/run_python.sh scripts/release/pipeline_main.py --parallel ${image_name} + env: + git_tag: ${triggered_by_git_tag} + binary: scripts/dev/run_python.sh scripts/release/pipeline_main.py ${image_name} --build-scenario release --version ${git_tag} # TODO: CLOUDP-335471 ; once all image builds are made with the new atomic pipeline, remove the following function legacy_pipeline: @@ -823,3 +829,65 @@ functions: - task_name script: | ./scripts/code_snippets/${task_name}_test.sh + + # + # kubectl mongodb plugin release functions + # + install_goreleaser: + - command: shell.exec + type: setup + include_expansions_in_env: + - goreleaser_pro_tar_gz + params: + script: | + set -Eeu pipefail + curl -fL "${goreleaser_pro_tar_gz}" --output goreleaser_Linux_x86_64.tar.gz + tar -xf goreleaser_Linux_x86_64.tar.gz + chmod 755 ./goreleaser + + install_macos_notarization_service: + - command: shell.exec + type: setup + params: + include_expansions_in_env: + - notary_service_url + script: | + set -Eeu pipefail + + curl "${notary_service_url}" --output macos-notary.zip + unzip -u macos-notary.zip + chmod 755 ./linux_amd64/macnotary + + release_kubectl_mongodb_plugin: + - command: github.generate_token + params: + expansion_name: generated_token + - command: shell.exec + type: setup + params: + working_dir: src/github.com/mongodb/mongodb-kubernetes + include_expansions_in_env: + - GRS_USERNAME + - GRS_PASSWORD + - PKCS11_URI + - ARTIFACTORY_URL + - ARTIFACTORY_PASSWORD + - SIGNING_IMAGE_URI + - macos_notary_keyid + - macos_notary_secret + - workdir + - triggered_by_git_tag + env: + XDG_CONFIG_HOME: ${go_base_path}${workdir} + GO111MODULE: "on" + GOROOT: "/opt/golang/go1.24" + MACOS_NOTARY_KEY: ${macos_notary_keyid} + MACOS_NOTARY_SECRET: ${macos_notary_secret} + GORELEASER_CURRENT_TAG: ${triggered_by_git_tag} + # shell.exec EVG Task doesn't have add_to_path, so we need to explicitly add the path export below. + script: | + set -Eeu pipefail + + export PATH=$GOROOT/bin:$PATH + export GITHUB_TOKEN=${generated_token} + ${workdir}/goreleaser release --clean diff --git a/.evergreen-kubectlplugin.yml b/.evergreen-kubectlplugin.yml deleted file mode 100644 index 72129009a..000000000 --- a/.evergreen-kubectlplugin.yml +++ /dev/null @@ -1,99 +0,0 @@ -variables: - - &go_env - XDG_CONFIG_HOME: ${go_base_path}${workdir} - GO111MODULE: "on" - GOROOT: "/opt/golang/go1.24" -functions: - "clone": - - command: subprocess.exec - type: setup - params: - command: "mkdir -p src/github.com/mongodb" - - command: git.get_project - type: setup - params: - directory: src/github.com/mongodb/mongodb-kubernetes - - "install goreleaser": - - command: shell.exec - type: setup - include_expansions_in_env: - - goreleaser_pro_tar_gz - params: - script: | - set -Eeu pipefail - curl -fL "${goreleaser_pro_tar_gz}" --output goreleaser_Linux_x86_64.tar.gz - tar -xf goreleaser_Linux_x86_64.tar.gz - chmod 755 ./goreleaser - - "install macos notarization service": - - command: shell.exec - type: setup - params: - include_expansions_in_env: - - notary_service_url - script: | - set -Eeu pipefail - - curl "${notary_service_url}" --output macos-notary.zip - unzip -u macos-notary.zip - chmod 755 ./linux_amd64/macnotary - "release": - - command: github.generate_token - params: - expansion_name: generated_token - - command: shell.exec - type: setup - params: - working_dir: src/github.com/mongodb/mongodb-kubernetes - include_expansions_in_env: - - GRS_USERNAME - - GRS_PASSWORD - - PKCS11_URI - - ARTIFACTORY_URL - - ARTIFACTORY_PASSWORD - - SIGNING_IMAGE_URI - - macos_notary_keyid - - macos_notary_secret - - workdir - - triggered_by_git_tag - env: - <<: *go_env - MACOS_NOTARY_KEY: ${macos_notary_keyid} - MACOS_NOTARY_SECRET: ${macos_notary_secret} - # TODO: CLOUDP-318631 triggered_by_git_tag is not set, because we run the task manually - GORELEASER_CURRENT_TAG: ${triggered_by_git_tag} - # shell.exec EVG Task doesn't have add_to_path, so we need to explicitly add the path export below. - script: | - set -Eeu pipefail - - export PATH=$GOROOT/bin:$PATH - export GITHUB_TOKEN=${generated_token} - ${workdir}/goreleaser release --clean - -tasks: - - name: package_goreleaser - allowed_requesters: ["patch", "github_tag"] - tags: ["packaging"] - commands: - - func: "clone" - - func: "install goreleaser" - - func: "install macos notarization service" - - func: "release" - # add a noop task because if the only task in a variant is git_tag_only: true Evergreen doesn't start it at all - - name: noop - commands: - - command: shell.exec - params: - shell: bash - script: echo "this is the noop task" - -buildvariants: - # This variant is run when a new tag is out similar to github actions. - - name: release_mcli - display_name: Release Go multi-cluster binary - run_on: - - ubuntu2204-small - tasks: - - name: package_goreleaser - - name: noop diff --git a/.evergreen-release.yml b/.evergreen-release.yml new file mode 100644 index 000000000..664849ab9 --- /dev/null +++ b/.evergreen-release.yml @@ -0,0 +1,186 @@ +include: + - filename: .evergreen-functions.yml + +tasks: + + - name: release_operator + tags: [ "image_release" ] + allowed_requesters: [ "patch", "github_tag" ] + commands: + - func: clone + - func: setup_building_host + - func: quay_login + - func: release_pipeline + vars: + image_name: operator + + # Releases init images to Quay + - name: release_init_appdb + tags: [ "image_release" ] + allowed_requesters: [ "patch", "github_tag" ] + commands: + - func: clone + - func: setup_building_host + - func: quay_login + - func: release_pipeline + vars: + image_name: init-appdb + + - name: release_init_database + tags: [ "image_release" ] + allowed_requesters: [ "patch", "github_tag" ] + commands: + - func: clone + - func: setup_building_host + - func: quay_login + - func: release_pipeline + vars: + image_name: init-database + + - name: release_init_ops_manager + tags: [ "image_release" ] + allowed_requesters: [ "patch", "github_tag" ] + commands: + - func: clone + - func: setup_building_host + - func: quay_login + - func: release_pipeline + vars: + image_name: init-ops-manager + + - name: release_database + tags: [ "image_release" ] + allowed_requesters: [ "patch", "github_tag" ] + commands: + - func: clone + - func: setup_building_host + - func: quay_login + - func: release_pipeline + vars: + image_name: database + + - name: prepare_and_upload_openshift_bundles + tags: [ "openshift_bundles" ] + allowed_requesters: [ "patch", "github_tag" ] + commands: + - func: clone + - func: setup_aws + - func: configure_docker_auth + - func: setup_prepare_openshift_bundles + - func: prepare_openshift_bundles + - func: update_evergreen_expansions + - func: upload_openshift_bundle + vars: + # mongoDbOperator expansion is added in update_evergreen_expansions func from release.json + bundle_file_name: "mck-operator-certified-${mongodbOperator}.tgz" + + - name: run_conditionally_prepare_and_upload_openshift_bundles + tags: [ "openshift_bundles" ] + allowed_requesters: [ "patch", "github_tag" ] + commands: + - func: clone + - func: run_task_conditionally + vars: + condition_script: scripts/evergreen/should_prepare_openshift_bundles.sh + variant: prepare_openshift_bundles + task: prepare_and_upload_openshift_bundles + + - name: release_kubectl_mongodb_plugin + allowed_requesters: [ "patch", "github_tag" ] + tags: [ "binary_release" ] + commands: + - func: clone + - func: install_goreleaser + - func: install_macos_notarization_service + - func: release_kubectl_mongodb_plugin + +### Release build variants +buildvariants: + + - name: release_images + display_name: release_images + tags: [ "release" ] + allowed_requesters: [ "patch", "github_tag" ] + max_hosts: -1 + run_on: + - release-ubuntu2204-large # This is required for CISA attestation https://jira.mongodb.org/browse/DEVPROD-17780 + tasks: + - name: release_operator + - name: release_init_appdb + - name: release_init_database + - name: release_init_ops_manager + - name: release_database + + - name: preflight_release_images + display_name: preflight_release_images + tags: [ "release" ] + allowed_requesters: [ "patch", "github_tag" ] + depends_on: + - name: "*" + variant: release_images + run_on: + - rhel90-large + expansions: + preflight_submit: true + tasks: + - name: preflight_images_task_group + + - name: prepare_openshift_bundles + display_name: prepare_openshift_bundles + tags: [ "release" ] + allowed_requesters: [ "patch", "github_tag" ] + depends_on: + - name: "*" + variant: release_images + - name: "*" + variant: preflight_release_images + run_on: + - ubuntu2204-large + tasks: + - name: run_conditionally_prepare_and_upload_openshift_bundles + + - name: prerelease_gke_code_snippets + display_name: prerelease_gke_code_snippets + tags: [ "release" ] + allowed_requesters: ["patch", "github_tag"] + depends_on: + - variant: release_images + name: '*' + patch_optional: true + run_on: + - ubuntu2204-small + tasks: + - name: gke_code_snippets_task_group + + - name: e2e_smoke + display_name: e2e_smoke + tags: [ "e2e_smoke_release_test_suite" ] + run_on: + - ubuntu2204-large + allowed_requesters: [ "patch", "github_tag" ] + depends_on: + - name: "*" + variant: release_images + tasks: + - name: e2e_smoke_task_group + + - name: e2e_static_smoke + display_name: e2e_static_smoke + tags: [ "e2e_smoke_release_test_suite" ] + run_on: + - ubuntu2204-large + allowed_requesters: [ "patch", "github_tag" ] + depends_on: + - name: "*" + variant: release_images + tasks: + - name: e2e_smoke_task_group + + - name: release_kubectl_mongodb_plugin + display_name: release_kubectl_mongodb_plugin + tags: [ "release" ] + run_on: + - release-ubuntu2204-small # This is required for CISA attestation https://jira.mongodb.org/browse/DEVPROD-17780 + allowed_requesters: [ "patch", "github_tag" ] + tasks: + - name: release_kubectl_mongodb_plugin diff --git a/.evergreen.yml b/.evergreen.yml index fdf94f589..5d9574e24 100644 --- a/.evergreen.yml +++ b/.evergreen.yml @@ -5,6 +5,7 @@ include: - filename: .evergreen-functions.yml - filename: .evergreen-tasks.yml - filename: .evergreen-mco.yml + - filename: .evergreen-release.yml variables: - &ops_manager_60_latest 6.0.27 # The order/index is important, since these are anchors. Please do not change @@ -236,7 +237,7 @@ patch_aliases: task: ".*" - alias: "release" variant_tags: [ "release", "e2e_smoke_release_test_suite" ] - task_tags: [ "image_release", "image_preflight", "openshift_bundles", "code_snippets", "patch-run" ] + task_tags: [ "image_release", "binary_release", "image_preflight", "openshift_bundles", "code_snippets", "patch-run" ] - alias: "smoke_test_release" variant_tags: [ "e2e_smoke_release_test_suite" ] task_tags: [ "patch-run" ] @@ -267,7 +268,7 @@ github_checks_aliases: git_tag_aliases: - git_tag: "^(\\d+\\.)?(\\d+\\.)?(\\d+)$" variant_tags: [ "release", "e2e_smoke_release_test_suite" ] - task_tags: [ "image_release", "image_preflight", "openshift_bundles", "code_snippets", "patch-run" ] + task_tags: [ "image_release", "image_preflight", "binary_release", "openshift_bundles", "code_snippets", "patch-run" ] tasks: - name: unit_tests_golang @@ -294,86 +295,6 @@ tasks: commands: - func: lint_repo - - name: release_operator - tags: [ "image_release" ] - allowed_requesters: [ "patch", "github_tag" ] - commands: - - func: clone - - func: setup_building_host - - func: quay_login - - func: setup_docker_sbom - - func: legacy_pipeline - vars: - image_name: operator - include_tags: release - - # Releases init images to Quay - - name: release_init_appdb - tags: [ "image_release" ] - allowed_requesters: [ "patch", "github_tag" ] - commands: - - func: clone - - func: setup_building_host - - func: quay_login - - func: setup_docker_sbom - - func: legacy_pipeline - vars: - image_name: init-appdb - include_tags: release - - - name: release_init_database - tags: [ "image_release" ] - allowed_requesters: [ "patch", "github_tag" ] - commands: - - func: clone - - func: setup_building_host - - func: quay_login - - func: setup_docker_sbom - - func: legacy_pipeline - vars: - image_name: init-database - include_tags: release - - - name: release_init_ops_manager - tags: [ "image_release" ] - allowed_requesters: [ "patch", "github_tag" ] - commands: - - func: clone - - func: setup_building_host - - func: quay_login - - func: setup_docker_sbom - - func: legacy_pipeline - vars: - image_name: init-ops-manager - include_tags: release - - - name: release_agent_operator_release - tags: [ "image_release" ] - allowed_requesters: [ "patch", "github_tag" ] - commands: - - func: clone - - func: setup_building_host - - func: quay_login - - func: setup_docker_sbom - - func: legacy_pipeline - vars: - image_name: agent - include_tags: release - - # pct only triggers this variant once a new agent image is out - - name: release_agent - # this enables us to run this variant either manually (patch) which pct does or during an OM bump (github_pr) - allowed_requesters: [ "patch", "github_pr" ] - commands: - - func: clone - - func: setup_building_host - - func: quay_login - - func: setup_docker_sbom - - func: legacy_pipeline - vars: - image_name: agent-pct - include_tags: release - - name: run_precommit_and_push tags: ["patch-run"] commands: @@ -392,6 +313,20 @@ tasks: working_dir: src/github.com/mongodb/mongodb-kubernetes binary: scripts/evergreen/precommit_bump.sh + # pct only triggers this variant once a new agent image is out + - name: release_agent + # this enables us to run this variant either manually (patch) which pct does or during an OM bump (github_pr) + allowed_requesters: [ "patch", "github_pr" ] + commands: + - func: clone + - func: setup_building_host + - func: quay_login + - func: setup_docker_sbom + - func: legacy_pipeline + vars: + image_name: agent-pct + include_tags: release + # Pct only triggers this variant once a new agent image is out # these releases the agent with the operator suffix (not patch id) on ecr to allow for digest pinning to pass. # For this to work, we rely on skip_tags which is used to determine whether @@ -561,18 +496,6 @@ tasks: variant: e2e_operator_perf_thirty size: small - - name: release_database - tags: [ "image_release" ] - allowed_requesters: [ "patch", "github_tag" ] - commands: - - func: clone - - func: setup_building_host - - func: quay_login - - func: setup_docker_sbom - - func: legacy_pipeline - vars: - image_name: database - - name: build_om_images commands: - func: clone @@ -580,7 +503,6 @@ tasks: - func: pipeline vars: image_name: ops-manager - skip_tags: release - name: publish_ops_manager commands: @@ -601,30 +523,6 @@ tasks: - func: setup_prepare_openshift_bundles - func: prepare_openshift_bundles_for_e2e - - name: prepare_and_upload_openshift_bundles - tags: [ "openshift_bundles" ] - commands: - - func: clone - - func: setup_aws - - func: configure_docker_auth - - func: setup_prepare_openshift_bundles - - func: prepare_openshift_bundles - - func: update_evergreen_expansions - - func: upload_openshift_bundle - vars: - # mongoDbOperator expansion is added in update_evergreen_expansions func from release.json - bundle_file_name: "mck-operator-certified-${mongodbOperator}.tgz" - - - name: run_conditionally_prepare_and_upload_openshift_bundles - tags: [ "openshift_bundles" ] - commands: - - func: clone - - func: run_task_conditionally - vars: - condition_script: scripts/evergreen/should_prepare_openshift_bundles.sh - variant: prepare_openshift_bundles - task: prepare_and_upload_openshift_bundles - - name: backup_csv_images_dry_run commands: - func: clone @@ -1456,30 +1354,6 @@ buildvariants: tasks: - name: e2e_operator_race_with_telemetry_task_group - - name: e2e_smoke - display_name: e2e_smoke - tags: [ "e2e_test_suite", "e2e_smoke_release_test_suite" ] - run_on: - - ubuntu2204-large - allowed_requesters: [ "patch", "github_tag" ] - depends_on: - - name: build_test_image - variant: init_test_run - tasks: - - name: e2e_smoke_task_group - - - name: e2e_static_smoke - display_name: e2e_static_smoke - tags: [ "e2e_test_suite", "e2e_smoke_release_test_suite" ] - run_on: - - ubuntu2204-large - allowed_requesters: [ "patch", "github_tag" ] - depends_on: - - name: build_test_image - variant: init_test_run - tasks: - - name: e2e_smoke_task_group - - name: e2e_multi_cluster_kind display_name: e2e_multi_cluster_kind tags: [ "e2e_test_suite" ] @@ -1782,69 +1656,6 @@ buildvariants: tasks: - name: preflight_om_image - ### Release build variants - - ## Adds versions as supported in the supported versions Database. - - name: release_images - display_name: release_images - tags: [ "release" ] - allowed_requesters: [ "patch", "github_tag" ] - max_hosts: -1 - run_on: - - release-ubuntu2204-large # This is required for CISA attestation https://jira.mongodb.org/browse/DEVPROD-17780 - depends_on: - - name: build_operator_ubi - variant: init_test_run - - name: build_init_om_images_ubi - variant: init_test_run - - name: build_init_appdb_images_ubi - variant: init_test_run - - name: build_init_database_image_ubi - variant: init_test_run - - name: build_database_image_ubi - variant: init_test_run - tasks: - - name: release_operator - - name: release_init_appdb - - name: release_init_database - - name: release_init_ops_manager - - name: release_database - # Once we release the operator, we will also release the init databases, we require them to be out first - # such that we can reference them and retrieve those binaries. - # Since we immediately run daily rebuild after creating the image, we can ensure that the init_database is out - # such that the agent image build can use it. - - name: release_agent_operator_release - depends_on: - - name: release_init_database - - - name: preflight_release_images - display_name: preflight_release_images - tags: [ "release" ] - allowed_requesters: [ "patch", "github_tag" ] - depends_on: - - name: "*" - variant: release_images - run_on: - - rhel90-large - expansions: - preflight_submit: true - tasks: - - name: preflight_images_task_group - - - name: prepare_openshift_bundles - display_name: prepare_openshift_bundles - tags: [ "release" ] - allowed_requesters: [ "patch", "github_tag" ] - depends_on: - - name: "*" - variant: release_images - - name: "*" - variant: preflight_release_images - run_on: - - ubuntu2204-large - tasks: - - name: run_conditionally_prepare_and_upload_openshift_bundles - # It will be called by pct while bumping the agent cloud manager image - name: release_agent display_name: (Static Containers) Release Agent matrix @@ -1886,19 +1697,6 @@ buildvariants: tasks: - name: gke_code_snippets_task_group - - name: prerelease_gke_code_snippets - display_name: prerelease_gke_code_snippets - tags: [ "release" ] - allowed_requesters: ["patch", "github_tag"] - depends_on: - - variant: release_images - name: '*' - patch_optional: true - run_on: - - ubuntu2204-small - tasks: - - name: gke_code_snippets_task_group - - name: private_gke_code_snippets display_name: private_gke_code_snippets allowed_requesters: ["patch"] diff --git a/build_info.json b/build_info.json index 286667428..f9abde71a 100644 --- a/build_info.json +++ b/build_info.json @@ -12,15 +12,14 @@ "sign": true, "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes", "platforms": [ - "linux/arm64", "linux/amd64" ] }, "release": { "sign": true, + "olm-tag": true, "repository": "quay.io/mongodb/mongodb-kubernetes", "platforms": [ - "linux/arm64", "linux/amd64" ] } @@ -37,7 +36,6 @@ "sign": true, "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes", "platforms": [ - "linux/arm64", "linux/amd64" ] } @@ -52,17 +50,17 @@ }, "staging": { "sign": true, + "latest-tag": true, "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-init-database", "platforms": [ - "linux/arm64", "linux/amd64" ] }, "release": { "sign": true, + "olm-tag": true, "repository": "quay.io/mongodb/mongodb-kubernetes-init-database", "platforms": [ - "linux/arm64", "linux/amd64" ] } @@ -77,17 +75,17 @@ }, "staging": { "sign": true, + "latest-tag": true, "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-init-appdb", "platforms": [ - "linux/arm64", "linux/amd64" ] }, "release": { "sign": true, + "olm-tag": true, "repository": "quay.io/mongodb/mongodb-kubernetes-init-appdb", "platforms": [ - "linux/arm64", "linux/amd64" ] } @@ -102,17 +100,17 @@ }, "staging": { "sign": true, + "latest-tag": true, "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-init-ops-manager", "platforms": [ - "linux/arm64", "linux/amd64" ] }, "release": { "sign": true, + "olm-tag": true, "repository": "quay.io/mongodb/mongodb-kubernetes-init-ops-manager", "platforms": [ - "linux/arm64", "linux/amd64" ] } @@ -127,17 +125,17 @@ }, "staging": { "sign": true, + "latest-tag": true, "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-database", "platforms": [ - "linux/arm64", "linux/amd64" ] }, "release": { "sign": true, + "olm-tag": true, "repository": "quay.io/mongodb/mongodb-kubernetes-database", "platforms": [ - "linux/arm64", "linux/amd64" ] } @@ -182,18 +180,18 @@ }, "staging": { "sign": true, + "latest-tag": true, "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-readinessprobe", "platforms": [ - "linux/arm64", "linux/amd64" ] }, "release": { "version": "1.0.22", "sign": true, + "olm-tag": true, "repository": "quay.io/mongodb/mongodb-kubernetes-readinessprobe", "platforms": [ - "linux/arm64", "linux/amd64" ] } @@ -208,18 +206,18 @@ }, "staging": { "sign": true, + "latest-tag": true, "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-operator-version-upgrade-post-start-hook", "platforms": [ - "linux/arm64", "linux/amd64" ] }, "release": { "version": "1.0.9", "sign": true, + "olm-tag": true, "repository": "quay.io/mongodb/mongodb-kubernetes-operator-version-upgrade-post-start-hook", "platforms": [ - "linux/arm64", "linux/amd64" ] } @@ -236,15 +234,14 @@ "sign": true, "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-agent-ubi", "platforms": [ - "linux/arm64", "linux/amd64" ] }, "release": { "sign": true, + "olm-tag": true, "repository": "quay.io/mongodb/mongodb-agent-ubi", "platforms": [ - "linux/arm64", "linux/amd64" ] } @@ -253,7 +250,7 @@ "dockerfile-path": "docker/mongodb-enterprise-ops-manager/Dockerfile.atomic", "patch": { "version": "om-version-from-release.json", - "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-enterprise-ops-manager", + "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-enterprise-ops-manager-ubi", "platforms": [ "linux/amd64" ] @@ -261,7 +258,7 @@ "staging": { "version": "om-version-from-release.json", "sign": true, - "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-enterprise-ops-manager", + "repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-enterprise-ops-manager-ubi", "platforms": [ "linux/amd64" ] @@ -269,7 +266,8 @@ "release": { "version": "om-version-from-release.json", "sign": true, - "repository": "quay.io/mongodb/mongodb-enterprise-ops-manager", + "olm-tag": true, + "repository": "quay.io/mongodb/mongodb-enterprise-ops-manager-ubi", "platforms": [ "linux/amd64" ] diff --git a/inventories/database.yaml b/inventories/database.yaml deleted file mode 100644 index 05d123f31..000000000 --- a/inventories/database.yaml +++ /dev/null @@ -1,65 +0,0 @@ -vars: - quay_registry: quay.io/mongodb/mongodb-kubernetes-database - s3_bucket: s3://enterprise-operator-dockerfiles/dockerfiles/mongodb-kubernetes-database - -images: -- name: database - vars: - context: docker/mongodb-kubernetes-database - platform: linux/amd64 - - stages: - - name: database-build-context - task_type: docker_build - dockerfile: Dockerfile.builder - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-database-context - tag: $(inputs.params.version_id) - - - name: init-appdb-template-ubi - task_type: dockerfile_template - distro: ubi - tags: ["ubi"] - inputs: - - version - output: - - dockerfile: $(functions.tempfile) - - - name: database-build-ubi - task_type: docker_build - dockerfile: $(stages['init-appdb-template-ubi'].outputs[0].dockerfile) - tags: ["ubi"] - buildargs: - imagebase: $(inputs.params.registry)/mongodb-kubernetes-database-context:$(inputs.params.version_id) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-database - tag: $(inputs.params.version_id) - - - name: master-latest - task_type: tag_image - tags: ["master"] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes-database - tag: $(inputs.params.version_id) - destination: - - registry: $(inputs.params.registry)/mongodb-kubernetes-database - tag: latest - - - name: database-release-context - task_type: tag_image - tags: ["release"] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes-database-context - tag: $(inputs.params.version_id) - destination: - - registry: $(inputs.params.quay_registry) - tag: $(inputs.params.version)-context - - - name: database-template-ubi - task_type: dockerfile_template - distro: ubi - tags: ["release"] - inputs: - - version - output: - - dockerfile: $(inputs.params.s3_bucket)/$(inputs.params.version)/ubi/Dockerfile diff --git a/inventories/init_appdb.yaml b/inventories/init_appdb.yaml deleted file mode 100644 index 50d5d4199..000000000 --- a/inventories/init_appdb.yaml +++ /dev/null @@ -1,69 +0,0 @@ -vars: - quay_registry: quay.io/mongodb/mongodb-kubernetes-init-appdb - s3_bucket: s3://enterprise-operator-dockerfiles/dockerfiles/mongodb-kubernetes-init-appdb - -images: -- name: init-appdb - vars: - context: . - template_context: docker/mongodb-kubernetes-init-database - platform: linux/amd64 - - stages: - - name: init-appdb-build-context - task_type: docker_build - dockerfile: docker/mongodb-kubernetes-init-database/Dockerfile.builder - buildargs: - mongodb_tools_url_ubi: $(inputs.params.mongodb_tools_url_ubi) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-appdb-context - tag: $(inputs.params.version_id) - - - name: init-appdb-template-ubi - task_type: dockerfile_template - template_file_extension: ubi_minimal - tags: ["ubi"] - inputs: - - is_appdb - output: - - dockerfile: $(functions.tempfile) - - - name: init-appdb-build-ubi - task_type: docker_build - tags: ["ubi"] - buildargs: - version: $(inputs.params.version) - imagebase: $(inputs.params.registry)/mongodb-kubernetes-init-appdb-context:$(inputs.params.version_id) - dockerfile: $(stages['init-appdb-template-ubi'].outputs[0].dockerfile) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-appdb - tag: $(inputs.params.version_id) - - - name: master-latest - task_type: tag_image - tags: [ "master" ] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes-init-appdb - tag: $(inputs.params.version_id) - destination: - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-appdb - tag: latest - - - name: init-appdb-release-context - task_type: tag_image - tags: ["release"] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes-init-appdb-context - tag: $(inputs.params.version_id) - destination: - - registry: $(inputs.params.quay_registry) - tag: $(inputs.params.version)-context - - - name: init-appdb-template-ubi - task_type: dockerfile_template - template_file_extension: ubi_minimal - tags: ["release"] - inputs: - - is_appdb - output: - - dockerfile: $(inputs.params.s3_bucket)/$(inputs.params.version)/ubi/Dockerfile diff --git a/inventories/init_database.yaml b/inventories/init_database.yaml deleted file mode 100644 index 57ab81679..000000000 --- a/inventories/init_database.yaml +++ /dev/null @@ -1,75 +0,0 @@ -vars: - quay_registry: quay.io/mongodb/mongodb-kubernetes-init-database - s3_bucket: s3://enterprise-operator-dockerfiles/dockerfiles/mongodb-kubernetes-init-database - -images: -- name: init-database - vars: - context: . - template_context: docker/mongodb-kubernetes-init-database - platform: linux/amd64 - - stages: - - name: init-database-build-context - task_type: docker_build - dockerfile: docker/mongodb-kubernetes-init-database/Dockerfile.builder - buildargs: - mongodb_tools_url_ubi: $(inputs.params.mongodb_tools_url_ubi) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-database-context - tag: $(inputs.params.version_id) - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-database-context - tag: $(inputs.params.version) - - - name: init-database-template-ubi - task_type: dockerfile_template - template_file_extension: ubi_minimal - tags: ["ubi"] - inputs: - - is_appdb - output: - - dockerfile: $(functions.tempfile) - - - name: init-database-build-ubi - task_type: docker_build - tags: ["ubi"] - buildargs: - imagebase: $(inputs.params.registry)/mongodb-kubernetes-init-database-context:$(inputs.params.version_id) - version: $(inputs.params.version) - dockerfile: $(stages['init-database-template-ubi'].outputs[0].dockerfile) - inputs: - - is_appdb - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-database - tag: $(inputs.params.version_id) - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-database - tag: $(inputs.params.version) - - - name: master-latest - task_type: tag_image - tags: ["master"] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes-init-database - tag: $(inputs.params.version_id) - destination: - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-database - tag: latest - - - name: init-database-release-context - task_type: tag_image - tags: ["release"] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes-init-database-context - tag: $(inputs.params.version_id) - destination: - - registry: $(inputs.params.quay_registry) - tag: $(inputs.params.version)-context - - - name: init-database-template-ubi - task_type: dockerfile_template - template_file_extension: ubi_minimal - tags: ["release"] - inputs: - - is_appdb - output: - - dockerfile: $(inputs.params.s3_bucket)/$(inputs.params.version)/ubi/Dockerfile diff --git a/inventories/init_om.yaml b/inventories/init_om.yaml deleted file mode 100644 index f3d310470..000000000 --- a/inventories/init_om.yaml +++ /dev/null @@ -1,65 +0,0 @@ -vars: - quay_registry: quay.io/mongodb/mongodb-kubernetes-init-ops-manager - s3_bucket: s3://enterprise-operator-dockerfiles/dockerfiles/mongodb-kubernetes-init-ops-manager - -images: -- name: init-ops-manager - vars: - context: docker/mongodb-kubernetes-init-ops-manager - platform: linux/amd64 - - stages: - - name: init-ops-manager-build-context - task_type: docker_build - dockerfile: Dockerfile.builder - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-ops-manager-context - tag: $(inputs.params.version_id) - - - name: init-ops-manager-template-ubi - task_type: dockerfile_template - template_file_extension: ubi_minimal - tags: ["ubi"] - inputs: - - version - output: - - dockerfile: $(functions.tempfile) - - - name: init-ops-manager-build-ubi - task_type: docker_build - dockerfile: $(stages['init-ops-manager-template-ubi'].outputs[0].dockerfile) - tags: ["ubi"] - buildargs: - imagebase: $(inputs.params.registry)/mongodb-kubernetes-init-ops-manager-context:$(inputs.params.version_id) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-ops-manager - tag: $(inputs.params.version_id) - - - name: master-latest - task_type: tag_image - tags: ["master"] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes-init-ops-manager - tag: $(inputs.params.version_id) - destination: - - registry: $(inputs.params.registry)/mongodb-kubernetes-init-ops-manager - tag: latest - - - name: init-ops-manager-release-context - task_type: tag_image - tags: ["release"] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes-init-ops-manager-context - tag: $(inputs.params.version_id) - destination: - - registry: $(inputs.params.quay_registry) - tag: $(inputs.params.version)-context - - - name: init-ops-manager-template-ubi - task_type: dockerfile_template - template_file_extension: ubi_minimal - tags: ["release"] - inputs: - - version - output: - - dockerfile: $(inputs.params.s3_bucket)/$(inputs.params.version)/ubi/Dockerfile diff --git a/inventories/mco_test.yaml b/inventories/mco_test.yaml deleted file mode 100644 index c926b4069..000000000 --- a/inventories/mco_test.yaml +++ /dev/null @@ -1,17 +0,0 @@ -images: -- name: community-operator-e2e - vars: - context: . # we will need the whole root for the go tests - platform: linux/amd64 - - stages: - - name: build - task_type: docker_build - dockerfile: docker/mongodb-community-tests/Dockerfile - buildargs: - GOLANG_VERSION: $(inputs.params.golang_version) - output: - - registry: $(inputs.params.registry)/mongodb-community-tests - tag: latest - - registry: $(inputs.params.registry)/mongodb-community-tests - tag: $(inputs.params.version_id) diff --git a/inventories/readiness_probe.yaml b/inventories/readiness_probe.yaml deleted file mode 100644 index c871ac093..000000000 --- a/inventories/readiness_probe.yaml +++ /dev/null @@ -1,62 +0,0 @@ -vars: - quay_registry: quay.io/mongodb/mongodb-kubernetes-readinessprobe - s3_bucket: s3://enterprise-operator-dockerfiles/dockerfiles/mongodb-kubernetes-readinessprobe - -images: - - name: mongodb-kubernetes-readinessprobe - vars: - context: . - template_context: docker/mongodb-kubernetes-readinessprobe - platform: linux/$(inputs.params.architecture) - - stages: - - name: readiness-probe-build-context - task_type: docker_build - dockerfile: docker/mongodb-kubernetes-readinessprobe/Dockerfile.builder - tags: ["ubi"] - buildargs: - GOLANG_VERSION: $(inputs.params.golang_version) - TARGETOS: linux - TARGETARCH: $(inputs.params.architecture) - - labels: - quay.expires-after: 48h - - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-readinessprobe - tag: $(inputs.params.version_id)-context-$(inputs.params.architecture) - - - name: readiness-probe-build-context-release - task_type: docker_build - tags: ["release"] - dockerfile: docker/mongodb-kubernetes-readinessprobe/Dockerfile.builder - buildargs: - GOLANG_VERSION: $(inputs.params.golang_version) - TARGETOS: linux - TARGETARCH: $(inputs.params.architecture) - output: - - registry: $(inputs.params.quay_registry) - tag: $(inputs.params.version)-context-$(inputs.params.architecture) - - - name: readiness-probe-build - task_type: docker_build - tags: ["ubi"] - buildargs: - imagebase: $(inputs.params.registry)/mongodb-kubernetes-readinessprobe:$(inputs.params.version_id)-context-$(inputs.params.architecture) - version: $(inputs.params.version) - dockerfile: docker/mongodb-kubernetes-readinessprobe/Dockerfile.old - - labels: - quay.expires-after: 48h - - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-readinessprobe - tag: $(inputs.params.version_id)-$(inputs.params.architecture) - - registry: $(inputs.params.registry)/mongodb-kubernetes-readinessprobe - tag: latest-$(inputs.params.architecture) - - - name: readiness-probe-template - task_type: dockerfile_template - tags: ["release"] - output: - - dockerfile: $(inputs.params.s3_bucket)/$(inputs.params.version)/ubi/Dockerfile diff --git a/inventories/test.yaml b/inventories/test.yaml deleted file mode 100644 index c83d96bc3..000000000 --- a/inventories/test.yaml +++ /dev/null @@ -1,17 +0,0 @@ -images: -- name: test - vars: - context: docker/mongodb-kubernetes-tests - platform: linux/amd64 - - stages: - - name: build - task_type: docker_build - dockerfile: Dockerfile - buildargs: - PYTHON_VERSION: $(inputs.params.python_version) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-tests - tag: latest - - registry: $(inputs.params.registry)/mongodb-kubernetes-tests - tag: $(inputs.params.version_id) diff --git a/inventories/upgrade_hook.yaml b/inventories/upgrade_hook.yaml deleted file mode 100644 index 0540fb8e8..000000000 --- a/inventories/upgrade_hook.yaml +++ /dev/null @@ -1,62 +0,0 @@ -vars: - quay_registry: quay.io/mongodb/mongodb-kubernetes-operator-version-upgrade-post-start-hook - s3_bucket: s3://enterprise-operator-dockerfiles/dockerfiles/mongodb-kubernetes-operator-version-upgrade-post-start-hook - -images: - - name: mongodb-kubernetes-operator-version-upgrade-post-start-hook - vars: - context: . - template_context: docker/mongodb-kubernetes-upgrade-hook - platform: linux/$(inputs.params.architecture) - - stages: - - name: readiness-probe-build-context - task_type: docker_build - dockerfile: docker/mongodb-kubernetes-upgrade-hook/Dockerfile.builder - tags: ["ubi"] - buildargs: - GOLANG_VERSION: $(inputs.params.golang_version) - TARGETOS: linux - TARGETARCH: $(inputs.params.architecture) - - labels: - quay.expires-after: 48h - - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-operator-version-upgrade-post-start-hook - tag: $(inputs.params.version_id)-context-$(inputs.params.architecture) - - - name: readiness-probe-build-context-release - task_type: docker_build - tags: ["release"] - dockerfile: docker/mongodb-kubernetes-upgrade-hook/Dockerfile.builder - buildargs: - GOLANG_VERSION: $(inputs.params.golang_version) - TARGETOS: linux - TARGETARCH: $(inputs.params.architecture) - output: - - registry: $(inputs.params.quay_registry) - tag: $(inputs.params.version)-context-$(inputs.params.architecture) - - - name: readiness-probe-build - task_type: docker_build - tags: ["ubi"] - buildargs: - imagebase: $(inputs.params.registry)/mongodb-kubernetes-operator-version-upgrade-post-start-hook:$(inputs.params.version_id)-context-$(inputs.params.architecture) - version: $(inputs.params.version) - dockerfile: docker/mongodb-kubernetes-upgrade-hook/Dockerfile.old - - labels: - quay.expires-after: 48h - - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes-operator-version-upgrade-post-start-hook - tag: $(inputs.params.version_id)-$(inputs.params.architecture) - - registry: $(inputs.params.registry)/mongodb-kubernetes-operator-version-upgrade-post-start-hook - tag: latest-$(inputs.params.architecture) - - - name: readiness-probe-template - task_type: dockerfile_template - tags: ["release"] - output: - - dockerfile: $(inputs.params.s3_bucket)/$(inputs.params.version)/ubi/Dockerfile diff --git a/inventory.yaml b/inventory.yaml deleted file mode 100644 index 23690c328..000000000 --- a/inventory.yaml +++ /dev/null @@ -1,100 +0,0 @@ -vars: - registry: - quay_registry: quay.io/mongodb/mongodb-kubernetes - s3_bucket: s3://enterprise-operator-dockerfiles/dockerfiles/mongodb-kubernetes - -images: -- name: mongodb-kubernetes - vars: - context: . - template_context: docker/mongodb-kubernetes-operator - platform: linux/$(inputs.params.architecture) - inputs: - - version - - log_automation_config_diff - - architecture - - stages: - - - name: mongodb-kubernetes-context - task_type: docker_build - dockerfile: docker/mongodb-kubernetes-operator/Dockerfile.builder - buildargs: - release_version: $(inputs.params.version) - log_automation_config_diff: $(inputs.params.log_automation_config_diff) - use_race: "false" - TARGETOS: linux - TARGETARCH: $(inputs.params.architecture) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes - tag: $(inputs.params.version)-context-$(inputs.params.architecture) - - - name: operator-race-context - task_type: docker_build - dockerfile: docker/mongodb-kubernetes-operator/Dockerfile.builder - buildargs: - release_version: $(inputs.params.version) - log_automation_config_diff: $(inputs.params.log_automation_config_diff) - use_race: "true" - TARGETOS: linux - TARGETARCH: $(inputs.params.architecture) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes - tag: $(inputs.params.version)-context-race-$(inputs.params.architecture) - - - name: operator-template-ubi - task_type: dockerfile_template - distro: ubi - inputs: - - version - - debug - output: - - dockerfile: $(functions.tempfile) - - - name: operator-ubi-build - task_type: docker_build - dockerfile: $(stages['operator-template-ubi'].outputs[0].dockerfile) - buildargs: - imagebase: $(inputs.params.registry)/mongodb-kubernetes:$(inputs.params.version)-context-$(inputs.params.architecture) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes - tag: $(inputs.params.version)-$(inputs.params.architecture) - - # we don't do multi-arch for race images; so we can just directly release it - - name: operator-ubi-race-build - task_type: docker_build - dockerfile: $(stages['operator-template-ubi'].outputs[0].dockerfile) - buildargs: - imagebase: $(inputs.params.registry)/mongodb-kubernetes:$(inputs.params.version)-context-race-$(inputs.params.architecture) - output: - - registry: $(inputs.params.registry)/mongodb-kubernetes - tag: $(inputs.params.version)-race - - - name: master-latest - task_type: tag_image - tags: [ "master" ] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes - tag: $(inputs.params.version)-$(inputs.params.architecture) - destination: - - registry: $(inputs.params.registry)/mongodb-kubernetes - tag: latest-$(inputs.params.architecture) - - - name: mongodb-kubernetes-release - task_type: tag_image - tags: ["release"] - source: - registry: $(inputs.params.registry)/mongodb-kubernetes - tag: $(inputs.params.version)-context-$(inputs.params.architecture) - destination: - - registry: $(inputs.params.quay_registry) - tag: $(inputs.params.version)-context-$(inputs.params.architecture) - - - name: operator-template-ubi - task_type: dockerfile_template - tags: ["release"] - distro: ubi - inputs: - - version - output: - - dockerfile: $(inputs.params.s3_bucket)/$(inputs.params.version)/ubi/Dockerfile diff --git a/scripts/dev/contexts/e2e_mdb_kind_ubi_cloudqa b/scripts/dev/contexts/e2e_mdb_kind_ubi_cloudqa index 03384c26c..b9041b3ca 100644 --- a/scripts/dev/contexts/e2e_mdb_kind_ubi_cloudqa +++ b/scripts/dev/contexts/e2e_mdb_kind_ubi_cloudqa @@ -10,7 +10,7 @@ source "${script_dir}/root-context" export ops_manager_version="cloud_qa" # This is required to be able to rebuild the om image and use that image which has been rebuild -export OPS_MANAGER_REGISTRY=268558157000.dkr.ecr.us-east-1.amazonaws.com/dev +export OPS_MANAGER_REGISTRY="${BASE_REPO_URL}" CUSTOM_OM_VERSION=$(grep -E "^\s*-\s*&ops_manager_70_latest\s+(\S+)\s+#" <"${script_dir}"/../../../.evergreen.yml | awk '{print $3}') export CUSTOM_OM_VERSION diff --git a/scripts/dev/contexts/e2e_static_mdb_kind_ubi_cloudqa b/scripts/dev/contexts/e2e_static_mdb_kind_ubi_cloudqa index 869396d1e..8a2f4e555 100644 --- a/scripts/dev/contexts/e2e_static_mdb_kind_ubi_cloudqa +++ b/scripts/dev/contexts/e2e_static_mdb_kind_ubi_cloudqa @@ -11,7 +11,7 @@ export ops_manager_version="cloud_qa" export MDB_DEFAULT_ARCHITECTURE=static # This is required to be able to rebuild the om image and use that image which has been rebuild -export OPS_MANAGER_REGISTRY=268558157000.dkr.ecr.us-east-1.amazonaws.com/dev +export OPS_MANAGER_REGISTRY="${BASE_REPO_URL}" CUSTOM_OM_VERSION=$(grep -E "^\s*-\s*&ops_manager_70_latest\s+(\S+)\s+#" <"${script_dir}"/../../../.evergreen.yml | awk '{print $3}') export CUSTOM_OM_VERSION diff --git a/scripts/dev/contexts/evg-private-context b/scripts/dev/contexts/evg-private-context index 8f25842e8..15f54f035 100644 --- a/scripts/dev/contexts/evg-private-context +++ b/scripts/dev/contexts/evg-private-context @@ -33,7 +33,18 @@ else fi export NAMESPACE -export BASE_REPO_URL="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev" +DEV_REPO_URL="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev" +STAGING_REPO_URL="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging" +COMMIT_SHA_SHORT=$(git rev-parse --short=8 HEAD) + +if [ "${is_patch:-false}" = "true" ]; then + echo "is_patch is set, setting BASE_REPO_URL=${DEV_REPO_URL}" + export BASE_REPO_URL="${DEV_REPO_URL}" +else + echo "is_patch is not set, setting BASE_REPO_URL=${STAGING_REPO_URL}, OVERRIDE_VERSION_ID=${COMMIT_SHA_SHORT}" + export BASE_REPO_URL="${STAGING_REPO_URL}" + export OVERRIDE_VERSION_ID="${COMMIT_SHA_SHORT}" +fi export REGISTRY="${BASE_REPO_URL}" export QUAY_REGISTRY=quay.io/mongodb @@ -107,8 +118,8 @@ export CODE_SNIPPETS_COMMIT_OUTPUT=${code_snippets_commit_output:-"false"} # MCO # shellcheck disable=SC2154 -export READINESS_PROBE_IMAGE="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-readinessprobe:${version_id}" -export VERSION_UPGRADE_HOOK_IMAGE="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-operator-version-upgrade-post-start-hook:${version_id}" +export READINESS_PROBE_IMAGE="${REGISTRY}/mongodb-kubernetes-readinessprobe:${version_id}" +export VERSION_UPGRADE_HOOK_IMAGE="${REGISTRY}/mongodb-kubernetes-operator-version-upgrade-post-start-hook:${version_id}" # TODO to be removed at public preview stage of community-search export COMMUNITY_PRIVATE_PREVIEW_PULLSECRET_DOCKERCONFIGJSON="${community_private_preview_pullsecret_dockerconfigjson}" diff --git a/scripts/dev/contexts/local-defaults-context b/scripts/dev/contexts/local-defaults-context index 36d652d55..5fe8b12bc 100644 --- a/scripts/dev/contexts/local-defaults-context +++ b/scripts/dev/contexts/local-defaults-context @@ -41,7 +41,7 @@ export MONGODB_ENTERPRISE_DATABASE_IMAGE="${INIT_IMAGES_REGISTRY}/mongodb-kubern export MDB_AGENT_IMAGE_OPERATOR_VERSION=latest export MDB_AGENT_IMAGE_REPOSITORY="${BASE_REPO_URL_SHARED}/mongodb-agent-ubi" export AGENT_BASE_REGISTRY=${BASE_REPO_URL_SHARED} -export AGENT_IMAGE="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi:12.0.30.7791-1" +export AGENT_IMAGE="${AGENT_BASE_REGISTRY}/mongodb-agent-ubi:12.0.30.7791-1" # these are needed to deploy OM export INIT_APPDB_IMAGE_REPOSITORY="${INIT_IMAGES_REGISTRY}/mongodb-kubernetes-init-appdb" diff --git a/scripts/dev/contexts/variables/om60 b/scripts/dev/contexts/variables/om60 index be1544ee4..f3e072805 100644 --- a/scripts/dev/contexts/variables/om60 +++ b/scripts/dev/contexts/variables/om60 @@ -13,10 +13,10 @@ export CUSTOM_OM_VERSION export CUSTOM_MDB_VERSION=6.0.21 export CUSTOM_MDB_PREV_VERSION=5.0.7 -export AGENT_VERSION=12.0.33.7866-1 +export AGENT_VERSION=12.0.34.7888-1 export AGENT_IMAGE="${MDB_AGENT_IMAGE_REPOSITORY}:${AGENT_VERSION}" export CUSTOM_APPDB_VERSION=6.0.21-ent export TEST_MODE=opsmanager -export OPS_MANAGER_REGISTRY=268558157000.dkr.ecr.us-east-1.amazonaws.com/dev -export APPDB_REGISTRY=268558157000.dkr.ecr.us-east-1.amazonaws.com/dev +export OPS_MANAGER_REGISTRY="${BASE_REPO_URL}" +export APPDB_REGISTRY="${BASE_REPO_URL}" diff --git a/scripts/dev/contexts/variables/om70 b/scripts/dev/contexts/variables/om70 index a18290e91..b8400574c 100644 --- a/scripts/dev/contexts/variables/om70 +++ b/scripts/dev/contexts/variables/om70 @@ -18,5 +18,5 @@ export AGENT_IMAGE="${MDB_AGENT_IMAGE_REPOSITORY}:${AGENT_VERSION}" export CUSTOM_APPDB_VERSION=7.0.18-ent export TEST_MODE=opsmanager -export OPS_MANAGER_REGISTRY=268558157000.dkr.ecr.us-east-1.amazonaws.com/dev -export APPDB_REGISTRY=268558157000.dkr.ecr.us-east-1.amazonaws.com/dev +export OPS_MANAGER_REGISTRY="${BASE_REPO_URL}" +export APPDB_REGISTRY="${BASE_REPO_URL}" diff --git a/scripts/dev/contexts/variables/om80 b/scripts/dev/contexts/variables/om80 index 200c9b690..4d84cb943 100644 --- a/scripts/dev/contexts/variables/om80 +++ b/scripts/dev/contexts/variables/om80 @@ -18,5 +18,5 @@ export AGENT_IMAGE="${MDB_AGENT_IMAGE_REPOSITORY}:${AGENT_VERSION}" export CUSTOM_APPDB_VERSION=8.0.6-ent export TEST_MODE=opsmanager -export OPS_MANAGER_REGISTRY=268558157000.dkr.ecr.us-east-1.amazonaws.com/dev -export APPDB_REGISTRY=268558157000.dkr.ecr.us-east-1.amazonaws.com/dev +export OPS_MANAGER_REGISTRY="${BASE_REPO_URL}" +export APPDB_REGISTRY="${BASE_REPO_URL}" diff --git a/scripts/release/atomic_pipeline.py b/scripts/release/atomic_pipeline.py index b24143dad..665a61264 100755 --- a/scripts/release/atomic_pipeline.py +++ b/scripts/release/atomic_pipeline.py @@ -2,6 +2,7 @@ """This atomic_pipeline script knows about the details of our Docker images and where to fetch and calculate parameters.""" +import datetime import json import os import shutil @@ -49,14 +50,15 @@ def build_image( span.set_attribute("mck.platforms", build_configuration.platforms) # Build docker registry URI and call build_image - image_full_uri = f"{build_configuration.registry}:{build_configuration.version}" - - logger.info( - f"Building {image_full_uri} for platforms={build_configuration.platforms}, dockerfile args: {build_args}" - ) + tags = [f"{build_configuration.registry}:{build_configuration.version}"] + if build_configuration.latest_tag: + tags.append(f"{build_configuration.registry}:{"latest"}") + if build_configuration.olm_tag: + olm_version_tag = create_olm_version_tag(build_configuration.version) + tags.append(f"{build_configuration.registry}:{olm_version_tag}") execute_docker_build( - tag=image_full_uri, + tags=tags, dockerfile=build_configuration.dockerfile_path, path=build_path, args=build_args, @@ -442,3 +444,8 @@ def get_tools_distro(tools_version: str) -> Dict[str, str]: def load_release_file() -> Dict: with open("release.json") as release: return json.load(release) + + +def create_olm_version_tag(version: str) -> str: + timestamp_suffix = "%Y%m%d%H%M%S".format(datetime.datetime.now()) + return f"{version}-olm-{timestamp_suffix}" diff --git a/scripts/release/build/build_info.py b/scripts/release/build/build_info.py index 1c6557473..3ed23729d 100644 --- a/scripts/release/build/build_info.py +++ b/scripts/release/build/build_info.py @@ -31,7 +31,9 @@ class ImageInfo: platforms: list[str] version: str dockerfile_path: str - sign: bool + sign: bool = False + latest_tag: bool = False + olm_tag: bool = False @dataclass @@ -39,14 +41,14 @@ class BinaryInfo: s3_store: str platforms: list[str] version: str - sign: bool + sign: bool = False @dataclass class HelmChartInfo: repository: str version: str - sign: bool + sign: bool = False @dataclass @@ -107,6 +109,8 @@ def load_build_info( version=image_version, dockerfile_path=data["dockerfile-path"], sign=scenario_data.get("sign", False), + latest_tag=scenario_data.get("latest-tag", False), + olm_tag=scenario_data.get("olm-tag", False), ) binaries = {} diff --git a/scripts/release/build/build_scenario.py b/scripts/release/build/build_scenario.py index aba2d5708..5faeec183 100644 --- a/scripts/release/build/build_scenario.py +++ b/scripts/release/build/build_scenario.py @@ -3,7 +3,8 @@ from git import Repo from lib.base_logger import logger -from scripts.release.constants import triggered_by_git_tag, is_evg_patch, is_running_in_evg, get_version_id +from scripts.release.constants import triggered_by_git_tag, is_evg_patch, is_running_in_evg, get_version_id, \ + get_github_commit from scripts.release.version import calculate_next_version COMMIT_SHA_LENGTH = 8 @@ -22,18 +23,18 @@ def infer_scenario_from_environment(cls) -> "BuildScenario": is_patch = is_evg_patch() is_evg = is_running_in_evg() patch_id = get_version_id() + commit_sha = get_github_commit() if git_tag: # Release scenario and the git tag will be used for promotion process only scenario = BuildScenario.RELEASE logger.info(f"Build scenario: {scenario} (git_tag: {git_tag})") - elif is_patch or is_evg: + elif is_patch and is_evg: scenario = BuildScenario.PATCH logger.info(f"Build scenario: {scenario} (patch_id: {patch_id})") - # TODO: Uncomment the following lines when starting to work on staging builds - # elif is_evg: - # scenario = BuildScenario.STAGING - # logger.info(f"Build scenario: {scenario} (patch_id: {patch_id})") + elif is_evg: + scenario = BuildScenario.STAGING + logger.info(f"Build scenario: {scenario} (commit_sha: {commit_sha[:COMMIT_SHA_LENGTH]})") else: scenario = BuildScenario.DEVELOPMENT logger.info(f"Build scenario: {scenario}") diff --git a/scripts/release/build/image_build_configuration.py b/scripts/release/build/image_build_configuration.py index 966b7d02e..0e7e9ec85 100644 --- a/scripts/release/build/image_build_configuration.py +++ b/scripts/release/build/image_build_configuration.py @@ -10,6 +10,8 @@ class ImageBuildConfiguration: scenario: BuildScenario version: str + latest_tag: bool + olm_tag: bool registry: str dockerfile_path: str diff --git a/scripts/release/build/image_build_process.py b/scripts/release/build/image_build_process.py index 93c3a53d1..3e787b5e1 100644 --- a/scripts/release/build/image_build_process.py +++ b/scripts/release/build/image_build_process.py @@ -73,7 +73,7 @@ def ensure_buildx_builder(builder_name: str = DEFAULT_BUILDER_NAME) -> str: def execute_docker_build( - tag: str, + tags: list[str], dockerfile: str, path: str, args: Dict[str, str], @@ -84,7 +84,7 @@ def execute_docker_build( """ Build a Docker image using python_on_whales and Docker Buildx for multi-architecture support. - :param tag: Image tag (name:tag) + :param tags: Image tags (name:tag) :param dockerfile: Name or relative path of the Dockerfile within `path` :param path: Build context path (directory with the Dockerfile) :param args: Build arguments dictionary @@ -102,7 +102,7 @@ def execute_docker_build( # Convert build args to the format expected by python_on_whales build_args = {k: str(v) for k, v in args.items()} - logger.info(f"Building image: {tag}") + logger.info(f"Building images: {tags}") logger.info(f"Platforms: {platforms}") logger.info(f"Dockerfile: {dockerfile}") logger.info(f"Build context: {path}") @@ -117,7 +117,7 @@ def execute_docker_build( context_path=path, file=dockerfile, # TODO: add tag for release builds (OLM immutable tag) - tags=[tag], + tags=tags, platforms=platforms, builder=builder_name, build_args=build_args, @@ -126,8 +126,8 @@ def execute_docker_build( pull=False, # Don't always pull base images ) - logger.info(f"Successfully built {'and pushed' if push else ''} {tag}") + logger.info(f"Successfully built {'and pushed' if push else ''} {tags}") except Exception as e: - logger.error(f"Failed to build image {tag}: {e}") - raise RuntimeError(f"Failed to build image {tag}: {str(e)}") + logger.error(f"Failed to build image {tags}: {e}") + raise RuntimeError(f"Failed to build image {tags}: {str(e)}") diff --git a/scripts/release/constants.py b/scripts/release/constants.py index 20ad747a5..dd0e462c2 100644 --- a/scripts/release/constants.py +++ b/scripts/release/constants.py @@ -51,3 +51,12 @@ def get_version_id() -> str | None: :return: version_id (patch ID) or None if not set """ return os.getenv("version_id") + + +def get_github_commit() -> str | None: + """ + ${github_commit} is the commit hash of the commit that triggered the patch run. + For non pull-request patches, it will be the same as ${revision}. + :return: github_commit or None if not set + """ + return os.getenv("github_commit") diff --git a/scripts/release/pipeline_main.py b/scripts/release/pipeline_main.py index c7e2c0c97..8eb956103 100644 --- a/scripts/release/pipeline_main.py +++ b/scripts/release/pipeline_main.py @@ -109,6 +109,8 @@ def image_build_config_from_args(args) -> ImageBuildConfiguration: # Resolve final values with overrides version = args.version or image_build_info.version + latest_tag = image_build_info.latest_tag + olm_tag = image_build_info.olm_tag registry = args.registry or image_build_info.repository platforms = get_platforms_from_arg(args.platform) or image_build_info.platforms sign = args.sign or image_build_info.sign @@ -117,6 +119,8 @@ def image_build_config_from_args(args) -> ImageBuildConfiguration: return ImageBuildConfiguration( scenario=build_scenario, version=version, + latest_tag=latest_tag, + olm_tag=olm_tag, registry=registry, dockerfile_path=dockerfile_path, parallel=args.parallel, diff --git a/scripts/release/tests/build_info_test.py b/scripts/release/tests/build_info_test.py index bef97173d..e0ccc29c7 100644 --- a/scripts/release/tests/build_info_test.py +++ b/scripts/release/tests/build_info_test.py @@ -22,13 +22,13 @@ def test_load_build_info_development(git_repo: Repo): platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile.atomic", - sign=False, ), "operator-race": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes", platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile.atomic", + latest_tag=False, sign=False, ), "init-database": ImageInfo( @@ -36,70 +36,60 @@ def test_load_build_info_development(git_repo: Repo): platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-init-database/Dockerfile.atomic", - sign=False, ), "init-appdb": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-init-appdb", platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-init-appdb/Dockerfile.atomic", - sign=False, ), "init-ops-manager": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-init-ops-manager", platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-init-ops-manager/Dockerfile.atomic", - sign=False, ), "database": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-database", platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-database/Dockerfile.atomic", - sign=False, ), "mco-tests": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-community-tests", platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-community-tests/Dockerfile", - sign=False, ), "meko-tests": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-tests", platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-tests/Dockerfile", - sign=False, ), "readiness-probe": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-readinessprobe", platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-readinessprobe/Dockerfile.atomic", - sign=False, ), "upgrade-hook": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-operator-version-upgrade-post-start-hook", platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-upgrade-hook/Dockerfile.atomic", - sign=False, ), "agent": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi", platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-agent/Dockerfile.atomic", - sign=False, ), "ops-manager": ImageInfo( - repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-enterprise-ops-manager", + repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-enterprise-ops-manager-ubi", platforms=["linux/amd64"], version="om-version-from-release.json", dockerfile_path="docker/mongodb-enterprise-ops-manager/Dockerfile.atomic", - sign=False, ), }, binaries={ @@ -107,14 +97,12 @@ def test_load_build_info_development(git_repo: Repo): s3_store="s3://kubectl-mongodb/dev", platforms=["linux/amd64"], version=version, - sign=False, ) }, helm_charts={ "mongodb-kubernetes": HelmChartInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/helm-charts", version=version, - sign=False, ) }, ) @@ -135,13 +123,13 @@ def test_load_build_info_patch(git_repo: Repo): platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile.atomic", - sign=False, ), "operator-race": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes", platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile.atomic", + latest_tag=False, sign=False, ), "init-database": ImageInfo( @@ -149,70 +137,60 @@ def test_load_build_info_patch(git_repo: Repo): platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-kubernetes-init-database/Dockerfile.atomic", - sign=False, ), "init-appdb": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-init-appdb", platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-kubernetes-init-appdb/Dockerfile.atomic", - sign=False, ), "init-ops-manager": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-init-ops-manager", platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-kubernetes-init-ops-manager/Dockerfile.atomic", - sign=False, ), "database": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-database", platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-kubernetes-database/Dockerfile.atomic", - sign=False, ), "mco-tests": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-community-tests", platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-community-tests/Dockerfile", - sign=False, ), "meko-tests": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-tests", platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-kubernetes-tests/Dockerfile", - sign=False, ), "readiness-probe": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-readinessprobe", platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-kubernetes-readinessprobe/Dockerfile.atomic", - sign=False, ), "upgrade-hook": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-operator-version-upgrade-post-start-hook", platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-kubernetes-upgrade-hook/Dockerfile.atomic", - sign=False, ), "agent": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi", platforms=["linux/amd64"], version=patch_id, dockerfile_path="docker/mongodb-agent/Dockerfile.atomic", - sign=False, ), "ops-manager": ImageInfo( - repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-enterprise-ops-manager", + repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-enterprise-ops-manager-ubi", platforms=["linux/amd64"], version="om-version-from-release.json", dockerfile_path="docker/mongodb-enterprise-ops-manager/Dockerfile.atomic", - sign=False, ), }, binaries={ @@ -220,14 +198,12 @@ def test_load_build_info_patch(git_repo: Repo): s3_store="s3://kubectl-mongodb/dev", platforms=["linux/amd64"], version=patch_id, - sign=False, ) }, helm_charts={ "mongodb-kubernetes": HelmChartInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/helm-charts", version=patch_id, - sign=False, ) }, ) @@ -246,44 +222,49 @@ def test_load_build_info_staging(git_repo: Repo): images={ "operator": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile.atomic", + latest_tag=False, sign=True, ), "operator-race": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile.atomic", sign=True, ), "init-database": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-init-database", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-kubernetes-init-database/Dockerfile.atomic", + latest_tag=True, sign=True, ), "init-appdb": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-init-appdb", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-kubernetes-init-appdb/Dockerfile.atomic", + latest_tag=True, sign=True, ), "init-ops-manager": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-init-ops-manager", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-kubernetes-init-ops-manager/Dockerfile.atomic", + latest_tag=True, sign=True, ), "database": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-database", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-kubernetes-database/Dockerfile.atomic", + latest_tag=True, sign=True, ), "mco-tests": ImageInfo( @@ -291,38 +272,38 @@ def test_load_build_info_staging(git_repo: Repo): platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-community-tests/Dockerfile", - sign=False, ), "meko-tests": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-tests", platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-kubernetes-tests/Dockerfile", - sign=False, ), "readiness-probe": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-readinessprobe", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-kubernetes-readinessprobe/Dockerfile.atomic", + latest_tag=True, sign=True, ), "upgrade-hook": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-operator-version-upgrade-post-start-hook", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-kubernetes-upgrade-hook/Dockerfile.atomic", + latest_tag=True, sign=True, ), "agent": ImageInfo( repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-agent-ubi", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=expected_commit_sha, dockerfile_path="docker/mongodb-agent/Dockerfile.atomic", sign=True, ), "ops-manager": ImageInfo( - repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-enterprise-ops-manager", + repository="268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-enterprise-ops-manager-ubi", platforms=["linux/amd64"], version="om-version-from-release.json", dockerfile_path="docker/mongodb-enterprise-ops-manager/Dockerfile.atomic", @@ -361,65 +342,74 @@ def test_load_build_info_release( images={ "operator": ImageInfo( repository="quay.io/mongodb/mongodb-kubernetes", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile.atomic", + olm_tag=True, sign=True, ), "init-database": ImageInfo( repository="quay.io/mongodb/mongodb-kubernetes-init-database", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-init-database/Dockerfile.atomic", + olm_tag=True, sign=True, ), "init-appdb": ImageInfo( repository="quay.io/mongodb/mongodb-kubernetes-init-appdb", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-init-appdb/Dockerfile.atomic", + olm_tag=True, sign=True, ), "init-ops-manager": ImageInfo( repository="quay.io/mongodb/mongodb-kubernetes-init-ops-manager", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-init-ops-manager/Dockerfile.atomic", + olm_tag=True, sign=True, ), "database": ImageInfo( repository="quay.io/mongodb/mongodb-kubernetes-database", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-kubernetes-database/Dockerfile.atomic", + olm_tag=True, sign=True, ), "readiness-probe": ImageInfo( repository="quay.io/mongodb/mongodb-kubernetes-readinessprobe", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=readinessprobe_version, dockerfile_path="docker/mongodb-kubernetes-readinessprobe/Dockerfile.atomic", + olm_tag=True, sign=True, ), "upgrade-hook": ImageInfo( repository="quay.io/mongodb/mongodb-kubernetes-operator-version-upgrade-post-start-hook", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=operator_version_upgrade_post_start_hook_version, dockerfile_path="docker/mongodb-kubernetes-upgrade-hook/Dockerfile.atomic", + olm_tag=True, sign=True, ), "agent": ImageInfo( repository="quay.io/mongodb/mongodb-agent-ubi", - platforms=["linux/arm64", "linux/amd64"], + platforms=["linux/amd64"], version=version, dockerfile_path="docker/mongodb-agent/Dockerfile.atomic", + olm_tag=True, sign=True, ), "ops-manager": ImageInfo( - repository="quay.io/mongodb/mongodb-enterprise-ops-manager", + repository="quay.io/mongodb/mongodb-enterprise-ops-manager-ubi", platforms=["linux/amd64"], version="om-version-from-release.json", dockerfile_path="docker/mongodb-enterprise-ops-manager/Dockerfile.atomic", + olm_tag=True, sign=True, ), }, diff --git a/scripts/release/tests/release_info_test.py b/scripts/release/tests/release_info_test.py index 213f5d8e6..4b62da1d3 100644 --- a/scripts/release/tests/release_info_test.py +++ b/scripts/release/tests/release_info_test.py @@ -15,37 +15,37 @@ def test_create_release_info_json( "images": { "operator": { "repository": "quay.io/mongodb/mongodb-kubernetes", - "platforms": ["linux/arm64", "linux/amd64"], + "platforms": ["linux/amd64"], "version": "1.2.0", }, "init-database": { "repository": "quay.io/mongodb/mongodb-kubernetes-init-database", - "platforms": ["linux/arm64", "linux/amd64"], + "platforms": ["linux/amd64"], "version": "1.2.0", }, "init-appdb": { "repository": "quay.io/mongodb/mongodb-kubernetes-init-appdb", - "platforms": ["linux/arm64", "linux/amd64"], + "platforms": ["linux/amd64"], "version": "1.2.0", }, "init-ops-manager": { "repository": "quay.io/mongodb/mongodb-kubernetes-init-ops-manager", - "platforms": ["linux/arm64", "linux/amd64"], + "platforms": ["linux/amd64"], "version": "1.2.0", }, "database": { "repository": "quay.io/mongodb/mongodb-kubernetes-database", - "platforms": ["linux/arm64", "linux/amd64"], + "platforms": ["linux/amd64"], "version": "1.2.0", }, "readiness-probe": { "repository": "quay.io/mongodb/mongodb-kubernetes-readinessprobe", - "platforms": ["linux/arm64", "linux/amd64"], + "platforms": ["linux/amd64"], "version": readinessprobe_version, }, "upgrade-hook": { "repository": "quay.io/mongodb/mongodb-kubernetes-operator-version-upgrade-post-start-hook", - "platforms": ["linux/arm64", "linux/amd64"], + "platforms": ["linux/amd64"], "version": operator_version_upgrade_post_start_hook_version, }, },