Skip to content

Commit

Permalink
Extract Concourse deploy stories; create GCP and Local -specific vers…
Browse files Browse the repository at this point in the history
…ions
  • Loading branch information
keaty committed Mar 14, 2017
1 parent 9caa482 commit 641b2bb
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 57 deletions.
57 changes: 0 additions & 57 deletions concourse.prolific
Original file line number Diff line number Diff line change
@@ -1,60 +1,3 @@
Create your Concourse cloud-config file
### What?

To deploy Concourse you're going to take advantage of a BOSH feature we didn't use last time around: the **[cloud config](http://bosh.io/docs/cloud-config.html)**. A cloud-config is a YAML file that defines IaaS-specific configuration used by the BOSH Director and all of its deployments. It allows us to separate IaaS specific configuration into its own file and keep deployment manifests IaaS agnostic (this wasn't always the case, btw).

### How?
You're going to need to define ...

* **AZs Block:** Specifies the AZs available to deployments. At least one should be specified.

* **Networks Block:** Each sub-block listed in the Networks block specifies a network configuration that jobs can reference. There are three different network types: manual, dynamic, and vip. At least one should be specified.

* **VM Types Block:** Specifies the VM types available to deployments. At least one should be specified.

* **Disk Types Block:** Specifies the disk types available to deployments. At least one should be specified.

* **Compilation Block:** Properties of compilation VMs.

Desafortunadamente, there are examples for pretty much every IAAS _except_ GCP in the [bosh.io documentation](http://bosh.io/docs/cloud-config.html), so I'd suggest you use the cloud-config from one of your teams' IRL GCP deployments as a reference (see how I'm tricking you into reading your team's code?). Or [this one](https://github.com/cloudfoundry-incubator/bosh-google-cpi-release/blob/master/docs/concourse/cloud-config.yml), take your pick.

After you create the `cloud-config.yml` file, don't forget to `bosh update cloud-config some-cloud-config-path.yml`

### Expected Result
When you run `bosh cloud-config` it should return the yaml you just prepared.

### Resources
[What's a cloud config?](http://bosh.io/docs/cloud-config.html)

### Relevant Repos and Teams
**Concourse:** [concourse/concourse](https://github.com/concourse/concourse)
L: concourse
---
Deploy Concourse to BOSH
### What?
Okay, the training wheels are coming **off**. This Concourse deployment is gonna be just you + the same docs anyone else uses ("whhaaaaaat?" "I know, they grow up so fast!"). But first, a little preamble:

Concourse is a Pivotal-sponsored, pipeline-based continuous integration (CI) system. The "pipelines" are a collection of [three core concepts (jobs, tasks, and resources)](http://concourse.ci/concepts.html) that you'll learn more about in upcoming stories. While CI may call to mind test automation, Pivotal teams use it for so much more than that. Take a stroll around the office and checkout the jobs up on the CI screens to get a general idea of how broadly we use it to automate all that is automate-able.

### How?
You already have a BOSH Director, a cloud-config, and at least one stemcell, so all that's left is to prepare your deployment manifest. Follow these **[instructions](http://concourse.ci/clusters-with-bosh.html#deploying-concourse)** to set up and BOSH deploy it.

**NOTE:** if this ends up being frustrating in a "please, please don't make me do another minute" kind of way, no sweat. Don't waste time on a story you're not getting anything out of, just _Choose Your Own Adventure_ your way out of it by **[spinning up a local VM with Vagrant](http://concourse.ci/vagrant.html)**. Either way, same result -->

### Expected Result
![Lonely Concourse, no pipelines](http://danoncoding.com/assets/images/concourse-simple-redux/no-pipelines.png)

### Resources
[Terraform + Google Cloud Platform docs](https://www.terraform.io/docs/providers/google/index.html)

[Concourse Architecture Overview](https://concourse.ci/architecture.html)
[All About Concourse for Continuous Integration (video)](https://blog.pivotal.io/pivotal-perspectives/features/all-about-concourse-for-continuous-integration)
[BOSH 2.0: The Evolution - YouTube (video)](https://www.youtube.com/watch?v=Q5uvoL1OqSw)

### Relevant Repos and Teams
**Concourse:** [concourse/concourse](https://github.com/concourse/concourse)
L: concourse
---
Create a pipeline with a single job
### What?
Every great Concourse behemoth of the 21st century started in the same place as yours is about to: with an empty `pipeline.yml`. You can kick it off with as little as a single, manually-triggered job.
Expand Down
56 changes: 56 additions & 0 deletions concourse_deploy_gcp.prolific
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
Create your Concourse cloud-config file
### What?

To deploy Concourse you're going to take advantage of a BOSH feature we didn't use last time around: the **[cloud config](http://bosh.io/docs/cloud-config.html)**. A cloud-config is a YAML file that defines IaaS-specific configuration used by the BOSH Director and all of its deployments. It allows us to separate IaaS specific configuration into its own file and keep deployment manifests IaaS agnostic (this wasn't always the case, btw).

### How?
You're going to need to define ...

* **AZs Block:** Specifies the AZs available to deployments. At least one should be specified.

* **Networks Block:** Each sub-block listed in the Networks block specifies a network configuration that jobs can reference. There are three different network types: manual, dynamic, and vip. At least one should be specified.

* **VM Types Block:** Specifies the VM types available to deployments. At least one should be specified.

* **Disk Types Block:** Specifies the disk types available to deployments. At least one should be specified.

* **Compilation Block:** Properties of compilation VMs.

Desafortunadamente, there are examples for pretty much every IAAS _except_ GCP in the [bosh.io documentation](http://bosh.io/docs/cloud-config.html), so I'd suggest you use the cloud-config from one of your teams' IRL GCP deployments as a reference (see how I'm tricking you into reading your team's code?). Or [this one](https://github.com/cloudfoundry-incubator/bosh-google-cpi-release/blob/master/docs/concourse/cloud-config.yml), take your pick.

After you create the `cloud-config.yml` file, don't forget to `bosh update cloud-config some-cloud-config-path.yml`

### Expected Result
When you run `bosh cloud-config` it should return the yaml you just prepared.

### Resources
[What's a cloud config?](http://bosh.io/docs/cloud-config.html)

### Relevant Repos and Teams
**Concourse:** [concourse/concourse](https://github.com/concourse/concourse)
L: concourse
---
Deploy Concourse to BOSH
### What?
Okay, the training wheels are coming **off**. This Concourse deployment is gonna be just you + the same docs anyone else uses ("whhaaaaaat?" "I know, they grow up so fast!"). But first, a little preamble:

Concourse is a Pivotal-sponsored, pipeline-based continuous integration (CI) system. The "pipelines" are a collection of [three core concepts (jobs, tasks, and resources)](http://concourse.ci/concepts.html) that you'll learn more about in upcoming stories. While CI may call to mind test automation, Pivotal teams use it for so much more than that. Take a stroll around the office and checkout the jobs up on the CI screens to get a general idea of how broadly we use it to automate all that is automate-able.

### How?
You already have a BOSH Director, a cloud-config, and at least one stemcell, so all that's left is to prepare your deployment manifest. Follow these **[instructions](http://concourse.ci/clusters-with-bosh.html#deploying-concourse)** to set up and BOSH deploy it.

**NOTE:** if this ends up being frustrating in a "please, please don't make me do another minute" kind of way, no sweat. Don't waste time on a story you're not getting anything out of, just _Choose Your Own Adventure_ your way out of it by **[spinning up a local VM with Vagrant](http://concourse.ci/vagrant.html)**. Either way, same result -->

### Expected Result
![Lonely Concourse, no pipelines](http://danoncoding.com/assets/images/concourse-simple-redux/no-pipelines.png)

### Resources
[Terraform + Google Cloud Platform docs](https://www.terraform.io/docs/providers/google/index.html)

[Concourse Architecture Overview](https://concourse.ci/architecture.html)
[All About Concourse for Continuous Integration (video)](https://blog.pivotal.io/pivotal-perspectives/features/all-about-concourse-for-continuous-integration)
[BOSH 2.0: The Evolution - YouTube (video)](https://www.youtube.com/watch?v=Q5uvoL1OqSw)

### Relevant Repos and Teams
**Concourse:** [concourse/concourse](https://github.com/concourse/concourse)
L: concourse
22 changes: 22 additions & 0 deletions concourse_deploy_local.prolific
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Deploy Concourse to BOSH
### What?
Okay, the training wheels are coming **off**. This Concourse deployment is gonna be just you + the same docs anyone else uses ("whhaaaaaat?" "I know, they grow up so fast!"). But first, a little preamble:

Concourse is a Pivotal-sponsored, pipeline-based continuous integration (CI) system. The "pipelines" are a collection of [three core concepts (jobs, tasks, and resources)](http://concourse.ci/concepts.html) that you'll learn more about in upcoming stories. While CI may call to mind test automation, Pivotal teams use it for so much more than that. Take a stroll around the office and checkout the jobs up on the CI screens to get a general idea of how broadly we use it to automate all that is automate-able.

### How?
Instead of deploying up a full Concourse, you're gonna _Easy Button_ your way out of it by **[spinning up a local VM with Vagrant](http://concourse.ci/vagrant.html)**.

### Expected Result
![Lonely Concourse, no pipelines](http://danoncoding.com/assets/images/concourse-simple-redux/no-pipelines.png)

### Resources
[Terraform + Google Cloud Platform docs](https://www.terraform.io/docs/providers/google/index.html)

[Concourse Architecture Overview](https://concourse.ci/architecture.html)
[All About Concourse for Continuous Integration (video)](https://blog.pivotal.io/pivotal-perspectives/features/all-about-concourse-for-continuous-integration)
[BOSH 2.0: The Evolution - YouTube (video)](https://www.youtube.com/watch?v=Q5uvoL1OqSw)

### Relevant Repos and Teams
**Concourse:** [concourse/concourse](https://github.com/concourse/concourse)
L: concourse

0 comments on commit 641b2bb

Please sign in to comment.