This document is for describing options to Diego manifest generation.
Generate a manifest for a Diego deployment to accompany an existing CF deployment.
generate-deployment-manifest <MANDATORY ARGUMENTS> [OPTIONAL ARGUMENTS]
-c <cf-path> Path to CF manifest file.
-i <iaas-path> Path to IaaS-settings stub file.
-p <property-path> Path to property-overrides stub file.
-n <count-path> Path to instance-count-overrides stub file.
-v <versions-path> Path to release-versions stub file.
-s <sql-db-path> Path to SQL stub file.
-x Opt out of deploying etcd with the database vms (requires sql)
-b Opt into using capi-release for bridge components.
-d <voldriver-path> Path to voldriver stub file.
-N <cf-networking-path> Path to CF Networking stub file.
-B Opt out of deprecated CC bridge components.
-R Opt into using local route-emitter configuration for cells.
-r Opt into using cflinuxfs2-release.
-Q Opt into using sql locket service.
-G Opt into using GrootFS container image orchestrator (EXPERIMENTAL).
-L Opt into using garden-linux-release for cells. (DEPRECATED)
scripts/generate-deployment-manifest \
-c ../cf-release/bosh-lite/deployments/cf.yml \
-i manifest-generation/bosh-lite-stubs/iaas-settings.yml \
-p manifest-generation/bosh-lite-stubs/property-overrides.yml \
-n manifest-generation/bosh-lite-stubs/instance-count-overrides.yml \
-v manifest-generation/bosh-lite-stubs/release-versions.yml \
-s manifest-generation/bosh-lite-stubs/mysql/diego-sql.yml \
-x \
-d manifest-generation/bosh-lite-stubs/experimental/voldriver/drivers.yml \
-N ../cf-networking-release/manifest-generation/stubs/cf-networking.yml \
-b \
-r \
-R
When fully migrated data from an etcd release to SQL, or a fresh install using SQL use the -x flag to not deploy etcd to the database VMs.
Use garden-linux-release instead of garden-runc as the container backend.
Note: garden-runc is the replacement for garden-linux-release, and we strongly recommend migrating to garden-runc.
Use the cc-bridge components (e.g., stager, nsync, tps, etc.) from capi-release instead of cf-release.
Use the local route-emitter on the cell VMs.
Note: This option can be safely used on a fresh deploy. We recommend that you disable the global route-emitter
configuration when opting into the local route-emitter configuration on fresh deploys. To remove the global
route-emitter configuration, you can specify 0 instances for the route_emitter_z1
, route_emitter_z2
,
and route_emitter_z3
VMs in the instance-count-overrides stubs.
Note: To ensure zero downtime when upgrading an existing environment using the global route-emitter, you will need
to perform two deploys: one to enable the local route-emitter configuration, and one to remove the global route-emitter
configuration. To remove the global route-emitter configuration, you can specify 0 instances for the route_emitter_z1
,
route_emitter_z2
, and route_emitter_z3
VMs in the instance-count-overrides stubs.
There is a change in release name from cflinuxfs2-rootfs
to cflinuxfs2
. The -r
argument opts into using the new release name when generating the diego release manifest. The old release name cflinuxfs2-rootfs
will be deprecated and eventually the -r
flag will become the primary option to generate diego release manifests.
To specify a specific version of cflinuxfs2
the version can be set in the release-versions
stub under release_versions.cflinuxfs2
.
The optional -Q flag is used to enable the BBS and Auctioneer to use the locket server for it's SQL lock.
To specify the CF manifest and used to pull CF related properties into the generated Diego manifest
The file to specify the IaaS specific values. Items such as the subnet-configs, stemcell specifications etc.
The bosh-lite IaaS-settings example can be found iaas-settings.yml.
The file to override specific diego properties
The bosh-lite property-overrides example can be found property-overrides.yml
The file is used override the instance count for jobs in the diego manifest
The bosh-lite instance-count-overrides example can be found instance-count-overrides.yml
The file is used to override the default (latest) release version for the releases used in the manifest
release-versions:
etcd: 35
cflinuxfs2-rootfs: 1.12.0
diego: 1.1450.0
garden-runc: 1.0.2
The optional -s flag is used to specify the stub for SQL and needs to be specific to either MySQL or Postgres.
sql_overrides:
bbs:
ca_cert: null
require_ssl: null
db_driver: mysql
db_host: 10.244.7.2
db_port: 3306
db_username: diego
db_password: diego
db_schema: diego
max_open_connections: 500
locket:
ca_cert: null
require_ssl: null
db_driver: mysql
db_host: 10.244.7.2
db_port: 3306
db_username: locket
db_password: locket
db_schema: locket
sql_overrides:
bbs:
ca_cert: null
require_ssl: null
db_driver: postgres
db_host: 10.244.0.30
db_port: 5524
db_username: diego
db_password: admin
db_schema: diego
max_open_connections: 500
locket:
ca_cert: null
require_ssl: null
db_driver: postgres
db_host: 10.244.0.30
db_port: 5524
db_username: locket
db_password: admin
db_schema: locket
The optional -d flag is used to specify the file for volume drivers.
volman_overrides:
releases:
- name: cephfs-bosh-release
version: "latest"
driver_templates:
- name: cephdriver
release: cephfs-bosh-release
The optional -N flag is used to specify the path for the CF Networking stub file.
Note: The cf_networking_overrides.bbs_consul_properties
will take
precedent over bbs_overrides.job_properties.consul
. If you are deploying
with an ETCD backed BBS, you will need to add the ETCD service definition to
cf_networking_overrides.bbs_consul_properties
:
bbs_consul_properties:
agent:
services:
etcd: {}
The optional flag -B will disable deprecated CC bridge components. At the moment those components are NSync and Stager. Those components are now part of the Cloud Controller. Keep in mind that in order to use this flag and still have CF working properly you will need to first enable this feature in cf-release via Cloud Controller properties.
The optional -G flag is used to enable GrootFS as the container image orchestrator. The garden-runc BOSH properties that are related to container images will be converted to the appropriate GrootFS BOSH properties.
Note: If you are overriding the garden.persistent_image_list
BOSH property and include the default cflinuxfs2 stack (/var/vcap/packages/cflinuxfs2/rootfs
), you will need to convert that to /var/vcap/packages/cflinuxfs2/rootfs.tar
. GrootFS is only accepting tarballs instead of directory root filesystems. Similarly, if you are using a custom stack, you will need to provide a tarball version of that stack to the garden.persistent_image_list
and rep.preloaded_rootfses
BOSH properties.
Generate a windows manifest for a Diego deployment to accompany an existing CF deployment.
generate-windows-cell-deployment-manifest <MANDATORY ARGUMENTS> [OPTIONAL ARGUMENTS]
-c <cf-path> Path to CF manifest file.
-i <iaas-path> Path to IaaS-settings stub file.
-p <property-path> Path to property-overrides stub file.
-n <count-path> Path to instance-count-overrides stub file.
-v <versions-path> Path to release-versions stub file.
-R Opt into using local route-emitter configuration for cells.
generate-windows-cell-deployment-manifest \
-c ../cf-release/bosh-lite/deployments/cf.yml \
-i manifest-generation/bosh-lite-stubs/iaas-settings.yml \
-p manifest-generation/bosh-lite-stubs/property-overrides.yml \
-n manifest-generation/bosh-lite-stubs/instance-count-overrides.yml \
-v manifest-generation/bosh-lite-stubs/release-versions.yml \
-R
To specify the CF manifest and used to pull CF related properties into the generated Diego Windows manifest
The file to specify the IaaS specific values. Items such as the subnet-configs, stemcell specifications etc.
The file to override specific Diego Windows properties
The file is used override the instance count for jobs in the Diego Windows manifest
The file is used to override the default (latest) release version for the releases used in the manifest
Use the local route-emitter on the windows cell VMs.
Note: This option can be safely used on a fresh deploy. We recommend that you disable the global route-emitter
configuration in your diego deployment when opting into the local route-emitter configuration on fresh deploys.
To remove the global route-emitter configuration, you can specify 0 instances for the route_emitter_z1
, route_emitter_z2
,
and route_emitter_z3
VMs in the instance-count-overrides stubs for the diego deployment.
Note: To ensure zero downtime when upgrading an existing environment using the global route-emitter, you will need
to perform two deploys: one to enable the local route-emitter configuration for windows cells, and one to remove the global route-emitter
configuration from your diego deployment. To remove the global route-emitter configuration, you can specify 0 instances for the route_emitter_z1
,
route_emitter_z2
, and route_emitter_z3
VMs in the instance-count-overrides stubs for the diego deployment.