airshipctl/tools/deployment/30_deploy_controlplane.sh
Andrii Ostapenko 3f559c3c1e
Implements custom QCOW delivery
With this commit QCOW images are pulled as a docker image to new
qcow-bundle container within ironic pod and copy them to shared ironic
volume to be served to hosts.

Also squashed with [0], manifests are adjusted to consume new QCOWs and
old QCOW related funtionality is removed.

[0] https://review.opendev.org/c/airship/airshipctl/+/776270

Co-Authored-By: Alexey Odinokov <aodinokov@mirantis.com>
Co-Authored-By: Craig Anderson <craig.anderson@att.com>

Change-Id: I958184b34ae94206bc5e87993e9287587b6a11d9
Signed-off-by: Andrii Ostapenko <andrii.ostapenko@att.com>
2021-02-23 15:43:45 -06:00

50 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env 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
EPHEMERAL_DOMAIN_NAME="air-ephemeral"
export KUBECONFIG=${KUBECONFIG:-"$HOME/.airship/kubeconfig"}
export KUBECONFIG_TARGET_CONTEXT=${KUBECONFIG_TARGET_CONTEXT:-"target-cluster"}
# TODO (dukov) this is needed due to sushy tools inserts cdrom image to
# all vms. This can be removed once sushy tool is fixed
echo "Ensure all cdrom images are ejected."
for vm in $(sudo virsh list --all --name |grep -v ${EPHEMERAL_DOMAIN_NAME})
do
sudo virsh domblklist $vm |
awk 'NF==2 {print $1}' |
grep -v Target |
xargs -I{} sudo virsh change-media $vm {} --eject || :
done
echo "Create target k8s cluster resources"
airshipctl phase run controlplane-ephemeral --debug
echo "List all nodes in target cluster"
kubectl \
--kubeconfig $KUBECONFIG \
--context $KUBECONFIG_TARGET_CONTEXT \
--request-timeout 10s \
get node
echo "List all pods in target cluster"
kubectl \
--kubeconfig $KUBECONFIG \
--context $KUBECONFIG_TARGET_CONTEXT \
--request-timeout 10s \
get pods \
--all-namespaces