update ceph-common to 10.2.11-0ubuntu0.16.04.2
[yaml_builds.git] / site_type / sriov / airship-treasuremap / global / v4.0 / schemas / promenade / Genesis / v1.yaml
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
31       requried:
32         - mode
33         - path
34       oneOf:
35         - type: object
36           required:
37             - content
38         - type: object
39           allOf:
40             - type: object
41               required:
42                 - tar_url
43                 - tar_path
44       additionalProperties: false
45     image:
46       type: string
47       # XXX add regex
48     ip_address:
49       type: string
50       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]))$'
51     kubernetes_label:
52       type: string
53       # XXX add regex
54     rel_path:
55       type: string
56       # XXX add regex
57
58   type: object
59   properties:
60     armada:
61       type: object
62       properties:
63         target_manifest:
64           type: string
65       additionalProperties: false
66
67     apiserver:
68       type: object
69       properties:
70         command_prefix:
71           type: array
72           items:
73             type: string
74       additionalProperties: false
75
76     files:
77       type: array
78       items:
79         $ref: '#/definitions/file'
80
81     hostname:
82       $ref: '#/definitions/hostname'
83
84     ip:
85       $ref: '#/definitions/ip_address'
86
87     labels:
88       properties:
89         static:
90           type: array
91           items:
92             $ref: '#/definitions/kubernetes_label'
93         dynamic:
94           type: array
95           items:
96             $ref: '#/definitions/kubernetes_label'
97       additionalProperties: false
98
99     images:
100       type: object
101       properties:
102         armada:
103           $ref: '#/definitions/image'
104         helm:
105           type: object
106           properties:
107             tiller:
108               $ref: '#/definitions/image'
109           required:
110             - tiller
111           additionalProperties: false
112         kubernetes:
113           type: object
114           properties:
115             apiserver:
116               $ref: '#/definitions/image'
117             controller-manager:
118               $ref: '#/definitions/image'
119             etcd:
120               $ref: '#/definitions/image'
121             scheduler:
122               $ref: '#/definitions/image'
123           required:
124             - apiserver
125             - controller-manager
126             - etcd
127             - scheduler
128           additionalProperties: false
129       required:
130         - armada
131         - helm
132         - kubernetes
133       additionalProperties: false
134
135   required:
136     - hostname
137     - ip
138     - images
139     - labels
140   additionalProperties: false
141 ...