QUADS 2.1.0
About 2.1
Huge design improvements and simplification are at the forefront of this major release by completely removing our WordPress component and bringing everything directly back to Flask and quads-web
. This greatly reduces our design complexity and adds a plethora of foundational improvements for future features.
The features included in this release were the culmination of over ~6months of parallel design and development before and throughout the 2.0 releases of QUADS. Moving our core automated wiki and inventory to Flask creates the foundation for many more exciting features.
Major Feature Highlights
- Full removal of Wordpress as the QUADS wiki component
- Removal of large parts of the code-base dedicated to automating the sync of QUADS status/wiki/inventory over the WordPress XMLRPC/Python API.
- The
quads-web
service will now handle our dynamic inventory and wiki component directly via Flask - Wiki content and navigation menus are now instantly generated
- Ability to serve your own static content and menus is documented here
- Overall much easier adoption for new users
Development Statistics
- 12+ x peer-reviewed Gerrithub patch-sets
- 74 x changes files with 1,724 additions and 2,045 deletions
- This is the 16th release of QUADS since 23-June 2016 when 1.0 was released
Full Change List
- A full list of changes can be found here
Checking Configuration File Differences
- It's a good idea to diff the updated quads.yml with your existing one to make note of any breaking changes
diff -u /opt/quads/conf/quads.{yml,yml.rpmnew}
Breaking Changes and Migrations
System Requirements
- A supported version of Fedora Server is required if using our RPM packages
- Recommended VM with 8 x vcpu and 8 x GB of memory.
- For full features, an existing Foreman that manages your DNS, DHCP, PXE and systems lifecycle
Migrating from 1.1.8
- You should follow the upgrade instructions from 2.0.5 for the steps and data migration needed to move to 2.1.
Migrating from 2.0.5
- Several
conf/quads.yml
changes have been completed removed or changed. - Nginx vhost configuration files have changed.
Configuration File Changes
- The following configuration variables are now removed:
Removed Values
wp_wiki: https://wiki.example.com
wp_username: wikiadmin
wp_password: wikipassword
wp_wiki_main_title: Lab Dashboard
wp_wiki_main_page_id: 4
wp_wiki_assignments_title: assignments
wp_wiki_assignments_page_id: 357
wp_wiki_vlans_title: Public VLAN Allocations
wp_wiki_vlans_page_id: 14244
wp_wiki_git_manage: false
wp_wiki_git_repo_path: /opt/quads/git/wiki
wiki_url: https://wiki.example.com
Changed Values
json_web_path: /opt/quads/web/instack
visual_web_dir: /opt/quads/web/visual
New Values
web_content_path: /opt/quads/web
web_exclude_dirs: .git static instack visual any-git-content-dir-you-have README.md
quads_url: https://quads.example.com
Nginx Proxy Changes
We are now routing URL and API endpoints directly through Flask @app.route
functionality therefore if you were using a modified TLS/SSL vhost configuration file you'll need to set it up again with the new format.
systemctl stop nginx
cd /etc/nginx/conf.d/
mv apiv3_ssl.conf apiv3_ssl.conf.2.0.old
cp apiv3_ssl.conf.example apiv3_ssl.conf
servername=$(hostname) ; sed -i -e "s/quads.example.com/$servername/" /etc/nginx/conf.d/apiv3_ssl.conf
systemctl start nginx
At this point if you are using TLS you'll need to re-edit your apiv3_ssl.conf
file again with the correct TLS key and certificate names
systemctl restart nginx
Known Issues
Routable VLAN Error on Assignment Reclamation
- In some cases hosts moving back to the resource pool that had an optional routable VLAN may error like so:
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/quads/tools/verify_switchconf.py", line 155, in <module>
verify(args.cloud, args.host, args.change)
File "/usr/lib/python3.12/site-packages/quads/tools/verify_switchconf.py", line 104, in verify
if _assignment.vlan and last_nic:
^^^^^^^^^^^^^^^^
- FIX use
/usr/lib/python3.12/site-packages/quads/tools/modify_switch_conf.py
to set the correct port / VLAN manually to what/usr/lib/python3.12/site-packages/quads/tools/verify_switch_conf.py
thinks it should be and it will be restored.
Packaging and Support
Note that the RPM attached this release may contain some additional fixes since the 2.1.0 release in the future.
If you run into issues or have questions please open an Github issue or find us on libera.chat IRC #quads