Skip to content

Lagoon Files#

Lagoon files are used to store the file output of tasks, such as backups, and can be hosted on any S3-compatible storage.

  1. Create new AWS User with policies:

    Example files IAM user
    {
      "Version":"2012-10-17",
      "Statement":[
        {
          "Effect":"Allow",
          "Action":[
            "s3:ListBucket",
            "s3:GetBucketLocation",
            "s3:ListBucketMultipartUploads"
          ],
          "Resource":"arn:aws:s3:::S3_BUCKET_NAME"
        },
        {
          "Effect":"Allow",
          "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:DeleteObject",
            "s3:ListMultipartUploadParts",
            "s3:AbortMultipartUpload"
          ],
          "Resource":"arn:aws:s3:::S3_BUCKET_NAME/*"
        }
      ]
    }
    
  2. Update lagoon-core-values.yml:

    lagoon-core-values.yml
    s3FilesAccessKeyID: <<Access Key ID>>
    s3FilesBucket: <<Bucket Name for Lagoon Files>>
    s3FilesHost: <<S3 endpoint like "https://s3.eu-west-1.amazonaws.com" >>
    s3FilesSecretAccessKey: <<Access Key Secret>>
    s3FilesRegion: <<S3 Region >>
    
  3. If you use ingress-nginx in front of lagoon-core, we suggest setting this configuration which will allow for bigger file uploads:

    lagoon-core-values.yml
    controller:
    config:
      client-body-timeout: '600' # max 600 secs fileuploads
      proxy-send-timeout: '1800' # max 30min connections - needed for websockets
      proxy-read-timeout: '1800' # max 30min connections - needed for websockets
      proxy-body-size: 1024m # 1GB file size
      proxy-buffer-size: 64k # bigger buffer