Initial treasuremap/template for site_type ovsdpdk
[yaml_builds.git] / site_type / ovsdpdk / airship-treasuremap / global / v4.0 / schemas / promenade / KubernetesNetwork / v1.yaml
diff --git a/site_type/ovsdpdk/airship-treasuremap/global/v4.0/schemas/promenade/KubernetesNetwork/v1.yaml b/site_type/ovsdpdk/airship-treasuremap/global/v4.0/schemas/promenade/KubernetesNetwork/v1.yaml
new file mode 100644 (file)
index 0000000..f9fcf43
--- /dev/null
@@ -0,0 +1,121 @@
+---
+schema: deckhand/DataSchema/v1
+metadata:
+  schema: metadata/Control/v1
+  name: promenade/KubernetesNetwork/v1
+  labels:
+    application: promenade
+data:
+  $schema: http://json-schema.org/schema#
+  definitions:
+    cidr:
+      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]))\/([0-9]|[1-2][0-9]|3[0-2])$'
+    domain_name:
+      type: string
+      format: hostname
+    domain_suffix:
+      type: string
+      pattern: '^\.[a-z0-9][a-z0-9-\.]*$'
+    hostname:
+      type: string
+      format: hostname
+    hostname_or_ip_address:
+      anyOf:
+        - $ref: '#/definitions/hostname'
+        - $ref: '#/definitions/ip_address'
+        - $ref: '#/definitions/domain_suffix'
+    ip_address:
+      type: string
+      format: ipv4
+    url:
+      type: string
+      format: uri
+
+  type: object
+  properties:
+    dns:
+      type: object
+      properties:
+        bootstrap_validation_checks:
+          type: array
+          items:
+            $ref: '#/definitions/domain_name'
+        cluster_domain:
+          $ref: '#/definitions/domain_name'
+        service_ip:
+          $ref: '#/definitions/ip_address'
+        upstream_servers:
+          type: array
+          items:
+            $ref: '#/definitions/ip_address'
+      required:
+        - cluster_domain
+        - service_ip
+      additionalProperties: false
+
+    etcd:
+      type: object
+      properties:
+        container_port:
+          type: integer
+        haproxy_port:
+          type: integer
+        # NOTE(mark-burnett): No longer used.
+        service_ip:
+          $ref: '#/definitions/ip_address'
+      required:
+        - container_port
+        - haproxy_port
+      additionalProperties: false
+
+    kubernetes:
+      type: object
+      properties:
+        pod_cidr:
+          $ref: '#/definitions/cidr'
+        service_ip:
+          $ref: '#/definitions/ip_address'
+        service_cidr:
+          $ref: '#/definitions/cidr'
+        apiserver_port:
+          type: integer
+        haproxy_port:
+          type: integer
+      required:
+        - pod_cidr
+        - service_cidr
+        - service_ip
+        - apiserver_port
+        - haproxy_port
+      additionalProperties: false
+    hosts_entries:
+      type: array
+      items:
+        type: object
+        properties:
+          ip:
+            $ref: '#/definitions/ip_address'
+          names:
+            type: array
+            items:
+              $ref: '#/definitions/hostname'
+
+    proxy:
+      type: object
+      properties:
+        additional_no_proxy:
+          type: array
+          items:
+            $ref: '#/definitions/hostname_or_ip_address'
+        url:
+          $ref: '#/definitions/url'
+      required:
+        - url
+      additionalFields: false
+
+  required:
+    - dns
+    - kubernetes
+  additionalProperties: false
+...