Skip to content

Commit 86b2d0a

Browse files
author
scrungus
committed
Merge branch 'stackhpc-stackhpc/yoga' into stackhpc/yoga
2 parents d1f2798 + 220c271 commit 86b2d0a

9 files changed

Lines changed: 187 additions & 42 deletions

File tree

doc/source/configuration/monitoring.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ environment, create the following symbolic links:
4848
.. code-block:: console
4949
5050
cd $KAYOBE_CONFIG_PATH
51-
ln -s kolla/config/grafana/ environments/$KAYOBE_ENVIRONMENT/kolla/config/
52-
ln -s kolla/config/prometheus/ environments/$KAYOBE_ENVIRONMENT/kolla/config/
51+
ln -s ../../../../kolla/config/grafana/ environments/$KAYOBE_ENVIRONMENT/kolla/config/
52+
ln -s ../../../../kolla/config/prometheus/ environments/$KAYOBE_ENVIRONMENT/kolla/config/
5353
5454
and commit them to the config repository.
5555

doc/source/contributor/environments/ci-aio.rst

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,52 @@ ci-aio
55
This environment deploys an all-in-one converged control/compute cloud for
66
testing.
77

8+
There are two ways to set up the environment. The automated setup script
9+
automates the manual setup steps below, and is recommended for most users.
10+
The manual setup steps are provided for reference, and for users who wish to
11+
make changes to the setup process.
12+
813
Prerequisites
914
=============
1015

1116
* a CentOS Stream 8 or Ubuntu Focal 20.04 host
1217
* access to the Test Pulp server on SMS lab
1318

14-
Setup
15-
=====
19+
Automated Setup
20+
===============
21+
22+
Access the host via SSH.
23+
24+
Download the setup script:
25+
26+
.. parsed-literal::
27+
28+
wget https://raw.githubusercontent.com/stackhpc/stackhpc-kayobe-config/stackhpc/yoga/etc/kayobe/environments/ci-aio/automated-setup.sh
29+
30+
Change the permissions on the script:
31+
32+
.. parsed-literal::
33+
34+
sudo chmod 700 automated-setup.sh
35+
36+
Acquire the Ansible Vault password for this repository, and store a
37+
copy at ``~/vault-pw``.
38+
39+
Run the setup script:
40+
41+
.. parsed-literal::
42+
43+
./automated-setup.sh
44+
45+
The script will pull the current version of Kayobe and this repository, and
46+
then run the manual setup steps below. The script can be easily edited to use
47+
a different branch of Kayobe or this repository.
48+
49+
Manual Setup
50+
============
51+
52+
Host Configuration
53+
------------------
1654

1755
Access the host via SSH.
1856

@@ -67,7 +105,7 @@ Add initial network configuration:
67105
sudo ip l set dummy1 master breth1
68106
69107
Installation
70-
============
108+
------------
71109

72110
Acquire the Ansible Vault password for this repository, and store a copy at
73111
``~/vault-pw``.
@@ -86,7 +124,7 @@ Ansible control host.
86124
kayobe control host bootstrap
87125
88126
Deployment
89-
==========
127+
----------
90128

91129
Next, configure the host OS & services.
92130

@@ -103,7 +141,7 @@ Finally, deploy the overcloud services.
103141
The control plane should now be running.
104142

105143
Testing
106-
=======
144+
-------
107145

108146
Run a smoke test:
109147

etc/kayobe/cephadm.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ cephadm_ceph_release: "{{ 'quincy' if (ansible_facts['distribution_release'] ==
1212
cephadm_image: "{{ stackhpc_docker_registry if stackhpc_sync_ceph_images | bool else 'quay.io' }}/ceph/ceph:{{ cephadm_image_tag }}"
1313

1414
# Ceph container image tag.
15-
cephadm_image_tag: "{{ 'v17.2.6' if ansible_facts['distribution_release'] == 'jammy' else 'v16.2.11' }}"
15+
cephadm_image_tag: "{{ 'v17.2.6' if os_release == 'jammy' else 'v16.2.11' }}"
1616

