Skip to content

Commit a8c4598

Browse files
authored
Merge pull request #620 from stackhpc/yoga-zed-merge-2
Yoga zed merge v2
2 parents b4f631c + 5d9190a commit a8c4598

File tree

62 files changed

+957
-548
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+957
-548
lines changed

.github/workflows/overcloud-host-image-build.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
overcloud-host-image-build:
3232
name: Build overcloud host images
3333
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
34-
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder]
34+
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder-rl9]
3535
permissions: {}
3636
steps:
3737
- uses: actions/checkout@v3
@@ -65,10 +65,9 @@ jobs:
6565
ref: refs/heads/stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
6666
path: src/kayobe
6767

68-
# FIXME: Failed in kolla-ansible : Ensure the latest version of pip is installed
6968
- name: Install dependencies
7069
run: |
71-
sudo dnf -y install python3-virtualenv zstd
70+
sudo dnf -y install zstd
7271
7372
- name: Setup networking
7473
run: |

.github/workflows/overcloud-host-image-promote.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
overcloud-host-image-promote:
2222
name: Promote overcloud host image
2323
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
24-
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder]
24+
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder-rl9]
2525
steps:
2626
- uses: actions/checkout@v3
2727
with:
@@ -40,11 +40,6 @@ jobs:
4040
ref: refs/heads/stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
4141
path: src/kayobe
4242

43-
# FIXME: Failed in kolla-ansible : Ensure the latest version of pip is installed
44-
- name: Install dependencies
45-
run: |
46-
sudo dnf -y install python3-virtualenv
47-
4843
- name: Setup networking
4944
run: |
5045
if ! ip l show breth1 >/dev/null 2>&1; then

.github/workflows/stackhpc-all-in-one.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ jobs:
7979
- name: Output image tag
8080
id: image_tag
8181
run: |
82-
echo image_tag=$(grep stackhpc_${{ inputs.os_distribution }}_${{ inputs.os_release }}_overcloud_host_image_version etc/kayobe/environments/ci-aio/stackhpc-ci.yml | awk '{print $2}') >> $GITHUB_OUTPUT
82+
echo image_tag=$(grep stackhpc_${{ inputs.os_distribution }}_$(sed s/-/_/ <(echo "${{ inputs.os_release }}"))_overcloud_host_image_version: etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
8383
8484
# Use the image override if set, otherwise use overcloud-os_distribution-os_release-tag
8585
- name: Output image name

.github/workflows/stackhpc-container-image-build.yml

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
generate-tag:
4141
name: Generate container image tag
4242
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
43-
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder]
43+
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder-rl9]
4444
permissions: {}
4545
outputs:
4646
datetime_tag: ${{ steps.datetime_tag.outputs.datetime_tag }}
@@ -88,7 +88,7 @@ jobs:
8888
container-image-build:
8989
name: Build Kolla container images
9090
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
91-
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder]
91+
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder-rl9]
9292
timeout-minutes: 720
9393
permissions: {}
9494
strategy:
@@ -107,11 +107,6 @@ jobs:
107107
ref: refs/heads/stackhpc/${{ needs.generate-tag.outputs.openstack_release }}
108108
path: src/kayobe
109109

110-
# FIXME: Failed in kolla-ansible : Ensure the latest version of pip is installed
111-
- name: Install dependencies
112-
run: |
113-
sudo dnf -y install python3-virtualenv
114-
115110
- name: Setup networking
116111
run: |
117112
if ! ip l show breth1 >/dev/null 2>&1; then
@@ -127,14 +122,6 @@ jobs:
127122
sudo ip l set dummy1 up
128123
sudo ip l set dummy1 master breth1
129124
130-
# FIXME: Without this workaround we see the following issue after the runner is power cycled:
131-
# TASK [MichaelRigart.interfaces : RedHat | ensure network service is started and enabled] ***
132-
# Unable to start service network: Job for network.service failed because the control process exited with error code.
133-
# See \"systemctl status network.service\" and \"journalctl -xe\" for details.
134-
- name: Kill dhclient (workaround)
135-
run: |
136-
(sudo killall dhclient || true) && sudo systemctl restart network
137-
138125
- name: Install Kayobe
139126
run: |
140127
mkdir -p venvs &&

.readthedocs.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Read the Docs configuration file
2+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3+
4+
# Required
5+
version: 2
6+
7+
# Set the version of Python and other tools you might need
8+
build:
9+
apt_packages:
10+
- tox
11+
os: ubuntu-22.04
12+
tools:
13+
python: "3.7"
14+
jobs:
15+
post_checkout:
16+
- git remote set-branches origin master stackhpc/zed stackhpc/yoga stackhpc/xena stackhpc/wallaby
17+
- git fetch --unshallow
18+
19+
# Build documentation in the doc/source/ directory with Sphinx
20+
sphinx:
21+
configuration: doc/source/conf.py
22+
23+
# We recommend specifying your dependencies to enable reproducible builds:
24+
# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
25+
python:
26+
install:
27+
- requirements: doc/requirements.txt

