Recommended setup for utilizing EFS with CloudBees Core running on Kubernetes

Article ID:360052624452
1 minute readKnowledge base

Issue

Recommended setup for utilizing EFS with CloudBees Core running on Kubernetes

Resolution

As stated in the Supported platforms:

CloudBees supports Amazon EFS as a storage backend for CloudBees CI. However, like any technology, Amazon EFS comes with tradeoffs that should be explored and understood.

You can use EFS to create a volume available across multiple Availability Zones. However, this comes at the cost of both performance and a higher price. Due to EFS’s nature, it will almost always perform slower than EBS, which some will find unacceptable. For fine-tuning the EFS performance configuration, please refer to Amazon's documentation: https://repost.aws/knowledge-center/linux-efs-performance-modes.

For those who still want to use EFS, this KB guides you in using your EFS storage with CloudBees CI.

Create an EFS filesystem from the AWS console

Step 1 - Configure file system access

  • VPC

  • Availability Zones

Step 2 - Choose optional settings

  1. Choose the performance mode. It is recommended that you use General Purpose to achieve best performance with CloudBees Core.

  2. Choose the throughput mode. It is recommended that you use the following settings to achieve best performance with CloudBees Core:

    • Provisioned

    • Throughput (MiB/s) 160

Step 3 - Review and create

It is recommended that you choose the Create File System setting for CloudBees Core.

Configure NFS as your desired storage for Kubernetes

Use Amazon EFS CSI driver since this class supports dynamic storage provisioning. CloudBees CI expects your StorageClass to automatically create a PV once a PVC is created. This is a requirement for the product to work correctly with volume provisioning.