Skip to content

Commit cd566b4

Browse files
authored
Merge pull request #389 from stackhpc/xena-wallaby-merge
xena: wallaby merge
2 parents bef9bf8 + 268b906 commit cd566b4

File tree

9 files changed

+282
-15
lines changed

9 files changed

+282
-15
lines changed

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

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ jobs:
6464
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
6565
KAYOBE_IMAGE: ${{ inputs.kayobe_image }}
6666
steps:
67-
- uses: actions/checkout@v2
67+
- uses: actions/checkout@v3
6868
with:
6969
submodules: true
7070

7171
- name: Install terraform
72-
uses: hashicorp/setup-terraform@v1
72+
uses: hashicorp/setup-terraform@v2
7373

7474
- name: Initialise terraform
7575
run: terraform init
@@ -167,16 +167,14 @@ jobs:
167167
ENABLE_OVN: ${{ inputs.neutron_plugin == 'ovn' }}
168168
OS_DISTRIBUTION: ${{ inputs.os_distribution }}
169169

170-
# https://renehernandez.io/snippets/multiline-strings-as-a-job-output-in-github-actions/
170+
# Use a heredoc to define a multiline string output
171+
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
171172
- name: Set SSH key output
172173
id: ssh_key
173174
run: |
174-
ssh_key="$(cat terraform/aio/id_rsa)"
175-
ssh_key="${ssh_key//'%'/'%25'}"
176-
ssh_key="${ssh_key//$'\n'/'%0A'}"
177-
ssh_key="${ssh_key//$'\r'/'%0D'}"
178-
echo "::add-mask::$ssh_key"
179-
echo "::set-output name=ssh_key::$ssh_key"
175+
echo "ssh_key<<EOF" >> $GITHUB_OUTPUT
176+
cat terraform/aio/id_rsa >> $GITHUB_OUTPUT
177+
echo "EOF" >> $GITHUB_OUTPUT
180178
181179
# The same tag may be reused (e.g. pr-123), so ensure we have the latest image.
182180
- name: Pull latest Kayobe image

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,20 @@ jobs:
3737
steps:
3838
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
3939
- name: Checkout kayobe config
40-
uses: actions/checkout@v2
40+
uses: actions/checkout@v3
4141
with:
4242
submodules: true
4343

4444
- name: Log in to the Container registry
45-
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
45+
uses: docker/login-action@v2
4646
with:
4747
registry: ${{ env.REGISTRY }}
4848
username: ${{ github.actor }}
4949
password: ${{ secrets.GITHUB_TOKEN }}
5050

5151
- name: Extract metadata (tags, labels) for Docker
5252
id: meta
53-
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
53+
uses: docker/metadata-action@v4
5454
with:
5555
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
5656

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,10 +167,15 @@ jobs:
167167
# stackhpc-release-train repository.
168168
- name: Trigger container image repository sync
169169
run: |
170+
filter='${{ inputs.regexes }}'
171+
if [[ -n $filter ]] && [[ ${{ github.event.inputs.seed }} == 'true' ]]; then
172+
filter="$filter bifrost"
173+
fi
170174
gh workflow run \
171175
container-sync.yml \
172176
--repo stackhpc/stackhpc-release-train \
173-
--ref main
177+
--ref main \
178+
-f filter="$filter"
174179
env:
175180
GITHUB_TOKEN: ${{ secrets.STACKHPC_RELEASE_TRAIN_TOKEN }}
176181

.github/workflows/stackhpc-pull-request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
with:
2929
fetch-depth: 0
3030
- name: Setup Python ${{ matrix.python-version }} 🐍
31-
uses: actions/setup-python@v3
31+
uses: actions/setup-python@v4
3232
with:
3333
python-version: ${{ matrix.python-version }}
3434
- name: Install Tox 📦

etc/kayobe/containers/pulp/post.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,13 @@
1717
register: pulp_manager_result
1818
failed_when:
1919
- "'Successfully set password' not in pulp_manager_result.stdout"
20+
21+
- name: Manage Pulp content checksums
22+
become: true
23+
command: >-
24+
docker exec -u root pulp
25+
bash -c
26+
'pulpcore-manager handle-artifact-checksums'
27+
when:
28+
- stackhpc_pulp_sync_for_local_container_build | bool
29+
- pulp_settings.changed

etc/kayobe/containers/pulp/pre.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
dest: /opt/kayobe/containers/pulp/settings.py
2020
mode: 0644
2121
become: true
22+
register: pulp_settings
2223

2324
- name: Configure TLS for local Pulp
2425
when: pulp_enable_tls | bool

