Configure Wave build
This guide covers extending your existing Wave installation on Kubernetes to support container build capabilities. This enables Wave's full feature set including container building, freezing, and advanced caching.
Prerequisites
Before extending Wave for build support, ensure you have:
- Existing Wave installation - Basic Wave deployment already running in augmentation-only mode
- AWS EKS cluster - Build capabilities require AWS-specific integrations
- EFS filesystem - Configured and accessible from your EKS cluster for shared build storage
- Cluster admin permissions - Required to create RBAC policies and storage resources
Create Kubernetes Service Account & RBAC Policies
Wave's build service needs permissions to create and manage build pods. Create the necessary RBAC configuration:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: wave-sa
namespace: wave
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: wave-role
rules:
- apiGroups: [""]
resources: [pods, pods/status, pods/log, pods/exec]
verbs: [get, list, watch, create, delete]
- apiGroups: ["batch"]
resources: [jobs, jobs/status]
verbs: [get, list, watch, create, delete]
- apiGroups: [""]
resources: [configmaps, secrets]
verbs: [get, list]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: wave-rolebind
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: wave-role
subjects:
- kind: ServiceAccount
name: wave-sa
namespace: wave
Configure EFS Storage
Wave builds require shared storage accessible across multiple pods. Configure EFS with the AWS EFS CSI driver:
Storage Class
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: efs-wave-sc
provisioner: efs.csi.aws.com
parameters:
provisioningMode: efs-ap
fileSystemId: "REPLACE_ME_EFS_ID"
directoryPerms: "0755"
Persistent Volume
apiVersion: v1
kind: PersistentVolume
metadata:
name: wave-build-pv
spec:
capacity:
storage: 500Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: efs-wave-sc
csi:
driver: efs.csi.aws.com
volumeHandle: "REPLACE_ME_EFS_ID"
Persistent Volume Claim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: wave
name: wave-build-pvc
labels:
app: wave-app
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 500Gi
storageClassName: efs-wave-sc
Configuration Notes:
- Replace
REPLACE_ME_EFS_IDwith your actual EFS filesystem ID - EFS must be in the same VPC as your EKS cluster
- Ensure EFS security groups allow NFS traffic from EKS worker nodes