Skip to content

Commit fc00e61

Browse files
authored
Merge branch 'stackhpc/xena' into upstream/xena-2022-10-17
2 parents 41a65ec + 38c7277 commit fc00e61

File tree

76 files changed

+1583
-57
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1583
-57
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @stackhpc/kayobe
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
name: Tag & Release
3+
'on':
4+
push:
5+
branches:
6+
- stackhpc/xena
7+
permissions:
8+
contents: write
9+
jobs:
10+
tag-and-release:
11+
uses: stackhpc/.github/.github/workflows/tag-and-release.yml@main

.github/workflows/tox.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
name: Tox Continuous Integration
3+
'on':
4+
pull_request:
5+
jobs:
6+
tox:
7+
uses: stackhpc/.github/.github/workflows/tox.yml@main

ansible/compute-libvirt-host.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
- name: Ensure the libvirt daemon is configured
3+
hosts: compute
4+
tags:
5+
- libvirt-host
6+
tasks:
7+
- name: Ensure Ceph package repository is available
8+
package:
9+
name: "centos-release-ceph-{{ compute_libvirt_ceph_repo_release }}"
10+
state: present
11+
when:
12+
- compute_libvirt_enabled | bool
13+
- ansible_facts.distribution in ['CentOS', 'Rocky']
14+
- compute_libvirt_ceph_repo_install | bool
15+
become: true
16+
17+
- name: Include stackhpc.libvirt-host role
18+
include_role:
19+
name: stackhpc.libvirt-host
20+
vars:
21+
libvirt_host_libvirtd_conf: "{{ compute_libvirt_conf }}"
22+
libvirt_host_qemu_conf: "{{ compute_qemu_conf }}"
23+
libvirt_host_enable_sasl_support: "{{ compute_libvirt_enable_sasl | bool }}"
24+
libvirt_host_sasl_authname: nova
25+
libvirt_host_sasl_password: "{{ compute_libvirt_sasl_password }}"
26+
libvirt_host_tcp_listen: "{{ not compute_libvirt_enable_tls | bool }}"
27+
libvirt_host_tcp_listen_address: "{{ internal_net_name | net_ip }}:16509"
28+
libvirt_host_tls_listen: "{{ compute_libvirt_enable_tls | bool }}"
29+
libvirt_host_tls_listen_address: "{{ internal_net_name | net_ip }}:16514"
30+
# TLS server and client certificates.
31+
libvirt_host_tls_server_cert: >-
32+
{{ lookup('file', lookup('first_found', lookup_params | combine({'files': ['servercert.pem']})))
33+
if libvirt_host_tls_listen | default(False) | bool else '' }}
34+
libvirt_host_tls_server_key: >-
35+
{{ lookup('file', lookup('first_found', lookup_params | combine({'files': ['serverkey.pem']})))
36+
if libvirt_host_tls_listen | default(False) | bool else '' }}
37+
libvirt_host_tls_client_cert: >-
38+
{{ lookup('file', lookup('first_found', lookup_params | combine({'files': ['clientcert.pem']})))
39+
if libvirt_host_tls_listen | default(False) | bool else '' }}
40+
libvirt_host_tls_client_key: >-
41+
{{ lookup('file', lookup('first_found', lookup_params | combine({'files': ['clientkey.pem']})))
42+
if libvirt_host_tls_listen | default(False) | bool else '' }}
43+
libvirt_host_tls_cacert: >-
44+
{{ lookup('file', lookup('first_found', lookup_params | combine({'files': ['cacert.pem']})))
45+
if libvirt_host_tls_listen | default(False) | bool else '' }}
46+
lookup_params:
47+
paths: "{{ libvirt_tls_cert_paths }}"
48+
skip: true
49+
# Support loading libvirt TLS certificates & keys from per-host and
50+
# global locations.
51+
libvirt_tls_cert_paths: >-
52+
{{ (libvirt_tls_cert_dirs | unique | product([inventory_hostname]) | map('path_join') | list +
53+
libvirt_tls_cert_dirs | unique | list) | list }}
54+
libvirt_tls_cert_dirs:
55+
- "{{ kayobe_env_config_path }}/certificates/libvirt"
56+
- "{{ kayobe_config_path }}/certificates/libvirt"
57+
libvirt_host_enable_efi_support: true
58+
when:
59+
- compute_libvirt_enabled | bool

ansible/group_vars/all/bifrost

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ kolla_bifrost_dib_packages: []
6565
# Name of disk image file to deploy. Default is "deployment_image.qcow2".
6666
kolla_bifrost_deploy_image_filename: "deployment_image.qcow2"
6767

