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 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. apt_source_line:
  15. type: string
  16. # XXX add regex
  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. requried:
  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. package:
  48. type: string
  49. # XXX add regex
  50. public_key:
  51. type: string
  52. # XXX add regex
  53. rel_path:
  54. type: string
  55. # XXX add regex
  56. url:
  57. type: string
  58. # XXX add regex
  59. type: object
  60. properties:
  61. files:
  62. type: array
  63. items:
  64. type: object
  65. items:
  66. $ref: '#/definitions/file'
  67. images:
  68. type: object
  69. properties:
  70. haproxy:
  71. $ref: '#/definitions/image'
  72. coredns:
  73. $ref: '#/definitions/image'
  74. helm:
  75. type: object
  76. properties:
  77. helm:
  78. $ref: '#/definitions/image'
  79. required:
  80. - helm
  81. additionalProperties: false
  82. kubernetes:
  83. type: object
  84. properties:
  85. kubectl:
  86. $ref: '#/definitions/image'
  87. required:
  88. - kubectl
  89. additionalProperties: false
  90. required:
  91. - haproxy
  92. - coredns
  93. - helm
  94. - kubernetes
  95. additionalProperties: false
  96. packages:
  97. type: object
  98. properties:
  99. additional:
  100. type: array
  101. items:
  102. $ref: '#/definitions/package'
  103. keys:
  104. type: array
  105. items:
  106. $ref: '#/definitions/public_key'
  107. required:
  108. type: object
  109. properties:
  110. docker:
  111. $ref: '#/definitions/package'
  112. socat:
  113. $ref: '#/definitions/package'
  114. required:
  115. - docker
  116. - socat
  117. additionalProperties: false
  118. repositories:
  119. type: array
  120. items:
  121. $ref: '#/definitions/apt_source_line'
  122. required:
  123. - required
  124. additionalProperties: false
  125. required:
  126. - images
  127. - packages
  128. additionalProperties: false