@@ -23,13 +23,15 @@ SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
23
23
IP_ADRESS_SUFFIX=${IP_ADRESS_SUFFIX:- 100}
24
24
IP=${IP:- " ${EDPM_COMPUTE_NETWORK_IP% .* } .${IP_ADRESS_SUFFIX} " }
25
25
OS_NET_CONFIG_IFACE=${OS_NET_CONFIG_IFACE:- " nic1" }
26
+ CLOUD_DOMAIN=${CLOUD_DOMAIN:- localdomain}
26
27
GATEWAY=${GATEWAY:- " ${EDPM_COMPUTE_NETWORK_IP} " }
27
28
OUTPUT_DIR=${OUTPUT_DIR:- " ${SCRIPTPATH} /../../out/edpm/" }
28
29
SSH_KEY_FILE=${SSH_KEY_FILE:- " ${OUTPUT_DIR} /ansibleee-ssh-key-id_rsa" }
29
30
SSH_OPT=" -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i $SSH_KEY_FILE "
30
31
REPO_SETUP_CMDS=${REPO_SETUP_CMDS:- " ${MY_TMP_DIR} /standalone_repos" }
31
32
CMDS_FILE=${CMDS_FILE:- " ${MY_TMP_DIR} /standalone_cmds" }
32
33
SKIP_TRIPLEO_REPOS=${SKIP_TRIPLEO_REPOS:= " false" }
34
+ TRIPLEO_NETWORKING=${TRIPLEO_NETWORKING:- true}
33
35
MANILA_ENABLED=${MANILA_ENABLED:- true}
34
36
OCTAVIA_ENABLED=${OCTAVIA_ENABLED:- false}
35
37
TELEMETRY_ENABLED=${TELEMETRY_ENABLED:- true}
@@ -39,43 +41,88 @@ if [[ ! -f $SSH_KEY_FILE ]]; then
39
41
exit 1
40
42
fi
41
43
44
+ sudo dnf install -y python-jinja2
42
45
source ${SCRIPTPATH} /common.sh
43
46
47
+ # Clock synchronization is important for both Ceph and OpenStack services, so both ceph deploy and tripleo deploy commands will make use of chrony to ensure the clock is properly in sync.
48
+ # We'll use the NTP_SERVER environmental variable to define the NTP server to use, e.g.:
49
+ # export NTP_SERVER=pool.ntp.org
50
+
51
+ if [ $EDPM_COMPUTE_CELLS -eq 2 ] || [ $EDPM_COMPUTE_CELLS -gt 3 ] || [ $EDPM_COMPUTE_CELLS -eq 0 ] ; then
52
+ echo " Only a main cell0 plus a 2 additional compute cells supported yet!"
53
+ exit 1
54
+ fi
55
+
56
+ # TODO(bogdando): multi-cell with ceph HCI
57
+ if [ $EDPM_COMPUTE_CELLS -eq 3 ] && [[ " $EDPM_COMPUTE_CEPH_ENABLED " == " true" ]]; then
58
+ echo " Ceph storage is not supported for multi-cell setup yet!"
59
+ exit 1
60
+ fi
61
+
44
62
if [[ -e /run/systemd/resolve/resolv.conf ]]; then
45
63
HOST_PRIMARY_RESOLV_CONF_ENTRY=$( cat /run/systemd/resolve/resolv.conf | grep ^nameserver | grep -v " ${EDPM_COMPUTE_NETWORK_IP% .* } " | head -n1 | cut -d' ' -f2)
46
64
else
47
65
HOST_PRIMARY_RESOLV_CONF_ENTRY=${HOST_PRIMARY_RESOLV_CONF_ENTRY:- $GATEWAY }
48
66
fi
49
67
50
- if [[ ! -f $CMDS_FILE ]]; then
51
- cat << EOF > $CMDS_FILE
68
+ set +x
69
+ cat << EOF > $MY_TMP_DIR /.standalone_env_file
70
+ export RH_REGISTRY_USER="$REGISTRY_USER "
71
+ export RH_REGISTRY_PWD="$RH_REGISTRY_PWD "
72
+ EOF
73
+ chmod 0600 $MY_TMP_DIR /.standalone_env_file
74
+
75
+ cat << EOF > $CMDS_FILE
76
+ . \$ HOME/.standalone_env_file
77
+
52
78
set -ex
53
79
sudo dnf install -y podman python3-tripleoclient util-linux lvm2
54
80
55
81
sudo hostnamectl set-hostname undercloud.localdomain
56
82
sudo hostnamectl set-hostname undercloud.localdomain --transient
57
83
84
+ cat >\$ HOME/nova_noceph.yaml <<__EOF__
85
+ parameter_defaults:
86
+ NovaEnableRbdBackend: false
87
+ __EOF__
88
+
58
89
export HOST_PRIMARY_RESOLV_CONF_ENTRY=${HOST_PRIMARY_RESOLV_CONF_ENTRY}
59
90
export INTERFACE_MTU=${INTERFACE_MTU:- 1500}
60
- export NTP_SERVER=${NTP_SERVER:- " clock.corp.redhat.com " }
91
+ export NTP_SERVER=${NTP_SERVER:- " pool.ntp.org " }
61
92
export IP=${IP}
62
93
export GATEWAY=${GATEWAY}
63
- export EDPM_COMPUTE_CEPH_ENABLED=${EDPM_COMPUTE_CEPH_ENABLED:- false}
64
- export CEPH_ARGS="${CEPH_ARGS:- -e \$ HOME/ deployed_ceph.yaml -e / usr/ share/ openstack-tripleo-heat-templates/ environments/ cephadm/ cephadm.yaml} "
94
+ export EDPM_COMPUTE_CEPH_ENABLED=${COMPUTE_CEPH_ENABLED:- false}
95
+ export EDPM_COMPUTE_CEPH_NOVA=${COMPUTE_CEPH_NOVA:- false}
96
+ export CEPH_ARGS="${CEPH_ARGS:- -e \$ HOME/ deployed_ceph.yaml -e / usr/ share/ openstack-tripleo-heat-templates/ environments/ cephadm/ cephadm-rbd-only.yaml} "
97
+ [[ "\$ EDPM_COMPUTE_CEPH_NOVA" == "false" ]] && export CEPH_ARGS="\$ {CEPH_ARGS} -e \$ HOME/nova_noceph.yaml"
98
+ export EDPM_COMPUTE_CELLS=${COMPUTE_CELLS:- 1}
65
99
export MANILA_ENABLED=${MANILA_ENABLED:- true}
66
100
export OCTAVIA_ENABLED=${OCTAVIA_ENABLED}
67
101
export TELEMETRY_ENABLED=${TELEMETRY_ENABLED:- true}
68
102
103
+ set +x
69
104
if [[ -f \$ HOME/containers-prepare-parameters.yaml ]]; then
70
105
echo "Using existing containers-prepare-parameters.yaml - contents:"
71
106
cat \$ HOME/containers-prepare-parameters.yaml
72
107
else
108
+ login_args=" "
109
+ [ "\$ RH_REGISTRY_USER" ] && [ -n "\$ RH_REGISTRY_PWD" ] && login_args="--enable-registry-login"
73
110
openstack tripleo container image prepare default \
74
- --output-env-file \$ HOME/containers-prepare-parameters.yaml
111
+ --output-env-file \$ HOME/containers-prepare-parameters.yaml \$ {login_args}
75
112
# Use wallaby el9 container images
76
113
sed -i 's|quay.io/tripleowallaby$|quay.io/tripleowallabycentos9|' \$ HOME/containers-prepare-parameters.yaml
77
114
fi
78
115
116
+ if [ "\$ RH_REGISTRY_USER" ] && [ -n "\$ RH_REGISTRY_PWD" ]; then
117
+ grep -q ContainerImageRegistryCredentials \$ HOME/containers-prepare-parameters.yaml || \
118
+ cat >> \$ HOME/containers-prepare-parameters.yaml <<__EOF__
119
+ ContainerImageRegistryCredentials:
120
+ registry.redhat.io:
121
+ \$ {RH_REGISTRY_USER}: \$ RH_REGISTRY_PWD
122
+ __EOF__
123
+ fi
124
+ set -x
125
+
79
126
# Use os-net-config to add VLAN interfaces which connect edpm-compute-0 to the isolated networks configured by install_yamls.
80
127
sudo mkdir -p /etc/os-net-config
81
128
@@ -84,6 +131,7 @@ network:
84
131
config: disabled
85
132
__EOF__
86
133
134
+ cell=\$ (( IP_ADRESS_SUFFIX - 100 ))
87
135
sudo systemctl enable network
88
136
sudo cp /tmp/net_config.yaml /etc/os-net-config/config.yaml
89
137
sudo os-net-config -c /etc/os-net-config/config.yaml
@@ -97,14 +145,15 @@ popd
97
145
# is not true, the script will return 0 and cause an error in CI
98
146
exit 0
99
147
EOF
100
- fi
101
148
102
149
while [[ $( ssh -o BatchMode=yes -o ConnectTimeout=5 $SSH_OPT root@$IP echo ok) != " ok" ]]; do
103
150
sleep 5
104
151
true
105
152
done
106
153
107
154
# Render Jinja2 files
155
+ # FIXME: .99 undercloud IP cannot be changed https://review.rdoproject.org/cgit/rdo-jobs/tree/playbooks/data_plane_adoption/setup_tripleo_os_net_config.yaml#n6
156
+ # TODO(bogdnado): introduce CLOUD_USER var to remove all hardcoded 'zuul' values from these scripts
108
157
PRIMARY_RESOLV_CONF_ENTRY=${HOST_PRIMARY_RESOLV_CONF_ENTRY}
109
158
J2_VARS_FILE=$( mktemp --suffix=" .yaml" --tmpdir=" ${MY_TMP_DIR} " )
110
159
cat << EOF > ${J2_VARS_FILE}
@@ -117,39 +166,93 @@ ip_address_suffix: ${IP_ADRESS_SUFFIX}
117
166
interface_mtu: ${INTERFACE_MTU:- 1500}
118
167
ntp_server: ${NTP_SERVER}
119
168
gateway_ip: ${GATEWAY}
169
+ manage_default_route: ${TRIPLEO_NETWORKING}
120
170
dns_server: ${PRIMARY_RESOLV_CONF_ENTRY}
121
- user_home: ${HOME}
171
+ user_home: /home/zuul
122
172
EOF
123
173
124
- jinja2_render tripleo/net_config.j2 " ${J2_VARS_FILE} " > ${MY_TMP_DIR} /net_config.yaml
125
- jinja2_render tripleo/undercloud.conf.j2 " ${J2_VARS_FILE} " > ${MY_TMP_DIR} /undercloud.conf
174
+ jinja2_render ${SCRIPTPATH} /../tripleo/undercloud.conf.j2 " ${J2_VARS_FILE} " > ${MY_TMP_DIR} /undercloud.conf
175
+ jinja2_render ${SCRIPTPATH} /../tripleo/net_config.j2 " ${J2_VARS_FILE} " > ${MY_TMP_DIR} /net_config.yaml
176
+ # NOTE(bogdando): no computes supported in the cetnral overcloud stack in OSP.
177
+ # Reduced footprint for adoption dev envs: no HA controllers, an all-in-one host in the cell 2
178
+ ind=0
179
+ if [ $EDPM_COMPUTE_CELLS -gt 1 ]; then
180
+ for cell in $( seq 0 $(( EDPM_COMPUTE_CELLS - 1 )) ) ; do
181
+ aio_count=0
182
+ contr_count=0
183
+ cell_contr_count=1
184
+ comp_count=1
185
+ if [ $cell -eq 0 ]; then
186
+ contr_count=1
187
+ cell_contr_count=0
188
+ comp_count=0
189
+ fi
190
+ if [ $cell -ge 2 ]; then
191
+ aio_count=1
192
+ cell_contr_count=0
193
+ comp_count=0
194
+ fi
195
+
196
+ J2_VARS_FILE=$( mktemp --suffix=" .yaml" --tmpdir=" ${MY_TMP_DIR} " )
197
+ cat << EOF > ${J2_VARS_FILE}
198
+ ---
199
+ cell: ${cell}
200
+ ind: ${ind}
201
+ max_cells: ${EDPM_COMPUTE_CELLS}
202
+ cloud_domain: ${CLOUD_DOMAIN}
203
+ aio_count: ${aio_count}
204
+ comp_count: ${comp_count}
205
+ cell_contr_count: ${cell_contr_count}
206
+ contr_count: ${contr_count}
207
+ gateway_ip: ${GATEWAY}
208
+ dns_server: ${PRIMARY_RESOLV_CONF_ENTRY}
209
+ tripleo_networking: ${TRIPLEO_NETWORKING}
210
+ EOF
211
+ jinja2_render " ${SCRIPTPATH} /../tripleo/network_data_cell.j2" " ${J2_VARS_FILE} " > ${MY_TMP_DIR} /network_data${cell} .yaml
212
+ jinja2_render " ${SCRIPTPATH} /../tripleo/vips_data_cell.j2" " ${J2_VARS_FILE} " > ${MY_TMP_DIR} /vips_data${cell} .yaml
213
+ jinja2_render " ${SCRIPTPATH} /../tripleo/overcloud_services_cell.j2" " ${J2_VARS_FILE} " > ${MY_TMP_DIR} /overcloud_services_cell${cell} .yaml
214
+ jinja2_render " ${SCRIPTPATH} /../tripleo/config-download-multistack.j2" " ${J2_VARS_FILE} " > ${MY_TMP_DIR} /config-download-cell${cell} .yaml
215
+ ind=$(( ind + 1 ))
216
+ done
217
+ fi
126
218
127
219
# Copying files
128
- scp $SSH_OPT $REPO_SETUP_CMDS root@$IP :/tmp/repo-setup.sh
220
+ [ -f $REPO_SETUP_CMDS ] && scp $SSH_OPT $REPO_SETUP_CMDS root@$IP :/tmp/repo-setup.sh
221
+ scp $SSH_OPT $MY_TMP_DIR /.standalone_env_file zuul@$IP :.standalone_env_file
129
222
scp $SSH_OPT $CMDS_FILE zuul@$IP :/tmp/undercloud-deploy-cmds.sh
130
223
scp $SSH_OPT ${MY_TMP_DIR} /net_config.yaml root@$IP :/tmp/net_config.yaml
131
- scp $SSH_OPT tripleo/tripleo_install.sh zuul@$IP :$HOME /tripleo_install.sh
132
- scp $SSH_OPT tripleo/hieradata_overrides_undercloud.yaml zuul@$IP :$HOME /hieradata_overrides_undercloud.yaml
133
- scp $SSH_OPT tripleo/undercloud-parameter-defaults.yaml zuul@$IP :$HOME /undercloud-parameter-defaults.yaml
134
- scp $SSH_OPT ${MY_TMP_DIR} /undercloud.conf zuul@$IP :$HOME /undercloud.conf
135
- scp $SSH_OPT tripleo/network_data.yaml zuul@$IP :$HOME /network_data.yaml
136
- scp $SSH_OPT tripleo/vips_data.yaml zuul@$IP :$HOME /vips_data.yaml
137
- scp $SSH_OPT tripleo/config-download.yaml zuul@$IP :$HOME /config-download.yaml
138
- scp $SSH_OPT tripleo/config-download-networker.yaml zuul@$IP :$HOME /config-download-networker.yaml
139
- scp $SSH_OPT tripleo/overcloud_roles.yaml zuul@$IP :$HOME /overcloud_roles.yaml
140
- scp $SSH_OPT tripleo/overcloud_services.yaml zuul@$IP :$HOME /overcloud_services.yaml
141
- scp $SSH_OPT tripleo/ansible_config.cfg zuul@$IP :$HOME /ansible_config.cfg
224
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/tripleo_install.sh zuul@$IP :tripleo_install.sh
225
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/hieradata_overrides_undercloud.yaml zuul@$IP :hieradata_overrides_undercloud.yaml
226
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/undercloud-parameter-defaults.yaml zuul@$IP :undercloud-parameter-defaults.yaml
227
+ scp $SSH_OPT ${MY_TMP_DIR} /undercloud.conf zuul@$IP :undercloud.conf
228
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/config-download-networker.yaml zuul@$IP :config-download-networker.yaml
229
+ if [ $EDPM_COMPUTE_CELLS -gt 1 ]; then
230
+ for cell in $( seq 0 $(( EDPM_COMPUTE_CELLS - 1 )) ) ; do
231
+ scp $SSH_OPT ${MY_TMP_DIR} /vips_data${cell} .yaml zuul@$IP :vips_data${cell} .yaml
232
+ scp $SSH_OPT ${MY_TMP_DIR} /network_data${cell} .yaml zuul@$IP :network_data${cell} .yaml
233
+ scp $SSH_OPT ${MY_TMP_DIR} /overcloud_services_cell${cell} .yaml zuul@$IP :overcloud_services_cell${cell} .yaml
234
+ scp $SSH_OPT ${MY_TMP_DIR} /config-download-cell${cell} .yaml zuul@$IP :config-download-cell${cell} .yaml
235
+ done
236
+ else
237
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/vips_data.yaml zuul@$IP :vips_data.yaml
238
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/network_data.yaml zuul@$IP :network_data.yaml
239
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/overcloud_services.yaml zuul@$IP :overcloud_services.yaml
240
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/config-download.yaml zuul@$IP :config-download.yaml
241
+ fi
242
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/overcloud_roles.yaml zuul@$IP :overcloud_roles.yaml
243
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/overcloud_services.yaml zuul@$IP :overcloud_services.yaml
244
+ scp $SSH_OPT ${SCRIPTPATH} /../tripleo/ansible_config.cfg zuul@$IP :ansible_config.cfg
142
245
if [[ " $EDPM_COMPUTE_CEPH_ENABLED " == " true" ]]; then
143
- scp $SSH_OPT tripleo/ceph.sh root@$IP :/tmp/ceph.sh
144
- scp $SSH_OPT tripleo/generate_ceph_inventory.py root@$IP :/tmp/generate_ceph_inventory.py
246
+ scp $SSH_OPT ${SCRIPTPATH} /../ tripleo/ceph.sh root@$IP :/tmp/ceph.sh
247
+ scp $SSH_OPT ${SCRIPTPATH} /../ tripleo/generate_ceph_inventory.py root@$IP :/tmp/generate_ceph_inventory.py
145
248
fi
146
249
147
250
if [[ -f $HOME /containers-prepare-parameters.yaml ]]; then
148
- scp $SSH_OPT $HOME /containers-prepare-parameters.yaml zuul@$IP :$HOME / containers-prepare-parameters.yaml
251
+ scp $SSH_OPT $HOME /containers-prepare-parameters.yaml zuul@$IP :containers-prepare-parameters.yaml
149
252
fi
150
253
151
254
# Running
152
255
if [[ -z ${SKIP_TRIPLEO_REPOS} || ${SKIP_TRIPLEO_REPOS} == " false" ]]; then
153
- ssh $SSH_OPT root@$IP " bash /tmp/repo-setup.sh"
256
+ [ -f $REPO_SETUP_CMDS ] && ssh $SSH_OPT root@$IP " bash /tmp/repo-setup.sh"
154
257
fi
155
258
ssh $SSH_OPT zuul@$IP " bash /tmp/undercloud-deploy-cmds.sh"
0 commit comments