etc/kayobe/containers/pulp/settings.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@
22
ANSIBLE_API_HOSTNAME='{{ pulp_url }}'
33
ANSIBLE_CONTENT_HOSTNAME='{{ pulp_url }}/pulp/content'
44
TOKEN_AUTH_DISABLED=True
5+
{% if stackhpc_pulp_sync_for_local_container_build | bool %}
6+
ALLOWED_CONTENT_CHECKSUMS = ["sha1", "sha224", "sha256", "sha384", "sha512"]
7+
{% endif %}
8+

etc/kayobe/pulp.yml

Lines changed: 242 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,18 @@ pulp_proxy_url: "{{ omit }}"
3535
# Base URL of the StackHPC Pulp service.
3636
stackhpc_release_pulp_url: "https://ark.stackhpc.com"
3737

38-
# Credentials used to access the StackHPC Ark pulp server.
38+
# Credentials used to access the StackHPC Pulp service.
3939
stackhpc_release_pulp_username:
4040
stackhpc_release_pulp_password:
4141

4242
# Content URL of the StackHPC Pulp service.
4343
stackhpc_release_pulp_content_url: "{{ stackhpc_release_pulp_url }}/pulp/content"
4444

45+
# Sync all repositories required for building Kolla images from the
46+
# StackHPC Ark Pulp service to local Pulp.
47+
# NOTE: Only RPM repositories are supported.
48+
stackhpc_pulp_sync_for_local_container_build: false
49+
4550
###############################################################################
4651
# Debs
4752

@@ -333,6 +338,128 @@ stackhpc_pulp_repository_rpm_repos:
333338
state: present
334339
required: "{{ stackhpc_pulp_sync_el_8 }}"
335340

