Skip to content

Commit

Permalink
Add Documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
tinnightcap committed Dec 15, 2016
1 parent 8591878 commit 8997f95
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 1 deletion.
42 changes: 41 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,44 @@
# nubis-ci [![Build Status](https://travis-ci.org/nubisproject/nubis-ci.svg?branch=master)](https://travis-ci.org/nubisproject/nubis-ci)
# nubis-ci [![Build Status](https://travis-ci.org/nubisproject/nubis-ci.svg?branch=master)](https://travis-ci.org/nubisproject/nubis-ci)

## CI Deployment
The Nubis CI project is designed to be deployed into a standard Nubis Account. It takes advantage of the standard deployment found [here](https://github.com/nubisproject/nubis-docs/blob/master/DEPLOYMENT_OVERVIEW.md). For further specifics about CI consult the Jenkins documentation [here](https://jenkins.io/doc/).

The CI system is designed to run two basic jobs. The first job watches a single GitHub repository and builds a new AMI when that repository changes. It then runs the second job which deploys the AMI into the Stage environment. The second job can be triggered manually to deploy the AMI into the Prod environment. All deployments are applied using Terraform.

### Deployment Diagram
![Deployment Diagram](media/Nubis_CI_Diagram.png "Deployment Diagram")

**NOTE**: The line colors are representative and are for readability only. They are not intended to indicate any underlying protocol or specific communication details.

### Deployment Notes
The CI deployment consists of:
- A single EC2 instance acting as a Jenkins server
- An Auto Scaling group to provide resiliency
- A S3 log bucket where backups and artifacts are stored
- An ELB to facilitate inbound connectivity

### Deployment Resources
Details for the deployment including; naming conventions, relationships, permissions, etcetera, can be found in the [Terraform template](nubis/terraform/main.tf) used for deployment. Links to specific resources can be found in the following table.

|Resource Type|Resource Title|Code Location|
|-------------|--------------|-------------|
|atlas_artifact|nubis-ci|[nubis/terraform/main.tf#1](nubis/terraform/main.tf#1)|
|tls_private_key|ci|[nubis/terraform/main.tf#19](nubis/terraform/main.tf#19)|
|tls_self_signed_cert|ci|[nubis/terraform/main.tf#26](nubis/terraform/main.tf#26)|
|aws_iam_server_certificate|ci|[nubis/terraform/main.tf#52](nubis/terraform/main.tf#52)|
|aws_elb|ci|[nubis/terraform/main.tf#68](nubis/terraform/main.tf#68)|
|aws_security_group|elb|[nubis/terraform/main.tf#102](nubis/terraform/main.tf#102)|
|aws_security_group|ci|[nubis/terraform/main.tf#130](nubis/terraform/main.tf#130)|
|aws_autoscaling_group|ci|[nubis/terraform/main.tf#169](nubis/terraform/main.tf#169)|
|aws_launch_configuration|ci|[nubis/terraform/main.tf#201](nubis/terraform/main.tf#201)|
|aws_route53_record|ci|[nubis/terraform/main.tf#236](nubis/terraform/main.tf#236)|
|aws_s3_bucket|ci_artifacts|[nubis/terraform/main.tf#245](nubis/terraform/main.tf#245)|
|aws_iam_instance_profile|ci|[nubis/terraform/main.tf#264](nubis/terraform/main.tf#264)|
|aws_iam_role|ci|[nubis/terraform/main.tf#272](nubis/terraform/main.tf#272)|
|aws_iam_role_policy|ci_artifacts|[nubis/terraform/main.tf#293](nubis/terraform/main.tf#293)|
|aws_iam_role_policy|ci_build|[nubis/terraform/main.tf#323](nubis/terraform/main.tf#323)|
|aws_iam_role_policy|ci_deploy|[nubis/terraform/main.tf#371](nubis/terraform/main.tf#371)|
|null_resource|credstash|[nubis/terraform/main.tf#488](nubis/terraform/main.tf#488)|

## Quick start
0. `git clone [email protected]:nubisproject/nubis-base.git`
Expand Down
1 change: 1 addition & 0 deletions media/.~lock.Nubis_CI_Diagram.odg#
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
,jason,nymeria.lan,15.12.2016 10:33,file:///home/jason/.config/libreoffice/4;
Binary file added media/Nubis_CI_Diagram.odg
Binary file not shown.
Binary file added media/Nubis_CI_Diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 8997f95

Please sign in to comment.