airshipctl/tools/airship-in-a-pod/runner/assets/entrypoint.sh
Michael Beaver 56972b4317 AIAP - Extract logs from runner container
This adds a new script to the runner container that is run in the
entrypoint which runs the log gathering ansible playbook from
inside the runner container. The gate then extracts these logs
with a new role.

This also updates the image_build script to fix how it changes
the container imagePullPolicy

Closes: #658
Relates-To: #659
Change-Id: I24d11c66e7b71852256e164343f7bb2f331d1fef
2021-12-03 15:23:12 +00:00

111 lines
3.9 KiB
Bash
Executable File

#!/bin/bash
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -ex
/signal_status "runner" "RUNNING"
success=false
function reportStatus() {
# Run the get-logs script while inside the airshipctl repo to run the
# ansible log gathering playbooks before sending the signal status
/get-logs.sh
if [[ "$success" == "false" ]]; then
/signal_status "runner" "FAILED"
else
/signal_status "runner" "SUCCESS"
fi
# Keep the container running for debugging/monitoring purposes
sleep infinity
}
trap reportStatus EXIT
# Wait until artifact-setup and libvirt infrastructure has been built
/wait_for artifact-setup
/wait_for infra-builder
export USER=root
# https://github.com/sudo-project/sudo/issues/42
echo "Set disable_coredump false" >> /etc/sudo.conf
echo "Installing kustomize"
kustomize_version=v3.8.5
kustomize_download_url="https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${kustomize_version}/kustomize_${kustomize_version}_linux_amd64.tar.gz"
curl -sSL "$kustomize_download_url" | tar -C /tmp -xzf -
install /tmp/kustomize /usr/local/bin
SOPS_IMPORT_PGP=$( cat /opt/aiap-secret-volume/SOPS_IMPORT_PGP )
if [ -z "${SOPS_IMPORT_PGP}" ];then
# set user1 key
SOPS_IMPORT_PGP="$(cat $ARTIFACTS_DIR/airshipctl/manifests/.private-keys/exampleU1.key)"
fi
export SOPS_IMPORT_PGP=${SOPS_IMPORT_PGP}
echo "export SOPS_IMPORT_PGP=${SOPS_IMPORT_PGP}" >> ~/.bashrc
echo "export KUBECONFIG=$HOME/.airship/kubeconfig" >> ~/.bashrc
install "$ARTIFACTS_DIR/airshipctl/bin/airshipctl" /usr/local/bin
cd "$ARTIFACTS_DIR/airshipctl"
set +x
if [[ "$AIRSHIP_CONFIG_MANIFEST_REPO_AUTH_TYPE" = "http-basic" ]]
then
export AIRSHIP_CONFIG_MANIFEST_REPO_AUTH_USERNAME=$( cat /opt/aiap-secret-volume/AIRSHIP_CONFIG_MANIFEST_REPO_AUTH_USERNAME )
export AIRSHIP_CONFIG_MANIFEST_REPO_AUTH_HTTP_PASSWORD=$( cat /opt/aiap-secret-volume/AIRSHIP_CONFIG_MANIFEST_REPO_AUTH_HTTP_PASSWORD )
fi
if [[ "$AIRSHIP_CONFIG_MANIFEST_REPO_AUTH_TYPE" = "ssh-pass" ]]
then
export AIRSHIP_CONFIG_MANIFEST_REPO_AUTH_SSH_PASSWORD=$( cat /opt/aiap-secret-volume/AIRSHIP_CONFIG_MANIFEST_REPO_AUTH_SSH_PASSWORD )
fi
set -x
export AIRSHIP_CONFIG_MANIFEST_DIRECTORY="/opt/manifests"
./tools/deployment/22_test_configs.sh
if [[ -n "$AIRSHIP_CONFIG_PHASE_REPO_REF" || -n "$AIRSHIP_CONFIG_PHASE_REPO_BRANCH" ]]; then
export NO_CHECKOUT="false"
else
export NO_CHECKOUT="true"
fi
./tools/deployment/23_pull_documents.sh
if [[ "$SKIP_REGENERATE" = "false" ]]; then
./tools/deployment/23_generate_secrets.sh
fi
repo_url=$(yq -r .manifests.dummy_manifest.repositories.primary.url /root/.airship/config)
repo_name=$(basename ${repo_url})
# Remove .git from repository if present
repo_name=${repo_name%.git}
hosts_file="$AIRSHIP_CONFIG_MANIFEST_DIRECTORY/$repo_name/manifests/site/test-site/target/catalogues/shareable/hosts.yaml"
sed -i -e 's#bmcAddress: redfish+http://\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\):8000#bmcAddress: redfish+https://10.23.25.1:8443#' "$hosts_file"
sed -i -e 's#root#username#' "$hosts_file"
sed -i -e 's#r00tme#password#' "$hosts_file"
sed -i -e 's#disableCertificateVerification: false#disableCertificateVerification: true#' "$hosts_file"
cp -r /opt/manifests "$ARTIFACTS_DIR/manifests"
if [[ "$USE_CACHED_ISO" = "true" ]]; then
mkdir -p /srv/images
tar -xzf "$CACHE_DIR/iso.tar.gz" --directory /srv/images
else
./tools/deployment/24_build_images.sh
tar -czf "$ARTIFACTS_DIR/iso.tar.gz" --directory=/srv/images .
fi
./tools/deployment/25_deploy_gating.sh
success=true