341+
# Additional repositories required to build Kolla containers from local Pulp service.
342+
- name: CentOS Stream 8 - OpenStack Xena
343+
url: "{{ stackhpc_release_pulp_content_url }}/centos/8-stream/cloud/x86_64/openstack-xena/{{ stackhpc_pulp_repo_centos_stream_8_openstack_xena_version }}"
344+
remote_username: "{{ stackhpc_release_pulp_username }}"
345+
remote_password: "{{ stackhpc_release_pulp_password }}"
346+
client_cert: ""
347+
client_key: ""
348+
policy: on_demand
349+
sync_policy: mirror_complete
350+
state: present
351+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
352+
353+
- name: CentOS Stream 8 - Advanced Virtualization
354+
url: "{{ stackhpc_release_pulp_content_url }}/centos/8-stream/virt/x86_64/advancedvirt-common/{{ stackhpc_pulp_repo_centos_stream_8_advanced_virtualization_version }}"
355+
remote_username: "{{ stackhpc_release_pulp_username }}"
356+
remote_password: "{{ stackhpc_release_pulp_password }}"
357+
client_cert: ""
358+
client_key: ""
359+
policy: on_demand
360+
sync_policy: mirror_complete
361+
state: present
362+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
363+
364+
- name: CentOS Stream 8 - NFV OpenvSwitch
365+
url: "{{ stackhpc_release_pulp_content_url }}/centos/8-stream/nfv/x86_64/openvswitch-2/{{ stackhpc_pulp_repo_centos_stream_8_nfv_openvswitch_version }}"
366+
remote_username: "{{ stackhpc_release_pulp_username }}"
367+
remote_password: "{{ stackhpc_release_pulp_password }}"
368+
client_cert: ""
369+
client_key: ""
370+
policy: on_demand
371+
sync_policy: mirror_complete
372+
state: present
373+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
374+
375+
- name: CentOS Stream 8 - PowerTools
376+
url: "{{ stackhpc_release_pulp_content_url }}/centos/8-stream/PowerTools/x86_64/os/{{ stackhpc_pulp_repo_centos_stream_8_powertools_version }}"
377+
remote_username: "{{ stackhpc_release_pulp_username }}"
378+
remote_password: "{{ stackhpc_release_pulp_password }}"
379+
client_cert: ""
380+
client_key: ""
381+
policy: on_demand
382+
sync_policy: mirror_complete
383+
state: present
384+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
385+
386+
- name: CentOS 8 - OpsTools - collectd
387+
url: "{{ stackhpc_release_pulp_content_url }}/centos/8-stream/opstools/x86_64/collectd-5/{{ stackhpc_pulp_repo_centos_stream_8_opstools_version }}"
388+
remote_username: "{{ stackhpc_release_pulp_username }}"
389+
remote_password: "{{ stackhpc_release_pulp_password }}"
390+
client_cert: ""
391+
client_key: ""
392+
policy: on_demand
393+
sync_policy: mirror_complete
394+
state: present
395+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
396+
397+
- name: CentOS Stream 8 - Ceph Pacific
398+
url: "{{ stackhpc_release_pulp_content_url }}/centos/8-stream/storage/x86_64/ceph-pacific/{{ stackhpc_pulp_repo_centos_stream_8_storage_ceph_pacific_version }}"
399+
remote_username: "{{ stackhpc_release_pulp_username }}"
400+
remote_password: "{{ stackhpc_release_pulp_password }}"
401+
client_cert: ""
402+
client_key: ""
403+
policy: on_demand
404+
sync_policy: mirror_complete
405+
state: present
406+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
407+
408+
- name: ELK repository for 7.x packages
409+
url: "{{ stackhpc_release_pulp_content_url }}/elasticsearch/oss-7.x/{{ stackhpc_pulp_repo_elasticsearch_logstash_kibana_7_x_version }}"
410+
remote_username: "{{ stackhpc_release_pulp_username }}"
411+
remote_password: "{{ stackhpc_release_pulp_password }}"
412+
client_cert: ""
413+
client_key: ""
414+
policy: on_demand
415+
sync_policy: mirror_complete
416+
state: present
417+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
418+
419+
- name: Grafana
420+
url: "{{ stackhpc_release_pulp_content_url }}/grafana/oss/rpm/{{ stackhpc_pulp_repo_grafana_version }}"
421+
remote_username: "{{ stackhpc_release_pulp_username }}"
422+
remote_password: "{{ stackhpc_release_pulp_password }}"
423+
client_cert: ""
424+
client_key: ""
425+
policy: on_demand
426+
sync_policy: mirror_complete
427+
state: present
428+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
429+
430+
- name: RabbitMQ - Erlang
431+
url: "{{ stackhpc_release_pulp_content_url }}/rabbitmq/erlang/el/8/x86_64/{{ stackhpc_pulp_repo_rabbitmq_erlang_version }}"
432+
remote_username: "{{ stackhpc_release_pulp_username }}"
433+
remote_password: "{{ stackhpc_release_pulp_password }}"
434+
client_cert: ""
435+
client_key: ""
436+
policy: on_demand
437+
sync_policy: mirror_complete
438+
state: present
439+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
440+
441+
- name: RabbitMQ - Server
442+
url: "{{ stackhpc_release_pulp_content_url }}/rabbitmq/rabbitmq-server/el/8/x86_64/{{ stackhpc_pulp_repo_rabbitmq_server_version }}"
443+
remote_username: "{{ stackhpc_release_pulp_username }}"
444+
remote_password: "{{ stackhpc_release_pulp_password }}"
445+
client_cert: ""
446+
client_key: ""
447+
policy: on_demand
448+
sync_policy: mirror_complete
449+
state: present
450+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
451+
452+
- name: TreasureData 4
453+
url: "{{ stackhpc_release_pulp_content_url }}/treasuredata/4/redhat/8/x86_64/{{ stackhpc_pulp_repo_treasuredata_4_version }}"
454+
remote_username: "{{ stackhpc_release_pulp_username }}"
455+
remote_password: "{{ stackhpc_release_pulp_password }}"
456+
client_cert: ""
457+
client_key: ""
458+
policy: on_demand
459+
sync_policy: mirror_complete
460+
state: present
461+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
462+
336463
# Publication format is a subset of distribution.
337464
stackhpc_pulp_publication_rpm_development: "{{ stackhpc_pulp_distribution_rpm_development }}"
338465

@@ -404,6 +531,63 @@ stackhpc_pulp_distribution_rpm_development:
404531
state: present
405532
required: "{{ stackhpc_pulp_sync_el_8 | bool }}"
406533

