Skip to content

Commit c90170b

Browse files
committed
Updated docs and a few bits for v0.0.18
1 parent 0cb50d8 commit c90170b

File tree

10 files changed

+96
-137
lines changed

10 files changed

+96
-137
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ dist/
77
build/
88
*.egg-info/
99
.idea/
10+
.DS_Store

CHANGELOG.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ CHANGELOG
1212
* feature:``cfncluster``: Support for additional VPC security group
1313
* updates:``ami``: Pulled latest NVIDIA driver 340.65
1414
* feature:``cli``: Added support for version command
15+
* updates:``cli``: Removed unimplemented stop command from CLI
1516

1617
0.0.17
1718
======

README.md

Lines changed: 0 additions & 91 deletions
This file was deleted.

README.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
cfncluster
2+
==========
3+
4+
cfncluster is a framework that deploys and maintains HPC clusters on AWS. It is reasonably agnostic to what the cluster is for and can easily be extended to support different frameworks. The CLI is stateless, everything is done using CloudFormation or resources within AWS.
5+
6+
Documentation
7+
=============
8+
9+
Documentation is part of the project and is published to - http://cfncluster.readthedocs.org/. Of most interest to new users is the Getting Started Guide - http://cfncluster.readthedocs.org/en/latest/getting_started.html.

cli/README

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cfncluster is an example framework for launching clusters.
22

33
usage: cfncluster [-h] [--config CONFIG_FILE] [--region REGION] [--nowait]
4-
{create,update,stop,delete,status,list,instances,sshmaster}
4+
{create,update,delete,status,list,instances,version}
55
...
66

77
cfncluster is the a tool to launch and manage cluster.
@@ -10,11 +10,11 @@ cfncluster is an example framework for launching clusters.
1010
{create,update,stop,delete,status,list,instances,sshmaster}
1111
create creates a cluster
1212
update update a running cluster
13-
stop stop a cluster
1413
delete delete a cluster
1514
status pull the current status of the cluster
1615
list display a list of stacks associated with cfncluster
1716
instances display a list of all instances in a cluster
17+
version display the version of cfncluster cli
1818

1919
optional arguments:
2020
-h, --help show this help message and exit

cli/cfncluster/cli.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@
2020
def create(args):
2121
cfncluster.create(args)
2222

23-
def stop(args):
24-
pass
25-
2623
def status(args):
2724
cfncluster.status(args)
2825

@@ -106,11 +103,6 @@ def main():
106103
help='reset the current ASG desired capacity to initial config values')
107104
pupdate.set_defaults(func=update)
108105

109-
pstop = subparsers.add_parser('stop', help='stop a cluster')
110-
pstop.add_argument("cluster_name", type=str, default=None,
111-
help='stop a cfncluster with the provided name.')
112-
pstop.set_defaults(func=stop)
113-
114106
pdelete = subparsers.add_parser('delete', help='delete a cluster')
115107
pdelete.add_argument("cluster_name", type=str, default=None,
116108
help='delete a cfncluster with the provided name.')

cli/setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ def read(fname):
2020
return open(os.path.join(os.path.dirname(__file__), fname)).read()
2121

2222
console_scripts = ['cfncluster = cfncluster.cli:main']
23-
version = "0.0.18"
24-
requires = ['boto>=2.34']
23+
version = "0.0.99"
24+
requires = ['boto>=2.35.1']
2525

2626
if sys.version_info[:2] == (2, 6):
2727
# For python2.6 we have to require argparse since it

docs/source/aws_services.rst

Lines changed: 64 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,54 +3,85 @@
33
AWS Services used in cfncluster
44
===============================
55

6-
The following Amazon Web Services(AWS) services are used in cfncluster.
6+
The following Amazon Web Services (AWS) services are used in cfncluster.
77

8-
* CloudFormation
9-
* IAM
10-
* SNS
11-
* SQS
12-
* EC2
13-
* AutoScaling
14-
* EBS
15-
* Cloudwatch
16-
* S3
17-
* DynamoDB
8+
* AWS CloudFormation
9+
* AWS Identity and Access Management (IAM)
10+
* Amazon SNS
11+
* Amazon SQS
12+
* Amazon EC2
13+
* Auto Scaling
14+
* Amazon EBS
15+
* Amazon Cloud Watch
16+
* Amazon S3
17+
* Amazon DynamoDB
1818

19-
CloudFormation
20-
--------------
19+
AWS CloudFormation
20+
------------------
2121

22-
CloudFormation is the core service used by cfncluster. Each cluster is representated as a stack. All resources required by the cluster are defined within the cfncluster CloudFormation template. cfncluster cli commands typically map to CloudFormation stack commands, such as create, update and delete. Instances launched within a cluster make HTTPS calls to the CloudFormation Endpoint for the region the cluster is launched in.
22+
AWS CloudFormation is the core service used by cfncluster. Each cluster is representated as a stack. All resources required by the cluster are defined within the cfncluster CloudFormation template. cfncluster cli commands typically map to CloudFormation stack commands, such as create, update and delete. Instances launched within a cluster make HTTPS calls to the CloudFormation Endpoint for the region the cluster is launched in.
2323

24-
IAM
25-
---
24+
For more details about AWS CloudFormation, see http://aws.amazon.com/cloudformation/
2625

27-
Idenity and Access Management is used within cfncluster to provide an EC2 IAM Role for the instances. This role is a least privilged role specifically created for each cluster. cfncluster instances are given access only to the specific API calls that are required to deploy and manage the cluster.
26+
AWS Identity and Access Management (IAM)
27+
----------------------------------------
2828

