Skip to content

Commit

Permalink
Merge pull request #189 from stackhpc/upstream/yoga-2023-10-18
Browse files Browse the repository at this point in the history
Synchronise yoga with upstream
  • Loading branch information
priteau authored Oct 18, 2023
2 parents 7dd0a9c + 0ff603c commit 6cb2fd2
Show file tree
Hide file tree
Showing 12 changed files with 86 additions and 14 deletions.
5 changes: 4 additions & 1 deletion ansible/group_vars/all/bifrost
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ kolla_bifrost_inspector_port_addition: "{{ inspector_add_ports }}"
kolla_bifrost_inspector_extra_kernel_options: "{{ inspector_extra_kernel_options }}"

# List of introspection rules for Bifrost's Ironic Inspector service.
kolla_bifrost_inspector_rules: "{{ inspector_rules }}"
kolla_bifrost_inspector_rules: "{{ inspector_rules + [inspector_rule_legacy_deploy_kernel] }}"

# Ironic inspector IPMI username to set.
kolla_bifrost_inspector_ipmi_username: "{{ ipmi_username }}"
Expand All @@ -117,6 +117,9 @@ kolla_bifrost_inspector_deploy_kernel: "http://{{ provision_oc_net_name | net_ip
# Ironic inspector deployment ramdisk location.
kolla_bifrost_inspector_deploy_ramdisk: "http://{{ provision_oc_net_name | net_ip }}:8080/ipa.initramfs"

# Ironic inspector legacy deployment kernel location.
kolla_bifrost_inspector_legacy_deploy_kernel: "http://{{ provision_oc_net_name | net_ip }}:8080/ipa.vmlinuz"

# Timeout of hardware inspection on overcloud nodes, in seconds. Default is
# {{ inspector_inspection_timeout }}.
kolla_bifrost_inspection_timeout: "{{ inspector_inspection_timeout }}"
Expand Down
12 changes: 12 additions & 0 deletions ansible/group_vars/all/inspector
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,18 @@ inspector_rule_deploy_kernel:
path: "driver_info/deploy_kernel"
value: "{{ inspector_rule_var_deploy_kernel }}"

# Ironic inspector rule to update deployment kernel from legacy location.
inspector_rule_legacy_deploy_kernel:
description: "Update deploy kernel from legacy"
conditions:
- field: "node://driver_info.deploy_kernel"
op: "eq"
value: "{{ inspector_rule_var_legacy_deploy_kernel }}"
actions:
- action: "set-attribute"
path: "driver_info/deploy_kernel"
value: "{{ inspector_rule_var_deploy_kernel }}"

# Deployment ramdisk referenced by inspector rule.
inspector_rule_var_deploy_ramdisk:

Expand Down
1 change: 1 addition & 0 deletions ansible/seed-introspection-rules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@
inspector_rule_var_lldp_switch_port_interface: "{{ kolla_bifrost_inspector_lldp_switch_port_interface }}"
inspector_rule_var_deploy_kernel: "{{ kolla_bifrost_inspector_deploy_kernel }}"
inspector_rule_var_deploy_ramdisk: "{{ kolla_bifrost_inspector_deploy_ramdisk }}"
inspector_rule_var_legacy_deploy_kernel: "{{ kolla_bifrost_inspector_legacy_deploy_kernel }}"
3 changes: 3 additions & 0 deletions etc/kayobe/bifrost.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,9 @@
# Ironic inspector deployment ramdisk location.
#kolla_bifrost_inspector_deploy_ramdisk:

# Ironic inspector legacy deployment kernel location.
#kolla_bifrost_inspector_legacy_deploy_kernel:

# Timeout of hardware inspection on overcloud nodes, in seconds. Default is
# {{ inspector_inspection_timeout }}.
#kolla_bifrost_inspection_timeout:
Expand Down
3 changes: 2 additions & 1 deletion kayobe/cli/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -1092,7 +1092,8 @@ class OvercloudDeprovision(KayobeAnsibleMixin, VaultMixin, Command):

def take_action(self, parsed_args):
self.app.LOG.debug("Deprovisioning overcloud")
playbooks = _build_playbook_list("overcloud-deprovision")
playbooks = _build_playbook_list("kolla-bifrost-hostvars",
"overcloud-deprovision")
self.run_kayobe_playbooks(parsed_args, playbooks)


