Skip to content

Releases: uselagoon/lagoon

lagoon-core v2.1.0

20 Oct 09:05
4799ad0
Compare
Choose a tag to compare

This release is built on the https://github.com/uselagoon/lagoon-images/releases/tag/21.9.0 images

Create new variable for project seed by @shreddedbacon in #2859

The Lagoon team identified a situation that may arise when a jwtsecret is rotated (following good security practice). The jwtsecret was used to create a password for the k8up repository, but also used to generate that password on each run. Changing the jwtsecret changes the password, so instead we have provided a projectseed instead, that doesn't need rotating, and is therefore safer to use to create these passwords reliably. We have added backward compatibility shims both in Lagoon and in the charts used to deploy Lagoon-core that will create this projectseed from the existing jwtsecret to ensure backwards compatibility

Experimental Support for multiple deployment targets per project by @shreddedbacon in #2829

Some of this functionality is in an early release phase, and all API schema calls are marked accordingly. The primary impact is that the storage of the DeployTarget (Kubernetes cluster) is now stored against the individual environment, as opposed to the project. This allows admins to configure a set of rules that determine which environments in a project deploy to specific clusters. Once an environment is allocated a DeployTarget, that is where that environment will always deploy. To manage the implementation of this, a procedure has been added to the api-db to ensure that all environments have the correct current DeployTarget added to them.

Please ensure you run the rerun_initdb.sh script after update to update all the projects for this change.

Improvements to build and task log stability by @shreddedbacon in #2862

In this release, a new service has been added to retrieve build and task logs from the lagoon-logs exchange and upload them to the S3 files bucket (along with task uploads). The API (and the UI) then retrieve these logs from that bucket instead of Elasticsearch. The logs are still currently configured to upload to Elasticsearch as well as S3. Additionally, a minio service is configured to hold the logs in local development.

Removing defaultMeta from all user activity logs by @timclifford in #2856

We picked up a situation where the user performing an action could occasionally be attributed to future actions in the audit logs. Making the user logging action more thread-safe fixes this, and removes the erroneous replication.

add X-Robots-Tag noindex, nofollow server-snippet to all ingresses by @tobybellwood in #2867

Previously all robots control was performed in the nginx base image. This PR has brought this forward into the creation of all the auto-generated ingresses (for all service types, not just nginx). This means that development environments, and production internal URLs are all covered automatically. There is a note in the documentation about use of additional server-snippets in .lagoon.yml.

What's Changed

New Contributors

Full Changelog: v2.0.0...v2.1.0

Lagoon v2.0.0

01 Oct 23:26
Compare
Choose a tag to compare

This release is built on the https://github.com/uselagoon/lagoon-images/releases/tag/21.9.0 images

Security Advisories

There were two security advisories resolved as part of this release

  • Lagoon audit logs expose bearer tokens for transactions
    The audit logs in the lagoon-logs message exchange contained the bearer tokens used to authenticate actions undertaken. In this release, the logging output to this exchange has been sanitised to remove these tokens, and also any private keys

  • Credentials stored in lagoon API environment variables exposed in logs
    A couple of the stages undertaken in a Lagoon Build could output the contents of Lagoon variables into the build logs, where they are visible to anyone with view access. In this release, these stages now no longer print these variables into the logs. Thanks to @mxr576 for the responsible disclosure.

Please refer to https://github.com/uselagoon/lagoon/blob/main/SECURITY.md for more information on how to responsibly disclose potential security issues.

Other Changes in this release

