Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ironic overcloud hypervisor deployment #1089

Open
wants to merge 7 commits into
base: stackhpc/2023.1
Choose a base branch
from

Conversation

assumptionsandg
Copy link
Contributor

@assumptionsandg assumptionsandg commented Jun 6, 2024

Deployment playbook for baremetal instances to be used as hypervisors.

TODO: Documentation refactoring (separate everything prior to hypervisors?)

@assumptionsandg assumptionsandg changed the title Ironic overcloud hypervisor deployment WIP: Ironic overcloud hypervisor deployment Jun 6, 2024
@assumptionsandg assumptionsandg force-pushed the baremetal-hypervisor branch 2 times, most recently from ed6155e to e850079 Compare June 19, 2024 11:40
doc/source/configuration/ironic.rst Outdated Show resolved Hide resolved
doc/source/configuration/ironic.rst Outdated Show resolved Hide resolved
@Alex-Welsh
Copy link
Contributor

@assumptionsandg remember to mark conversations as resolved when you've completed them! Makes it much easier for reviewers to know when to re-review.

Is this still a draft? Who do you need a review from to get it merged?

@assumptionsandg
Copy link
Contributor Author

@assumptionsandg remember to mark conversations as resolved when you've completed them! Makes it much easier for reviewers to know when to re-review.

Is this still a draft? Who do you need a review from to get it merged?

It's still WIP on the client side of things, hence leaving it as a draft here. We could merge what's here now and interate/fix things as the client work progresses if what's here will be useful to people.

@Alex-Welsh
Copy link
Contributor

Alex-Welsh commented Sep 9, 2024

@assumptionsandg remember to mark conversations as resolved when you've completed them! Makes it much easier for reviewers to know when to re-review.
Is this still a draft? Who do you need a review from to get it merged?

It's still WIP on the client side of things, hence leaving it as a draft here. We could merge what's here now and interate/fix things as the client work progresses if what's here will be useful to people.

I'd be happy with it as long as you add a big warning at the top saying the docs are still WIP. Something is better than nothing

@assumptionsandg assumptionsandg changed the title WIP: Ironic overcloud hypervisor deployment Ironic overcloud hypervisor deployment Sep 9, 2024
@assumptionsandg assumptionsandg marked this pull request as ready for review September 9, 2024 10:57
@assumptionsandg assumptionsandg requested a review from a team as a code owner September 9, 2024 10:57
@Alex-Welsh
Copy link
Contributor

@assumptionsandg you need to tag people for re-review when you make changes. This has been sat around for two months and I don't think anyone has looked at it

Copy link
Contributor

@Alex-Welsh Alex-Welsh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are good docs. I've got a lot of comments but they're mostly just small formatting and grammar fixes.

doc/source/configuration/ironic.rst Outdated Show resolved Hide resolved
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally I think the page should be a bit more declarative, at the moment it's written in a future tense. For example, I think that:

Overcloud Ironic will be deployed with a listening TFTP server on the control plane

Would flow better as

Overcloud Ironic is deployed with a listening TFTP server on the control plane

I don't think it would be a lot of effort to update (basically a find & replace: will be -> is) but it's a bit of a nitpick so if you want to leave it as is then that's fine

Comment on lines +152 to +154
It is also required to load the conntrack kernel module ``nf_nat_tftp``,
``nf_conntrack`` and ``nf_conntrack_tftp`` on network nodes. You can load these
modules using modprobe or define these in /etc/module-load.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the grammar can be improved here a bit. The I think the line lengths are a bit off in my suggestion because I'm doing it in the github comment editor

Suggested change
It is also required to load the conntrack kernel module ``nf_nat_tftp``,
``nf_conntrack`` and ``nf_conntrack_tftp`` on network nodes. You can load these
modules using modprobe or define these in /etc/module-load.
The conntrack kernel modules ``nf_nat_tftp``, ``nf_conntrack``,
and ``nf_conntrack_tftp`` are also required on network nodes. You
can load these modules using modprobe or define these in /etc/module-load.

Conntrack_helper will be required when UEFI booting on a cloud with ML2/OVS
and using the iptables firewall_driver, otherwise TFTP traffic is dropped due
to it being UDP. You will need to define some extension drivers in ``neutron.yml``
to ensure conntrack is enabled in neutron server.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You've done well to capitalise Nova and Ironic but missed a few instances of OpenStack, Neutron, and Kayobe
This is just one instance, but rather than pointing every one of them out, I'll let you search for them

Suggested change
to ensure conntrack is enabled in neutron server.
to ensure conntrack is enabled in Neutron server.

modules using modprobe or define these in /etc/module-load.

The Ironic neutron router will also need to be configured to use
conntrack_helper.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not completely sure on this one, I'll leave it for you to decide

Suggested change
conntrack_helper.
``conntrack_helper``.

Comment on lines +460 to +461
Now the node has no instances allocated to it you can delete the instance using
the OpenStack CLI and the node will be moved back to ``available`` state.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe just clarify here that it's the baremetal instance that you're deleting, not the VMs that you've migrated away


- name: Set baremetal node JSON variable
ansible.builtin.set_fact:
node_show_json: "{{ node_show.stdout | to_json | from_json }}"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

| to_json | from_json is a bit weird, and the name of the variable doesn't really fit.

You're taking a string, which is JSON, then converting it to a nice ansible dict var, so "node_show_json" isn't actually json

Also, is it actually used? Can it just be deleted?


- name: Set baremetal node JSON variable
ansible.builtin.set_fact:
node_show_json: "{{ node_show.stdout | to_json | from_json }}"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see previous comments on to & from json

Comment on lines +26 to +39
- name: Slurp network allocations
ansible.builtin.slurp:
path: "{{ network_allocation_path }}"
register: net_alc

- name: Read network allocations
ansible.builtin.set_fact:
net_alc_yaml: "{{ net_alc['content'] | b64decode | from_yaml }}"

- name: Write node IP address to allocations
ansible.builtin.set_fact:
new_net_alc: "{{ net_alc_yaml | combine(new_ips, recursive=True) }}"
vars:
new_ips: "{ '{{ admin_oc_net_name }}_ips': { '{{ inventory_hostname }}': '{{ ansible_host }}' } }"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The net IPs are dictionary vars you have access to right? I don't think you need to slurp them in from a file

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EOF newline

@Alex-Welsh Alex-Welsh added documentation Improvements or additions to documentation antelope Targets the Antelope OpenStack release labels Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
antelope Targets the Antelope OpenStack release documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants