瀏覽代碼

Merge pull request #13489 from richardkchapman/helm-schema

HPCC-23706 Add json schema to helm chart

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday 5 年之前
父節點
當前提交
8c8462d412

+ 2 - 0
dockerfiles/hpcc/templates/dali.yaml

@@ -1,4 +1,5 @@
 {{ range $.Values.dali -}}
+{{- if not .disabled -}}
 apiVersion: apps/v1
 kind: Deployment
 metadata:
@@ -41,3 +42,4 @@ spec:
   type: ClusterIP
 ---
 {{- end }}
+{{- end }}

+ 2 - 0
dockerfiles/hpcc/templates/eclagent.yaml

@@ -1,4 +1,5 @@
 {{ range $.Values.eclagent -}}
+{{- if not .disabled -}}
 {{- $apptype := .type | default "hthor" -}} 
 apiVersion: apps/v1
 kind: Deployment
@@ -66,3 +67,4 @@ spec:
       
 ---
 {{- end }}
+{{- end }}

+ 2 - 0
dockerfiles/hpcc/templates/eclccserver.yaml

@@ -1,4 +1,5 @@
 {{ range $.Values.eclccserver -}}
+{{- if not .disabled -}}
 apiVersion: apps/v1
 kind: Deployment
 metadata:
@@ -81,3 +82,4 @@ spec:
       
 ---
 {{- end }}
+{{- end }}

+ 2 - 0
dockerfiles/hpcc/templates/esp.yaml

@@ -1,4 +1,5 @@
 {{ range $.Values.esp -}}
+{{- if not .disabled -}}
 apiVersion: apps/v1
 kind: Deployment
 metadata:
@@ -41,3 +42,4 @@ spec:
     run: {{ .name | quote }}
   type: LoadBalancer
 {{- end }}
+{{- end }}

+ 2 - 1
dockerfiles/hpcc/templates/localroxie.yaml

@@ -1,4 +1,5 @@
 {{ range $roxie := $.Values.roxie -}}
+{{- if not $roxie.disabled  -}}
 {{- if $roxie.localSlave -}}
 {{- $name := $roxie.name -}}
 
@@ -37,4 +38,4 @@ spec:
 ---
 {{- end }}
 {{- end }}
- 
+{{- end }}

+ 2 - 0
dockerfiles/hpcc/templates/roxie.yaml

@@ -1,4 +1,5 @@
 {{ range $roxie := $.Values.roxie -}}
+{{- if not $roxie.disabled -}}
 {{- if not $roxie.localSlave -}}
 {{- $toponame := printf "%s-toposerver" $roxie.name -}}
 {{- $numChannels := $roxie.numChannels | int | default 1 -}}
@@ -123,4 +124,5 @@ spec:
 {{- end }}
 {{- end }}
 {{- end }}
+{{- end }}
  

+ 2 - 0
dockerfiles/hpcc/templates/thor.yaml

@@ -1,4 +1,5 @@
 {{ range $thor := $.Values.thor -}}
+{{- if not $thor.disabled -}}
 {{- $masterPort := $thor.masterport | default 20000 -}}
 {{- $slavePort := $thor.slaveport | default 20100 -}}
 {{- $eclagentName := printf "%s-agent" .name }}
@@ -127,3 +128,4 @@ spec:
       backoffLimit: 0
 ---
 {{- end }}
+{{- end }}

+ 212 - 0
dockerfiles/hpcc/values.schema.json

