Skip to content

Commit 791feda

Browse files
authored
Merge branch 'main' into fix-nightly
2 parents 7f4ebcf + dcdc3c6 commit 791feda

File tree

6 files changed

+230
-28
lines changed

6 files changed

+230
-28
lines changed

ansible/inventory/group_vars/all/package-repos

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ deb_package_repos:
6868
policy: immediate
6969
architectures: amd64
7070
components: main
71-
distributions: focal-updates/yoga jammy-updates/zed jammy-updates/antelope
71+
distributions: focal-updates/yoga jammy-updates/zed jammy-updates/antelope jammy-updates/caracal
7272
mirror: true
7373
mode: verbatim
7474
base_path: ubuntu-cloud-archive/
@@ -389,7 +389,7 @@ rpm_package_repos:
389389
short_name: mariadb_10_6_centos8
390390
sync_group: third_party
391391
distribution_name: mariadb-10.6-centos8
392-
# RabbitMQ - Erlang for Redhat family, version 8/9 agnostic
392+
# RabbitMQ - Erlang for Redhat family, version 8
393393
- name: RabbitMQ - Erlang
394394
url: https://packagecloud.io/rabbitmq/erlang/el/8/x86_64
395395
# mirror_complete fails with:
@@ -399,7 +399,7 @@ rpm_package_repos:
399399
short_name: rabbitmq_erlang
400400
sync_group: third_party
401401
distribution_name: rabbitmq-erlang-
402-
# RabbitMQ for Redhat family, version 8/9 agnostic
402+
# RabbitMQ for Redhat family, version 8
403403
- name: RabbitMQ - Server
404404
url: https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/x86_64
405405
# mirror_complete fails with:
@@ -856,22 +856,59 @@ rpm_package_repos:
856856
short_name: centos_stream_9_openstack_antelope
857857
sync_group: centos
858858
distribution_name: centos-stream-9-openstack-antelope-
859+
# OpenStack Caracal for CentOS Stream 9
860+
- name: CentOS Stream 9 - OpenStack Caracal
861+
url: https://mirror.stream.centos.org/SIGs/9-stream/cloud/x86_64/openstack-caracal/
862+
base_path: centos/9-stream/cloud/x86_64/openstack-caracal/
863+
short_name: centos_stream_9_openstack_caracal
864+
distribution_name: centos-stream-9-openstack-caracal-
859865

860866
# Additional RHEL 9 repositories
867+
# RabbitMQ - Erlang for Redhat family, version 9
868+
- name: RabbitMQ - Erlang - RHEL 9
869+
url: https://packagecloud.io/rabbitmq/erlang/el/9/x86_64
870+
# mirror_complete fails with:
871+
# "This repository uses features which are incompatible with 'mirror' sync. Please sync without mirroring enabled"
872+
sync_policy: mirror_content_only
873+
base_path: rabbitmq/erlang/el/9/x86_64/
874+
short_name: rhel9_rabbitmq_erlang
875+
distribution_name: rhel9-rabbitmq-erlang-
876+
# RabbitMQ for Redhat family, version 9
877+
- name: RabbitMQ - Server - RHEL 9
878+
url: https://packagecloud.io/rabbitmq/rabbitmq-server/el/9/x86_64
879+
# mirror_complete fails with:
880+
# "This repository uses features which are incompatible with 'mirror' sync. Please sync without mirroring enabled"
881+
sync_policy: mirror_content_only
882+
base_path: rabbitmq/rabbitmq-server/el/9/x86_64/
883+
short_name: rhel9_rabbitmq_server
884+
distribution_name: rhel9-rabbitmq-server-
861885
# TreasureData 4 for RHEL 9
862886
- name: TreasureData 4 - RHEL 9
863887
url: http://packages.treasuredata.com/4/redhat/9/x86_64
864888
base_path: treasuredata/4/redhat/9/x86_64/
865889
short_name: rhel_9_treasuredata_4
866890
sync_group: third_party
867-
distribution_name: rhel_9_treasuredata-4-
891+
distribution_name: rhel_9_treasuredata-4-
892+
# TreasureData 5 for RHEL 9
893+
- name: TreasureData 5 - RHEL 9
894+
url: https://packages.treasuredata.com/lts/5/redhat/9/x86_64
895+
base_path: treasuredata/lts/5/redhat/9/x86_64/
896+
short_name: rhel_9_treasuredata_5
897+
sync_group: third_party
898+
distribution_name: rhel_9_treasuredata-5-
868899
# MariaDB 10.6 for RHEL 9
869900
- name: MariaDB 10.6 - RHEL 9
870901
url: https://dlm.mariadb.com/repo/mariadb-server/10.6/yum/rhel/9/x86_64
871902
base_path: mariadb-10.6/yum/rhel/9/x86_64/
872903
short_name: rhel_9_mariadb_10_6
873904
sync_group: third_party
874905
distribution_name: mariadb-10.6-rhel-9-
906+
# MariaDB 10.11 for RHEL 9
907+
- name: MariaDB 10.11 - RHEL 9
908+
url: https://dlm.mariadb.com/repo/mariadb-server/10.11/yum/rhel/9/x86_64
909+
base_path: mariadb-10.11/yum/rhel/9/x86_64/
910+
short_name: rhel_9_mariadb_10_11
911+
distribution_name: mariadb-10.11-rhel-9-
875912
# InfluxDB for RHEL 9
876913
- name: InfluxDB - RHEL 9
877914
url: https://repos.influxdata.com/rhel/9/x86_64/stable/

