Skip to content

Conversation

@sean-smith
Copy link
Contributor

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

lukeseawalker and others added 30 commits November 6, 2018 10:05
jq is used to merge dna.json with extra.json before launching
chef-client. So it needs to be installed before the chef run.
This change is needed for custom AMI which do not have the jq package
pre-installed

Signed-off-by: Luca Carrogu <[email protected]>
- Use a guard clause instead of wrapping the code inside a conditional
  expression
- Favor modifier unless usage when having a single-line body
- Use meaningful heredoc delimiters
- Convert if nested inside else to elsif

Signed-off-by: Luca Carrogu <[email protected]>
Needed when the AMI to test has EBS volume size greater than 15 GB

Signed-off-by: Luca Carrogu <[email protected]>
Fix the problem occurring when the AMI has already more than one NVME
devices attached. Before the patch, when trying get the first available
block device, we weren't considering the possibility that the devices
already attached could be /dev/nvme*. Thus we were always
returning /dev/xvdb as the first available device to use to attach the
shared volume. The error arise when the AMI come with more the one
device already attached already, so that /dev/xvdb is already taken.

Signed-off-by: Luca Carrogu <[email protected]>
The recipe 'hostname::default' does a network restart after changing
the host hostname. It could happen that if the AMI contains a leftover
configuration for a network device not present anymore, the service
network restart fails.

Signed-off-by: Luca Carrogu <[email protected]>
We are setting skip_if_unavailable=1 for all the repositories except
the main one, because it is not reasonable to fail if just a single
repository is down. This is even more true in custom AMIs with
third party repositories.

Signed-off-by: Luca Carrogu <[email protected]>
The supervisord binaries could not be always in /usr/local/bin and
this is even more true for custom AMI. Use 'which' command
to retrieve the right path.

Signed-off-by: Luca Carrogu <[email protected]>
Check if some scheduler commands can be executed (on Master Node) and
if the scheduler root is mounted (on Compute Node) for SGE and Slurm.

Check if some scheduler commands can be executed (both on Master and
Compute Node) for Torque.

Signed-off-by: Luca Carrogu <[email protected]>
The cloud-init package installed in Ubuntu 14 requires and old version
of urllib3 package, which is also in the dependencies chain of awscli,
boto3 and cfncluster-node.

Installing a package from the official repositories should be
preferred against installing it via pip, because the dependencies are
more likely to be preserved.

Unfortunately, in this case only the awscli is present into the
official repositories. For boto3 (and cfncluster-node too), the
installation has to be done avoiding to update urllib3 or it will
break the cloud-init packages, not allowing anymore to connect to
the remote host.

Signed-off-by: Luca Carrogu <[email protected]>
- Add packer builders to work with input AMI ID
- Fix recipes to work with AMI having pip > 18.0
- Refactor build script to use keyword params instead of positional

Signed-off-by: Luca Carrogu <[email protected]>
Signed-off-by: Sean Smith <[email protected]>
If merged, the following changes will be made:
- Takes in comma separated list of shared directory name and volume-id as string through dna.json, parse into list in program.
- Run for each loop for each volume-id, and carry out all attach and mounting procedure in _master_base_config. Note: it is crucial the execute or ruby block within the for each loop to have a unique name, so that the workflow is independent for each volume-id.
- Run for each loop for each shared directory, and carry out all NFS mounting procedure in _compute_base_config.
- Note: it is crucial to use mountpoints throughout the program, for example, if the user want to mount to a share directory called "apps", we need to mount to "/apps" throughout the program. Mounting to "apps", without the slash, will cause lots of error and prevent AutoScalingGroup from creating.

Signed-off-by: Rex Chen <[email protected]>
+ change package name from cfncluster-cookbook to aws-parallelcluster-cookbook
+ change folder from /*/cfncluster to /*/parallelcluster
+ change event messages from cfncluster to parallelcluster
+ change github repos from awslabs/cfncluster-* to aws/aws-parallelcluster-*

Signed-off-by: Enrico Usai <[email protected]>
Signed-off-by: Francesco De Martino <[email protected]>
Signed-off-by: Maurizio Melato <[email protected]>
Signed-off-by: Balaji Sridharan <[email protected]>
Signed-off-by: Sean Smith <[email protected]>
Signed-off-by: Enrico Usai <[email protected]>
lukeseawalker and others added 20 commits November 13, 2018 19:27
The jq installed from Ubuntu14 and Centos6 repositories is version 1.3
and doesn't allow to merge two json easily like we do for the other OS

