1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#!/bin/bash
set -o xtrace
set -o errexit
set -o pipefail
# Enable unbuffered output for Ansible in Jenkins.
export PYTHONUNBUFFERED=1
function prepare_images {
if [[ "${BUILD_IMAGE}" == "False" ]]; then
return
fi
if [[ $SCENARIO != "bifrost" ]]; then
GATE_IMAGES="^cron,^fluentd,^glance,^haproxy,^keepalived,^keystone,^kolla-toolbox,^mariadb,^memcached,^neutron,^nova-,^openvswitch,^rabbitmq,^horizon,^heat,^placement"
else
GATE_IMAGES="bifrost"
fi
if [[ $SCENARIO == "cephadm" ]]; then
GATE_IMAGES+=",^cinder,^redis"
fi
if [[ $SCENARIO == "cells" ]]; then
GATE_IMAGES+=",^proxysql"
fi
if [[ $SCENARIO == "zun" ]]; then
GATE_IMAGES+=",^zun,^kuryr,^etcd,^cinder,^iscsid"
if [[ $BASE_DISTRO != "centos" && $BASE_DISTRO != "rocky" ]]; then
GATE_IMAGES+=",^tgtd"
fi
fi
if [[ $SCENARIO == "scenario_nfv" ]]; then
GATE_IMAGES+=",^aodh,^tacker,^mistral,^redis,^barbican"
fi
if [[ $SCENARIO == "ironic" ]]; then
GATE_IMAGES+=",^dnsmasq,^ironic,^iscsid,^prometheus"
fi
if [[ $SCENARIO == "magnum" ]]; then
GATE_IMAGES+=",^designate,^magnum,^trove"
fi
if [[ $SCENARIO == "octavia" ]]; then
GATE_IMAGES+=",^redis,^octavia"
fi
if [[ $SCENARIO == "masakari" ]]; then
GATE_IMAGES+=",^masakari-,^hacluster-"
fi
if [[ $SCENARIO == "swift" ]]; then
GATE_IMAGES+=",^swift"
fi
if [[ $SCENARIO == "ovn" ]]; then
GATE_IMAGES+=",^redis,^octavia,^ovn"
fi
if [[ $SCENARIO == "mariadb" ]]; then
GATE_IMAGES="^cron,^fluentd,^haproxy,^keepalived,^kolla-toolbox,^mariadb"
fi
if [[ $SCENARIO == "lets-encrypt" ]]; then
GATE_IMAGES+=",^letsencrypt,^haproxy"
fi
if [[ $SCENARIO == "prometheus-opensearch" ]]; then
GATE_IMAGES="^cron,^fluentd,^grafana,^haproxy,^keepalived,^kolla-toolbox,^mariadb,^memcached,^opensearch,^prometheus,^rabbitmq"
fi
if [[ $SCENARIO == "venus" ]]; then
GATE_IMAGES="^cron,^opensearch,^fluentd,^haproxy,^keepalived,^keystone,^kolla-toolbox,^mariadb,^memcached,^rabbitmq,^venus"
fi
if [[ $SCENARIO == "skyline" ]]; then
GATE_IMAGES+=",^skyline"
fi
sudo tee -a /etc/kolla/kolla-build.conf <<EOF
[DEFAULT]
engine = ${CONTAINER_ENGINE}
EOF
if [[ $BASE_DISTRO == "debian" || $BASE_DISTRO == "ubuntu" ]]; then
sudo tee -a /etc/kolla/kolla-build.conf <<EOF
base_image = quay.io/opendevmirror/${BASE_DISTRO}
EOF
fi
if [[ $BASE_DISTRO_TAG != "" ]]; then
sudo tee -a /etc/kolla/kolla-build.conf <<EOF
base_tag = ${BASE_DISTRO_TAG}
EOF
fi
sudo tee -a /etc/kolla/kolla-build.conf <<EOF
[profiles]
gate = ${GATE_IMAGES}
EOF
sudo mkdir -p /tmp/logs/build
sudo mkdir -p /opt/kolla_registry
sudo $CONTAINER_ENGINE run -d --net=host -e REGISTRY_HTTP_ADDR=0.0.0.0:4000 --restart=always -v /opt/kolla_registry/:/var/lib/registry --name registry quay.io/opendevmirror/registry:2
python3 -m venv ~/kolla-venv
source ~/kolla-venv/bin/activate
if [[ "$CONTAINER_ENGINE" == "docker" ]]; then
pip install "${KOLLA_SRC_DIR}" "docker<7" "requests<2.32"
else
pip install "${KOLLA_SRC_DIR}" "podman"
fi
sudo ~/kolla-venv/bin/kolla-build
# NOTE(yoctozepto): due to debian buster we push after images are built
# see https://github.com/docker/for-linux/issues/711
if [[ "debian" == $BASE_DISTRO ]]; then
for img in $(sudo ${CONTAINER_ENGINE} image ls --format '{{ .Repository }}:{{ .Tag }}' | grep lokolla/); do
sudo $CONTAINER_ENGINE push $img;
done
fi
deactivate
}
RAW_INVENTORY=/etc/kolla/inventory
source $KOLLA_ANSIBLE_VENV_PATH/bin/activate
kolla-ansible -i ${RAW_INVENTORY} -vvv bootstrap-servers &> /tmp/logs/ansible/bootstrap-servers
deactivate
prepare_images
|