Skip to content

Commit

Permalink
#47 - Initial commit on component docs
Browse files Browse the repository at this point in the history
  • Loading branch information
tayzlor committed Apr 15, 2015
1 parent 109dfd0 commit 0864115
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 20 deletions.
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ status")](https://app.wercker.com/project/bykey/71503ff3fde8b162b72e2cc094f52679

Apollo is an open source project to aid with building and deploying IAAS and
PAAS services. It is particularly geared towards managing containerized applications
across multiple hosts, and hooks into other open source products to provide basic
mehanisms for deployment, maintenance, and scaling of infrastructure and applications.
across multiple hosts, and big data type workloads. Apollo leverages other
open source components to provide basic mehanisms for deployment, maintenance,
and scaling of infrastructure and applications.

Apollo is built on top of the following components:

Expand All @@ -28,7 +29,7 @@ Apollo is:

Apollo can run anywhere!

However, initial development is happening on AWS so our instructions and scripts are built around that. Stayed tuned for more cloud provider support! If you make it work on other infrastructure please let us know and contribute instructions/code.
However, initial development is primarily happening on AWS so our instructions and scripts are built around that. Stayed tuned for more cloud provider support! If you make it work on other infrastructure please let us know and contribute instructions/code.

Apollo is in alpha!

Expand All @@ -38,3 +39,10 @@ While the concepts and base architectural components of Apollo are not expected
- **Getting Started Guides**
- for people who want to create an Apollo cluster
- in [docs/getting-started-guides](docs/getting-started-guides)
- **Demonstrators and Examples
- Coming soon...
- **[Roadmap](docs/roadmap)
- **Components
- for people who want to know more about the individual components and the
decisions behind selecting them
- in [docs/components](docs/components)
10 changes: 10 additions & 0 deletions docs/components/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## Components

Apollo is made up of a number of other open-source components. If you want more details on an individual component and the reasons behind utilising it see the below section.

- **[Apache Mesos](apache-mesos.md)**
- **[Consul](consul.md)**
- **[Docker](docker.md)**
- **[Packer](packer.md)**
- **[Terraform](terraform.md)**
- **[Weave](weave.md)**
Empty file added docs/components/apache-mesos.md
Empty file.
Empty file added docs/components/consul.md
Empty file.
1 change: 1 addition & 0 deletions docs/components/docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
## Docker
1 change: 1 addition & 0 deletions docs/components/packer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
## Packer
1 change: 1 addition & 0 deletions docs/components/terraform.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
## Terraform
1 change: 1 addition & 0 deletions docs/components/weave.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
## Weave
37 changes: 21 additions & 16 deletions docs/getting-started-guides/aws.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,42 +3,47 @@
### Prerequisites

1. You need an AWS account. Visit [http://aws.amazon.com](http://aws.amazon.com) to get started
2. Install and configure [AWS Command Line Interface](http://aws.amazon.com/cli)
3. You need an AWS [instance profile and role](http://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html) with EC2 full access.
4. You need an Atlas account. Visit [https://atlas.hashicorp.com](https://atlas.hashicorp.com) to get started.
5. You need to have installed and configured Terraform. Visit [https://www.terraform.io/intro/getting-started/install.html](https://www.terraform.io/intro/getting-started/install.html) to get started.

2. You need an AWS [instance profile and role](http://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html) with EC2 full access.
3. You need an Atlas account. Visit [https://atlas.hashicorp.com](https://atlas.hashicorp.com) to get started.
4. You need to have installed and configured Terraform. Visit [https://www.terraform.io/intro/getting-started/install.html](https://www.terraform.io/intro/getting-started/install.html) to get started.
5. You will need a VPN client if you want to access the web interfaces for Mesos, Consul and Marathon. We recommend using Tunnelblick. Visit [https://code.google.com/p/tunnelblick/](https://code.google.com/p/tunnelblick/) to download and install.

### Cluster Turnup

#### Download Apollo

##### Install from source at head
1. ```git clone https://github.com/Capgemini/apollo.git```
2. ```cd apollo/terraform/aws```
2. ```cd apollo```

#### Set config
1. ```cp terraform.tfvars.example terraform.tfvars```

Edit ```terraform.tfvars``` to include your AWS access/secret, keyfile/keyname and Atlas token.
Configuration can be set via environment variables. For a full list of available config
options for AWS see ```bootstrap/aws/config-default.sh```

As a minimum you will need to set these environment variables -

#### Checking you have the correct config
```
terraform plan
APOLLO_PROVIDER=aws
AWS_ACCESS_KEY_ID
AWS_ACCESS_KEY
AWS_SSH_KEY
AWS_SSH_KEY_NAME
ATLAS_TOKEN
```

This should execute a dry-run indicating what Terraform will do when it is run. This should highlight any config issues from above steps.

#### Turn up the cluster
```
terraform apply
sh bootstrap/apollo-launch.sh
```

NOTE: The script will provision a new VPC and a 3 node mesos master cluster in eu-west-1 (Ireland). It'll also try to create a mesos slave cluster and a NAT server for accessing via VPN and SSH.
NOTE: The script will provision a new VPC and a 3 node mesos master cluster in eu-west-1 (Ireland). It will also create a mesos slave cluster and a NAT server for accessing the VPC via VPN and SSH.

It will also attempt to start and configure a VPN client connection for you.

For instructions on how to configure the VPN to access the web interface of the tools see the [vpn guide](../aws/vpn.md).
For instructions on how to configure the VPN (outside of the bootstrap script) to access the web interface of the tools see the [vpn guide](../aws/vpn.md).

#### Tearing down the cluster
```
terraform destroy
sh bootstrap/apollo-down.sh
```
1 change: 0 additions & 1 deletion terraform/aws/nat-server.tf
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ resource "aws_instance" "nat" {
}
provisioner "remote-exec" {
inline = [
/* @todo - not sure the routing is working correctly here */
"sudo iptables -t nat -A POSTROUTING -j MASQUERADE",
"echo 1 | sudo tee /proc/sys/net/ipv4/conf/all/forwarding",
/* Install docker */
Expand Down

0 comments on commit 0864115

Please sign in to comment.