Is MaaS a good choice for my use case -- multiple DCs, AZs, k8s

Hi team,

I’ve been experimenting with MAAS to evaluate whether it fits our use case.

We’re currently running a single-DC deployment with ~100 leased servers, but we’re planning a transition to a multi-DC/multi-AZ architecture — eventually managing around 200 servers across 3–4 data centers operated by various vendors.


1. Power Management

In our current DC, IPMI access is restricted to a separate VPN. While this is manageable for individual servers, it’s cumbersome at scale. The DC vendor offers a power control API, but it’s not directly compatible with MAAS’s Webhook power driver.

From what I understand, this would require creating a custom power driver.

Questions:

  • Is there any documentation or guidance on writing a custom power driver for MAAS?
  • Would this require maintaining a fork, or is there a cleaner, supported way to extend MAAS with custom drivers?
  • What’s the recommended approach in this situation?

2. Single-DC Setup

For now, let’s focus on a single DC. Since we don’t own the servers, switches, or other hardware, I want to confirm whether I’m even on the right track. Here’s what we’re trying to achieve:

  • Day 1: Automate provisioning of bare-metal servers
  • Day 2: Automate updates (OS patches, configuration drift correction)
  • Then: Use the MAAS Cluster API Provider to provision a Kubernetes cluster on those servers
  • Finally: Deploy our product and its third-party dependencies via Kubernetes

I’m currently evaluating MAAS only for the Day 1 provisioning aspect. My assumptions are:

  • MAAS can be used if it can power-cycle the servers (via the custom driver)
  • MAAS can PXE-boot the servers

Are these assumptions sound? Would you recommend a different approach given that we don’t own the hardware?


3. Multi-DC Architecture

From what I gather, MAAS isn’t explicitly designed for multi-DC operations — but I’ve seen some community members use a single MAAS installation with separate regions per DC.

  • Is this the recommended pattern for multi-DC management with MAAS?
  • Are there known limitations or gotchas in doing this?
  • Would you instead recommend a separate MAAS deployment per DC?

Some context: we rarely provision new servers. Our scaling strategy is to add new “availability zones” — each AZ comprising one or more racks within a DC, each independently hosting our product. A DC can have multiple AZs.

Our goals with this are:

  • Enable canary-style upgrades by isolating AZs
  • Eliminate single points of failure
  • Move toward full Infrastructure-as-Code, which we currently lack

To clarify: we’re not a data center provider, and we don’t provision machines for end users. Our focus is internal platform stability and operational automation.


I’ll pause here. Any insights or suggestions would be very welcome!

Thanks in advance.

Hey there!

  • Is there any documentation or guidance on writing a custom power driver for MAAS?

As of today, you can’t add custom power drivers out of the box. We have some thoughts about improving the power drivers, but currently there are other priorities as the capacity is limited.

  • Would this require maintaining a fork, or is there a cleaner, supported way to extend MAAS with custom drivers?

Yes

  • What’s the recommended approach in this situation?

Spin up a separated server to translate the webhook power driver into your custom logic

Since we don’t own the servers, switches, or other hardware

wdym?

  • Is this the recommended pattern for multi-DC management with MAAS?

From my perspective, no. Still, since there is no official support for multi-DC setup as of today people created weird topologies to make it happen. However, I can see a lot of limitations and potential problems as this is definitely far away from the reference architecture.

We are working on a solution for multi-DC environments, tho. But it’s still WIP.

  • Would you instead recommend a separate MAAS deployment per DC?

As of today, yes.

Thanks @r00ta, I appreciate your guidance.

Spin up a separated server to translate the webhook power driver into your custom logic

So like a web app that is called by the Webhook power driver, and calls the DC API under the hood. Thanks – that should work.

wdym?

We rent the hardware. I thought it was important to point this out, as mostly I see posts from folks who own it.

what would be the difference between owning the hardware and renting it? You still have full control of the hardware and change the BIOS/UEFI/BMC/cabling/everything, I guess.

It’s a tad more complex than that, but I see your point and agree.

So, do you believe it makes sense to use MAAS in this scenario? From the high level, could you recommend how to achieve “the MAAS part” of the IaC approach?

I believe it’s fair. As for

My assumptions are:
- MAAS can be used if it can power-cycle the servers (via the custom driver)
- MAAS can PXE-boot the servers

I’d say yes, in general if you manage to properly PXE boot and commission machines you are good to go as this would mean that the machines are able to talk to the rack controllers. Then MAAS has some other networking requirements for example
https://maas.io/docs/configuration-reference#p-17901-controller-port-settings

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.