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

BREAKING CHANGE: overhaul variables #173

Closed
wants to merge 84 commits into from

Conversation

jacobemery
Copy link
Collaborator

  • Long overdue complete overhaul of how variables are structured and used.

  • Variables structure better aligned with Ansible best practices, allowing for greater flexibility, simplicity and scaling.

  • Restructured the documentation for better organization and added pictures.

  • Created setup scripts to install required software (like Ansible itself) - Required Community collections should be installed automatically by playbook0 #161

  • Re-worked many playbooks as a result of variables overhaul leading to various optimizations, including:

    • Ability to allocate VM guests to specific hosts, using their 'guests' list in inventory
    • Ability to add/delete as many compute nodes as you want
    • Enablement Ansible Vault to protect sensitive variables
    • Ability to create as many LPARs as you want
    • Ability to attach as many Storage Groups and Network Interface Cards to those LPARs as you want
    • Ability to have as many hypervisors hosting VMs as you want
    • Separation of OpenVPN from high availability OPEN VPN #118
    • Fix proxy vars indent Proxy settings #122
    • Clarify virtual network definitions in docs and create variable for interface env.bridge_name - Documentation / naming unclear. #163
    • Document storage pool_path Storage Pool_path is not documented #155
    • And more...
  • My apologies this is such a huge Pull Request, the variables overhaul required almost everything to change, not just references to variables, but how they are referenced, loops, etc.

  • @veera-damisetti I wasn't 100% sure on a lot of the HyperShift changes I made, but I believe the create_inventory_setup_hypershift is no longer required because of the inventory change, and creation of secrets.yaml is no longer required because of the Ansible Vault. But please double-check me here, as I'm much less familiar with your work.

  • I'm opening this on the 'development' branch because I'm sure changes will need to be made and I'd love as many eyes on this as possible so we can get as much of the variables right as possible all in one breaking change
    cc @AmadeusPodvratnik
    cc @smolin-de
    cc @ryoung1us
    cc @irmsan

In order to be able to use libvirt and qemu as an unprivileged KVM user, the use of altnerate directories for the cluster's storage pool is required.

Signed-off-by: Jacob Emery <[email protected]>
These changes allow for KVM guest creation as a normal user without sudo privileges.

Signed-off-by: Jacob Emery <[email protected]>
Signed-off-by: Jacob Emery <[email protected]>
Enable users without sudo access (but part of 'kvm' group) to use the delete_nodes role.

Signed-off-by: Jacob Emery <[email protected]>
Also changes high_availability variable that was in the KVM host section to openvpn in the bastion's section of all.yaml to better describe functionality of that variable.

Signed-off-by: Jacob Emery <[email protected]>
This playbook still requires sudo privileges, but it now enables the use of unprivileged users in 'kvm' group to create clusters on the KVM host.

Signed-off-by: Jacob Emery <[email protected]>
Signed-off-by: Jacob Emery <[email protected]>
As a part of the work to enable unprivileged users in the 'kvm' group to create clusters, I had to move some variables around.

And since I was moving a few, I decided to move as many KVM variables from all.yaml because there was a lot of redundancy.

Signed-off-by: Jacob Emery <[email protected]>
Signed-off-by: Jacob Emery <[email protected]>
…e-OpenShift-Provisioning into unprivileged_kvm_admin
Signed-off-by: Jacob Emery <[email protected]>
…nsolidate create nodes roles

Signed-off-by: Jacob Emery <[email protected]>
Signed-off-by: Jacob Emery <[email protected]>
Signed-off-by: Jacob Emery <[email protected]>
Signed-off-by: Jacob Emery <[email protected]>
Long-needed overhaul of variables structure to better align with Ansible best practice. Allows for many optimizations and simpler, cleaner execution of playbooks. Also makes scaling playbooks/tasks much easier.

In addition, all references to those variables were updated, and docs were overhauled as well.

Signed-off-by: Jacob Emery <[email protected]>
Signed-off-by: Jacob Emery <[email protected]>
Signed-off-by: Jacob Emery <[email protected]>
@jacobemery jacobemery changed the title BREAKING CHANGE: simplify variables BREAKING CHANGE: variables overhaul Jul 4, 2023
@jacobemery jacobemery changed the title BREAKING CHANGE: variables overhaul BREAKING CHANGE: overhaul variables Jul 4, 2023
@veera-damisetti
Copy link
Collaborator

@jacobemery shall we do these breaking changes for the changes in PR which is still open .?
because the changes you made here might cause some conflicts with the code changes by that PR.

#147

@smolin-de
Copy link
Contributor

@jacobemery
The development branch is 27 commits behind main branch. Your PR contains changes which are already in the main branch and includes some conflicts. Please create a PR with only new changes. This would reduce the number of changes to review.

@jacobemery
Copy link
Collaborator Author

jacobemery commented Jul 6, 2023

Good point @smolin-de, synced development with main ^

I'll open a new PR with that fixed.

@jacobemery
Copy link
Collaborator Author

@veera-damisetti yes let's merge your PR first.

@jacobemery jacobemery closed this Jul 10, 2023
@jacobemery
Copy link
Collaborator Author

Resolved merge conflicts and opened new PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants