Redhat Performance Quads Versions Save

:calendar: The infrastructure deployment time machine

v1.1.8

6 months ago

About 1.1.8

: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.

Major Feature Highlights

Major Bug Fixes

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}

Full Change List

Breaking Changes / Migrations

  • If upgrading from earlier than 1.1.7 only
  • Due to schema changes the following code needs to be run after the package upgrade but before you start quads-server service.
  • New installations do not need this.
# 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)

  • Hit enter on empty line to continue above, should see 1 displayed in stdout knowing it was successful.

v1.1.7

1 year ago

About 1.1.7

: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.

Major Feature Highlights

Major Bug Fixes

Other Notable Changes and Upgrade Notes

Docker Compose and EL no longer maintained

  • Note that we have dropped official support for Docker/Container deployment and RHEL8/9 due to missing EPEL and distribution libraries. We stongly recommend using a modern Fedora Server OS for QUADS going forward. We will still keep container compose bits for CI purposes but do not have the resources to maintain three or more different installation platforms.

Wordpress Wiki Platform Updates

  • The associated Ansible playbook we use to deploy Wordpress/PHP-FPM/Nginx for QUADS wiki component requires Rocky 8 / RHEL8 / CentOS Stream 8 now. It received a major refactor from RHEL7/CentOS7 which has gotten quite old.

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}

Configuration Changes in /opt/quads/conf/quads.yml

  • You can now omit individual systems, clouds or domain names from running network switchport automation
omit_network_move:
  • You can set an outgoing webhook for release notifications
webhook_notify: true
webhook_url: https://chat.example.com/v1/spaces/AAABBBCCC

Full Change List

Breaking Changes / Migrations

  • Due to schema changes the following code needs to be run after the package upgrade but before you start quads-server service.
  • New installations do not need this.
# 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)

  • Hit enter on empty line to continue above, should see 1 displayed in stdout knowing it was successful.

v1.1.6

2 years ago

About 1.1.6

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:

Major Feature Highlights

  • Jira token auth is now supported
  • Optional Python3 XMLRPC SSL/TLS support for QUADS WP wiki automation #401
  • Autocomplete for 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 years
  • Additional usage reporting statistics on Wiki (daily usage) and visuals (systems usage tallies) #393
  • Revamped and more extensible visuals using emoji instead of preset color patterns.
  • Added lshw.py tool for gathering systems hardare information
  • Added ls_switch_conf.py tool for listing VLAN id to cloud mapping and other related network information.
  • VLANs can now be cleared with --mod-cloud #388
  • Added page length dropdown on available GUI datatable Flask UI

Major Bug Fixes

  • fix: pxe_boot always evaluating True.
  • fix: broken/retired being listed on report-available and wiki. #389 #390
  • fix: don't trigger VLAN int check if value is null. #392
  • fix: harden create_input.py when it encounters empty strings to not fail
  • fix: better sanity checks for foreman host params for overcloud. #379
  • fix: manage new clouds better with lock_reservation
  • fix: address behavior with notification object on mod-cloud with new ticket.

Other Notable Changes and Upgrade Notes

  • 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}

Configuration Changes in /opt/quads/conf/quads.yml

  • The previous key/value pairs for clouds can now be removed and are no longer used.
visual_colors:
  cloud01: "#a9a9a9"
  cloud02: "#e6194B"
  cloud03: "#3cb44b"
  cloud04: "#ffe119"
  cloud05: "#4363d8"
<snip>

Jira Authentication Changes

  • Added jira_auth: with options being basic (default) or token.
  • Added jira_token: XXXXYYYY where if utilizing token auth you'll place your API token for Jira

Full Change List

v1.1.5

3 years ago

About 1.1.5

QUADS 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:

Major Feature Highlights

  • Added JIRA enhancements/integration to QUADS via jira.py and jira_watchers.py
  • Added --host-list for quads-cli --add-schedule, this is utilized with and tied into JIRA functionality exclusively at present.
    • This will auto-update an associated JIRA ticket with all the scheduling details.
    • This will also set JIRA ticket "status" to "scheduled" if you have your project setup using these status phases.
    • This will also auto-update the respective ticket with optional routable VLAN associations if your QUADS deployment is set-up with this functionality.
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
  • We now have a new host-level MongoDB flag added to the interfaces model - pxe_boot #357
    • This allows you to set per-host 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)
  • New tool added for populating interfaces data from badfish in quads/tools/populate_interfaces.py
  • Added color-coding for stdout in --ls-available
    • This is a substantial enhancement as it also sorts the return of available future systems by first presenting ones that would not be coming out of an existing assignment first, thereby limiting the risk of taking system from tenants who were late on submitting extensions.
  • 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
  • Added logic to --filter for handling boolean key/value pairs such as --filter "retired==False" #374
  • New tool modify_switch_conf.py for ad-hoc management of individual VLAN ports on hosts

