README.md in ciinabox-ecs-0.2.1 vs README.md in ciinabox-ecs-0.2.2
- old
+ new
@@ -8,10 +8,11 @@
* [jenkins](https://jenkins.io/)
* [drone](http://docs.drone.io)
* [bitbucket](https://www.atlassian.com/software/bitbucket)
* [hawtio](http://hawt.io/)
* [nexus](http://www.sonatype.org/nexus/)
+ * [artifactory](https://jfrog.com/open-source/)
* plus custom tasks and stacks
## Setup
requires ruby 2.3+
@@ -54,97 +55,49 @@
#### User-defined parameters:
ciinaboxes/ciinabox_name/config/params.yml
e.g:
-```ruby
+```yaml
log_level: ':debug'
timezone: 'Australia/Melbourne'
```
#### User-defined services:
If you wish to add additional containers to your ciinabox environment, you can specify them like so:
ciinaboxes/ciinabox_name/config/services.yml
e.g:
+
```yaml
----
-services:
- - jenkins:
- - bitbucket:
- LoadBalancerPort: 22
- InstancePort: 7999
- Protocol: TCP
- - hawtio:
- - nexus:
+ services:
+ - jenkins:
+ - bitbucket:
+ LoadBalancerPort: 22
+ InstancePort: 7999
+ Protocol: TCP
+ - hawtio:
+ - nexus:
+ - artifactory:
+ - drone:
```
-
+
Please note that if you wish to do this, that you also need to create a CFNDSL template for the service under templates/services, with the name of the service as the filename (e.g. bitbucket.rb)
-Note the drone service requires a minimum yaml configuration of below
-```yml
-services:
- - drone:
- params:
- -
- VPC:
- Ref: VPC
- -
- SubnetPublicA:
- Ref: SubnetPublicA
- -
- SubnetPublicB:
- Ref: SubnetPublicB
- -
- ECSSubnetPrivateA:
- Ref: ECSSubnetPrivateA
- -
- ECSSubnetPrivateB:
- Ref: ECSSubnetPrivateB
- -
- SecurityGroupBackplane:
- Ref: SecurityGroupBackplane
- -
- SecurityGroupOps:
- Ref: SecurityGroupOps
- -
- SecurityGroupDev:
- Ref: SecurityGroupDev
- -
- SecurityGroupNatGateway:
- Ref: SecurityGroupNatGateway
- -
- SecurityGroupWebHooks:
- Ref: SecurityGroupWebHooks
- -
- ECSENIPrivateIpAddress:
- Ref: ECSENIPrivateIpAddress
- tasks:
- drone-server:
- env:
- DRONE_OPEN: true
-```
-to further configure drone ci refer to the drone ci's environment variable in the documentation http://docs.drone.io/installation/, you can add/override drone's environment variable to their corresponding yaml section (`drone-server` and `drone-agent`), example
-```yml
- tasks:
- drone-server:
- env:
- DRONE_OPEN: true
- DRONE_SECRET: base2services # if this value is not specified, a secure random hex will be used
- drone-agent:
- env:
- DRONE_SECRET: base2services # if this value is not specified, a secure random hex will be used
-```
-
## Getting Started
To get started install `ciinabox-ecs` ruby gem
```bash
$ gem install ciinabox-ecs
```
+During the setup process, you'll need to provide domain for the tools (e.g. `*.tools.example.com`) that has
+matching Route53 zone in same AWS account where you are creating ciinabox. Optionally you can use local hosts file
+hack in order to get routing working, but in this case usage of ACM certificates is not an option, and you'll need
+to use selfsigned IAM server certificates.
+
### Quick setup
You can be guided through full installation of ciinabox by running `full_install` action. Interactive
command line prompt will offer you defaults for most of required options.
@@ -453,6 +406,88 @@
configuration key to ARN of the freshly issued ACM certificate. You can do that using `update_cert_to_acm` action
```yaml
$ ciinabox-ecs update_cert_to_acm [ciinabox_name]
Set arn:aws:acm:ap-southeast-2:123456789012:certificate/2f2f3f9f-aaaa-bbbb-cccc-11dac04e7fb9 as default_cert_arn
+```
+
+## Enabling specific services
+
+### Artifactory
+
+Just add artifactory in your `ciinabox_name/config/services.yml`
+Artifactory service is routed through nginx reverse proxy, so it's not
+added to ELB by default (InstancePort=0)
+
+```yaml
+services:
+ - artifactory:
+```
+
+Defaults for artifactory are stated below, so if need be they can be overridden
+
+```yaml
+services:
+ - artifactory:
+ ContainerImage: base2/ciinabox-artifactory:5.9.3
+ ContainerMemory: 768
+ ContainerCPU: 0
+ InstancePort: 0
+```
+
+### Drone
+
+
+Note the drone service requires a minimum yaml configuration of below
+```yml
+services:
+ - drone:
+ params:
+ -
+ VPC:
+ Ref: VPC
+ -
+ SubnetPublicA:
+ Ref: SubnetPublicA
+ -
+ SubnetPublicB:
+ Ref: SubnetPublicB
+ -
+ ECSSubnetPrivateA:
+ Ref: ECSSubnetPrivateA
+ -
+ ECSSubnetPrivateB:
+ Ref: ECSSubnetPrivateB
+ -
+ SecurityGroupBackplane:
+ Ref: SecurityGroupBackplane
+ -
+ SecurityGroupOps:
+ Ref: SecurityGroupOps
+ -
+ SecurityGroupDev:
+ Ref: SecurityGroupDev
+ -
+ SecurityGroupNatGateway:
+ Ref: SecurityGroupNatGateway
+ -
+ SecurityGroupWebHooks:
+ Ref: SecurityGroupWebHooks
+ -
+ ECSENIPrivateIpAddress:
+ Ref: ECSENIPrivateIpAddress
+ tasks:
+ drone-server:
+ env:
+ DRONE_OPEN: true
+```
+to further configure drone ci refer to the drone ci's environment variable in the documentation http://docs.drone.io/installation/, you can add/override drone's environment variable to their corresponding yaml section (`drone-server` and `drone-agent`), example
+```yml
+ tasks:
+ drone-server:
+ env:
+ DRONE_OPEN: true
+ DRONE_SECRET: base2services # if this value is not specified, a secure random hex will be used
+ drone-agent:
+ env:
+ DRONE_SECRET: base2services # if this value is not specified, a secure random hex will be used
```