From 9a788851ffbd20784f7242b4964d108346a0b100 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Thu, 11 Jul 2024 13:50:50 -0600 Subject: [PATCH] Final cleanup of debugging, and add support for Arm64 for MacOS --- .github/workflows/ci.yml | 10 -- .github/workflows/templates/ci-tail.yml | 2 - .github/workflows/templates/ci.yml | 8 - CHANGELOG.md | 7 +- bootstrap-salt.sh | 192 +----------------------- kitchen.macos.yml | 3 - kitchen.windows.yml | 3 - 7 files changed, 6 insertions(+), 219 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1c796fe..9c4e9cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,14 +17,12 @@ jobs: run-tests: ${{ steps.set-output.outputs.run-tests }} steps: - uses: actions/checkout@v4 - ## DGM - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Get specific changed files id: changed-files uses: tj-actions/changed-files@v42 - ## DGM uses: tj-actions/changed-files@v25 with: separator: "," files: | @@ -49,7 +47,6 @@ jobs: - name: Upload Exit Status if: always() - ## DGM uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3 with: name: exitstatus @@ -63,7 +60,6 @@ jobs: if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' steps: - uses: actions/checkout@v4 - ## DGM - uses: actions/checkout@v3 - name: Set up Python 3.10 uses: actions/setup-python@v4 @@ -88,7 +84,6 @@ jobs: - name: Upload Exit Status if: always() - ## DGM uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3 with: name: exitstatus @@ -98,12 +93,10 @@ jobs: name: Lint runs-on: ubuntu-latest needs: collect-changed-files - ## DGM container: koalaman/shellcheck-alpine:v0.7.0 container: koalaman/shellcheck-alpine:latest if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' steps: - uses: actions/checkout@v4 - ## DGM - uses: actions/checkout@v3 - name: ShellCheck run: | shellcheck -s sh -f tty bootstrap-salt.sh @@ -116,7 +109,6 @@ jobs: - name: Upload Exit Status if: always() - ## DGM uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3 with: name: exitstatus @@ -533,7 +525,6 @@ jobs: - name: Download Exit Status Files if: always() - ## DGM uses: actions/download-artifact@v4 uses: actions/download-artifact@v3 with: name: exitstatus @@ -541,7 +532,6 @@ jobs: - name: Delete Exit Status Artifacts if: always() - ## DGM uses: geekyeggo/delete-artifact@v3 uses: geekyeggo/delete-artifact@v4 with: name: exitstatus diff --git a/.github/workflows/templates/ci-tail.yml b/.github/workflows/templates/ci-tail.yml index e245f99..e811d7f 100644 --- a/.github/workflows/templates/ci-tail.yml +++ b/.github/workflows/templates/ci-tail.yml @@ -11,7 +11,6 @@ - name: Download Exit Status Files if: always() - ## DGM uses: actions/download-artifact@v4 uses: actions/download-artifact@v3 with: name: exitstatus @@ -19,7 +18,6 @@ - name: Delete Exit Status Artifacts if: always() - ## DGM uses: geekyeggo/delete-artifact@v3 uses: geekyeggo/delete-artifact@v4 with: name: exitstatus diff --git a/.github/workflows/templates/ci.yml b/.github/workflows/templates/ci.yml index f45c9e3..0f292d3 100644 --- a/.github/workflows/templates/ci.yml +++ b/.github/workflows/templates/ci.yml @@ -17,14 +17,12 @@ jobs: run-tests: ${{ steps.set-output.outputs.run-tests }} steps: - uses: actions/checkout@v4 - ## DGM - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Get specific changed files id: changed-files uses: tj-actions/changed-files@v42 - ## DGM uses: tj-actions/changed-files@v25 with: separator: "," files: | @@ -49,7 +47,6 @@ jobs: - name: Upload Exit Status if: always() - ## DGM uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3 with: name: exitstatus @@ -63,7 +60,6 @@ jobs: if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' steps: - uses: actions/checkout@v4 - ## DGM - uses: actions/checkout@v3 - name: Set up Python 3.10 uses: actions/setup-python@v4 @@ -88,7 +84,6 @@ jobs: - name: Upload Exit Status if: always() - ## DGM uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3 with: name: exitstatus @@ -98,12 +93,10 @@ jobs: name: Lint runs-on: ubuntu-latest needs: collect-changed-files - ## DGM container: koalaman/shellcheck-alpine:v0.7.0 container: koalaman/shellcheck-alpine:latest if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' steps: - uses: actions/checkout@v4 - ## DGM - uses: actions/checkout@v3 - name: ShellCheck run: | shellcheck -s sh -f tty bootstrap-salt.sh @@ -116,7 +109,6 @@ jobs: - name: Upload Exit Status if: always() - ## DGM uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3 with: name: exitstatus diff --git a/CHANGELOG.md b/CHANGELOG.md index 618349a..12028ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,7 @@ -# v2024.07.XX +# v2024.07.11 ## What's Changed -## DGM - Removed support for Ruby, Kitchen and kitchen-salt and it's associated utilities - - Migrated to using GitHub Actions - Removed support of End-Of-Life OS's, for example: Debian 7, 8, 9 & 10, RHEL 7 - Removed support for FreeBSD and OpenBSD @@ -14,8 +12,9 @@ - Removed '-y' option which was experimental and only on RHEL 7 or less which are now EOL - Updated to current stable version of Ruby v3.3.4 - Removed git-master support for Photon 4 & 5 due to gcc errors building salt. +- Add support for Arm64 for MacOS -**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.04.03...v2024.06.XX +**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.04.03...v2024.07.11 # v2024.04.03 diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index 9313bf1..3248042 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -1,4 +1,4 @@ -#!/bin/sh -x +#!/bin/sh # WARNING: Changes to this file in the salt repo will be overwritten! # Please submit pull requests against the salt-bootstrap repo: @@ -1913,14 +1913,10 @@ __function_defined() { # process is finished so the script doesn't exit on a locked proc. #---------------------------------------------------------------------------------------------------------------------- __wait_for_apt(){ - ## DGM Debugging - set -v - set -x - # Timeout set at 15 minutes WAIT_TIMEOUT=900 - ## DGM see if sync'ing the clocks helps + ## see if sync'ing the clocks helps if [ -f /usr/sbin/hwclock ]; then /usr/sbin/hwclock -s fi @@ -1929,8 +1925,6 @@ __wait_for_apt(){ "${@}" 2>"$APT_ERR" APT_RETURN=$? - echoerror"DGM __wait_for_apt APT_ERR: $APT_ERR" - # Make sure we're not waiting on a lock while [ "$APT_RETURN" -ne 0 ] && grep -q '^E: Could not get lock' "$APT_ERR"; do echoinfo "Aware of the lock. Patiently waiting $WAIT_TIMEOUT more seconds..." @@ -1995,9 +1989,6 @@ __temp_gpg_pub() { # PARAMETERS: url #---------------------------------------------------------------------------------------------------------------------- __apt_key_fetch() { - ## DGM Debugging - set -v - set -x url=$1 @@ -2040,10 +2031,6 @@ __rpm_import_gpg() { # DESCRIPTION: (DRY) yum install with noinput options #---------------------------------------------------------------------------------------------------------------------- __yum_install_noinput() { - ## DGM Debugging - set -v - set -x - if [ "$DISTRO_NAME_L" = "oracle_linux" ]; then # We need to install one package at a time because --enablerepo=X disables ALL OTHER REPOS!!!! for package in "${@}"; do @@ -2059,10 +2046,6 @@ __yum_install_noinput() { # DESCRIPTION: (DRY) dnf install with noinput options #---------------------------------------------------------------------------------------------------------------------- __dnf_install_noinput() { - ## DGM Debugging - set -v - set -x - dnf -y install "${@}" || return $? } # ---------- end of function __dnf_install_noinput ---------- @@ -2071,10 +2054,6 @@ __dnf_install_noinput() { # DESCRIPTION: (DRY) tdnf install with noinput options #---------------------------------------------------------------------------------------------------------------------- __tdnf_install_noinput() { - ## DGM Debugging - set -v - set -x - tdnf -y install "${@}" || return $? } # ---------- end of function __tdnf_install_noinput ---------- @@ -2084,10 +2063,6 @@ __tdnf_install_noinput() { # specific revision. #---------------------------------------------------------------------------------------------------------------------- __git_clone_and_checkout() { - ## DGM Debugging - set -v - set -x - echodebug "Installed git version: $(git --version | awk '{ print $3 }')" # Turn off SSL verification if -I flag was set for insecure downloads if [ "$_INSECURE_DL" -eq $BS_TRUE ]; then @@ -2664,10 +2639,6 @@ __install_pip_deps() { # PARAMETERS: py_exe #---------------------------------------------------------------------------------------------------------------------- __install_salt_from_repo_post_neon() { - ## DGM Debugging - set -v - set -x - _py_exe="$1" if [ "${_py_exe}" = "" ]; then @@ -2916,10 +2887,6 @@ __enable_universe_repository() { __install_saltstack_ubuntu_repository() { # Workaround for latest non-LTS Ubuntu - ## DGM Debugging - set -v - set -x - echodebug "__install_saltstack_ubuntu_repository() entry" if { [ "$DISTRO_MAJOR_VERSION" -eq 20 ] && [ "$DISTRO_MINOR_VERSION" -eq 10 ]; } || \ @@ -3070,10 +3037,6 @@ install_ubuntu_deps() { } install_ubuntu_stable_deps() { - ## DGM Debugging - set -v - set -x - echodebug "install_ubuntu_stable_deps() entry" if [ "$_START_DAEMONS" -eq $BS_FALSE ]; then @@ -3108,10 +3071,6 @@ install_ubuntu_stable_deps() { } install_ubuntu_git_deps() { - ## DGM Debugging - set -v - set -x - echodebug "install_ubuntu_git_deps() entry" __wait_for_apt apt-get update || return 1 @@ -3154,9 +3113,6 @@ install_ubuntu_git_deps() { } install_ubuntu_onedir_deps() { - ## DGM Debugging - set -v - set -x if [ "$_START_DAEMONS" -eq $BS_FALSE ]; then echowarn "Not starting daemons on Debian based distributions is not working mostly because starting them is the default behaviour." fi @@ -3211,10 +3167,6 @@ install_ubuntu_stable() { } install_ubuntu_git() { - ## DGM Debugging - set -v - set -x - # Activate virtualenv before install if [ "${_VIRTUALENV_DIR}" != "null" ]; then __activate_virtualenv || return 1 @@ -3434,9 +3386,6 @@ install_ubuntu_check_services() { # Debian Install Functions # __install_saltstack_debian_repository() { - ## DGM Debugging - set -v - set -x echodebug "__install_saltstack_debian_repository() entry" DEBIAN_RELEASE="$DISTRO_MAJOR_VERSION" @@ -3472,9 +3421,6 @@ __install_saltstack_debian_repository() { } __install_saltstack_debian_onedir_repository() { - ## DGM Debugging - set -v - set -x echodebug "__install_saltstack_debian_onedir_repository() entry" DEBIAN_RELEASE="$DISTRO_MAJOR_VERSION" @@ -3514,10 +3460,6 @@ __install_saltstack_debian_onedir_repository() { } install_debian_onedir_deps() { - ## DGM Debugging - set -v - set -x - echodebug "install_debian_onedir_git_deps() entry" if [ "$_START_DAEMONS" -eq $BS_FALSE ]; then @@ -3572,10 +3514,6 @@ install_debian_onedir_deps() { } install_debian_git_deps() { - ## DGM Debugging - set -v - set -x - echodebug "install_debian_git_deps() entry" __wait_for_apt apt-get update || return 1 @@ -3645,10 +3583,6 @@ install_debian_12_git_deps() { } install_debian_git() { - ## DGM Debugging - set -v - set -x - if [ -n "$_PY_EXE" ]; then _PYEXE=${_PY_EXE} else @@ -3810,10 +3744,6 @@ install_debian_check_services() { # __install_saltstack_fedora_onedir_repository() { - ## DGM Debugging - set -v - set -x - if [ "$ITYPE" = "stable" ]; then REPO_REV="$ONEDIR_REV" else @@ -3904,7 +3834,6 @@ install_fedora_git_deps() { __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc gcc-c++" # shellcheck disable=SC2086 - ## DGM __dnf_install_noinput "${__PACKAGES}" || return 1 __dnf_install_noinput ${__PACKAGES} || return 1 # Let's trigger config_salt() @@ -3921,7 +3850,6 @@ install_fedora_git() { _PYEXE=${_PY_EXE} echoinfo "Using the following python version: ${_PY_EXE} to install salt" else - ## DGM _PYEXE='python2' echoerror "Python 2 is no longer supported, only Py3 packages" return 1 fi @@ -4001,10 +3929,6 @@ install_fedora_check_services() { } install_fedora_onedir_deps() { - ## DGM Debugging - set -v - set -x - if [ "$_UPGRADE_SYS" -eq $BS_TRUE ]; then yum -y update || return 1 fi @@ -4026,29 +3950,14 @@ install_fedora_onedir_deps() { __install_saltstack_fedora_onedir_repository || return 1 fi - ## DGM can find no dnf-utils in Fedora packaging archives and yum-utils EL7 and F30, none after - ## DGM but find it on 8 and 9 Centos Stream also EL9 doesn't have propcs - ## DGM if [ "$DISTRO_MAJOR_VERSION" -ge 8 ]; then - ## DGM __PACKAGES="dnf-utils chkconfig" - ## DGM else - ## DGM __PACKAGES="yum-utils chkconfig" - ## DGM fi - - ## DGM __PACKAGES="${__PACKAGES} procps" - __PACKAGES="dnf-utils chkconfig procps-ng" - ## DGM tornado appears to be missing in 3006.x pkg requirements - ## DGM __PACKAGES="${__PACKAGES} python${PY_PKG_VER}-tornado" - # shellcheck disable=SC2086 - ## DGM __yum_install_noinput "${__PACKAGES}" || return 1 __yum_install_noinput ${__PACKAGES} || return 1 if [ "${_EXTRA_PACKAGES}" != "" ]; then echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}" # shellcheck disable=SC2086 - ## DGM __yum_install_noinput "${_EXTRA_PACKAGES}" || return 1 __yum_install_noinput ${_EXTRA_PACKAGES} || return 1 fi @@ -4058,10 +3967,6 @@ install_fedora_onedir_deps() { install_fedora_onedir() { - ## DGM Debugging - set -v - set -x - STABLE_REV=$ONEDIR_REV #install_fedora_stable || return 1 @@ -4087,10 +3992,6 @@ install_fedora_onedir() { } install_fedora_onedir_post() { - ## DGM Debugging - set -v - set -x - STABLE_REV=$ONEDIR_REV for fname in api master minion syndic; do @@ -4120,10 +4021,6 @@ install_fedora_onedir_post() { # CentOS Install Functions # __install_saltstack_rhel_onedir_repository() { - ## DGM Debugging - set -v - set -x - if [ "$ITYPE" = "stable" ]; then repo_rev="$ONEDIR_REV" else @@ -4181,10 +4078,6 @@ _eof } install_centos_stable_deps() { - ## DGM Debugging - set -v - set -x - if [ "$_UPGRADE_SYS" -eq $BS_TRUE ]; then yum -y update || return 1 fi @@ -4282,10 +4175,6 @@ install_centos_stable_post() { } install_centos_git_deps() { - ## DGM Debugging - set -v - set -x - # First try stable deps then fall back to onedir deps if that one fails # if we're installing on a Red Hat based host that doesn't have the classic # package repos available. @@ -4331,10 +4220,6 @@ install_centos_git_deps() { } install_centos_git() { - ## DGM Debugging - set -v - set -x - if [ "${_PY_EXE}" != "" ]; then _PYEXE=${_PY_EXE} echoinfo "Using the following python version: ${_PY_EXE} to install salt" @@ -4350,10 +4235,6 @@ install_centos_git() { } install_centos_git_post() { - ## DGM Debugging - set -v - set -x - SYSTEMD_RELOAD=$BS_FALSE for fname in api master minion syndic; do @@ -4394,10 +4275,6 @@ install_centos_git_post() { } install_centos_onedir_deps() { - ## DGM Debugging - set -v - set -x - if [ "$_UPGRADE_SYS" -eq "$BS_TRUE" ]; then yum -y update || return 1 fi @@ -5454,10 +5331,6 @@ install_amazon_linux_ami_2_git_deps() { } install_amazon_linux_ami_2_deps() { - ## DGM Debugging - set -v - set -x - if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then echoerror "Python version is no longer supported, only Python 3" return 1 @@ -6017,9 +5890,6 @@ install_arch_linux_onedir_post() { # __install_saltstack_photon_onedir_repository() { - ## DGM Debugging - set -v - set -x echodebug "__install_saltstack_photon_onedir_repository() entry" if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then @@ -6059,9 +5929,6 @@ __install_saltstack_photon_onedir_repository() { } install_photon_deps() { - ## DGM Debugging - set -v - set -x echodebug "install_photon_deps() entry" if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then @@ -6092,9 +5959,6 @@ install_photon_deps() { } install_photon_stable_post() { - ## DGM Debugging - set -v - set -x echodebug "install_photon_stable_post() entry" for fname in api master minion syndic; do @@ -6113,9 +5977,6 @@ install_photon_stable_post() { } install_photon_git_deps() { - ## DGM Debugging - set -v - set -x echodebug "install_photon_git_deps() entry" if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then @@ -6172,9 +6033,6 @@ install_photon_git_deps() { } install_photon_git() { - ## DGM Debugging - set -v - set -x echodebug "install_photon_git() entry" if [ "${_PY_EXE}" != "" ]; then @@ -6194,9 +6052,6 @@ install_photon_git() { } install_photon_git_post() { - ## DGM Debugging - set -v - set -x echodebug "install_photon_git_post() entry" for fname in api master minion syndic; do @@ -6231,9 +6086,6 @@ install_photon_git_post() { install_photon_restart_daemons() { [ "$_START_DAEMONS" -eq $BS_FALSE ] && return - ## DGM Debugging - set -v - set -x echodebug "install_photon_restart_daemons() entry" @@ -6257,9 +6109,6 @@ install_photon_restart_daemons() { } install_photon_check_services() { - ## DGM Debugging - set -v - set -x echodebug "install_photon_check_services() entry" for fname in api master minion syndic; do @@ -6278,9 +6127,6 @@ install_photon_check_services() { } install_photon_onedir_deps() { - ## DGM Debugging - set -v - set -x echodebug "install_photon_onedir_deps() entry" @@ -6322,9 +6168,6 @@ install_photon_onedir_deps() { install_photon_onedir() { - ## DGM Debugging - set -v - set -x echodebug "install_photon_onedir() entry" STABLE_REV=$ONEDIR_REV @@ -6351,10 +6194,6 @@ install_photon_onedir() { } install_photon_onedir_post() { - ## DGM Debugging - set -v - set -x - STABLE_REV=$ONEDIR_REV install_photon_stable_post || return 1 @@ -6977,10 +6816,6 @@ install_gentoo_git_deps() { } install_gentoo_stable() { - ## DGM Debugging - set -v - set -x - GENTOO_SALT_PACKAGE="app-admin/salt" STABLE_REV_WITHOUT_PREFIX=$(echo "${STABLE_REV}" | sed 's#archive/##') @@ -7005,10 +6840,6 @@ install_gentoo_git() { } install_gentoo_onedir() { - ## DGM Debugging - set -v - set -x - STABLE_REV=${ONEDIR_REV} install_gentoo_stable || return 1 } @@ -7248,20 +7079,6 @@ daemons_running_voidlinux() { # OS X / Darwin Install Functions # -## DGM __macosx_get_packagesite() { -## DGM -## DGM if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then -## DGM echoerror "Python 2 is no longer supported, only Python 3" -## DGM return 1 -## DGM fi -## DGM -## DGM # TBD DGM need to update for arch and 3006+ repo locations -## DGM -## DGM DARWIN_ARCH="x86_64" -## DGM PKG="salt-${STABLE_REV}-${__PY_VERSION_REPO}-${DARWIN_ARCH}.pkg" -## DGM SALTPKGCONFURL="https://${_REPO_URL}/osx/${PKG}" -## DGM } - __parse_repo_json_python() { # Using latest, grab the right @@ -7279,15 +7096,12 @@ echo "${_JSON_VERSION}" } __macosx_get_packagesite_onedir() { - # TBD DGM need to update for arch and 3006+ repo locations - if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then echoerror "Python version is no longer supported, only Python 3" return 1 fi - ## DGM TBD need to allow for arm64 arch too - DARWIN_ARCH="x86_64" + DARWIN_ARCH=${CPU_ARCH_L} if [ "$(echo "$_ONEDIR_REV" | grep -E '^(latest)$')" != "" ]; then _PKG_VERSION=$(__parse_repo_json_python) diff --git a/kitchen.macos.yml b/kitchen.macos.yml index b17b3ca..616a489 100644 --- a/kitchen.macos.yml +++ b/kitchen.macos.yml @@ -40,6 +40,3 @@ suites: verifier: command: pytest --cache-clear -v -s -ra --log-cli-level=debug -k "not test_ping" tests/integration/ - -## DGM transport: -## DGM name: docker diff --git a/kitchen.windows.yml b/kitchen.windows.yml index 008223c..a2b88e2 100644 --- a/kitchen.windows.yml +++ b/kitchen.windows.yml @@ -40,6 +40,3 @@ suites: verifier: command: pytest --cache-clear -v -s -ra --log-cli-level=debug -k "not test_ping" tests/integration/ - -## DGM transport: -## DGM name: docker