+++ /dev/null
----
-schema: deckhand/DataSchema/v1
-metadata:
- schema: metadata/Control/v1
- name: promenade/Genesis/v1
- labels:
- application: promenade
-data:
- $schema: http://json-schema.org/schema#
- definitions:
- abs_path:
- type: string
- pattern: '^/.+$'
- hostname:
- type: string
- pattern: '^[a-z][a-z0-9-]+$'
- file:
- properties:
- path:
- $ref: '#/definitions/abs_path'
- content:
- type: string
- mode:
- type: integer
- minimum: 0
- tar_url:
- $ref: '#/definitions/url'
- tar_path:
- $ref: '#/definitions/rel_path'
-
- requried:
- - mode
- - path
- oneOf:
- - type: object
- required:
- - content
- - type: object
- allOf:
- - type: object
- required:
- - tar_url
- - tar_path
- additionalProperties: false
- image:
- type: string
- # XXX add regex
- ip_address:
- type: string
- 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]))$'
- kubernetes_label:
- type: string
- # XXX add regex
- rel_path:
- type: string
- # XXX add regex
-
- type: object
- properties:
- armada:
- type: object
- properties:
- target_manifest:
- type: string
- additionalProperties: false
-
- apiserver:
- type: object
- properties:
- command_prefix:
- type: array
- items:
- type: string
- additionalProperties: false
-
- files:
- type: array
- items:
- $ref: '#/definitions/file'
-
- hostname:
- $ref: '#/definitions/hostname'
-
- ip:
- $ref: '#/definitions/ip_address'
-
- labels:
- properties:
- static:
- type: array
- items:
- $ref: '#/definitions/kubernetes_label'
- dynamic:
- type: array
- items:
- $ref: '#/definitions/kubernetes_label'
- additionalProperties: false
-
- images:
- type: object
- properties:
- armada:
- $ref: '#/definitions/image'
- helm:
- type: object
- properties:
- tiller:
- $ref: '#/definitions/image'
- required:
- - tiller
- additionalProperties: false
- kubernetes:
- type: object
- properties:
- apiserver:
- $ref: '#/definitions/image'
- controller-manager:
- $ref: '#/definitions/image'
- etcd:
- $ref: '#/definitions/image'
- scheduler:
- $ref: '#/definitions/image'
- required:
- - apiserver
- - controller-manager
- - etcd
- - scheduler
- additionalProperties: false
- required:
- - armada
- - helm
- - kubernetes
- additionalProperties: false
-
- required:
- - hostname
- - ip
- - images
- - labels
- additionalProperties: false
-...