aboutsummaryrefslogtreecommitdiff
path: root/tests/setup_gate.sh
blob: 380cd68c6cf5aa0f0778be361915ffc972ba85ab (plain)
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