https://github.com/cloudfoundry-community/consul-boshrelease
BOSH release for consul
https://github.com/cloudfoundry-community/consul-boshrelease
bosh-release consul
Last synced: 9 months ago
JSON representation
BOSH release for consul
- Host: GitHub
- URL: https://github.com/cloudfoundry-community/consul-boshrelease
- Owner: cloudfoundry-community
- License: other
- Created: 2014-05-12T15:02:08.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2022-11-04T14:56:35.000Z (over 3 years ago)
- Last Synced: 2024-06-21T04:51:11.747Z (about 2 years ago)
- Topics: bosh-release, consul
- Language: Perl
- Homepage:
- Size: 233 KB
- Stars: 14
- Watchers: 15
- Forks: 20
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE
Awesome Lists containing this project
README
# Deploy Consul to BOSH
Hashicorp [Consul](https://www.consul.io/) makes it simple for services to register themselves and to discover other services via a DNS or HTTP interface. It also offers flexible key/value storage.
One of the fastest ways to get [consul](https://www.consul.io/) running on any infrastructure is to deploy this BOSH release.
* Discussions and CI notifications at [#consul-boshrelease channel](https://cloudfoundry.slack.com/messages/C6SUUTMDJ/) on https://slack.cloudfoundry.org
## Usage
To use this bosh release, first upload it to your bosh:
```
export BOSH_ENVIRONMENT=
export BOSH_DEPLOYMENT=consul
git clone https://github.com/cloudfoundry-community/consul-boshrelease.git
cd consul-boshrelease
bosh deploy manifests/consul.yml -o manifests/operators/firsttime.yml
```
If your BOSH does not have Credhub/Config Server, then remember ` --vars-store` to allow generation of certificates.
If your BOSH does not have Credhub/Config Server, then remember ` --vars-store` to allow generation of certificates.
The `consul.yml` manifest is deliberately missing the required `update:` section of the manifest. This is to ensure that you - the operator - choose the correct `update:` section - either `firsttime.yml` for the first deployment (deploy all instances at the same time so they form a cluster) or `existing.yml` for all subsequent deployments (rolling updates).
If you get the following error then you have forgotten to provide either of these two operator files:
```
Task 1045 | 23:24:04 | Preparing deployment: Preparing deployment (00:00:00)
L Error: Required property 'update' was not specified in object ({"instance_groups"=>[{"azs"=>["z1", "z2", "z3"], "instances"=>3, "jobs"=>...
```
### Subsequent deploys/upgrades
Replace `manifests/operators/firsttime.yml` above with `manifests/operators/existing.yml` so that each instance is updated one at a time:
```
bosh deploy manifests/consul.yml -o manifests/operators/existing.yml
```