diff --git a/04_setup_ironic.sh b/04_setup_ironic.sh index 906c64384..a439580a8 100755 --- a/04_setup_ironic.sh +++ b/04_setup_ironic.sh @@ -34,43 +34,22 @@ if sudo podman pod exists ironic-pod ; then sudo podman pod rm ironic-pod -f fi -# set password for mariadb -mariadb_password=$(echo $(date;hostname)|sha256sum |cut -c-20) - # Create pod sudo podman pod create -n ironic-pod -# Start dnsmasq, http, mariadb, and ironic containers using same image -sudo podman run -d --net host --privileged --name dnsmasq --pod ironic-pod \ - -v $IRONIC_DATA_DIR:/shared --entrypoint /bin/rundnsmasq ${IRONIC_IMAGE} - +# We start only the httpd and *downloader containers so that we can provide +# cached images to the bootstrap VM sudo podman run -d --net host --privileged --name httpd --pod ironic-pod \ -v $IRONIC_DATA_DIR:/shared --entrypoint /bin/runhttpd ${IRONIC_IMAGE} -sudo podman run -d --net host --privileged --name mariadb --pod ironic-pod \ - -v $IRONIC_DATA_DIR:/shared --entrypoint /bin/runmariadb \ - --env MARIADB_PASSWORD=$mariadb_password ${IRONIC_IMAGE} - -sudo podman run -d --net host --privileged --name ironic-conductor --pod ironic-pod \ - --env MARIADB_PASSWORD=$mariadb_password \ - --env OS_CONDUCTOR__HEARTBEAT_TIMEOUT=120 \ - --entrypoint /bin/runironic-conductor \ - -v $IRONIC_DATA_DIR:/shared ${IRONIC_IMAGE} - -sudo podman run -d --net host --privileged --name ironic-api --pod ironic-pod \ - --env MARIADB_PASSWORD=$mariadb_password \ - --entrypoint /bin/runironic-api \ - -v $IRONIC_DATA_DIR:/shared ${IRONIC_IMAGE} - sudo podman run -d --net host --privileged --name ipa-downloader --pod ironic-pod \ -v $IRONIC_DATA_DIR:/shared ${IPA_DOWNLOADER_IMAGE} /usr/local/bin/get-resource.sh sudo podman run -d --net host --privileged --name coreos-downloader --pod ironic-pod \ -v $IRONIC_DATA_DIR:/shared ${COREOS_DOWNLOADER_IMAGE} /usr/local/bin/get-resource.sh $RHCOS_IMAGE_URL -# Start Ironic Inspector -sudo podman run -d --net host --privileged --name ironic-inspector \ - --pod ironic-pod -v $IRONIC_DATA_DIR:/shared "${IRONIC_INSPECTOR_IMAGE}" - # Wait for images to be downloaded/ready -while ! curl --fail http://localhost:80/images/rhcos-ootpa-latest.qcow2.md5sum ; do sleep 1 ; done +while ! curl --fail http://localhost/images/rhcos-ootpa-latest.qcow2.md5sum ; do sleep 1 ; done +while ! curl --fail --head http://localhost/images/ironic-python-agent.initramfs ; do sleep 1; done +while ! curl --fail --head http://localhost/images/ironic-python-agent.tar.headers ; do sleep 1; done +while ! curl --fail --head http://localhost/images/ironic-python-agent.kernel ; do sleep 1; done diff --git a/06_create_cluster.sh b/06_create_cluster.sh index 5b45a8de4..65a4e6a6d 100755 --- a/06_create_cluster.sh +++ b/06_create_cluster.sh @@ -58,20 +58,6 @@ if [ ! -d ocp ]; then generate_ocp_install_config ocp fi -# Make sure Ironic is up -export OS_TOKEN=fake-token -export OS_URL=http://localhost:6385 - -wait_for_json ironic \ - "${OS_URL}/v1/nodes" \ - 20 \ - -H "Accept: application/json" -H "Content-Type: application/json" -H "User-Agent: wait-for-json" -H "X-Auth-Token: $OS_TOKEN" - -if [ $(sudo podman ps | grep -w -e "ironic-api$" -e "ironic-conductor$" -e "ironic-inspector$" -e "dnsmasq" -e "httpd" | wc -l) != 5 ]; then - echo "Can't find required containers" - exit 1 -fi - # Call openshift-installer to deploy the bootstrap node and masters create_cluster ocp diff --git a/common.sh b/common.sh index 12f9fc501..298a0a39d 100644 --- a/common.sh +++ b/common.sh @@ -47,7 +47,7 @@ export NUM_MASTERS=${NUM_MASTERS:-"3"} export NUM_WORKERS=${NUM_WORKERS:-"1"} export VM_EXTRADISKS=${VM_EXTRADISKS:-"false"} -export RHCOS_INSTALLER_IMAGE_URL="https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.2/420.8.20190708.2/rhcos-420.8.20190708.2-openstack.qcow2" +export RHCOS_INSTALLER_IMAGE_URL="https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.2/42.80.20190725.1/rhcos-42.80.20190725.1-openstack.qcow2" export RHCOS_IMAGE_URL=${RHCOS_IMAGE_URL:-${RHCOS_INSTALLER_IMAGE_URL}} export RHCOS_IMAGE_FILENAME_LATEST="rhcos-ootpa-latest.qcow2" diff --git a/ironic_hosts.json.example b/ironic_hosts.json.example index 2d9b33c6d..70228ac10 100644 --- a/ironic_hosts.json.example +++ b/ironic_hosts.json.example @@ -8,8 +8,8 @@ "ipmi_username": "root", "ipmi_password": "passw0rd", "ipmi_address": "1.1.1.1", - "deploy_kernel": "http://172.22.0.1/images/ironic-python-agent.kernel", - "deploy_ramdisk": "http://172.22.0.1/images/ironic-python-agent.initramfs" + "deploy_kernel": "http://172.22.0.2/images/ironic-python-agent.kernel", + "deploy_ramdisk": "http://172.22.0.2/images/ironic-python-agent.initramfs" }, "ports": [{ "address": "09:e1:e4:56:44:e5", @@ -28,8 +28,8 @@ "ipmi_username": "root", "ipmi_password": "passw0rd", "ipmi_address": "1.1.1.2", - "deploy_kernel": "http://172.22.0.1/images/ironic-python-agent.kernel", - "deploy_ramdisk": "http://172.22.0.1/images/ironic-python-agent.initramfs" + "deploy_kernel": "http://172.22.0.2/images/ironic-python-agent.kernel", + "deploy_ramdisk": "http://172.22.0.2/images/ironic-python-agent.initramfs" }, "ports": [{ "address": "cb:77:ab:53:9c:30", @@ -48,8 +48,8 @@ "ipmi_username": "root", "ipmi_password": "passw0rd", "ipmi_address": "1.1.1.3", - "deploy_kernel": "http://172.22.0.1/images/ironic-python-agent.kernel", - "deploy_ramdisk": "http://172.22.0.1/images/ironic-python-agent.initramfs" + "deploy_kernel": "http://172.22.0.2/images/ironic-python-agent.kernel", + "deploy_ramdisk": "http://172.22.0.2/images/ironic-python-agent.initramfs" }, "ports": [{ "address": "8e:af:c4:d0:a3:b4", @@ -68,8 +68,8 @@ "ipmi_username": "root", "ipmi_password": "passw0rd", "ipmi_address": "1.1.1.4", - "deploy_kernel": "http://172.22.0.1/images/ironic-python-agent.kernel", - "deploy_ramdisk": "http://172.22.0.1/images/ironic-python-agent.initramfs" + "deploy_kernel": "http://172.22.0.2/images/ironic-python-agent.kernel", + "deploy_ramdisk": "http://172.22.0.2/images/ironic-python-agent.initramfs" }, "ports": [{ "address": "8e:af:c4:d0:a3:b5", @@ -88,8 +88,8 @@ "ipmi_username": "root", "ipmi_password": "passw0rd", "ipmi_address": "1.1.1.5", - "deploy_kernel": "http://172.22.0.1/images/ironic-python-agent.kernel", - "deploy_ramdisk": "http://172.22.0.1/images/ironic-python-agent.initramfs" + "deploy_kernel": "http://172.22.0.2/images/ironic-python-agent.kernel", + "deploy_ramdisk": "http://172.22.0.2/images/ironic-python-agent.initramfs" }, "ports": [{ "address": "8e:af:c4:d0:a3:b6", @@ -108,8 +108,8 @@ "ipmi_username": "root", "ipmi_password": "passw0rd", "ipmi_address": "1.1.1.6", - "deploy_kernel": "http://172.22.0.1/images/ironic-python-agent.kernel", - "deploy_ramdisk": "http://172.22.0.1/images/ironic-python-agent.initramfs" + "deploy_kernel": "http://172.22.0.2/images/ironic-python-agent.kernel", + "deploy_ramdisk": "http://172.22.0.2/images/ironic-python-agent.initramfs" }, "ports": [{ "address": "8e:af:c4:d0:a3:b7", diff --git a/ocp_install_env.sh b/ocp_install_env.sh index 5b0b35ce2..a0c348ff3 100644 --- a/ocp_install_env.sh +++ b/ocp_install_env.sh @@ -8,6 +8,7 @@ export CLUSTER_DOMAIN="${CLUSTER_NAME}.${BASE_DOMAIN}" export SSH_PUB_KEY="${SSH_PUB_KEY:-$(cat $HOME/.ssh/id_rsa.pub)}" export EXTERNAL_SUBNET="192.168.111.0/24" export DNS_VIP=${DNS_VIP:-"192.168.111.2"} +export KNI_INSTALL_FROM_GIT=true # # See https://origin-release.svc.ci.openshift.org/ for release details @@ -15,7 +16,7 @@ export DNS_VIP=${DNS_VIP:-"192.168.111.2"} # The release we default to here is pinned and known to work with the # baremetal platform in openshift-installer # -export OPENSHIFT_RELEASE_IMAGE="${OPENSHIFT_RELEASE_IMAGE:-registry.svc.ci.openshift.org/kni/release:4.2.0-0.ci-2019-07-31-123929-kni.0}" +export OPENSHIFT_RELEASE_IMAGE="${OPENSHIFT_RELEASE_IMAGE:-registry.svc.ci.openshift.org/ocp/release:4.2.0-0.ci-2019-08-05-122243}" function extract_installer() { local release_image @@ -38,7 +39,7 @@ function extract_installer() { function clone_installer() { # Clone repo, if not already present if [[ ! -d $OPENSHIFT_INSTALL_PATH ]]; then - sync_repo_and_patch go/src/github.com/openshift/installer https://github.com/openshift/installer.git + sync_repo_and_patch go/src/github.com/openshift/installer https://github.com/openshift/installer.git https://patch-diff.githubusercontent.com/raw/openshift/installer/pull/2079.patch fi } @@ -78,11 +79,6 @@ platform: dnsVIP: ${DNS_VIP} hosts: $(master_node_map_to_install_config $NUM_MASTERS) - image: - source: "http://172.22.0.1/images/$RHCOS_IMAGE_FILENAME_LATEST" - checksum: $(curl http://172.22.0.1/images/$RHCOS_IMAGE_FILENAME_LATEST.md5sum) - deployKernel: ${deploy_kernel} - deployRamdisk: ${deploy_ramdisk} pullSecret: | $(echo $PULL_SECRET | jq -c .) sshKey: | diff --git a/run_ci.sh b/run_ci.sh index 993b3f019..3860384e2 100755 --- a/run_ci.sh +++ b/run_ci.sh @@ -14,9 +14,13 @@ function getlogs(){ sudo podman logs coreos-downloader > $LOGDIR/coreos-downloader.log sudo podman logs ipa-downloader > $LOGDIR/ipa-downloader.log - # And the VM jornals + # And the VM journals and staticpod container logs for HOST in $(sudo virsh net-dhcp-leases baremetal | grep -o '192.168.111.[0-9]\+') ; do sshpass -p notworking $SSH core@$HOST sudo journalctl > $LOGDIR/$HOST-system.journal || true + sshpass -p notworking $SSH core@$HOST sudo journalctl -u ironic.service > $LOGDIR/$HOST-ironic.journal || true + for c in $(sshpass -p notworking $SSH core@$HOST sudo podman ps -a | grep -e ironic -e downloader -e httpd -e dnsmasq -e mariadb | awk '{print $NF}'); do + sshpass -p notworking $SSH core@$HOST sudo podman logs $c > $LOGDIR/${HOST}-${c}-container.log || true + done done # openshift info