A declarative framework for resilient Kubernetes deployment.
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.

HostSystem.yaml 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. ---
  2. schema: deckhand/DataSchema/v1
  3. metadata:
  4. schema: metadata/Control/v1
  5. name: promenade/HostSystem/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. systemd_unit:
  15. type: object
  16. properties:
  17. enable:
  18. type: boolean
  19. disable:
  20. type: boolean
  21. start:
  22. type: boolean
  23. stop:
  24. type: boolean
  25. additionalProperties: false
  26. apt_source_line:
  27. type: string
  28. # XXX add regex
  29. file:
  30. properties:
  31. path:
  32. $ref: '#/definitions/abs_path'
  33. content:
  34. type: string
  35. mode:
  36. type: integer
  37. minimum: 0
  38. tar_url:
  39. $ref: '#/definitions/url'
  40. tar_path:
  41. $ref: '#/definitions/rel_path'
  42. required:
  43. - mode
  44. - path
  45. oneOf:
  46. - type: object
  47. required:
  48. - content
  49. - type: object
  50. allOf:
  51. - type: object
  52. required:
  53. - tar_url
  54. - tar_path
  55. additionalProperties: false
  56. image:
  57. type: string
  58. # XXX add regex
  59. package:
  60. type: string
  61. # XXX add regex
  62. public_key:
  63. type: string
  64. # XXX add regex
  65. rel_path:
  66. type: string
  67. # XXX add regex
  68. url:
  69. type: string
  70. # XXX add regex
  71. type: object
  72. properties:
  73. files:
  74. type: array
  75. items:
  76. type: object
  77. items:
  78. $ref: '#/definitions/file'
  79. systemd_units:
  80. type: object
  81. additionalProperties:
  82. $ref: '#/definitions/systemd_unit'
  83. images:
  84. type: object
  85. properties:
  86. # NOTE(mark-burnett): No longer used.
  87. coredns:
  88. $ref: '#/definitions/image'
  89. haproxy:
  90. $ref: '#/definitions/image'
  91. helm:
  92. type: object
  93. properties:
  94. helm:
  95. $ref: '#/definitions/image'
  96. required:
  97. - helm
  98. additionalProperties: false
  99. kubernetes:
  100. type: object
  101. properties:
  102. kubectl:
  103. $ref: '#/definitions/image'
  104. required:
  105. - kubectl
  106. additionalProperties: false
  107. required:
  108. - haproxy
  109. - helm
  110. - kubernetes
  111. additionalProperties: false
  112. packages:
  113. type: object
  114. properties:
  115. additional:
  116. type: array
  117. items:
  118. $ref: '#/definitions/package'
  119. keys:
  120. type: array
  121. items:
  122. $ref: '#/definitions/public_key'
  123. required:
  124. type: object
  125. properties:
  126. docker:
  127. $ref: '#/definitions/package'
  128. socat:
  129. $ref: '#/definitions/package'
  130. required:
  131. - docker
  132. - socat
  133. additionalProperties: false
  134. repositories:
  135. type: array
  136. items:
  137. $ref: '#/definitions/apt_source_line'
  138. required:
  139. - required
  140. additionalProperties: false
  141. validation:
  142. type: object
  143. properties:
  144. pod_logs:
  145. type: object
  146. properties:
  147. image:
  148. type: string
  149. additionalProperties: false
  150. additionalProperties: false
  151. required:
  152. - images
  153. - packages
  154. additionalProperties: false