diff options
author | t.ward <22226719+tward333@users.noreply.github.com> | 2022-11-02 16:05:32 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-11-02 16:40:44 +0000 |
commit | a5fa8e8e7a811f1d12d8b94ba09d006394b0e7c4 (patch) | |
tree | 74a00c62fb6145e200245584312dfbfa2803d062 | |
parent | b2a4d5da76572a1f820bfd5cd189061cd375d41c (diff) | |
download | mongo-a5fa8e8e7a811f1d12d8b94ba09d006394b0e7c4.tar.gz |
SERVER-62302 BACKPORT-13745 Platform Support: Add support for RHEL9 x86
-rw-r--r-- | buildscripts/package_test/kitchen.yml | 6 | ||||
-rw-r--r-- | buildscripts/package_test/recipes/install_mongodb.rb | 8 | ||||
-rw-r--r-- | buildscripts/package_test/rhel-user-data.sh | 6 | ||||
-rwxr-xr-x | buildscripts/packager.py | 12 | ||||
-rwxr-xr-x | buildscripts/packager_enterprise.py | 4 | ||||
-rw-r--r-- | etc/evergreen_yml_components/definitions.yml | 38 | ||||
-rw-r--r-- | etc/evergreen_yml_components/variants/misc_release.yml | 131 | ||||
-rw-r--r-- | etc/generate_subtasks_config.yml | 2 | ||||
-rw-r--r-- | etc/repo_config.yaml | 16 |
9 files changed, 220 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 380498be593..cf464bdfbfc 100755 --- a/buildscripts/packager.py +++ b/buildscripts/packager.py @@ -343,7 +343,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 fcc260c86be..8539b3a882a 100755 --- a/buildscripts/packager_enterprise.py +++ b/buildscripts/packager_enterprise.py @@ -119,7 +119,7 @@ class EnterpriseDistro(packager.Distro): def build_os(self, arch): # pylint: disable=too-many-branches """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. """ # pylint: disable=too-many-return-statements @@ -148,7 +148,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) # pylint: enable=too-many-return-statements diff --git a/etc/evergreen_yml_components/definitions.yml b/etc/evergreen_yml_components/definitions.yml index c7f789ee850..14aaf1554f4 100644 --- a/etc/evergreen_yml_components/definitions.yml +++ b/etc/evergreen_yml_components/definitions.yml @@ -299,6 +299,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 @@ -326,6 +327,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-ubuntu2204-64 @@ -351,10 +353,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 @@ -6396,8 +6400,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 2448bacf11c..cd381213cc6 100644 --- a/etc/evergreen_yml_components/variants/misc_release.yml +++ b/etc/evergreen_yml_components/variants/misc_release.yml @@ -985,6 +985,137 @@ 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-large + 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-large + tasks: + - name: compile_test_and_package_serial_TG + distros: + - rhel90-large + - name: aggregation + - name: .auth !.audit !.multiversion + - name: causally_consistent_jscore_txns_passthrough + - name: .misc_js + - name: .concurrency .common + distros: + - rhel90-large + - 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: + - rhel80-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_TG + distros: + - rhel90-large + - name: compile_build_tools_next_TG + distros: + - rhel90-large + - name: .aggfuzzer !.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: snmp + - 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: + - rhel80-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 2a2255148b8..3f9d256853d 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 @@ -39,6 +40,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 |