Dockerfile.centos6.base #11

  • //
  • guest/
  • perforce_software/
  • sdp/
  • dev/
  • test/
  • docker/
  • Dockerfile.centos6.base
  • Commits
# Change User Description Committed
#11 30356 C. Thomas Tyler Added Rocky 9 and Ubuntu 22 to test suite.

Dropped CentOS 6.

Changed default OS for tests from CentOS 7 to Rocky 9.

Adapted to using podman for the test suite.

Reduced minimum disk space requirement for testing
from 1G to 10M.

To be revisited:
* Disabled OOM killer defenese feature and systemd due to
compatibility issues with the test environment.
* Disabled systemd by moving systemctl aside

Enhanced build_docker_image.sh; added '-clean' option and added
support for more platforms.

Updated OS-specific packages as needed for all platforms, e.g.
adding 'file' and 'rsync' utils as needed in Docker definitions.

Added minimum performance recommendations for test containers in
config.

Updated env.sh utilities.

This change test on:
[X] centos7
[X] rocky8
[X] rocky9
[X] ubuntu20
[X] ubuntu22

#review-30357 @robert_cowham

TO DO:
* This builds using the official SDP test suite run manually on
Tom's laptop. Next step: Get it working on our shiny new Jenkins
Rocky 9 server machine.
#10 28136 C. Thomas Tyler Applied fix to CentOS 6 builds (unsupported).
#9 26982 C. Thomas Tyler mkdirs.sh v4.1.0:
* Accounted for directory structure change of Maintenance to Unsupported.
* Added standard command line processing with '-h' and '-man' doc flags,
and other flags (all documented).
* Added in-code docs and updated AsciiDoc.
* Enhanced '-test' mode to simulate /hx* mounts.
* Enhanced preflight testing, and fixed '-test' mode installs.
* Added support for installing to an alternate root directory.
* Added '-s <ServerID>' option to override REPLICA_ID.
* Added '-S <TargetServerID>' used for replicas of edge servers.
* Added '-t <server_type>' option to override SERVER_TYPE.
* Added '-M' option to override mount points.
* Added '-f' fast option to skip big chown/chmod commands, and
moved those commands near the end as well.

verify_sdp.sh v5.9.0:
* Added check for /p4/Version file, and checked that other legacy
SDP methods of checking version
* Added sanity check for crontab.
* Added 'test skip' mechanism to skip certain tests:
 - crontab: Skip crontab check. Use this if you do not expect crontab to be configured, perhaps if a different scheduler is used.
 - license: Skip license related checks.
 - version: Skip version checks.
 - excess: Skip checks for excess copies of p4d/p4p/p4broker in PATH.
* Added VERIFY_SDP_SKIP_TEST_LIST setting ton instance_vars.template,
to define a standard way to have verify_sdp.sh always skip certain
tests for a site.
* Extended '-online' checks to check for bogus P4MASTERPORT, a common
config error.

Update test_SDP.py:
* Adjusted test suite to account for various changes in mkdirs.sh.
* Added 'dir' parameter to run_cmd() and sudo_cmd(), to run a
command from a specified directory (as required to test new
mkdirs.sh)
* Added check_links() similar to existing check_dirs() function.

=== Upgrade Process Changes ===

Made /p4/common/bin/p4d/p4/p4broker/p4p shell script rather than binary.

This changes the way SDP new binaries are staged for upgrade.  For
safety, exes are now staged to a director outside the PATH, the
/p4/sdp/exes folder. A new 'get_latest_exes.sh' script simplifies
the task of pulling executables from the Perforce FTP server. This
can be used 'as is' for environments with outbound internet access,
and is useful in any case to describe now to acquire binaries.

This addresses an issue where a p4d binary staged for a future
upgrade might be called before the actual upgrade is performed.

upgrade.sh v4.0.0:
* All preflight checks are now done first. Added '-p' to abort after preflight.
* Added '-n' to show what would be done before anything is executed.
* Minimalist logic to start/stop only servers that are upgrade, and apply
upgrades only as needed.
* Staging of exes for upgrade is now separate from /p4/common/bin
* Improved in-code docs, added '-h' and '-man' options.
* Retained pre/post P4D 2019.1 upgrade logic.
#8 26684 Robert Cowham Fix IU repo urls for CentOS 6
#7 26328 C. Thomas Tyler Test suite fix: Fixed issue with Python symlink creation
inconsistencies on Linux distros. On some symlink failed
due to existing symlinks, while on others the creation
was needed. Fixed by changing 'ln -s' to 'ln -f -s'.

Tests run thru a 'clean start' after this change.
#6 25560 Robert Cowham Multi container tests basically installing.
#5 25149 Robert Cowham Changes to docker files as part of prep for multi-container work
Centos6 & 7 now install python 3.6 from ISU Community as pre-built
Refer to p4python==17.2 to avoid need to compile
Changes to test infrastructure only
#4 24580 Robert Cowham Update Docker - fix issues with install of p4python on CentOS.
#3 22385 Robert Cowham Fix install of p4python
#2 20723 Robert Cowham P4Python 16.1 now requires SSL - so include in the base packages.
Note that the versions installed are probably not latest (still security holes) so fine for testing but not production!
#1 19045 Robert Cowham Add docker file for Centos7
Refactor to move common stuff to a shell script.
//guest/perforce_software/sdp/dev/test/docker/Dockerfile.centos.base
#2 19040 Robert Cowham Tweaks to Docker files.
Ubuntu uses packages for Python 3.4.
Centos doesn't yet.
#1 19021 Robert Cowham Centos tests working too