:calendar: The infrastructure deployment time machine
:jack_o_lantern: This is an extra spooky QUADS release and likely the last :tm: of the 1.1 series before the next-generation 2.0 series of QUADS :jack_o_lantern:
QUADS 1.1.8
is a mostly bugfix release with a few new creature comfort features baked in.
validate_env
for skipping systems validation via --skip-network
, --skip-system
or --skip-hosts host01 host02
quads-cli
https://github.com/redhat-performance/quads/commit/4c3f98a3d1d2bbd5cffaf520c79ba06e26f4b817
--ls-available
command can now be filtered via --cloud
environment #432validate_env
does not properly set switch_config_applied
https://github.com/redhat-performance/quads/commit/63f3845a14984d4dbaf69a177d6d0610e9fdff4a
--shrink
not updating the schedule.end
data #433make_instack_env
process https://github.com/redhat-performance/quads/commit/cc593dcb01db79f756cc6b188b385518aa82cbf2
--mod-interface
not updating the switch_ip
data #443diff -u /opt/quads/conf/quads.{yml,yml.rpmnew}
quads-server
service.# cd /opt/quads/
# python3
>>> from quads.model import Host
>>> hosts = Host.objects()
>>> for host in hosts:
... for iface in host.interfaces:
... Host.objects(name=host.name, interfaces__name=iface.name).update(set__interfaces__S__switch_ip=iface.ip_address)
1
displayed in stdout knowing it was successful.:heart_decoration: coming in hot on the heels of Valentine's day with a lot of love from your QUADS development team :heart_decoration:
QUADS 1.1.7
is a major bugfix and feature release. In particular we are focusing on core functionality fixes, several new high-profile features and other enhancements containing over a year of development since the last release.
QUADS 1.1.7
will be the last 1.1
series release barring any critical fixes as we focus on QUADS 2.0 (Bowie)
and the new upcoming APIv3, completing the move to Flask and SQLAlchemy/PostgreSQL.
This release includes around 59+ code reviewed patches bringing new features/improvements and bug fixes.
NOTE We have backported a few fixes into the RPM package attached to this changelog since 2023-04-21 found after the general GA.
--ls-available
Flask GUI https://github.com/redhat-performance/quads/commit/2dd7ab565c959b62befbc95ffeb0ff5edf8468ad
lshw2meta
tool for gathering hardware to important into host metadata model https://github.com/redhat-performance/quads/commit/854e6388e00d9706e1bbfa3e06cc83d11402fe04
move_and_rebuild
network configuration tasks https://github.com/redhat-performance/quads/commit/3d2980f2a444e4b67d4b45ef2d08ffa2efa75405
validate_env
can now take per-cloud arguments https://github.com/redhat-performance/quads/commit/e611093c5245777749ef780e0fefcac419632f4e
--ls-available
now supports filtering certain clouds/environments https://github.com/redhat-performance/quads/commit/e0367b5b7c4ca89497ef65276ee5b14d2d7a11f4
--cloud-only
now supports filtering hosts https://github.com/redhat-performance/quads/commit/11a264fd32e6923e7b2c098a0ff8b1c3dd3daaf1
verify_switchconf.py
tool https://github.com/redhat-performance/quads/commit/20568e8428c1150de104d2f3350d76735f874344
ls_switch_conf.py
is now aware of and checks for optional routable public VLANslsh2meta
not storing CPU metadata information https://github.com/redhat-performance/quads/commit/d9a377b2e75b68b46c83634a2d104e2eaca36763
--ls-retired
retired host listings https://github.com/redhat-performance/quads/commit/fcc81eea650fbb1c8827b2004f46b6662970f4a0
subcategoryStatus
API changes https://github.com/redhat-performance/quads/commit/0715946428813b81f57920eb8b1d955c6262762e
diff -u /opt/quads/conf/quads.{yml,yml.rpmnew}
/opt/quads/conf/quads.yml
omit_network_move:
webhook_notify: true
webhook_url: https://chat.example.com/v1/spaces/AAABBBCCC
quads-server
service.# cd /opt/quads/
# python3
>>> from quads.model import Host
>>> hosts = Host.objects()
>>> for host in hosts:
... for iface in host.interfaces:
... Host.objects(name=host.name, interfaces__name=iface.name).update(set__interfaces__S__switch_ip=iface.ip_address)
1
displayed in stdout knowing it was successful.QUADS 1.1.6
is a bugfix, refactor and feature release. In particular we are focusing on core functionality fixes and enhancements to visuals, reporting and operator quality-of-life activities. We've packed almost 8 months of development, features and testing into this release.
This release includes around 14x new features/improvements and 19 x bug fixes.
:fallen_leaf: 1.1.6
arrives just before Spring time! :fallen_leaf:
quads-cli
via python3-argcomplete
--skip-network
added to validate_env.py
for skipping network validations.--report-detailed
will give you a report on upcoming future, scheduled assignments--report-scheduled
will give you a report about systems and assignment utilization and scheduling over months or yearslshw.py
tool for gathering systems hardare informationls_switch_conf.py
tool for listing VLAN id to cloud mapping and other related network information.--mod-cloud
#388pxe_boot
always evaluating True.create_input.py
when it encounters empty strings to not faillock_reservation
diff -u /opt/quads/conf/quads.{yml,yml.rpmnew}
/opt/quads/conf/quads.yml
visual_colors:
cloud01: "#a9a9a9"
cloud02: "#e6194B"
cloud03: "#3cb44b"
cloud04: "#ffe119"
cloud05: "#4363d8"
<snip>
jira_auth:
with options being basic
(default) or token
.jira_token:
XXXXYYYY
where if utilizing token auth you'll place your API token for JiraQUADS 1.1.5 is a feature and bugfix release with a dozen new features/enhancements and fixes. In particular we are focusing on much tighter integration/automation with JIRA as we use it internally for handling requests and workflow.
:sun_with_face: 1.1.5
arrives just in time for the Summer! :sun_with_face:
jira.py
and jira_watchers.py
--host-list
for quads-cli --add-schedule
, this is utilized with and tied into JIRA functionality exclusively at present.
quads-cli --add-schedule --host-list /tmp/hosts --schedule-start "2021-04-20 22:00" --schedule-end "2021-05-02 22:00" --schedule-cloud cloud20 --cloud-ticket 12345
pxe_boot
#357
pxe_boot
ordering for generated instackenv.json
but also you can set a lab or deployment-level default (see Notable Changes and Upgrade Notes below)
quads/tools/populate_interfaces.py
--ls-available
verify_switchconf.py
can now operate at both the host and cloud level. #373--retire
--unretire
and --ls-retire
host features added to manage decommissioning systems #364--filter
for handling boolean key/value pairs such as --filter "retired==False"
#374modify_switch_conf.py
for ad-hoc management of individual VLAN ports on hosts/opt/quads/conf/quads.yml
/opt/quads/conf/quads.yml
configuration file has new options required if you want to use --host-list
with --add-schedule
jira_url: https://projects.engineering.example.com/rest/api/2
jira_username: admin
jira_password: password
jira_docs_links: http://wiki.example.com/faq/,http://wiki.example.com/usage/,http://docs.example.com/wiki/ScaleLabTipsAndTricks
jira_vlans_docs_links: http://wiki.example.com/vlans/,http://wiki.example.com/public-vlans/
/opt/quads/conf/quads.yml
--ls-interfaces --host $host
and is a deployment-wide setting unless overridden by pxe_boot
.default_pxe_interface: em2
pxe_boot
settings for each host in MongoDB after upgrading.em2
here would be the default QUADS internal interface standard you use for PXE booting, also reflected in the above quads.yml
setting.$ cd /opt/quads
$ python
>>> from quads.model import Host
>>> Host.objects(interfaces__name="em2").update(set__interfaces__S__pxe_boot=True)
--retire
this will also be needed for upgraded installations only.$ cd /opt/quads
$ python
>>> from quads.model import Host
>>> hosts = Host.objects()
>>> for host in hosts:
... if not host.retired:
... host.update(retired=False)
QUADS 1.1.4.1 is a small feature enhancement release, fixing a few bugs as well.
:santa: 1.1.4.1
arrives just in time for the Winter Holidays :santa:
--extend-cloud
is replaced by --extend
--extend
now comes with it's converse, --shrink
--extend
and --shrink
also support --date
now as well as --month
--weeks
and --year
--extend
and --shrink
can be used at the per-host or per-cloud environment level.quads-cli --extend --cloud cloud02 --weeks 2 --check
quads-cli --extend --host host01.example.com --weeks 2 --check
quads-cli --shrink --cloud cloud02 --weeks 2 --check
quads-cli --shrink --host host02.example.com --now
(effectively terminates the end of schedule to current time)quads-cli --extend --cloud cloud04 --date "2021-01-31 22:00"
quads-cli --define-cloud
- #353--mod-cloud --no-wipe
does not take effect and generates an error - #351--extend-cloud
is removed in favor of --extend
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.
:turkey: 1.1.4
arrives just in time for Thanksgiving :turkey:
Hardware Metadata Model: QUADS now populates useful characteristics about your hosts and keeps them in the MongoDB database.
--filter
command
quads-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
TCP/5001
quads-web
service if using RPM / systemdNew options for managing cloud extensions
quads-cli --extend-cloud cloud02 --weeks 2 --check
quads-cli --extend-cloud cloud02 --weeks 2
New commands for managing top-level cloud attributes
--mod-cloud
command is now available to manage individual settings at the cloud assignment levelConfigurable time-lock for defining new environments is present
quads-cli --find-free-cloud
we've implemented configurable time locks that prevent future re-definition of a cloud environment for a period set in cloud_reservation_lock
Management of broken hosts moved to MongoDB
quads-cli --ls-broken
quads-cli --mark-faulty --host host01
quads-cli --mark-repaired --host host01
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 to validate_env.py
to try and better determine where a set of systems is in the baseline/provision process to enact smarter automation.
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.
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
The following are key/value pair configuration options that have been removed from QUADS
gather_dell_configs:
foreman_check_host_health:
rt_url:
(replaced by ticket_url:
)report_dir:
If you used Foreman host parameters to manage your broken systems before you can migrate them to Mongo with this command set
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.QUADS 1.1.3 is a major bugfix and minor enhancement release for the 1.1 gaúcho
series and is highly recommended. This comes around 3 months after 1.1.2
and building on the the landmark, next-generation 1.1.0 series.
1.1.3
is comprised of around 5 x enhancements and 28 x bug fixes, it also adds support to badfish for the Dell fc640 blade hardware and auto-generation of OpenShift inventory metadata to help automate OpenShift deployment on bare-metal.
:rabbit: 1.1.3
arrives just in time for the Easter Bunny :rabbit:
Similar to ironic-based OpenStack deployments you can now download the equivalent OCP inventory file to feed into your installer for automated deployments.
verify_switchconf.py
--ls-interfaces
--vlan
with --define-cloud
verify_switchconf.py
for the Juniper platform.badfish.py
library.You'll need to define openshift_management:
parameter in quads.yml
. By default this is set to openstack_management: false
.
You'll need to set a password prefix, this is to tackle some vendors like SuperMicro imposing an IPMI password length policy. New user IPMI and Foreman passwords are now infra_location@ticket
infra_location
in quads.yml
1.1.3
if your user IPMI/Foreman password was 12345
(--cloud-ticket
number) then it will now be rdu2@12345
.infra_location: rdu2
quads.yml
(optional):quads_request_url:
If you were previously using rt_url
(and the RT ticketing system like us) this has changed as we've moved to JIRA. The following parameters are now changed/added:
rt_url
is now ticket_url
ticket_queue
is now required for rt_url
to support the base URL path corresponding to your ticket queue.In general it's always a good idea to diff
your running quads.yml
with the new version to compare any new options that might have been added:
diff -u /opt/quads/conf/quads.{yml,yml.rpmnew}
You can view the full changelog here
QUADS 1.1.2 is a major enhancement and bug fix release for the 1.1 gaúcho
series. This comes almost three months after 1.1.1
and building on the the landmark, next-generation 1.1.0 series.
1.1.2
is comprised of around 11 x feature enhancements and 20 x fixes.
:fireworks: A new year, a new QUADS! 1.1.2 arrives as we move into 2020! :champagne:
Systems and assignment reporting functionality has been added in 1.1.2
quads-cli --report-available
quads-cli --report-scheduled --months 6
Validation now occurs for hosts added to an already-existing environment
Configuration value added to ignore environments with foreman_heal.py
Date arguments added for --move-hosts --dry-run
#299
validate_env.py
now has a --debug
option
Easier to use VLAN q-in-q output for quads-cli --ls-qinq
to see your cloud VLAN settings/mode
quads-cli --date
is now re-implemented for the 1.1 series #235
Support for Dell r640 systems for Badfish
instackenv.json
--rm-schedule
--rm-schedule
post-automation when systems have their current, active schedule removed.foreman_heal.py
fixes
You can view the full changelog here
QUADS 1.1.1 is a minor enhancement and bug fix release for the 1.1 gaúcho
series. This comes a month after the landmark 1.1.0 stable release and is comprised of around 17 x enhancement and bug fix patches.
:birthday: QUADS 1.1.1 also happens to land on the 3rd birthday of QUADS (2016-10-31) :jack_o_lantern:
quads-server
daemon is down 286
nowipe
now skips validations 283
QUADS 1.1.0 gaúcho
brings about a near-rewrite of QUADS with massive improvements, architectural and design enhancements and next-generation framework updates. Special thanks to our existing and new contributors!
Highlights
Changes
Platform Changes
Python3
dependencies
Links