68+
# UUID of the root filesystem contained within the deployment image.
69+
# See below URL for instructions on how to extract it:
70+
# https://docs.openstack.org/ironic/latest/admin/raid.html#image-requirements
71+
# Default is none.
72+
kolla_bifrost_deploy_image_rootfs:
73+
6874
###############################################################################
6975
# Ironic configuration.
7076

ansible/group_vars/all/compute

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,3 +161,61 @@ compute_firewalld_default_zone:
161161
# - permanent: true
162162
# - state: enabled
163163
compute_firewalld_rules: []
164+
165+
###############################################################################
166+
# Compute node host libvirt configuration.
167+
168+
# Whether to enable a host libvirt daemon. Default is true if kolla_enable_nova
169+
# is true and kolla_enable_nova_libvirt_container is false.
170+
compute_libvirt_enabled: "{{ kolla_enable_nova | bool and not kolla_enable_nova_libvirt_container | bool }}"
171+
172+
# A dict of default configuration options to write to
173+
# /etc/libvirt/libvirtd.conf.
174+
compute_libvirt_conf_default:
175+
auth_tcp: "{{ 'sasl' if compute_libvirt_enable_sasl | bool else 'none' }}"
176+
auth_tls: "{{ 'sasl' if compute_libvirt_enable_sasl | bool else 'none' }}"
177+
log_level: "{{ compute_libvirtd_log_level }}"
178+
179+
# A dict of additional configuration options to write to
180+
# /etc/libvirt/libvirtd.conf.
181+
compute_libvirt_conf_extra: {}
182+
183+
# A dict of configuration options to write to /etc/libvirt/libvirtd.conf.
184+
# Default is a combination of compute_libvirt_conf_default and
185+
# compute_libvirt_conf_extra.
186+
compute_libvirt_conf: "{{ compute_libvirt_conf_default | combine(compute_libvirt_conf_extra) }}"
187+
188+
# Numerical log level for libvirtd. Default is 3.
189+
compute_libvirtd_log_level: 3
190+
191+
# A dict of default configuration options to write to
192+
# /etc/libvirt/qemu.conf.
193+
compute_qemu_conf_default:
194+
max_files: 32768
195+
max_processes: 131072
196+
197+
# A dict of additional configuration options to write to
198+
# /etc/libvirt/qemu.conf.
199+
compute_qemu_conf_extra: {}
200+
201+
# A dict of configuration options to write to /etc/libvirt/qemu.conf.
202+
# Default is a combination of compute_qemu_conf_default and
203+
# compute_qemu_conf_extra.
204+
compute_qemu_conf: "{{ compute_qemu_conf_default | combine(compute_qemu_conf_extra) }}"
205+
206+
# Whether to enable libvirt SASL authentication. Default is true.
207+
compute_libvirt_enable_sasl: true
208+
209+
# libvirt SASL password. Default is unset.
210+
compute_libvirt_sasl_password:
211+
212+
# Whether to enable a libvirt TLS listener. Default is false.
213+
compute_libvirt_enable_tls: false
214+
215+
# Whether to install a Ceph package repository on CentOS and Rocky hosts.
216+
# Default is true.
217+
compute_libvirt_ceph_repo_install: true
218+
219+
# Ceph package repository release to install on CentOS and Rocky hosts when
220+
# compute_libvirt_ceph_repo_install is true. Default is 'pacific'.
221+
compute_libvirt_ceph_repo_release: pacific

ansible/group_vars/all/ipa

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ ipa_builder_source_url: "https://opendev.org/openstack/ironic-python-agent-build
1919
# Version of IPA builder source repository. Default is {{ openstack_branch }}.
2020
ipa_builder_source_version: "{{ openstack_branch }}"
2121

22+
# List of additional build host packages to install.
23+
ipa_build_dib_host_packages_extra: []
24+
2225
# List of default Diskimage Builder (DIB) elements to use when building IPA
2326
# images. Default is ["centos", "enable-serial-console",
2427
# "ironic-python-agent-ramdisk"].

ansible/group_vars/all/kolla

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,7 @@ kolla_enable_murano: "no"
558558
kolla_enable_neutron_mlnx: "no"
559559
kolla_enable_neutron_provider_networks: "no"
560560
kolla_enable_neutron_sriov: "no"
561+
kolla_enable_nova_libvirt_container: "yes"
561562
kolla_enable_octavia: "no"
562563
kolla_enable_openvswitch: "{{ kolla_enable_neutron | bool }}"
563564
kolla_enable_ovn: "no"
@@ -585,9 +586,9 @@ kolla_enable_zun: "no"
585586
###############################################################################
586587
# Passwords and credentials.
587588

