Skip to content

Commit 36c66c1

Browse files
authored
Merge pull request #316 from stackhpc/package-repo-docs
docs: Add info on how to add new package repos to Kayobe config
2 parents 2b530e0 + c67df18 commit 36c66c1

File tree

3 files changed

+61
-14
lines changed

3 files changed

+61
-14
lines changed

docs/usage/content-howto.md

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ Update one or more package repositories to a new version, then build new Kolla c
99

1010
If using Yoga release or earlier:
1111

12-
* If the repository URL has changed e.g. a new minor version has been released, add new package repositories to [`package-repos`](https://github.com/stackhpc/stackhpc-release-train/blob/main/ansible/inventory/group_vars/all/package-repos)
1312
* [Sync package repositories](content-workflows.md#syncing-package-repositories) (optional: runs nightly as a scheduled GitHub Action)
1413
* [Update Kayobe repository versions](content-workflows.md#updating-package-repository-versions-in-kayobe-configuration)
1514
* [Build & push Kolla container images](content-workflows.md#building-container-images)
@@ -20,14 +19,41 @@ If using Yoga release or earlier:
2019

2120
If using Zed release onwards:
2221

23-
* If the repository URL has changed e.g. a new minor version has been released, add new package repositories to [`package-repos`](https://github.com/stackhpc/stackhpc-release-train/blob/main/ansible/inventory/group_vars/all/package-repos)
2422
* [Sync package repositories](content-workflows.md#syncing-package-repositories) (optional: runs nightly as a scheduled GitHub Action)
2523
* [Update Kayobe repository versions](content-workflows.md#updating-package-repository-versions-in-kayobe-configuration)
2624
* [Build & push Kolla container images](content-workflows.md#building-container-images)
2725
* [Update Kayobe container image tags](content-workflows.md#updating-container-image-tags-in-kayobe-configuration-zed-release-onwards)
2826
* Test
2927
* Review & merge Kayobe configuration changes
30-
* [Promote container images](content-workflows.md#promoting-container-images-zed-release-onwards)
28+
* [Promote container images](content-workflows.md#promoting-container-images-zed-release-onwards) (happens automatically)
29+
30+
## Add a new package repository
31+
32+
Add one or more new package repositories to the release train, then add them to the Kayobe configuration and build new Kolla container images from those repositories.
33+
34+
If using Yoga release or earlier:
35+
36+
* [Add new package repositories to Release Train](content-workflows.md#add-new-package-repositories-to-release-train)
37+
* [Sync package repositories](content-workflows.md#syncing-package-repositories) (optional: runs nightly as a scheduled GitHub Action)
38+
* [Add package repositories to StackHPC Kayobe Configuration](content-workflows.md#adding-package-repositories-in-kayobe-configuration)
39+
* [Update Kayobe repository versions](content-workflows.md#updating-package-repository-versions-in-kayobe-configuration)
40+
* [Build & push Kolla container images](content-workflows.md#building-container-images)
41+
* [Update Kayobe container image tags](content-workflows.md#updating-container-image-tags-in-kayobe-configuration-yoga-release-and-earlier)
42+
* Test
43+
* Review & merge Kayobe configuration changes
44+
* [Promote container images](content-workflows.md#promoting-container-images-yoga-release-and-earlier)
45+
46+
If using Zed release onwards:
47+
48+
* [Add new package repositories to Release Train](content-workflows.md#add-new-package-repositories-to-release-train)
49+
* [Sync package repositories](content-workflows.md#syncing-package-repositories) (optional: runs nightly as a scheduled GitHub Action)
50+
* [Add package repositories to StackHPC Kayobe Configuration](content-workflows.md#adding-package-repositories-in-kayobe-configuration)
51+
* [Update Kayobe repository versions](content-workflows.md#updating-package-repository-versions-in-kayobe-configuration)
52+
* [Build & push Kolla container images](content-workflows.md#building-container-images)
53+
* [Update Kayobe container image tags](content-workflows.md#updating-container-image-tags-in-kayobe-configuration-zed-release-onwards)
54+
* Test
55+
* Review & merge Kayobe configuration changes
56+
* [Promote container images](content-workflows.md#promoting-container-images-zed-release-onwards) (happens automatically)
3157

3258
## Update Kolla container images
3359

@@ -47,7 +73,7 @@ If using Zed release onwards:
4773
* [Update Kayobe container image tags](content-workflows.md#updating-container-image-tags-in-kayobe-configuration-zed-release-onwards)
4874
* Test
4975
* Review & merge Kayobe configuration changes
50-
* [Promote container images](content-workflows.md#promoting-container-images-zed-release-onwards)
76+
* [Promote container images](content-workflows.md#promoting-container-images-zed-release-onwards) (happens automatically)
5177

5278
## Add a new Kolla container image
5379

docs/usage/content-workflows.md

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@ The playbooks are designed to be run manually or via a GitHub Actions CI job.
66
This page covers the different workflows available for content management.
77
It may be necessary to combine multiple of these to achieve a desired outcome.
88

9+
## Add new package repositories to Release Train
10+
11+
Configuration for package repositories is in:
12+
13+
* [ansible/inventory/group_vars/all/package-repos](https://github.com/stackhpc/stackhpc-release-train/blob/main/ansible/inventory/group_vars/all/package-repos)
14+
15+
New package repositories should be added to `rpm_package_repos` or `deb_package_repos` in `ansible/inventory/group_vars/all/package-repos`.
16+
The format of these variables is defined in the same file.
17+
18+
The following files contain information derived from the above variables and should not need to be modified:
19+
20+
* [ansible/inventory/group_vars/all/dev-pulp-repos](https://github.com/stackhpc/stackhpc-release-train/blob/main/ansible/inventory/group_vars/all/dev-pulp-repos)
21+
* [ansible/inventory/group_vars/all/test-pulp-repos](https://github.com/stackhpc/stackhpc-release-train/blob/main/ansible/inventory/group_vars/all/test-pulp-repos)
22+
923
## Syncing package repositories
1024

1125
The [Sync package repositories](https://github.com/stackhpc/stackhpc-release-train/actions/workflows/package-sync.yml) workflow runs nightly and on demand.
@@ -57,14 +71,6 @@ test_pulp_repository_rpm_repo_versions:
5771
...
5872
```
5973

60-
Configuration for package repositories is in:
61-
62-
* [ansible/inventory/group_vars/all/package-repos](https://github.com/stackhpc/stackhpc-release-train/blob/main/ansible/inventory/group_vars/all/package-repos).
63-
* [ansible/inventory/group_vars/all/dev-pulp-repos](https://github.com/stackhpc/stackhpc-release-train/blob/main/ansible/inventory/group_vars/all/dev-pulp-repos).
64-
* [ansible/inventory/group_vars/all/test-pulp-repos](https://github.com/stackhpc/stackhpc-release-train/blob/main/ansible/inventory/group_vars/all/test-pulp-repos).
65-
66-
New package repositories should be added to `rpm_package_repos` in `ansible/inventory/group_vars/all/package-repos`.
67-
6874
## Promoting package repositories
6975

7076
!!! note
@@ -137,6 +143,21 @@ Package repository versions are stored in StackHPC Kayobe configuration in [etc/
137143
Note that the updated versions are not necessarily released.
138144
The generated file may be amended as necessary (in case not all updates are required), then copied to the StackHPC Kayobe configuration.
139145

146+
## Adding package repositories in Kayobe configuration
147+
148+
Adding a package repository to the StackHPC Release Train configuration is not sufficient to allow StackHPC OpenStack deployments to use it.
149+
The repository must also be defined in StackHPC Kayobe Configuration.
150+
We need to define how to sync the package repository from Ark into the local Pulp, as well as how control plane hosts access the repository in the local Pulp service.
151+
152+
In the following steps, the `short_name` of a repository is the `short_name` field of the repository in [ansible/inventory/group_vars/all/package-repos](https://github.com/stackhpc/stackhpc-release-train/blob/main/ansible/inventory/group_vars/all/package-repos).
153+
154+
* Add details of the repository to `stackhpc_pulp_rpm_repos` or `stackhpc_pulp_deb_repos` in `etc/kayobe/pulp.yml` to enable syncing of the repository to the local Pulp service. Use the `required` field to avoid growing sync durations by controlling when the repository needs to be synced.
155+
* Add a version variable to `etc/kayobe/pulp.yml`. It should have a format of `stackhpc_pulp_repo_<short_name>_version`. The version value may be specified or omitted. If omitted, it can be populated automatically using the [Update Kayobe package repository versions](https://github.com/stackhpc/stackhpc-release-train/actions/workflows/package-update-kayobe.yml) workflow.
156+
* Add local Pulp URL and version variables for the repository to `etc/kayobe/stackhpc.yml`. They should have a format of `stackhpc_repo_<short_name>_url` and `stackhpc_repo_<short_name>_version`.
157+
* Override the repository version variable in `stackhpc-ci.yml` in the `ci-aio`, `ci-builder` and `ci-multinode` Kayobe environments to use the datestamped version.
158+
* If the repository needs to be accessible to the host OS of control plane hosts, add it to `etc/kayobe/dnf.yml` or `etc/kayobe/apt.yml`.
159+
* If the repository needs to be accessible to Kolla container images, add it to the `Kolla image build configuration` section in `etc/kayobe/kolla.yml`.
160+
140161
## Building container images
141162

142163
!!! note
@@ -314,7 +335,7 @@ In this example, the Pulp container image tags defined in the `etc/kayobe/kolla-
314335
This should only be performed when container images are ready for release.
315336

316337
The [Promote container repositories (old)](https://github.com/stackhpc/stackhpc-release-train/actions/workflows/container-promote-old.yml) workflow runs on demand.
317-
It should be run when container images need to be released, typically after a change to [update container image tags](#updating-container-image-tags-in-kayobe-configuration) has been approved.
338+
It should be run when container images need to be released, typically after a change to [update container image tags](#updating-container-image-tags-in-kayobe-configuration-yoga-release-and-earlier) has been approved.
318339
It runs the following playbook:
319340

320341
* `dev-pulp-container-promote-old.yml`: Promote a set of container images from `stackhpc-dev` to `stackhpc` namespace. The tag to be promoted is defined via `dev_pulp_repository_container_promotion_tag` which should be specified as an extra variable (`-e`).

docs/usage/source-code-ci.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Source code continuous integration (CI) is handled by Github Workflows.
44
There are currently three workflows in use, whose objective is to perform tedious tasks or to ensure that the code is correct and style guidelines are being followed.
5-
A brief overview of these workflows was given in the [Overview Section](../index.md#github-actions) whereas this section will provide additional insight into how these workflows function and how you can modify these workflows.
5+
A brief overview of these workflows was given in the [Overview Section](../index.md#automation-continuous-integration-ci) whereas this section will provide additional insight into how these workflows function and how you can modify these workflows.
66
Also discussed are the community files used by Github to improve developer experience within the respositories in addition to how we intend to synchronise all of the source code repositories with latests files.
77

88
## Github Workflows

0 commit comments

Comments
 (0)