BOSH SoftLayer pool server provides APIs to utilize virtual guests pooling on SoftLayer. This is a BOSH release for it.
The following releases are dependencies.
SoftLayer light stemcell is needed for deployment and can be found the latest version on bosh.io.
You can use bosh-init from BOSH community to bootstrap a pool server on SoftLayer.
Warning: To fully enable virtual guest pooling on SoftLayer, except deploying a pool server, you also need to make director to connect to it and enable pooling feature. Please refer to release note of bosh-softlayer-cpi-release v3.0.1.
Note: In BOSH CLI v2, bosh-init is deprecated and use
bosh create-env
instead(We'll update when BOSH CLI v2 releases).
To install bosh-init, please refer to install-bosh-init and its usage can be found in using-bosh-init.
Note: Please make sure the machine installed bosh-init can access SoftLayer private network and you can enable SoftLayer VPN if it is outside of SoftLayer data center. This is because it needs to communicate with the target VM over SoftLayer private network to accomplish a successful deployment.
Prepare a deployment manifest
You can find a deployment manifest example under docs named vps-init-example.yml which can deploy a virtual guest pooling server and please replace release, stemcell, resource and credential information accordingly.
Note: For releases and stemcells, please either use url like the example manifest does or download them to your local machine and specify its location.
# Download BOSH SoftLayer Pool Server Release v1 $ wget https://s3.amazonaws.com/bosh-softlayer-pooling/bosh-softlayer-pool-server-1.tgz # Download the latest postgres $ wget https://bosh.io/d/github.com/cloudfoundry/postgres-release # Download the latest BOSH SoftLayer CPI release $ wget https://bosh.io/d/github.com/cloudfoundry-incubator/bosh-softlayer-cpi-release # Download the latest BOSH softlayer ligh stemcell $ wget https://bosh.io/d/stemcells/bosh-softlayer-xen-ubuntu-trusty-go_agent
Here is an example for key properties of jobs.
jobs:
- name: vps
instances: 1
templates:
- {name: postgres, release: postgres}
- {name: vps, release: bosh-softlayer-pool-server}
resource_pool: vms
persistent_disk_pool: disks
networks:
- name: default
properties:
databases:
roles:
- name: postgres
password: postgres
address: 127.0.0.1
port: 5432 # <-- Port of postgres. Default is 5432.
databases:
- name: bosh
vps:
host: 0.0.0.0
port: 8889 # <-- Port of vm pool server. Default is 8889.
log_level: debug
sql:
db_username: postgres # <-- keep it consistent with postgres databases:roles:name
db_password: postgres # <-- keep it consistent with postgres databases:roles:password
db_host: 127.0.0.1 # <-- keep it consistent with postgres databases:roles:address
db_port: 5432 # <-- keep it consistent with postgres databases:roles:port
db_schema: bosh # <-- keep it consistent with postgres databases:databases:name
db_driver: postgres
tls:
required: true # <-- Please set to 'true' if you need to enable https.
host: 0.0.0.0 # <-- Host at which to serve secure API requests. Default is 0.0.0.0.
port: 443 # <-- Port at which to serve secure API requests. Default is 443.
server_pem: # <-- Please provide server certificate.
server_key: # <-- Please provide server key.
$ bosh-init deploy <your-manifest.yml>
Started validating
Validating release 'postgres'... Finished (00:00:00)
Validating release 'bosh-softlayer-pool-server'... Finished (00:00:03)
Validating release 'bosh-softlayer-cpi'... Finished (00:00:01)
Validating cpi release... Finished (00:00:00)
Validating deployment manifest... Finished (00:00:00)
Validating stemcell... Finished (00:00:00)
Finished validating (00:00:05)
Started installing CPI
Compiling package 'golang_1.7.1/3b839fd4af8adab60ce6ecbba8c80fcf48331f72'... Finished (00:00:21)
Compiling package 'bosh_softlayer_cpi/d3e6c9bb05e20dcaa36f91e090272066456f1775'... Finished (00:00:12)
Installing packages... Finished (00:00:03)
Rendering job templates... Finished (00:00:00)
Installing job 'softlayer_cpi'... Finished (00:00:00)
Finished installing CPI (00:00:37)
Starting registry... Finished (00:00:00)
Uploading stemcell 'light-bosh-stemcell-3169.1-softlayer-esxi-ubuntu-trusty-go_agent/3169.1'... Finished (00:00:00)
Started deploying
Creating VM for instance 'vps/0' from stemcell '1147241'... Finished (00:05:08)
Waiting for the agent on VM '26597105' to be ready... Finished (00:00:05)
Rendering job templates... Finished (00:00:00)
Compiling package 'golang_1.7/2f2e9cb9f08e6517c7b588ad68d556e9e4a792e8'... Finished (00:00:23)
Compiling package 'postgres-common/368d38d49a3cc717559ebcdb2390b68882a85053'... Finished (00:00:01)
Compiling package 'postgres-9.4.9/8a20abd4ccec4d356cc29169d38be561d99bc1ff'... Finished (00:04:55)
Compiling package 'vps/70086910ffc53a19daa0e4b922af642c8d74a080'... Finished (00:00:13)
Updating instance 'vps/0'... Finished (00:00:15)
Waiting for instance 'vps/0' to be running... Finished (00:00:39)
Running the post-start scripts 'vps/0'... Finished (00:00:00)
Finished deploying (00:11:43)
Stopping registry... Finished (00:00:00)
Cleaning up rendered CPI jobs... Finished (00:00:00)