Pulumi Lagoon Provider — Python SDK
A Pulumi provider for managing Lagoon resources as infrastructure-as-code.
Installation
pip install pulumi-lagoon
Configuration
pulumi config set lagoon:apiUrl https://api.lagoon.example.com/graphql
pulumi config set --secret lagoon:token YOUR_TOKEN
Or via environment variables:
export LAGOON_API_URL=https://api.lagoon.example.com/graphql
export LAGOON_TOKEN=YOUR_TOKEN
Supported Resources
| Resource | Description |
|---|---|
Project |
Lagoon projects (applications/sites) |
Environment |
Environments (branch/PR deployments) |
Variable |
Project and environment variables |
DeployTarget |
Kubernetes cluster deploy targets |
DeployTargetConfig |
Branch-pattern routing to deploy targets |
NotificationSlack |
Slack deployment notifications |
NotificationRocketChat |
RocketChat deployment notifications |
NotificationEmail |
Email deployment notifications |
NotificationMicrosoftTeams |
Microsoft Teams deployment notifications |
ProjectNotification |
Link notifications to projects |
Task |
Advanced task definitions (command and image types) |
Group |
Groups for organizing projects and users |
Route |
API-managed routes (requires Lagoon v2.29.0+) |
ProjectAutogeneratedRouteConfig |
Autogenerated route settings at project level |
EnvironmentAutogeneratedRouteConfig |
Autogenerated route settings at environment level |
Usage
import pulumi
from pulumi_lagoon import Project, Environment, Variable, Group # top-level re-exports
# The submodule path also works: from pulumi_lagoon.lagoon import ...
project = Project("my-site",
name="my-drupal-site",
git_url="git@github.com:org/repo.git",
deploytarget_id=1,
production_environment="main",
branches="^(main|develop|stage)$",
)
prod_env = Environment("production",
name="main",
project_id=project.lagoon_id,
deploy_type="branch",
deploy_base_ref="main",
environment_type="production",
)
db_config = Variable("db-host",
name="DATABASE_HOST",
value="mysql.production.example.com",
project_id=project.lagoon_id,
environment_id=prod_env.lagoon_id,
scope="runtime",
)
team = Group("my-team",
name="my-team",
)
pulumi.export("project_id", project.lagoon_id)
Importing Existing Resources
pulumi import lagoon:lagoon:Project my-site 123
pulumi import lagoon:lagoon:Environment prod-env 123:main
pulumi import lagoon:lagoon:Variable api-key 123::API_KEY
pulumi import lagoon:lagoon:Group my-team my-team
Multi-Language Support
This provider also has SDKs for TypeScript/JavaScript, Go, and .NET/C#.
Documentation
License
Apache License 2.0
Release files for pulumi-lagoon 0.5.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pulumi_lagoon-0.5.6.tar.gz | 32.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pulumi_lagoon-0.5.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.9 kB
Release files / pulumi_lagoon-0.5.6.tar.gz
| Download URL | pulumi_lagoon-0.5.6.tar.gz |
|---|---|
| Size | 32.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0b508f35965cdc8bd3797884e132a372559803cc135ccd6ec831448243223c8
|
|
BLAKE2b-256 checksum How to use checksums |
84df8e674fc6eaa51dd19cc6c84712004aa8d44bbe084458ce28633d7221a812
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / pulumi_lagoon-0.5.6-py3-none-any.whl
| Download URL | pulumi_lagoon-0.5.6-py3-none-any.whl |
|---|---|
| Size | 59.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9108bcc4637570cef88bcf6fea4aad06d272c941fc83c06e6a76ecc57c1891c7
|
|
BLAKE2b-256 checksum How to use checksums |
66ff30442fa741f671f42c8387009b6aa3cfd2b841488aae2a118e3f7b975ceb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log