Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .automation
Submodule .automation updated 37 files
+10 −2 docker/kayobe/Dockerfile
+1 −0 pipeline
+0 −0 scripts/config-diff.sh
+2 −2 scripts/infra-vm-host-configure.sh
+2 −2 scripts/infra-vm-host-package-update.sh
+2 −2 scripts/infra-vm-provision.sh
+2 −2 scripts/infra-vm-service-deploy.sh
+2 −2 scripts/network-connectivity-check.sh
+1 −1 scripts/overcloud-container-image-build.sh
+17 −0 scripts/overcloud-container-image-pull.sh
+2 −2 scripts/overcloud-database-backup.sh
+2 −2 scripts/overcloud-deployment-image-build.sh
+17 −0 scripts/overcloud-host-command-run.sh
+2 −2 scripts/overcloud-host-configure.sh
+2 −2 scripts/overcloud-host-image-build.sh
+2 −2 scripts/overcloud-host-package-update.sh
+17 −0 scripts/overcloud-host-upgrade.sh
+2 −2 scripts/overcloud-inventory-discover.sh
+2 −2 scripts/overcloud-provision.sh
+1 −1 scripts/overcloud-service-deploy.sh
+1 −1 scripts/overcloud-service-reconfigure.sh
+1 −1 scripts/overcloud-service-upgrade.sh
+2 −2 scripts/physical-network-configure.sh
+8 −4 scripts/playbook-run.sh
+17 −0 scripts/runbook-overcloud-deploy.sh
+17 −0 scripts/runbook-overcloud-prepare-snapshot.sh
+22 −0 scripts/runbook-overcloud-upgrade-staged.sh
+19 −0 scripts/runbook-overcloud-upgrade.sh
+2 −2 scripts/seed-container-image-build.sh
+2 −2 scripts/seed-host-configure.sh
+2 −2 scripts/seed-host-package-update.sh
+2 −2 scripts/seed-hypervisor-host-configure.sh
+2 −2 scripts/seed-hypervisor-host-package-update.sh
+2 −2 scripts/seed-service-deploy.sh
+2 −2 scripts/seed-vm-provision.sh
+0 −0 scripts/tempest.sh
+2 −2 utils/kayobe-automation-run.sh
17 changes: 13 additions & 4 deletions .github/workflows/stackhpc-all-in-one.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ on:
description: Kayobe container image
type: string
required: true
os_distribution:
description: Host OS distribution
type: string
default: centos
neutron_plugin:
description: Neutron ML2 plugin
type: string
Expand All @@ -19,6 +23,10 @@ on:
description: Image for the all-in-one VM
type: string
default: CentOS-stream8
vm_interface:
description: Default network interface name
type: string
default: eth0
vm_flavor:
description: Flavor for the all-in-one VM
type: string
Expand Down Expand Up @@ -81,11 +89,10 @@ jobs:
- name: Generate terraform.tfvars
run: |
cat << EOF > terraform.tfvars
ssh_private_key = "id_rsa"
ssh_public_key = "id_rsa.pub"
aio_vm_interface = "${{ env.VM_INTERFACE }}"
aio_vm_name = "${{ env.VM_NAME }}"
aio_vm_image = "${{ env.VM_IMAGE }}"
aio_vm_keypair = "${{ env.VM_KEYPAIR }}"
aio_vm_flavor = "${{ env.VM_FLAVOR }}"
aio_vm_network = "${{ env.VM_NETWORK }}"
aio_vm_subnet = "${{ env.VM_SUBNET }}"
Expand All @@ -94,10 +101,10 @@ jobs:
env:
VM_NAME: "skc-ci-aio-${{ inputs.neutron_plugin }}-${{ github.run_id }}"
VM_IMAGE: ${{ inputs.vm_image }}
VM_KEYPAIR: "skc-ci-aio-${{ inputs.neutron_plugin }}-${{ github.run_id }}"
VM_FLAVOR: ${{ inputs.vm_flavor }}
VM_NETWORK: ${{ inputs.vm_network }}
VM_SUBNET: ${{ inputs.vm_subnet }}
VM_INTERFACE: ${{ inputs.vm_interface }}

