Skip to content

Releases: uselagoon/lagoon

Small Improvements and Fixes still give a release

10 Mar 18:44
Compare
Choose a tag to compare

This Release is a set of a lot of small improvements and fixes, things that over time accumulated and make the system a bit better working.

Features:

  • Allow to define an S3 region via the S3_REGION env variable for Lagoon Tasks (#957)

Changes:

  • SSH Key Syncing from Gitlab is disabled for now (3041b36) if you use this features, please be aware that this will cause desynced ssh keys. We're working on getting the feature back and also provide a sync-everything feature

Bugfixes:

  • Increase the Gitlab timeout to 30secs as the previous timeout of 2secs caused issues (96affbc)

Improvements:

  • Remove ::ffff: also from fastcgi param REMOTE_ADDR, as we already do it for the X-Forwarded-For Header (#958)
  • Storage Calculator can now also calculate the storage for mariadb-shared service (#956)
  • The Lagoon UI backup tab now informs customers about the new tasks tab where they can get on-demand backups (#955)
  • Some less logging in the services which reduces the amount of container-logs created by Lagoon (#954)
  • Better non-technical names for Lagoon Tasks (#952) - thanks @klonos!

Documentation:

  • none

k8up support

09 Mar 16:03
c3f378c
Compare
Choose a tag to compare

We now have full k8up support, also for the newest release with individual S3 Buckets per Lagoon Project. So far we already supported k8up, but only the global S3 bucket system. Which unfortunately is not really usable in very big cluster with thousand of backups.

Beside of that we also have:

Features:

  • Add a PROJECT_SECRET which injects a random secret into all environment which is the same across all Lagoon Projects. (#947)

Changes:

Bugfixes:

  • Fix the start of RabbitMQ Cluster with non standard service names (#937)
  • Force deprovisioning of "Provisioned Services" when deleting environments (#939)

Improvements:

  • Allow certain Lagoon tasks to be disabled in the UI via the environment variable LAGOON_UI_TASK_BLACKLIST (#946)

Documentation:

  • Code Standard improvement of the Drupal example files in Lagoon (#938) thank you @dan2k3k4

Versioned Lagoon Releases

05 Mar 05:26
7f6defc
Compare
Choose a tag to compare

Always tracking master branches and upstream is great to keep stuff up to date and things fresh. As Lagoon grows we're running more and more into issues of not having versioned Lagoon Releases or Lagoon Images, here just a short recap of the pain that we suffered in the last weeks:

  1. A recent update of curl caused some deployment issues for some projects, the developers unfortunately had to wait while we figured out what the problem was and released a Hotfix of the affected Images - #925
  2. As more and more people are using, the fact that openshiftBuildDeploy always used the newest published master version of oc-build-deploy-dind, made it very complicated to keep the newest code backwards compatible with a slightly older Lagoon version.
  3. A build of the master branch of Lagoon automatically published new Lagoon Images. This meant we could only merge into master when we actually wanted to publish new images. While this maybe was okay when we had 2-3 PRs to release, recent Lagoon releases had up to 35 PRs that needed to be merged all at once, this caused confusion and a lot of complexity which wasn't necessary.

Therefore today we're addressing these issues with three updates:

  1. Lagoon Base Images (php, nginx, nodejs, etc.) exist with a :latest tag (like they always did), plus a new Lagoon Version Tag, like amazeeio/nginx:v0.21.0. Important is that this is not the version number of the service, but the Lagoon Version. For Images that already provided tags for different versions of the service, we now publish a tag with a version suffix like: amazeeio/amazeeio/php:7.1-fpm-v0.21.0 plus the already existing "latest" version without a suffix: amazeeio/amazeeio/php:7.1-fpm. We still suggest to always use the latest versions of the images as we do not maintain older version of images for security updates, but there are some cases where the versioned base images are coming in handy.
  2. Merges into master branch do not automatically publish new Lagoon Images. New Images are only pushed if an actual release (a git tag) has been pushed. This improves the PR workflow drastically as we can now merge into master as soon as a single PR is coming back green from the CI system. Also all PRs and Branch builds still push images to the amazeeiolagoon Dockerhub Organisation, like amazeeiolagoon/php:7.1-fpm-master. As you can see they are suffixed with the branch or PR name. These Images should only be used for testing purposes!
  3. All Version builds of Lagoon Images now include a new LAGOON_VERSION environment variable which includes the version number of the Lagoon Version they have been published from. This can be used for all kind of purposes in your code and is used by openshiftBuildDeploy to use the same oc-build-deploy-dind image version that works together with the Lagoon Version that is running.

We know that many people where wondering since some time why these changes have not been implemented before and why it took so long for this to implement. We're sorry that we took a bit of time to realize and figure out a system that works for us.
We're very excited about the changes and look forward to a versioned future!

Beside all of that there are of course additional changes:

Features:

  • Versioned Lagoon Images (read above) #930

Changes:

  • none

Bugfixes:

  • Fixes log link missing from RocketChat messages, described in #858

Improvements:

  • Further improvements on the integration with th Backup-as-a-Service (K8up) system (#929) - which now creates individual S3 buckets for each Lagoon Project and improves the performance of Backups and Restores drastically (like 1000x faster for bigger Lagoon implementations).
  • Updating Composer from V1.6.5 to v1.8.4 in all php cli images (#927)
  • Logstash upstream images had some changes and we need to follow them (#926)
  • Fluentd elasticsearch plugin has some new settings and defaults, we're using them now (#926)
  • The Build Logs include some tokens, while they cannot really be used for anything, we're hiding them now (#924)
  • Multiple scheduled builds are now skipped and only the last one run (#932)

Documentation:

  • Use php:7.1 containers instead of php:5.6 containers as PHP 5.6 is officially dead (#864) - thanks @marji !

Hotfix: Downgrade curl version in PHP Images to 7.63.0

28 Feb 20:31
Compare
Choose a tag to compare

Bugfixes:
With the update of alpine in the PHP Images in Version v.0.20.0 curl/libcurl was also updated to version 7.64.0. Which unfortunately has a bug that in specific situations it is possible that it fills the error buffer even though there is no error happening. Depending on the implementation of the client code that uses libcurl, the client code can either correct realize that the request worked and the buffer should just be ignored. Or like in the situation of drupal-composer/drupal-scaffold the buffer is checked and an exception thrown even if the curl request worked correctly.
We have opened multiple issues to resolve this:

As soon as there is a fixed curl version released and it is packaged via the alpine packaging system, we will update curl as well.

More improvements, more service types, less pod restarts

28 Feb 04:13
Compare
Choose a tag to compare

Features:

  • mariadb-shared migration script (#918)
    This is a shell script which allows lagoon admins to migrate between different mariadb-shared environments.
  • Lagoon Tasks don't need a running Pod anymore to start a task, this means tasks works also with environments that are idled (#899)
  • Add mongodb-shared service type (#889)
  • Add rabbitmq and rabbitmq-cluster service type (#867)

Changes:

  • LAGOON_GIT_SHA environment variable is not updated by default anymore ❗ (#879)
    Reasoning for this: Injection of this environment variable causes the pods to restart on every deployment even if the attached Docker Image did not change. This caused many unnecessary restarts. By default LAGOON_GIT_SHA is now set to 0000000000000000000000000000000000000000. If the previous functionality is required again, it can be set in .lagoon.yml:
    environment_variables:
      git_sha: 'true'
    

Bugfixes:

  • Update task status to "failed" when tasks error out (#898)

Improvements:

  • We don't notify about retries during environment deletions into chat channels anymore, they only created a lot of noise (#917)
  • The Lagoon UI shows now how many development environments are created and if there is a limit defined (#914)
  • Updated ELK stack to version 6.6.1 (#910)
  • Pinned alpine image for mariadb to version 3.8 which keeps mariadb on version 10.2 before we can come up with a migration path to 10.3 (#906)
  • Increase GitLab Timeout from 2 secs to 30 secs (#905)
  • Improve BaaS/k8up: Backup time to 22.00-02.00 (#904)
  • Improve BaaS/k8up: Dump MySQL into a file first and then cat into stdout, this removes the issue of long running mysqldumps on the mysql server (#904)
  • Allow to define an hour range for the cronjob annotation via H(2-4) (#904)
  • make the productionEnvironment a required field at project creation. (#883)
    This helps us avoid things like the servicebroker assigning a DB in the dev cluster to a (not labeled) production environment, or idling hitting an environment when the customer expects their site to be on 100% of the time.
  • Skip github PR deployments if only the body has changed (#870)
  • Log messages related to PR tasks are more consistent (#870)
  • PHP 7.1, 7.2, 7.3 Images are now running with Alpine version 3.9 (docker-library/php#786)

Documentation:

  • Drupal Varnish improvements (#902)
  • Update Redis environment variables (#891)
  • Adding Golive checklist (#891)
  • minified images / unified spelling of regex -> regular expressions / adding admonition
  • Fixed Link to pygmy documentation (#872)

Welcome Lagoon UI Tasks and Environment Deletes

24 Jan 00:06
Compare
Choose a tag to compare

As promised in Blogposts before, a bit focus from our engineering team goes towards the Lagoon UI and making is more self service. With todays release we bring two exiting new features to the Lagoon UI and API!

Features:

  • Lagoon UI Tasks (#860 and #845)
    You can now via the Lagoon UI create tasks that run within your site without the need to connect via the SSH Remote Shell 🎉, currently there is support for the following Tasks:
    • drush cr/drush cc all (automatically based on Drupal Version)
    • drush sql-sync and drush rsync (both with the possibility to define the source environment where whould be synced from)
    • drush sql-dump and drush archive-dump (both with the possibility to download the generated files via the UI directly!)
  • Lagoon UI Environment Delete (#852)
    Which allows a convenient way to delete environments (branches or pull-requests) via the UI.

Changes:

  • ❗Deletion of environments via rest2tasks has been removed ❗ (#852)
    Before this change environments where able to be deleted via
    curl -X POST \
      https://<rest2tasksURL>/remove \
      -H 'Content-Type: application/json' \
      -d '{ "projectName" :"myproject", "branch": "develop" }'
    
    this is not possible anymore and now needs to happen via the GraphQL API:
     curl -X POST \
       https://<apiURL>/graphql \
       -H 'Authorization: Bearer <LagoonAPIBearerToken>' \
       -H 'Content-Type: application/json' \
       -d '{ "query": "mutation { deleteEnvironment(input: {name: \"develop\", project: \"myproject\"}) }" }'
    
    If you wonder how to get the LagoonAPIBearerToken, please see the documentation for it: https://lagoon.readthedocs.io/en/latest/using_lagoon/graphql_api/#connect-to-graphql-api

Bugfixes:

  • Environment variables injected via the Lagoon API not present in environments (#861)

Improvements:

  • Better mariadb-shared migration Scripts (#859)
  • Updated Elasticsearch, Kibana, Logstash to version 6.5.4, plus SearchGuard to the same versions (d5da69a)

Documentation:

  • #855
  • PHP 5.6 and 7.0 Deprecation: (#857)

New Year, new Features!

22 Jan 01:56
Compare
Choose a tag to compare

Happy new Year from the Lagoon Team!
First we really would like to say sorry for the not existing change-logs of the last releases, unfortunately they fell a bit through the cracks of life.
But here is to the new year: We pledge that every release in 2019 and every year after will have a change-log!

Changes:

  • Update default Solr Image Configs to run with solr.lock.type:none, this fixes issues where the Solr didn't fully bootstrap after the container was stopped non-gracefully. (#552)
    Move the Solr Data dir from /opt/solr/server/solr/mycores/${corename}/data to /var/solr/${corename} while keeping the solr config still at /opt/solr/server/solr/mycores/${corename}/config. This split of data and config allows upcoming Solr Docker Images to automatically update the solr config, before this was not possible as the solr core was configured once and the config never ever updated. (#552)
    ❗Important:❗
    If you customized the Docker Solr Images please update your Dockerfile from:
    CMD ["solr-precreate", "corename", "/solr-conf"]
    
    to:
    RUN precreate-core corename /solr-conf
    CMD ["solr-foreground"]
    
    Additionally update the provided Solr Configs from:
    <dataDir>${solr.data.dir:}</dataDir>
    <lockType>${solr.lock.type:native}</lockType>
    
    to:
    <dataDir>/var/solr/${solr.core.name}</dataDir>
    <lockType>${solr.lock.type:none}</lockType>
    

New Features:

  • Convert mariadb to a meta-server and auto discover mariadb-shared if the cluster supports it (#826)
    This basically means that Lagoon will automatically check if the OpenShift Cluster supports the lagoon-dbaas-mariadb-apb service broker class and if yes it will create a new service broker instance for this mariadb service. This means there is not a single pod anymore created for this environment, but instead a shared mariadb/mysql is used. If you still would like to have a single mariadb then use the service type mariadb-single. Existing projects not migrated to mariadb-shared are still automatically using the existing mariadb pod, to migrate see:
  • Added helper script to migrate existing projects to mariadb-shared (#819)
  • Support for Solr 7.5 (#807)
  • Support for PHP 7.3 (#811)
  • Support to run Tasks (shell commands) via the UI/API that are executed in a new pod in the same namespace (#845)
  • GraphQL API and UI have now support for GraphQL Subscriptions which automatically update in realtime on a new or updated Deployment, Backup or Task (#801)
  • Lagoon Tasks can now create artifacts which will be uploaded automatically by the API in an S3 compatible service and then served from there if requested via the UI/API (#820)
  • Added a new nginx-php-redis-persistent which puts nginx, php and redis into a single pod. More added for consistency and for specific cases where this can be useful (#813)
  • Added Support for upcoming Restic Backup-as-a-Service System (#813)
  • SSH Remote Shell now also supports SFTP into cli (#840)

Improvements:

  • Performance tune default mariadb-single and mariadb-galera configs (#793)
  • Added the haproxy config template that Lagoon expects to run within OpenShift (#825)
  • Improve Elasticsearch Curator (7949a03)
  • Better and faster mysqldumps for Backups (8031181)
  • Change default max_input_vars in php from 1000 to 2000 (#788)
  • UI improvements (#776)
  • Default Varnish Image ships now with dynamic director which can handle DNS changes on the fly and not only during Varnish starts (#759)
  • Default Varnish Image ships now with libvmod-bodyaccess (#759)
  • Add Projects to Customer Object in GraphQL API (#777)
  • Fix not found Tika extension in Solr (#808)
  • GraphQL API had issues loading the Hits for a month the year before (#839)
  • Remove ::ffff: in front of IPv6 addressed within X-Forwarded-For request headers (#837)
  • Enable xdebug's remote_log with an environment variable (#836)
  • Support for Drupal BigPipe (#846)
  • Longer timeouts for internal GraphQL Requests (aae899b)

Bug Fixes:

  • Handle environment names longer than 64 characters (#806)
  • Escape special characters in Pull Request Titles (#804)
  • Handle long environment variables within nginx health check (https://github.com/amazeeio/lagoon/pull/823/files)
  • Fix error with GraphQL deleteEnv (#822)
  • Handle environments with dots in .lagoon.yml (#818)
  • Fix overwritten lagoon-env config map (#792)
  • Fix issues with Keycloak 4.6.0 (#790)

Documentation:

Documentation and getting ready for `lagu`

31 Jul 20:00
Compare
Choose a tag to compare

Another week, another Lagoon Release. This time we're at v0.16.1 (no worries, the v1.0.0 is coming soon).

In this release we have:

Hotfixes and Documentation Updates

17 Jul 21:45
8e7d5cb
Compare
Choose a tag to compare

Unfortunately, sometimes little bugs don't show themselves during the automated testing and builds, so we squashed a few since the last release.

We also turned some heavy attention to the docs and have made some substantial updates. Head over to http://lagoon.readthedocs.io/ and check it all out.

Logs Logs Logs and more!

11 Jul 15:26
6d3deb0
Compare
Choose a tag to compare

Today marks another big step for Lagoon, with the v0.15.0 release we have now a better logging system (#478, #481) which will allow us to keep logs of:

  • Router Logs (each single Hit)
  • Pod Logs (stderr and stdout of every single pod)
  • Lagoon Logs (build fails, etc.)
  • Syslog Logs (Logs emitted via Syslog from the Applications)
    As the system is quite complicated and depending on a lot of different services, this probably will only fully automatically work with v0.16 but it's a step in the right direction.

Beside of that we have many other improvements:

  • Drupal 7 Support in Varnish #479 (thanks to @ron_s for working with us on this)
  • Possibility to set another memory limit for Varnish than the default 100MB - #474 (thanks to @dasrecht)
  • Better Default Character sets for MariaDB so we can support all the emojis 😱💚 #490 (thanks @twardnw)
  • Possibility to overwrite the storage size for MariaDB PVCs, because who would have thought that there are Databases bigger than 5GB?! - #487 thanks to @twardnw
  • Better Idling behavior: Don't idle Databases (they take quite long and generate all kind of timeouts), Idle Projects only after they have not been used for 4 hours (was 1 hour before) - #473 thanks @rtprio
  • Some small maxscale improvements - #494
  • More documentation: #471

And a special big shout out to @markxtji which is an active user of Lagoon and started to contribute back to Lagoon, with improving the elasticsearch PVC configurations: #463 (thanks also to @thom8 for reviewing). OpenSource Love all the way!