QUADS 1.1.4
About 1.1.4
QUADS 1.1.4 is a major enhancement and bugfix release for the 1.1 gaúcho
series and is highly recommended. This comes with around 7 months of development since 1.1.3
and building on the landmark, next-generation 1.1.0 series.
With almost 100 peer-reviewed commits to the codebase, 1.1.4
is comprised of around 25 x enhancements and 30+ bug fixes.
🦃 1.1.4
arrives just in time for Thanksgiving 🦃
Major Feature Highlights
-
Hardware Metadata Model: QUADS now populates useful characteristics about your hosts and keeps them in the MongoDB database.
- You will need to populate data about your systems to take advantage of this.
- This is baked into the serveral CLI options as well via the
--filter
commandquads-cli --ls-hosts --filter "interfaces.mac_address==ac:1f:62:2f:19:42"
quads-cli --ls-available --filter "model==FC640,interfaces__size==5"
-
QUADS Available UI (Tech Preview): Flask-based web UI for querying systems availability provided by new service
quads-web
- Runs on
TCP/5001
- Runs from the
quads-web
service if using RPM / systemd - Relies on the MongoDB metadata model for filtering based on model
- Runs on
-
New options for managing cloud extensions
- The following commands can be used for easier management of extensions
quads-cli --extend-cloud cloud02 --weeks 2 --check
quads-cli --extend-cloud cloud02 --weeks 2
- The following commands can be used for easier management of extensions
-
New commands for managing top-level cloud attributes
- The
--mod-cloud
command is now available to manage individual settings at the cloud assignment level
- The
-
Configurable time-lock for defining new environments is present
- To prevent against human race conditions and the potential for more than one operator to choose a cloud from
quads-cli --find-free-cloud
we've implemented configurable time locks that prevent future re-definition of a cloud environment for a period set incloud_reservation_lock
- To prevent against human race conditions and the potential for more than one operator to choose a cloud from
-
Management of broken hosts moved to MongoDB
- We no longer rely on Foreman host parameters to manage broken/faulty systems, this is now done in MongoDB and managed via QUADS CLI
quads-cli --ls-broken
quads-cli --mark-faulty --host host01
quads-cli --mark-repaired --host host01
- We no longer rely on Foreman host parameters to manage broken/faulty systems, this is now done in MongoDB and managed via QUADS CLI
-
validate_env.py
and our netcat health checks for validation are now fully using asyncio -
move_and_rebuild_hosts.py
will now also unmount virtual media ISO (SuperMicro) -
Network automation is now idempotent and will not run twice if not needed.
-
quads-cli --summary --detail
gives additional full-readout display of active assignments. -
Additional validation check added
quads/tools/netcat.py
which checks that a system is reachable via TCP/22, this also adds intelligence tovalidate_env.py
to try and better determine where a set of systems is in the baseline/provision process to enact smarter automation.
Major Bug Fixes
-
validate_env.py
reboot on marked for build commit -
Format error message for
--extend-cloud
commit -
simple_table_web.py
fixes for heat map visuals commit -
Fixes for summary listings commit
-
VLAN fixes for last interface for optional public VLANS commit
-
Notification fixes commit
-
Fix for old cloud objects not being cleared commit
-
Fixes for
verify_switchconf.py
and not processing the last interfaces commit -
Fixes for SuperMicro one-time boot commit
-
Fixes for
netcat.py
health checks socket prematurely closing commit -
Fixes for
--ls-available
filtering commit -
Fix for applying PXE persistence flags on SuperMicro commit
-
Q-in-Q argument fixes and extensibility commit
-
CloudHistory fixes with prep_data commit
-
VLAN ID fixes for CloudHistory commit
-
Please consult the full changelog of differences between the last release and current upstream codebase for full details of all fixes and enhancements.
New Configuration Options (Read before Migrating from 1.1.3)
The following are changes in /opt/quads/conf/quads.yml
you should adjust or add, it's a good idea to diff the updated quads.yml
with your existing one to make note of any breaking changes via diff -u /opt/quads/conf/quads.{yml,yml.rpmnew}
-
New entries for optional ticket system association with QUADS
ticket_url:
ticket_queue:
-
Optional value for inserting a preferred day-of-week deadline for tenants to submit extension requests.
quads_request_deadline_day:
-
Set default wipe policy (defaults to True)
default_wipe:
-
Reservation lock (defaults to 48hrs)
cloud_reservation_lock:
-
Models Information Added (comma separated list of supported models that match metadata model strings)
models: R620,R630,R640,R930,R730XD
-
Expiring cloud notification setting:
quads_notify_until_extended: True
Removed Configuration Options
The following are key/value pair configuration options that have been removed from QUADS
gather_dell_configs:
foreman_check_host_health:
rt_url:
(replaced byticket_url:
)report_dir:
Other Notable Changes and Upgrade Notes
Migrating Broken Hosts Management to Mongo
If you used Foreman host parameters to manage your broken systems before you can migrate them to Mongo with this command set
Migrating from 1.1.3 to 1.1.4 Reservation Locks
- If you see an issue with reservation locks not going away you may need a one-time adjustment of timestamp data outlined in the above issue.
Foreman RBAC Changes
We have moved to a more manageable method of juggling role-based access permissions for tenants using Foreman which is based on host ownership instead of a series of filters and roles individually added to each system.
foreman_heal.py
has been refactored to use this new approach so running it is enough but you can find the updated setup documentation here for more info.