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.
Files changed (351) hide show
  1. data/.gitignore +4 -1
  2. data/.rspec +1 -1
  3. data/.travis.yml +9 -3
  4. data/ChangeLog.md +12 -47
  5. data/Gemfile +11 -5
  6. data/Guardfile +4 -7
  7. data/LICENSE.txt +2 -2
  8. data/README.md +62 -178
  9. data/Rakefile +40 -16
  10. data/bosh-cloudfoundry.gemspec +19 -27
  11. data/bosh_release/.final_builds/.gitattributes +1 -0
  12. data/bosh_release/.final_builds/jobs/acm/index.yml +10 -0
  13. data/bosh_release/.final_builds/jobs/atmos_gateway/index.yml +58 -0
  14. data/bosh_release/.final_builds/jobs/backup_manager/index.yml +66 -0
  15. data/bosh_release/.final_builds/jobs/ccdb/index.yml +6 -0
  16. data/bosh_release/.final_builds/jobs/ccdb_postgres/index.yml +31 -0
  17. data/bosh_release/.final_builds/jobs/cloud_controller/index.yml +230 -0
  18. data/bosh_release/.final_builds/jobs/cloud_controller_ng/index.yml +31 -0
  19. data/bosh_release/.final_builds/jobs/collector/index.yml +27 -0
  20. data/bosh_release/.final_builds/jobs/dashboard/index.yml +43 -0
  21. data/bosh_release/.final_builds/jobs/dea/index.yml +86 -0
  22. data/bosh_release/.final_builds/jobs/dea_next/index.yml +51 -0
  23. data/bosh_release/.final_builds/jobs/debian_nfs_server/index.yml +30 -0
  24. data/bosh_release/.final_builds/jobs/filesystem_gateway/index.yml +54 -0
  25. data/bosh_release/.final_builds/jobs/gorouter/index.yml +11 -0
  26. data/bosh_release/.final_builds/jobs/hbase_master/index.yml +6 -0
  27. data/bosh_release/.final_builds/jobs/hbase_slave/index.yml +10 -0
  28. data/bosh_release/.final_builds/jobs/health_manager/index.yml +82 -0
  29. data/bosh_release/.final_builds/jobs/health_manager_next/index.yml +31 -0
  30. data/bosh_release/.final_builds/jobs/login/index.yml +47 -0
  31. data/bosh_release/.final_builds/jobs/marketplace_gateway/index.yml +38 -0
  32. data/bosh_release/.final_builds/jobs/memcached_gateway/index.yml +50 -0
  33. data/bosh_release/.final_builds/jobs/memcached_node/index.yml +22 -0
  34. data/bosh_release/.final_builds/jobs/memcached_node_ng/index.yml +50 -0
  35. data/bosh_release/.final_builds/jobs/micro/index.yml +374 -0
  36. data/bosh_release/.final_builds/jobs/mongodb_gateway/index.yml +126 -0
  37. data/bosh_release/.final_builds/jobs/mongodb_node/index.yml +110 -0
  38. data/bosh_release/.final_builds/jobs/mongodb_node_ng/index.yml +66 -0
  39. data/bosh_release/.final_builds/jobs/mysql_gateway/index.yml +110 -0
  40. data/bosh_release/.final_builds/jobs/mysql_node/index.yml +126 -0
  41. data/bosh_release/.final_builds/jobs/mysql_node_ng/index.yml +58 -0
  42. data/bosh_release/.final_builds/jobs/nats/index.yml +43 -0
  43. data/bosh_release/.final_builds/jobs/oauth2_gateway/index.yml +10 -0
  44. data/bosh_release/.final_builds/jobs/opentsdb/index.yml +62 -0
  45. data/bosh_release/.final_builds/jobs/postgres/index.yml +19 -0
  46. data/bosh_release/.final_builds/jobs/postgresql_gateway/index.yml +106 -0
  47. data/bosh_release/.final_builds/jobs/postgresql_node/index.yml +90 -0
  48. data/bosh_release/.final_builds/jobs/postgresql_node_ng/index.yml +62 -0
  49. data/bosh_release/.final_builds/jobs/rabbit_gateway/index.yml +82 -0
  50. data/bosh_release/.final_builds/jobs/rabbit_node/index.yml +86 -0
  51. data/bosh_release/.final_builds/jobs/rabbit_node_ng/index.yml +58 -0
  52. data/bosh_release/.final_builds/jobs/rabbitmq_srs_gateway/index.yml +22 -0
  53. data/bosh_release/.final_builds/jobs/rabbitmq_srs_node/index.yml +18 -0
  54. data/bosh_release/.final_builds/jobs/rabbitmq_srs_service/index.yml +22 -0
  55. data/bosh_release/.final_builds/jobs/redis_gateway/index.yml +102 -0
  56. data/bosh_release/.final_builds/jobs/redis_node/index.yml +98 -0
  57. data/bosh_release/.final_builds/jobs/redis_node_ng/index.yml +58 -0
  58. data/bosh_release/.final_builds/jobs/router/index.yml +78 -0
  59. data/bosh_release/.final_builds/jobs/router_next/index.yml +38 -0
  60. data/bosh_release/.final_builds/jobs/routerv2/index.yml +30 -0
  61. data/bosh_release/.final_builds/jobs/serialization_data_server/index.yml +38 -0
  62. data/bosh_release/.final_builds/jobs/service_broker/index.yml +34 -0
  63. data/bosh_release/.final_builds/jobs/service_utilities/index.yml +14 -0
  64. data/bosh_release/.final_builds/jobs/stager/index.yml +94 -0
  65. data/bosh_release/.final_builds/jobs/syslog_aggregator/index.yml +43 -0
  66. data/bosh_release/.final_builds/jobs/uaa/index.yml +111 -0
  67. data/bosh_release/.final_builds/jobs/vblob_gateway/index.yml +62 -0
  68. data/bosh_release/.final_builds/jobs/vblob_node/index.yml +34 -0
  69. data/bosh_release/.final_builds/jobs/vblob_node_ng/index.yml +54 -0
  70. data/bosh_release/.final_builds/jobs/vcap_redis/index.yml +26 -0
  71. data/bosh_release/.final_builds/jobs/warden/index.yml +30 -0
  72. data/bosh_release/.final_builds/packages/acm/index.yml +46 -0
  73. data/bosh_release/.final_builds/packages/atmos_gateway/index.yml +146 -0
  74. data/bosh_release/.final_builds/packages/backup_manager/index.yml +158 -0
  75. data/bosh_release/.final_builds/packages/bandwidth_proxy/index.yml +10 -0
  76. data/bosh_release/.final_builds/packages/buildpack_cache/index.yml +7 -0
  77. data/bosh_release/.final_builds/packages/cloud_controller/index.yml +306 -0
  78. data/bosh_release/.final_builds/packages/cloud_controller_ng/index.yml +55 -0
  79. data/bosh_release/.final_builds/packages/collector/index.yml +35 -0
  80. data/bosh_release/.final_builds/packages/common/index.yml +22 -0
  81. data/bosh_release/.final_builds/packages/dashboard/index.yml +59 -0
  82. data/bosh_release/.final_builds/packages/daylimit/index.yml +22 -0
  83. data/bosh_release/.final_builds/packages/dea/index.yml +214 -0
  84. data/bosh_release/.final_builds/packages/dea_jvm/index.yml +19 -0
  85. data/bosh_release/.final_builds/packages/dea_jvm7/index.yml +6 -0
  86. data/bosh_release/.final_builds/packages/dea_next/index.yml +67 -0
  87. data/bosh_release/.final_builds/packages/dea_node/index.yml +18 -0
  88. data/bosh_release/.final_builds/packages/dea_node04/index.yml +14 -0
  89. data/bosh_release/.final_builds/packages/dea_node06/index.yml +14 -0
  90. data/bosh_release/.final_builds/packages/dea_node08/index.yml +6 -0
  91. data/bosh_release/.final_builds/packages/dea_ruby18/index.yml +34 -0
  92. data/bosh_release/.final_builds/packages/dea_ruby19/index.yml +30 -0
  93. data/bosh_release/.final_builds/packages/dea_seed/index.yml +34 -0
  94. data/bosh_release/.final_builds/packages/dea_transition/index.yml +18 -0
  95. data/bosh_release/.final_builds/packages/debian_nfs_server/index.yml +14 -0
  96. data/bosh_release/.final_builds/packages/erlang/index.yml +14 -0
  97. data/bosh_release/.final_builds/packages/filesystem_gateway/index.yml +114 -0
  98. data/bosh_release/.final_builds/packages/git/index.yml +6 -0
  99. data/bosh_release/.final_builds/packages/golang/index.yml +11 -0
  100. data/bosh_release/.final_builds/packages/gorouter/index.yml +19 -0
  101. data/bosh_release/.final_builds/packages/hadoop/index.yml +6 -0
  102. data/bosh_release/.final_builds/packages/hbase/index.yml +18 -0
  103. data/bosh_release/.final_builds/packages/health_manager_next/index.yml +75 -0
  104. data/bosh_release/.final_builds/packages/imagemagick/index.yml +10 -0
  105. data/bosh_release/.final_builds/packages/insight_agent/index.yml +10 -0
  106. data/bosh_release/.final_builds/packages/libpq/index.yml +23 -0
  107. data/bosh_release/.final_builds/packages/libyaml/index.yml +7 -0
  108. data/bosh_release/.final_builds/packages/login/index.yml +55 -0
  109. data/bosh_release/.final_builds/packages/marketplace/index.yml +58 -0
  110. data/bosh_release/.final_builds/packages/memcached/index.yml +6 -0
  111. data/bosh_release/.final_builds/packages/memcached_gateway/index.yml +102 -0
  112. data/bosh_release/.final_builds/packages/memcached_node/index.yml +90 -0
  113. data/bosh_release/.final_builds/packages/memcached_node_ng/index.yml +58 -0
  114. data/bosh_release/.final_builds/packages/micro/index.yml +22 -0
  115. data/bosh_release/.final_builds/packages/mongodb/index.yml +22 -0
  116. data/bosh_release/.final_builds/packages/mongodb18/index.yml +6 -0
  117. data/bosh_release/.final_builds/packages/mongodb20/index.yml +11 -0
  118. data/bosh_release/.final_builds/packages/mongodb22/index.yml +6 -0
  119. data/bosh_release/.final_builds/packages/mongodb_gateway/index.yml +226 -0
  120. data/bosh_release/.final_builds/packages/mongodb_node/index.yml +214 -0
  121. data/bosh_release/.final_builds/packages/mongodb_node_ng/index.yml +58 -0
  122. data/bosh_release/.final_builds/packages/mongodb_proxy/index.yml +38 -0
  123. data/bosh_release/.final_builds/packages/mysql/index.yml +54 -0
  124. data/bosh_release/.final_builds/packages/mysql55/index.yml +26 -0
  125. data/bosh_release/.final_builds/packages/mysql_gateway/index.yml +246 -0
  126. data/bosh_release/.final_builds/packages/mysql_node/index.yml +230 -0
  127. data/bosh_release/.final_builds/packages/mysql_node_ng/index.yml +62 -0
  128. data/bosh_release/.final_builds/packages/mysqlclient/index.yml +14 -0
  129. data/bosh_release/.final_builds/packages/nats/index.yml +34 -0
  130. data/bosh_release/.final_builds/packages/nginx/index.yml +38 -0
  131. data/bosh_release/.final_builds/packages/nginx_next/index.yml +6 -0
  132. data/bosh_release/.final_builds/packages/node/index.yml +10 -0
  133. data/bosh_release/.final_builds/packages/oauth2_gateway/index.yml +18 -0
  134. data/bosh_release/.final_builds/packages/opentsdb/index.yml +18 -0
  135. data/bosh_release/.final_builds/packages/postgres/index.yml +18 -0
  136. data/bosh_release/.final_builds/packages/postgresql/index.yml +31 -0
  137. data/bosh_release/.final_builds/packages/postgresql91/index.yml +10 -0
  138. data/bosh_release/.final_builds/packages/postgresql_gateway/index.yml +178 -0
  139. data/bosh_release/.final_builds/packages/postgresql_node/index.yml +162 -0
  140. data/bosh_release/.final_builds/packages/postgresql_node_ng/index.yml +58 -0
  141. data/bosh_release/.final_builds/packages/rabbit/index.yml +14 -0
  142. data/bosh_release/.final_builds/packages/rabbit_gateway/index.yml +210 -0
  143. data/bosh_release/.final_builds/packages/rabbit_node/index.yml +194 -0
  144. data/bosh_release/.final_builds/packages/rabbit_node_ng/index.yml +58 -0
  145. data/bosh_release/.final_builds/packages/rabbitmq-2.4/index.yml +6 -0
  146. data/bosh_release/.final_builds/packages/rabbitmq-2.8/index.yml +6 -0
  147. data/bosh_release/.final_builds/packages/rabbitmq/index.yml +18 -0
  148. data/bosh_release/.final_builds/packages/rabbitmq_srs/index.yml +14 -0
  149. data/bosh_release/.final_builds/packages/rabbitmq_srs_builds/index.yml +10 -0
  150. data/bosh_release/.final_builds/packages/redis/index.yml +18 -0
  151. data/bosh_release/.final_builds/packages/redis22/index.yml +6 -0
  152. data/bosh_release/.final_builds/packages/redis24/index.yml +6 -0
  153. data/bosh_release/.final_builds/packages/redis26/index.yml +6 -0
  154. data/bosh_release/.final_builds/packages/redis_gateway/index.yml +230 -0
  155. data/bosh_release/.final_builds/packages/redis_node/index.yml +218 -0
  156. data/bosh_release/.final_builds/packages/redis_node_ng/index.yml +62 -0
  157. data/bosh_release/.final_builds/packages/rootfs_lucid64/index.yml +7 -0
  158. data/bosh_release/.final_builds/packages/router/index.yml +178 -0
  159. data/bosh_release/.final_builds/packages/routerv2/index.yml +18 -0
  160. data/bosh_release/.final_builds/packages/ruby/index.yml +35 -0
  161. data/bosh_release/.final_builds/packages/ruby_next/index.yml +15 -0
  162. data/bosh_release/.final_builds/packages/serialization_data_server/index.yml +66 -0
  163. data/bosh_release/.final_builds/packages/service_broker/index.yml +138 -0
  164. data/bosh_release/.final_builds/packages/service_utilities/index.yml +34 -0
  165. data/bosh_release/.final_builds/packages/sqlite/index.yml +14 -0
  166. data/bosh_release/.final_builds/packages/stager/index.yml +194 -0
  167. data/bosh_release/.final_builds/packages/syslog_aggregator/index.yml +19 -0
  168. data/bosh_release/.final_builds/packages/uaa/index.yml +99 -0
  169. data/bosh_release/.final_builds/packages/vblob/index.yml +22 -0
  170. data/bosh_release/.final_builds/packages/vblob_gateway/index.yml +106 -0
  171. data/bosh_release/.final_builds/packages/vblob_node/index.yml +94 -0
  172. data/bosh_release/.final_builds/packages/vblob_node_ng/index.yml +54 -0
  173. data/bosh_release/.final_builds/packages/warden/index.yml +107 -0
  174. data/{spec/assets → bosh_release/config}/.gitkeep +0 -0
  175. data/bosh_release/config/final.yml +7 -0
  176. data/{spec/functional → bosh_release/jobs}/.gitkeep +0 -0
  177. data/{spec/unit → bosh_release/packages}/.gitkeep +0 -0
  178. data/bosh_release/releases/appcloud-10.yml +232 -0
  179. data/bosh_release/releases/appcloud-100.yml +512 -0
  180. data/bosh_release/releases/appcloud-101.yml +523 -0
  181. data/bosh_release/releases/appcloud-102.yml +523 -0
  182. data/bosh_release/releases/appcloud-103.yml +532 -0
  183. data/bosh_release/releases/appcloud-104.yml +541 -0
  184. data/bosh_release/releases/appcloud-105.yml +547 -0
  185. data/bosh_release/releases/appcloud-106.yml +547 -0
  186. data/bosh_release/releases/appcloud-107.yml +547 -0
  187. data/bosh_release/releases/appcloud-108.yml +547 -0
  188. data/bosh_release/releases/appcloud-109.yml +612 -0
  189. data/bosh_release/releases/appcloud-11.yml +232 -0
  190. data/bosh_release/releases/appcloud-110.yml +612 -0
  191. data/bosh_release/releases/appcloud-111.yml +743 -0
  192. data/bosh_release/releases/appcloud-112.yml +617 -0
  193. data/bosh_release/releases/appcloud-113.yml +627 -0
  194. data/bosh_release/releases/appcloud-114.yml +627 -0
  195. data/bosh_release/releases/appcloud-115.yml +627 -0
  196. data/bosh_release/releases/appcloud-116.yml +627 -0
  197. data/bosh_release/releases/appcloud-117.yml +637 -0
  198. data/bosh_release/releases/appcloud-118.yml +637 -0
  199. data/bosh_release/releases/appcloud-119.yml +642 -0
  200. data/bosh_release/releases/appcloud-12.yml +232 -0
  201. data/bosh_release/releases/appcloud-120.yml +791 -0
  202. data/bosh_release/releases/appcloud-121.yml +791 -0
  203. data/bosh_release/releases/appcloud-122.yml +799 -0
  204. data/bosh_release/releases/appcloud-123.yml +799 -0
  205. data/bosh_release/releases/appcloud-124.yml +810 -0
  206. data/bosh_release/releases/appcloud-125.yml +810 -0
  207. data/bosh_release/releases/appcloud-126.yml +810 -0
  208. data/bosh_release/releases/appcloud-127.yml +816 -0
  209. data/bosh_release/releases/appcloud-128.yml +812 -0
  210. data/bosh_release/releases/appcloud-129.yml +811 -0
  211. data/bosh_release/releases/appcloud-13.yml +232 -0
  212. data/bosh_release/releases/appcloud-130.yml +811 -0
  213. data/bosh_release/releases/appcloud-131.yml +811 -0
  214. data/bosh_release/releases/appcloud-14.yml +232 -0
  215. data/bosh_release/releases/appcloud-15.yml +232 -0
  216. data/bosh_release/releases/appcloud-16.yml +232 -0
  217. data/bosh_release/releases/appcloud-17.yml +232 -0
  218. data/bosh_release/releases/appcloud-18.yml +232 -0
  219. data/bosh_release/releases/appcloud-19.yml +256 -0
  220. data/bosh_release/releases/appcloud-20.yml +256 -0
  221. data/bosh_release/releases/appcloud-21.yml +256 -0
  222. data/bosh_release/releases/appcloud-22.yml +286 -0
  223. data/bosh_release/releases/appcloud-23.yml +294 -0
  224. data/bosh_release/releases/appcloud-24.yml +297 -0
  225. data/bosh_release/releases/appcloud-25.yml +297 -0
  226. data/bosh_release/releases/appcloud-26.yml +297 -0
  227. data/bosh_release/releases/appcloud-27.yml +297 -0
  228. data/bosh_release/releases/appcloud-28.yml +297 -0
  229. data/bosh_release/releases/appcloud-29.yml +297 -0
  230. data/bosh_release/releases/appcloud-30.yml +299 -0
  231. data/bosh_release/releases/appcloud-31.yml +299 -0
  232. data/bosh_release/releases/appcloud-32.yml +299 -0
  233. data/bosh_release/releases/appcloud-33.yml +299 -0
  234. data/bosh_release/releases/appcloud-34.yml +299 -0
  235. data/bosh_release/releases/appcloud-35.yml +299 -0
  236. data/bosh_release/releases/appcloud-36.yml +299 -0
  237. data/bosh_release/releases/appcloud-37.yml +332 -0
  238. data/bosh_release/releases/appcloud-38.yml +343 -0
  239. data/bosh_release/releases/appcloud-39.yml +360 -0
  240. data/bosh_release/releases/appcloud-40.yml +360 -0
  241. data/bosh_release/releases/appcloud-41.yml +367 -0
  242. data/bosh_release/releases/appcloud-42.yml +372 -0
  243. data/bosh_release/releases/appcloud-43.yml +372 -0
  244. data/bosh_release/releases/appcloud-44.yml +372 -0
  245. data/bosh_release/releases/appcloud-45.yml +381 -0
  246. data/bosh_release/releases/appcloud-46.yml +381 -0
  247. data/bosh_release/releases/appcloud-47.yml +381 -0
  248. data/bosh_release/releases/appcloud-48.yml +381 -0
  249. data/bosh_release/releases/appcloud-49.yml +381 -0
  250. data/bosh_release/releases/appcloud-50.yml +381 -0
  251. data/bosh_release/releases/appcloud-51.yml +381 -0
  252. data/bosh_release/releases/appcloud-52.yml +389 -0
  253. data/bosh_release/releases/appcloud-53.yml +389 -0
  254. data/bosh_release/releases/appcloud-54.yml +397 -0
  255. data/bosh_release/releases/appcloud-55.yml +402 -0
  256. data/bosh_release/releases/appcloud-56.yml +428 -0
  257. data/bosh_release/releases/appcloud-57.yml +428 -0
  258. data/bosh_release/releases/appcloud-58.yml +428 -0
  259. data/bosh_release/releases/appcloud-59.yml +428 -0
  260. data/bosh_release/releases/appcloud-60.yml +428 -0
  261. data/bosh_release/releases/appcloud-61.yml +433 -0
  262. data/bosh_release/releases/appcloud-62.yml +433 -0
  263. data/bosh_release/releases/appcloud-63.yml +428 -0
  264. data/bosh_release/releases/appcloud-64.yml +451 -0
  265. data/bosh_release/releases/appcloud-65.yml +451 -0
  266. data/bosh_release/releases/appcloud-66.yml +451 -0
  267. data/bosh_release/releases/appcloud-67.yml +451 -0
  268. data/bosh_release/releases/appcloud-68.yml +460 -0
  269. data/bosh_release/releases/appcloud-69.yml +460 -0
  270. data/bosh_release/releases/appcloud-70.yml +460 -0
  271. data/bosh_release/releases/appcloud-71.yml +442 -0
  272. data/bosh_release/releases/appcloud-72.yml +442 -0
  273. data/bosh_release/releases/appcloud-73.yml +442 -0
  274. data/bosh_release/releases/appcloud-74.yml +442 -0
  275. data/bosh_release/releases/appcloud-75.yml +450 -0
  276. data/bosh_release/releases/appcloud-76.yml +450 -0
  277. data/bosh_release/releases/appcloud-77.yml +473 -0
  278. data/bosh_release/releases/appcloud-78.yml +473 -0
  279. data/bosh_release/releases/appcloud-79.yml +473 -0
  280. data/bosh_release/releases/appcloud-80.yml +473 -0
  281. data/bosh_release/releases/appcloud-81.yml +473 -0
  282. data/bosh_release/releases/appcloud-82.yml +473 -0
  283. data/bosh_release/releases/appcloud-83.yml +468 -0
  284. data/bosh_release/releases/appcloud-84.yml +478 -0
  285. data/bosh_release/releases/appcloud-85.yml +478 -0
  286. data/bosh_release/releases/appcloud-86.yml +478 -0
  287. data/bosh_release/releases/appcloud-87.yml +488 -0
  288. data/bosh_release/releases/appcloud-88.yml +488 -0
  289. data/bosh_release/releases/appcloud-89.yml +488 -0
  290. data/bosh_release/releases/appcloud-90.yml +488 -0
  291. data/bosh_release/releases/appcloud-91.yml +493 -0
  292. data/bosh_release/releases/appcloud-92.yml +493 -0
  293. data/bosh_release/releases/appcloud-93.yml +493 -0
  294. data/bosh_release/releases/appcloud-94.yml +493 -0
  295. data/bosh_release/releases/appcloud-95.yml +502 -0
  296. data/bosh_release/releases/appcloud-96.yml +502 -0
  297. data/bosh_release/releases/appcloud-97.yml +502 -0
  298. data/bosh_release/releases/appcloud-98.yml +512 -0
  299. data/bosh_release/releases/appcloud-99.yml +512 -0
  300. data/bosh_release/releases/cf-release-132.yml +305 -0
  301. data/bosh_release/releases/index.yml +266 -0
  302. data/bosh_release/src/.gitkeep +0 -0
  303. data/lib/bosh/cli/commands/cf.rb +173 -560
  304. data/lib/bosh/cloudfoundry.rb +4 -0
  305. data/lib/bosh/cloudfoundry/deployment_attributes.rb +124 -0
  306. data/lib/bosh/cloudfoundry/release_versioned_template.rb +48 -0
  307. data/spec/plugin_spec.rb +115 -0
  308. data/spec/release_versioned_template_spec.rb +12 -0
  309. data/spec/spec_helper.rb +33 -9
  310. data/templates/README.md +21 -0
  311. data/templates/v132/aws/dev/deployment_file.yml.erb +372 -0
  312. data/templates/v132/aws/dev/spec +6 -0
  313. data/templates/v132/openstack/dev/deployment_file.yml.erb +372 -0
  314. data/templates/v132/openstack/dev/spec +6 -0
  315. metadata +326 -102
  316. data/config/defaults.yml +0 -6
  317. data/docs/BOSH-cf-initial-create.png +0 -0
  318. data/docs/BOSH-cf-scaled.png +0 -0
  319. data/docs/concept.md +0 -141
  320. data/lib/bosh-cloudfoundry.rb +0 -33
  321. data/lib/bosh-cloudfoundry/bosh_release_manager.rb +0 -156
  322. data/lib/bosh-cloudfoundry/config.rb +0 -6
  323. data/lib/bosh-cloudfoundry/config/common_config.rb +0 -27
  324. data/lib/bosh-cloudfoundry/config/dea_config.rb +0 -161
  325. data/lib/bosh-cloudfoundry/config/microbosh_config.rb +0 -119
  326. data/lib/bosh-cloudfoundry/config/postgresql_service_config.rb +0 -185
  327. data/lib/bosh-cloudfoundry/config/redis_service_config.rb +0 -179
  328. data/lib/bosh-cloudfoundry/config/system_config.rb +0 -66
  329. data/lib/bosh-cloudfoundry/config_options.rb +0 -403
  330. data/lib/bosh-cloudfoundry/providers.rb +0 -22
  331. data/lib/bosh-cloudfoundry/providers/aws.rb +0 -75
  332. data/lib/bosh-cloudfoundry/providers/openstack.rb +0 -69
  333. data/lib/bosh-cloudfoundry/system_deployment_manifest_renderer.rb +0 -296
  334. data/lib/bosh-cloudfoundry/version.rb +0 -5
  335. data/spec/assets/cf-release/jobs/cloud_controller/templates/runtimes.yml +0 -150
  336. data/spec/assets/deployments/aws-core-1-m1.small-free-redis.yml +0 -226
  337. data/spec/assets/deployments/aws-core-1-m1.xlarge-free-postgresql-2-m1.small-free-postgresql.yml +0 -253
  338. data/spec/assets/deployments/aws-core-2-m1.xlarge-dea.yml +0 -200
  339. data/spec/assets/deployments/aws-core-only.yml +0 -183
  340. data/spec/assets/deployments/aws-core-with-nfs.yml +0 -192
  341. data/spec/assets/deployments/openstack-core-only.yml +0 -204
  342. data/spec/unit/bosh_release_manager_spec.rb +0 -67
  343. data/spec/unit/cf_command_spec.rb +0 -307
  344. data/spec/unit/config/common_config_spec.rb +0 -21
  345. data/spec/unit/config/dea_config_spec.rb +0 -95
  346. data/spec/unit/config/microbosh_config_spec.rb +0 -11
  347. data/spec/unit/config/postgresql_service_config_spec.rb +0 -103
  348. data/spec/unit/config/redis_service_config_spec.rb +0 -103
  349. data/spec/unit/config/system_config_spec.rb +0 -29
  350. data/spec/unit/config_options_spec.rb +0 -60
  351. 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