588-
# Dictionary containing default custom passwords to add or override in the
589+
# Dictionary containing base custom passwords to add or override in the
589590
# Kolla passwords file.
590-
kolla_ansible_default_custom_passwords:
591+
kolla_ansible_base_custom_passwords:
591592
# SSH key authorized in hosts deployed by Bifrost.
592593
bifrost_ssh_key:
593594
private_key: "{{ lookup('file', ssh_private_key_path) }}"
@@ -598,6 +599,19 @@ kolla_ansible_default_custom_passwords:
598599
public_key: "{{ lookup('file', ssh_public_key_path) }}"
599600
docker_registry_password: "{{ kolla_docker_registry_password }}"
600601

602+
# Dictionary containing libvirt custom passwords to add or override in the
603+
# Kolla passwords file.
604+
kolla_ansible_libvirt_custom_passwords:
605+
libvirt_sasl_password: "{{ compute_libvirt_sasl_password }}"
606+
607+
# Dictionary containing default custom passwords to add or override in the
608+
# Kolla passwords file.
609+
kolla_ansible_default_custom_passwords: >-
610+
{{ kolla_ansible_base_custom_passwords |
611+
combine(kolla_ansible_libvirt_custom_passwords
612+
if compute_libvirt_enabled | bool and compute_libvirt_enable_sasl | bool
613+
else {}) }}
614+
601615
# Dictionary containing custom passwords to add or override in the Kolla
602616
# passwords file.
603617
kolla_ansible_custom_passwords: "{{ kolla_ansible_default_custom_passwords }}"
@@ -653,3 +667,18 @@ kolla_internal_tls_cert:
653667
# in admin-openrc.sh file when TLS is enabled, instead of Kolla-Ansible's
654668
# default.
655669
kolla_internal_fqdn_cacert:
670+
671+
###############################################################################
672+
# Proxy configuration
673+
674+
# HTTP proxy URL (format: http(s)://[user:password@]proxy_name:port) used by
675+
# Kolla. Default value is "{{ http_proxy }}".
676+
kolla_http_proxy: "{{ http_proxy }}"
677+
678+
# HTTPS proxy URL (format: http(s)://[user:password@]proxy_name:port) used by
679+
# Kolla. Default value is "{{ https_proxy }}".
680+
kolla_https_proxy: "{{ https_proxy }}"
681+
682+
# List of domains, hostnames, IP addresses and networks for which no proxy is
683+
# used. Default value is "{{ no_proxy }}".
684+
kolla_no_proxy: "{{ no_proxy }}"
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
# Overcloud host disk image configuration.
3+
4+
###############################################################################
5+
# Diskimage-builder configuration for overcloud host disk images.
6+
7+
# Whether to build host disk images with DIB directly instead of through
8+
# Bifrost. Setting it to true disables Bifrost image build and allows images to
9+
# be built with the `kayobe overcloud host image build` command. Default value
10+
# is {{ os_distribution == 'rocky' }}. This will change in a future release.
11+
overcloud_dib_build_host_images: "{{ os_distribution == 'rocky' }}"
12+
13+
# List of additional build host packages to install.
14+
overcloud_dib_host_packages_extra: []
15+
16+
# List of overcloud host disk images to build. Each element is a dict defining
17+
# an image in a format accepted by the stackhpc.os-images role. Default is to
18+
# build an image named "deployment_image" configured with the overcloud_dib_*
19+
# variables defined below: {"name": "deployment_image", "elements": "{{
20+
# overcloud_dib_elements }}", "env": "{{ overcloud_dib_env_vars }}",
21+
# "packages": "{{ overcloud_dib_packages }}"}.
22+
overcloud_dib_host_images:
23+
- name: "deployment_image"
24+
elements: "{{ overcloud_dib_elements }}"
25+
env: "{{ overcloud_dib_env_vars }}"
26+
packages: "{{ overcloud_dib_packages }}"
27+
28+
# DIB base OS element. Default is {{ 'rocky-container' if os_distribution ==
29+
# 'rocky' else os_distribution }}.
30+
overcloud_dib_os_element: "{{ 'rocky-container' if os_distribution == 'rocky' else os_distribution }}"
31+
32+
# DIB image OS release. Default is {{ os_release }}.
33+
overcloud_dib_os_release: "{{ os_release }}"
34+
35+
# List of default DIB elements. Default is ["centos", "cloud-init-datasources",
36+
# "disable-selinux", "enable-serial-console", "vm"] when
37+
# overcloud_dib_os_element is "centos", or ["rocky-container",
38+
# "cloud-init-datasources", "disable-selinux", "enable-serial-console", "vm"]
39+
# when overcloud_dib_os_element is "rocky" or
40+
# ["ubuntu", "cloud-init-datasources", "enable-serial-console", "vm"]
41+
# when overcloud_dib_os_element is "ubuntu".
42+
overcloud_dib_elements_default:
43+
- "{{ overcloud_dib_os_element }}"
44+
- "cloud-init-datasources"
45+
- "{% if overcloud_dib_os_element in ['centos', 'rocky'] %}disable-selinux{% endif %}"
46+
- "enable-serial-console"
47+
- "vm"
48+
49+
# List of additional DIB elements. Default is none.
50+
overcloud_dib_elements_extra: []
51+
52+
# List of DIB elements. Default is a combination of
53+
# overcloud_dib_elements_default and overcloud_dib_elements_extra.
54+
overcloud_dib_elements: "{{ overcloud_dib_elements_default | select | list + overcloud_dib_elements_extra }}"
55+
56+
# DIB default environment variables. Default is
57+
# {"DIB_BOOTLOADER_DEFAULT_CMDLINE": "nofb nomodeset gfxpayload=text
58+
# net.ifnames=1", "DIB_CLOUD_INIT_DATASOURCES": "ConfigDrive",
59+
# "DIB_CONTAINERFILE_RUNTIME": "docker", "DIB_CONTAINERFILE_NETWORK_DRIVER":
60+
# "host", "DIB_RELEASE": "{{ overcloud_dib_os_release }}"}.
61+
overcloud_dib_env_vars_default:
62+
DIB_BOOTLOADER_DEFAULT_CMDLINE: "nofb nomodeset gfxpayload=text net.ifnames=1"
63+
DIB_CLOUD_INIT_DATASOURCES: "ConfigDrive"
64+
DIB_CONTAINERFILE_RUNTIME: "docker"
65+
DIB_CONTAINERFILE_NETWORK_DRIVER: "host"
66+
DIB_RELEASE: "{{ overcloud_dib_os_release }}"
67+
68+
# DIB additional environment variables. Default is none.
69+
overcloud_dib_env_vars_extra: {}
70+
71+
# DIB environment variables. Default is combination of
72+
# overcloud_dib_env_vars_default and overcloud_dib_env_vars_extra.
73+
overcloud_dib_env_vars: "{{ overcloud_dib_env_vars_default | combine(overcloud_dib_env_vars_extra) }}"
74+
75+
# List of DIB packages to install. Default is to install no extra packages.
76+
overcloud_dib_packages: []
77+
78+
# List of default git repositories containing Diskimage Builder (DIB) elements.
79+
# See stackhpc.os-images role for usage. Default is empty.
80+
overcloud_dib_git_elements_default: []
81+
82+
# List of additional git repositories containing Diskimage Builder (DIB)
83+
# elements. See stackhpc.os-images role for usage. Default is empty.
84+
overcloud_dib_git_elements_extra: []
85+
86+
# List of git repositories containing Diskimage Builder (DIB) elements. See
87+
# stackhpc.os-images role for usage. Default is a combination of
88+
# overcloud_dib_git_elements_default and overcloud_dib_git_elements_extra.
89+
overcloud_dib_git_elements: >-
90+
{{ overcloud_dib_git_elements_default + overcloud_dib_git_elements_extra }}
91+
92+
# Upper constraints file for installing packages in the virtual environment
93+
# used for building overcloud host disk images. Default is {{
94+
# pip_upper_constraints_file }}.
95+
overcloud_dib_upper_constraints_file: "{{ pip_upper_constraints_file }}"

ansible/group_vars/all/proxy

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
###############################################################################
3+
# Configuration of HTTP(S) proxies.
4+
5+
# HTTP proxy URL (format: http(s)://[user:password@]proxy_name:port). By
6+
# default no proxy is used.
7+
http_proxy: ""
8+
9+
# HTTPS proxy URL (format: http(s)://[user:password@]proxy_name:port). By
10+
# default no proxy is used.
11+
https_proxy: ""
12+
13+
# List of domains, hostnames, IP addresses and networks for which no proxy is
14+
# used. Defaults to ["127.0.0.1", "localhost", "{{ ('http://' ~
15+
# docker_registry) | urlsplit('hostname') }}"] if docker_registry is set, or
16+
# ["127.0.0.1", "localhost"] otherwise. This is configured only if either
17+
# http_proxy or https_proxy is set.
18+
no_proxy:
19+
- "127.0.0.1"
20+
- "localhost"
21+
- "{{ ('http://' ~ docker_registry) | urlsplit('hostname') if docker_registry else '' }}"

0 commit comments

Comments
 (0)