- name: Terraform Plan
run: terraform plan
Expand Down Expand Up @@ -151,10 +158,12 @@ jobs:
run: |
cat << EOF > etc/kayobe/environments/$KAYOBE_ENVIRONMENT/zz-aio-scenario.yml
---
os_distribution: ${{ env.OS_DISTRIBUTION }}
kolla_enable_ovn: ${{ env.ENABLE_OVN }}
EOF
env:
ENABLE_OVN: ${{ inputs.neutron_plugin == 'ovn' }}
OS_DISTRIBUTION: ${{ inputs.os_distribution }}

# https://renehernandez.io/snippets/multiline-strings-as-a-job-output-in-github-actions/
- name: Set SSH key output
Expand Down Expand Up @@ -217,7 +226,7 @@ jobs:
- name: Upload test result artifacts
uses: actions/upload-artifact@v3
with:
name: tempest-results-${{ inputs.neutron_plugin }}
name: tempest-results-${{ inputs.os_distribution }}-${{ inputs.neutron_plugin }}
path: tempest-artifacts/*

- name: Fail if any Tempest tests failed
Expand Down
38 changes: 34 additions & 4 deletions .github/workflows/stackhpc-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ jobs:
uses: ./.github/workflows/stackhpc-build-kayobe-image.yml
if: github.repository == 'stackhpc/stackhpc-kayobe-config'

all-in-one-ovs:
name: aio (OVS)
all-in-one-centos-ovs:
name: aio (CentOS OVS)
needs:
- build-kayobe-image
uses: ./.github/workflows/stackhpc-all-in-one.yml
Expand All @@ -47,8 +47,8 @@ jobs:
secrets: inherit
if: github.repository == 'stackhpc/stackhpc-kayobe-config'

all-in-one-ovn:
name: aio (OVN)
all-in-one-centos-ovn:
name: aio (CentOS OVN)
needs:
- build-kayobe-image
uses: ./.github/workflows/stackhpc-all-in-one.yml
Expand All @@ -58,3 +58,33 @@ jobs:
OS_CLOUD: sms-lab-release
secrets: inherit
if: github.repository == 'stackhpc/stackhpc-kayobe-config'

all-in-one-rocky-ovs:
name: aio (Rocky OVS)
needs:
- build-kayobe-image
uses: ./.github/workflows/stackhpc-all-in-one.yml
with:
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
os_distribution: rocky
neutron_plugin: ovs
vm_image: Rocky8
vm_interface: ens3
OS_CLOUD: sms-lab-release
secrets: inherit
if: github.repository == 'stackhpc/stackhpc-kayobe-config'

all-in-one-rocky-ovn:
name: aio (Rocky OVN)
needs:
- build-kayobe-image
uses: ./.github/workflows/stackhpc-all-in-one.yml
with:
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
os_distribution: rocky
neutron_plugin: ovn
vm_image: Rocky8
vm_interface: ens3
OS_CLOUD: sms-lab-release
secrets: inherit
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
91 changes: 50 additions & 41 deletions etc/kayobe/ansible/configure-aio-resources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,47 +6,56 @@
vars:
venv: '{{ virtualenv_path }}/openstack'
tasks:
- block:
- name: Install python openstack client
pip:
name: python-openstackclient
virtualenv: '{{ venv }}'
extra_args: -c "{{ pip_upper_constraints_file }}"
- name: Install python build dependencies
package:
name:
- "{% if ansible_facts.os_family == 'RedHat' %}gcc{% else %}build-essential{% endif %}"
- "python3-dev{% if ansible_facts.os_family == 'RedHat' %}el{% endif %}"
cache_valid_time: "{{ apt_cache_valid_time if ansible_facts.os_family == 'Debian' else omit }}"
update_cache: "{{ True if ansible_facts.os_family == 'Debian' else omit }}"
state: present
become: true

- name: Include kolla secrets
include_vars:
dir: '{{ kayobe_env_config_path }}/kolla/'
files_matching: passwords.yml
name: kolla_passwords
- name: Install python openstack client
pip:
name: python-openstackclient
virtualenv: '{{ venv }}'
extra_args: -c "{{ pip_upper_constraints_file }}"

- name: Add an IP to connect to the instances
# FIXME: host configure will have bounced the bridge
# and removed the IP
command: ip a add 10.0.2.1/24 dev breth1
register: result
failed_when: 'result.rc !=0 and "RTNETLINK answers: File exists" not in
result.stderr'
changed_when: result.rc == 0
become: true
- name: Include kolla secrets
include_vars:
dir: '{{ kayobe_env_config_path }}/kolla/'
files_matching: passwords.yml
name: kolla_passwords

- name: Run init-run-once
script:
cmd: scripts/aio-init.sh
creates: /tmp/.init-runonce
environment:
KOLLA_OPENSTACK_COMMAND: '{{ venv }}/bin/openstack'
OS_PROJECT_DOMAIN_NAME: Default
OS_USER_DOMAIN_NAME: Default
OS_PROJECT_NAME: admin
OS_TENANT_NAME: admin
OS_USERNAME: admin
OS_PASSWORD: "{{ kolla_passwords.keystone_admin_password | mandatory('Could\
\ not find keystone_admin_password in passwords.yml') }}"
# Use kolla_external_fqdn in wallaby
OS_AUTH_URL: http://{{ kolla_external_fqdn | default(public_net_name
| net_fqdn) | default(public_net_name | net_vip_address, true) }}:5000
OS_INTERFACE: public
OS_ENDPOINT_TYPE: publicURL
OS_IDENTITY_API_VERSION: 3
OS_REGION_NAME: RegionOne
OS_AUTH_PLUGIN: password
- name: Add an IP to connect to the instances
# FIXME: host configure will have bounced the bridge
# and removed the IP
command: ip a add 10.0.2.1/24 dev breth1
register: result
failed_when: 'result.rc !=0 and "RTNETLINK answers: File exists" not in
result.stderr'
changed_when: result.rc == 0
become: true

- name: Run init-run-once
script:
cmd: scripts/aio-init.sh
creates: /tmp/.init-runonce
environment:
KOLLA_OPENSTACK_COMMAND: '{{ venv }}/bin/openstack'
OS_PROJECT_DOMAIN_NAME: Default
OS_USER_DOMAIN_NAME: Default
OS_PROJECT_NAME: admin
OS_TENANT_NAME: admin
OS_USERNAME: admin
OS_PASSWORD: "{{ kolla_passwords.keystone_admin_password | mandatory('Could\
\ not find keystone_admin_password in passwords.yml') }}"
# Use kolla_external_fqdn in wallaby
OS_AUTH_URL: http://{{ kolla_external_fqdn | default(public_net_name
| net_fqdn) | default(public_net_name | net_vip_address, true) }}:5000
OS_INTERFACE: public
OS_ENDPOINT_TYPE: publicURL
OS_IDENTITY_API_VERSION: 3
OS_REGION_NAME: RegionOne
OS_AUTH_PLUGIN: password
6 changes: 6 additions & 0 deletions etc/kayobe/compute.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,12 @@
# compute_qemu_conf_extra.
#compute_qemu_conf:

# Whether to enable libvirt SASL authentication. Default is true.
#compute_libvirt_enable_sasl:

# libvirt SASL password. Default is unset.
#compute_libvirt_sasl_password:

# Whether to enable a libvirt TLS listener. Default is false.
#compute_libvirt_enable_tls:

Expand Down
53 changes: 40 additions & 13 deletions etc/kayobe/dnf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,27 @@
# file: myrepo
# gpgkey: http://gpgkey
# gpgcheck: yes
dnf_custom_repos:
dnf_custom_repos: "{{ dnf_custom_repos_el8 | combine(lookup('vars', 'dnf_custom_repos_' ~ ansible_facts.distribution | lower )) }}"

# Custom repositories shared between all RHEL derivatives.
dnf_custom_repos_el8:
epel:
baseurl: "{{ stackhpc_repo_epel_url }}"
description: "Extra Packages for Enterprise Linux $releasever - $basearch"
enabled: "{{ dnf_enable_epel | bool }}"
file: epel
gpgkey: "{{ dnf_epel_gpg_key_url }}"
gpgcheck: yes
epel-modular:
baseurl: "{{ stackhpc_repo_epel_modular_url }}"
description: "Extra Packages for Enterprise Linux Modular $releasever - $basearch"
enabled: "{{ dnf_enable_epel | bool }}"
file: epel-modular
gpgkey: "{{ dnf_epel_gpg_key_url }}"
gpgcheck: yes

# CentOS Stream 8 specific repositories
dnf_custom_repos_centos:
appstream:
baseurl: "{{ stackhpc_repo_centos_stream_appstream_url }}"
description: "CentOS Stream $releasever - AppStream"
Expand All @@ -60,19 +80,26 @@ dnf_custom_repos:
file: CentOS-Stream-Extras
gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck: yes
epel:
baseurl: "{{ stackhpc_repo_epel_url }}"
description: "Extra Packages for Enterprise Linux $releasever - $basearch"
enabled: "{{ dnf_enable_epel | bool }}"
file: epel
gpgkey: "{{ dnf_epel_gpg_key_url }}"

# Rocky 8 specific repositories
dnf_custom_repos_rocky:
appstream:
baseurl: "{{ stackhpc_repo_rocky_appstream_url }}"
description: "Rocky Linux $releasever - AppStream"
file: Rocky-AppStream
gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
gpgcheck: yes
epel-modular:
baseurl: "{{ stackhpc_repo_epel_modular_url }}"
description: "Extra Packages for Enterprise Linux Modular $releasever - $basearch"
enabled: "{{ dnf_enable_epel | bool }}"
file: epel-modular
gpgkey: "{{ dnf_epel_gpg_key_url }}"
baseos:
baseurl: "{{ stackhpc_repo_rocky_baseos_url }}"
description: "Rocky Linux $releasever - BaseOS"
file: Rocky-BaseOS
gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
gpgcheck: yes
extras:
baseurl: "{{ stackhpc_repo_rocky_extras_url }}"
description: "Rocky Linux $releasever - Extras"
file: Rocky-Extras
gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
gpgcheck: yes

# Whether to enable EPEL repositories. This affects RedHat-based systems only.
Expand Down
3 changes: 3 additions & 0 deletions etc/kayobe/environments/ci-aio/compute.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---

compute_libvirt_sasl_password: "{{ lookup('password', kayobe_env_config_path ~ '/secrets/libvirt_sasl_password') }}"
2 changes: 1 addition & 1 deletion etc/kayobe/environments/ci-aio/kolla/globals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ openstack_service_workers: "1"
openstack_service_rpc_workers: "1"

docker_yum_baseurl: "{{ stackhpc_repo_docker_url }}"
docker_yum_gpgkey: "https://download.docker.com/linux/{% raw %}{{ ansible_facts.distribution | lower }}{% endraw %}/gpg"
docker_yum_gpgkey: "https://download.docker.com/linux/centos/gpg"
4 changes: 3 additions & 1 deletion etc/kayobe/environments/ci-aio/stackhpc-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@ stackhpc_repo_ubuntu_cloud_archive_version: "{{ stackhpc_pulp_repo_ubuntu_cloud_
stackhpc_repo_ubuntu_focal_version: "{{ stackhpc_pulp_repo_ubuntu_focal_version }}"
stackhpc_repo_ubuntu_focal_security_version: "{{ stackhpc_pulp_repo_ubuntu_focal_security_version }}"
stackhpc_repo_docker_ce_ubuntu_version: "{{ stackhpc_pulp_repo_docker_ce_ubuntu_version }}"

stackhpc_repo_rocky_baseos_version: "{{ stackhpc_pulp_repo_rocky_8_6_baseos_version }}"
stackhpc_repo_rocky_appstream_version: "{{ stackhpc_pulp_repo_rocky_8_6_appstream_version }}"
stackhpc_repo_rocky_extras_version: "{{ stackhpc_pulp_repo_rocky_8_6_extras_version }}"

# Host and port of container registry.
# Push built images to the development Pulp service registry.
Expand Down
10 changes: 5 additions & 5 deletions etc/kayobe/kolla.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,10 @@ kolla_ansible_source_version: "{{ stackhpc_kolla_ansible_source_version }}"
#kolla_ansible_venv:

# Extra requirements to install inside the kolla-ansible virtualenv.
kolla_ansible_venv_extra_requirements: "{{ lookup('vars', 'kolla_ansible_venv_extra_requirements_' ~ os_distribution, default=[]) }}"

# Rocky specific requirements in the kolla-ansible virtualenv
kolla_ansible_venv_extra_requirements_rocky:
# NOTE(wszumski): This is wallaby specific as we can use ansible-core 2.11 in Xena.
kolla_ansible_venv_extra_requirements:
# NOTE(wszumski): Fork with support for Rocky Linux target hosts. Remove in
# Xena as kayobe supports ansible 2.11 which has Rocky Support out of the
# box.
- 'ansible-base@git+https://github.com/stackhpc/ansible@stackhpc/2.10/rocky'

# Pip requirement specifier for the ansible package. NOTE: This limits the
Expand Down Expand Up @@ -523,6 +522,7 @@ kolla_build_customizations: "{{ kolla_build_customizations_common | combine(koll
#kolla_enable_keystone_horizon_policy_file:
#kolla_enable_kibana:
#kolla_enable_kuryr:
kolla_enable_nova_libvirt_container: "{{ os_distribution not in ['rocky'] }}"
#kolla_enable_magnum:
#kolla_enable_manila:
#kolla_enable_manila_backend_cephfs_native:
Expand Down
2 changes: 1 addition & 1 deletion etc/kayobe/kolla/globals.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# yamllint disable-file
---
docker_yum_baseurl: "{{ stackhpc_repo_docker_url }}"
docker_yum_gpgkey: "https://download.docker.com/linux/{% raw %}{{ ansible_facts.distribution | lower }}{% endraw %}/gpg"
docker_yum_gpgkey: "https://download.docker.com/linux/centos/gpg"

{% if kolla_base_distro == 'centos' %}
bifrost_tag: wallaby-20220921T100954
Expand Down
5 changes: 5 additions & 0 deletions etc/kayobe/pulp-repo-versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,8 @@ stackhpc_pulp_repo_treasuredata_4_version: 20220823T042339
stackhpc_pulp_repo_ubuntu_cloud_archive_version: 20220804T040153
stackhpc_pulp_repo_ubuntu_focal_security_version: 20220804T040153
stackhpc_pulp_repo_ubuntu_focal_version: 20220804T040153
stackhpc_pulp_repo_rocky_8_6_appstream_version: "20220606T111205"
stackhpc_pulp_repo_rocky_8_6_baseos_version: "20220606T111205"
stackhpc_pulp_repo_rocky_8_6_extras_version: "20220606T111205"
stackhpc_pulp_repo_rocky_8_6_nfv_version: "20220606T111205"
stackhpc_pulp_repo_rocky_8_6_powertools_version: "20220606T111205"
Loading