Whew! What a last couple of weeks. After 316 commits later we are super proud to present Lagoon Version 0.7.0. Here a short overview of the new goodies:
- The API learned more Objects. We have now a new Object called
Environments
which is automatically propagated by new deployments. It keeps track of the generated OpenShift Projects and the type of environment (development or production). They are also automatically removed when a Branch or PR is deleted. - The API is now authenticated by User. JSON Web Tokens for Users include now the SSH Key of the user and with that we can figure out to which projects and customers a User belongs. Based on that the API will only show API Objects that should actually be seen by the User. (Authenticated Create, Delete and Update is still in the works)
- The
varnish
Image has been split up intovarnish
andvarnish-drupal
🔀 - Drupal specific things of the
php-cli
image (drush, console) have been removed and moved intophp-cli-drupal
- There is a new service called
ssh
which has magic powers 🎩! It can do two things:- Generate JSON Web Tokens for a user with the SSH Key of the connecting User
- Provide remote shell access to a running container of an OpenShift Project. So it basically feels like you connect via ssh to the container even though you don't :) (this also provides possibilities for rsync and other tools that depend on rsync).
- A new lagoon type called
cli-persistent
which allows to mount an already existing persistent storage name into the cli container - Refactored Drush Aliases that auto generate a JWT for the User and makes API calls with that token, plus it also uses the new ssh connection to run drush sql-sync, drush rsync and drush ssh.
- The
php-cli-drupal
images are shipped with andrushrc.php
that tells Drush where it finds the Drupal root and what routes it currently has. This removes the need to cd into the correct drupal folder before running Drush commands! 💚 - Injecting the already existing ssh key into the cli containers so that the cli itself can make remote shell commands (needed to sync a remote environment with another remote environment)
- Updates to the nginx image:
- Auto adding
x-robots-tag
if we are on a development environment - an easy redirect-map file that allows for easy redirects without the need to write actual nginx configs
- an easy way to create basic auth via Environment Variables (auto generated the .htpasswd file! 💪)
- Auto adding
- Solr 5 and 6 Images! Also with a Drupal Flavor.
- MongoDB Images!
- A fully function
LAGOON_ENVIRONMENT_TYPE
environment variable. Also production environments cannot be deleted automatically and need to beforced - Mail Sending Support for php with an external Mail Relay (either provided by the hosting Infra, or something like Mailgun, etc.)
- Custom Routes per Environment definable in
.lagoon.yml
- Cronjobs definable in
.lagoon.yml
- Much much nicer shell and bash prompts
- Updated drupal-example with all the above mentioned changes: https://github.com/amazeeio/drupal-example
- Fought and conquered Spectre and Meltdown on the production servers. ⚔️
And probably the most exciting but not visible part of Lagoon:
We are running the first fully Dockerized Production environment sites (we always had sites that where hybrid of the new and old system, but now it's actually all in the new system).
If you are an amazee.io client we will contact you soon how we will migrate everybody over to Lagoon. Stay tuned!