{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "additionalProperties": false, "properties": { "global": { "type": "object" }, "replicaCount": { "type": "integer", "minimum": 1 }, "image": { "type": "object", "additionalProperties": false, "required": ["registry", "repository", "tag", "pullPolicy"], "properties": { "registry": { "type": "string", "minLength": 1 }, "repository": { "type": "string", "minLength": 1 }, "tag": { "type": "string" }, "pullPolicy": { "enum": ["Always", "IfNotPresent", "Never"] } } }, "imagePullSecrets": { "type": "array", "items": { "oneOf": [ { "type": "string", "minLength": 1 }, { "type": "object", "additionalProperties": false, "required": ["name"], "properties": { "name": { "type": "string", "minLength": 1 } } } ] } }, "nameOverride": { "type": "string" }, "fullnameOverride": { "type": "string" }, "timezone": { "type": "string", "minLength": 1 }, "config": { "type": "object", "additionalProperties": false, "required": ["general", "accounts", "secretRevision"], "properties": { "secretRevision": { "type": "string" }, "general": { "type": "object" }, "accounts": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["immichServerUrl", "apiKeySecret", "options"], "properties": { "immichServerUrl": { "type": "string", "format": "uri" }, "apiKeySecret": { "type": "object", "additionalProperties": false, "required": ["name", "key"], "properties": { "name": { "type": "string", "minLength": 1 }, "key": { "type": "string", "minLength": 1 } } }, "options": { "type": "object" } } } } } }, "service": { "type": "object", "additionalProperties": false, "required": ["type", "port"], "properties": { "type": { "enum": ["ClusterIP", "NodePort", "LoadBalancer"] }, "port": { "type": "integer", "minimum": 1, "maximum": 65535 } } }, "ingress": { "type": "object", "additionalProperties": false, "required": ["enabled", "className", "annotations", "hosts", "tls"], "properties": { "enabled": { "type": "boolean" }, "className": { "type": "string" }, "annotations": { "type": "object", "additionalProperties": { "type": "string" } }, "hosts": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["host", "paths"], "properties": { "host": { "type": "string", "minLength": 1 }, "paths": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["path", "pathType"], "properties": { "path": { "type": "string", "minLength": 1 }, "pathType": { "enum": ["Exact", "Prefix", "ImplementationSpecific"] } } } } } } }, "tls": { "type": "array", "items": { "type": "object" } } } }, "persistence": { "type": "object", "additionalProperties": false, "required": ["enabled", "existingClaim", "storageClass", "accessModes", "size"], "properties": { "enabled": { "type": "boolean" }, "existingClaim": { "type": "string" }, "storageClass": { "type": "string" }, "accessModes": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "size": { "type": "string", "minLength": 1 } } }, "podDisruptionBudget": { "type": "object", "additionalProperties": false, "required": ["enabled", "minAvailable"], "properties": { "enabled": { "type": "boolean" }, "minAvailable": { "oneOf": [{ "type": "integer", "minimum": 0 }, { "type": "string" }] } } }, "prometheusRule": { "type": "object", "additionalProperties": false, "required": ["enabled", "labels"], "properties": { "enabled": { "type": "boolean" }, "labels": { "type": "object", "additionalProperties": { "type": "string" } } } }, "podAntiAffinity": { "type": "object", "additionalProperties": false, "required": ["enabled"], "properties": { "enabled": { "type": "boolean" } } }, "podAnnotations": { "type": "object", "additionalProperties": { "type": "string" } }, "podLabels": { "type": "object", "additionalProperties": { "type": "string" } }, "podSecurityContext": { "type": "object" }, "securityContext": { "type": "object" }, "resources": { "type": "object" }, "startupProbe": { "$ref": "#/$defs/probe" }, "readinessProbe": { "$ref": "#/$defs/probe" }, "livenessProbe": { "$ref": "#/$defs/probe" }, "nodeSelector": { "type": "object" }, "tolerations": { "type": "array", "items": { "type": "object" } }, "affinity": { "type": "object" } }, "required": [ "replicaCount", "image", "imagePullSecrets", "nameOverride", "fullnameOverride", "timezone", "config", "service", "ingress", "persistence", "podDisruptionBudget", "prometheusRule", "podAntiAffinity", "podAnnotations", "podLabels", "podSecurityContext", "securityContext", "resources", "startupProbe", "readinessProbe", "livenessProbe", "nodeSelector", "tolerations", "affinity" ], "$defs": { "probe": { "type": "object", "additionalProperties": false, "properties": { "failureThreshold": { "type": "integer", "minimum": 1 }, "initialDelaySeconds": { "type": "integer", "minimum": 0 }, "periodSeconds": { "type": "integer", "minimum": 1 }, "timeoutSeconds": { "type": "integer", "minimum": 1 } } } } }