Expand Down
2 changes: 2 additions & 0 deletions kayobe/tests/unit/cli/test_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -1245,6 +1245,8 @@ def test_overcloud_deprovision(self, mock_run):
mock.call(
mock.ANY,
[
utils.get_data_files_path(
"ansible", "kolla-bifrost-hostvars.yml"),
utils.get_data_files_path(
"ansible", "overcloud-deprovision.yml"),
],
Expand Down
25 changes: 25 additions & 0 deletions kayobe/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@

import base64
import glob
try:
from importlib.metadata import Distribution
except ImportError: # for Python<3.8
from importlib_metadata import Distribution
import json
import logging
import os
import shutil
Expand Down Expand Up @@ -48,10 +53,30 @@ def _detect_install_prefix(path):
return prefix_path


def _get_direct_url(dist):
direct_url = os.path.join(dist._path, 'direct_url.json')
if os.path.isfile(direct_url):
with open(direct_url, 'r') as f:
direct_url_content = json.loads(f.readline().strip())
url = direct_url_content['url']
prefix = 'file://'
if url.startswith(prefix):
return url[len(prefix):]

return None


def _get_base_path():
override = os.environ.get("KAYOBE_DATA_FILES_PATH")
if override:
return os.path.join(override)

kayobe_dist = list(Distribution.discover(name="kayobe"))
if kayobe_dist:
direct_url = _get_direct_url(kayobe_dist[0])
if direct_url:
return direct_url

egg_glob = os.path.join(
sys.prefix, 'lib*', 'python*', '*-packages', 'kayobe.egg-link'
)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
fixes:
- |
Fixes failure to run ``kayobe overcloud deprovision`` after Bifrost is
redeployed.
`LP#2038889 <https://bugs.launchpad.net/kolla-ansible/+bug/2038889>`__
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
fixes:
- |
Fixes detection of data file path when using editable installations with a
recent pip.
20 changes: 20 additions & 0 deletions releasenotes/notes/update-deploy-kernel-6943f3ad3cb82c51.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
upgrade:
- |
Adds an introspection rule to update the location of the deployment kernel
registered in existing Ironic nodes. Nodes discovered on a deployment
running the Train release or earlier may still be using the ``ipa.vmlinuz``
kernel, which stays unchanged when deployment images get updated. If only
default introspection rules are in use, existing nodes may be updated from
the Bifrost container with the following command:
``OS_CLOUD=bifrost baremetal introspection reprocess $NODE_UUID_OR_NAME``
If non-default rules are used, reprocessing may revert any customisation
done by the operator. In this case, a more cautious approach is to update
the deployment kernel location manually:
``OS_CLOUD=bifrost baremetal node set --driver-info deploy_kernel=<http://url/to/ipa.kernel> $NODE_UUID_OR_NAME``
If the ``kolla_bifrost_inspector_rules`` list is customised, the rule
``inspector_rule_legacy_deploy_kernel`` should be added to it.
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ pbr>=2.0 # Apache-2.0
Jinja2>3 # BSD
ansible>=4,<6.0 # GPLv3
cliff>=3.1.0 # Apache
importlib-metadata;python_version<'3.8' # Apache-2.0
netaddr!=0.7.16,>=0.7.13 # BSD
PyYAML>=3.10.0 # MIT
selinux # MIT
Expand Down
16 changes: 4 additions & 12 deletions zuul.d/project.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
- kayobe-overcloud-centos9s
- kayobe-overcloud-rocky8
- kayobe-overcloud-rocky9
# - kayobe-overcloud-ubuntu-focal Note(mattcrees): Job temporarily disabled until fix is merged, see: https://review.opendev.org/c/openstack/kolla/+/885857
# - kayobe-overcloud-ubuntu-jammy
- kayobe-overcloud-ubuntu-focal
- kayobe-overcloud-ubuntu-jammy
- kayobe-overcloud-host-configure-centos8s
- kayobe-overcloud-host-configure-centos9s
- kayobe-overcloud-host-configure-rocky8
Expand All @@ -25,15 +25,11 @@
- kayobe-overcloud-host-configure-ubuntu-jammy
- kayobe-overcloud-tls-centos8s
- kayobe-overcloud-tls-rocky9
- kayobe-overcloud-upgrade-centos8s
# - kayobe-overcloud-upgrade-ubuntu-focal Note(mattcrees): Job temporarily disabled until fix is merged, see: https://review.opendev.org/c/openstack/kolla/+/885857
- kayobe-seed-centos8s
- kayobe-seed-rocky8
- kayobe-seed-rocky9
- kayobe-seed-ubuntu-focal
- kayobe-seed-ubuntu-jammy
- kayobe-seed-upgrade-centos8s
- kayobe-seed-upgrade-ubuntu-focal
- kayobe-seed-vm-centos8s
- kayobe-seed-vm-rocky8
- kayobe-seed-vm-rocky9
Expand All @@ -54,24 +50,20 @@
- kayobe-overcloud-centos8s
- kayobe-overcloud-rocky8
- kayobe-overcloud-rocky9
# - kayobe-overcloud-ubuntu-focal Note(mattcrees): Job temporarily disabled until fix is merged, see: https://review.opendev.org/c/openstack/kolla/+/885857
# - kayobe-overcloud-ubuntu-jammy
- kayobe-overcloud-ubuntu-focal
- kayobe-overcloud-ubuntu-jammy
- kayobe-overcloud-host-configure-centos8s
- kayobe-overcloud-host-configure-rocky8
- kayobe-overcloud-host-configure-rocky9
- kayobe-overcloud-host-configure-ubuntu-focal
- kayobe-overcloud-host-configure-ubuntu-jammy
- kayobe-overcloud-tls-centos8s
- kayobe-overcloud-tls-rocky9
- kayobe-overcloud-upgrade-centos8s
# - kayobe-overcloud-upgrade-ubuntu-focal Note(mattcrees): Job temporarily disabled until fix is merged, see: https://review.opendev.org/c/openstack/kolla/+/885857
- kayobe-seed-centos8s
- kayobe-seed-rocky8
- kayobe-seed-rocky9
- kayobe-seed-ubuntu-focal
- kayobe-seed-ubuntu-jammy
- kayobe-seed-upgrade-centos8s
- kayobe-seed-upgrade-ubuntu-focal
- kayobe-seed-vm-centos8s
- kayobe-seed-vm-rocky8
- kayobe-seed-vm-rocky9
Expand Down

0 comments on commit 6cb2fd2

Please sign in to comment.