123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #!/bin/bash
- set -xeuo pipefail
- if [ -n "${PAPR_BRANCH:-}" ]; then
- target_branch=$PAPR_BRANCH
- else
- target_branch=$PAPR_PULL_TARGET_BRANCH
- fi
- target_branch_in=${target_branch}
- if [[ "${target_branch}" =~ ^release- ]]; then
- target_branch="${target_branch/release-/}"
- else
- dnf install -y sed
- target_branch="$( git describe | sed 's/^openshift-ansible-\([0-9]*\.[0-9]*\)\.[0-9]*-.*/\1/' )"
- fi
- export target_branch
- git config --global user.email "ci@openshift.org"
- git config --global user.name "OpenShift Atomic CI"
- git fetch origin ${target_branch_in} && git rebase origin/${target_branch_in}
- PAPR_INVENTORY=${PAPR_INVENTORY:-.papr.inventory}
- PAPR_RUN_UPDATE=${PAPR_RUN_UPDATE:-0}
- PAPR_UPGRADE_FROM=${PAPR_UPGRADE_FROM:-0}
- PAPR_EXTRAVARS=""
- if [[ "${PAPR_UPGRADE_FROM}" != "0" ]]; then
- git branch new-code
- git checkout release-${PAPR_UPGRADE_FROM}
- git clean -fdx
- PAPR_EXTRAVARS="-e openshift_release=${PAPR_UPGRADE_FROM}"
- fi
- pip install -r requirements.txt
- export ANSIBLE_STDOUT_CALLBACK=debug
- ansible -vv -i $PAPR_INVENTORY nodes -a 'rpm-ostree status'
- ansible -vv -i $PAPR_INVENTORY nodes -m setup
- ansible -vv -i $PAPR_INVENTORY nodes -a "hostnamectl set-hostname {{ ansible_default_ipv4.address }}"
- ansible -vv -i $PAPR_INVENTORY nodes -m setup -a "gather_subset=min"
- upload_journals() {
- mkdir journals
- ansible -vvv -i $PAPR_INVENTORY all \
- -m shell -a 'journalctl --no-pager > /tmp/journal'
- ansible -vvv -i $PAPR_INVENTORY all \
- -m fetch -a "src=/tmp/journal dest=journals/{{ inventory_hostname }}.log flat=yes"
-
- find . -iname "*.log" -execdir sh -c 'split -b 4m --numeric-suffixes --additional-suffix=.log {} $(basename {} .log)_' \; -execdir rm -rf {} \;
- }
- trap upload_journals ERR
- ansible-playbook -vvv -i $PAPR_INVENTORY $PAPR_EXTRAVARS playbooks/prerequisites.yml
- ansible-playbook -vvv -i $PAPR_INVENTORY $PAPR_EXTRAVARS playbooks/deploy_cluster.yml
- if [[ "${PAPR_UPGRADE_FROM}" != "0" ]]; then
- git checkout new-code
- git clean -fdx
- fi
- if [[ "${PAPR_RUN_UPDATE}" != "0" ]]; then
- update_version="$(echo $target_branch | sed 's/\./_/')"
-
- ansible-playbook -vvv -i $PAPR_INVENTORY $PAPR_EXTRAVARS playbooks/openshift-master/openshift_node_group.yml
- ansible-playbook -vvv -i $PAPR_INVENTORY playbooks/byo/openshift-cluster/upgrades/v${update_version}/upgrade.yml
- fi
- upload_journals
|