summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authort.ward <22226719+tward333@users.noreply.github.com>2022-09-22 20:50:45 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-09-22 21:28:43 +0000
commit17e33729b052e5bc23f3fb3e3afcd66b55c6157a (patch)
tree646d95e021be95b5ced6f4821504429705c3a7ee
parenteac5afb151fc64740763316c128a46c8c664d37e (diff)
downloadmongo-17e33729b052e5bc23f3fb3e3afcd66b55c6157a.tar.gz
SERVER-62302 Add support for RHEL9 x86
-rw-r--r--buildscripts/package_test/kitchen.yml6
-rw-r--r--buildscripts/package_test/recipes/install_mongodb.rb8
-rw-r--r--buildscripts/package_test/rhel-user-data.sh6
-rwxr-xr-xbuildscripts/packager.py12
-rwxr-xr-xbuildscripts/packager_enterprise.py4
-rw-r--r--etc/evergreen_yml_components/definitions.yml38
-rw-r--r--etc/evergreen_yml_components/variants/misc_release.yml129
-rw-r--r--etc/generate_subtasks_config.yml2
-rw-r--r--etc/repo_config.yaml16
9 files changed, 218 insertions, 3 deletions
diff --git a/buildscripts/package_test/kitchen.yml b/buildscripts/package_test/kitchen.yml
index dd8ea3c0252..b63867ca6db 100644
--- a/buildscripts/package_test/kitchen.yml
+++ b/buildscripts/package_test/kitchen.yml
@@ -79,6 +79,12 @@ platforms:
instance_type: m6g.medium
transport:
username: ec2-user
+ - name: rhel90-x86-64
+ driver:
+ image_id: ami-0c41531b8d18cc72b
+ user_data: rhel-user-data.sh
+ transport:
+ username: ec2-user
- name: suse11-x86-64
driver:
image_id: ami-7f2e6015
diff --git a/buildscripts/package_test/recipes/install_mongodb.rb b/buildscripts/package_test/recipes/install_mongodb.rb
index 5756e77f7b0..e7ec6a7067f 100644
--- a/buildscripts/package_test/recipes/install_mongodb.rb
+++ b/buildscripts/package_test/recipes/install_mongodb.rb
@@ -100,6 +100,14 @@ if platform_family? 'rhel' or platform_family? 'amazon'
sleep 120
EOH
end
+ #rhel9 doesn't have Gconf2 without epel
+ if node['platform'] == 'redhat' and node['platform_version'] == '9.0'
+ execute 'install epel' do
+ command 'dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y'
+ live_stream true
+ cwd homedir
+ end
+ end
execute 'install mongod' do
command 'yum install -y `find . -name "*server*.rpm"`'
live_stream true
diff --git a/buildscripts/package_test/rhel-user-data.sh b/buildscripts/package_test/rhel-user-data.sh
new file mode 100644
index 00000000000..fe927b9b272
--- /dev/null
+++ b/buildscripts/package_test/rhel-user-data.sh
@@ -0,0 +1,6 @@
+#! /bin/bash
+sed -i '/^PubkeyAcceptedAlgorithms/s/$/,ssh-rsa/' /etc/crypto-policies/back-ends/opensshserver.config
+sed -i '/^HostKeyAlgorithms/s/$/,ssh-rsa/' /etc/crypto-policies/back-ends/opensshserver.config
+update-crypto-policies --set LEGACY
+systemctl restart sshd
+
diff --git a/buildscripts/packager.py b/buildscripts/packager.py
index ef281a0b907..2f0c0cf10e3 100755
--- a/buildscripts/packager.py
+++ b/buildscripts/packager.py
@@ -340,7 +340,17 @@ class Distro(object):
if re.search("(suse)", self.dname):
return ["suse11", "suse12", "suse15"]
elif re.search("(redhat|fedora|centos)", self.dname):
- return ["rhel82", "rhel80", "rhel70", "rhel71", "rhel72", "rhel62", "rhel55", "rhel67"]
+ return [
+ "rhel90",
+ "rhel82",
+ "rhel80",
+ "rhel70",
+ "rhel71",
+ "rhel72",
+ "rhel62",
+ "rhel55",
+ "rhel67",
+ ]
elif self.dname in ['amazon', 'amazon2']:
return [self.dname]
elif self.dname == 'ubuntu':
diff --git a/buildscripts/packager_enterprise.py b/buildscripts/packager_enterprise.py
index 14751b81452..a03f3ab9524 100755
--- a/buildscripts/packager_enterprise.py
+++ b/buildscripts/packager_enterprise.py
@@ -119,7 +119,7 @@ class EnterpriseDistro(packager.Distro):
def build_os(self, arch):
"""Return the build os label in the binary package to download.
- The labels "rhel57", "rhel62", "rhel67", "rhel70", "rhel80" are for redhat,
+ The labels "rhel57", "rhel62", "rhel67", "rhel70", "rhel80", "rhel90" are for redhat,
the others are delegated to the super class.
"""
if arch == "ppc64le":
@@ -147,7 +147,7 @@ class EnterpriseDistro(packager.Distro):
return []
if re.search("(redhat|fedora|centos)", self.dname):
- return ["rhel80", "rhel70", "rhel62", "rhel57"]
+ return ["rhel90", "rhel80", "rhel70", "rhel62", "rhel57"]
return super(EnterpriseDistro, self).build_os(arch)
diff --git a/etc/evergreen_yml_components/definitions.yml b/etc/evergreen_yml_components/definitions.yml
index 7d61b70bac7..099d0b58210 100644
--- a/etc/evergreen_yml_components/definitions.yml
+++ b/etc/evergreen_yml_components/definitions.yml
@@ -305,6 +305,7 @@ variables:
- enterprise-rhel-80-64-bit-suggested
- enterprise-rhel-82-arm64
- enterprise-rhel-83-s390x
+ - enterprise-rhel-90-64-bit
- enterprise-suse12-64
- enterprise-suse15-64
- enterprise-ubuntu1804-64
@@ -332,6 +333,7 @@ variables:
- enterprise-rhel-80-64-bit-dynamic-required
- enterprise-rhel-70-64-bit
- enterprise-rhel-82-arm64
+ - enterprise-rhel-90-64-bit
- enterprise-amazon2-arm64
- enterprise-ubuntu1804-64
- enterprise-ubuntu2004-64
@@ -358,10 +360,12 @@ variables:
- ubi8
- rhel80
- rhel-82-arm64
+ - rhel90
- enterprise-rhel-80-64-bit
- enterprise-rhel-80-64-bit-suggested # For testing selinux.
- enterprise-rhel-82-arm64
- enterprise-rhel-83-s390x
+ - enterprise-rhel-90-64-bit
- suse12
- enterprise-suse12-64
- suse15
@@ -6603,8 +6607,42 @@ tasks:
- func: "run selinux tests"
vars:
distro: rhel80-selinux
+- name: selinux_rhel9_org
+ tags: []
+ depends_on:
+ - name: archive_dist_test
+ - name: package
+ commands:
+ - command: manifest.load
+ - func: "git get project and add git tag"
+ - *f_expansions_write
+ - func: "set up venv"
+ - func: "fetch packages"
+ - func: "fetch binaries"
+ - func: "extract binaries"
+ - func: "run selinux tests"
+ vars:
+ distro: rhel90-selinux
+ test_list: jstests/selinux/*.js
+- name: selinux_rhel9_enterprise
+ tags: []
+ depends_on:
+ - name: archive_dist_test
+ - name: package
+ commands:
+ - command: manifest.load
+ - func: "git get project and add git tag"
+ - *f_expansions_write
+ - func: "set up venv"
+ - func: "fetch packages"
+ - func: "fetch binaries"
+ - func: "extract binaries"
+ - func: "run selinux tests"
+ vars:
+ distro: rhel90-selinux
test_list: jstests/selinux/*.js src/mongo/db/modules/enterprise/jstests/selinux/*.js
+
- name: selinux_rhel7_org
tags: []
depends_on:
diff --git a/etc/evergreen_yml_components/variants/misc_release.yml b/etc/evergreen_yml_components/variants/misc_release.yml
index 1ae0996d15a..8504430b1ad 100644
--- a/etc/evergreen_yml_components/variants/misc_release.yml
+++ b/etc/evergreen_yml_components/variants/misc_release.yml
@@ -1078,6 +1078,135 @@ buildvariants:
- rhel80-small
- name: generate_buildid_to_debug_symbols_mapping
+- name: rhel90
+ display_name: RHEL 9.0
+ cron: "0 4 * * *" # From the ${project_nightly_cron} parameter.
+ run_on:
+ - rhel90-build
+ expansions:
+ push_path: linux
+ push_bucket: downloads.mongodb.org
+ push_name: linux
+ push_arch: x86_64-rhel90
+ compile_flags: --ssl MONGO_DISTMOD=rhel90 -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_v3_gcc.vars
+ multiversion_platform: rhel90
+ multiversion_edition: targeted
+ has_packages: true
+ packager_script: packager.py
+ packager_arch: x86_64
+ packager_distro: rhel90
+ repo_edition: org
+ scons_cache_scope: shared
+ large_distro_name: rhel90-build
+ tasks:
+ - name: compile_test_and_package_serial_no_unittests_TG
+ distros:
+ - rhel90-build
+ - name: aggregation !.feature_flag_guarded
+ - name: .auth !.audit !.multiversion
+ - name: causally_consistent_jscore_txns_passthrough
+ - name: .misc_js
+ - name: .concurrency .common
+ distros:
+ - rhel90-build
+ - name: concurrency_replication_causal_consistency_gen
+ - name: disk_wiredtiger
+ - name: free_monitoring
+ - name: .jscore .common
+ - name: .jstestfuzz .common !.multiversion
+ - name: .logical_session_cache .one_sec
+ - name: replica_sets_gen
+ - name: .replica_sets .common
+ - name: .sharding .txns
+ - name: .sharding .common !.csrs !.multiversion
+ - name: .ssl
+ - name: .stitch
+ - name: test_packages
+ distros:
+ - ubuntu2004-package
+ - name: selinux_rhel9_org
+ - name: .publish
+ distros:
+ - rhel90-small
+ - name: generate_buildid_to_debug_symbols_mapping
+
+- name: enterprise-rhel-90-64-bit
+ display_name: "Enterprise RHEL 9.0"
+ cron: "0 4 * * *" # From the ${project_nightly_cron} parameter.
+ modules:
+ - enterprise
+ run_on:
+ - rhel90-small
+ expansions: &enterprise-rhel-90-64-bit-expansions
+ additional_package_targets: archive-mongocryptd archive-mongocryptd-debug archive-mh archive-mh-debug
+ push_path: linux
+ push_bucket: downloads.10gen.com
+ push_name: linux
+ push_arch: x86_64-enterprise-rhel90
+ compile_flags: --ssl MONGO_DISTMOD=rhel90 -j$(grep -c ^processor /proc/cpuinfo) --variables-files=etc/scons/mongodbtoolchain_v3_gcc.vars
+ crypt_task_compile_flags: SHLINKFLAGS_EXTRA="-Wl,-Bsymbolic -Wl,--no-gnu-unique" CCFLAGS="-fno-gnu-unique"
+ multiversion_platform: rhel90
+ multiversion_edition: enterprise
+ has_packages: true
+ packager_script: packager_enterprise.py
+ packager_arch: x86_64
+ packager_distro: rhel90
+ repo_edition: enterprise
+ scons_cache_scope: shared
+ tasks:
+ - name: compile_test_and_package_serial_no_unittests_TG
+ distros:
+ - rhel90-large
+ - name: compile_build_tools_next_TG
+ distros:
+ - rhel90-large
+ - name: .aggfuzzer !.feature_flag_guarded !.multiversion
+ - name: audit
+ - name: auth_audit_gen
+ - name: auth_gen
+ - name: causally_consistent_jscore_txns_passthrough
+ - name: config_fuzzer_concurrency
+ - name: config_fuzzer_simulate_crash_concurrency_replication
+ distros:
+ - rhel90-large
+ - name: config_fuzzer_concurrency_replication
+ distros:
+ - rhel90-large
+ - name: config_fuzzer_jsCore
+ - name: config_fuzzer_replica_sets_jscore_passthrough
+ distros:
+ - rhel90-large
+ - name: .encrypt !.sharding !.replica_sets !.aggregation !.jscore
+ - name: external_auth
+ - name: external_auth_aws
+ - name: .jscore .common !.decimal !.sharding
+ - name: jsCore_txns_large_txns_format
+ - name: .jstestfuzz .common
+ - name: libunwind_tests
+ - name: .logical_session_cache .one_sec
+ - name: .ocsp
+ - name: replica_sets_auth_gen
+ - name: replica_sets_jscore_passthrough
+ - name: .replica_sets .multi_oplog
+ - name: sasl
+ - name: search
+ - name: search_auth
+ - name: search_ssl
+ - name: sharding_auth_audit_gen
+ - name: sharding_auth_gen
+ - name: .stitch
+ - name: .crypt
+ - name: .publish_crypt
+ - name: unittest_shell_hang_analyzer_gen
+ - name: test_packages
+ distros:
+ - ubuntu2004-package
+ - name: selinux_rhel9_enterprise
+ - name: .publish
+ distros:
+ - rhel90-small
+ - name: generate_buildid_to_debug_symbols_mapping
+
- name: suse12
display_name: SUSE 12
cron: "0 4 * * *" # From the ${project_nightly_cron} parameter.
diff --git a/etc/generate_subtasks_config.yml b/etc/generate_subtasks_config.yml
index 11d08c85b02..11ef7410d60 100644
--- a/etc/generate_subtasks_config.yml
+++ b/etc/generate_subtasks_config.yml
@@ -24,6 +24,7 @@ build_variant_large_distro_exceptions:
- enterprise-rhel-81-ppc64le
- enterprise-rhel-82-arm64
- enterprise-rhel-83-s390x
+ - enterprise-rhel-90-64-bit
- enterprise-suse12-64
- enterprise-suse12-s390x
- enterprise-suse15-64
@@ -38,6 +39,7 @@ build_variant_large_distro_exceptions:
- rhel70
- rhel80
- rhel-82-arm64
+ - rhel90
- suse12
- suse15
- ubi8
diff --git a/etc/repo_config.yaml b/etc/repo_config.yaml
index d5bfee8811c..5414c81ae0c 100644
--- a/etc/repo_config.yaml
+++ b/etc/repo_config.yaml
@@ -105,6 +105,14 @@ repos:
repos:
- yum/redhat/8/mongodb-org
- yum/redhat/8Server/mongodb-org
+ - name: rhel90
+ type: rpm
+ edition: org
+ bucket: repo.mongodb.org
+ repos:
+ - yum/redhat/9/mongodb-org
+ - yum/redhat/9Server/mongodb-org
+
- name: amazon
type: rpm
@@ -339,6 +347,14 @@ repos:
- yum/redhat/8/mongodb-enterprise
- yum/redhat/8Server/mongodb-enterprise
+ - name: rhel90
+ type: rpm
+ edition: enterprise
+ bucket: repo.mongodb.com
+ repos:
+ - yum/redhat/9/mongodb-enterprise
+ - yum/redhat/9Server/mongodb-enterprise
+
- name: amazon
type: rpm
edition: enterprise