.yamllint

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,12 @@ rules:
1111
require-starting-space: false
1212
line-length: disable
1313
truthy: disable
14+
15+
ignore: |
16+
*etc/kayobe/environments/ci-multinode/secrets.yml
17+
*etc/kayobe/environments/ci-multinode/kolla/globals-tls-config.yml
18+
.automation/
19+
releasenotes/
20+
.github/
21+
.gitlab/
22+
.gitlab-ci.yml

doc/source/configuration/host-images.rst

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,42 @@
44
Host Images
55
===========
66

7+
Pulling host images
8+
===================
9+
10+
StackHPC provides pre-built overcloud host images through Ark, which can be
11+
consumed using the configuration provided by this repository.
12+
13+
When configured, an image will be downloaded to the seed during the
14+
``kayobe seed service deploy`` step, and subsequently deployed using bifrost
15+
with ``kayobe overcloud provision``.
16+
17+
To use these images, set ``stackhpc_download_overcloud_host_images`` to true
18+
in ``etc/kayobe/stackhpc-overcloud-host-images.yml``.
19+
20+
Currently, images exist for the following operating systems:
21+
22+
* Rocky Linux 9
23+
* Ubuntu Jammy 22.04
24+
25+
The image to download is selected automatically using the ``os_distribution``
26+
and ``os_release`` variables. These images are versioned and a variable for
27+
each OS is stored in ``pulp-host-image-versions.yml``.
28+
29+
This content requires the same set of credentials as is used for other
30+
release train content.
31+
32+
The Ark pulp credentials issued by StackHPC should be configured in
33+
``etc/kayobe/pulp.yml``, using Ansible Vault to encrypt the password:
34+
35+
.. code-block:: yaml
36+
37+
stackhpc_release_pulp_username: <username>
38+
stackhpc_release_pulp_password: <password>
39+
40+
Building host images
41+
====================
42+
743
StackHPC Kayobe configuration provides configuration for some standard
844
overcloud host images, built using the :kayobe-doc:`overcloud DIB
945
<configuration/reference/overcloud-dib.html>` functionality of Kayobe.

doc/source/configuration/release-train.rst

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
StackHPC Release Train
33
======================
44

5-
StackHPC provides packages and container images for OpenStack via `Ark
6-
<https://ark.stackhpc.com>`__. These artifacts are built and released using a
7-
process known as the `Release Train
5+
StackHPC provides packages, container images, and host images for OpenStack via
6+
`Ark <https://ark.stackhpc.com>`__. These artifacts are built and released using
7+
a process known as the `Release Train
88
<https://stackhpc.github.io/stackhpc-release-train/>`__.
99

1010
Deployments should use a local `Pulp <https://pulpproject.org/>`__ repository
@@ -41,6 +41,7 @@ This configuration provides the following:
4141
* Playbooks to synchronise a local Pulp service with Ark
4242
* Configuration to use the local Pulp repository mirrors on control plane hosts
4343
* Configuration to use the local Pulp container registry on control plane hosts
44+
* Configuration to deploy pre-built OS images to overcloud hosts using Bifrost
4445

4546
Local Pulp server
4647
-----------------
@@ -60,6 +61,10 @@ Pulp startup.
6061
If a proxy is required to access the Internet from the seed, ``pulp_proxy_url``
6162
may be used.
6263

64+
Host images are not synchronised to the local Pulp server, since they should
65+
only be pulled to the seed node once. More information on host images can be
66+
found :ref:`here <host-images>`.
67+
6368
StackHPC Ark
6469
------------
6570

@@ -74,6 +79,9 @@ The Ark pulp credentials issued by StackHPC should be configured in
7479
Package repositories
7580
--------------------
7681

82+
Rocky Linux 9 and Ubuntu Jammy package repositories are synced based on the
83+
value of ``os_distribution`` and ``os_release``.
84+
7785
On Ark, each package repository provides versioned snapshots using a datetime
7886
stamp (e.g. ``20220817T082321``). The current set of tested versions is defined
7987
in ``etc/kayobe/pulp-repo-versions.yml``. This file is managed by the StackHPC
@@ -83,15 +91,28 @@ repository.
8391
Package managers
8492
----------------
8593

