Back to top

List of all features available in Lagoon

All user-initiated actions in the API are logged independently, capturing the username, access method, IP address and the query or action performed.
Lagoon integrates with k8up to perform a range of backup/restore activities. These can be scheduled to occur out of hours, and the retention periods can also be configured per-project.
Lagoon is fully integrated with Let’s Encrypt to automatically provision all the certificates needed when creating additional environments. This reduces the headaches around certificate renewal.
Coming Soon
Lagoon has the functionality to trigger the deployment of hundreds of sites from a single command, and then process them in an orderly fashion, setting priorities appropriately.
Lagoon projects can be configured to deploy environments to multiple different target clusters. This would usually be used to physically segregate production and development workloads onto separate Kubernetes clusters.
The integration with Git providers will trigger a Lagoon deployment via a webhook on a push/branch or PR to a repository. Deployments can also be triggered via the User Interface, Command Line Interface, or via a GraphQL request.
Lagoon is completely flexible for your Git workflow - we support Active/Standby, Branch, Pull Request, Promote and Canary deployments.
Lagoon supports wildcard aliases in Drush, which automatically provides full Drush functionality to all environments for a Drupal site.
Lagoon is able to consume site audit information from Drutiny, a Drupal audit utility, when used in combination with the Lagoon Drutiny plugin. The results from Drutiny audits are stored in the Problems system.
Lagoon has many methods for setting environment variables, either file-based, or API-driven. These variables can be scoped to different phases for added security.
Lagoon has a range of tools that can compute and collect information from environments,such as application or package versions, current states or statuses. These facts can be used to filter or sort projects and environments.
Lagoon only requires a single .lagoon.yml file to be present in your Git repository. This file instructs Lagoon on where to find the docker-compose configuration necessary to build the environment’s containers.
Lagoon supports GitHub, GitLab, BitBucket and Gitea for hosting your Git repositories. Both the enterprise and self-hosted versions are supported.
Lagoon features a full GraphQL API, protected with strong Role Based Access Control to give users full control over projects, environments, users and groups.
Lagoon is tightly integrated with Harbor, the Image Registry. For each environment that is created in Lagoon, a corresponding image repository is created to store the built images for use in Lagoon builds. This image registry is installed alongside Lagoon (either centrally, or per-cluster).
Lagoon has a CLI (command line interface) tool, initially developed by a member of our community, that supports the full range of GraphQL API functionality. Written in Go, it is a useful tool for developers, as well as being highly utilized in CI (continuous improvement) processes.
The Lagoon tasks system allows arbitrarily-defined commands to be run in environments. These tasks can be defined at group, project, or environment level and can cascade down. These tasks can also be run conditionally based on facts or permissions.
Lagoon has a full-featured UI, built in React, integrated with the permission system to show the status of projects, environments and deployments.
Coming Soon
The standard deployment workflow Lagoon can be extended to contain rule-based triggers to perform a wider range of functions to allow testing, release gates, etc.
Lagoon supports local development in Lando, which will reduce developer onboarding time. Lando also has integrations into Lagoon to push/pull databases and files to facilitate easy on-going development.
Lagoon supports the sending of Logs to a number of external cloud monitoring services, including SumoLogic, Splunk, DataDog and Cloudwatch, but can be extended to any provider with a Fluentd output plugin.
Lagoon supports the addition of client-provided metadata at the project level. This helps customers with multiple projects store additional information alongside the sites, and this information can be easily queried. Metadata support was contributed by the Lagoon community.
Updated 2021
Lagoon supports sending a range of notifications to Slack, RocketChat, Email, Microsoft Teams and Webhooks. These notifications can be configured to send to specific channels or addresses, and can be actioned on different events.
Lagoon is fully configurable to only deploy the branches and pull/merge requests you want it to. A simple regex is all that’s needed, and each the number of concurrent development environments can be configured per project.
Lagoon has the ability to define set tasks to perform during the deployment phase, which could include pre-deployment backups, post-rollout tasks/updates/checks etc. These are all defined inside the project’s own Git repository, and are 100% customizable.
Lagoon maintains a per-environment database of “problems.” issues discovered—typically automatically—with running environments. These problems are assigned severity levels and, where possible, linked to the originating CVE (Common Vulnerabilities and Exposures) or project issue.
Lagoon publishes a full set of Docker-compatible base images to build projects with. These images are the some ones used to build projects locally and in the cloud, meaning that the chance of incompatibilities is minimized.
Pygmy is a lightweight local development tool for docker-compose. Out of the box, it supports multiple concurrent projects, and provides a mail-testing tool. The latest rewrite of pygmy, written in Go, was contributed by the Lagoon community.
Lagoon has full RBAC (Role-based access control) with tiers suitable for most users, allowing users to set permissions according to the tasks that they will be performing.
All Lagoon projects are tied back to a source Git repository. Each project can have multiple environments, which are usually named the same as branches (and pull/merge requests). The environments within a project are configured to be able to communicate with each other to facilitate database/file synchronization.
Lagoon supports Harbor’s integration with the Trivy Image scanner. Each environment image is scanned on creation against the latest vulnerability databases. Any vulnerabilities can be stored inside Lagoon as Problems.