ansible/inventory/group_vars/all/source-repositories

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,22 @@ source_repositories:
284284
- codeowners:
285285
content: "{{ community_files.codeowners.openstack }}"
286286
dest: ".github/CODEOWNERS"
287+
ovn-octavia-provider:
288+
ignored_releases:
289+
- victoria
290+
- wallaby
291+
- xena
292+
- yoga
293+
- zed
294+
- 2024.1
295+
workflows:
296+
ignored_workflows:
297+
elsewhere:
298+
- tox
299+
community_files:
300+
- codeowners:
301+
content: "{{ community_files.codeowners.openstack }}"
302+
dest: ".github/CODEOWNERS"
287303
sahara-dashboard:
288304
ignored_releases:
289305
- victoria

docs/usage/source-code-ci.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The table below contains the different workflows with a description of each and
2727

2828
OpenStack use [Tox](https://wiki.openstack.org/wiki/Testing) to manage the unit tests and style checks for the various projects they maintain.
2929
Therefore, when a `pull request` is opened the tox workflow will automatically perform a series of unit tests and linting in order ensure correctness and style guidelines are being met.
30-
The python environment will depend on the branch pre-Zed, python 3.6 and python 3.8 will be tested. From Zed onward, python 3.8 and python 3.10 will be tested.
30+
The python environment will depend on the branch pre-Zed, python 3.6 and python 3.8 will be tested. From Zed onward, python 3.8 and python 3.10 will be tested, though only python 3.10 will be required for Caracal.
3131
This can be controlled within the strategy matrix of the workflow.
3232
The Python versions should correspond to those used in the supported OS distributions for a particular release.
3333
The source for the workflow can be found [here](https://github.com/stackhpc/.github/blob/main/.github/workflows/tox.yml).

terraform/github/branches.tf

Lines changed: 144 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,11 @@ resource "github_branch_protection" "kayobe_branch_protection_py_3-6" {
100100
}
101101
}
102102

103-
resource "github_branch_protection" "kayobe_branch_protection_py_3-10" {
103+
resource "github_branch_protection" "kayobe_branch_protection_zed" {
104104
for_each = toset(var.repositories["Kayobe"])
105105
repository_id = data.github_repository.repositories[each.key].node_id
106106

107-
pattern = "stackhpc/[z,2]*"
107+
pattern = "stackhpc/zed"
108108
require_conversation_resolution = true
109109
allows_deletions = false
110110
allows_force_pushes = false
@@ -120,7 +120,7 @@ resource "github_branch_protection" "kayobe_branch_protection_py_3-10" {
120120
]
121121

122122
required_status_checks {
123-
contexts = lookup(lookup(var.required_status_checks, each.key, {}), "stackhpc/[z,2]*", lookup(var.required_status_checks, each.key, {
123+
contexts = lookup(lookup(var.required_status_checks, each.key, {}), "stackhpc/zed", lookup(var.required_status_checks, each.key, {
124124
"default" : [
125125
"tox / Tox pep8 with Python 3.10",
126126
"tox / Tox py3 with Python 3.10",
@@ -135,6 +135,75 @@ resource "github_branch_protection" "kayobe_branch_protection_py_3-10" {
135135
}
136136
}
137137

138+
resource "github_branch_protection" "kayobe_branch_protection_antelope" {
139+
for_each = toset(var.repositories["Kayobe"])
140+
repository_id = data.github_repository.repositories[each.key].node_id
141+
142+
pattern = "stackhpc/2023.1"
143+
require_conversation_resolution = true
144+
allows_deletions = false
145+
allows_force_pushes = false
146+
147+
required_pull_request_reviews {
148+
dismiss_stale_reviews = true
149+
require_code_owner_reviews = true
150+
required_approving_review_count = 1
151+
}
152+
153+
push_restrictions = [
154+
resource.github_team.organisation_teams["Developers"].node_id
155+
]
156+
157+
required_status_checks {
158+
contexts = lookup(lookup(var.required_status_checks, each.key, {}), "stackhpc/2023.1", lookup(var.required_status_checks, each.key, {
159+
"default" : [
160+
"tox / Tox pep8 with Python 3.10",
161+
"tox / Tox py3 with Python 3.10",
162+
"tox / Tox py3 with Python 3.8"
163+
]
164+
}).default)
165+
strict = false
166+
}
167+
168+
lifecycle {
169+
prevent_destroy = true
170+
}
171+
}
172+
173+
resource "github_branch_protection" "kayobe_branch_protection_caracal" {
174+
for_each = toset(var.repositories["Kayobe"])
175+
repository_id = data.github_repository.repositories[each.key].node_id
176+
177+
pattern = "stackhpc/2024.1"
178+
require_conversation_resolution = true
179+
allows_deletions = false
180+
allows_force_pushes = false
181+
182+
required_pull_request_reviews {
183+
dismiss_stale_reviews = true
184+
require_code_owner_reviews = true
185+
required_approving_review_count = 1
186+
}
187+
188+
push_restrictions = [
189+
resource.github_team.organisation_teams["Developers"].node_id
190+
]
191+
192+
required_status_checks {
193+
contexts = lookup(lookup(var.required_status_checks, each.key, {}), "stackhpc/2024.1", lookup(var.required_status_checks, each.key, {
194+
"default" : [
195+
"tox / Tox pep8 with Python 3.10",
196+
"tox / Tox py3 with Python 3.10"
197+
]
198+
}).default)
199+
strict = false
200+
}
201+
202+
lifecycle {
203+
prevent_destroy = true
204+
}
205+
}
206+
138207
resource "github_branch_protection" "openstack_branch_protection_py_3-6" {
139208
for_each = toset(var.repositories["OpenStack"])
140209
repository_id = data.github_repository.repositories[each.key].node_id
@@ -173,11 +242,11 @@ resource "github_branch_protection" "openstack_branch_protection_py_3-6" {
173242
}
174243
}
175244

176-
resource "github_branch_protection" "openstack_branch_protection_py_3-10" {
245+
resource "github_branch_protection" "openstack_branch_protection_zed" {
177246
for_each = toset(var.repositories["OpenStack"])
178247
repository_id = data.github_repository.repositories[each.key].node_id
179248

180-
pattern = "stackhpc/[z,2]*"
249+
pattern = "stackhpc/zed"
181250
require_conversation_resolution = true
182251
allows_deletions = false
183252
allows_force_pushes = false
@@ -193,7 +262,7 @@ resource "github_branch_protection" "openstack_branch_protection_py_3-10" {
193262
}
194263

195264
required_status_checks {
196-
contexts = lookup(lookup(var.required_status_checks, each.key, {}), "stackhpc/[z,2]*", lookup(var.required_status_checks, each.key, {
265+
contexts = lookup(lookup(var.required_status_checks, each.key, {}), "stackhpc/zed", lookup(var.required_status_checks, each.key, {
197266
"default" : [
198267
"tox / Tox pep8 with Python 3.10",
199268
"tox / Tox py3 with Python 3.10",
@@ -208,6 +277,75 @@ resource "github_branch_protection" "openstack_branch_protection_py_3-10" {
208277
}
209278
}
210279

280+
resource "github_branch_protection" "openstack_branch_protection_antelope" {
281+
for_each = toset(var.repositories["OpenStack"])
282+
repository_id = data.github_repository.repositories[each.key].node_id
283+
284+
pattern = "stackhpc/2023.1"
285+
require_conversation_resolution = true
286+
allows_deletions = false
287+
allows_force_pushes = false
288+
289+
push_restrictions = [
290+
resource.github_team.organisation_teams["Developers"].node_id
291+
]
292+
293+
required_pull_request_reviews {
294+
dismiss_stale_reviews = true
295+
require_code_owner_reviews = true
296+
required_approving_review_count = 1
297+
}
298+
299+
required_status_checks {
300+
contexts = lookup(lookup(var.required_status_checks, each.key, {}), "stackhpc/2023.1", lookup(var.required_status_checks, each.key, {
301+
"default" : [
302+
"tox / Tox pep8 with Python 3.10",
303+
"tox / Tox py3 with Python 3.10",
304+
"tox / Tox py3 with Python 3.8"
305+
]
306+
}).default)
307+
strict = false
308+
}
309+
310+
lifecycle {
311+
prevent_destroy = false
312+
}
313+
}
314+
315+
resource "github_branch_protection" "openstack_branch_protection_caracal" {
316+
for_each = toset(var.repositories["OpenStack"])
317+
repository_id = data.github_repository.repositories[each.key].node_id
318+
319+
pattern = "stackhpc/2024.1"
320+
require_conversation_resolution = true
321+
allows_deletions = false
322+
allows_force_pushes = false
323+
324+
push_restrictions = [
325+
resource.github_team.organisation_teams["Developers"].node_id
326+
]
327+
328+
required_pull_request_reviews {
329+
dismiss_stale_reviews = true
330+
require_code_owner_reviews = true
331+
required_approving_review_count = 1
332+
}
333+
334+
required_status_checks {
335+
contexts = lookup(lookup(var.required_status_checks, each.key, {}), "stackhpc/2024.1", lookup(var.required_status_checks, each.key, {
336+
"default" : [
337+
"tox / Tox pep8 with Python 3.10",
338+
"tox / Tox py3 with Python 3.10"
339+
]
340+
}).default)
341+
strict = false
342+
}
343+
344+
lifecycle {
345+
prevent_destroy = false
346+
}
347+
}
348+
211349
resource "github_branch_protection" "platform_branch_protection" {
212350
for_each = toset(var.repositories["Platform"])
213351
repository_id = data.github_repository.repositories[each.key].node_id

terraform/github/import_resources.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44
Import existing GitHub resources from the `stackhpc` organisation
55
so that they maybe managed by Terraform. It shall only import resources
6-
that are defined within the `terraform.tfvars.json` file nd are currently
6+
that are defined within the `terraform.tfvars.json` file and are currently
77
available on GitHub.
88
"""
99

@@ -223,9 +223,17 @@ def main() -> None:
223223
branch_protection_resource = BranchProtection(team_id.name.lower(
224224
), {f"{name}:stackhpc/[vwxy]*": name for name in team_repositories}, parsed_args.dry_run, "_py_3-6")
225225
branch_protection_resource.refresh_resource()
226-
# Post-Zed branch protection
226+
# Zed branch protection
227227
branch_protection_resource = BranchProtection(team_id.name.lower(
228-
), {f"{name}:stackhpc/[z,2]*": name for name in team_repositories}, parsed_args.dry_run, "_py_3-10")
228+
), {f"{name}:stackhpc/zed": name for name in team_repositories}, parsed_args.dry_run, "_zed")
229+
branch_protection_resource.refresh_resource()
230+
# Antelope branch protection
231+
branch_protection_resource = BranchProtection(team_id.name.lower(
232+
), {f"{name}:stackhpc/2023.1": name for name in team_repositories}, parsed_args.dry_run, "_antelope")
233+
branch_protection_resource.refresh_resource()
234+
# Caracal branch protection
235+
branch_protection_resource = BranchProtection(team_id.name.lower(
236+
), {f"{name}:stackhpc/2024.1": name for name in team_repositories}, parsed_args.dry_run, "_caracal")
229237
branch_protection_resource.refresh_resource()
230238
else:
231239
branch_protection_resource = BranchProtection(team_id.name.lower(

0 commit comments

Comments
 (0)