534+
# Additional repositories required to build Kolla containers from local Pulp service.
535+
- name: "centos-stream-8-openstack-xena-development"
536+
base_path: "centos/8-stream/cloud/x86_64/openstack-xena/development"
537+
repository: CentOS Stream 8 - OpenStack Xena
538+
state: present
539+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
540+
- name: "centos-stream-8-advanced-virtualization-development"
541+
base_path: "centos/8-stream/virt/x86_64/advancedvirt-common/development"
542+
repository: CentOS Stream 8 - Advanced Virtualization
543+
state: present
544+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
545+
- name: "centos-stream-8-nfv-openvswitch-development"
546+
base_path: "centos/8-stream/nfv/x86_64/openvswitch-2/development"
547+
repository: CentOS Stream 8 - NFV OpenvSwitch
548+
state: present
549+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
550+
- name: "centos-stream-8-powertools-development"
551+
base_path: "centos/8-stream/PowerTools/x86_64/os/development"
552+
repository: CentOS Stream 8 - PowerTools
553+
state: present
554+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
555+
- name: "centos-8-opstools-collectd-development"
556+
base_path: "centos/8-stream/opstools/x86_64/collectd-5/development"
557+
repository: CentOS 8 - OpsTools - collectd
558+
state: present
559+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
560+
- name: "centos-stream-8-ceph-pacific-development"
561+
base_path: "centos/8-stream/storage/x86_64/ceph-pacific/development"
562+
repository: CentOS Stream 8 - Ceph Pacific
563+
state: present
564+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
565+
- name: "elasticsearch-logstash-kibana-7.x-development"
566+
base_path: "elasticsearch/oss-7.x/development"
567+
repository: ELK repository for 7.x packages
568+
state: present
569+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
570+
- name: "grafana-development"
571+
base_path: "grafana/oss/rpm/development"
572+
repository: Grafana
573+
state: present
574+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
575+
- name: "rabbitmq-erlang-development"
576+
base_path: "rabbitmq/erlang/el/8/x86_64/development"
577+
repository: RabbitMQ - Erlang
578+
state: present
579+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
580+
- name: "rabbitmq-server-development"
581+
base_path: "rabbitmq/rabbitmq-server/el/8/x86_64/development"
582+
repository: RabbitMQ - Server
583+
state: present
584+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
585+
- name: "treasuredata-4-development"
586+
base_path: "treasuredata/4/redhat/8/x86_64/development"
587+
repository: TreasureData 4
588+
state: present
589+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
590+
407591
# Development gets promoted to production.
408592
stackhpc_pulp_distribution_rpm_production:
409593
# Base CentOS 8 Stream repositories
@@ -469,6 +653,63 @@ stackhpc_pulp_distribution_rpm_production:
469653
state: present
470654
required: "{{ stackhpc_pulp_sync_el_8 | bool }}"
471655

656+
# Additional repositories required to build Kolla containers from local Pulp service.
657+
- name: "centos-stream-8-openstack-xena-production"
658+
base_path: "centos/8-stream/cloud/x86_64/openstack-xena/production"
659+
repository: CentOS Stream 8 - OpenStack Xena
660+
state: present
661+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
662+
- name: "centos-stream-8-advanced-virtualization-production"
663+
base_path: "centos/8-stream/virt/x86_64/advancedvirt-common/production"
664+
repository: CentOS Stream 8 - Advanced Virtualization
665+
state: present
666+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
667+
- name: "centos-stream-8-nfv-openvswitch-production"
668+
base_path: "centos/8-stream/nfv/x86_64/openvswitch-2/production"
669+
repository: CentOS Stream 8 - NFV OpenvSwitch
670+
state: present
671+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
672+
- name: "centos-stream-8-powertools-production"
673+
base_path: "centos/8-stream/PowerTools/x86_64/os/production"
674+
repository: CentOS Stream 8 - PowerTools
675+
state: present
676+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
677+
- name: "centos-8-opstools-collectd-production"
678+
base_path: "centos/8-stream/opstools/x86_64/collectd-5/production"
679+
repository: CentOS 8 - OpsTools - collectd
680+
state: present
681+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
682+
- name: "centos-stream-8-ceph-pacific-production"
683+
base_path: "centos/8-stream/storage/x86_64/ceph-pacific/production"
684+
repository: CentOS Stream 8 - Ceph Pacific
685+
state: present
686+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
687+
- name: "elasticsearch-logstash-kibana-7.x-production"
688+
base_path: "elasticsearch/oss-7.x/production"
689+
repository: ELK repository for 7.x packages
690+
state: present
691+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
692+
- name: "grafana-production"
693+
base_path: "grafana/oss/rpm/production"
694+
repository: Grafana
695+
state: present
696+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
697+
- name: "rabbitmq-erlang-production"
698+
base_path: "rabbitmq/erlang/el/8/x86_64/production"
699+
repository: RabbitMQ - Erlang
700+
state: present
701+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
702+
- name: "rabbitmq-server-production"
703+
base_path: "rabbitmq/rabbitmq-server/el/8/x86_64/production"
704+
repository: RabbitMQ - Server
705+
state: present
706+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
707+
- name: "treasuredata-4-production"
708+
base_path: "treasuredata/4/redhat/8/x86_64/production"
709+
repository: TreasureData 4
710+
state: present
711+
required: "{{ stackhpc_pulp_sync_for_local_container_build | bool and stackhpc_pulp_sync_el_8 | bool }}"
712+
472713
###############################################################################
473714
# Containers
474715

0 commit comments

Comments
 (0)