86-
For Rocky Linux based systems, package manager configuration is
87-
provided by ``stackhpc_dnf_repos`` in ``etc/kayobe/dnf.yml``, which points to
88-
package repositories on the local Pulp server. To use this configuration, the
94+
For Ubuntu Jammy systems, the package manager configuration is provided by
95+
``stackhpc_apt_repositories`` in ``etc/kayobe/apt.yml``.
96+
97+
The configuration is applied by default to all Ubuntu hosts. The configuration
98+
can be overridden by changing the repository definitions in
99+
``apt_repositories`` or toggling ``apt_disable_sources_list`` to use the
100+
default apt repositories. This can be done on a host-by host basis by defining
101+
the variables as host or group vars under ``etc/kayobe/inventory/host_vars`` or
102+
``etc/kayobe/inventory/group_vars``.
103+
104+
For Rocky Linux based systems, package manager configuration is provided by
105+
``stackhpc_dnf_repos`` in ``etc/kayobe/dnf.yml``, which points to package
106+
repositories on the local Pulp server. To use this configuration, the
89107
``dnf_custom_repos`` variable must be set, and this is done for hosts in the
90108
``overcloud`` group via the group_vars file
91109
``etc/kayobe/inventory/group_vars/overcloud/stackhpc-dnf-repos``. Similar
92110
configuration may be added for other groups, however there may be ordering
93111
issues during initial deployment when Pulp has not yet been deployed.
94112

113+
In both instances, the configuration points to package repositories on the
114+
local Pulp server.
115+
95116
The distribution name for the environment should be configured as either
96117
``development`` or ``production`` via ``stackhpc_repo_distribution`` in
97118
``etc/kayobe/stackhpc.yml``.
@@ -102,6 +123,13 @@ Ceph container images
102123
By default, Ceph images are not synced from quay.io to the local Pulp. To sync
103124
these images, set ``stackhpc_sync_ceph_images`` to ``true``.
104125

126+
HashiCorp container images
127+
--------------------------
128+
129+
By default, HashiCorp images (Consul and Vault) are not synced from Docker Hub
130+
to the local Pulp. To sync these images, set ``stackhpc_sync_hashicorp_images``
131+
to ``true``.
132+
105133
Usage
106134
=====
107135

@@ -136,7 +164,7 @@ See the Kayobe :kayobe-doc:`custom playbook documentation
136164
these are new container image repositories, then the new image tags will not
137165
be available to cloud nodes until they have been published.
138166
* ``pulp-container-publish.yml``: Publish synchronised container images in the
139-
local Pulp. This will make synchonised container images available to cloud
167+
local Pulp. This will make synchronised container images available to cloud
140168
nodes.
141169

142170
Syncing content
@@ -254,4 +282,4 @@ you will see a 404 error during ``pulp-repo-sync.yml``:
254282
msg: Task failed to complete. (failed; 404, message='Not Found', url=URL('https://ark.stackhpc.com/pulp/content/rocky/9/BaseOS/x86_64/os/20211122T102435')) '''
255283
256284
The issue can be rectified by updating the ``stackhpc_release_pulp_username``
257-
and ``stackhpc_release_pulp_password`` variables
285+
and ``stackhpc_release_pulp_password`` variables.

doc/source/configuration/vault.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ Before beginning the deployment of vault for openstack internal TLS and backend
3939
* Ansible Galaxy dependencies installed: ``kayobe control host bootstrap``
4040
* Python dependencies installed: ``pip install -r kayobe-config/requirements.txt``
4141

42+
By default, Consul and Vault images are not synced from Docker Hub to the local
43+
Pulp. To sync these images, set ``stackhpc_sync_hashicorp_images`` to ``true``.
44+
The Vault deployment configuration will be automatically updated to pull images
45+
from Pulp.
46+
4247
Deployment
4348
==========
4449

@@ -210,6 +215,16 @@ Enable the required TLS variables in kayobe and kolla
210215
211216
3. Deploy backend and internal TLS
212217

218+
.. warning::
219+
220+
It is important that you are only using admin endpoints for keystone. If
221+
any admin endpoints exist for other services, they must be deleted e.g.
222+
223+
.. code-block::
224+
225+
openstack endpoint list --interface admin -f value | \
226+
awk '!/keystone/ {print $1}' | xargs openstack endpoint delete
227+
213228
.. code-block::
214229
215230
kayobe overcloud service deploy

doc/source/contributor/environments/aufn-ceph.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ This environment creates a Universe-from-nothing_-style deployment of Kayobe con
66

77
.. _Universe-from-nothing: https://github.com/stackhpc/a-universe-from-nothing
88

9+
.. warning::
10+
11+
This guide was written for the Yoga release and has not been validated for
12+
Zed. Proceed with caution.
13+
914
Prerequisites
1015
=============
1116

0 commit comments

Comments
 (0)