Skip to content

Commit ebd06c3

Browse files
authored
Merge pull request #331 from stackhpc/docs-refresh
docs: Bring various things up to date, fill in some gaps
2 parents f53a8f2 + 775d6fc commit ebd06c3

File tree

7 files changed

+62
-46
lines changed

7 files changed

+62
-46
lines changed

docs/architecture/index.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,13 @@ There are three types of Pulp service in the release train architecture.
3636
Various different types of content are hosted by Pulp, including:
3737

3838
* RPM package repositories ([Pulp RPM plugin](https://docs.pulpproject.org/pulp_rpm/))
39-
* CentOS distribution packages
39+
* Rocky Linux distribution packages
4040
* Third party packages
41-
* Container image repositories ([Pulp container plugin](https://docs.pulpproject.org/pulp_container/))
42-
* Kolla container images
43-
44-
We also anticipate supporting the following content:
45-
4641
* Apt package repositories ([Pulp Deb plugin](https://docs.pulpproject.org/pulp_deb/))
4742
* Ubuntu distribution packages
4843
* Third party packages
44+
* Container image repositories ([Pulp container plugin](https://docs.pulpproject.org/pulp_container/))
45+
* Kolla container images
4946
* File repositories ([Pulp file plugin](https://docs.pulpproject.org/pulp_file/))
5047
* Disk images
5148

@@ -79,7 +76,7 @@ Build and test processes are provided with credentials that are authorised to pu
7976
At the top of the diagram above are the upstream sources.
8077
Some of these may be mirrored/synced into Ark, including:
8178

82-
* OS distribution package repositories, e.g. CentOS Stream 8 BaseOS
79+
* OS distribution package repositories, e.g. Rocky Linux 9 BaseOS
8380
* Third party package repositories, e.g. Grafana
8481

8582
The [Sync package repositories](https://github.com/stackhpc/stackhpc-release-train/actions/workflows/package-sync.yml) GitHub Actions workflow runs nightly and on demand, ensuring that we have regular versioned snapshots of these repositories.
@@ -95,7 +92,7 @@ There are a couple of repositories for which `mirror_complete` does not work, so
9592

9693
Package repositories are versioned based on the date/time stamp at the beginning of the sync workflow, e.g. `20211122T102435`.
9794
This version string is used as the final component of the path at which the corresponding distribution is hosted.
98-
For example, a CentOS Stream 8 BaseOS snapshot may be hosted at https://ark.stackhpc.com/pulp/content/centos/8-stream/BaseOS/x86_64/os/20220105T044843/.
95+
For example, a Rocky Linux 9 BaseOS snapshot may be hosted at https://ark.stackhpc.com/pulp/content/rocky/9/BaseOS/x86_64/os/20240105T044843/.
9996

10097
The rationale behind using a date/time stamp is that there is no sane way to version a large collection of content, such as a repository, in a way in which the version reflects changes in the content (e.g. SemVer).
10198
While the timestamp used is fairly arbitrary, it does at least provide a reasonable guarantee of ordering, and is easily automated.
@@ -115,36 +112,40 @@ All content in Ark that is required by the build and test processes is synced to
115112

116113
### Kolla container images
117114

118-
Kolla container images are built via Kayobe, using a `builder` environment in [StackHPC Kayobe config](https://github.com/stackhpc/stackhpc-kayobe-config).
115+
Kolla container images are built via Kayobe, using a `ci-builder` environment in [StackHPC Kayobe config](https://github.com/stackhpc/stackhpc-kayobe-config).
119116
The configuration uses the package repositories in Ark when building containers.
120-
Currently this is run manually, but will eventually run as a CI job.
117+
Images are built using a manually triggered [GitHub Actions workflow](https://github.com/stackhpc/stackhpc-kayobe-config/actions/workflows/stackhpc-container-image-build.yml).
121118
The `stackhpc-dev` namespace in Ark contains [container push repositories](https://docs.pulpproject.org/pulp_container/workflows/push.html), which are pushed to using Kayobe.
122-
Currently this is rather slow due to a [Pulp bug](https://github.com/pulp/pulp_container/issues/494).
123119

124120
The [Sync container repositories](https://github.com/stackhpc/stackhpc-release-train/actions/workflows/container-sync.yml) GitHub Actions workflow runs demand, syncing container repositories in test Pulp service with those in Ark.
125121
It also configures container image distributions to be private, since they are public by default.
126122

127-
Kolla container images are versioned based on the OpenStack release name and the date/time stamp at the beginning of the build workflow, e.g. `wallaby-20211122T102435`.
123+
Kolla container images are versioned based on the OpenStack release name, OS distribution and the date/time stamp at the beginning of the build workflow, e.g. `2024.1-rocky-9-20240922T102435`.
128124
This version string is used as the image tag.
129125
Unlike package repositories, container image tags allow multiple versions to be present in a distribution of a container repository simultaneously.
130126
We therefore use separate namespaces for development (`stackhpc-dev`) and release (`stackhpc`).
131127

132128
### Disk images
133129

134-
Disk images are currently not built by the release train.
130+
Overcloud host images are built via Kayobe, using the same ``ci-builder`` environment used to build Kolla container images.
131+
Overcloud images are built using a manually triggered [GitHub Actions workflow](https://github.com/stackhpc/stackhpc-kayobe-config/actions/workflows/overcloud-host-image-build.yml).
132+
They are pushed to a [Pulp file repository](https://pulpproject.org/pulp_file/) in Ark, and uploaded to the SMS lab Glance image service for all-in-one and multi-node testing.
133+
134+
Overcloud images are versioned based on the OpenStack release name, and the date/time stamp at the beginning of the build workflow, e.g. `2024.1-20240922T102435`.
135+
This version string is included in the Pulp distribution `base_path` of the image, e.g. https://ark.stackhpc.com/pulp/content/kayobe-images/2024.1/rocky/9/2024.1-20240922T102435/overcloud-rocky-9.qcow2
135136

136137
## Testing
137138

138139
Release train content is tested via a Kayobe deployment of OpenStack.
139-
An `aio` environment in [StackHPC Kayobe config](https://github.com/stackhpc/stackhpc-kayobe-config) provides a converged control/compute host for testing.
140-
Currently this is run manually, but will eventually run as a CI job.
140+
A `ci-aio` environment in [StackHPC Kayobe config](https://github.com/stackhpc/stackhpc-kayobe-config) provides a converged control/compute host for testing.
141+
Various all-in-one OpenStack test configurations are run against pull requests opened against the StackHPC Kayobe config repository.
141142

142143
## Promotion
143144

144145
Whether content is mirrored from an upstream source or built locally, it is not immediately released.
145146
Promotion describes the process whereby release candidate content is made into a release that is available to clients.
146147

147-
For package repositories, promotion does not affect how content is accessed, only who may access it.
148+
For package repositories and overcloud host images, promotion does not affect how content is accessed, only who may access it.
148149
Promotion involves changing the content guard for the distribution to be released from `development` to `release`.
149150
This makes the content accessible to clients using their client credentials.
150151

@@ -177,7 +178,7 @@ This repository provides configuration and playbooks to:
177178

178179
This configuration is in active development and is expected to evolve over the coming releases.
179180

180-
Further documentation of this configuration is out of scope here, but is available in the [readme](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/wallaby/README.rst).
181+
Further documentation of this configuration is out of scope here, but is available in the [readme](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/2024.1/README.rst).
181182

182183
## Continuous Integration (CI) and automation
183184

docs/index.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,12 @@ This includes artifacts, metadata, and the configuration necessary to consume th
1919
The current scope of the release train covers OpenStack control plane deployment, and all the dependencies thereof.
2020
This includes:
2121

22-
* Host Operating System (OS) repositories, e.g. CentOS Stream 8 BaseOS
22+
* Host Operating System (OS) repositories, e.g. Rocky Linux 9 BaseOS
2323
* Source code repositories
2424
* Kolla container images
2525
* Ironic Python Agent (IPA) deployment images
2626
* VM & bare metal disk images
2727

28-
Initially, only CentOS Stream 8 is supported as a host and container OS.
29-
Ubuntu support will follow.
30-
3128
In future, the scope may expand to cover other software, such as Kubernetes.
3229

3330
## Configuration

docs/operations/ark.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Ark
2+
3+
Ark is deployed on a single host that runs on Leafcloud.
4+
Data is stored in Leafcloud's object store.
5+
An [Ansible playbook](https://github.com/stackhpc/ansible-pulpcore-config) automates deployment of Pulp and its dependencies using the [Pulp OCI images](https://pulpproject.org/pulp-oci-images/) and [Compose configuration](https://pulpproject.org/pulp-oci-images/docs/admin/tutorials/quickstart/#podman-or-docker-compose) provided by the Pulp project.
6+

docs/operations/github.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
# Operations - GitHub
22

3-
## GitHub Actions runners
3+
## GitHub Actions Runner Controller (ARC)
4+
5+
Some GitHub Actions workflows run on public runners, while others require access to specific services or benefit from data locality.
6+
In the latter case we use GitHub's Actions Runner Controller (ARC) (not to be confused with our Ark...) to provide dynamically scaling containerised private GitHub Actions runners.
7+
The [ARC-Installer](https://github.com/stackhpc/ARC-Installer) repository contains scripts and Helm `values.yaml` configuration for registering the ARC controller services and runner scale sets.
8+
Any project that wishes to use runners on this cluster should define its runner scale set configuration in the ARC-Installer repository.
9+
10+
## [LEGACY] GitHub Actions runners
11+
12+
*We are no longer using this approach, but it is retained in case it is useful in future.*
413

514
This Terraform configuration deploys a GitHub Actions runner VMs on an
615
OpenStack cloud for the stackhpc-release-train repository.

docs/usage/access.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,6 @@ Configuration for content guards is in [ansible/inventory/group_vars/all/dev-pul
2525

2626
## Generating client credentials
2727

28-
TODO
28+
Clients require credentials in order to access Ark.
29+
See the README in the [stackhpc-release-train-clients](https://github.com/stackhpc/stackhpc-release-train-clients) repository for how to generete and update them.
30+
It is also possible to use this repository to generate credentials with access to the unpromoted "development" content, but these should not be given to clients.

docs/usage/content-howto.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ If using Zed release onwards:
8181

8282
The list of services supported by StackHPC Kayobe configuration is defined via
8383
the feature flags in the
84-
[ci-builder](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/wallaby/etc/kayobe/environments/ci-builder/stackhpc-ci.yml)
84+
[ci-builder](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/2024.1/etc/kayobe/environments/ci-builder/stackhpc-ci.yml)
8585
environment. To add a new service, add the relevant feature flag (see
8686
`etc/kayobe/kolla.yml` for supported flags). For example:
8787

@@ -115,7 +115,7 @@ above](#update-kolla-container-images) to build and consume the new images.
115115

116116
### Set up client Pulp syncing for the image
117117

118-
Finally, the new images must be added to the `stackhpc_pulp_images` list in [etc/kayobe/pulp.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/wallaby/etc/kayobe/pulp.yml).
118+
Finally, the new images must be added to the `stackhpc_pulp_images` list in [etc/kayobe/pulp.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/2024.1/etc/kayobe/pulp.yml).
119119
This updates the list of images that are synced from Ark to clients' local Pulp service.
120120
This step should be performed last, once the images have been pushed to Ark and promoted, otherwise client container syncs would fail.
121121

docs/usage/content-workflows.md

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ ansible/test-kayobe-repo-version-generate.yml \
139139
-e kayobe_config_repo_path=./stackhpc-kayobe-config/
140140
```
141141

142-
Package repository versions are stored in StackHPC Kayobe configuration in [etc/kayobe/pulp-repo-versions.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/wallaby/etc/kayobe/pulp-repo-versions.yml).
142+
Package repository versions are stored in StackHPC Kayobe configuration in [etc/kayobe/pulp-repo-versions.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/2024.1/etc/kayobe/pulp-repo-versions.yml).
143143
Note that the updated versions are not necessarily released.
144144
The generated file may be amended as necessary (in case not all updates are required), then copied to the StackHPC Kayobe configuration.
145145

@@ -172,19 +172,20 @@ An `Overcloud container images` artifact will be visible on the summary page of
172172
This artifact contains a list of the built images.
173173
After a successful container image build workflow, another workflow is triggered to [sync the images](#syncing-container-images) to the test Pulp.
174174

175-
In the following example, the user specified a regular expression of `^skydive`, matching all of the Skydive images, and the `base` image that they depend on.
175+
In the following example, the user specified a regular expression of `^magnum`, matching all of the Magnum images, and the `base` image that they depend on.
176176

177177
```
178-
REPOSITORY TAG IMAGE ID CREATED SIZE
179-
ark.stackhpc.com/stackhpc-dev/centos-source-skydive-agent wallaby-20220811T091848 32f2b9299194 6 minutes ago 1.29GB
180-
ark.stackhpc.com/stackhpc-dev/centos-source-skydive-analyzer wallaby-20220811T091848 35e4c1cda1a8 7 minutes ago 1.14GB
181-
ark.stackhpc.com/stackhpc-dev/centos-source-skydive-base wallaby-20220811T091848 3bd5f3e50aa3 7 minutes ago 1.14GB
182-
ark.stackhpc.com/stackhpc-dev/centos-source-base wallaby-20220811T091848 bd02fa0ec1d6 7 minutes ago 991MB
178+
REPOSITORY TAG IMAGE ID CREATED SIZE
179+
ark.stackhpc.com/stackhpc-dev/magnum-api 2024.1-rocky-9-20240811T091848 32f2b9299194 6 minutes ago 1.29GB
180+
ark.stackhpc.com/stackhpc-dev/magnum-conductor 2024.1-rocky-9-20240811T091848 35e4c1cda1a8 7 minutes ago 1.14GB
181+
ark.stackhpc.com/stackhpc-dev/magnum-base 2024.1-rocky-9-20240811T091848 3bd5f3e50aa3 7 minutes ago 1.14GB
182+
ark.stackhpc.com/stackhpc-dev/openstack-base 2024.1-rocky-9-20240811T091848 bd02fa0ec1d6 7 minutes ago 991MB
183+
ark.stackhpc.com/stackhpc-dev/base 2024.1-rocky-9-20240811T091848 bd02fa0ec1d6 7 minutes ago 991MB
183184
```
184185

185-
In this example, the base and Skydive images have been tagged `wallaby-20220811T091848`.
186+
In this example, the `base`, `openstack-base` and Magnum images have been tagged `2024.1-rocky-9-20240811T091848`.
186187

187-
Instructions for building Kolla container images manually are provided in the [StackHPC kayobe config README](https://github.com/stackhpc/stackhpc-kayobe-config/blob/bf1396b8564b79344e4b6cfb934eab865ff1ad09/README.rst#L226).
188+
Instructions for building Kolla container images manually are provided in the [StackHPC kayobe config documentation](https://stackhpc-kayobe-config.readthedocs.io/en/stackhpc-2024.1/contributor/environments/ci-builder.html).
188189

189190
## Publishing container images
190191

@@ -227,7 +228,7 @@ ansible/test-pulp-container-publish.yml
227228

228229
## Updating container image tags in Kayobe configuration (Yoga release and earlier)
229230

230-
The image tag used deploy containers may be updated for all images in [etc/kayobe/kolla.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/wallaby/etc/kayobe/kolla.yml), or for specific images in [etc/kayobe/kolla/globals.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/wallaby/etc/kayobe/kolla/globals.yml).
231+
The image tag used deploy containers may be updated for all images in [etc/kayobe/kolla.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/2024.1/etc/kayobe/kolla.yml), or for specific images in [etc/kayobe/kolla/globals.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/2024.1/etc/kayobe/kolla/globals.yml).
231232
Currently this is a manual process.
232233

233234
Use the new tag from the [container image build](#building-container-images).
@@ -256,7 +257,7 @@ skydive_analyzer_tag: wallaby-20220811T091848
256257

257258
## Updating container image tags in Kayobe configuration (Zed release onwards)
258259

259-
The image tags used deploy containers are defined in [etc/kayobe/kolla-image-tags.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/zed/etc/kayobe/kolla-image-tags.yml).
260+
The image tags used deploy containers are defined in [etc/kayobe/kolla-image-tags.yml](https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/2024.1/etc/kayobe/kolla-image-tags.yml).
260261
Currently updating these is a manual process.
261262

262263
Use the new tag from the [container image build](#building-container-images).
@@ -269,8 +270,8 @@ For example, to update the default tag for all images (used where no service-spe
269270
# where the key is the OS distro and the value is the tag to deploy.
270271
kolla_image_tags:
271272
openstack:
272-
rocky-9: zed-rocky-9-20230101T000000
273-
ubuntu-jammy: zed-ubuntu-jammy-20230101T000000
273+
rocky-9: 2024.1-rocky-9-20240101T000000
274+
ubuntu-jammy: 2024.1-ubuntu-jammy-20240101T000000
274275
```
275276

276277
Alternatively, update the tag for all containers in a service, e.g. for all `nova` containers:
@@ -281,11 +282,11 @@ Alternatively, update the tag for all containers in a service, e.g. for all `nov
281282
# where the key is the OS distro and the value is the tag to deploy.
282283
kolla_image_tags:
283284
openstack:
284-
rocky-9: zed-rocky-9-20230101T000000
285-
ubuntu-jammy: zed-ubuntu-jammy-20230101T000000
285+
rocky-9: 2024.1-rocky-9-20240101T000000
286+
ubuntu-jammy: 2024.1-ubuntu-jammy-20240101T000000
286287
nova:
287-
rocky-9: zed-rocky-9-20230102T000000
288-
ubuntu-jammy: zed-ubuntu-jammy-20230102T000000
288+
rocky-9: 2024.1-rocky-9-20240102T000000
289+
ubuntu-jammy: 2024.1-ubuntu-jammy-20240102T000000
289290
```
290291

291292
Alternatively, update the tag for a specific container, e.g. for the `nova_compute` container:
@@ -296,11 +297,11 @@ Alternatively, update the tag for a specific container, e.g. for the `nova_compu
296297
# where the key is the OS distro and the value is the tag to deploy.
297298
kolla_image_tags:
298299
openstack:
299-
rocky-9: zed-rocky-9-20230101T000000
300-
ubuntu-jammy: zed-ubuntu-jammy-20230101T000000
300+
rocky-9: 2024.1-rocky-9-20240101T000000
301+
ubuntu-jammy: 2024.1-ubuntu-jammy-20240101T000000
301302
nova_compute:
302-
rocky-9: zed-rocky-9-20230103T000000
303-
ubuntu-jammy: zed-ubuntu-jammy-20230103T000000
303+
rocky-9: 2024.1-rocky-9-20240103T000000
304+
ubuntu-jammy: 2024.1-ubuntu-jammy-20240103T000000
304305
```
305306

306307
## Promoting container images (Zed release onwards)

0 commit comments

Comments
 (0)