Custom Backup and Restore location support (#2820) allows projects to define their own S3-compatible buckets for backups and restores - please make sure to read the documentation - as there are some caveats!
Lagoon UI customisation (#2843) allows users to customise how many results are returned in the UI - previously this was limited to 25, but can now be controlled by the user.

Changelog

  • Add update_openshift_varchar_length procedure to migration script @shreddedbacon (#2840)
  • correctly fix permissions for my_query-cache.cnf @Schnitzel (#2822)
  • update project fact filter to query 'like' instead of 'equal to' value @timclifford (#2834)
  • Custom Backup and Restore Location Support @cdchris12 (#2820)
  • Add a message for truncated results in the UI and allow users to select displayed number @shreddedbacon (#2843)
  • Allow pseudo-random cronjobs to schedule on minute 59, and hour 23. @seanhamlin (#2833)
  • Upgrade fluentd and enforce Opensearch compatibility in logs-concentrator @smlx (#2821)
  • Improve logs-tee performance and documentation @smlx (#2818)

Documentation

Local development and Testing

Full Changelog: v2.0.0-rc.9...v2.0.0

lagoon v2.0.0-rc.9

20 Aug 07:39
7e953c6
Compare
Choose a tag to compare

This release is built on the https://github.com/uselagoon/lagoon-images/releases/tag/21.8.0 images

Facts, Tasks, and ProjectRouterPatterns, oh my 😌

Changes in this release

Upgrade instructions:

  1. Normal Helm Upgrade
  2. connect to api-db container: kubectl exec -it lagoon-core-api-db-0 sh
  3. run /rerun_initdb.sh
  4. Visit Keycloak UI as admin
  5. Navigate to Clients > lagoon-opendistro-security > Mappers > groups
  6. Replace script with:
var ArrayList = Java.type("java.util.ArrayList");
var groupsAndRoles = new ArrayList();
var forEach = Array.prototype.forEach;

// add all groups the user is part of
forEach.call(user.getGroups().toArray(), function(group) {
  // remove the group role suffixes
  //lets check if the group has a parent if this is a child
  if(group.getFirstAttribute("type") == "role-subgroup") {
    var parent = group.getParent();
    if(parent.getFirstAttribute("type") == "project-default-group") {
        var projectIds = parent.getFirstAttribute("lagoon-projects");
        if(projectIds !== null) {
            forEach.call(projectIds.split(","), function(g) {
              groupsAndRoles.add("p" + g);  
            });
            return;
        }
    }
  }
 
  var groupName = group.getName().replace(/-owner|-maintainer|-developer|-reporter|-guest/gi,"");
  groupsAndRoles.add(groupName);
  return;
});

// add all roles the user is part of
forEach.call(user.getRoleMappings().toArray(), function(role) {
   var roleName = role.getName();
   groupsAndRoles.add(roleName);
});

exports = groupsAndRoles;
  1. connect to api container: kubectl exec deploy/lagoon-core-api -it -- sh
  2. run yarn sync:opendistro-security

lagoon - v2.0.0-rc.8

21 Jul 09:33
2a5c9ba
Compare
Choose a tag to compare

This release is built on the https://github.com/uselagoon/lagoon-images/releases/tag/21.7.0 images

Changes in this release

Lagoon v2.0.0-rc.7

20 Jul 23:22
e4ab92e
Compare
Choose a tag to compare

This release is built on the https://github.com/uselagoon/lagoon-images/releases/tag/21.7.0 images

Changes in this release

lagoon v2.0.0-rc.6

15 Jul 11:15
8c07aef
Compare
Choose a tag to compare

This release is built on the https://github.com/uselagoon/lagoon-images/releases/tag/21.7.0 images

Changes in this release

v2.0.0-rc.5

02 Jul 02:19
6baf7a8
Compare
Choose a tag to compare

This Lagoon release builds on the https://github.com/uselagoon/lagoon-images/releases/tag/21.6.0 (release) base images

Highlights in this release

A few fixups identified during the Lagoon 1>Lagoon2 upgrade process.

All Changes in this release

v2.0.0-rc.4

30 Jun 03:43
67ca713
Compare
Choose a tag to compare

This Lagoon release builds on the https://github.com/uselagoon/lagoon-images/releases/tag/21.6.0 base images

Highlights in this release

Two minor fixes to the tasks system relating to typecasting, and some more local-dev improvements

All Changes in this release

  • Sends task id as string for lagoon-kbd @bomoko (#2733)
  • SQL results are not typecast to strings anymore @rocketeerbkw (#2726)
  • Don't scan images by default in build/* Makefile targets @smlx (#2732)
  • Remove some sleeps from test suite @smlx (#2731)
  • Fix duplicate lagoon-tests installed in local test cluster @smlx (#2728)
  • Parameterise the kind/push-images Makefile target @smlx (#2729)
  • Allow the make jobserver to co-ordinate with sub-makes @smlx (#2727)

v2.0.0-rc.2

28 Jun 23:55
6890db5
Compare
Choose a tag to compare

This Lagoon release builds on the https://github.com/uselagoon/lagoon-images/releases/tag/21.6.0 base images

Release Higlights

One small fix here to a regression that caused a small bug in the UI. All other changes are local-dev related.

All Changes in this release

v2.0.0-rc.1

18 Jun 03:44
d971949
Compare
Choose a tag to compare

This Lagoon release builds on the https://github.com/uselagoon/lagoon-images/releases/tag/21.6.0 base images

We will be adding more detailed information on the various components over at our blog https://dev.to/uselagoon in the coming weeks - keep an eye out!

Release Highlights

  • Lagoon has been updated to Node 16, running on Alpine 3.13
  • A new notification type to send to a webhook has been added
  • There is now an API audit log created for all API actions
  • Lagoon now fully supports Harbor v2 as a "problem" source
  • The test system has been overhauled to have each set of tests more self-sufficient
  • All changes as at Lagoon v1.15.1 have been included

All Changes in this release

Full diff to Lagoon 1 is v1.15.1...v2.0.0-rc.1