bosh-cloudfoundry 0.6.1 → 0.7.0.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -1
- data/.rspec +1 -1
- data/.travis.yml +9 -3
- data/ChangeLog.md +12 -47
- data/Gemfile +11 -5
- data/Guardfile +4 -7
- data/LICENSE.txt +2 -2
- data/README.md +62 -178
- data/Rakefile +40 -16
- data/bosh-cloudfoundry.gemspec +19 -27
- data/bosh_release/.final_builds/.gitattributes +1 -0
- data/bosh_release/.final_builds/jobs/acm/index.yml +10 -0
- data/bosh_release/.final_builds/jobs/atmos_gateway/index.yml +58 -0
- data/bosh_release/.final_builds/jobs/backup_manager/index.yml +66 -0
- data/bosh_release/.final_builds/jobs/ccdb/index.yml +6 -0
- data/bosh_release/.final_builds/jobs/ccdb_postgres/index.yml +31 -0
- data/bosh_release/.final_builds/jobs/cloud_controller/index.yml +230 -0
- data/bosh_release/.final_builds/jobs/cloud_controller_ng/index.yml +31 -0
- data/bosh_release/.final_builds/jobs/collector/index.yml +27 -0
- data/bosh_release/.final_builds/jobs/dashboard/index.yml +43 -0
- data/bosh_release/.final_builds/jobs/dea/index.yml +86 -0
- data/bosh_release/.final_builds/jobs/dea_next/index.yml +51 -0
- data/bosh_release/.final_builds/jobs/debian_nfs_server/index.yml +30 -0
- data/bosh_release/.final_builds/jobs/filesystem_gateway/index.yml +54 -0
- data/bosh_release/.final_builds/jobs/gorouter/index.yml +11 -0
- data/bosh_release/.final_builds/jobs/hbase_master/index.yml +6 -0
- data/bosh_release/.final_builds/jobs/hbase_slave/index.yml +10 -0
- data/bosh_release/.final_builds/jobs/health_manager/index.yml +82 -0
- data/bosh_release/.final_builds/jobs/health_manager_next/index.yml +31 -0
- data/bosh_release/.final_builds/jobs/login/index.yml +47 -0
- data/bosh_release/.final_builds/jobs/marketplace_gateway/index.yml +38 -0
- data/bosh_release/.final_builds/jobs/memcached_gateway/index.yml +50 -0
- data/bosh_release/.final_builds/jobs/memcached_node/index.yml +22 -0
- data/bosh_release/.final_builds/jobs/memcached_node_ng/index.yml +50 -0
- data/bosh_release/.final_builds/jobs/micro/index.yml +374 -0
- data/bosh_release/.final_builds/jobs/mongodb_gateway/index.yml +126 -0
- data/bosh_release/.final_builds/jobs/mongodb_node/index.yml +110 -0
- data/bosh_release/.final_builds/jobs/mongodb_node_ng/index.yml +66 -0
- data/bosh_release/.final_builds/jobs/mysql_gateway/index.yml +110 -0
- data/bosh_release/.final_builds/jobs/mysql_node/index.yml +126 -0
- data/bosh_release/.final_builds/jobs/mysql_node_ng/index.yml +58 -0
- data/bosh_release/.final_builds/jobs/nats/index.yml +43 -0
- data/bosh_release/.final_builds/jobs/oauth2_gateway/index.yml +10 -0
- data/bosh_release/.final_builds/jobs/opentsdb/index.yml +62 -0
- data/bosh_release/.final_builds/jobs/postgres/index.yml +19 -0
- data/bosh_release/.final_builds/jobs/postgresql_gateway/index.yml +106 -0
- data/bosh_release/.final_builds/jobs/postgresql_node/index.yml +90 -0
- data/bosh_release/.final_builds/jobs/postgresql_node_ng/index.yml +62 -0
- data/bosh_release/.final_builds/jobs/rabbit_gateway/index.yml +82 -0
- data/bosh_release/.final_builds/jobs/rabbit_node/index.yml +86 -0
- data/bosh_release/.final_builds/jobs/rabbit_node_ng/index.yml +58 -0
- data/bosh_release/.final_builds/jobs/rabbitmq_srs_gateway/index.yml +22 -0
- data/bosh_release/.final_builds/jobs/rabbitmq_srs_node/index.yml +18 -0
- data/bosh_release/.final_builds/jobs/rabbitmq_srs_service/index.yml +22 -0
- data/bosh_release/.final_builds/jobs/redis_gateway/index.yml +102 -0
- data/bosh_release/.final_builds/jobs/redis_node/index.yml +98 -0
- data/bosh_release/.final_builds/jobs/redis_node_ng/index.yml +58 -0
- data/bosh_release/.final_builds/jobs/router/index.yml +78 -0
- data/bosh_release/.final_builds/jobs/router_next/index.yml +38 -0
- data/bosh_release/.final_builds/jobs/routerv2/index.yml +30 -0
- data/bosh_release/.final_builds/jobs/serialization_data_server/index.yml +38 -0
- data/bosh_release/.final_builds/jobs/service_broker/index.yml +34 -0
- data/bosh_release/.final_builds/jobs/service_utilities/index.yml +14 -0
- data/bosh_release/.final_builds/jobs/stager/index.yml +94 -0
- data/bosh_release/.final_builds/jobs/syslog_aggregator/index.yml +43 -0
- data/bosh_release/.final_builds/jobs/uaa/index.yml +111 -0
- data/bosh_release/.final_builds/jobs/vblob_gateway/index.yml +62 -0
- data/bosh_release/.final_builds/jobs/vblob_node/index.yml +34 -0
- data/bosh_release/.final_builds/jobs/vblob_node_ng/index.yml +54 -0
- data/bosh_release/.final_builds/jobs/vcap_redis/index.yml +26 -0
- data/bosh_release/.final_builds/jobs/warden/index.yml +30 -0
- data/bosh_release/.final_builds/packages/acm/index.yml +46 -0
- data/bosh_release/.final_builds/packages/atmos_gateway/index.yml +146 -0
- data/bosh_release/.final_builds/packages/backup_manager/index.yml +158 -0
- data/bosh_release/.final_builds/packages/bandwidth_proxy/index.yml +10 -0
- data/bosh_release/.final_builds/packages/buildpack_cache/index.yml +7 -0
- data/bosh_release/.final_builds/packages/cloud_controller/index.yml +306 -0
- data/bosh_release/.final_builds/packages/cloud_controller_ng/index.yml +55 -0
- data/bosh_release/.final_builds/packages/collector/index.yml +35 -0
- data/bosh_release/.final_builds/packages/common/index.yml +22 -0
- data/bosh_release/.final_builds/packages/dashboard/index.yml +59 -0
- data/bosh_release/.final_builds/packages/daylimit/index.yml +22 -0
- data/bosh_release/.final_builds/packages/dea/index.yml +214 -0
- data/bosh_release/.final_builds/packages/dea_jvm/index.yml +19 -0
- data/bosh_release/.final_builds/packages/dea_jvm7/index.yml +6 -0
- data/bosh_release/.final_builds/packages/dea_next/index.yml +67 -0
- data/bosh_release/.final_builds/packages/dea_node/index.yml +18 -0
- data/bosh_release/.final_builds/packages/dea_node04/index.yml +14 -0
- data/bosh_release/.final_builds/packages/dea_node06/index.yml +14 -0
- data/bosh_release/.final_builds/packages/dea_node08/index.yml +6 -0
- data/bosh_release/.final_builds/packages/dea_ruby18/index.yml +34 -0
- data/bosh_release/.final_builds/packages/dea_ruby19/index.yml +30 -0
- data/bosh_release/.final_builds/packages/dea_seed/index.yml +34 -0
- data/bosh_release/.final_builds/packages/dea_transition/index.yml +18 -0
- data/bosh_release/.final_builds/packages/debian_nfs_server/index.yml +14 -0
- data/bosh_release/.final_builds/packages/erlang/index.yml +14 -0
- data/bosh_release/.final_builds/packages/filesystem_gateway/index.yml +114 -0
- data/bosh_release/.final_builds/packages/git/index.yml +6 -0
- data/bosh_release/.final_builds/packages/golang/index.yml +11 -0
- data/bosh_release/.final_builds/packages/gorouter/index.yml +19 -0
- data/bosh_release/.final_builds/packages/hadoop/index.yml +6 -0
- data/bosh_release/.final_builds/packages/hbase/index.yml +18 -0
- data/bosh_release/.final_builds/packages/health_manager_next/index.yml +75 -0
- data/bosh_release/.final_builds/packages/imagemagick/index.yml +10 -0
- data/bosh_release/.final_builds/packages/insight_agent/index.yml +10 -0
- data/bosh_release/.final_builds/packages/libpq/index.yml +23 -0
- data/bosh_release/.final_builds/packages/libyaml/index.yml +7 -0
- data/bosh_release/.final_builds/packages/login/index.yml +55 -0
- data/bosh_release/.final_builds/packages/marketplace/index.yml +58 -0
- data/bosh_release/.final_builds/packages/memcached/index.yml +6 -0
- data/bosh_release/.final_builds/packages/memcached_gateway/index.yml +102 -0
- data/bosh_release/.final_builds/packages/memcached_node/index.yml +90 -0
- data/bosh_release/.final_builds/packages/memcached_node_ng/index.yml +58 -0
- data/bosh_release/.final_builds/packages/micro/index.yml +22 -0
- data/bosh_release/.final_builds/packages/mongodb/index.yml +22 -0
- data/bosh_release/.final_builds/packages/mongodb18/index.yml +6 -0
- data/bosh_release/.final_builds/packages/mongodb20/index.yml +11 -0
- data/bosh_release/.final_builds/packages/mongodb22/index.yml +6 -0
- data/bosh_release/.final_builds/packages/mongodb_gateway/index.yml +226 -0
- data/bosh_release/.final_builds/packages/mongodb_node/index.yml +214 -0
- data/bosh_release/.final_builds/packages/mongodb_node_ng/index.yml +58 -0
- data/bosh_release/.final_builds/packages/mongodb_proxy/index.yml +38 -0
- data/bosh_release/.final_builds/packages/mysql/index.yml +54 -0
- data/bosh_release/.final_builds/packages/mysql55/index.yml +26 -0
- data/bosh_release/.final_builds/packages/mysql_gateway/index.yml +246 -0
- data/bosh_release/.final_builds/packages/mysql_node/index.yml +230 -0
- data/bosh_release/.final_builds/packages/mysql_node_ng/index.yml +62 -0
- data/bosh_release/.final_builds/packages/mysqlclient/index.yml +14 -0
- data/bosh_release/.final_builds/packages/nats/index.yml +34 -0
- data/bosh_release/.final_builds/packages/nginx/index.yml +38 -0
- data/bosh_release/.final_builds/packages/nginx_next/index.yml +6 -0
- data/bosh_release/.final_builds/packages/node/index.yml +10 -0
- data/bosh_release/.final_builds/packages/oauth2_gateway/index.yml +18 -0
- data/bosh_release/.final_builds/packages/opentsdb/index.yml +18 -0
- data/bosh_release/.final_builds/packages/postgres/index.yml +18 -0
- data/bosh_release/.final_builds/packages/postgresql/index.yml +31 -0
- data/bosh_release/.final_builds/packages/postgresql91/index.yml +10 -0
- data/bosh_release/.final_builds/packages/postgresql_gateway/index.yml +178 -0
- data/bosh_release/.final_builds/packages/postgresql_node/index.yml +162 -0
- data/bosh_release/.final_builds/packages/postgresql_node_ng/index.yml +58 -0
- data/bosh_release/.final_builds/packages/rabbit/index.yml +14 -0
- data/bosh_release/.final_builds/packages/rabbit_gateway/index.yml +210 -0
- data/bosh_release/.final_builds/packages/rabbit_node/index.yml +194 -0
- data/bosh_release/.final_builds/packages/rabbit_node_ng/index.yml +58 -0
- data/bosh_release/.final_builds/packages/rabbitmq-2.4/index.yml +6 -0
- data/bosh_release/.final_builds/packages/rabbitmq-2.8/index.yml +6 -0
- data/bosh_release/.final_builds/packages/rabbitmq/index.yml +18 -0
- data/bosh_release/.final_builds/packages/rabbitmq_srs/index.yml +14 -0
- data/bosh_release/.final_builds/packages/rabbitmq_srs_builds/index.yml +10 -0
- data/bosh_release/.final_builds/packages/redis/index.yml +18 -0
- data/bosh_release/.final_builds/packages/redis22/index.yml +6 -0
- data/bosh_release/.final_builds/packages/redis24/index.yml +6 -0
- data/bosh_release/.final_builds/packages/redis26/index.yml +6 -0
- data/bosh_release/.final_builds/packages/redis_gateway/index.yml +230 -0
- data/bosh_release/.final_builds/packages/redis_node/index.yml +218 -0
- data/bosh_release/.final_builds/packages/redis_node_ng/index.yml +62 -0
- data/bosh_release/.final_builds/packages/rootfs_lucid64/index.yml +7 -0
- data/bosh_release/.final_builds/packages/router/index.yml +178 -0
- data/bosh_release/.final_builds/packages/routerv2/index.yml +18 -0
- data/bosh_release/.final_builds/packages/ruby/index.yml +35 -0
- data/bosh_release/.final_builds/packages/ruby_next/index.yml +15 -0
- data/bosh_release/.final_builds/packages/serialization_data_server/index.yml +66 -0
- data/bosh_release/.final_builds/packages/service_broker/index.yml +138 -0
- data/bosh_release/.final_builds/packages/service_utilities/index.yml +34 -0
- data/bosh_release/.final_builds/packages/sqlite/index.yml +14 -0
- data/bosh_release/.final_builds/packages/stager/index.yml +194 -0
- data/bosh_release/.final_builds/packages/syslog_aggregator/index.yml +19 -0
- data/bosh_release/.final_builds/packages/uaa/index.yml +99 -0
- data/bosh_release/.final_builds/packages/vblob/index.yml +22 -0
- data/bosh_release/.final_builds/packages/vblob_gateway/index.yml +106 -0
- data/bosh_release/.final_builds/packages/vblob_node/index.yml +94 -0
- data/bosh_release/.final_builds/packages/vblob_node_ng/index.yml +54 -0
- data/bosh_release/.final_builds/packages/warden/index.yml +107 -0
- data/{spec/assets → bosh_release/config}/.gitkeep +0 -0
- data/bosh_release/config/final.yml +7 -0
- data/{spec/functional → bosh_release/jobs}/.gitkeep +0 -0
- data/{spec/unit → bosh_release/packages}/.gitkeep +0 -0
- data/bosh_release/releases/appcloud-10.yml +232 -0
- data/bosh_release/releases/appcloud-100.yml +512 -0
- data/bosh_release/releases/appcloud-101.yml +523 -0
- data/bosh_release/releases/appcloud-102.yml +523 -0
- data/bosh_release/releases/appcloud-103.yml +532 -0
- data/bosh_release/releases/appcloud-104.yml +541 -0
- data/bosh_release/releases/appcloud-105.yml +547 -0
- data/bosh_release/releases/appcloud-106.yml +547 -0
- data/bosh_release/releases/appcloud-107.yml +547 -0
- data/bosh_release/releases/appcloud-108.yml +547 -0
- data/bosh_release/releases/appcloud-109.yml +612 -0
- data/bosh_release/releases/appcloud-11.yml +232 -0
- data/bosh_release/releases/appcloud-110.yml +612 -0
- data/bosh_release/releases/appcloud-111.yml +743 -0
- data/bosh_release/releases/appcloud-112.yml +617 -0
- data/bosh_release/releases/appcloud-113.yml +627 -0
- data/bosh_release/releases/appcloud-114.yml +627 -0
- data/bosh_release/releases/appcloud-115.yml +627 -0
- data/bosh_release/releases/appcloud-116.yml +627 -0
- data/bosh_release/releases/appcloud-117.yml +637 -0
- data/bosh_release/releases/appcloud-118.yml +637 -0
- data/bosh_release/releases/appcloud-119.yml +642 -0
- data/bosh_release/releases/appcloud-12.yml +232 -0
- data/bosh_release/releases/appcloud-120.yml +791 -0
- data/bosh_release/releases/appcloud-121.yml +791 -0
- data/bosh_release/releases/appcloud-122.yml +799 -0
- data/bosh_release/releases/appcloud-123.yml +799 -0
- data/bosh_release/releases/appcloud-124.yml +810 -0
- data/bosh_release/releases/appcloud-125.yml +810 -0
- data/bosh_release/releases/appcloud-126.yml +810 -0
- data/bosh_release/releases/appcloud-127.yml +816 -0
- data/bosh_release/releases/appcloud-128.yml +812 -0
- data/bosh_release/releases/appcloud-129.yml +811 -0
- data/bosh_release/releases/appcloud-13.yml +232 -0
- data/bosh_release/releases/appcloud-130.yml +811 -0
- data/bosh_release/releases/appcloud-131.yml +811 -0
- data/bosh_release/releases/appcloud-14.yml +232 -0
- data/bosh_release/releases/appcloud-15.yml +232 -0
- data/bosh_release/releases/appcloud-16.yml +232 -0
- data/bosh_release/releases/appcloud-17.yml +232 -0
- data/bosh_release/releases/appcloud-18.yml +232 -0
- data/bosh_release/releases/appcloud-19.yml +256 -0
- data/bosh_release/releases/appcloud-20.yml +256 -0
- data/bosh_release/releases/appcloud-21.yml +256 -0
- data/bosh_release/releases/appcloud-22.yml +286 -0
- data/bosh_release/releases/appcloud-23.yml +294 -0
- data/bosh_release/releases/appcloud-24.yml +297 -0
- data/bosh_release/releases/appcloud-25.yml +297 -0
- data/bosh_release/releases/appcloud-26.yml +297 -0
- data/bosh_release/releases/appcloud-27.yml +297 -0
- data/bosh_release/releases/appcloud-28.yml +297 -0
- data/bosh_release/releases/appcloud-29.yml +297 -0
- data/bosh_release/releases/appcloud-30.yml +299 -0
- data/bosh_release/releases/appcloud-31.yml +299 -0
- data/bosh_release/releases/appcloud-32.yml +299 -0
- data/bosh_release/releases/appcloud-33.yml +299 -0
- data/bosh_release/releases/appcloud-34.yml +299 -0
- data/bosh_release/releases/appcloud-35.yml +299 -0
- data/bosh_release/releases/appcloud-36.yml +299 -0
- data/bosh_release/releases/appcloud-37.yml +332 -0
- data/bosh_release/releases/appcloud-38.yml +343 -0
- data/bosh_release/releases/appcloud-39.yml +360 -0
- data/bosh_release/releases/appcloud-40.yml +360 -0
- data/bosh_release/releases/appcloud-41.yml +367 -0
- data/bosh_release/releases/appcloud-42.yml +372 -0
- data/bosh_release/releases/appcloud-43.yml +372 -0
- data/bosh_release/releases/appcloud-44.yml +372 -0
- data/bosh_release/releases/appcloud-45.yml +381 -0
- data/bosh_release/releases/appcloud-46.yml +381 -0
- data/bosh_release/releases/appcloud-47.yml +381 -0
- data/bosh_release/releases/appcloud-48.yml +381 -0
- data/bosh_release/releases/appcloud-49.yml +381 -0
- data/bosh_release/releases/appcloud-50.yml +381 -0
- data/bosh_release/releases/appcloud-51.yml +381 -0
- data/bosh_release/releases/appcloud-52.yml +389 -0
- data/bosh_release/releases/appcloud-53.yml +389 -0
- data/bosh_release/releases/appcloud-54.yml +397 -0
- data/bosh_release/releases/appcloud-55.yml +402 -0
- data/bosh_release/releases/appcloud-56.yml +428 -0
- data/bosh_release/releases/appcloud-57.yml +428 -0
- data/bosh_release/releases/appcloud-58.yml +428 -0
- data/bosh_release/releases/appcloud-59.yml +428 -0
- data/bosh_release/releases/appcloud-60.yml +428 -0
- data/bosh_release/releases/appcloud-61.yml +433 -0
- data/bosh_release/releases/appcloud-62.yml +433 -0
- data/bosh_release/releases/appcloud-63.yml +428 -0
- data/bosh_release/releases/appcloud-64.yml +451 -0
- data/bosh_release/releases/appcloud-65.yml +451 -0
- data/bosh_release/releases/appcloud-66.yml +451 -0
- data/bosh_release/releases/appcloud-67.yml +451 -0
- data/bosh_release/releases/appcloud-68.yml +460 -0
- data/bosh_release/releases/appcloud-69.yml +460 -0
- data/bosh_release/releases/appcloud-70.yml +460 -0
- data/bosh_release/releases/appcloud-71.yml +442 -0
- data/bosh_release/releases/appcloud-72.yml +442 -0
- data/bosh_release/releases/appcloud-73.yml +442 -0
- data/bosh_release/releases/appcloud-74.yml +442 -0
- data/bosh_release/releases/appcloud-75.yml +450 -0
- data/bosh_release/releases/appcloud-76.yml +450 -0
- data/bosh_release/releases/appcloud-77.yml +473 -0
- data/bosh_release/releases/appcloud-78.yml +473 -0
- data/bosh_release/releases/appcloud-79.yml +473 -0
- data/bosh_release/releases/appcloud-80.yml +473 -0
- data/bosh_release/releases/appcloud-81.yml +473 -0
- data/bosh_release/releases/appcloud-82.yml +473 -0
- data/bosh_release/releases/appcloud-83.yml +468 -0
- data/bosh_release/releases/appcloud-84.yml +478 -0
- data/bosh_release/releases/appcloud-85.yml +478 -0
- data/bosh_release/releases/appcloud-86.yml +478 -0
- data/bosh_release/releases/appcloud-87.yml +488 -0
- data/bosh_release/releases/appcloud-88.yml +488 -0
- data/bosh_release/releases/appcloud-89.yml +488 -0
- data/bosh_release/releases/appcloud-90.yml +488 -0
- data/bosh_release/releases/appcloud-91.yml +493 -0
- data/bosh_release/releases/appcloud-92.yml +493 -0
- data/bosh_release/releases/appcloud-93.yml +493 -0
- data/bosh_release/releases/appcloud-94.yml +493 -0
- data/bosh_release/releases/appcloud-95.yml +502 -0
- data/bosh_release/releases/appcloud-96.yml +502 -0
- data/bosh_release/releases/appcloud-97.yml +502 -0
- data/bosh_release/releases/appcloud-98.yml +512 -0
- data/bosh_release/releases/appcloud-99.yml +512 -0
- data/bosh_release/releases/cf-release-132.yml +305 -0
- data/bosh_release/releases/index.yml +266 -0
- data/bosh_release/src/.gitkeep +0 -0
- data/lib/bosh/cli/commands/cf.rb +173 -560
- data/lib/bosh/cloudfoundry.rb +4 -0
- data/lib/bosh/cloudfoundry/deployment_attributes.rb +124 -0
- data/lib/bosh/cloudfoundry/release_versioned_template.rb +48 -0
- data/spec/plugin_spec.rb +115 -0
- data/spec/release_versioned_template_spec.rb +12 -0
- data/spec/spec_helper.rb +33 -9
- data/templates/README.md +21 -0
- data/templates/v132/aws/dev/deployment_file.yml.erb +372 -0
- data/templates/v132/aws/dev/spec +6 -0
- data/templates/v132/openstack/dev/deployment_file.yml.erb +372 -0
- data/templates/v132/openstack/dev/spec +6 -0
- metadata +326 -102
- data/config/defaults.yml +0 -6
- data/docs/BOSH-cf-initial-create.png +0 -0
- data/docs/BOSH-cf-scaled.png +0 -0
- data/docs/concept.md +0 -141
- data/lib/bosh-cloudfoundry.rb +0 -33
- data/lib/bosh-cloudfoundry/bosh_release_manager.rb +0 -156
- data/lib/bosh-cloudfoundry/config.rb +0 -6
- data/lib/bosh-cloudfoundry/config/common_config.rb +0 -27
- data/lib/bosh-cloudfoundry/config/dea_config.rb +0 -161
- data/lib/bosh-cloudfoundry/config/microbosh_config.rb +0 -119
- data/lib/bosh-cloudfoundry/config/postgresql_service_config.rb +0 -185
- data/lib/bosh-cloudfoundry/config/redis_service_config.rb +0 -179
- data/lib/bosh-cloudfoundry/config/system_config.rb +0 -66
- data/lib/bosh-cloudfoundry/config_options.rb +0 -403
- data/lib/bosh-cloudfoundry/providers.rb +0 -22
- data/lib/bosh-cloudfoundry/providers/aws.rb +0 -75
- data/lib/bosh-cloudfoundry/providers/openstack.rb +0 -69
- data/lib/bosh-cloudfoundry/system_deployment_manifest_renderer.rb +0 -296
- data/lib/bosh-cloudfoundry/version.rb +0 -5
- data/spec/assets/cf-release/jobs/cloud_controller/templates/runtimes.yml +0 -150
- data/spec/assets/deployments/aws-core-1-m1.small-free-redis.yml +0 -226
- data/spec/assets/deployments/aws-core-1-m1.xlarge-free-postgresql-2-m1.small-free-postgresql.yml +0 -253
- data/spec/assets/deployments/aws-core-2-m1.xlarge-dea.yml +0 -200
- data/spec/assets/deployments/aws-core-only.yml +0 -183
- data/spec/assets/deployments/aws-core-with-nfs.yml +0 -192
- data/spec/assets/deployments/openstack-core-only.yml +0 -204
- data/spec/unit/bosh_release_manager_spec.rb +0 -67
- data/spec/unit/cf_command_spec.rb +0 -307
- data/spec/unit/config/common_config_spec.rb +0 -21
- data/spec/unit/config/dea_config_spec.rb +0 -95
- data/spec/unit/config/microbosh_config_spec.rb +0 -11
- data/spec/unit/config/postgresql_service_config_spec.rb +0 -103
- data/spec/unit/config/redis_service_config_spec.rb +0 -103
- data/spec/unit/config/system_config_spec.rb +0 -29
- data/spec/unit/config_options_spec.rb +0 -60
- data/spec/unit/system_deployment_manifest_renderer_spec.rb +0 -99
@@ -1,119 +0,0 @@
|
|
1
|
-
# Copyright (c) 2012-2013 Stark & Wayne, LLC
|
2
|
-
|
3
|
-
module Bosh; module CloudFoundry; module Config; end; end; end
|
4
|
-
|
5
|
-
# Helper to create a Fog::Connection based on auto-discovery
|
6
|
-
# of the CPI credentials of a microbosh's local configuration.
|
7
|
-
#
|
8
|
-
# If ~/.bosh_deployer_config exists, it contains the location of
|
9
|
-
# the `micro_bosh.yml` for each microbosh.
|
10
|
-
class Bosh::CloudFoundry::Config::MicroboshConfig
|
11
|
-
attr_reader :deployed_microboshes, :target_bosh_host
|
12
|
-
|
13
|
-
def initialize(target_bosh_host)
|
14
|
-
@target_bosh_host = target_bosh_host
|
15
|
-
end
|
16
|
-
|
17
|
-
def valid?
|
18
|
-
validate_target_bosh_host &&
|
19
|
-
validate_bosh_deployer_config
|
20
|
-
end
|
21
|
-
|
22
|
-
def fog_compute
|
23
|
-
return nil unless valid?
|
24
|
-
@fog_compute ||= Fog::Compute.new(fog_connection_properties)
|
25
|
-
end
|
26
|
-
|
27
|
-
def fog_connection_properties
|
28
|
-
if aws?
|
29
|
-
ec2_endpoint = provider_credentials["ec2_endpoint"]
|
30
|
-
if ec2_endpoint =~ /ec2\.([\w-]+)\.amazonaws\.com/
|
31
|
-
region = $1
|
32
|
-
else
|
33
|
-
raise "please add support to extra 'region' from #{ec2_endpoint}"
|
34
|
-
end
|
35
|
-
{
|
36
|
-
provider: "aws",
|
37
|
-
region: region,
|
38
|
-
aws_access_key_id: provider_credentials["access_key_id"],
|
39
|
-
aws_secret_access_key: provider_credentials["secret_access_key"]
|
40
|
-
}
|
41
|
-
elsif openstack?
|
42
|
-
{
|
43
|
-
provider: "openstack",
|
44
|
-
openstack_username: provider_credentials["username"],
|
45
|
-
openstack_api_key: provider_credentials["api_key"],
|
46
|
-
openstack_tenant: provider_credentials["tenant"],
|
47
|
-
openstack_auth_url: provider_credentials["auth_url"],
|
48
|
-
openstack_region: provider_credentials["region"]
|
49
|
-
}
|
50
|
-
else
|
51
|
-
raise "please implement #fog_credentials for #{bosh_provider}"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def bosh_provider
|
56
|
-
cloud_config["plugin"]
|
57
|
-
end
|
58
|
-
|
59
|
-
def provider_credentials
|
60
|
-
cloud_config["properties"][bosh_provider]
|
61
|
-
end
|
62
|
-
|
63
|
-
def aws?
|
64
|
-
bosh_provider == "aws"
|
65
|
-
end
|
66
|
-
|
67
|
-
def openstack?
|
68
|
-
bosh_provider == "openstack"
|
69
|
-
end
|
70
|
-
|
71
|
-
# micro_bosh.yml looks like:
|
72
|
-
#
|
73
|
-
# cloud:
|
74
|
-
# plugin: aws
|
75
|
-
# properties:
|
76
|
-
# aws:
|
77
|
-
# access_key_id: ACCESS
|
78
|
-
# secret_access_key: SECRET
|
79
|
-
# ec2_endpoint: ec2.us-east-1.amazonaws.com
|
80
|
-
# default_security_groups:
|
81
|
-
# - microbosh-aws-us-east-1
|
82
|
-
# default_key_name: microbosh-aws-us-east-1
|
83
|
-
# ec2_private_key: /home/vcap/.ssh/microbosh-aws-us-east-1.pem
|
84
|
-
def cloud_config
|
85
|
-
microbosh_config["cloud"]
|
86
|
-
end
|
87
|
-
|
88
|
-
def microbosh_config
|
89
|
-
YAML.load_file(target_microbosh_config_path)
|
90
|
-
end
|
91
|
-
|
92
|
-
# ensure input value is a valid URI
|
93
|
-
def validate_target_bosh_host
|
94
|
-
URI.parse(target_bosh_host)
|
95
|
-
true
|
96
|
-
rescue
|
97
|
-
false
|
98
|
-
end
|
99
|
-
|
100
|
-
# ensure there is a ~/.bosh_deployer_config
|
101
|
-
def validate_bosh_deployer_config
|
102
|
-
return false unless File.exist? bosh_deployer_config
|
103
|
-
@deployed_microboshes = YAML.load_file(bosh_deployer_config)
|
104
|
-
return false unless target_microbosh_config_path
|
105
|
-
true
|
106
|
-
end
|
107
|
-
|
108
|
-
def bosh_deployer_config
|
109
|
-
File.expand_path("~/.bosh_deployer_config")
|
110
|
-
end
|
111
|
-
|
112
|
-
# .bosh_deployer_config looks like:
|
113
|
-
#
|
114
|
-
# deployment:
|
115
|
-
# http://1.2.3.4:25555: /path/to/micro_bosh.yml
|
116
|
-
def target_microbosh_config_path
|
117
|
-
deployed_microboshes["deployment"][target_bosh_host]
|
118
|
-
end
|
119
|
-
end
|
@@ -1,185 +0,0 @@
|
|
1
|
-
# Copyright (c) 2012-2013 Stark & Wayne, LLC
|
2
|
-
|
3
|
-
module Bosh; module CloudFoundry; module Config; end; end; end
|
4
|
-
|
5
|
-
class Bosh::CloudFoundry::Config::PostgresqlServiceConfig
|
6
|
-
|
7
|
-
def initialize(system_config)
|
8
|
-
@system_config = system_config
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.build_from_system_config(system_config)
|
12
|
-
system_config.postgresql ||= []
|
13
|
-
new(system_config)
|
14
|
-
end
|
15
|
-
|
16
|
-
def config
|
17
|
-
@system_config.postgresql
|
18
|
-
end
|
19
|
-
|
20
|
-
# @return [Boolean] true if there are any postgresql nodes to be provisioned
|
21
|
-
def any_service_nodes?
|
22
|
-
total_service_nodes_count > 0
|
23
|
-
end
|
24
|
-
|
25
|
-
def total_service_nodes_count
|
26
|
-
config.inject(0) { |total, cluster| total + (cluster["count"].to_i) }
|
27
|
-
end
|
28
|
-
|
29
|
-
def bosh_provider_name
|
30
|
-
@system_config.bosh_provider
|
31
|
-
end
|
32
|
-
|
33
|
-
def update_cluster_count_for_flavor(server_count, server_flavor, server_plan="free")
|
34
|
-
if cluster = find_cluster_for_flavor(server_flavor.to_s)
|
35
|
-
cluster["count"] = server_count
|
36
|
-
else
|
37
|
-
config << {"count" => server_count, "flavor" => server_flavor.to_s, "plan" => server_plan}
|
38
|
-
end
|
39
|
-
self.save
|
40
|
-
end
|
41
|
-
|
42
|
-
# @return [Hash] the Hash from @system_config for the requested flavor
|
43
|
-
# nil if its not currently a requested flavor
|
44
|
-
def find_cluster_for_flavor(server_flavor)
|
45
|
-
@system_config.postgresql.find { |cl| cl["flavor"] == server_flavor }
|
46
|
-
end
|
47
|
-
|
48
|
-
def save
|
49
|
-
@system_config.save
|
50
|
-
end
|
51
|
-
|
52
|
-
# resource_pool name for a cluster
|
53
|
-
# cluster_name like 'postgresql_m1_xlarge_free'
|
54
|
-
def cluster_name(cluster)
|
55
|
-
server_flavor = cluster["flavor"]
|
56
|
-
server_plan = cluster["plan"] || "free"
|
57
|
-
cluster_name = "postgresql_#{server_flavor}_#{server_plan}"
|
58
|
-
cluster_name.gsub!(/\W+/, '_')
|
59
|
-
cluster_name
|
60
|
-
end
|
61
|
-
|
62
|
-
# Adds "postgresql_gateway" to colocated "core" job
|
63
|
-
def add_core_jobs_to_manifest(manifest)
|
64
|
-
if any_service_nodes?
|
65
|
-
@core_job ||= manifest["jobs"].find { |job| job["name"] == "core" }
|
66
|
-
@core_job["template"] << "postgresql_gateway"
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
# Adds resource pools to the target manifest, if server_count > 0
|
71
|
-
#
|
72
|
-
# - name: postgresql
|
73
|
-
# network: default
|
74
|
-
# size: 2
|
75
|
-
# stemcell:
|
76
|
-
# name: bosh-stemcell
|
77
|
-
# version: 0.7.0
|
78
|
-
# cloud_properties:
|
79
|
-
# instance_type: m1.xlarge
|
80
|
-
def add_resource_pools_to_manifest(manifest)
|
81
|
-
if any_service_nodes?
|
82
|
-
config.each do |cluster|
|
83
|
-
server_count = cluster["count"]
|
84
|
-
server_flavor = cluster["flavor"]
|
85
|
-
resource_pool = {
|
86
|
-
"name" => cluster_name(cluster),
|
87
|
-
"network" => "default",
|
88
|
-
"size" => server_count,
|
89
|
-
"stemcell" => {
|
90
|
-
"name" => @system_config.stemcell_name,
|
91
|
-
"version" => @system_config.stemcell_version
|
92
|
-
},
|
93
|
-
# TODO how to create "cloud_properties" per-provider?
|
94
|
-
"cloud_properties" => {
|
95
|
-
"instance_type" => server_flavor
|
96
|
-
},
|
97
|
-
"persistent_disk" => 16192
|
98
|
-
}
|
99
|
-
manifest["resource_pools"] << resource_pool
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
# Jobs to add to the target manifest
|
105
|
-
#
|
106
|
-
# - name: postgresql
|
107
|
-
# template:
|
108
|
-
# - postgresql
|
109
|
-
# instances: 2
|
110
|
-
# resource_pool: postgresql
|
111
|
-
# networks:
|
112
|
-
# - name: default
|
113
|
-
# default:
|
114
|
-
# - dns
|
115
|
-
# - gateway
|
116
|
-
def add_jobs_to_manifest(manifest)
|
117
|
-
if any_service_nodes?
|
118
|
-
config.each do |cluster|
|
119
|
-
server_count = cluster["count"]
|
120
|
-
server_flavor = cluster["flavor"]
|
121
|
-
job = {
|
122
|
-
"name" => cluster_name(cluster),
|
123
|
-
"template" => ["postgresql_node"],
|
124
|
-
"instances" => server_count,
|
125
|
-
"resource_pool" => cluster_name(cluster),
|
126
|
-
# TODO are these AWS-specific networks?
|
127
|
-
"networks" => [{
|
128
|
-
"name" => "default",
|
129
|
-
"default" => ["dns", "gateway"]
|
130
|
-
}],
|
131
|
-
"persistent_disk" => 16192
|
132
|
-
}
|
133
|
-
manifest["jobs"] << job
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
# Add extra configuration properties into the manifest
|
139
|
-
# for the gateway, node, and service plans
|
140
|
-
def merge_manifest_properties(manifest)
|
141
|
-
if any_service_nodes?
|
142
|
-
manifest["properties"]["postgresql_gateway"] = {
|
143
|
-
"admin_user"=>"psql_admin",
|
144
|
-
"admin_passwd_hash"=>nil,
|
145
|
-
"token"=>"TOKEN",
|
146
|
-
"supported_versions"=>["9.0"],
|
147
|
-
"version_aliases"=>{"current"=>"9.0"}
|
148
|
-
}
|
149
|
-
manifest["properties"]["postgresql_node"] = {
|
150
|
-
"admin_user"=>"psql_admin",
|
151
|
-
"admin_passwd_hash"=>nil,
|
152
|
-
"available_storage"=>2048,
|
153
|
-
"max_db_size"=>256,
|
154
|
-
"max_long_tx"=>30,
|
155
|
-
"supported_versions"=>["9.0"],
|
156
|
-
"default_version"=>"9.0"
|
157
|
-
}
|
158
|
-
manifest["properties"]["service_plans"]["postgresql"] = {
|
159
|
-
"free"=>
|
160
|
-
{"job_management"=>{"high_water"=>1400, "low_water"=>100},
|
161
|
-
"configuration"=>
|
162
|
-
{"capacity"=>200,
|
163
|
-
"max_db_size"=>128,
|
164
|
-
"max_long_query"=>3,
|
165
|
-
"max_long_tx"=>30,
|
166
|
-
"max_clients"=>20,
|
167
|
-
"backup"=>{"enable"=>true}}}
|
168
|
-
}
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
# @return [Integer] the ballpark ram for postgresql, BOSH agent, etc
|
173
|
-
def preallocated_ram
|
174
|
-
300
|
175
|
-
end
|
176
|
-
|
177
|
-
def ram_for_server_flavor
|
178
|
-
provider.ram_for_server_flavor(server_flavor)
|
179
|
-
end
|
180
|
-
|
181
|
-
# a helper object for the target BOSH provider
|
182
|
-
def provider
|
183
|
-
@provider ||= Bosh::CloudFoundry::Providers.for_bosh_provider_name(system_config)
|
184
|
-
end
|
185
|
-
end
|
@@ -1,179 +0,0 @@
|
|
1
|
-
# Copyright (c) 2012-2013 Stark & Wayne, LLC
|
2
|
-
|
3
|
-
module Bosh; module CloudFoundry; module Config; end; end; end
|
4
|
-
|
5
|
-
class Bosh::CloudFoundry::Config::RedisServiceConfig
|
6
|
-
|
7
|
-
def initialize(system_config)
|
8
|
-
@system_config = system_config
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.build_from_system_config(system_config)
|
12
|
-
system_config.redis ||= []
|
13
|
-
new(system_config)
|
14
|
-
end
|
15
|
-
|
16
|
-
def config
|
17
|
-
@system_config.redis
|
18
|
-
end
|
19
|
-
|
20
|
-
# @return [Boolean] true if there are any redis nodes to be provisioned
|
21
|
-
def any_service_nodes?
|
22
|
-
total_service_nodes_count > 0
|
23
|
-
end
|
24
|
-
|
25
|
-
def total_service_nodes_count
|
26
|
-
config.inject(0) { |total, cluster| total + (cluster["count"].to_i) }
|
27
|
-
end
|
28
|
-
|
29
|
-
def bosh_provider_name
|
30
|
-
@system_config.bosh_provider
|
31
|
-
end
|
32
|
-
|
33
|
-
# Used by the CLI cf.rb to update +system_config+
|
34
|
-
def update_cluster_count_for_flavor(server_count, server_flavor, server_plan="free")
|
35
|
-
if cluster = find_cluster_for_flavor(server_flavor.to_s)
|
36
|
-
cluster["count"] = server_count
|
37
|
-
else
|
38
|
-
config << {"count" => server_count, "flavor" => server_flavor.to_s, "plan" => server_plan}
|
39
|
-
end
|
40
|
-
self.save
|
41
|
-
end
|
42
|
-
|
43
|
-
# @return [Hash] the Hash from @system_config for the requested flavor
|
44
|
-
# nil if its not currently a requested flavor
|
45
|
-
def find_cluster_for_flavor(server_flavor)
|
46
|
-
@system_config.redis.find { |cl| cl["flavor"] == server_flavor }
|
47
|
-
end
|
48
|
-
|
49
|
-
def save
|
50
|
-
@system_config.save
|
51
|
-
end
|
52
|
-
|
53
|
-
# resource_pool name for a cluster
|
54
|
-
# cluster_name like 'redis_m1_xlarge_free'
|
55
|
-
def cluster_name(cluster)
|
56
|
-
server_flavor = cluster["flavor"]
|
57
|
-
server_plan = cluster["plan"] || "free"
|
58
|
-
cluster_name = "redis_#{server_flavor}_#{server_plan}"
|
59
|
-
cluster_name.gsub!(/\W+/, '_')
|
60
|
-
cluster_name
|
61
|
-
end
|
62
|
-
|
63
|
-
# Adds "redis_gateway" to colocated "core" job
|
64
|
-
def add_core_jobs_to_manifest(manifest)
|
65
|
-
if any_service_nodes?
|
66
|
-
@core_job ||= manifest["jobs"].find { |job| job["name"] == "core" }
|
67
|
-
@core_job["template"] << "redis_gateway"
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
# Adds resource pools to the target manifest, if server_count > 0
|
72
|
-
#
|
73
|
-
# - name: redis
|
74
|
-
# network: default
|
75
|
-
# size: 2
|
76
|
-
# stemcell:
|
77
|
-
# name: bosh-stemcell
|
78
|
-
# version: 0.7.0
|
79
|
-
# cloud_properties:
|
80
|
-
# instance_type: m1.xlarge
|
81
|
-
def add_resource_pools_to_manifest(manifest)
|
82
|
-
if any_service_nodes?
|
83
|
-
config.each do |cluster|
|
84
|
-
server_count = cluster["count"]
|
85
|
-
server_flavor = cluster["flavor"]
|
86
|
-
resource_pool = {
|
87
|
-
"name" => cluster_name(cluster),
|
88
|
-
"network" => "default",
|
89
|
-
"size" => server_count,
|
90
|
-
"stemcell" => {
|
91
|
-
"name" => @system_config.stemcell_name,
|
92
|
-
"version" => @system_config.stemcell_version
|
93
|
-
},
|
94
|
-
# TODO how to create "cloud_properties" per-provider?
|
95
|
-
"cloud_properties" => {
|
96
|
-
"instance_type" => server_flavor
|
97
|
-
},
|
98
|
-
"persistent_disk" => @system_config.common_persistent_disk
|
99
|
-
}
|
100
|
-
manifest["resource_pools"] << resource_pool
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
# Jobs to add to the target manifest
|
106
|
-
#
|
107
|
-
# - name: redis
|
108
|
-
# template:
|
109
|
-
# - redis
|
110
|
-
# instances: 2
|
111
|
-
# resource_pool: redis
|
112
|
-
# networks:
|
113
|
-
# - name: default
|
114
|
-
# default:
|
115
|
-
# - dns
|
116
|
-
# - gateway
|
117
|
-
def add_jobs_to_manifest(manifest)
|
118
|
-
if any_service_nodes?
|
119
|
-
config.each do |cluster|
|
120
|
-
server_count = cluster["count"]
|
121
|
-
server_flavor = cluster["flavor"]
|
122
|
-
job = {
|
123
|
-
"name" => cluster_name(cluster),
|
124
|
-
"template" => ["redis_node"],
|
125
|
-
"instances" => server_count,
|
126
|
-
"resource_pool" => cluster_name(cluster),
|
127
|
-
# TODO are these AWS-specific networks?
|
128
|
-
"networks" => [{
|
129
|
-
"name" => "default",
|
130
|
-
"default" => ["dns", "gateway"]
|
131
|
-
}],
|
132
|
-
"persistent_disk" => @system_config.common_persistent_disk
|
133
|
-
}
|
134
|
-
manifest["jobs"] << job
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
# Add extra configuration properties into the manifest
|
140
|
-
# for the gateway, node, and service plans
|
141
|
-
def merge_manifest_properties(manifest)
|
142
|
-
if any_service_nodes?
|
143
|
-
manifest["properties"]["redis_gateway"] = {
|
144
|
-
"token"=>"TOKEN",
|
145
|
-
"supported_versions"=>["2.2"],
|
146
|
-
"version_aliases"=>{"current"=>"2.2"}
|
147
|
-
}
|
148
|
-
manifest["properties"]["redis_node"] = {
|
149
|
-
"available_memory"=>256,
|
150
|
-
"supported_versions"=>["2.2"],
|
151
|
-
"default_version"=>"2.2"
|
152
|
-
}
|
153
|
-
manifest["properties"]["service_plans"]["redis"] = {
|
154
|
-
"free"=>
|
155
|
-
{"job_management"=>{"high_water"=>1400, "low_water"=>100},
|
156
|
-
"configuration"=>
|
157
|
-
{"capacity"=>200,
|
158
|
-
"max_memory"=>16,
|
159
|
-
"max_swap"=>32,
|
160
|
-
"max_clients"=>500,
|
161
|
-
"backup"=>{"enable"=>true}}}
|
162
|
-
}
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
# @return [Integer] the ballpark ram for redis, BOSH agent, etc
|
167
|
-
def preallocated_ram
|
168
|
-
300
|
169
|
-
end
|
170
|
-
|
171
|
-
def ram_for_server_flavor
|
172
|
-
provider.ram_for_server_flavor(server_flavor)
|
173
|
-
end
|
174
|
-
|
175
|
-
# a helper object for the target BOSH provider
|
176
|
-
def provider
|
177
|
-
@provider ||= Bosh::CloudFoundry::Providers.for_bosh_provider_name(system_config)
|
178
|
-
end
|
179
|
-
end
|