diff --git a/jobs/rep/spec b/jobs/rep/spec index 39caeb69dc..3c779c189f 100644 --- a/jobs/rep/spec +++ b/jobs/rep/spec @@ -135,6 +135,7 @@ properties: description: "Experimental: user to run post setup hook command" diego.executor.volman.driver_paths: description: "Experimental: OS style path string containing the directories volman will look in for voldriver specs (delimited by : or ; depending on the OS)" + default: "/var/vcap/data/voldrivers" diego.rep.bbs.api_location: description: "Address to the BBS Server" diff --git a/jobs/rep/templates/rep_ctl.erb b/jobs/rep/templates/rep_ctl.erb index 135a3274fe..2a53f1a082 100644 --- a/jobs/rep/templates/rep_ctl.erb +++ b/jobs/rep/templates/rep_ctl.erb @@ -93,6 +93,9 @@ case $1 in # Work around for GOLANG 1.5.3 DNS bug export GODEBUG=netdns=cgo + DRIVERS_PATHS=<%= p("diego.executor.volman.driver_paths") %> + mkdir -p $DRIVERS_PATHS + chown vcap:vcap $DRIVERS_PATHS chpst -u vcap:vcap /var/vcap/packages/rep/bin/rep ${bbs_sec_flags} \ -bbsAddress=${bbs_api_url} \ @@ -138,6 +141,7 @@ case $1 in <% end %> \ <% end %> \ -tempDir=$TMP_DIR \ + -volmanDriverPaths=$DRIVERS_PATHS \ -logLevel=<%= p("diego.rep.log_level") %> \ -gardenHealthcheckInterval=<%= p("diego.executor.garden_healthcheck.interval") %> \ -gardenHealthcheckTimeout=<%= p("diego.executor.garden_healthcheck.timeout") %> \ @@ -159,9 +163,6 @@ case $1 in <% if_p("diego.executor.post_setup_hook") do |value| %> \ -postSetupHook=<%= Shellwords.shellescape(value) %> \ <% end %> \ - <% if_p("diego.executor.volman.driver_paths") do |value| %> \ - -volmanDriverPaths=<%= value %> \ - <% end %> \ 2>> $LOG_DIR/rep.stderr.log \ 1> >(tee -a $LOG_DIR/rep.stdout.log | logger -t vcap.rep) & diff --git a/manifest-generation/bosh-lite-stubs/experimental/voldriver/drivers.yml b/manifest-generation/bosh-lite-stubs/experimental/voldriver/drivers.yml new file mode 100644 index 0000000000..47b69f4adc --- /dev/null +++ b/manifest-generation/bosh-lite-stubs/experimental/voldriver/drivers.yml @@ -0,0 +1,8 @@ +volman_overrides: + release: + - name: cephfs-bosh-release + version: "latest" + drivers: + template: + - name: cephdriver + release: cephfs-bosh-release \ No newline at end of file diff --git a/manifest-generation/diego.yml b/manifest-generation/diego.yml index d872a9dd00..619063208d 100644 --- a/manifest-generation/diego.yml +++ b/manifest-generation/diego.yml @@ -1,6 +1,6 @@ name: (( config_from_cf.cf_deployment_name "-diego" )) -releases: (( base_releases [garden_overrides.release] [config_from_cf.cf_release] )) +releases: (( base_releases volman_overrides.release [garden_overrides.release] [config_from_cf.cf_release] )) director_uuid: (( config_from_cf.cf_director_uuid )) @@ -188,7 +188,7 @@ jobs: zone: z1 - name: cell_z1 - templates: (( base_job_templates.cell )) + templates: (( base_job_templates.cell volman_overrides.drivers.template )) instances: (( instance_count_overrides.cell_z1.instances || 1 )) resource_pool: cell_z1 networks: @@ -716,6 +716,7 @@ garden_overrides: name: garden-linux version: (( release_versions.garden_linux || "latest" )) empty_hash: {} +volman_overrides: (( merge || [] )) base_releases: - name: diego version: (( release_versions.diego || "latest" )) @@ -724,6 +725,7 @@ base_releases: - name: cflinuxfs2-rootfs version: (( release_versions.etcd || "latest" )) release_versions: (( merge || nil )) + base_job_templates: access: - name: consul_agent diff --git a/scripts/generate-bosh-lite-manifests b/scripts/generate-bosh-lite-manifests index a8581501ac..ac85d1f8ab 100755 --- a/scripts/generate-bosh-lite-manifests +++ b/scripts/generate-bosh-lite-manifests @@ -15,6 +15,12 @@ if [ ! -z ${USE_SQL} ]; then sql_option="-s manifest-generation/bosh-lite-stubs/experimental/mysql/diego-sql.yml" fi +if [ ! -d ${ENABLE_VOLDRIVER} ]; then + voldriver_option="-d manifest-generation/bosh-lite-stubs/experimental/voldriver/drivers.yml" +fi + + + pushd ${DIEGO_RELEASE_DIR} $scripts_path/generate-deployment-manifest \ -c ${CF_MANIFESTS_DIR}/cf.yml \ @@ -22,6 +28,7 @@ pushd ${DIEGO_RELEASE_DIR} -p manifest-generation/bosh-lite-stubs/property-overrides.yml \ -n manifest-generation/bosh-lite-stubs/instance-count-overrides.yml \ ${sql_option} \ + ${voldriver_option} \ -v manifest-generation/bosh-lite-stubs/release-versions.yml \ "$@" \ > ${DIEGO_MANIFESTS_DIR}/diego.yml diff --git a/scripts/generate-deployment-manifest b/scripts/generate-deployment-manifest index 795e0e419b..919eefdd66 100755 --- a/scripts/generate-deployment-manifest +++ b/scripts/generate-deployment-manifest @@ -22,6 +22,7 @@ OPTIONAL ARGUMENTS: -v Path to release-versions stub file. -s Path to SQL stub file. -g Opt into using garden-runc-release for cells. + -d Path to voldriver stub file. EXAMPLE: $0 \\ @@ -31,6 +32,7 @@ EXAMPLE: -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/diego-sql.yml \\ + -d manifest-generation/bosh-lite-stubs/experimental/voldriver/drivers.yml \\ -g EOF exit 1 @@ -39,7 +41,7 @@ EOF base_releases="${manifest_generation}/base-releases.yml" garden_properties="" -while getopts "c:i:p:n:k:v:s:rbg" opt; do +while getopts "c:i:p:n:k:v:s:d:rbg" opt; do case $opt in c) cf_deployment_manifest=$OPTARG @@ -68,6 +70,9 @@ while getopts "c:i:p:n:k:v:s:rbg" opt; do s) sql_settings=$OPTARG ;; + d) + voldriver_settings=$OPTARG + ;; *) echo "Unknown arguments" usage @@ -111,6 +116,11 @@ if [[ ! -z "${sql_settings}" && ! -f "${sql_settings}" ]]; then argument_error=true fi +if [[ ! -z "${voldriver_settings}" && ! -f "${voldriver_settings}" ]]; then + >&2 echo "ERROR: Voldriver Setting stub '${voldriver_settings}' is not a regular file" + argument_error=true +fi + if [[ ! -z "${instance_counts}" && ! -f "${instance_counts}" ]]; then >&2 echo "ERROR: Instance-count-overrides stub '${instance_counts}' is not a regular file" argument_error=true @@ -141,6 +151,7 @@ spiff merge \ ${property_overrides} \ ${instance_counts} \ ${sql_settings} \ + ${voldriver_settings} \ ${iaas_settings} \ ${tmpdir}/config-from-cf.yml \ > ${tmpdir}/diego.yml