diff options
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/cirrus/apiv2_test.sh | 2 | ||||
-rwxr-xr-x | contrib/cirrus/build_release.sh | 4 | ||||
-rwxr-xr-x | contrib/cirrus/check_image.sh | 2 | ||||
-rw-r--r-- | contrib/cirrus/container_test.sh | 6 | ||||
-rwxr-xr-x | contrib/cirrus/integration_test.sh | 2 | ||||
-rw-r--r-- | contrib/cirrus/lib.sh | 4 | ||||
-rwxr-xr-x | contrib/cirrus/logcollector.sh | 6 | ||||
-rw-r--r-- | contrib/cirrus/packer/fedora_packaging.sh | 22 | ||||
-rw-r--r-- | contrib/cirrus/packer/ubuntu_packaging.sh | 28 | ||||
-rwxr-xr-x | contrib/cirrus/setup_environment.sh | 12 | ||||
-rwxr-xr-x | contrib/cirrus/system_test.sh | 2 |
11 files changed, 49 insertions, 41 deletions
diff --git a/contrib/cirrus/apiv2_test.sh b/contrib/cirrus/apiv2_test.sh index 33e9fbc6b..546fe8e30 100755 --- a/contrib/cirrus/apiv2_test.sh +++ b/contrib/cirrus/apiv2_test.sh @@ -7,7 +7,7 @@ source $(dirname $0)/lib.sh req_env_var GOSRC SCRIPT_BASE OS_RELEASE_ID OS_RELEASE_VER CONTAINER_RUNTIME VARLINK_LOG LOCAL_OR_REMOTE=local -if [[ "$TEST_REMOTE_CLIENT" = "true" ]]; then +if [[ "$RCLI" = "true" ]]; then LOCAL_OR_REMOTE=remote fi diff --git a/contrib/cirrus/build_release.sh b/contrib/cirrus/build_release.sh index 07db88f81..45634f368 100755 --- a/contrib/cirrus/build_release.sh +++ b/contrib/cirrus/build_release.sh @@ -4,11 +4,11 @@ set -e source $(dirname $0)/lib.sh -req_env_var TEST_REMOTE_CLIENT OS_RELEASE_ID GOSRC +req_env_var RCLI OS_RELEASE_ID GOSRC cd $GOSRC -if [[ "$TEST_REMOTE_CLIENT" == "true" ]] && [[ -z "$CROSS_PLATFORM" ]] +if [[ "$RCLI" == "true" ]] && [[ -z "$CROSS_PLATFORM" ]] then CROSS_PLATFORM=linux fi diff --git a/contrib/cirrus/check_image.sh b/contrib/cirrus/check_image.sh index 39c2be3f8..13172fe1c 100755 --- a/contrib/cirrus/check_image.sh +++ b/contrib/cirrus/check_image.sh @@ -6,7 +6,7 @@ source $(dirname $0)/lib.sh EVIL_UNITS="$($CIRRUS_WORKING_DIR/$PACKER_BASE/systemd_banish.sh --list)" -req_env_var PACKER_BUILDER_NAME TEST_REMOTE_CLIENT EVIL_UNITS OS_RELEASE_ID CG_FS_TYPE +req_env_var PACKER_BUILDER_NAME RCLI EVIL_UNITS OS_RELEASE_ID CG_FS_TYPE NFAILS=0 echo "Validating VM image" diff --git a/contrib/cirrus/container_test.sh b/contrib/cirrus/container_test.sh index 8a4ed9492..b56a12232 100644 --- a/contrib/cirrus/container_test.sh +++ b/contrib/cirrus/container_test.sh @@ -18,7 +18,7 @@ if [ "${ID}" != "fedora" ] || [ "${CONTAINER_RUNTIME}" != "" ]; then INTEGRATION_TEST_ENVS="SKIP_USERNS=1" fi -echo "$(date --rfc-3339=seconds) $(basename $0) started with '$*' and TEST_REMOTE_CLIENT='${TEST_REMOTE_CLIENT}'" +echo "$(date --rfc-3339=seconds) $(basename $0) started with '$*' and RCLI='${RCLI}'" pwd @@ -57,9 +57,9 @@ while getopts "bituv" opt; do esac done -# The TEST_REMOTE_CLIENT environment variable decides whether +# The RCLI environment variable decides whether # to test varlinke -if [[ "$TEST_REMOTE_CLIENT" == "true" ]]; then +if [[ "$RCLI" == "true" ]]; then remote=1 fi diff --git a/contrib/cirrus/integration_test.sh b/contrib/cirrus/integration_test.sh index 692d5a236..c65f5e25f 100755 --- a/contrib/cirrus/integration_test.sh +++ b/contrib/cirrus/integration_test.sh @@ -7,7 +7,7 @@ source $(dirname $0)/lib.sh req_env_var GOSRC SCRIPT_BASE OS_RELEASE_ID OS_RELEASE_VER CONTAINER_RUNTIME VARLINK_LOG LOCAL_OR_REMOTE=local -if [[ "$TEST_REMOTE_CLIENT" = "true" ]]; then +if [[ "$RCLI" = "true" ]]; then LOCAL_OR_REMOTE=remote fi diff --git a/contrib/cirrus/lib.sh b/contrib/cirrus/lib.sh index d2af4d883..968b2de39 100644 --- a/contrib/cirrus/lib.sh +++ b/contrib/cirrus/lib.sh @@ -96,12 +96,12 @@ LILTO="timeout_attempt_delay_command 120s 5 30s" BIGTO="timeout_attempt_delay_command 300s 5 60s" # Safe env. vars. to transfer from root -> $ROOTLESS_USER (go env handled separately) -ROOTLESS_ENV_RE='(CIRRUS_.+)|(ROOTLESS_.+)|(.+_IMAGE.*)|(.+_BASE)|(.*DIRPATH)|(.*FILEPATH)|(SOURCE.*)|(DEPEND.*)|(.+_DEPS_.+)|(OS_REL.*)|(.+_ENV_RE)|(TRAVIS)|(CI.+)|(TEST_REMOTE.*)' +ROOTLESS_ENV_RE='(CIRRUS_.+)|(ROOTLESS_.+)|(.+_IMAGE.*)|(.+_BASE)|(.*DIRPATH)|(.*FILEPATH)|(SOURCE.*)|(DEPEND.*)|(.+_DEPS_.+)|(OS_REL.*)|(.+_ENV_RE)|(TRAVIS)|(CI.+)|(REMOTE.*)' # Unsafe env. vars for display SECRET_ENV_RE='(IRCID)|(ACCOUNT)|(GC[EP]..+)|(SSH)' SPECIALMODE="${SPECIALMODE:-none}" -TEST_REMOTE_CLIENT="${TEST_REMOTE_CLIENT:-false}" +RCLI="${RCLI:-false}" export CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-podman} # When running as root, this may be empty or not, as a user, it MUST be set. diff --git a/contrib/cirrus/logcollector.sh b/contrib/cirrus/logcollector.sh index 0b179591a..859da2966 100755 --- a/contrib/cirrus/logcollector.sh +++ b/contrib/cirrus/logcollector.sh @@ -4,7 +4,7 @@ set -e source $(dirname $0)/lib.sh -req_env_var CIRRUS_WORKING_DIR OS_RELEASE_ID TEST_REMOTE_CLIENT +req_env_var CIRRUS_WORKING_DIR OS_RELEASE_ID RCLI # Assume there are other log collection commands to follow - Don't # let one break another that may be useful, but also keep any @@ -34,12 +34,12 @@ case $1 in journal) showrun journalctl -b ;; podman) showrun ./bin/podman system info ;; varlink) - if [[ "$TEST_REMOTE_CLIENT" == "true" ]] + if [[ "$RCLI" == "true" ]] then echo "(Trailing 100 lines of $VARLINK_LOG)" showrun tail -100 $VARLINK_LOG else - die 0 "\$TEST_REMOTE_CLIENT is not 'true': $TEST_REMOTE_CLIENT" + die 0 "\$RCLI is not 'true': $RCLI" fi ;; packages) diff --git a/contrib/cirrus/packer/fedora_packaging.sh b/contrib/cirrus/packer/fedora_packaging.sh index f19932a9f..4a8f62e45 100644 --- a/contrib/cirrus/packer/fedora_packaging.sh +++ b/contrib/cirrus/packer/fedora_packaging.sh @@ -26,7 +26,7 @@ source /usr/share/automation/environment # Set this to 1 to NOT enable updates-testing repository DISABLE_UPDATES_TESTING=${DISABLE_UPDATES_TESTING:0} -# Do not enable update-stesting on the previous Fedora release +# Do not enable updates-testing on the previous Fedora release if ((DISABLE_UPDATES_TESTING!=0)); then warn "Enabling updates-testing repository for image based on $FEDORA_BASE_IMAGE" $LILTO $SUDO ooe.sh dnf install -y 'dnf-command(config-manager)' @@ -37,7 +37,15 @@ fi $BIGTO ooe.sh $SUDO dnf update -y +# Fedora, as of 31, uses cgroups v2 by default. runc does not support +# cgroups v2, only crun does. (As of 2020-07-30 runc support is +# forthcoming but not even close to ready yet). To ensure a reliable +# runtime environment, force-remove runc if it is present. +# However, because a few other repos. which use these images still need +# it, ensure the runc package is cached in $PACKAGE_DOWNLOAD_DIR so +# it may be swap it in when required. REMOVE_PACKAGES=(runc) + INSTALL_PACKAGES=(\ autoconf automake @@ -118,11 +126,12 @@ INSTALL_PACKAGES=(\ python2 python3-PyYAML python3-dateutil - python3-psutil - python3-pytoml - python3-libsemanage python3-libselinux + python3-libsemanage python3-libvirt + python3-psutil + python3-pytoml + python3-requests redhat-rpm-config rpcbind rsync @@ -163,7 +172,7 @@ $BIGTO ooe.sh $SUDO dnf install -y ${INSTALL_PACKAGES[@]} # $BIGTO ooe.sh $SUDO dnf --enablerepo=updates-testing -y upgrade crun [[ ${#REMOVE_PACKAGES[@]} -eq 0 ]] || \ - $LILTO ooe.sh $SUDO dnf erase -y ${REMOVE_PACKAGES[@]} + $LILTO ooe.sh $SUDO dnf erase -y "${REMOVE_PACKAGES[@]}" if [[ ${#DOWNLOAD_PACKAGES[@]} -gt 0 ]]; then echo "Downloading packages for optional installation at runtime, as needed." @@ -171,8 +180,7 @@ if [[ ${#DOWNLOAD_PACKAGES[@]} -gt 0 ]]; then ooe.sh $SUDO dnf -y module enable cri-o:$(get_kubernetes_version) $SUDO mkdir -p "$PACKAGE_DOWNLOAD_DIR" cd "$PACKAGE_DOWNLOAD_DIR" - $LILTO ooe.sh $SUDO dnf download -y --resolve ${DOWNLOAD_PACKAGES[@]} - ls -la "$PACKAGE_DOWNLOAD_DIR/" + $LILTO ooe.sh $SUDO dnf download -y --resolve "${DOWNLOAD_PACKAGES[@]}" fi echo "Installing runtime tooling" diff --git a/contrib/cirrus/packer/ubuntu_packaging.sh b/contrib/cirrus/packer/ubuntu_packaging.sh index d11c612c5..935e81147 100644 --- a/contrib/cirrus/packer/ubuntu_packaging.sh +++ b/contrib/cirrus/packer/ubuntu_packaging.sh @@ -65,7 +65,7 @@ INSTALL_PACKAGES=(\ gettext git go-md2man - golang + golang-1.14 iproute2 iptables jq @@ -101,12 +101,14 @@ INSTALL_PACKAGES=(\ podman protobuf-c-compiler protobuf-compiler + python-dateutil python-protobuf python2 python3-dateutil python3-pip python3-psutil python3-pytoml + python3-requests python3-setuptools rsync runc @@ -135,6 +137,10 @@ if [[ "$OS_RELEASE_VER" -le 19 ]]; then python-minimal yum-utils ) +else + INSTALL_PACKAGES+=(\ + python-is-python3 + ) fi # Do this at the last possible moment to avoid dpkg lock conflicts @@ -144,22 +150,26 @@ $BIGTO ooe.sh $SUDOAPTGET upgrade echo "Installing general testing and system dependencies" # Necessary to update cache of newly added repos $LILTO ooe.sh $SUDOAPTGET update -$BIGTO ooe.sh $SUDOAPTGET install ${INSTALL_PACKAGES[@]} +$BIGTO ooe.sh $SUDOAPTGET install "${INSTALL_PACKAGES[@]}" if [[ ${#DOWNLOAD_PACKAGES[@]} -gt 0 ]]; then echo "Downloading packages for optional installation at runtime, as needed." $SUDO ln -s /var/cache/apt/archives "$PACKAGE_DOWNLOAD_DIR" - $LILTO ooe.sh $SUDOAPTGET install --download-only ${DOWNLOAD_PACKAGES[@]} - ls -la "$PACKAGE_DOWNLOAD_DIR/" + $LILTO ooe.sh $SUDOAPTGET install --download-only "${DOWNLOAD_PACKAGES[@]}" fi -echo "Installing runtime tooling" -# Save some runtime by having these already available +echo "Configuring Go environment" +# There are multiple (otherwise conflicting) versions of golang available +# on Ubuntu. Being primarily localized by env. vars and defaults, dropping +# a symlink is the appropriate way to "install" a specific version system-wide. +$SUDO ln -sf /usr/lib/go-1.14/bin/go /usr/bin/go +# Initially go was not installed cd $GOSRC -# Required since initially go was not installed -source $GOSRC/$SCRIPT_BASE/lib.sh +source $SCRIPT_BASE/lib.sh echo "Go environment has been setup:" go env + +echo "Building/Installing runtime tooling" $SUDO hack/install_catatonit.sh $SUDO make install.libseccomp.sudo -$SUDO make install.tools +$SUDO make install.tools GO_BUILD='go build' # -mod=vendor breaks this diff --git a/contrib/cirrus/setup_environment.sh b/contrib/cirrus/setup_environment.sh index e5f3168da..0b9d686d3 100755 --- a/contrib/cirrus/setup_environment.sh +++ b/contrib/cirrus/setup_environment.sh @@ -39,16 +39,6 @@ done cd "${GOSRC}/" case "${OS_RELEASE_ID}" in ubuntu) - apt-get update - apt-get install -y containers-common - if [[ "$OS_RELEASE_VER" == "19" ]]; then - apt-get purge -y --auto-remove golang* - apt-get install -y golang-1.13 - ln -s /usr/lib/go-1.13/bin/go /usr/bin/go - fi - if [[ "$OS_RELEASE_VER" == "20" ]]; then - apt-get install -y python-is-python3 - fi ;; fedora) # All SELinux distros need this for systemd-in-a-container @@ -113,7 +103,7 @@ case "$SPECIALMODE" in tee -a /etc/environment) && eval "$X" && echo "$X" X=$(echo "export SPECIALMODE='${SPECIALMODE}'" | \ tee -a /etc/environment) && eval "$X" && echo "$X" - X=$(echo "export TEST_REMOTE_CLIENT='${TEST_REMOTE_CLIENT}'" | \ + X=$(echo "export RCLI='${RCLI}'" | \ tee -a /etc/environment) && eval "$X" && echo "$X" setup_rootless fi diff --git a/contrib/cirrus/system_test.sh b/contrib/cirrus/system_test.sh index 33e9fbc6b..546fe8e30 100755 --- a/contrib/cirrus/system_test.sh +++ b/contrib/cirrus/system_test.sh @@ -7,7 +7,7 @@ source $(dirname $0)/lib.sh req_env_var GOSRC SCRIPT_BASE OS_RELEASE_ID OS_RELEASE_VER CONTAINER_RUNTIME VARLINK_LOG LOCAL_OR_REMOTE=local -if [[ "$TEST_REMOTE_CLIENT" = "true" ]]; then +if [[ "$RCLI" = "true" ]]; then LOCAL_OR_REMOTE=remote fi |