1717
# Ceph custom repo workaround for Ubuntu Jammy as there are no official ceph repos for jammy.
1818
cephadm_custom_repos: "{{ ansible_facts['distribution_release'] == 'jammy' }}"
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#!/bin/bash
2+
3+
set -eux
4+
5+
cat << EOF | sudo tee -a /etc/hosts
6+
10.205.3.187 pulp-server pulp-server.internal.sms-cloud
7+
EOF
8+
9+
BASE_PATH=~
10+
KAYOBE_BRANCH=stackhpc/yoga
11+
KAYOBE_CONFIG_BRANCH=stackhpc/yoga
12+
13+
if [[ ! -f $BASE_PATH/vault-pw ]]; then
14+
echo "Vault password file not found at $BASE_PATH/vault-pw"
15+
exit 1
16+
fi
17+
18+
if type dnf; then
19+
sudo dnf -y install git python3-virtualenv
20+
else
21+
sudo apt update
22+
sudo apt -y install gcc git libffi-dev python3-dev python-is-python3 python3-virtualenv
23+
fi
24+
25+
cd $BASE_PATH
26+
mkdir -p src
27+
pushd src
28+
[[ -d kayobe ]] || git clone https://github.com/stackhpc/kayobe.git -b $KAYOBE_BRANCH
29+
[[ -d kayobe-config ]] || git clone https://github.com/stackhpc/stackhpc-kayobe-config kayobe-config -b $KAYOBE_CONFIG_BRANCH
30+
popd
31+
32+
mkdir -p venvs
33+
pushd venvs
34+
if [[ ! -d kayobe ]]; then
35+
virtualenv kayobe
36+
fi
37+
# NOTE: Virtualenv's activate and deactivate scripts reference an
38+
# unbound variable.
39+
set +u
40+
source kayobe/bin/activate
41+
set -u
42+
pip install -U pip
43+
pip install ../src/kayobe
44+
popd
45+
46+
if ! ip l show breth1 >/dev/null 2>&1; then
47+
sudo ip l add breth1 type bridge
48+
fi
49+
sudo ip l set breth1 up
50+
if ! ip a show breth1 | grep 192.168.33.3/24; then
51+
sudo ip a add 192.168.33.3/24 dev breth1
52+
fi
53+
if ! ip l show dummy1 >/dev/null 2>&1; then
54+
sudo ip l add dummy1 type dummy
55+
fi
56+
sudo ip l set dummy1 up
57+
sudo ip l set dummy1 master breth1
58+
59+
export KAYOBE_VAULT_PASSWORD=$(cat $BASE_PATH/vault-pw)
60+
pushd $BASE_PATH/src/kayobe-config
61+
source kayobe-env --environment ci-aio
62+
63+
kayobe control host bootstrap
64+
65+
kayobe overcloud host configure
66+
67+
kayobe overcloud service deploy
68+
69+
export KAYOBE_CONFIG_SOURCE_PATH=$BASE_PATH/src/kayobe-config
70+
export KAYOBE_VENV_PATH=$BASE_PATH/venvs/kayobe
71+
pushd $BASE_PATH/src/kayobe
72+
./dev/overcloud-test-vm.sh

etc/kayobe/kolla.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ kolla_docker_registry_password: "{{ stackhpc_docker_registry_password }}"
9696

9797
# Kolla OpenStack release version. This should be a Docker image tag.
9898
# Default is {{ openstack_release }}.
99-
kolla_openstack_release: "{% if kolla_base_distro == 'centos' %}yoga-20230217T135826{% elif kolla_base_distro == 'rocky' %}yoga-20230310T170929{% else %}yoga-20230220T181235{% endif %}"
99+
kolla_openstack_release: "{% raw %}{{ kayobe_image_tags['openstack'][kolla_base_distro] }}{% endraw %}"
100100

101101
# Docker tag applied to built container images. Default is
102102
# {{ kolla_openstack_release }}.

etc/kayobe/kolla/globals.yml

Lines changed: 50 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,62 @@
44
# To work around issue of trying to install docker from
55
# empty pulp server, use upstream docker dnf repo on
66
# non-overcloud hosts
7-
enable_docker_repo: {% raw %}"{{ 'overcloud' not in group_names or ansible_facts.os_family == 'Debian' }}"{% endraw %}
7+
enable_docker_repo: "{% raw %}{{ 'overcloud' not in group_names or ansible_facts.os_family == 'Debian' }}{% endraw %}"
8+
9+
kolla_base_distro: "{% raw %}{{ ansible_facts.distribution | lower }}{% endraw %}"
810

911
neutron_tag: yoga-20230515T150233
12+
nova_tag: yoga-20230518T105834
1013
octavia_tag: yoga-20230523T110936
1114
openvswitch_tag: yoga-20230515T150233
1215
ovn_tag: yoga-20230515T150233
1316

