helm-charts/charts/library/common/schemas/containers.json
2024-03-11 13:21:58 +01:00

367 lines
8.3 KiB
JSON

{
"container": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"default": true
},
"args": {
"oneOf": [
{
"type": "array",
"items": {"type": "string"}
},
{"type": "string"}
]
},
"command": {
"oneOf": [
{
"type": "array",
"items": {"type": "string"}
},
{"type": "string"}
]
},
"dependsOn": {
"oneOf": [
{
"type": "array",
"items": {"type": "string"}
},
{"type": "string"}
]
},
"env": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{"$ref": "#/envValueWithName"},
{"$ref": "#/envValueFromWithName"},
{"$ref": "#/envImplicitValueFromWithName"}
]
}
},
{
"type": "object",
"additionalProperties": {
"anyOf": [
{"type": ["string", "number", "boolean"]},
{"$ref": "#/envValue"},
{"$ref": "#/envValueFrom"},
{"$ref": "#/envImplicitValueFrom"}
]
}
}
]
},
"envFrom": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"configMap": {
"type": "string"
},
"configMapRef": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {"type": "string"},
"identifier": {"type": "string"},
"optional": {"type": "boolean"}
},
"oneOf": [{"required": ["name"]}, {"required": ["identifier"]}]
},
"prefix": {
"type": ["string", "null"]
},
"secret": {
"type": "string"
},
"secretRef": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {"type": "string"},
"identifier": {"type": "string"},
"optional": {"type": "boolean"}
},
"oneOf": [{"required": ["name"]}, {"required": ["identifier"]}]
}
}
}
},
"image": {
"type": "object",
"additionalProperties": false,
"properties": {
"pullPolicy": {
"type": "string",
"enum": ["Always", "IfNotPresent"]
},
"repository": {
"type": "string"
},
"tag": {
"type": ["string", "number"]
}
},
"required": ["repository", "tag"]
},
"lifecycle": {
"$ref": "k8s-api.json#/core.v1.Lifecycle"
},
"nameOverride": {
"type": "string"
},
"ports": {
"type": "array",
"items": {
"$ref": "k8s-api.json#/core.v1.ContainerPort"
}
},
"probes": {
"type": "object",
"additionalProperties": false,
"properties": {
"liveness": {
"$ref": "#/probe"
},
"readiness": {
"$ref": "#/probe"
},
"startup": {
"$ref": "#/probe"
}
}
},
"resources": {
"$ref": "k8s-api.json#/core.v1.ResourceRequirements"
},
"restartPolicy": {
"type": "string"
},
"securityContext": {
"$ref": "k8s-api.json#/core.v1.ContainerSecurityContext"
},
"terminationMessagePath": {
"type": "string"
},
"terminationMessagePolicy": {
"type": "string",
"enum": ["File", "FallbackToLogsOnError"]
},
"workingDir": {
"type": "string"
}
}
},
"envValueWithName": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"value": {
"type": ["string", "number", "boolean"]
}
},
"required": ["name", "value"]
},
"envValue": {
"type": "object",
"additionalProperties": false,
"properties": {
"value": {
"type": ["string", "number", "boolean"]
},
"dependsOn": {"$ref": "#/envDependsOn"}
},
"required": ["value"]
},
"envValueFromWithName": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"valueFrom": {
"oneOf": [
{"$ref": "#/envValueFrom.fieldRef"},
{"$ref": "#/envValueFrom.secretKeyRef"}
]
},
"dependsOn": {"$ref": "#/envDependsOn"}
},
"required": ["name", "valueFrom"]
},
"envValueFrom": {
"type": "object",
"additionalProperties": false,
"properties": {
"valueFrom": {
"oneOf": [
{"$ref": "#/envValueFrom.fieldRef"},
{"$ref": "#/envValueFrom.secretKeyRef"}
]
},
"dependsOn": {"$ref": "#/envDependsOn"}
},
"required": ["valueFrom"]
},
"envImplicitValueFromWithName": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"fieldRef": {"$ref": "#/envValueFrom.fieldPath"},
"secretKeyRef": {"$ref": "#/envValueFrom.secretKeyRef"},
"configMapKeyRef": {"$ref": "#/envValueFrom.configMapKeyRef"}
},
"required": ["name"],
"dependencies": {
"fieldRef": {
"allOf": [
{"not": {"required": ["secretKeyRef"]}},
{"not": {"required": ["configMapKeyRef"]}}
]
},
"secretKeyRef": {
"allOf": [
{"not": {"required": ["fieldRef"]}},
{"not": {"required": ["configMapKeyRef"]}}
]
},
"configMapKeyRef": {
"allOf": [
{"not": {"required": ["secretKeyRef"]}},
{"not": {"required": ["configMapKeyRef"]}}
]
}
}
},
"envImplicitValueFrom": {
"type": "object",
"oneOf": [
{"$ref": "#/envValueFrom.fieldRef"},
{"$ref": "#/envValueFrom.secretKeyRef"},
{"$ref": "#/envValueFrom.configMapKeyRef"}
]
},
"envDependsOn": {
"oneOf": [
{"type": "string"},
{"type": "array", "items": {"type": "string"}}
]
},
"envValueFrom.secretKeyRef": {
"type": "object",
"additionalProperties": false,
"properties": {
"secretKeyRef": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"key": {
"type": "string"
}
},
"required": ["name", "key"]
}
},
"required": ["secretKeyRef"]
},
"envValueFrom.configMapKeyRef": {
"type": "object",
"additionalProperties": false,
"properties": {
"configMapKeyRef": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"key": {
"type": "string"
}
},
"required": ["name", "key"]
}
},
"required": ["secretKeyRef"]
},
"envValueFrom.fieldRef": {
"type": "object",
"additionalProperties": false,
"properties": {
"fieldRef": {
"$ref": "#/envValueFrom.fieldPath"
}
},
"required": ["fieldRef"]
},
"envValueFrom.fieldPath": {
"type": "object",
"additionalProperties": false,
"properties": {
"apiVersion": {
"type": "string"
},
"fieldPath": {
"type": "string"
}
},
"required": ["fieldPath"]
},
"probe": {
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"default": false
},
"custom": {
"type": "boolean",
"default": false
},
"path": {
"type": "string"
},
"port": {
"type": ["number", "string"]
},
"spec": {
"$ref": "k8s-api.json#/core.v1.Probe"
},
"type": {
"type": "string",
"enum": ["TCP", "HTTP", "HTTPS", "AUTO"]
}
}
}
}