Jon Slusher
12/18/2025, 5:47 PMReadWriteMany , which is not supported for EBS volumes. Can anyone point me in the right direction? I see that EFS might be an option, but I'm curious what the recommended options are for configuring savepoint/checkpoint and ha volumes for Flink jobManagers in EKS. I'll put my current configuration in a threadJon Slusher
12/18/2025, 5:49 PMhigh-availability: org.apache.flink.kubernetes.highavailability.KubernetesHaServicesFactory
high-availability.storageDir: file:///flink-data/ha
state.savepoints.dir: file:///flink-data/savepoints
state.checkpoints.dir: <file://flink-data/checkpoints>Jon Slusher
12/18/2025, 5:50 PMJon Slusher
12/18/2025, 8:17 PMJon Slusher
12/19/2025, 8:02 PMflink-s3-fs-hadoop plugin and my configuration looks like this:
flinkConfiguration:
high-availability: org.apache.flink.kubernetes.highavailability.KubernetesHaServicesFactory
high-availability.storageDir: <s3://staging-flink-poc/flink-data/ha>
state.savepoints.dir: <s3://staging-flink-poc/flink-data/savepoints>
state.checkpoints.dir: <s3://staging-flink-poc/flink-data/checkpoints>Jon Slusher
12/19/2025, 8:08 PMflink. I've set up IRSA many times in my org so I know that side of things is properly configured. I have this set in my `FlinkDeployment`:
spec:
...
serviceAccount: flink
And I see that the sa exists in the namespace and that it has the appropriate role associated:
k get sa flink -o yaml
apiVersion: v1
...
kind: ServiceAccount
metadata:
annotations:
<http://eks.amazonaws.com/role-arn|eks.amazonaws.com/role-arn>: arn:aws:iam::xxxxxxxxxxx:role/staging-flink-poc
...
When I try this configuration, I see that the jobmanager is trying to use a different role, related to the node it's on:
Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: User: arn:aws:sts::xxxxxxxxxxx:assumed-role/karpenter-node/i-xxxxxxxxxxx is not authorized to perform: s3:ListBucket on resource: "arn:aws:s3:::staging-flink-poc" because no identity-based policy allows the s3:ListBucket action (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; ...
I see in the Pod itself is using the service account I specified and it even has the IAM role reference it should have:
apiVersion: v1
kind: Pod
...
spec:
containers:
...
env:
...
- name: AWS_ROLE_ARN
value: arn:aws:iam::xxxxxxxxxxx:role/staging-flink-poc
- name: AWS_WEB_IDENTITY_TOKEN_FILE
value: /var/run/secrets/eks.amazonaws.com/serviceaccount/token
...
name: flink-main-container
...
serviceAccount: flink
serviceAccountName: flink
I'm using the flink-s3-fs-hadoop plugin and my configuration looks like this:
flinkConfiguration:
high-availability: org.apache.flink.kubernetes.highavailability.KubernetesHaServicesFactory
high-availability.storageDir: <s3://staging-flink-poc/flink-data/ha>
state.savepoints.dir: <s3://staging-flink-poc/flink-data/savepoints>
state.checkpoints.dir: <s3://staging-flink-poc/flink-data/checkpoints>Jon Slusher
12/19/2025, 8:09 PMfs.s3a.aws.credentials.provider: com.amazonaws.auth.WebIdentityTokenCredentialsProvider
in my configuration. I'm getting a different error now, but that's progress!