Feature request: use private IPs throughout / remove dependence on DHCP options set
- Dominant language
- Python
- Stars
- 888
- Forks
- 314
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 43
Description
**Environment:**
- aws-parallelcluster-2.4.0
**Related Issue**
#1192
**Bug description and how to reproduce:**
I am trying to setup a parallel cluster in a sub-account inside a AWS Landing Zone managed organization. Our LZ uses an AWS Managed AD. When an account is created via the vending machine, a default DHCP options set that points to the AD DNS is assigned to the VPC created in the account. If this DHCP options is not changed to a DHCP options set with `domain-name = .compute.internal; domain-name-servers = AmazonProvidedDNS`,`pcluster create` fails at the sanity check of the auto-scaling group
```python
2019-07-16 10:50:27,188 - DEBUG - pcluster.pcluster - pcluster CLI starting
2019-07-16 10:50:27,194 - DEBUG - pcluster.pcluster - Namespace(cluster_name='dumontj-test-cluster', cluster_template=None, command='create', config_file='ParallelClusterConfig', extra_parameters=None, func=, norollback=False, nowait=False, region=None, tags=None, template_url=None)
2019-07-16 10:50:27,194 - INFO - pcluster.pcluster - Beginning cluster creation for cluster: dumontj-test-cluster
2019-07-16 10:50:27,194 - DEBUG - pcluster.pcluster - Building cluster config based on args Namespace(cluster_name='dumontj-test-cluster', cluster_template=None, command='create', config_file='ParallelClusterConf\
ig', extra_parameters=None, func=, norollback=False, nowait=False, region=None, tags=None, template_url=None)
2019-07-16 10:50:28,970 - INFO - pcluster.pcluster - Creating stack named: parallelcluster-dumontj-test-cluster
2019-07-16 10:50:29,345 - DEBUG - pcluster.pcluster - StackId: arn:aws:cloudformation:ca-central-1:155721880543:stack/parallelcluster-dumontj-test-cluster/0dabde60-a7d9-11e9-a9d5-06fb6b41a85e
2019-07-16 11:28:57,919 - DEBUG - pcluster.pcluster - Status: parallelcluster-dumontj-test-cluster - ROLLBACK_IN_PROGRESS
2019-07-16 11:28:57,920 - CRITICAL - pcluster.pcluster -
Cluster creation failed. Failed events:
2019-07-16 11:28:58,098 - INFO - pcluster.pcluster - - AWS::AutoScaling::AutoScalingGroup ComputeFleet Received 0 SUCCESS signal(s) out of 1. Unable to satisfy 100% MinSuccessfulInstancesPercent requirement
2019-07-16 11:28:58,099 - INFO - pcluster.pcluster -
```
However, if you log in to the master server and try to schedule jobs without changing the DHCP options set back to the one that points to the AD DNS, you get errors like:
```bash
[ec2-user@ip-10-0-12-47 ~]$ srun -N 2 -n2 hostname
srun: Required node not available (down, drained or reserved)
srun: job 2 queued and waiting for resources
srun: job 2 has been allocated resources
srun: error: fwd_tree_thread: can't find address for host ip-10-0-12-32, check slurm.conf
srun: error: fwd_tree_thread: can't find address for host ip-10-0-12-25, check slurm.conf
srun: error: Task launch for 2.0 failed on node ip-10-0-12-25: Can't find an address, check slurm.conf
srun: error: Task launch for 2.0 failed on node ip-10-0-12-32: Can't find an address, check slurm.conf
srun: error: Application launch failed: Can't find an address, check slurm.conf
srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
srun: error: Timed out waiting for job step to complete
```
I propose that a new configuration item be added to the `[vpc]` section of the configuration, something like `dhcp_options_set_build` that would take a DHCP options set ID. pcluster create could temporarily assign the DHCP options set to the VPC under consideration, and replace the original DHCP options set after.
This is not a super elegant solution, but it would work.
Contributor guide
Assessment
This issue has not been assessed yet.