This repository contains the source code for the Terraform MAAS provider.
The Terraform Provider for MAAS repository now lives under the Canonical GitHub organisation with a new name github.com/canonical/terraform-provider-maas
.
Ensure you are pointing at the new provider name inside your Terraform module(s), which is canonical/maas
:
-
Manually update the list of required providers in your Terraform module(s):
terraform { required_providers { maas = { - source = "maas/maas" + source = "canonical/maas" version = "~>2.0" } } }
-
Upgrade your provider dependencies to add the
canonical/maas
provider info:terraform init -upgrade
-
Replace the provider reference in your state:
terraform state replace-provider maas/maas canonical/maas
-
Upgrade your provider dependencies to remove the
maas/maas
provider info:terraform init -upgrade
References:
- https://developer.hashicorp.com/terraform/language/files/dependency-lock#dependency-on-a-new-provider
- https://developer.hashicorp.com/terraform/language/files/dependency-lock#providers-that-are-no-longer-required
- https://developer.hashicorp.com/terraform/cli/commands/state/replace-provider
-
Clone the repository
-
Enter the repository directory
-
Build the provider with:
make build
-
(Optional): Install the freshly built provider with:
make install
The provider accepts the following config options:
- api_key: MAAS API key.
- api_url: URL for the MAAS API server (eg: http://127.0.0.1:5240/MAAS).
- api_version: MAAS API version used. It is optional and it defaults to
2.0
.
provider "maas" {
api_version = "2.0"
api_key = "YOUR MAAS API KEY"
api_url = "http://<MAAS_SERVER>[:MAAS_PORT]/MAAS"
}
The docs section contains details about each supported Terraform resource and data source.
-
Create a new branch from
master
asrelease-vX.X.X
git branch release-vX.X.X master git push -u origin release-vX.X.X
-
Update the
CHANGELOG.md
with your release version, date and change details and push the changes to the new branch. New changes between previous release vY.Y.Y and current one vX.X.X can be found with the following command:git log --oneline vY.Y.Y..vX.X.X
-
Raise a PR on Github, title of the PR should be in the following format
Release vX.X.X
-
Merge the PR into master, taking a note of the merge commit which is created
-
Go to Releases on Github
-
Click Draft a new release
-
On
Target
choose the latest merge commit you want to release for -
Set the
tag
to create a new tag for the version in the format "vX.X.X" -
Set the
release title
to the release version, for examplev1.0.1
-
Copy and paste the relevant CHANGELOG.md entries to the release description
-
Click
Publish release
-
The new version should be available on the Releases page
Unit tests run with every pull request and merge to master. The end to end tests run on a nightly basis against a hosted MAAS deployment, results can be found here and are checked on each PR, with a warning if failed.