29-
SNS
30-
---
29+
IAM is used within cfncluster to provide an Amazon EC2 IAM Role for the instances. This role is a least privilged role specifically created for each cluster. cfncluster instances are given access only to the specific API calls that are required to deploy and manage the cluster.
3130

32-
Simple Notification Service is used to receive notifications from Autoscaling. These events are called life cycle events, and are generated when an instance lauches or terminates in an Autoscaling Grpoup. Within cfncluster, the SNS topic for the Autoscaling Group is subnscibred to an SQS queue.
31+
For more details about AWS Identity and Access Management, see http://aws.amazon.com/iam/
3332

34-
SQS
35-
---
33+
Amazon SNS
34+
----------
35+
36+
Amazon Simple Notification Service is used to receive notifications from Auto Scaling. These events are called life cycle events, and are generated when an instance lauches or terminates in an Autoscaling Grpoup. Within cfncluster, the Amazon SNS topic for the Autoscaling Group is subnscibred to an Amazon SQS queue.
37+
38+
For more details about Amazon SNS, see http://aws.amazon.com/sns/
39+
40+
Amazon SQS
41+
----------
3642

37-
Simple Queuing Service is used to hold notifications(messages) from Autoscaling, sent through SNS. This decouples the
43+
Amazon Simple Queuing Service is used to hold notifications(messages) from Auto Scaling, sent through Amazon SNS and notifications from the ComputeFleet instanes. This decouples the sending of notifications from the receiving and allows the Master to handle them through polling. The MasterServer runs Amazon SQSwatcher and polls the queue. AutoScaling and the ComputeFleet instanes post messages to the queue.
3844

39-
EC2
40-
---
45+
For more details about Amazon SQS, see http://aws.amazon.com/sqs/
4146

42-
Autscaling
47+
Amazon EC2
4348
----------
4449

45-
EBS
46-
---
50+
Amazon EC2 provides the compute for cfncluster. The MasterServer and ComputeFleet are EC2 instances. Any instance type that support HVM can be selected. The MasterServer and ComputeFleet can be different instance types and the ComputeFleet can also be laucnhed as Spot instances. Ephmeral storage found on the instances is mounted as a RAID0 volume.
51+
52+
For more details about Amazon EC2, see http://aws.amazon.com/ec2/
53+
54+
Auto Scaling
55+
------------
56+
57+
Auto Scaling is used to manage the ComputeFleet instances. These are managed as an AutoScaling Group and can either be elastic driven by workload or static driven by the config.
58+
59+
For more details about Auto Scaling, see http://aws.amazon.com/autoscaling/
4760

48-
Cloudwatch
61+
Amazon EBS
4962
----------
5063

51-
S3
52-
--
64+
Amazon EBS provides the storage for the shared volume. Any EBS settings can be passed through the config. EBS volumes can either be initialized empty or from an exisiting EBS snapshot.
65+
66+
For more details about Amazon EBS, see http://aws.amazon.com/ebs/
67+
68+
Amazon Cloud Watch
69+
------------------
70+
71+
Amazon Cloud Watch provides metric collection and alarms for cfncluster. The MasterServer publishs pending tasks(jobs) for each cluster. Two alarms are defined that based on parameters defined in the config will automatically increase the size of the ComputeFleet Auto Scaling group.
72+
73+
For more details, see http://aws.amazon.com/cloudwatch/
74+
75+
Amazon S3
76+
---------
77+
78+
Amazon S3 is used to store the cfncluster templates. Each region has a bucket with all templates. Within cfncluster, access to S3 can be controlled to allow CLI/SDK tools to use S3.
79+
80+
For more details, see http://aws.amazon.com/s3/
81+
82+
Amazon DynamoDB
83+
---------------
5384

54-
DynamoDB
55-
--------
85+
Amazon DynamoDB is used to store minimal state of the cluster. The MasterServer tracks provisioned instances in a DynamoDB table.
5686

87+
For more details, see http://aws.amazon.com/dynamodb/

docs/source/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,11 @@ Additional Resources
2727

2828
* `cfncluster Source Repository`_
2929
* `cfncluster Issue Tracker`_
30+
* `cfncluster Webcast - HPC Scalability in the Cloud`_
3031

3132
.. _cfncluster Issue Tracker: https://github.com/awslabs/cfncluster/issues
3233
.. _cfncluster Source Repository: https://github.com/awslabs/cfncluster
34+
.. _cfncluster Webcast - HPC Scalability in the Cloud: https://www.youtube.com/watch?v=iHtzy6_WytE
3335

3436
Indices and tables
3537
==================

docs/source/s3_resources.rst

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
.. _s3_resources:
22

33
working with S3
4-
===============
4+
===============
5+
6+
Accessing S3 within cfncluster can be controlled through two parameters in the cfncluster config.
7+
8+
::
9+
10+
# Specify S3 resource which cfncluster nodes will be granted read-only access
11+
# (defaults to NONE for the default template)
12+
s3_read_resource = NONE
13+
# Specify S3 resource which cfncluster nodes will be granted read-write access
14+
# (defaults to NONE for the default template)
15+
s3_read_write_resource = NONE
16+
17+
Both parameters except either ``*`` or a valid S3 ARN. For details of how to specify S3 ARNs, please see http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-s3
18+

0 commit comments

Comments
 (0)