See Historical release notes for release notes for all versions.
Release Notes - 2.0
MAAS 2.0 supported on Ubuntu 16.04 LTS (Xenial)
MAAS version 2.0 is supported on Ubuntu 16.04 LTS. MAAS 2.0 and greater will NOT be supported on Ubuntu 14.04 LTS. The latest MAAS 1.9 point release will continue to be supported on Ubuntu 14.04 LTS (Trusty) until it reaches end-of-life.
Upgrades are supported for users running Ubuntu 14.04 systems running MAAS 1.9 or earlier. Upon upgrading to Ubuntu 16.04, the MAAS database and configuration will be seamlessly migrated to the supported MAAS version.
Please see the “Other Notable Changes” section below for more details regarding the reasons for this change.
Cluster controllers have been renamed to rack controllers.
Starting from MAAS 2.0, MAAS cluster controllers have been deprecated,
along with the legacy
nodegroups API. The new API endpoint is
rackcontrollers, which provides feature parity with earlier versions
For more information on rack controllers, refer to the Major new Features section bellow or refer to rack-configuration.
API 1.0 has been deprecated, introducing API 2.0
Starting from MAAS 2.0, the MAAS REST API version 1.0 has been deprecated. MAAS 2.0 drops support for the legacy 1.0 API, in favor of API version 2.0. With the introduction of the new API version, various endpoints have now been deprecated, and new end-points have been introduced. API users will need to update their client tools to reflect the changes.
For more information on API 2.0, refer to API documentation <region-controller-api>.
Static IP ranges have been deprecated
Starting from MAAS 2.0, static IP ranges (previously found on the cluster interface page) have been deprecated. MAAS now assumes total control of a subnet. MAAS will automatically assign IP addresses to deployed machines, as long as those IP addresses are not within a dynamic or a reserved IP range. Users are now only required to specify one or more dynamic ranges per subnet. Dynamic ranges are used for auto-enlistment, commissioning, and any other systems configured for DHCP. IP addresses in-use for purposes such as devices, default gateways, DNS servers, rack and region controllers, and BMCs are automatically avoided when assigning IP addresses. Reserved IP ranges may be added if MAAS should avoid certain ranges of IP addresses in the subnet.
maas-region-controller-min has been renamed to maas-region-api
maas-region-controller-min package has been renamed to
maas-region-api. This package provides API services for MAAS
maas-regiond) and can be used to scale out the API front-end of a
MAAS user creation been moved to 'maas' command
Starting from MAAS 2.0, the
maas command now provides the ability to
create admin users. The
maas-region createadmin command has
been deprecated. New administrators should now be created with
maas-provision command has been replaced
The MAAS rack controller command-line interface (
been replaced by the
maas-region-admin command has been replaced with maas-region
The MAAS region controller command-line interface (
has been replaced by the
maas-region command. Note that this command
provides an interface to interact directly with Django, which should
only be used for debugging purposes.
Debian Installer is no longer installed or supported
Because support for the Debian Installer (DI) has been dropped (as of MAAS 1.9), MAAS no longer downloads DI-related files from simplestreams. Upon upgrading to MAAS 2.0, DI-related files will be removed from the MAAS region (and all rack controllers).
Major new features
MAAS Rack Controllers and High Availability
Starting from MAAS 2.0, MAAS cluster controllers have been renamed to rack controllers.
nodegroups/(group)/interfacesAPI endpoints have been deprecated. In MAAS 2.0, the
rackcontrollersinterface partially replaces this functionality. For defining dynamic and reserved ranges, or specifying default gateways, use the
subnetsendpoint. For enabling or disabling DHCP, use the
- The Clusters tab is no longer available in the Web UI. Controllers are now found under the Nodes tab, where each region and/or rack controller can be found. Other cluster interface properties have been moved to the Subnet and VLAN details pages under the Networks tab.
Machines no longer belong to a specific controller. In earlier versions of MAAS, machines would directly assigned to a cluster controller. The cluster controller that the machine belonged to would not only perform DHCP for that machine, but also all the PXE booting and power management.
In order to support high availability for rack controllers, (starting from MAAS 2.0) machines no longer belong to a specific rack controller. The best controller to manage a machine is now determined at runtime.
DHCP is now configured per-VLAN. In earlier versions of MAAS, DHCP was directly linked and configured per cluster interface. As of MAAS 2.0, DHCP is now configured and managed per-VLAN, which allows any rack controller to potentially provide DHCP in a high-availability environment.
- Rack controllers have been enabled for high availability. Starting from MAAS 2.0, rack controllers in the same VLAN become candidates to manage DHCP, PXE/TFTP, and power control for machines on the VLAN. MAAS now supports the concept of a primary and a secondary rack controller. If a secondary controller determines that the primary controller is unavailable, it will assume control of those services.
maas-rack support-dumpcommand. For increased support observability, users can now dump the contents of several internal MAAS data structures by executing
sudo maas-rack support-dump. This command will dump networking diagnostics, rack configuration, and image information. Information can be restricted to a particular category by using the
- Rack controllers can now be found under the Nodes tab in the Web UI. MAAS 2.0 Adds a new Controllers section under thee Nodes tab. This section will now list all rack and region controllers. Under a rack controller, the user will be able to see service tracking, connected VLANs, rack interfaces and other relevant information.
Region Controller Redundancy (High Availability)
Starting from MAAS 2.0, MAAS provides the ability to scale out (provide
redundancy for) the MAAS region controller API, HTTP server, and DNS.
This will allow administrators to set up multiple MAAS region
maas-region-api) against a common database, providing
redundancy of services. With further manual configuration, users will be
able to setup the MAAS region controller in high availability mode.
New Networks Web UI
MAAS 2.0 introduces a few new Web UI features that were not available in previous versions of MAAS.
- Added fabric and space details pages.
- Added the ability to add and remove fabrics, spaces, subnets and VLANs. This can be done using the actions menu on the Networks tab. The ability to delete fabrics, spaces, subnets and VLANs is also available from the details page for each respective object.
MAAS 2.0 extends DNS management by adding the following features:
- Ability to create multiple DNS domains.
- Ability to add multiple records (
SRV) per domain. (API only)
- Ability to select the domain for machines and devices.
- Ability to assign (additional) names to IP addresses. (API only)
- For deployed machines,
Arecords continue to be created for the IP of the PXE interface.
- Additional PTR records are now created for all non-PXE interfaces in
- Reverse DNS is now generated for only the subnet specified, rather than the parent /24 or /16. By default, RFC2137 glue is provided for networks smaller than /24. This can be disabled or changed on a per-subnet basis via the API.
Previous versions of MAAS used the concepts of a dynamic range and static range, which were properties of each cluster interface. This has been redesigned for MAAS 2.0 as follows:
- Dynamic ranges have been migrated from earlier MAAS releases as-is.
Because static ranges have been removed from MAAS, each static range has been migrated to one or more reserved ranges, which represent the opposite of the previous static range. (MAAS now assumes it has full control of each managed subnet, and is free to assign IP addresses as it sees fit, unless told otherwise.)
For example, if in an earlier MAAS release a cluster interface was configured on 192.168.0.1/24, with a dynamic range of 192.168.0.2 through 192.168.0.99, and a static range of 192.168.0.100 through 192.168.0.199, this will be migrated to:
IP range #1 (dynamic): 192.168.0.2 - 192.168.0.99 IP range #2 (reserved): 192.168.0.200 - 192.168.0.254
Since 192.168.0.100 - 192.168.0.199 (the previous static range) is not accounted for, MAAS assumes it is free to allocate static IP addresses from that range.
Scalability is now possible by means of adding a second dynamic IP range to a VLAN. (To deal with IP address exhaustion, MAAS supports multiple dynamic ranges on one or more subnets within a DHCP-enabled VLAN.)
- Reserved ranges can now be allocated to a particular MAAS user.
- A comment field has been added, so that users can indicate why a particular range of IP addresses is reserved.
- IP ranges can be configured in the Web UI via the Subnet details
page, or using the
subnetsREST API endpoint.
API 2.0 and MAAS CLI Updates
Version 1.0 of the MAAS REST API has been removed and replaced with the 2.0 version of the REST API. As such, new endpoints and commands have been introduced:
RackControllers - This endpoint/command has the following operations in addition to the base operations provided by nodes:
import-boot-images- Import the boot images on all rack controllers
describe-power-types- Query all of the rack controllers for power information
RackController - This endpoint/command has the following operations in addition to the base operations provided by nodes
import-boot-images- Import boot images on the given rack controller
refresh- refresh the hardware information for the given rack controller
- Machines - This endpoint/command replaces many of the operations
previously found in the nodes endpoint/command. The machines
endpoint/command has the following operations in addition to the
base operations provided by nodes.
power-parameters- Retrieve power parameters for multiple machines
list-allocated- Fetch machines that were allocated to the user/oauth token.
allocate- Allocate an available machine for deployment.
accept- Accept declared machine into MAAS.
accept-all- Accept all declared machines into MAAS.
create- Create a new machine.
add-chassis- Add special hardware types.
release- Release multiple machines.
- Machine - This endpoint/command replaces many of the operations
previously found in the node endpoint/command. The machine
endpoint/command has the following operations in addition to the
base operations provided by node.
power-parameters- Obtain power parameters for the given machine.
deploy- Deploy an operating system to a given machine.
abort- Abort the machines current operation.
get-curtin-config- Return the rendered curtin configuration for the machine.
power-off- Power off the given machine.
set-storage-layout- Change the storage layout of the given machine.
power-on- Turn on the given machine.
release- Release a given machine.
clear-default-gateways- Clear any set default gateways on the machine.
update- Change machine configuration.
query-power-state- Query the power state of a machine.
commission- Begin commissioning process for a machine
Other endpoints/commands have changed:
- All list commands/operations have been converted to read
- All new and add commands/operations have been converted to create
- Nodes - The nodes endpoint/command is now a base endpoint/command
for all other node types(devices, machines, and rack-controllers).
As such most operations have been moved to the machines
endpoint/command.The following operations remain as they can be used
on all node types.
is-registered- Returns whether or not the given MAC address is registered with this MAAS.
set-zone- Assign multiple nodes to a physical zone at once.
read- List nodes visible to the user, optionally filtered by criteria.
- Node - The node endpoint/command is now a base endpoint/command for
all other node types(devices, machines, and rack-controllers). As
such most operations have been moved to the machine
endpoint/command. The following operations remain as they can be
used on all node types.
read- Read information about a specific node
details- Obtain various system details.
delete- Delete a specific node.
- With the migration of nodes to machines the following items
previously outputted with the list command have been changed or
removed from the machines read command:
- ``status - Will now show all status types
substatus_name- Replaced by
- ``boot_type - Removed, MAAS 2.0 only supports fastpath.
pxe_mac- Replaced by
hostname- Now only displays the hostname (without the domain) of the machine.
domainattributes can now be used instead.
- And other endpoints/commands have been deprecated:
- NodeGroups - Replacement operations are found in the RackControllers, Machines, and BootResources endpoints/commands.
- NodeGroupInterfaces - replacement operations are found in the RackController, IPRanges, Subnets, and VLANS endpoints/commands.
Extended Storage Support
MAAS 2.0 Storage Model has been extended to support:
- XFS as a filesystem.
- Mount options.
- Swap partitions. (MAAS 1.9 only supported the creation of a swap file in the filesystem.)
All of these options are currently available over the CLI.
MAAS 2.0 introduces the ability to define DHCP snippets. This feature allows administrators to manage DHCP directly from MAAS, removing the need to manually modify template files. The following types of DHCP snippets can be defined:
- Host snippets - used for configuration for a particular node in MAAS.
- Subnet snippets - used for configuration for a specific subnet in MAAS.
- Global snippets - used for configuration that will affect DHCP (isc-dhcp) as a whole.
For more information, see DHCP Snippets <dhcpsnippets>.
Minor new features
MAAS proxy is now managed
Starting from MAAS 2.0, MAAS now manages the configuration for
maas-proxy. This allows MAAS to lock down the proxy so that it only
allows traffic from networks MAAS knows about. For more information,
see MAAS Proxy <proxy>.
rsyslog during enlistment and commissioning
MAAS 2.0 now enables
rsyslog for the enlistment and commissioning
environment (when using Xenial as the commissioning image). This allows
users to see
cloud-init's syslog information in
Ability to change a machine’s domain name from the UI
MAAS 2.0 introduces the ability to change a machine’s DNS domain via the Web UI. It was previously supported on the API only.
Networks listing page
In the Networks tab, a new networks overview has been introduced, which provides a high-level view of the MAAS networking mode. The network model can be grouped by either fabrics or spaces.
MAAS now tracks the status of the services required for its operation,
Other notable changes
MAAS 2.0 requires Python 3.5
Starting with MAAS 2.0, MAAS has now been ported to Python 3.5 (the default version of Python in Ubuntu 16.04 "Xenial").
MAAS 2.0 now fully supports native Django 1.8 migration system
MAAS is now based on Django 1.8. Django 1.8 has dropped support for the South migration system in favor of the native Django migration system, which breaks backwards compatibility with previous versions of Django.
MAAS continues to support a full upgrade path. MAAS versions 1.5, 1.7, 1.8, and 1.9 have been tested and confirmed to upgrade seamlessly to MAAS 2.0.
Instant DHCP lease notifications
MAAS no longer scans the leases file every 5 minutes.
now directly notifies MAAS if a lease is committed, released,
Host entries in DHCP
Host entries are now rendered in the DHCP configuration instead of placed in the leases file. This removes any state that previously existed in the DHCP lease database on the cluster controller.
Starting with MAAS 2.0, if the dhcpd.leases file is lost (such as during a failure scenario in a high availability environment), MAAS will be able to reconstruct it.
Power control is no longer specific to a rack controller
MAAS selects one of the available rack controllers to power control or query a BMC. The same rack controller that powers the BMC does not need to be the rack controller that the machine PXE boots from.