@@ -0,0 +1,212 @@
+{
+  "$schema": "https://json-schema.org/draft-07/schema#",
+  "additionalProperties": false,
+  "properties": {
+    "global": {
+      "$ref": "#/definitions/global"
+    },
+    "dali": {
+      "description": "dali process",
+      "type": "array",
+      "items": { "$ref": "#/definitions/dali" }
+    },
+    "eclccserver": {
+      "description": "eclccserver process",
+      "type": "array",
+      "items": { "$ref": "#/definitions/eclccserver" }
+    },
+    "esp": {
+      "description": "esp process",
+      "type": "array",
+      "items": { "$ref": "#/definitions/esp" }
+    },
+    "eclagent": {
+      "description": "eclagent process",
+      "type": "array",
+      "items": {
+        "allOf": [
+          { "$ref": "#/definitions/eclagent" },
+          { 
+            "name": {
+              "type": "string",
+              "description": "The name of the eclagent process"
+            },
+            "required": [ "name" ] 
+          }
+        ]
+      }
+    },
+    "roxie": {
+      "description": "eclagent process",
+      "type": "array",
+      "items": { "$ref": "#/definitions/roxie" }
+    },
+    "thor": {
+      "description": "thor process",
+      "type": "array",
+      "items": { "$ref": "#/definitions/thor" }
+    }
+  },
+  "required": [
+    "dali"
+  ],
+  "title": "Values",
+  "type": "object",
+  "definitions": {
+    "global": {
+      "type": "object",
+      "properties": {
+        "dllserver": {
+          "$ref": "#/definitions/storage"
+        },
+        "hostStorage": {
+          "type": "boolean"
+        },
+        "dataStorage": {
+          "$ref": "#/definitions/storage"
+        },
+        "image": {
+          "$ref": "#/definitions/image"
+        }
+      },
+      "additionalProperties": false
+    },
+    "image": {
+      "type": "object",
+      "properties": {
+        "version": {
+          "type": "string"
+        },
+        "root": {
+          "type": "string",
+          "default": "hpccsystems"
+        },
+        "pullPolicy": {
+          "type": "string",
+          "enum": ["IfNotPresent", "Always", "Never"]
+        }
+      },
+      "additionalProperties": false
+    },
+    "storage": {
+      "type": "object",
+      "properties": {
+        "storageSize": {
+          "type": "string"
+        },
+        "storageClass": {
+          "type": "string"
+        },
+        "existingClaim": {
+          "type": "string"
+        }
+      },
+      "required": [ "storageSize" ],
+      "additionalProperties": false
+    },
+    "dali": {
+      "type": "object",
+      "required": [ "name" ],
+      "additionalProperties": { "type": ["integer", "string", "boolean"] },
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "The name of the dali process"
+        },
+        "image": {
+          "$ref": "#/definitions/image"
+        }
+      }
+    },
+    "eclccserver": {
+      "type": "object",
+      "required": [ "name" ],
+      "additionalProperties": { "type": ["integer", "string", "boolean"] },
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "The name of the eclccserver process"
+        },
+        "replicas": {
+          "type": "integer"
+        },
+        "listen": {
+          "type": "array",
+          "items": { "type": "string" }
+        },
+        "image": {
+          "$ref": "#/definitions/image"
+        }
+      }
+    },
+    "esp": {
+      "type": "object",
+      "required": [ "name" ],
+      "additionalProperties": { "type": ["integer", "string", "boolean"] },
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "The name of the esp process"
+        },
+        "replicas": {
+          "type": "integer"
+        },
+        "image": {
+          "$ref": "#/definitions/image"
+        }
+      }
+    },
+    "eclagent": {
+      "type": "object",
+      "additionalProperties": { "type": ["integer", "string", "boolean"] },
+      "properties": {
+        "replicas": {
+          "type": "integer"
+        },
+        "containerPerAgent": {
+          "type": "boolean",
+          "description": "Should workunits execute in their own container, or as child processes"
+        },
+        "image": {
+          "$ref": "#/definitions/image"
+        }
+      }
+    },
+    "roxie": {
+      "type": "object",
+      "required": [ "name" ],
+      "additionalProperties": { "type": ["integer", "string", "boolean"] },
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "The name of the roxie process"
+        },
+        "ports": {
+          "type": "array",
+          "description": "The ports to listen on",
+          "items": { "type": "integer" }
+        },
+        "image": {
+          "$ref": "#/definitions/image"
+        }
+      }
+    },
+    "thor": {
+      "type": "object",
+      "required": [ "name" ],
+      "additionalProperties": { "type": ["integer", "string", "boolean"] },
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "The name of the thor process"
+        },
+        "eclagent": {
+          "$ref": "#/definitions/eclagent"
+        },
+        "image": {
+          "$ref": "#/definitions/image"
+        }
+      }
+    }
+  }
+}

+ 4 - 3
dockerfiles/hpcc/values.yaml

@@ -52,14 +52,16 @@ eclagent:
 eclccserver:
 - name: myeclccserver
   replicas: 1
-  listen: [ thor1 ]
+## Specify a list of queues to listen on if you don't want this eclccserver listening on all queues
+# listen: [ thor ]
     
 esp:
 - name: myesp
   replicas: 1
 
-roxieX:
+roxie:
 - name: roxie
+  disabled: false
   ports: [9876,0]
   numChannels: 2
   serverReplicas: 1
@@ -73,6 +75,5 @@ thor:
   globalMemorySize: 4096
   maxActive: 2
   eclagent:
-    queueNames: "thor.agent" # kludge to match environment - until esp services can pick up dynamically
     replicas: 1
     containerPerAgent: false