Skip to content

Commit 66d6705

Browse files
committed
note about eks bottlerocket + nsjail
1 parent e732385 commit 66d6705

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

docs/advanced/1_self_host/aws_eks_ecs.mdx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,19 @@ import TabItem from '@theme/TabItem';
99
## Windmill on AWS EKS
1010
Windmill can be deployed on an EKS ([Elastic Kubernetes Service](https://aws.amazon.com/eks/)) cluster. Below are the detailed steps to get a Windmill stack up and running. The number of servers and [workers](../../core_concepts/9_worker_groups/index.mdx), as well as the instance sizes, should be tuned to your own usecases.
1111

12+
:::warning Bottlerocket AMI and PID isolation
13+
14+
If using Bottlerocket AMI for your EKS nodes, PID namespace isolation (`ENABLE_UNSHARE_PID`) and NSJAIL will not work by default. Bottlerocket sets `user.max_user_namespaces=0` which prevents the `unshare` command from creating user namespaces.
15+
16+
**Options**:
17+
- Use Amazon Linux 2023 or Amazon Linux 2 AMI instead (recommended)
18+
- Configure a custom launch template to increase `user.max_user_namespaces`
19+
- Set `disableUnsharePid: true` in Helm values (reduces security)
20+
21+
See [Security and process isolation](/docs/advanced/security_isolation) for more details.
22+
23+
:::
24+
1225
You can either setup your own EKS cluster and RDS instance and deploy Windmill using the [Helm chart](../self_host#helm-chart) or use the Cloudformation template below.
1326

1427
### Cloudformation

docs/advanced/security_isolation/index.mdx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,23 @@ For Helm deployments, set the appropriate values to enable privileged mode and t
401401
- Reduce number of concurrent jobs
402402
- Use `DISABLE_NSJAIL=true` and rely on PID isolation only
403403

404+
### AWS EKS with Bottlerocket AMI
405+
406+
**Cause**: Bottlerocket AMI sets `user.max_user_namespaces=0` by default, which prevents user namespace creation required for PID isolation and NSJAIL.
407+
408+
**Solutions**:
409+
410+
1. **Switch to a different AMI** (recommended): Use Amazon Linux 2023 or Amazon Linux 2 instead of Bottlerocket for your EKS node groups.
411+
412+
2. **Disable PID isolation**: Set `disableUnsharePid: true` in Helm values (global or per-worker-group). Note: This reduces security isolation.
413+
414+
3. **Configure Bottlerocket kernel parameters**: Use a custom launch template with user data to increase `max_user_namespaces`:
415+
```toml
416+
[settings.kernel.sysctl]
417+
"user.max_user_namespaces" = "65536"
418+
```
419+
See [AWS EKS launch template documentation](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) for details.
420+
404421
## Related documentation
405422

406423
- [Worker Groups](/docs/core_concepts/worker_groups) - Logical worker separation

0 commit comments

Comments
 (0)