368295f035
Change-Id: I36b2a3d9283bb5de192919933cf8191505a78cc9
169 lines
3.6 KiB
YAML
169 lines
3.6 KiB
YAML
---
|
|
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'
|
|
|
|
required:
|
|
- 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:
|
|
arguments:
|
|
type: array
|
|
items:
|
|
type: string
|
|
encryption:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
resources:
|
|
type: array
|
|
items:
|
|
type: string
|
|
providers:
|
|
type: array
|
|
items:
|
|
type: object
|
|
additionalProperties: true
|
|
additionalProperties: false
|
|
|
|
files:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/file'
|
|
|
|
haproxy:
|
|
type: object
|
|
properties:
|
|
run_as_user:
|
|
type: integer
|
|
additionalProperties: false
|
|
|
|
hostname:
|
|
$ref: '#/definitions/hostname'
|
|
|
|
domain:
|
|
type: string
|
|
|
|
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'
|
|
etcdctl:
|
|
$ref: '#/definitions/image'
|
|
scheduler:
|
|
$ref: '#/definitions/image'
|
|
required:
|
|
- apiserver
|
|
- controller-manager
|
|
- etcd
|
|
- etcdctl
|
|
- scheduler
|
|
additionalProperties: false
|
|
required:
|
|
- armada
|
|
- helm
|
|
- kubernetes
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- hostname
|
|
- ip
|
|
- images
|
|
- labels
|
|
additionalProperties: false
|
|
...
|