Major Bug Fixes

  • fix: handling for missing --add-schedule or --mod-schedule #356 #355
  • fix: datetime search on Flask available UI #363
  • fix: removed health check plus better ssh helper exceptions
  • fix: set power state on the HPE DL360
  • fix: hardcoded links for vlans on jira ticket assignment
  • fix: verify switch conf on last nic and vlans
  • fix: cosmetic stdout bug with verify_switchconf #372

Other Notable Changes and Upgrade Notes

Configuration Changes in /opt/quads/conf/quads.yml

  • The following /opt/quads/conf/quads.yml configuration file has new options required if you want to use --host-list with --add-schedule
    • JIRA-related changes:
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/

General Changes in /opt/quads/conf/quads.yml

  • This should be set to the default PXE interface in --ls-interfaces --host $host and is a deployment-wide setting unless overridden by pxe_boot.
default_pxe_interface: em2

Upgrade Notes / Changes

  • The following commands need to be run to seed 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)
  • With the inclusion of --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)

Full Change List

v1.1.4.1

3 years ago

About 1.1.4.1

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:

Major Feature Highlights

  • Added two major command-sets for managing extension and expiration of both hosts and cloud environments commit
    • --extend-cloud is replaced by --extend
    • --extend now comes with it's converse, --shrink
    • Both --extend and --shrink also support --date now as well as --month --weeks and --year
    • Both --extend and --shrink can be used at the per-host or per-cloud environment level.
    • Some examples:
      • 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"

Major Bug Fixes

  • Fixed traceback in some situations with quads-cli --define-cloud - #353
  • Fixed cases where --mod-cloud --no-wipe does not take effect and generates an error - #351

Other Notable Changes and Upgrade Notes

  • --extend-cloud is removed in favor of --extend

v1.1.4

3 years ago

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.

:turkey: 1.1.4 arrives just in time for Thanksgiving :turkey:

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 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

    • 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

Screenshot_2020-11-24_11-40-43

  • 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
  • New commands for managing top-level cloud attributes

    • The --mod-cloud command is now available to manage individual settings at the cloud assignment level
  • 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 in cloud_reservation_lock
  • 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
  • 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.

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 by ticket_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

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.

1.1.3

4 years ago

About 1.1.3

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:

Feature Highlights

osp_ocp_inv

Similar to ironic-based OpenStack deployments you can now download the equivalent OCP inventory file to feed into your installer for automated deployments.

Major Bug Fixes

New Configuration Options (Read before Migrating from 1.1.x)

  • 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

    • Setting to add: 4-character string for infra_location in quads.yml
    • Typically most people would just use the airport code here, or some other short identifier
    • Prior to 1.1.3 if your user IPMI/Foreman password was 12345 (--cloud-ticket number) then it will now be rdu2@12345.
infra_location: rdu2
  • If you have a request URL or form for users to submit assignment requests for QUADS-managed environments you can enter that in 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}

All Changes

You can view the full changelog here

v1.1.2

4 years ago

About 1.1.2

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:

Feature Highlights

Bug Fixes

All Changes

You can view the full changelog here

quads-release

v1.1.1

4 years ago

About 1.1.1

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:

Feature Highlights

  • Monthly allocation percentage available on heatmap visual
  • Percentage of environment provisioning/validation now visible on the auto-generated assignments wiki 287

quads-assignment-readiness_crop2

  • Better error messages when quads-server daemon is down 286
  • Setting a cloud to nowipe now skips validations 283
  • IPMI credentials validation are implemented 145 and 280
  • VLAN ranges that QUADS uses to automate network changes is now user-configurable 295

Bug Fixes

  • Several important Badfish library fixes
  • Fixes around cloud data fields
  • Improved support for Dell r740xd systems with Badfish
  • Around 7 x bug fixes with the full changelog here

v1.1.0

4 years ago

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

  • Complete move to Python3.6+
  • Move to asyncio for provisioning concurrency
  • MongoDB database backend replaces flat YAML files
  • MongoEngine drives object document mapping
  • CherryPy Python Web Framework for API
  • Massive re-factoring and code structure improvements
  • All shell tools rewritten in Python or made proper libraries
  • Expect network automation ported to PyExpect
  • Foreman provisioning is now done concurrently across all systems
  • Systems/Network provisioning time improvement per system of 34%
  • Lots and lots of bug fixes and other improvements

Changes

  • 323 commits since 1.0.2
  • 68 total issues closed and many other countless fixes
  • Over 35 bugs fixed
  • More than 25 feature enhancements

Platform Changes

  • RHEL7/CentOS7 is no longer supported via RPM due to Python3 dependencies
    • Fedora or RHEL8/CentOS8 are the recommended platform for RPM package deployment
  • A fully container-based deployment is available in addition to RPM or source installations

Links