summaryrefslogtreecommitdiff
path: root/contrib/cirrus/packer
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/cirrus/packer')
-rw-r--r--[l---------]contrib/cirrus/packer/cloud-init/ubuntu/cloud.cfg.d/40_enable_root.cfg2
-rw-r--r--[l---------]contrib/cirrus/packer/prior-fedora_base-setup.sh45
-rw-r--r--[l---------]contrib/cirrus/packer/xfedora_setup.sh35
3 files changed, 79 insertions, 3 deletions
diff --git a/contrib/cirrus/packer/cloud-init/ubuntu/cloud.cfg.d/40_enable_root.cfg b/contrib/cirrus/packer/cloud-init/ubuntu/cloud.cfg.d/40_enable_root.cfg
index 98a0e3918..672d1907b 120000..100644
--- a/contrib/cirrus/packer/cloud-init/ubuntu/cloud.cfg.d/40_enable_root.cfg
+++ b/contrib/cirrus/packer/cloud-init/ubuntu/cloud.cfg.d/40_enable_root.cfg
@@ -1 +1 @@
-../../fedora/cloud.cfg.d/40_enable_root.cfg \ No newline at end of file
+disable_root: 0
diff --git a/contrib/cirrus/packer/prior-fedora_base-setup.sh b/contrib/cirrus/packer/prior-fedora_base-setup.sh
index 998a5d9fd..f271abee0 120000..100644
--- a/contrib/cirrus/packer/prior-fedora_base-setup.sh
+++ b/contrib/cirrus/packer/prior-fedora_base-setup.sh
@@ -1 +1,44 @@
-fedora_base-setup.sh \ No newline at end of file
+#!/bin/bash
+
+# N/B: This script is not intended to be run by humans. It is used to configure the
+# fedora base image for importing, so that it will boot in GCE
+
+set -e
+
+# Load in library (copied by packer, before this script was run)
+source $GOSRC/$SCRIPT_BASE/lib.sh
+
+echo "Updating packages"
+dnf -y update
+
+echo "Installing necessary packages and google services"
+dnf -y install rng-tools google-compute-engine-tools google-compute-engine-oslogin ethtool
+
+echo "Enabling services"
+systemctl enable rngd
+
+# There is a race that can happen on boot between the GCE services configuring
+# the VM, and cloud-init trying to do similar activities. Use a customized
+# unit file to make sure cloud-init starts after the google-compute-* services.
+echo "Setting cloud-init service to start after google-network-daemon.service"
+cp -v $GOSRC/$PACKER_BASE/cloud-init/fedora/cloud-init.service /etc/systemd/system/
+
+# ref: https://cloud.google.com/compute/docs/startupscript
+# The mechanism used by Cirrus-CI to execute tasks on the system is through an
+# "agent" process launched as a GCP startup-script (from the metadata service).
+# This agent is responsible for cloning the repository and executing all task
+# scripts and other operations. Therefor, on SELinux-enforcing systems, the
+# service must be labeled properly to ensure it's child processes can
+# run with the proper contexts.
+METADATA_SERVICE_CTX=unconfined_u:unconfined_r:unconfined_t:s0
+METADATA_SERVICE_PATH=systemd/system/google-startup-scripts.service
+sed -r -e \
+ "s/Type=oneshot/Type=oneshot\nSELinuxContext=$METADATA_SERVICE_CTX/" \
+ /lib/$METADATA_SERVICE_PATH > /etc/$METADATA_SERVICE_PATH
+
+# Ensure there are no disruptive periodic services enabled by default in image
+systemd_banish
+
+rh_finalize
+
+echo "SUCCESS!"
diff --git a/contrib/cirrus/packer/xfedora_setup.sh b/contrib/cirrus/packer/xfedora_setup.sh
index 5e9f1ec77..25b568e8a 120000..100644
--- a/contrib/cirrus/packer/xfedora_setup.sh
+++ b/contrib/cirrus/packer/xfedora_setup.sh
@@ -1 +1,34 @@
-fedora_setup.sh \ No newline at end of file
+#!/bin/bash
+
+# This script is called by packer on the subject fedora VM, to setup the podman
+# build/test environment. It's not intended to be used outside of this context.
+
+set -e
+
+# Load in library (copied by packer, before this script was run)
+source $GOSRC/$SCRIPT_BASE/lib.sh
+
+req_env_var SCRIPT_BASE PACKER_BASE INSTALL_AUTOMATION_VERSION PACKER_BUILDER_NAME GOSRC FEDORA_BASE_IMAGE OS_RELEASE_ID OS_RELEASE_VER
+
+workaround_bfq_bug
+
+# Do not enable updates-testing on the previous Fedora release
+if [[ "$PRIOR_FEDORA_BASE_IMAGE" =~ "${OS_RELEASE_ID}-cloud-base-${OS_RELEASE_VER}" ]]; then
+ DISABLE_UPDATES_TESTING=1
+else
+ DISABLE_UPDATES_TESTING=0
+fi
+
+bash $PACKER_BASE/fedora_packaging.sh
+# Load installed environment right now (happens automatically in a new process)
+source /usr/share/automation/environment
+
+echo "Enabling cgroup management from containers"
+ooe.sh sudo setsebool container_manage_cgroup true
+
+# Ensure there are no disruptive periodic services enabled by default in image
+systemd_banish
+
+rh_finalize
+
+echo "SUCCESS!"