1
1
#! /usr/bin/env bash
2
+
2
3
set -eux
3
4
4
5
# shellcheck disable=SC1091
5
- source lib/logging.sh
6
+ . lib/logging.sh
7
+ # shellcheck disable=SC1091
8
+ . lib/common.sh
6
9
# shellcheck disable=SC1091
7
- source lib/common .sh
10
+ . lib/network .sh
8
11
# shellcheck disable=SC1091
9
- source lib/network .sh
12
+ . lib/releases .sh
10
13
# shellcheck disable=SC1091
11
- source lib/releases.sh
12
- # pre-pull node and container images
14
+ . lib/image_prepull.sh
13
15
# shellcheck disable=SC1091
14
- source lib/image_prepull .sh
16
+ . lib/utils .sh
15
17
16
18
# cleanup ci config file if it exists from earlier run
17
19
rm -f " ${CI_CONFIG_FILE} "
@@ -30,7 +32,7 @@ elif grep -q svm /proc/cpuinfo; then
30
32
fi
31
33
32
34
# Clean, copy and extract local IPA
33
- if [[ " ${USE_LOCAL_IPA} " == " true" ]]; then
35
+ if [[ " ${USE_LOCAL_IPA} " = " true" ]]; then
34
36
sudo rm -f " ${IRONIC_DATA_DIR} /html/images/ironic-python-agent*"
35
37
sudo cp " ${LOCAL_IPA_PATH} /ironic-python-agent.tar" " ${IRONIC_DATA_DIR} /html/images"
36
38
sudo tar --extract --file " ${IRONIC_DATA_DIR} /html/images/ironic-python-agent.tar" \
@@ -94,7 +96,7 @@ init_minikube()
94
96
fi
95
97
}
96
98
97
- if [[ " ${EPHEMERAL_CLUSTER} " == " minikube" ]]; then
99
+ if [[ " ${EPHEMERAL_CLUSTER} " = " minikube" ]]; then
98
100
init_minikube
99
101
fi
100
102
@@ -137,19 +139,19 @@ EOF
137
139
sudo virsh pool-autostart default
138
140
fi
139
141
140
- if [[ " ${OS} " == " ubuntu" ]]; then
142
+ if [[ " ${OS} " = " ubuntu" ]]; then
141
143
# source ubuntu_bridge_network_configuration.sh
142
144
# shellcheck disable=SC1091
143
145
source ubuntu_bridge_network_configuration.sh
144
146
# shellcheck disable=SC1091
145
147
source disable_apparmor_driver_libvirtd.sh
146
148
else
147
- if [[ " ${MANAGE_PRO_BRIDGE} " == " y" ]]; then
149
+ if [[ " ${MANAGE_PRO_BRIDGE} " = " y" ]]; then
148
150
# Adding an IP address in the libvirt definition for this network results in
149
151
# dnsmasq being run, we don't want that as we have our own dnsmasq, so set
150
152
# the IP address here
151
153
if [[ ! -e /etc/NetworkManager/system-connections/provisioning.nmconnection ]]; then
152
- if [[ " ${BARE_METAL_PROVISIONER_SUBNET_IPV6_ONLY} " == " true" ]]; then
154
+ if [[ " ${BARE_METAL_PROVISIONER_SUBNET_IPV6_ONLY} " = " true" ]]; then
153
155
sudo tee -a /etc/NetworkManager/system-connections/provisioning.nmconnection << EOF
154
156
[connection]
155
157
id=provisioning
206
208
sudo nmcli con up " ${PRO_IF} "
207
209
fi
208
210
209
- if [[ " ${MANAGE_INT_BRIDGE} " == " y" ]]; then
211
+ if [[ " ${MANAGE_INT_BRIDGE} " = " y" ]]; then
210
212
if [[ " $( nmcli con show) " != * " external" * ]]; then
211
213
sudo tee /etc/NetworkManager/system-connections/external.nmconnection << EOF
212
214
[connection]
250
252
fi
251
253
252
254
# Restart the libvirt network so it applies an ip to the bridge
253
- if [[ " ${MANAGE_EXT_BRIDGE} " == " y" ]]; then
255
+ if [[ " ${MANAGE_EXT_BRIDGE} " = " y" ]]; then
254
256
sudo virsh net-destroy external
255
257
sudo virsh net-start external
256
258
if [[ -n " ${INT_IF} " ]]; then
@@ -266,7 +268,7 @@ ANSIBLE_FORCE_COLOR=true "${ANSIBLE}-playbook" \
266
268
-b vm-setup/firewall.yml
267
269
268
270
# FIXME(stbenjam): ansbile firewalld module doesn't seem to be doing the right thing
269
- if [[ " ${USE_FIREWALLD} " == " True" ]]; then
271
+ if [[ " ${USE_FIREWALLD} " = " True" ]]; then
270
272
sudo firewall-cmd --zone=libvirt --change-interface=provisioning
271
273
sudo firewall-cmd --zone=libvirt --change-interface=external
272
274
fi
281
283
reg_state=$( sudo " ${CONTAINER_RUNTIME} " inspect registry --format " {{.State.Status}}" || echo " error" )
282
284
283
285
# ubuntu_install_requirements.sh script restarts docker daemon which causes local registry container to be in exited state.
284
- if [[ " ${reg_state} " == " exited" ]]; then
286
+ if [[ " ${reg_state} " = " exited" ]]; then
285
287
sudo " ${CONTAINER_RUNTIME} " start registry
286
288
elif [[ " ${reg_state} " != " running" ]]; then
287
289
sudo " ${CONTAINER_RUNTIME} " rm registry -f || true
@@ -293,7 +295,7 @@ detect_mismatch()
293
295
{
294
296
local LOCAL_IMAGE=" $1 "
295
297
local REPO_PATH=" $2 "
296
- if [[ -z " ${LOCAL_IMAGE} " ]] || [[ " ${LOCAL_IMAGE} " == " ${REPO_PATH} " ]]; then
298
+ if [[ -z " ${LOCAL_IMAGE} " ]] || [[ " ${LOCAL_IMAGE} " = " ${REPO_PATH} " ]]; then
297
299
echo " Local image: ${LOCAL_IMAGE} and repo path: ${REPO_PATH} are matching!"
298
300
else
299
301
echo " There is a mismatch between LOCAL_IMAGE:${LOCAL_IMAGE} and IMAGE_PATH:${REPO_PATH} "
@@ -330,11 +332,11 @@ clone_repo "${IRSOREPO}" "${IRSOBRANCH}" "${IRSOPATH}" "${IRSOCOMMIT}"
330
332
# need to clone the repo.
331
333
# There is no need to keep the PATH and the IMAGE vars in sync as there
332
334
# is no other use of the path variable than cloning
333
- if [[ " ${MARIADB_LOCAL_IMAGE:- } " == " ${MARIADB_IMAGE_PATH} " ]]; then
335
+ if [[ " ${MARIADB_LOCAL_IMAGE:- } " = " ${MARIADB_IMAGE_PATH} " ]]; then
334
336
clone_repo " ${MARIADB_IMAGE_REPO} " " ${MARIADB_IMAGE_BRANCH} " " ${MARIADB_IMAGE_PATH} " " ${MARIADB_IMAGE_COMMIT} "
335
337
fi
336
338
337
- if [[ " ${IRONIC_LOCAL_IMAGE:- } " == " ${IRONIC_IMAGE_PATH} " ]]; then
339
+ if [[ " ${IRONIC_LOCAL_IMAGE:- } " = " ${IRONIC_IMAGE_PATH} " ]]; then
338
340
clone_repo " ${IRONIC_IMAGE_REPO} " " ${IRONIC_IMAGE_BRANCH} " " ${IRONIC_IMAGE_PATH} " " ${IRONIC_IMAGE_COMMIT} "
339
341
fi
340
342
@@ -352,7 +354,7 @@ for IMAGE_VAR in $(env | grep "_LOCAL_IMAGE=" | grep -o "^[^=]*"); do
352
354
IMAGE_DATE=" $( date -u +%y_%j_%H%M) "
353
355
354
356
# Support building ironic-image from source
355
- if [[ " ${IMAGE_VAR/ _LOCAL_IMAGE} " == " IRONIC" ]] && [[ ${IRONIC_FROM_SOURCE:- } = = " true" ]]; then
357
+ if [[ " ${IMAGE_VAR/ _LOCAL_IMAGE} " = " IRONIC" ]] && [[ ${IRONIC_FROM_SOURCE:- } = " true" ]]; then
356
358
# NOTE(rpittau): to customize the source origin we need to copy the source code we
357
359
# want to use into the sources directory under the ironic-image repository.
358
360
for CODE_SOURCE_VAR in $( env | grep -E ' ^IRONIC_SOURCE=|^IRONIC_INSPECTOR_SOURCE=|^SUSHY_SOURCE=' | grep -o " ^[^=]*" ) ; do
@@ -368,7 +370,7 @@ for IMAGE_VAR in $(env | grep "_LOCAL_IMAGE=" | grep -o "^[^=]*"); do
368
370
-t " ${IMAGE_URL} :latest" -t " ${IMAGE_URL} :${IMAGE_GIT_HASH} _${IMAGE_DATE} " . -f ./Dockerfile
369
371
370
372
# TODO: Do we want to support CAPI in dev-env? CI just pulls it anyways ...
371
- elif [[ " ${IMAGE_VAR/ _LOCAL_IMAGE} " == " CAPI" ]]; then
373
+ elif [[ " ${IMAGE_VAR/ _LOCAL_IMAGE} " = " CAPI" ]]; then
372
374
CAPI_GO_VERSION=$( grep " GO_VERSION ?= [0-9].*" Makefile | sed -e ' s/GO_VERSION ?= //g' )
373
375
# shellcheck disable=SC2016
374
376
CAPI_BASEIMAGE=$( grep " GO_CONTAINER_IMAGE ?=" Makefile | sed -e ' s/GO_CONTAINER_IMAGE ?= //g' -e ' s/$(GO_VERSION)//g' )
@@ -382,7 +384,7 @@ for IMAGE_VAR in $(env | grep "_LOCAL_IMAGE=" | grep -o "^[^=]*"); do
382
384
fi
383
385
384
386
cd - || exit
385
- if [[ " ${CONTAINER_RUNTIME} " == " podman" ]]; then
387
+ if [[ " ${CONTAINER_RUNTIME} " = " podman" ]]; then
386
388
sudo " ${CONTAINER_RUNTIME} " push --tls-verify=false " ${IMAGE_URL} "
387
389
else
388
390
sudo " ${CONTAINER_RUNTIME} " push " ${IMAGE_URL} "
405
407
406
408
# IRONIC_IMAGE is also used in this script so when it is built locally and
407
409
# consequently unset, it has to be redefined for local use
408
- if [[ " ${BUILD_IRONIC_IMAGE_LOCALLY:- } " == " true" ]] || [[ -n " ${IRONIC_LOCAL_IMAGE:- } " ]]; then
410
+ if [[ " ${BUILD_IRONIC_IMAGE_LOCALLY:- } " = " true" ]] || [[ -n " ${IRONIC_LOCAL_IMAGE:- } " ]]; then
409
411
IRONIC_IMAGE=" ${REGISTRY} /localimages/$( basename " ${IRONIC_LOCAL_IMAGE} " ) "
410
412
export IRONIC_IMAGE
411
413
fi
@@ -423,15 +425,15 @@ for IMAGE_VAR in $(env | grep -v "_LOCAL_IMAGE=" | grep "_IMAGE=" | grep -o "^[^
423
425
LOCAL_IMAGE=" ${REGISTRY} /localimages/${IMAGE_NAME%@* } "
424
426
sudo " ${CONTAINER_RUNTIME} " tag " ${IMAGE} " " ${LOCAL_IMAGE} "
425
427
426
- if [[ " ${CONTAINER_RUNTIME} " == " podman" ]]; then
428
+ if [[ " ${CONTAINER_RUNTIME} " = " podman" ]]; then
427
429
sudo " ${CONTAINER_RUNTIME} " push --tls-verify=false " ${LOCAL_IMAGE} "
428
430
else
429
431
sudo " ${CONTAINER_RUNTIME} " push " ${LOCAL_IMAGE} "
430
432
fi
431
433
done
432
434
433
435
# Start httpd-infra container
434
- if [[ " ${OS} " == " ubuntu" ]]; then
436
+ if [[ " ${OS} " = " ubuntu" ]]; then
435
437
# shellcheck disable=SC2086
436
438
sudo " ${CONTAINER_RUNTIME} " run -d --net host --privileged --name httpd-infra ${POD_NAME_INFRA} \
437
439
-v " ${IRONIC_DATA_DIR} " :/shared --entrypoint /bin/runhttpd \
0 commit comments