Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions contrib/aws-efa/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,30 @@ The AWS test infrastructure allows NIXL to be automatically tested on AWS Elasti
- Pre-configured AWS EKS cluster: `ucx-ci`
- Properly registered job definition: `NIXL-Ubuntu-JD`

### EFA-Enabled Security Group Requirements

EFA requires security groups with self-referencing rules. Verify your setup:

```bash
# Get cluster security group
CLUSTER_SG=$(aws eks describe-cluster --name ucx-ci --query 'cluster.resourcesVpcConfig.clusterSecurityGroupId' --output text)

# Verify self-referencing inbound rule (all traffic)
aws ec2 describe-security-groups --group-ids $CLUSTER_SG \
--query 'SecurityGroups[0].IpPermissions[].UserIdGroupPairs[?GroupId==`'$CLUSTER_SG'`].GroupId'

# Verify SSH access (port 22)
aws ec2 describe-security-groups --group-ids $CLUSTER_SG \
--query 'SecurityGroups[0].IpPermissions[?FromPort==`22`]' --output json

# Verify self-referencing outbound rule (all traffic)
aws ec2 describe-security-groups --group-ids $CLUSTER_SG \
--query 'SecurityGroups[0].IpPermissionsEgress[].UserIdGroupPairs[?GroupId==`'$CLUSTER_SG'`].GroupId'
```

**Required rules:** Inbound/outbound all traffic from/to same security group + SSH access.
**Reference:** https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security

## Files

- **aws_test.sh**: Main script that submits and monitors AWS Batch jobs
Expand Down
3 changes: 2 additions & 1 deletion contrib/aws-efa/aws_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,15 @@ setup_cmd="set -x && \
git clone ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} && \
cd nixl && \
${GIT_CHECKOUT_CMD}"
efa_validation_cmd="fi_info -p efa"
Comment thread
brminich marked this conversation as resolved.
build_cmd=".gitlab/build.sh \${NIXL_INSTALL_DIR} \${UCX_INSTALL_DIR}"

# Add timeout only if TEST_TIMEOUT is set (expects minutes)
if [ -n "$TEST_TIMEOUT" ]; then
test_cmd="timeout ${TEST_TIMEOUT}m ${test_cmd}"
fi

export AWS_CMD="${setup_cmd} && ${build_cmd} && ${test_cmd}"
export AWS_CMD="${setup_cmd} && ${build_cmd} && ${efa_validation_cmd} && ${test_cmd}"

# Generate AWS job properties json from template
envsubst < aws_vars.template > aws_vars.json
Expand Down