Signed-off-by: Luca Carrogu <[email protected]>
This is done in order to pin botocore to version 1.10.84 which
doesn't break the cloud-init package installed into the OS

The package version that need to be preserved is urllib3
awscli -> botocore -> urllib3
cloud-init -> urllib3

The version of the awscli from repository depends on an old version of
botocore that does not work with newest regions.

Signed-off-by: Luca Carrogu <[email protected]>
In this way, during the test we are sure we do have the same PATH set
during the executing of the UserData script

Signed-off-by: Luca Carrogu <[email protected]>
Updated CHANGELOG

Signed-off-by: Maurizio Melato <[email protected]>
The AWS CLI must be able to operate on the listed regions

Signed-off-by: Luca Carrogu <[email protected]>
This patch resolves the following warnings

FC002: Avoid string interpolation where not required: ./recipes/awsbatch_config.rb:24
FC002: Avoid string interpolation where not required: ./recipes/awsbatch_config.rb:25
FC002: Avoid string interpolation where not required: ./recipes/awsbatch_config.rb:26
FC002: Avoid string interpolation where not required: ./recipes/awsbatch_config.rb:32
FC002: Avoid string interpolation where not required: ./recipes/awsbatch_config.rb:33
FC056: Ensure maintainer_email is set in metadata: ./metadata.rb:1
FC066: Ensure chef_version is set in metadata: ./metadata.rb:1
FC067: Ensure at least one platform supported in metadata: ./metadata.rb:1
FC069: Ensure standardized license defined in metadata: ./metadata.rb:1
FC071: Missing LICENSE file: ./LICENSE:1
FC078: Ensure cookbook shared under an OSI-approved open source license: ./metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: ./recipes/base_install.rb:35
FC009: Resource attribute not recognised: ./recipes/_master_base_config.rb:53
FC009: Resource attribute not recognised: ./recipes/_master_base_config.rb:69

recipes/_compute_base_config.rb:61:1: W: Lint/UnderscorePrefixedVariableName: Do not use prefix _ for a variable that is used.
recipes/_master_base_config.rb:32:1: W: Lint/UnderscorePrefixedVariableName: Do not use prefix _ for a variable that is used.
recipes/_master_base_config.rb:40:1: W: Lint/UnderscorePrefixedVariableName: Do not use prefix _ for a variable that is used.
recipes/awsbatch_config.rb:48:1: C: Naming/HeredocDelimiterNaming: Use meaningful heredoc delimiters.
recipes/awsbatch_config.rb:52:3: C: Style/IfInsideElse: Convert if nested inside else to elsif.

and other minor indentation issues

Signed-off-by: Enrico Usai <[email protected]>
- Added efs_mount.rb recipe to create EFS shared_dir and mount EFS via nfs4 if the user is using EFS (shared_dir for EFS specified)
- Modified _master_base_config.rb to include efs_mount
- Modified _compute_base_config.rb to include efs_mount

Signed-off-by: Rex Chen <[email protected]>
- Added default values to cookbook variables used for EFS feature in attributes/default

Signed-off-by: Rex Chen <[email protected]>
- Removed puts calls from _master_base_config.rb. Those calls were put in for logging, but they actually never worked anyway. Removing these calls will not affect functionality.

Signed-off-by: Rex Chen <[email protected]>
- Added defaults for raid related parameters in attributes/default.rb
- Added mdadm package to list of base packages in attributes/default.rb
- Added recipe setup_raid_on_master.rb to handle RAID array setup on master, including parsing RAID related parameters and executing RAID mounting instructions
- Changed _master_base_config.rb to include setup_raid_on_master
- Changed _compute_base_config.rb to parse RAID related info and mount RAID array via NFS

Signed-off-by: Rex Chen <[email protected]>
Signed-off-by: Sean Smith <[email protected]>
Signed-off-by: Sean Smith <[email protected]>
For curl
- retry 3 times before giving up (--retry)

For remote_file
- 3 times to catch exceptions and retry the resource (retries)
- wait 5 seconds before next retry (retry_delay)

Signed-off-by: Luca Carrogu <[email protected]>
Signed-off-by: Sean Smith <[email protected]>
@sean-smith sean-smith changed the base branch from master to develop December 18, 2018 00:51
@sean-smith sean-smith changed the base branch from develop to master December 18, 2018 00:53
@sean-smith sean-smith merged commit e687a18 into aws:master Dec 18, 2018
@sean-smith sean-smith deleted the merge-master branch January 7, 2019 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants