Initial treasuremap/template for site_type ovsdpdk
[yaml_builds.git] / site_type / ovsdpdk / airship-treasuremap / global / v4.0 / schemas / promenade / KubernetesNode / v1.yaml
diff --git a/site_type/ovsdpdk/airship-treasuremap/global/v4.0/schemas/promenade/KubernetesNode/v1.yaml b/site_type/ovsdpdk/airship-treasuremap/global/v4.0/schemas/promenade/KubernetesNode/v1.yaml
new file mode 100644 (file)
index 0000000..1b7598e
--- /dev/null
@@ -0,0 +1,47 @@
+---
+schema: deckhand/DataSchema/v1
+metadata:
+  schema: metadata/Control/v1
+  name: promenade/KubernetesNode/v1
+  labels:
+    application: promenade
+data:
+  $schema: http://json-schema.org/schema#
+  definitions:
+    hostname:
+      type: string
+      pattern: '^[a-z][a-z0-9-]+$'
+    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
+
+  type: object
+  properties:
+    hostname:
+      $ref: '#/definitions/hostname'
+
+    ip:
+      $ref: '#/definitions/ip_address'
+
+    join_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
+
+  required:
+    - ip
+    - join_ip
+  additionalProperties: false