14-
{% if kolla_base_distro == 'centos' %}
15-
bifrost_tag: yoga-20230217T160618
16-
blazar_tag: yoga-20230315T125157
17-
caso_tag: yoga-20230315T125157
18-
grafana_tag: yoga-20230419T085955
19-
ironic_tag: yoga-20230316T154655
20-
ironic_dnsmasq_tag: yoga-20230217T135826
21-
nova_tag: yoga-20230518T105834
22-
opensearch_tag: yoga-20230324T084510
23-
prometheus_node_exporter_tag: yoga-20230310T173747
24-
{% elif kolla_base_distro == 'rocky' %}
25-
bifrost_tag: yoga-20230310T194732
26-
blazar_tag: yoga-20230315T130918
27-
caso_tag: yoga-20230315T130918
28-
grafana_tag: yoga-20230419T111514
29-
ironic_tag: yoga-20230316T170311
30-
octavia_tag: yoga-20230523T110936
31-
ironic_dnsmasq_tag: yoga-20230310T170929
32-
nova_tag: yoga-20230518T105834
33-
opensearch_tag: yoga-20230324T090413
34-
prometheus_node_exporter_tag: yoga-20230315T170614
35-
{% else %}
36-
bifrost_tag: yoga-20230220T184947
37-
blazar_tag: yoga-20230315T125441
38-
caso_tag: yoga-20230315T125441
39-
grafana_tag: yoga-20230426T084340
40-
nova_tag: yoga-20230518T105834
41-
ironic_tag: yoga-20230316T154704
42-
ironic_dnsmasq_tag: yoga-20230220T181235
43-
opensearch_tag: yoga-20230324T090345
44-
prometheus_node_exporter_tag: yoga-20230315T170541
45-
{% endif %}
17+
kayobe_image_tags:
18+
openstack:
19+
centos: yoga-20230217T135826
20+
rocky: yoga-20230310T170929
21+
ubuntu: yoga-20230220T181235
22+
bifrost:
23+
centos: yoga-20230217T160618
24+
rocky: yoga-20230310T194732
25+
ubuntu: yoga-20230220T184947
26+
blazar:
27+
centos: yoga-20230315T125157
28+
rocky: yoga-20230315T130918
29+
ubuntu: yoga-20230315T125441
30+
caso:
31+
centos: yoga-20230315T125157
32+
rocky: yoga-20230315T130918
33+
ubuntu: yoga-20230315T125441
34+
grafana:
35+
centos: yoga-20230419T085955
36+
rocky: yoga-20230419T111514
37+
ubuntu: yoga-20230426T084340
38+
ironic:
39+
centos: yoga-20230316T154655
40+
rocky: yoga-20230316T170311
41+
ubuntu: yoga-20230316T154704
42+
ironic_dnsmasq:
43+
centos: yoga-20230217T135826
44+
rocky: yoga-20230310T170929
45+
ubuntu: yoga-20230220T181235
46+
opensearch:
47+
centos: yoga-20230324T084510
48+
rocky: yoga-20230324T090413
49+
ubuntu: yoga-20230324T090345
50+
prometheus_node_exporter:
51+
centos: yoga-20230310T173747
52+
rocky: yoga-20230315T170614
53+
ubuntu: yoga-20230315T170541
54+
55+
bifrost_tag: "{% raw %}{{ kayobe_image_tags['bifrost'][kolla_base_distro] | default(openstack_tag) }}{% endraw %}"
56+
blazar_tag: "{% raw %}{{ kayobe_image_tags['blazar'][kolla_base_distro] | default(openstack_tag) }}{% endraw %}"
57+
caso_tag: "{% raw %}{{ kayobe_image_tags['caso'][kolla_base_distro] | default(openstack_tag) }}{% endraw %}"
58+
grafana_tag: "{% raw %}{{ kayobe_image_tags['grafana'][kolla_base_distro] | default(openstack_tag) }}{% endraw %}"
59+
ironic_tag: "{% raw %}{{ kayobe_image_tags['ironic'][kolla_base_distro] | default(openstack_tag) }}{% endraw %}"
60+
ironic_dnsmasq_tag: "{% raw %}{{ kayobe_image_tags['ironic_dnsmasq'][kolla_base_distro] | default(openstack_tag) }}{% endraw %}"
61+
opensearch_tag: "{% raw %}{{ kayobe_image_tags['opensearch'][kolla_base_distro] | default(openstack_tag) }}{% endraw %}"
62+
prometheus_node_exporter_tag: "{% raw %}{{ kayobe_image_tags['prometheus_node_exporter'][kolla_base_distro] | default(openstack_tag) }}{% endraw %}"
4663

4764
glance_tls_proxy_tag: "{% raw %}{{ haproxy_tag | default(openstack_tag) }}{% endraw %}"
4865
neutron_tls_proxy_tag: "{% raw %}{{ haproxy_tag | default(openstack_tag) }}{% endraw %}"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
features:
3+
- |
4+
Added a script to the AIO environment that can be used to quickly
5+
deploy an AIO for testing.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
upgrade:
3+
- |
4+
Bumps octavia container versions
5+
fixes:
6+
- |
7+
Fixes bug https://bugs.launchpad.net/neutron/+bug/2004238
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
upgrade:
3+
- |
4+
Kolla tag overrides have been refactored to allow kolla-ansible to
5+
resolve them individually by host. This means that mixed clouds can be
6+
deployed which allows for migration between distributions.

0 commit comments

Comments
 (0)