Integrated deployment configuration and documentation.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

v1.yaml 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. ---
  2. schema: deckhand/DataSchema/v1
  3. metadata:
  4. schema: metadata/Control/v1
  5. name: promenade/Genesis/v1
  6. labels:
  7. application: promenade
  8. data:
  9. $schema: http://json-schema.org/schema#
  10. definitions:
  11. abs_path:
  12. type: string
  13. pattern: '^/.+$'
  14. hostname:
  15. type: string
  16. pattern: '^[a-z][a-z0-9-]+$'
  17. file:
  18. properties:
  19. path:
  20. $ref: '#/definitions/abs_path'
  21. content:
  22. type: string
  23. mode:
  24. type: integer
  25. minimum: 0
  26. tar_url:
  27. $ref: '#/definitions/url'
  28. tar_path:
  29. $ref: '#/definitions/rel_path'
  30. required:
  31. - mode
  32. - path
  33. oneOf:
  34. - type: object
  35. required:
  36. - content
  37. - type: object
  38. allOf:
  39. - type: object
  40. required:
  41. - tar_url
  42. - tar_path
  43. additionalProperties: false
  44. image:
  45. type: string
  46. # XXX add regex
  47. ip_address:
  48. type: string
  49. pattern: '^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$'
  50. kubernetes_label:
  51. type: string
  52. # XXX add regex
  53. rel_path:
  54. type: string
  55. # XXX add regex
  56. type: object
  57. properties:
  58. armada:
  59. type: object
  60. properties:
  61. target_manifest:
  62. type: string
  63. additionalProperties: false
  64. apiserver:
  65. type: object
  66. properties:
  67. command_prefix:
  68. type: array
  69. items:
  70. type: string
  71. additionalProperties: false
  72. files:
  73. type: array
  74. items:
  75. $ref: '#/definitions/file'
  76. hostname:
  77. $ref: '#/definitions/hostname'
  78. domain:
  79. type: string
  80. ip:
  81. $ref: '#/definitions/ip_address'
  82. labels:
  83. properties:
  84. static:
  85. type: array
  86. items:
  87. $ref: '#/definitions/kubernetes_label'
  88. dynamic:
  89. type: array
  90. items:
  91. $ref: '#/definitions/kubernetes_label'
  92. additionalProperties: false
  93. images:
  94. type: object
  95. properties:
  96. armada:
  97. $ref: '#/definitions/image'
  98. helm:
  99. type: object
  100. properties:
  101. tiller:
  102. $ref: '#/definitions/image'
  103. required:
  104. - tiller
  105. additionalProperties: false
  106. kubernetes:
  107. type: object
  108. properties:
  109. apiserver:
  110. $ref: '#/definitions/image'
  111. controller-manager:
  112. $ref: '#/definitions/image'
  113. etcd:
  114. $ref: '#/definitions/image'
  115. scheduler:
  116. $ref: '#/definitions/image'
  117. required:
  118. - apiserver
  119. - controller-manager
  120. - etcd
  121. - scheduler
  122. additionalProperties: false
  123. required:
  124. - armada
  125. - helm
  126. - kubernetes
  127. additionalProperties: false
  128. required:
  129. - hostname
  130. - ip
  131. - images
  132. - labels
  133. additionalProperties: false
  134. ...