mirror of
https://github.com/coder/coder.git
synced 2026-11-03 05:55:24 +08:00
Updates schema for ai-gateway chart. Missing piece from https://github.com/coder/coder/pull/27682
144 lines
6.9 KiB
JSON
144 lines
6.9 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"libcoder": {"type": "object"},
|
|
"nameOverride": {"type": "string"},
|
|
"coder": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["env", "envFrom", "image", "initContainers", "annotations", "labels", "podAnnotations", "podLabels", "serviceAccount", "securityContext", "podSecurityContext", "volumes", "volumeMounts", "replicaCount", "lifecycle", "resources", "startupProbe", "livenessProbe", "readinessProbe", "certs", "affinity", "tolerations", "nodeSelector", "topologySpreadConstraints", "priorityClassName", "command"],
|
|
"properties": {
|
|
"env": {"type": "array", "items": {"type": "object", "required": ["name"]}},
|
|
"envFrom": {"type": "array", "items": {"type": "object"}},
|
|
"image": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["repo", "tag", "pullPolicy", "pullSecrets"],
|
|
"properties": {
|
|
"repo": {"type": "string", "minLength": 1},
|
|
"tag": {"type": "string"},
|
|
"pullPolicy": {"enum": ["Always", "IfNotPresent", "Never"]},
|
|
"pullSecrets": {"type": "array", "items": {"type": "object"}}
|
|
}
|
|
},
|
|
"initContainers": {"type": "array"},
|
|
"annotations": {"type": "object"},
|
|
"labels": {"type": "object"},
|
|
"podAnnotations": {"type": "object"},
|
|
"podLabels": {"type": "object"},
|
|
"serviceAccount": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["annotations", "name", "disableCreate"],
|
|
"properties": {
|
|
"annotations": {"type": "object"},
|
|
"name": {"type": "string", "minLength": 1},
|
|
"disableCreate": {"type": "boolean"},
|
|
"labels": {"type": "object"}
|
|
}
|
|
},
|
|
"securityContext": {"type": "object"},
|
|
"podSecurityContext": {"type": "object"},
|
|
"volumes": {"type": "array"},
|
|
"volumeMounts": {"type": "array"},
|
|
"replicaCount": {"type": "integer", "minimum": 0},
|
|
"lifecycle": {"type": "object"},
|
|
"resources": {"type": "object"},
|
|
"startupProbe": {"$ref": "#/definitions/healthProbe"},
|
|
"livenessProbe": {"$ref": "#/definitions/healthProbe"},
|
|
"readinessProbe": {"$ref": "#/definitions/probe"},
|
|
"certs": {
|
|
"type": "object", "additionalProperties": false, "required": ["secrets"],
|
|
"properties": {
|
|
"secrets": {"type": "array", "items": {"type": "object", "required": ["name", "key"]}}
|
|
}
|
|
},
|
|
"affinity": {"type": "object"},
|
|
"tolerations": {"type": "array"},
|
|
"nodeSelector": {"type": "object"},
|
|
"topologySpreadConstraints": {"type": "array"},
|
|
"priorityClassName": {"type": "string"},
|
|
"command": {"type": "array", "minItems": 1, "items": {"type": "string"}}
|
|
}
|
|
},
|
|
"aigateway": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["keySecret", "coderTLS", "listenerTLS", "terminationGracePeriodSeconds"],
|
|
"properties": {
|
|
"keySecret": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["name", "key"],
|
|
"properties": {"name": {"type": "string"}, "key": {"type": "string"}}
|
|
},
|
|
"coderTLS": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["caSecret", "clientSecret"],
|
|
"properties": {
|
|
"caSecret": {
|
|
"type": "object", "additionalProperties": false, "required": ["name", "key"],
|
|
"properties": {"name": {"type": "string"}, "key": {"type": "string"}}
|
|
},
|
|
"clientSecret": {
|
|
"type": "object", "additionalProperties": false, "required": ["name", "certKey", "keyKey"],
|
|
"properties": {"name": {"type": "string"}, "certKey": {"type": "string"}, "keyKey": {"type": "string"}}
|
|
}
|
|
}
|
|
},
|
|
"listenerTLS": {
|
|
"type": "object", "additionalProperties": false, "required": ["name", "certKey", "keyKey"],
|
|
"properties": {"name": {"type": "string"}, "certKey": {"type": "string"}, "keyKey": {"type": "string"}}
|
|
},
|
|
"terminationGracePeriodSeconds": {"type": "integer", "minimum": 0}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["enable", "type", "port", "annotations", "sessionAffinity", "externalTrafficPolicy", "loadBalancerClass", "loadBalancerIP"],
|
|
"properties": {
|
|
"enable": {"type": "boolean"},
|
|
"type": {"enum": ["ClusterIP", "NodePort", "LoadBalancer"]},
|
|
"port": {"type": "integer", "minimum": 1, "maximum": 65535},
|
|
"annotations": {"type": "object"},
|
|
"sessionAffinity": {"enum": ["None", "ClientIP"]},
|
|
"externalTrafficPolicy": {"enum": ["Cluster", "Local"]},
|
|
"loadBalancerClass": {"type": "string"},
|
|
"loadBalancerIP": {"type": "string"},
|
|
"nodePort": {"type": ["integer", "null"], "minimum": 30000, "maximum": 32767}
|
|
}
|
|
},
|
|
"ingress": {
|
|
"type": "object", "additionalProperties": false,
|
|
"required": ["enable", "className", "annotations", "host", "path", "pathType", "tls"],
|
|
"properties": {
|
|
"enable": {"type": "boolean"}, "className": {"type": "string"}, "annotations": {"type": "object"},
|
|
"host": {"type": "string"}, "path": {"type": "string"}, "pathType": {"enum": ["Exact", "Prefix", "ImplementationSpecific"]},
|
|
"tls": {"type": "object", "additionalProperties": false, "required": ["enable", "secretName"], "properties": {"enable": {"type": "boolean"}, "secretName": {"type": "string"}}}
|
|
}
|
|
},
|
|
"httproute": {
|
|
"type": "object", "additionalProperties": false, "required": ["enable", "parentRefs", "hostnames", "annotations"],
|
|
"properties": {"enable": {"type": "boolean"}, "parentRefs": {"type": "array"}, "hostnames": {"type": "array", "items": {"type": "string"}}, "annotations": {"type": "object"}}
|
|
},
|
|
"extraTemplates": {"type": "array", "items": {"oneOf": [{"type": "string"}, {"type": "object"}]}}
|
|
},
|
|
"required": ["coder", "aigateway", "service", "ingress", "httproute", "extraTemplates"],
|
|
"definitions": {
|
|
"healthProbe": {
|
|
"allOf": [
|
|
{"$ref": "#/definitions/probe"},
|
|
{"properties": {"successThreshold": {"type": "integer", "const": 1}}}
|
|
]
|
|
},
|
|
"probe": {
|
|
"type": "object", "additionalProperties": false, "required": ["enabled", "initialDelaySeconds"],
|
|
"properties": {
|
|
"enabled": {"type": "boolean"},
|
|
"initialDelaySeconds": {"type": "integer", "minimum": 0},
|
|
"periodSeconds": {"type": "integer", "minimum": 1},
|
|
"timeoutSeconds": {"type": "integer", "minimum": 1},
|
|
"successThreshold": {"type": "integer", "minimum": 1},
|
|
"failureThreshold": {"type": "integer", "minimum": 1}
|
|
}
|
|
}
|
|
}
|
|
}
|