diff --git a/docs/examples/src/charts/charts.k b/docs/examples/src/charts/charts.k index fd98c0e7..1e2bb6a6 100644 --- a/docs/examples/src/charts/charts.k +++ b/docs/examples/src/charts/charts.k @@ -4,14 +4,14 @@ charts: helm.Charts = { podinfo: { chart = "podinfo" repoURL = "https://stefanprodan.github.io/podinfo" - targetRevision = "6.13.0" + targetRevision = "6.14.0" schemaGenerator = "AUTO" schemaValidator = "KCL" } podinfo_v5: { chart = "podinfo" repoURL = "https://stefanprodan.github.io/podinfo" - targetRevision = "5.2.1" + targetRevision = "6.14.0" schemaGenerator = "AUTO" schemaValidator = "KCL" } diff --git a/docs/examples/src/charts/podinfo/chart.k b/docs/examples/src/charts/podinfo/chart.k index ffbea9f1..e088a199 100644 --- a/docs/examples/src/charts/podinfo/chart.k +++ b/docs/examples/src/charts/podinfo/chart.k @@ -14,12 +14,12 @@ schema Chart(helm.Chart): values : Values | any, optional chart : str, required, default is "podinfo" repoURL : str, required, default is "https://stefanprodan.github.io/podinfo" - targetRevision : str, optional, default is "6.13.0" + targetRevision : str, optional, default is "6.14.0" schemaValidator : "KCL" | "HELM", optional, default is "KCL" """ values?: Values | any chart: str = "podinfo" repoURL: str = "https://stefanprodan.github.io/podinfo" - targetRevision?: str = "6.13.0" + targetRevision?: str = "6.14.0" schemaValidator?: "KCL" | "HELM" = "KCL" diff --git a/docs/examples/src/charts/podinfo/values.schema.json b/docs/examples/src/charts/podinfo/values.schema.json index 528b89aa..32a72658 100644 --- a/docs/examples/src/charts/podinfo/values.schema.json +++ b/docs/examples/src/charts/podinfo/values.schema.json @@ -1,987 +1,1414 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, "properties": { - "replicaCount": { - "type": "integer", - "default": 1 - }, - "logLevel": { - "type": "string", - "default": "info" - }, - "host": { - "description": "0.0.0.0", - "default": null + "affinity": { + "additionalProperties": true, + "required": [], + "title": "affinity", + "type": "object" }, "backend": { - "description": "http://backend-podinfo:9898/echo", - "default": null + "default": "", + "required": [], + "title": "backend", + "type": "null" }, "backends": { - "type": "array", - "default": [] + "items": { + "required": [] + }, + "required": [], + "title": "backends", + "type": "array" }, - "image": { - "type": "object", + "cache": { + "default": "", + "description": "Redis address in the format tcp://\u003chost\u003e:\u003cport\u003e", + "required": [], + "title": "cache", + "type": "string" + }, + "certificate": { + "additionalProperties": true, + "description": "create a certificate manager certificate (cert-manager required)", "properties": { - "repository": { - "type": "string", - "default": "ghcr.io/stefanprodan/podinfo" - }, - "tag": { - "type": "string", - "default": "6.13.0" + "create": { + "default": false, + "required": [], + "title": "create", + "type": "boolean" }, - "pullPolicy": { - "type": "string", - "default": "IfNotPresent" + "dnsNames": { + "description": "the hostname / subject alternative names for the certificate", + "items": { + "required": [], + "type": "string" + }, + "required": [], + "title": "dnsNames", + "type": "array" }, - "pullSecrets": { - "type": "array", - "default": [] + "issuerRef": { + "additionalProperties": true, + "description": "the issuer used to issue the certificate", + "properties": { + "kind": { + "default": "ClusterIssuer", + "required": [], + "title": "kind", + "type": "string" + }, + "name": { + "default": "self-signed", + "required": [], + "title": "name", + "type": "string" + } + }, + "required": [], + "title": "issuerRef", + "type": "object" } }, - "additionalProperties": true - }, - "prefix": { - "type": "string", - "default": "/" + "required": [], + "title": "certificate", + "type": "object" }, - "ui": { - "type": "object", + "config": { + "additionalProperties": true, + "description": "config file settings", "properties": { - "color": { - "type": "string", - "default": "#34577c" - }, - "message": { - "type": "string", - "default": "" + "name": { + "default": "", + "description": "config file name", + "required": [], + "title": "name", + "type": "string" }, - "logo": { - "type": "string", - "default": "" + "path": { + "default": "", + "description": "config file path", + "required": [], + "title": "path", + "type": "string" } }, - "additionalProperties": true + "required": [], + "title": "config", + "type": "object" + }, + "extraArgs": { + "description": "Additional command line arguments to pass to podinfo container", + "items": { + "required": [] + }, + "required": [], + "title": "extraArgs", + "type": "array" + }, + "extraEnvs": { + "description": "Extra environment variables for the podinfo container", + "items": { + "required": [] + }, + "required": [], + "title": "extraEnvs", + "type": "array" }, "faults": { - "type": "object", + "additionalProperties": true, + "description": "failure conditions", "properties": { "delay": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "delay", + "type": "boolean" }, "error": { - "type": "boolean", - "default": false - }, - "unhealthy": { - "type": "boolean", - "default": false - }, - "unready": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "error", + "type": "boolean" }, "testFail": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "testFail", + "type": "boolean" }, "testTimeout": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "testTimeout", + "type": "boolean" + }, + "unhealthy": { + "default": false, + "required": [], + "title": "unhealthy", + "type": "boolean" + }, + "unready": { + "default": false, + "required": [], + "title": "unready", + "type": "boolean" } }, - "description": "failure conditions", - "additionalProperties": true + "required": [], + "title": "faults", + "type": "object" }, - "service": { - "type": "object", + "global": { + "additionalProperties": true, + "description": "Global values are values that can be accessed from any chart or subchart by exactly the same name.", + "required": [], + "title": "global", + "type": "object" + }, + "grpcRoute": { + "additionalProperties": true, + "description": "Expose the gRPC service via Gateway GRPCRoute\nRequires a Gateway controller with GRPCRoute support\nDocs https://gateway-api.sigs.k8s.io/guides/grpc-routing/", "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "annotations": { - "type": "object", - "additionalProperties": true - }, "additionalLabels": { - "type": "object", - "additionalProperties": true - }, - "type": { - "type": "string", - "default": "ClusterIP" - }, - "metricsPort": { - "type": "integer", - "default": 9797 - }, - "httpPort": { - "type": "integer", - "default": 9898 - }, - "externalPort": { - "type": "integer", - "default": 9898 - }, - "grpcPort": { - "type": "integer", - "default": 9999 + "additionalProperties": true, + "description": "Add additional labels to the GRPCRoute.", + "required": [], + "title": "additionalLabels", + "type": "object" }, - "grpcService": { - "type": "string", - "default": "podinfo" + "annotations": { + "additionalProperties": true, + "description": "GRPCRoute annotations.", + "required": [], + "title": "annotations", + "type": "object" }, - "nodePort": { - "type": "integer", - "default": 31198 + "enabled": { + "default": false, + "description": "GRPCRoute enabled.", + "required": [], + "title": "enabled", + "type": "boolean" }, - "hostPort": { - "description": "the port used to bind the http port to the host\nNOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing\nin local clusters such as kind without port forwarding", - "default": null + "hostnames": { + "description": "Hostnames matching HTTP header.", + "items": { + "required": [], + "type": "string" + }, + "required": [], + "title": "hostnames", + "type": "array" }, - "trafficDistribution": { - "type": "string", - "description": "Stable from Kubernetes v1.33+ with a value of PreferClose. Additional values are PreferSameZone and PreferSameNode from v1.34+. Empty string means it's disabled.", - "default": "" + "parentRefs": { + "description": "Which Gateways this Route is attached to.", + "items": { + "additionalProperties": true, + "properties": { + "name": { + "default": "gateway", + "required": [], + "title": "name", + "type": "string" + }, + "sectionName": { + "default": "http", + "required": [], + "title": "sectionName", + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "parentRefs", + "type": "array" }, - "externalTrafficPolicy": { - "type": "string", - "default": "" + "rules": { + "description": "List of rules applied.", + "items": { + "additionalProperties": true, + "required": [], + "type": "object" + }, + "required": [], + "title": "rules", + "type": "array" } }, - "description": "Kubernetes Service settings", - "additionalProperties": true + "required": [], + "title": "grpcRoute", + "type": "object" }, "h2c": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - } - }, + "additionalProperties": true, "description": "enable h2c protocol (non-TLS version of HTTP/2)", - "additionalProperties": true - }, - "config": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "config file path", - "default": "" - }, - "name": { - "type": "string", - "description": "config file name", - "default": "" - } - }, - "description": "config file settings", - "additionalProperties": true - }, - "extraArgs": { - "type": "array", - "description": "Additional command line arguments to pass to podinfo container", - "default": [] - }, - "extraEnvs": { - "type": "array", - "description": "Extra environment variables for the podinfo container", - "default": [] - }, - "tls": { - "type": "object", "properties": { "enabled": { - "type": "boolean", - "default": false - }, - "secretName": { - "description": "the name of the secret used to mount the certificate key pair", - "default": null - }, - "certPath": { - "type": "string", - "description": "the path where the certificate key pair will be mounted", - "default": "/data/cert" - }, - "port": { - "type": "integer", - "description": "the port used to host the tls endpoint on the service", - "default": 9899 - }, - "hostPort": { - "description": "the port used to bind the tls port to the host\nNOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing\nin local clusters such as kind without port forwarding", - "default": null - } - }, - "description": "enable tls on the podinfo service", - "additionalProperties": true - }, - "certificate": { - "type": "object", - "properties": { - "create": { - "type": "boolean", - "default": false - }, - "issuerRef": { - "type": "object", - "properties": { - "kind": { - "type": "string", - "default": "ClusterIssuer" - }, - "name": { - "type": "string", - "default": "self-signed" - } - }, - "description": "the issuer used to issue the certificate", - "additionalProperties": true - }, - "dnsNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "the hostname / subject alternative names for the certificate", - "default": ["podinfo"] + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" } }, - "description": "create a certificate manager certificate (cert-manager required)", - "additionalProperties": true + "required": [], + "title": "h2c", + "type": "object" }, "hooks": { - "type": "object", + "additionalProperties": true, + "description": "Helm hooks (for testing purposes)", "properties": { - "preInstall": { - "type": "object", + "postDelete": { + "additionalProperties": true, "properties": { "job": { - "type": "object", + "additionalProperties": true, "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, - "hookDeletePolicy": { - "type": "string", - "default": "hook-succeeded,hook-failed" + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" }, - "ttlSecondsAfterFinished": { - "default": null + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" }, "sleepSeconds": { - "default": null + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" }, - "exitCode": { - "type": "integer", - "default": 0 + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" } }, - "additionalProperties": true + "required": [], + "title": "job", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "postDelete", + "type": "object" }, "postInstall": { - "type": "object", + "additionalProperties": true, "properties": { "job": { - "type": "object", + "additionalProperties": true, "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, - "hookDeletePolicy": { - "type": "string", - "default": "hook-succeeded,hook-failed" + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" }, - "ttlSecondsAfterFinished": { - "default": null + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" }, "sleepSeconds": { - "default": null + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" }, - "exitCode": { - "type": "integer", - "default": 0 + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" } }, - "additionalProperties": true + "required": [], + "title": "job", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "postInstall", + "type": "object" }, - "preDelete": { - "type": "object", + "postRollback": { + "additionalProperties": true, "properties": { "job": { - "type": "object", + "additionalProperties": true, "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, - "hookDeletePolicy": { - "type": "string", - "default": "hook-succeeded,hook-failed" + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" }, - "ttlSecondsAfterFinished": { - "default": null + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" }, "sleepSeconds": { - "default": null + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" }, - "exitCode": { - "type": "integer", - "default": 0 + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" } }, - "additionalProperties": true + "required": [], + "title": "job", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "postRollback", + "type": "object" }, - "postDelete": { - "type": "object", + "postUpgrade": { + "additionalProperties": true, "properties": { "job": { - "type": "object", + "additionalProperties": true, "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, - "hookDeletePolicy": { - "type": "string", - "default": "hook-succeeded,hook-failed" + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" }, - "ttlSecondsAfterFinished": { - "default": null + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" }, "sleepSeconds": { - "default": null + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" }, - "exitCode": { - "type": "integer", - "default": 0 + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" } }, - "additionalProperties": true + "required": [], + "title": "job", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "postUpgrade", + "type": "object" }, - "preUpgrade": { - "type": "object", + "preDelete": { + "additionalProperties": true, "properties": { "job": { - "type": "object", + "additionalProperties": true, "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, - "hookDeletePolicy": { - "type": "string", - "default": "hook-succeeded,hook-failed" + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" }, - "ttlSecondsAfterFinished": { - "default": null + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" }, "sleepSeconds": { - "default": null + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" }, - "exitCode": { - "type": "integer", - "default": 0 + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" } }, - "additionalProperties": true + "required": [], + "title": "job", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "preDelete", + "type": "object" }, - "postUpgrade": { - "type": "object", + "preInstall": { + "additionalProperties": true, "properties": { "job": { - "type": "object", + "additionalProperties": true, "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, - "hookDeletePolicy": { - "type": "string", - "default": "hook-succeeded,hook-failed" + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" }, - "ttlSecondsAfterFinished": { - "default": null + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" }, "sleepSeconds": { - "default": null + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" }, - "exitCode": { - "type": "integer", - "default": 0 + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" } }, - "additionalProperties": true + "required": [], + "title": "job", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "preInstall", + "type": "object" }, "preRollback": { - "type": "object", + "additionalProperties": true, "properties": { "job": { - "type": "object", + "additionalProperties": true, "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, - "hookDeletePolicy": { - "type": "string", - "default": "hook-succeeded,hook-failed" + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" }, - "ttlSecondsAfterFinished": { - "default": null + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" }, "sleepSeconds": { - "default": null + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" }, - "exitCode": { - "type": "integer", - "default": 0 + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" } }, - "additionalProperties": true + "required": [], + "title": "job", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "preRollback", + "type": "object" }, - "postRollback": { - "type": "object", + "preUpgrade": { + "additionalProperties": true, "properties": { "job": { - "type": "object", + "additionalProperties": true, "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, - "hookDeletePolicy": { - "type": "string", - "default": "hook-succeeded,hook-failed" + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" }, - "ttlSecondsAfterFinished": { - "default": null + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" }, "sleepSeconds": { - "default": null + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" }, - "exitCode": { - "type": "integer", - "default": 0 + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" } }, - "additionalProperties": true + "required": [], + "title": "job", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "preUpgrade", + "type": "object" } }, - "description": "Helm hooks (for testing purposes)", - "additionalProperties": true + "required": [], + "title": "hooks", + "type": "object" + }, + "host": { + "default": "", + "required": [], + "title": "host", + "type": "null" }, "hpa": { - "type": "object", + "additionalProperties": true, + "description": "metrics-server add-on required", "properties": { + "cpu": { + "default": "", + "description": "average total CPU usage per pod (1-100)", + "required": [], + "title": "cpu", + "type": "null" + }, "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, "maxReplicas": { - "type": "integer", - "default": 10 - }, - "cpu": { - "type": ["integer", "null"], - "description": "average total CPU usage per pod (1-100)", - "default": null + "default": 10, + "required": [], + "title": "maxReplicas", + "type": "integer" }, "memory": { + "default": "", "description": "average memory usage per pod (100Mi-1Gi)", - "default": null + "required": [], + "title": "memory", + "type": "null" }, "requests": { + "default": "", "description": "average http requests per second per pod (k8s-prometheus-adapter)", - "default": null + "required": [], + "title": "requests", + "type": "null" } }, - "description": "metrics-server add-on required", - "additionalProperties": true - }, - "cache": { - "type": "string", - "description": "Redis address in the format tcp://\u003chost\u003e:\u003cport\u003e", - "default": "" + "required": [], + "title": "hpa", + "type": "object" }, - "redis": { - "type": "object", + "httpRoute": { + "additionalProperties": true, + "description": "Expose the service via Gateway HTTPRoute\nRequires a Gateway controller\nDocs https://gateway-api.sigs.k8s.io/guides/", "properties": { - "enabled": { - "type": "boolean", - "default": false + "additionalLabels": { + "additionalProperties": true, + "description": "Add additional labels to the HTTPRoute.", + "required": [], + "title": "additionalLabels", + "type": "object" }, - "repository": { - "type": "string", - "default": "docker.io/redis" + "annotations": { + "additionalProperties": true, + "description": "HTTPRoute annotations.", + "required": [], + "title": "annotations", + "type": "object" }, - "tag": { - "type": "string", - "default": "8.6.3" - }, - "imagePullSecrets": { - "type": "array", - "default": [] - } - }, - "description": "Redis deployment", - "additionalProperties": true - }, - "serviceAccount": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Specifies whether a service account should be created", - "default": false - }, - "name": { - "description": "The name of the service account to use.\nIf not set and create is true, a name is generated using the fullname template", - "default": null - }, - "imagePullSecrets": { - "type": "array", - "description": "List of image pull secrets if pulling from private registries", - "default": [] - } - }, - "additionalProperties": true - }, - "securityContext": { - "type": "object", - "description": "set container security context", - "additionalProperties": true - }, - "podSecurityContext": { - "type": "object", - "description": "set pod security context", - "additionalProperties": true - }, - "ingress": { - "type": "object", - "properties": { "enabled": { - "type": "boolean", - "default": false - }, - "className": { - "type": "string", - "default": "" - }, - "additionalLabels": { - "type": "object", - "additionalProperties": true - }, - "annotations": { - "type": "object", - "additionalProperties": true + "default": false, + "description": "HTTPRoute enabled.", + "required": [], + "title": "enabled", + "type": "boolean" }, - "hosts": { - "type": "array", + "hostnames": { + "description": "Hostnames matching HTTP header.", "items": { - "type": "object", - "properties": { - "host": { - "type": "string" - }, - "paths": { - "type": "array", - "items": { - "type": "object", - "properties": { - "path": { - "type": "string" - }, - "pathType": { - "type": "string" - } - }, - "additionalProperties": true - } - } - }, - "additionalProperties": true + "required": [], + "type": "string" }, - "description": "kubernetes.io/tls-acme: \"true\"", - "default": [ - { - "host": "podinfo.local", - "paths": [ - { - "path": "/", - "pathType": "ImplementationSpecific" - } - ] - } - ] - }, - "tls": { - "type": "array", - "default": [] - } - }, - "description": "Expose the service via Kubernetes Ingress Requires an Ingress controller Docs https://kubernetes.io/docs/concepts/services-networking/ingress/", - "additionalProperties": true - }, - "httpRoute": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "HTTPRoute enabled.", - "default": false - }, - "additionalLabels": { - "type": "object", - "description": "Add additional labels to the HTTPRoute.", - "additionalProperties": true - }, - "annotations": { - "type": "object", - "description": "HTTPRoute annotations.", - "additionalProperties": true + "required": [], + "title": "hostnames", + "type": "array" }, "parentRefs": { - "type": "array", + "description": "Which Gateways this Route is attached to.", "items": { - "type": "object", + "additionalProperties": true, "properties": { "name": { + "default": "gateway", + "required": [], + "title": "name", "type": "string" }, "sectionName": { + "default": "http", + "required": [], + "title": "sectionName", "type": "string" } }, - "additionalProperties": true + "required": [], + "type": "object" }, - "description": "Which Gateways this Route is attached to.", - "default": [ - { - "name": "gateway", - "sectionName": "http" - } - ] - }, - "hostnames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Hostnames matching HTTP header.", - "default": ["podinfo.local"] + "required": [], + "title": "parentRefs", + "type": "array" }, "rules": { - "type": "array", + "description": "List of rules and filters applied.", "items": { - "type": "object", + "additionalProperties": true, "properties": { "matches": { - "type": "array", "items": { - "type": "object", + "additionalProperties": true, "properties": { "path": { - "type": "object", + "additionalProperties": true, "properties": { "type": { + "default": "PathPrefix", + "required": [], + "title": "type", "type": "string" }, "value": { + "default": "/", + "required": [], + "title": "value", "type": "string" } }, - "additionalProperties": true + "required": [], + "title": "path", + "type": "object" } }, - "additionalProperties": true - } + "required": [], + "type": "object" + }, + "required": [], + "title": "matches", + "type": "array" } }, - "additionalProperties": true + "required": [], + "type": "object" }, - "description": "List of rules and filters applied.", - "default": [ - { - "matches": [ - { - "path": { - "type": "PathPrefix", - "value": "/" - } - } - ] - } - ] + "required": [], + "title": "rules", + "type": "array" } }, - "description": "Expose the service via Gateway HTTPRoute Requires a Gateway controller Docs https://gateway-api.sigs.k8s.io/guides/", - "additionalProperties": true + "required": [], + "title": "httpRoute", + "type": "object" }, - "grpcRoute": { - "type": "object", + "image": { + "additionalProperties": true, "properties": { - "enabled": { - "type": "boolean", - "description": "GRPCRoute enabled.", - "default": false + "pullPolicy": { + "default": "IfNotPresent", + "required": [], + "title": "pullPolicy", + "type": "string" + }, + "pullSecrets": { + "items": { + "required": [] + }, + "required": [], + "title": "pullSecrets", + "type": "array" + }, + "repository": { + "default": "ghcr.io/stefanprodan/podinfo", + "required": [], + "title": "repository", + "type": "string" }, + "tag": { + "default": "6.14.0", + "required": [], + "title": "tag", + "type": "string" + } + }, + "required": [], + "title": "image", + "type": "object" + }, + "ingress": { + "additionalProperties": true, + "description": "Expose the service via Kubernetes Ingress\nRequires an Ingress controller\nDocs https://kubernetes.io/docs/concepts/services-networking/ingress/", + "properties": { "additionalLabels": { - "type": "object", - "description": "Add additional labels to the GRPCRoute.", - "additionalProperties": true + "additionalProperties": true, + "required": [], + "title": "additionalLabels", + "type": "object" }, "annotations": { - "type": "object", - "description": "GRPCRoute annotations.", - "additionalProperties": true + "additionalProperties": true, + "required": [], + "title": "annotations", + "type": "object" }, - "parentRefs": { - "type": "array", + "className": { + "default": "", + "required": [], + "title": "className", + "type": "string" + }, + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "hosts": { + "description": "kubernetes.io/ingress.class: nginx\nkubernetes.io/tls-acme: \"true\"", "items": { - "type": "object", + "additionalProperties": true, "properties": { - "name": { + "host": { + "default": "podinfo.local", + "required": [], + "title": "host", "type": "string" }, - "sectionName": { - "type": "string" + "paths": { + "items": { + "additionalProperties": true, + "properties": { + "path": { + "default": "/", + "required": [], + "title": "path", + "type": "string" + }, + "pathType": { + "default": "ImplementationSpecific", + "required": [], + "title": "pathType", + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "paths", + "type": "array" } }, - "additionalProperties": true + "required": [], + "type": "object" }, - "description": "Which Gateways this Route is attached to.", - "default": [ - { - "name": "gateway", - "sectionName": "http" - } - ] + "required": [], + "title": "hosts", + "type": "array" }, - "hostnames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Hostnames matching HTTP header.", - "default": ["podinfo.local"] - }, - "rules": { - "type": "array", + "tls": { "items": { - "type": "object", - "additionalProperties": true + "required": [] }, - "description": "List of rules applied.", - "default": [{}] - } - }, - "description": "Expose the gRPC service via Gateway GRPCRoute Requires a Gateway controller with GRPCRoute support Docs https://gateway-api.sigs.k8s.io/guides/grpc-routing/", - "additionalProperties": true - }, - "serviceMonitor": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "interval": { - "type": "string", - "default": "15s" - }, - "additionalLabels": { - "type": "object", - "additionalProperties": true + "required": [], + "title": "tls", + "type": "array" } }, - "description": "create Prometheus Operator monitor", - "additionalProperties": true + "required": [], + "title": "ingress", + "type": "object" }, - "resources": { - "type": "object", - "properties": { - "limits": { - "type": ["object", "null"], - "properties": { - "memory": { - "type": "string", - "default": "256Mi" - } - }, - "default": null, - "additionalProperties": true - }, - "requests": { - "type": "object", - "properties": { - "cpu": { - "type": "string", - "default": "1m" - }, - "memory": { - "type": "string", - "default": "16Mi" - } - }, - "additionalProperties": true - } - }, - "additionalProperties": true + "logLevel": { + "default": "info", + "required": [], + "title": "logLevel", + "type": "string" }, "nodeSelector": { - "type": "object", - "additionalProperties": true - }, - "tolerations": { - "type": "array", - "default": [] - }, - "affinity": { - "type": "object", - "additionalProperties": true - }, - "priorityClassName": { - "type": "string", - "default": "" + "additionalProperties": true, + "required": [], + "title": "nodeSelector", + "type": "object" }, "podAnnotations": { - "type": "object", - "additionalProperties": true - }, - "topologySpreadConstraints": { - "type": "array", - "description": "https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/", - "default": [] + "additionalProperties": true, + "required": [], + "title": "podAnnotations", + "type": "object" }, "podDisruptionBudget": { - "type": "object", + "additionalProperties": true, "description": "Disruption budget will be configured only when the replicaCount is greater than 1", - "additionalProperties": true + "required": [], + "title": "podDisruptionBudget", + "type": "object" + }, + "podSecurityContext": { + "additionalProperties": true, + "description": "set pod security context", + "required": [], + "title": "podSecurityContext", + "type": "object" + }, + "prefix": { + "default": "/", + "required": [], + "title": "prefix", + "type": "string" + }, + "priorityClassName": { + "default": "", + "required": [], + "title": "priorityClassName", + "type": "string" }, "probes": { - "type": "object", + "additionalProperties": true, + "description": "https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "properties": { - "readiness": { - "type": "object", + "liveness": { + "additionalProperties": true, "properties": { - "initialDelaySeconds": { - "type": "integer", - "default": 1 + "failureThreshold": { + "default": 3, + "required": [], + "title": "failureThreshold", + "type": "integer" }, - "timeoutSeconds": { - "type": "integer", - "default": 5 + "initialDelaySeconds": { + "default": 1, + "required": [], + "title": "initialDelaySeconds", + "type": "integer" }, - "failureThreshold": { - "type": "integer", - "default": 3 + "periodSeconds": { + "default": 10, + "required": [], + "title": "periodSeconds", + "type": "integer" }, "successThreshold": { - "type": "integer", - "default": 1 + "default": 1, + "required": [], + "title": "successThreshold", + "type": "integer" }, - "periodSeconds": { - "type": "integer", - "default": 10 + "timeoutSeconds": { + "default": 5, + "required": [], + "title": "timeoutSeconds", + "type": "integer" } }, - "additionalProperties": true + "required": [], + "title": "liveness", + "type": "object" }, - "liveness": { - "type": "object", + "readiness": { + "additionalProperties": true, "properties": { - "initialDelaySeconds": { - "type": "integer", - "default": 1 + "failureThreshold": { + "default": 3, + "required": [], + "title": "failureThreshold", + "type": "integer" }, - "timeoutSeconds": { - "type": "integer", - "default": 5 + "initialDelaySeconds": { + "default": 1, + "required": [], + "title": "initialDelaySeconds", + "type": "integer" }, - "failureThreshold": { - "type": "integer", - "default": 3 + "periodSeconds": { + "default": 10, + "required": [], + "title": "periodSeconds", + "type": "integer" }, "successThreshold": { - "type": "integer", - "default": 1 + "default": 1, + "required": [], + "title": "successThreshold", + "type": "integer" }, - "periodSeconds": { - "type": "integer", - "default": 10 + "timeoutSeconds": { + "default": 5, + "required": [], + "title": "timeoutSeconds", + "type": "integer" } }, - "additionalProperties": true + "required": [], + "title": "readiness", + "type": "object" }, "startup": { - "type": "object", + "additionalProperties": true, "properties": { "enable": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enable", + "type": "boolean" }, - "initialDelaySeconds": { - "type": "integer", - "default": 10 + "failureThreshold": { + "default": 20, + "required": [], + "title": "failureThreshold", + "type": "integer" }, - "timeoutSeconds": { - "type": "integer", - "default": 5 + "initialDelaySeconds": { + "default": 10, + "required": [], + "title": "initialDelaySeconds", + "type": "integer" }, - "failureThreshold": { - "type": "integer", - "default": 20 + "periodSeconds": { + "default": 10, + "required": [], + "title": "periodSeconds", + "type": "integer" }, "successThreshold": { - "type": "integer", - "default": 1 + "default": 1, + "required": [], + "title": "successThreshold", + "type": "integer" }, - "periodSeconds": { - "type": "integer", - "default": 10 + "timeoutSeconds": { + "default": 5, + "required": [], + "title": "timeoutSeconds", + "type": "integer" } }, - "additionalProperties": true + "required": [], + "title": "startup", + "type": "object" } }, - "description": "https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "additionalProperties": true + "required": [], + "title": "probes", + "type": "object" + }, + "redis": { + "additionalProperties": true, + "description": "Redis deployment", + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "imagePullSecrets": { + "items": { + "required": [] + }, + "required": [], + "title": "imagePullSecrets", + "type": "array" + }, + "repository": { + "default": "docker.io/redis", + "required": [], + "title": "repository", + "type": "string" + }, + "tag": { + "default": "8.8.0", + "required": [], + "title": "tag", + "type": "string" + } + }, + "required": [], + "title": "redis", + "type": "object" + }, + "replicaCount": { + "default": 1, + "required": [], + "title": "replicaCount", + "type": "integer" + }, + "resources": { + "additionalProperties": true, + "properties": { + "limits": { + "additionalProperties": true, + "default": "", + "properties": { + "memory": { + "required": [], + "title": "memory", + "type": "string" + } + }, + "required": [], + "title": "limits", + "type": "null" + }, + "requests": { + "additionalProperties": true, + "properties": { + "cpu": { + "default": "1m", + "required": [], + "title": "cpu", + "type": "string" + }, + "memory": { + "default": "16Mi", + "required": [], + "title": "memory", + "type": "string" + } + }, + "required": [], + "title": "requests", + "type": "object" + } + }, + "required": [], + "title": "resources", + "type": "object" + }, + "securityContext": { + "additionalProperties": true, + "description": "set container security context", + "required": [], + "title": "securityContext", + "type": "object" + }, + "service": { + "additionalProperties": true, + "description": "Kubernetes Service settings", + "properties": { + "additionalLabels": { + "additionalProperties": true, + "required": [], + "title": "additionalLabels", + "type": "object" + }, + "annotations": { + "additionalProperties": true, + "required": [], + "title": "annotations", + "type": "object" + }, + "enabled": { + "default": true, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "externalPort": { + "default": 9898, + "required": [], + "title": "externalPort", + "type": "integer" + }, + "externalTrafficPolicy": { + "default": "", + "required": [], + "title": "externalTrafficPolicy", + "type": "string" + }, + "grpcPort": { + "default": 9999, + "required": [], + "title": "grpcPort", + "type": "integer" + }, + "grpcService": { + "default": "podinfo", + "required": [], + "title": "grpcService", + "type": "string" + }, + "hostPort": { + "default": "", + "description": "the port used to bind the http port to the host\nNOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing\nin local clusters such as kind without port forwarding", + "required": [], + "title": "hostPort", + "type": "null" + }, + "httpPort": { + "default": 9898, + "required": [], + "title": "httpPort", + "type": "integer" + }, + "metricsPort": { + "default": 9797, + "required": [], + "title": "metricsPort", + "type": "integer" + }, + "nodePort": { + "default": 31198, + "required": [], + "title": "nodePort", + "type": "integer" + }, + "trafficDistribution": { + "default": "", + "description": "Stable from Kubernetes v1.33+ with a value of PreferClose. Additional values are PreferSameZone and PreferSameNode from v1.34+. Empty string means it's disabled.", + "required": [], + "title": "trafficDistribution", + "type": "string" + }, + "type": { + "default": "ClusterIP", + "required": [], + "title": "type", + "type": "string" + } + }, + "required": [], + "title": "service", + "type": "object" + }, + "serviceAccount": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "description": "Specifies whether a service account should be created", + "required": [], + "title": "enabled", + "type": "boolean" + }, + "imagePullSecrets": { + "description": "List of image pull secrets if pulling from private registries", + "items": { + "required": [] + }, + "required": [], + "title": "imagePullSecrets", + "type": "array" + }, + "name": { + "default": "", + "description": "The name of the service account to use.\nIf not set and create is true, a name is generated using the fullname template", + "required": [], + "title": "name", + "type": "null" + } + }, + "required": [], + "title": "serviceAccount", + "type": "object" + }, + "serviceMonitor": { + "additionalProperties": true, + "description": "create Prometheus Operator monitor", + "properties": { + "additionalLabels": { + "additionalProperties": true, + "required": [], + "title": "additionalLabels", + "type": "object" + }, + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "interval": { + "default": "15s", + "required": [], + "title": "interval", + "type": "string" + } + }, + "required": [], + "title": "serviceMonitor", + "type": "object" + }, + "tls": { + "additionalProperties": true, + "description": "enable tls on the podinfo service", + "properties": { + "certPath": { + "default": "/data/cert", + "description": "the path where the certificate key pair will be mounted", + "required": [], + "title": "certPath", + "type": "string" + }, + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "hostPort": { + "default": "", + "description": "the port used to bind the tls port to the host\nNOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing\nin local clusters such as kind without port forwarding", + "required": [], + "title": "hostPort", + "type": "null" + }, + "port": { + "default": 9899, + "description": "the port used to host the tls endpoint on the service", + "required": [], + "title": "port", + "type": "integer" + }, + "secretName": { + "default": "", + "description": "the name of the secret used to mount the certificate key pair", + "required": [], + "title": "secretName", + "type": "null" + } + }, + "required": [], + "title": "tls", + "type": "object" + }, + "tolerations": { + "items": { + "required": [] + }, + "required": [], + "title": "tolerations", + "type": "array" + }, + "topologySpreadConstraints": { + "description": "https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/", + "items": { + "required": [] + }, + "required": [], + "title": "topologySpreadConstraints", + "type": "array" + }, + "ui": { + "additionalProperties": true, + "properties": { + "color": { + "default": "#34577c", + "required": [], + "title": "color", + "type": "string" + }, + "logo": { + "default": "", + "required": [], + "title": "logo", + "type": "string" + }, + "message": { + "default": "", + "required": [], + "title": "message", + "type": "string" + } + }, + "required": [], + "title": "ui", + "type": "object" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": true -} + "required": [], + "type": "object" +} \ No newline at end of file diff --git a/docs/examples/src/charts/podinfo/values.schema.k b/docs/examples/src/charts/podinfo/values.schema.k index 8a631015..62f842c3 100644 --- a/docs/examples/src/charts/podinfo/values.schema.k +++ b/docs/examples/src/charts/podinfo/values.schema.k @@ -10,36 +10,42 @@ schema Values: Attributes ---------- affinity : ValuesAffinity, optional - backend : any, optional, default is None - http://backend-podinfo:9898/echo - backends : [any], optional, default is [] + backend : any, optional, default is "" + backends : [any], optional cache : str, optional, default is "" Redis address in the format tcp://: certificate : ValuesCertificate, optional create a certificate manager certificate (cert-manager required) config : ValuesConfig, optional config file settings - extraArgs : [any], optional, default is [] + extraArgs : [any], optional Additional command line arguments to pass to podinfo container - extraEnvs : [any], optional, default is [] + extraEnvs : [any], optional Extra environment variables for the podinfo container faults : ValuesFaults, optional failure conditions + global : ValuesGlobal, optional + Global values are values that can be accessed from any chart or subchart by exactly the same name. grpcRoute : ValuesGrpcRoute, optional - Expose the gRPC service via Gateway GRPCRoute Requires a Gateway controller with GRPCRoute support Docs https://gateway-api.sigs.k8s.io/guides/grpc-routing/ + Expose the gRPC service via Gateway GRPCRoute + Requires a Gateway controller with GRPCRoute support + Docs https://gateway-api.sigs.k8s.io/guides/grpc-routing/ h2c : ValuesH2C, optional enable h2c protocol (non-TLS version of HTTP/2) hooks : ValuesHooks, optional Helm hooks (for testing purposes) - host : any, optional, default is None - 0.0.0.0 + host : any, optional, default is "" hpa : ValuesHpa, optional metrics-server add-on required httpRoute : ValuesHttpRoute, optional - Expose the service via Gateway HTTPRoute Requires a Gateway controller Docs https://gateway-api.sigs.k8s.io/guides/ + Expose the service via Gateway HTTPRoute + Requires a Gateway controller + Docs https://gateway-api.sigs.k8s.io/guides/ image : ValuesImage, optional ingress : ValuesIngress, optional - Expose the service via Kubernetes Ingress Requires an Ingress controller Docs https://kubernetes.io/docs/concepts/services-networking/ingress/ + Expose the service via Kubernetes Ingress + Requires an Ingress controller + Docs https://kubernetes.io/docs/concepts/services-networking/ingress/ logLevel : str, optional, default is "info" nodeSelector : ValuesNodeSelector, optional podAnnotations : ValuesPodAnnotations, optional @@ -64,8 +70,8 @@ schema Values: create Prometheus Operator monitor tls : ValuesTls, optional enable tls on the podinfo service - tolerations : [any], optional, default is [] - topologySpreadConstraints : [any], optional, default is [] + tolerations : [any], optional + topologySpreadConstraints : [any], optional https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ui : ValuesUi, optional """ @@ -79,6 +85,7 @@ schema Values: extraArgs?: [any] extraEnvs?: [any] faults?: ValuesFaults + global?: ValuesGlobal grpcRoute?: ValuesGrpcRoute h2c?: ValuesH2C hooks?: ValuesHooks @@ -120,7 +127,7 @@ schema ValuesCertificate: Attributes ---------- create : bool, optional, default is False - dnsNames : [str], optional, default is ["podinfo"] + dnsNames : [str], optional the hostname / subject alternative names for the certificate issuerRef : ValuesCertificateIssuerRef, optional the issuer used to issue the certificate @@ -179,9 +186,17 @@ schema ValuesFaults: unhealthy?: bool unready?: bool +schema ValuesGlobal: + r""" + Global values are values that can be accessed from any chart or subchart by exactly the same name. + """ + [...str]: any + schema ValuesGrpcRoute: r""" - Expose the gRPC service via Gateway GRPCRoute Requires a Gateway controller with GRPCRoute support Docs https://gateway-api.sigs.k8s.io/guides/grpc-routing/ + Expose the gRPC service via Gateway GRPCRoute + Requires a Gateway controller with GRPCRoute support + Docs https://gateway-api.sigs.k8s.io/guides/grpc-routing/ Attributes ---------- @@ -191,11 +206,11 @@ schema ValuesGrpcRoute: GRPCRoute annotations. enabled : bool, optional, default is False GRPCRoute enabled. - hostnames : [str], optional, default is ["podinfo.local"] + hostnames : [str], optional Hostnames matching HTTP header. - parentRefs : [ValuesGrpcRouteParentRefsItems0], optional, default is [{name = "gateway", sectionName = "http"}] + parentRefs : [ValuesGrpcRouteParentRefsItems0], optional Which Gateways this Route is attached to. - rules : [ValuesGrpcRouteRulesItems0], optional, default is [{}] + rules : [ValuesGrpcRouteRulesItems0], optional List of rules applied. """ [...str]: any @@ -224,8 +239,8 @@ schema ValuesGrpcRouteParentRefsItems0: Attributes ---------- - name : str, optional - sectionName : str, optional + name : str, optional, default is "gateway" + sectionName : str, optional, default is "http" """ [...str]: any name?: str @@ -293,8 +308,8 @@ schema ValuesHooksPostDeleteJob: enabled : bool, optional, default is False exitCode : int, optional, default is 0 hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" - sleepSeconds : any, optional, default is None - ttlSecondsAfterFinished : any, optional, default is None + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" """ [...str]: any enabled?: bool @@ -323,8 +338,8 @@ schema ValuesHooksPostInstallJob: enabled : bool, optional, default is False exitCode : int, optional, default is 0 hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" - sleepSeconds : any, optional, default is None - ttlSecondsAfterFinished : any, optional, default is None + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" """ [...str]: any enabled?: bool @@ -353,8 +368,8 @@ schema ValuesHooksPostRollbackJob: enabled : bool, optional, default is False exitCode : int, optional, default is 0 hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" - sleepSeconds : any, optional, default is None - ttlSecondsAfterFinished : any, optional, default is None + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" """ [...str]: any enabled?: bool @@ -383,8 +398,8 @@ schema ValuesHooksPostUpgradeJob: enabled : bool, optional, default is False exitCode : int, optional, default is 0 hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" - sleepSeconds : any, optional, default is None - ttlSecondsAfterFinished : any, optional, default is None + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" """ [...str]: any enabled?: bool @@ -413,8 +428,8 @@ schema ValuesHooksPreDeleteJob: enabled : bool, optional, default is False exitCode : int, optional, default is 0 hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" - sleepSeconds : any, optional, default is None - ttlSecondsAfterFinished : any, optional, default is None + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" """ [...str]: any enabled?: bool @@ -443,8 +458,8 @@ schema ValuesHooksPreInstallJob: enabled : bool, optional, default is False exitCode : int, optional, default is 0 hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" - sleepSeconds : any, optional, default is None - ttlSecondsAfterFinished : any, optional, default is None + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" """ [...str]: any enabled?: bool @@ -473,8 +488,8 @@ schema ValuesHooksPreRollbackJob: enabled : bool, optional, default is False exitCode : int, optional, default is 0 hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" - sleepSeconds : any, optional, default is None - ttlSecondsAfterFinished : any, optional, default is None + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" """ [...str]: any enabled?: bool @@ -503,8 +518,8 @@ schema ValuesHooksPreUpgradeJob: enabled : bool, optional, default is False exitCode : int, optional, default is 0 hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" - sleepSeconds : any, optional, default is None - ttlSecondsAfterFinished : any, optional, default is None + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" """ [...str]: any enabled?: bool @@ -519,17 +534,17 @@ schema ValuesHpa: Attributes ---------- - cpu : int, optional, default is None + cpu : any, optional, default is "" average total CPU usage per pod (1-100) enabled : bool, optional, default is False maxReplicas : int, optional, default is 10 - memory : any, optional, default is None + memory : any, optional, default is "" average memory usage per pod (100Mi-1Gi) - requests : any, optional, default is None + requests : any, optional, default is "" average http requests per second per pod (k8s-prometheus-adapter) """ [...str]: any - cpu?: int + cpu?: any enabled?: bool maxReplicas?: int memory?: any @@ -537,7 +552,9 @@ schema ValuesHpa: schema ValuesHttpRoute: r""" - Expose the service via Gateway HTTPRoute Requires a Gateway controller Docs https://gateway-api.sigs.k8s.io/guides/ + Expose the service via Gateway HTTPRoute + Requires a Gateway controller + Docs https://gateway-api.sigs.k8s.io/guides/ Attributes ---------- @@ -547,11 +564,11 @@ schema ValuesHttpRoute: HTTPRoute annotations. enabled : bool, optional, default is False HTTPRoute enabled. - hostnames : [str], optional, default is ["podinfo.local"] + hostnames : [str], optional Hostnames matching HTTP header. - parentRefs : [ValuesHttpRouteParentRefsItems0], optional, default is [{name = "gateway", sectionName = "http"}] + parentRefs : [ValuesHttpRouteParentRefsItems0], optional Which Gateways this Route is attached to. - rules : [ValuesHttpRouteRulesItems0], optional, default is [{matches = [{path = {$type = "PathPrefix", value = "/"}}]}] + rules : [ValuesHttpRouteRulesItems0], optional List of rules and filters applied. """ [...str]: any @@ -580,8 +597,8 @@ schema ValuesHttpRouteParentRefsItems0: Attributes ---------- - name : str, optional - sectionName : str, optional + name : str, optional, default is "gateway" + sectionName : str, optional, default is "http" """ [...str]: any name?: str @@ -615,8 +632,8 @@ schema ValuesHttpRouteRulesItems0MatchesItems0Path: Attributes ---------- - $type : str, optional - value : str, optional + $type : str, optional, default is "PathPrefix" + value : str, optional, default is "/" """ [...str]: any $type?: str @@ -629,9 +646,9 @@ schema ValuesImage: Attributes ---------- pullPolicy : str, optional, default is "IfNotPresent" - pullSecrets : [any], optional, default is [] + pullSecrets : [any], optional repository : str, optional, default is "ghcr.io/stefanprodan/podinfo" - tag : str, optional, default is "6.13.0" + tag : str, optional, default is "6.14.0" """ [...str]: any pullPolicy?: str @@ -641,7 +658,9 @@ schema ValuesImage: schema ValuesIngress: r""" - Expose the service via Kubernetes Ingress Requires an Ingress controller Docs https://kubernetes.io/docs/concepts/services-networking/ingress/ + Expose the service via Kubernetes Ingress + Requires an Ingress controller + Docs https://kubernetes.io/docs/concepts/services-networking/ingress/ Attributes ---------- @@ -649,9 +668,10 @@ schema ValuesIngress: annotations : ValuesIngressAnnotations, optional className : str, optional, default is "" enabled : bool, optional, default is False - hosts : [ValuesIngressHostsItems0], optional, default is [{host = "podinfo.local", paths = [{path = "/", pathType = "ImplementationSpecific"}]}] + hosts : [ValuesIngressHostsItems0], optional + kubernetes.io/ingress.class: nginx kubernetes.io/tls-acme: "true" - tls : [any], optional, default is [] + tls : [any], optional """ [...str]: any additionalLabels?: ValuesIngressAdditionalLabels @@ -679,7 +699,7 @@ schema ValuesIngressHostsItems0: Attributes ---------- - host : str, optional + host : str, optional, default is "podinfo.local" paths : [ValuesIngressHostsItems0PathsItems0], optional """ [...str]: any @@ -692,8 +712,8 @@ schema ValuesIngressHostsItems0PathsItems0: Attributes ---------- - path : str, optional - pathType : str, optional + path : str, optional, default is "/" + pathType : str, optional, default is "ImplementationSpecific" """ [...str]: any path?: str @@ -804,9 +824,9 @@ schema ValuesRedis: Attributes ---------- enabled : bool, optional, default is False - imagePullSecrets : [any], optional, default is [] + imagePullSecrets : [any], optional repository : str, optional, default is "docker.io/redis" - tag : str, optional, default is "8.6.3" + tag : str, optional, default is "8.8.0" """ [...str]: any enabled?: bool @@ -820,7 +840,7 @@ schema ValuesResources: Attributes ---------- - limits : any | ValuesResourcesLimits, optional, default is None + limits : any | ValuesResourcesLimits, optional, default is "" requests : ValuesResourcesRequests, optional """ [...str]: any @@ -833,7 +853,7 @@ schema ValuesResourcesLimits: Attributes ---------- - memory : str, optional, default is "256Mi" + memory : str, optional """ [...str]: any memory?: str @@ -870,7 +890,7 @@ schema ValuesService: externalTrafficPolicy : str, optional, default is "" grpcPort : int, optional, default is 9999 grpcService : str, optional, default is "podinfo" - hostPort : any, optional, default is None + hostPort : any, optional, default is "" the port used to bind the http port to the host NOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing in local clusters such as kind without port forwarding @@ -904,9 +924,9 @@ schema ValuesServiceAccount: ---------- enabled : bool, optional, default is False Specifies whether a service account should be created - imagePullSecrets : [any], optional, default is [] + imagePullSecrets : [any], optional List of image pull secrets if pulling from private registries - name : any, optional, default is None + name : any, optional, default is "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template """ @@ -957,13 +977,13 @@ schema ValuesTls: certPath : str, optional, default is "/data/cert" the path where the certificate key pair will be mounted enabled : bool, optional, default is False - hostPort : any, optional, default is None + hostPort : any, optional, default is "" the port used to bind the tls port to the host NOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing in local clusters such as kind without port forwarding port : int, optional, default is 9899 the port used to host the tls endpoint on the service - secretName : any, optional, default is None + secretName : any, optional, default is "" the name of the secret used to mount the certificate key pair """ [...str]: any diff --git a/docs/examples/src/charts/podinfo_v5/chart.k b/docs/examples/src/charts/podinfo_v5/chart.k index f4289193..e088a199 100644 --- a/docs/examples/src/charts/podinfo_v5/chart.k +++ b/docs/examples/src/charts/podinfo_v5/chart.k @@ -14,12 +14,12 @@ schema Chart(helm.Chart): values : Values | any, optional chart : str, required, default is "podinfo" repoURL : str, required, default is "https://stefanprodan.github.io/podinfo" - targetRevision : str, optional, default is "5.2.1" + targetRevision : str, optional, default is "6.14.0" schemaValidator : "KCL" | "HELM", optional, default is "KCL" """ values?: Values | any chart: str = "podinfo" repoURL: str = "https://stefanprodan.github.io/podinfo" - targetRevision?: str = "5.2.1" + targetRevision?: str = "6.14.0" schemaValidator?: "KCL" | "HELM" = "KCL" diff --git a/docs/examples/src/charts/podinfo_v5/values.schema.json b/docs/examples/src/charts/podinfo_v5/values.schema.json index b9702d22..32a72658 100644 --- a/docs/examples/src/charts/podinfo_v5/values.schema.json +++ b/docs/examples/src/charts/podinfo_v5/values.schema.json @@ -1,396 +1,1414 @@ { - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, "properties": { - "replicaCount": { - "type": "integer", - "default": 1 - }, - "logLevel": { - "type": "string", - "default": "info" - }, - "host": { - "description": "0.0.0.0", - "default": null + "affinity": { + "additionalProperties": true, + "required": [], + "title": "affinity", + "type": "object" }, "backend": { - "description": "http://backend-podinfo:9898/echo", - "default": null + "default": "", + "required": [], + "title": "backend", + "type": "null" }, "backends": { - "type": "array", - "default": [] + "items": { + "required": [] + }, + "required": [], + "title": "backends", + "type": "array" }, - "image": { - "type": "object", + "cache": { + "default": "", + "description": "Redis address in the format tcp://\u003chost\u003e:\u003cport\u003e", + "required": [], + "title": "cache", + "type": "string" + }, + "certificate": { + "additionalProperties": true, + "description": "create a certificate manager certificate (cert-manager required)", "properties": { - "repository": { - "type": "string", - "default": "ghcr.io/stefanprodan/podinfo" + "create": { + "default": false, + "required": [], + "title": "create", + "type": "boolean" }, - "tag": { - "type": "string", - "default": "5.2.1" + "dnsNames": { + "description": "the hostname / subject alternative names for the certificate", + "items": { + "required": [], + "type": "string" + }, + "required": [], + "title": "dnsNames", + "type": "array" }, - "pullPolicy": { - "type": "string", - "default": "IfNotPresent" + "issuerRef": { + "additionalProperties": true, + "description": "the issuer used to issue the certificate", + "properties": { + "kind": { + "default": "ClusterIssuer", + "required": [], + "title": "kind", + "type": "string" + }, + "name": { + "default": "self-signed", + "required": [], + "title": "name", + "type": "string" + } + }, + "required": [], + "title": "issuerRef", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "certificate", + "type": "object" }, - "ui": { - "type": "object", + "config": { + "additionalProperties": true, + "description": "config file settings", "properties": { - "color": { - "type": "string", - "default": "#34577c" - }, - "message": { - "type": "string", - "default": "" + "name": { + "default": "", + "description": "config file name", + "required": [], + "title": "name", + "type": "string" }, - "logo": { - "type": "string", - "default": "" + "path": { + "default": "", + "description": "config file path", + "required": [], + "title": "path", + "type": "string" } }, - "additionalProperties": true + "required": [], + "title": "config", + "type": "object" + }, + "extraArgs": { + "description": "Additional command line arguments to pass to podinfo container", + "items": { + "required": [] + }, + "required": [], + "title": "extraArgs", + "type": "array" + }, + "extraEnvs": { + "description": "Extra environment variables for the podinfo container", + "items": { + "required": [] + }, + "required": [], + "title": "extraEnvs", + "type": "array" }, "faults": { - "type": "object", + "additionalProperties": true, + "description": "failure conditions", "properties": { "delay": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "delay", + "type": "boolean" }, "error": { - "type": "boolean", - "default": false - }, - "unhealthy": { - "type": "boolean", - "default": false - }, - "unready": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "error", + "type": "boolean" }, "testFail": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "testFail", + "type": "boolean" }, "testTimeout": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "testTimeout", + "type": "boolean" + }, + "unhealthy": { + "default": false, + "required": [], + "title": "unhealthy", + "type": "boolean" + }, + "unready": { + "default": false, + "required": [], + "title": "unready", + "type": "boolean" } }, - "description": "failure conditions", - "additionalProperties": true + "required": [], + "title": "faults", + "type": "object" }, - "service": { - "type": "object", + "global": { + "additionalProperties": true, + "description": "Global values are values that can be accessed from any chart or subchart by exactly the same name.", + "required": [], + "title": "global", + "type": "object" + }, + "grpcRoute": { + "additionalProperties": true, + "description": "Expose the gRPC service via Gateway GRPCRoute\nRequires a Gateway controller with GRPCRoute support\nDocs https://gateway-api.sigs.k8s.io/guides/grpc-routing/", "properties": { - "enabled": { - "type": "boolean", - "default": true + "additionalLabels": { + "additionalProperties": true, + "description": "Add additional labels to the GRPCRoute.", + "required": [], + "title": "additionalLabels", + "type": "object" }, "annotations": { - "type": "object", - "additionalProperties": true - }, - "type": { - "type": "string", - "default": "ClusterIP" - }, - "metricsPort": { - "type": "integer", - "default": 9797 - }, - "httpPort": { - "type": "integer", - "default": 9898 - }, - "externalPort": { - "type": "integer", - "default": 9898 + "additionalProperties": true, + "description": "GRPCRoute annotations.", + "required": [], + "title": "annotations", + "type": "object" }, - "grpcPort": { - "type": "integer", - "default": 9999 + "enabled": { + "default": false, + "description": "GRPCRoute enabled.", + "required": [], + "title": "enabled", + "type": "boolean" }, - "grpcService": { - "type": "string", - "default": "podinfo" + "hostnames": { + "description": "Hostnames matching HTTP header.", + "items": { + "required": [], + "type": "string" + }, + "required": [], + "title": "hostnames", + "type": "array" }, - "nodePort": { - "type": "integer", - "default": 31198 + "parentRefs": { + "description": "Which Gateways this Route is attached to.", + "items": { + "additionalProperties": true, + "properties": { + "name": { + "default": "gateway", + "required": [], + "title": "name", + "type": "string" + }, + "sectionName": { + "default": "http", + "required": [], + "title": "sectionName", + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "parentRefs", + "type": "array" }, - "hostPort": { - "description": "the port used to bind the http port to the host\nNOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing\nin local clusters such as kind without port forwarding", - "default": null + "rules": { + "description": "List of rules applied.", + "items": { + "additionalProperties": true, + "required": [], + "type": "object" + }, + "required": [], + "title": "rules", + "type": "array" } }, - "description": "Kubernetes Service settings", - "additionalProperties": true + "required": [], + "title": "grpcRoute", + "type": "object" }, "h2c": { - "type": "object", + "additionalProperties": true, + "description": "enable h2c protocol (non-TLS version of HTTP/2)", "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" } }, - "description": "enable h2c protocol (non-TLS version of HTTP/2)", - "additionalProperties": true + "required": [], + "title": "h2c", + "type": "object" }, - "tls": { - "type": "object", + "hooks": { + "additionalProperties": true, + "description": "Helm hooks (for testing purposes)", "properties": { - "enabled": { - "type": "boolean", - "default": false + "postDelete": { + "additionalProperties": true, + "properties": { + "job": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" + }, + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" + }, + "sleepSeconds": { + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" + }, + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" + } + }, + "required": [], + "title": "job", + "type": "object" + } + }, + "required": [], + "title": "postDelete", + "type": "object" }, - "secretName": { - "description": "the name of the secret used to mount the certificate key pair", - "default": null + "postInstall": { + "additionalProperties": true, + "properties": { + "job": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" + }, + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" + }, + "sleepSeconds": { + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" + }, + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" + } + }, + "required": [], + "title": "job", + "type": "object" + } + }, + "required": [], + "title": "postInstall", + "type": "object" }, - "certPath": { - "type": "string", - "description": "the path where the certificate key pair will be mounted", - "default": "/data/cert" + "postRollback": { + "additionalProperties": true, + "properties": { + "job": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" + }, + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" + }, + "sleepSeconds": { + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" + }, + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" + } + }, + "required": [], + "title": "job", + "type": "object" + } + }, + "required": [], + "title": "postRollback", + "type": "object" }, - "port": { - "type": "integer", - "description": "the port used to host the tls endpoint on the service", - "default": 9899 + "postUpgrade": { + "additionalProperties": true, + "properties": { + "job": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" + }, + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" + }, + "sleepSeconds": { + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" + }, + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" + } + }, + "required": [], + "title": "job", + "type": "object" + } + }, + "required": [], + "title": "postUpgrade", + "type": "object" }, - "hostPort": { - "description": "the port used to bind the tls port to the host\nNOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing\nin local clusters such as kind without port forwarding", - "default": null - } - }, - "description": "enable tls on the podinfo service", - "additionalProperties": true - }, - "certificate": { - "type": "object", - "properties": { - "create": { - "type": "boolean", - "default": false + "preDelete": { + "additionalProperties": true, + "properties": { + "job": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" + }, + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" + }, + "sleepSeconds": { + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" + }, + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" + } + }, + "required": [], + "title": "job", + "type": "object" + } + }, + "required": [], + "title": "preDelete", + "type": "object" }, - "issuerRef": { - "type": "object", + "preInstall": { + "additionalProperties": true, "properties": { - "kind": { - "type": "string", - "default": "ClusterIssuer" - }, - "name": { - "type": "string", - "default": "self-signed" + "job": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" + }, + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" + }, + "sleepSeconds": { + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" + }, + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" + } + }, + "required": [], + "title": "job", + "type": "object" } }, - "description": "the issuer used to issue the certificate", - "additionalProperties": true + "required": [], + "title": "preInstall", + "type": "object" }, - "dnsNames": { - "type": "array", - "items": { - "type": "string" + "preRollback": { + "additionalProperties": true, + "properties": { + "job": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" + }, + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" + }, + "sleepSeconds": { + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" + }, + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" + } + }, + "required": [], + "title": "job", + "type": "object" + } }, - "description": "the hostname / subject alternative names for the certificate", - "default": ["podinfo"] + "required": [], + "title": "preRollback", + "type": "object" + }, + "preUpgrade": { + "additionalProperties": true, + "properties": { + "job": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "exitCode": { + "default": 0, + "required": [], + "title": "exitCode", + "type": "integer" + }, + "hookDeletePolicy": { + "default": "hook-succeeded,hook-failed", + "required": [], + "title": "hookDeletePolicy", + "type": "string" + }, + "sleepSeconds": { + "default": "", + "required": [], + "title": "sleepSeconds", + "type": "null" + }, + "ttlSecondsAfterFinished": { + "default": "", + "required": [], + "title": "ttlSecondsAfterFinished", + "type": "null" + } + }, + "required": [], + "title": "job", + "type": "object" + } + }, + "required": [], + "title": "preUpgrade", + "type": "object" } }, - "description": "create a certificate manager certificate (cert-manager required)", - "additionalProperties": true + "required": [], + "title": "hooks", + "type": "object" + }, + "host": { + "default": "", + "required": [], + "title": "host", + "type": "null" }, "hpa": { - "type": "object", + "additionalProperties": true, + "description": "metrics-server add-on required", "properties": { + "cpu": { + "default": "", + "description": "average total CPU usage per pod (1-100)", + "required": [], + "title": "cpu", + "type": "null" + }, "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, "maxReplicas": { - "type": "integer", - "default": 10 - }, - "cpu": { - "type": ["integer", "null"], - "description": "average total CPU usage per pod (1-100)", - "default": null + "default": 10, + "required": [], + "title": "maxReplicas", + "type": "integer" }, "memory": { + "default": "", "description": "average memory usage per pod (100Mi-1Gi)", - "default": null + "required": [], + "title": "memory", + "type": "null" }, "requests": { + "default": "", "description": "average http requests per second per pod (k8s-prometheus-adapter)", - "default": null + "required": [], + "title": "requests", + "type": "null" } }, - "description": "metrics-server add-on required", - "additionalProperties": true - }, - "cache": { - "type": "string", - "description": "Redis address in the format \u003chost\u003e:\u003cport\u003e", - "default": "" + "required": [], + "title": "hpa", + "type": "object" }, - "redis": { - "type": "object", + "httpRoute": { + "additionalProperties": true, + "description": "Expose the service via Gateway HTTPRoute\nRequires a Gateway controller\nDocs https://gateway-api.sigs.k8s.io/guides/", "properties": { + "additionalLabels": { + "additionalProperties": true, + "description": "Add additional labels to the HTTPRoute.", + "required": [], + "title": "additionalLabels", + "type": "object" + }, + "annotations": { + "additionalProperties": true, + "description": "HTTPRoute annotations.", + "required": [], + "title": "annotations", + "type": "object" + }, "enabled": { - "type": "boolean", - "default": false + "default": false, + "description": "HTTPRoute enabled.", + "required": [], + "title": "enabled", + "type": "boolean" }, - "repository": { - "type": "string", - "default": "redis" + "hostnames": { + "description": "Hostnames matching HTTP header.", + "items": { + "required": [], + "type": "string" + }, + "required": [], + "title": "hostnames", + "type": "array" }, - "tag": { - "type": "string", - "default": "6.0.8" + "parentRefs": { + "description": "Which Gateways this Route is attached to.", + "items": { + "additionalProperties": true, + "properties": { + "name": { + "default": "gateway", + "required": [], + "title": "name", + "type": "string" + }, + "sectionName": { + "default": "http", + "required": [], + "title": "sectionName", + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "parentRefs", + "type": "array" + }, + "rules": { + "description": "List of rules and filters applied.", + "items": { + "additionalProperties": true, + "properties": { + "matches": { + "items": { + "additionalProperties": true, + "properties": { + "path": { + "additionalProperties": true, + "properties": { + "type": { + "default": "PathPrefix", + "required": [], + "title": "type", + "type": "string" + }, + "value": { + "default": "/", + "required": [], + "title": "value", + "type": "string" + } + }, + "required": [], + "title": "path", + "type": "object" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "matches", + "type": "array" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "rules", + "type": "array" } }, - "description": "Redis deployment", - "additionalProperties": true + "required": [], + "title": "httpRoute", + "type": "object" }, - "serviceAccount": { - "type": "object", + "image": { + "additionalProperties": true, "properties": { - "enabled": { - "type": "boolean", - "description": "Specifies whether a service account should be created", - "default": false + "pullPolicy": { + "default": "IfNotPresent", + "required": [], + "title": "pullPolicy", + "type": "string" }, - "name": { - "description": "The name of the service account to use.\nIf not set and create is true, a name is generated using the fullname template", - "default": null + "pullSecrets": { + "items": { + "required": [] + }, + "required": [], + "title": "pullSecrets", + "type": "array" + }, + "repository": { + "default": "ghcr.io/stefanprodan/podinfo", + "required": [], + "title": "repository", + "type": "string" + }, + "tag": { + "default": "6.14.0", + "required": [], + "title": "tag", + "type": "string" } }, - "additionalProperties": true - }, - "securityContext": { - "type": "object", - "description": "set container security context", - "additionalProperties": true + "required": [], + "title": "image", + "type": "object" }, "ingress": { - "type": "object", + "additionalProperties": true, + "description": "Expose the service via Kubernetes Ingress\nRequires an Ingress controller\nDocs https://kubernetes.io/docs/concepts/services-networking/ingress/", "properties": { - "enabled": { - "type": "boolean", - "default": false + "additionalLabels": { + "additionalProperties": true, + "required": [], + "title": "additionalLabels", + "type": "object" }, "annotations": { - "type": "object", - "additionalProperties": true + "additionalProperties": true, + "required": [], + "title": "annotations", + "type": "object" }, - "path": { - "type": "string", - "default": "/*" + "className": { + "default": "", + "required": [], + "title": "className", + "type": "string" + }, + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, "hosts": { - "type": "array", - "default": [] + "description": "kubernetes.io/ingress.class: nginx\nkubernetes.io/tls-acme: \"true\"", + "items": { + "additionalProperties": true, + "properties": { + "host": { + "default": "podinfo.local", + "required": [], + "title": "host", + "type": "string" + }, + "paths": { + "items": { + "additionalProperties": true, + "properties": { + "path": { + "default": "/", + "required": [], + "title": "path", + "type": "string" + }, + "pathType": { + "default": "ImplementationSpecific", + "required": [], + "title": "pathType", + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "paths", + "type": "array" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "hosts", + "type": "array" }, "tls": { - "type": "array", - "description": " - podinfo.local", - "default": [] + "items": { + "required": [] + }, + "required": [], + "title": "tls", + "type": "array" } }, - "additionalProperties": true + "required": [], + "title": "ingress", + "type": "object" + }, + "logLevel": { + "default": "info", + "required": [], + "title": "logLevel", + "type": "string" + }, + "nodeSelector": { + "additionalProperties": true, + "required": [], + "title": "nodeSelector", + "type": "object" + }, + "podAnnotations": { + "additionalProperties": true, + "required": [], + "title": "podAnnotations", + "type": "object" + }, + "podDisruptionBudget": { + "additionalProperties": true, + "description": "Disruption budget will be configured only when the replicaCount is greater than 1", + "required": [], + "title": "podDisruptionBudget", + "type": "object" + }, + "podSecurityContext": { + "additionalProperties": true, + "description": "set pod security context", + "required": [], + "title": "podSecurityContext", + "type": "object" + }, + "prefix": { + "default": "/", + "required": [], + "title": "prefix", + "type": "string" + }, + "priorityClassName": { + "default": "", + "required": [], + "title": "priorityClassName", + "type": "string" }, - "linkerd": { - "type": "object", + "probes": { + "additionalProperties": true, + "description": "https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "properties": { - "profile": { - "type": "object", + "liveness": { + "additionalProperties": true, + "properties": { + "failureThreshold": { + "default": 3, + "required": [], + "title": "failureThreshold", + "type": "integer" + }, + "initialDelaySeconds": { + "default": 1, + "required": [], + "title": "initialDelaySeconds", + "type": "integer" + }, + "periodSeconds": { + "default": 10, + "required": [], + "title": "periodSeconds", + "type": "integer" + }, + "successThreshold": { + "default": 1, + "required": [], + "title": "successThreshold", + "type": "integer" + }, + "timeoutSeconds": { + "default": 5, + "required": [], + "title": "timeoutSeconds", + "type": "integer" + } + }, + "required": [], + "title": "liveness", + "type": "object" + }, + "readiness": { + "additionalProperties": true, + "properties": { + "failureThreshold": { + "default": 3, + "required": [], + "title": "failureThreshold", + "type": "integer" + }, + "initialDelaySeconds": { + "default": 1, + "required": [], + "title": "initialDelaySeconds", + "type": "integer" + }, + "periodSeconds": { + "default": 10, + "required": [], + "title": "periodSeconds", + "type": "integer" + }, + "successThreshold": { + "default": 1, + "required": [], + "title": "successThreshold", + "type": "integer" + }, + "timeoutSeconds": { + "default": 5, + "required": [], + "title": "timeoutSeconds", + "type": "integer" + } + }, + "required": [], + "title": "readiness", + "type": "object" + }, + "startup": { + "additionalProperties": true, "properties": { - "enabled": { - "type": "boolean", - "default": false + "enable": { + "default": false, + "required": [], + "title": "enable", + "type": "boolean" + }, + "failureThreshold": { + "default": 20, + "required": [], + "title": "failureThreshold", + "type": "integer" + }, + "initialDelaySeconds": { + "default": 10, + "required": [], + "title": "initialDelaySeconds", + "type": "integer" + }, + "periodSeconds": { + "default": 10, + "required": [], + "title": "periodSeconds", + "type": "integer" + }, + "successThreshold": { + "default": 1, + "required": [], + "title": "successThreshold", + "type": "integer" + }, + "timeoutSeconds": { + "default": 5, + "required": [], + "title": "timeoutSeconds", + "type": "integer" } }, - "additionalProperties": true + "required": [], + "title": "startup", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "probes", + "type": "object" }, - "serviceMonitor": { - "type": "object", + "redis": { + "additionalProperties": true, + "description": "Redis deployment", "properties": { "enabled": { - "type": "boolean", - "default": false + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" }, - "interval": { - "type": "string", - "default": "15s" + "imagePullSecrets": { + "items": { + "required": [] + }, + "required": [], + "title": "imagePullSecrets", + "type": "array" }, - "additionalLabels": { - "type": "object", - "additionalProperties": true + "repository": { + "default": "docker.io/redis", + "required": [], + "title": "repository", + "type": "string" + }, + "tag": { + "default": "8.8.0", + "required": [], + "title": "tag", + "type": "string" } }, - "description": "create Prometheus Operator monitor", - "additionalProperties": true + "required": [], + "title": "redis", + "type": "object" + }, + "replicaCount": { + "default": 1, + "required": [], + "title": "replicaCount", + "type": "integer" }, "resources": { - "type": "object", + "additionalProperties": true, "properties": { "limits": { - "type": ["object", "null"], + "additionalProperties": true, + "default": "", "properties": { "memory": { - "type": "string", - "default": "256Mi" + "required": [], + "title": "memory", + "type": "string" } }, - "default": null, - "additionalProperties": true + "required": [], + "title": "limits", + "type": "null" }, "requests": { - "type": "object", + "additionalProperties": true, "properties": { "cpu": { - "type": "string", - "default": "1m" + "default": "1m", + "required": [], + "title": "cpu", + "type": "string" }, "memory": { - "type": "string", - "default": "16Mi" + "default": "16Mi", + "required": [], + "title": "memory", + "type": "string" } }, - "additionalProperties": true + "required": [], + "title": "requests", + "type": "object" } }, - "additionalProperties": true + "required": [], + "title": "resources", + "type": "object" }, - "nodeSelector": { - "type": "object", - "additionalProperties": true + "securityContext": { + "additionalProperties": true, + "description": "set container security context", + "required": [], + "title": "securityContext", + "type": "object" + }, + "service": { + "additionalProperties": true, + "description": "Kubernetes Service settings", + "properties": { + "additionalLabels": { + "additionalProperties": true, + "required": [], + "title": "additionalLabels", + "type": "object" + }, + "annotations": { + "additionalProperties": true, + "required": [], + "title": "annotations", + "type": "object" + }, + "enabled": { + "default": true, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "externalPort": { + "default": 9898, + "required": [], + "title": "externalPort", + "type": "integer" + }, + "externalTrafficPolicy": { + "default": "", + "required": [], + "title": "externalTrafficPolicy", + "type": "string" + }, + "grpcPort": { + "default": 9999, + "required": [], + "title": "grpcPort", + "type": "integer" + }, + "grpcService": { + "default": "podinfo", + "required": [], + "title": "grpcService", + "type": "string" + }, + "hostPort": { + "default": "", + "description": "the port used to bind the http port to the host\nNOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing\nin local clusters such as kind without port forwarding", + "required": [], + "title": "hostPort", + "type": "null" + }, + "httpPort": { + "default": 9898, + "required": [], + "title": "httpPort", + "type": "integer" + }, + "metricsPort": { + "default": 9797, + "required": [], + "title": "metricsPort", + "type": "integer" + }, + "nodePort": { + "default": 31198, + "required": [], + "title": "nodePort", + "type": "integer" + }, + "trafficDistribution": { + "default": "", + "description": "Stable from Kubernetes v1.33+ with a value of PreferClose. Additional values are PreferSameZone and PreferSameNode from v1.34+. Empty string means it's disabled.", + "required": [], + "title": "trafficDistribution", + "type": "string" + }, + "type": { + "default": "ClusterIP", + "required": [], + "title": "type", + "type": "string" + } + }, + "required": [], + "title": "service", + "type": "object" + }, + "serviceAccount": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "description": "Specifies whether a service account should be created", + "required": [], + "title": "enabled", + "type": "boolean" + }, + "imagePullSecrets": { + "description": "List of image pull secrets if pulling from private registries", + "items": { + "required": [] + }, + "required": [], + "title": "imagePullSecrets", + "type": "array" + }, + "name": { + "default": "", + "description": "The name of the service account to use.\nIf not set and create is true, a name is generated using the fullname template", + "required": [], + "title": "name", + "type": "null" + } + }, + "required": [], + "title": "serviceAccount", + "type": "object" + }, + "serviceMonitor": { + "additionalProperties": true, + "description": "create Prometheus Operator monitor", + "properties": { + "additionalLabels": { + "additionalProperties": true, + "required": [], + "title": "additionalLabels", + "type": "object" + }, + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "interval": { + "default": "15s", + "required": [], + "title": "interval", + "type": "string" + } + }, + "required": [], + "title": "serviceMonitor", + "type": "object" + }, + "tls": { + "additionalProperties": true, + "description": "enable tls on the podinfo service", + "properties": { + "certPath": { + "default": "/data/cert", + "description": "the path where the certificate key pair will be mounted", + "required": [], + "title": "certPath", + "type": "string" + }, + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + }, + "hostPort": { + "default": "", + "description": "the port used to bind the tls port to the host\nNOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing\nin local clusters such as kind without port forwarding", + "required": [], + "title": "hostPort", + "type": "null" + }, + "port": { + "default": 9899, + "description": "the port used to host the tls endpoint on the service", + "required": [], + "title": "port", + "type": "integer" + }, + "secretName": { + "default": "", + "description": "the name of the secret used to mount the certificate key pair", + "required": [], + "title": "secretName", + "type": "null" + } + }, + "required": [], + "title": "tls", + "type": "object" }, "tolerations": { - "type": "array", - "default": [] + "items": { + "required": [] + }, + "required": [], + "title": "tolerations", + "type": "array" }, - "affinity": { - "type": "object", - "additionalProperties": true + "topologySpreadConstraints": { + "description": "https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/", + "items": { + "required": [] + }, + "required": [], + "title": "topologySpreadConstraints", + "type": "array" }, - "podAnnotations": { - "type": "object", - "additionalProperties": true + "ui": { + "additionalProperties": true, + "properties": { + "color": { + "default": "#34577c", + "required": [], + "title": "color", + "type": "string" + }, + "logo": { + "default": "", + "required": [], + "title": "logo", + "type": "string" + }, + "message": { + "default": "", + "required": [], + "title": "message", + "type": "string" + } + }, + "required": [], + "title": "ui", + "type": "object" } }, - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": true -} + "required": [], + "type": "object" +} \ No newline at end of file diff --git a/docs/examples/src/charts/podinfo_v5/values.schema.k b/docs/examples/src/charts/podinfo_v5/values.schema.k index 2f7ed30e..62f842c3 100644 --- a/docs/examples/src/charts/podinfo_v5/values.schema.k +++ b/docs/examples/src/charts/podinfo_v5/values.schema.k @@ -10,27 +10,53 @@ schema Values: Attributes ---------- affinity : ValuesAffinity, optional - backend : any, optional, default is None - http://backend-podinfo:9898/echo - backends : [any], optional, default is [] + backend : any, optional, default is "" + backends : [any], optional cache : str, optional, default is "" - Redis address in the format : + Redis address in the format tcp://: certificate : ValuesCertificate, optional create a certificate manager certificate (cert-manager required) + config : ValuesConfig, optional + config file settings + extraArgs : [any], optional + Additional command line arguments to pass to podinfo container + extraEnvs : [any], optional + Extra environment variables for the podinfo container faults : ValuesFaults, optional failure conditions + global : ValuesGlobal, optional + Global values are values that can be accessed from any chart or subchart by exactly the same name. + grpcRoute : ValuesGrpcRoute, optional + Expose the gRPC service via Gateway GRPCRoute + Requires a Gateway controller with GRPCRoute support + Docs https://gateway-api.sigs.k8s.io/guides/grpc-routing/ h2c : ValuesH2C, optional enable h2c protocol (non-TLS version of HTTP/2) - host : any, optional, default is None - 0.0.0.0 + hooks : ValuesHooks, optional + Helm hooks (for testing purposes) + host : any, optional, default is "" hpa : ValuesHpa, optional metrics-server add-on required + httpRoute : ValuesHttpRoute, optional + Expose the service via Gateway HTTPRoute + Requires a Gateway controller + Docs https://gateway-api.sigs.k8s.io/guides/ image : ValuesImage, optional ingress : ValuesIngress, optional - linkerd : ValuesLinkerd, optional + Expose the service via Kubernetes Ingress + Requires an Ingress controller + Docs https://kubernetes.io/docs/concepts/services-networking/ingress/ logLevel : str, optional, default is "info" nodeSelector : ValuesNodeSelector, optional podAnnotations : ValuesPodAnnotations, optional + podDisruptionBudget : ValuesPodDisruptionBudget, optional + Disruption budget will be configured only when the replicaCount is greater than 1 + podSecurityContext : ValuesPodSecurityContext, optional + set pod security context + prefix : str, optional, default is "/" + priorityClassName : str, optional, default is "" + probes : ValuesProbes, optional + https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes redis : ValuesRedis, optional Redis deployment replicaCount : int, optional, default is 1 @@ -44,7 +70,9 @@ schema Values: create Prometheus Operator monitor tls : ValuesTls, optional enable tls on the podinfo service - tolerations : [any], optional, default is [] + tolerations : [any], optional + topologySpreadConstraints : [any], optional + https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ui : ValuesUi, optional """ [...str]: any @@ -53,16 +81,27 @@ schema Values: backends?: [any] cache?: str certificate?: ValuesCertificate + config?: ValuesConfig + extraArgs?: [any] + extraEnvs?: [any] faults?: ValuesFaults + global?: ValuesGlobal + grpcRoute?: ValuesGrpcRoute h2c?: ValuesH2C + hooks?: ValuesHooks host?: any hpa?: ValuesHpa + httpRoute?: ValuesHttpRoute image?: ValuesImage ingress?: ValuesIngress - linkerd?: ValuesLinkerd logLevel?: str nodeSelector?: ValuesNodeSelector podAnnotations?: ValuesPodAnnotations + podDisruptionBudget?: ValuesPodDisruptionBudget + podSecurityContext?: ValuesPodSecurityContext + prefix?: str + priorityClassName?: str + probes?: ValuesProbes redis?: ValuesRedis replicaCount?: int resources?: ValuesResources @@ -72,6 +111,7 @@ schema Values: serviceMonitor?: ValuesServiceMonitor tls?: ValuesTls tolerations?: [any] + topologySpreadConstraints?: [any] ui?: ValuesUi schema ValuesAffinity: @@ -87,7 +127,7 @@ schema ValuesCertificate: Attributes ---------- create : bool, optional, default is False - dnsNames : [str], optional, default is ["podinfo"] + dnsNames : [str], optional the hostname / subject alternative names for the certificate issuerRef : ValuesCertificateIssuerRef, optional the issuer used to issue the certificate @@ -110,6 +150,21 @@ schema ValuesCertificateIssuerRef: kind?: str name?: str +schema ValuesConfig: + r""" + config file settings + + Attributes + ---------- + name : str, optional, default is "" + config file name + path : str, optional, default is "" + config file path + """ + [...str]: any + name?: str + path?: str + schema ValuesFaults: r""" failure conditions @@ -131,6 +186,72 @@ schema ValuesFaults: unhealthy?: bool unready?: bool +schema ValuesGlobal: + r""" + Global values are values that can be accessed from any chart or subchart by exactly the same name. + """ + [...str]: any + +schema ValuesGrpcRoute: + r""" + Expose the gRPC service via Gateway GRPCRoute + Requires a Gateway controller with GRPCRoute support + Docs https://gateway-api.sigs.k8s.io/guides/grpc-routing/ + + Attributes + ---------- + additionalLabels : ValuesGrpcRouteAdditionalLabels, optional + Add additional labels to the GRPCRoute. + annotations : ValuesGrpcRouteAnnotations, optional + GRPCRoute annotations. + enabled : bool, optional, default is False + GRPCRoute enabled. + hostnames : [str], optional + Hostnames matching HTTP header. + parentRefs : [ValuesGrpcRouteParentRefsItems0], optional + Which Gateways this Route is attached to. + rules : [ValuesGrpcRouteRulesItems0], optional + List of rules applied. + """ + [...str]: any + additionalLabels?: ValuesGrpcRouteAdditionalLabels + annotations?: ValuesGrpcRouteAnnotations + enabled?: bool + hostnames?: [str] + parentRefs?: [ValuesGrpcRouteParentRefsItems0] + rules?: [ValuesGrpcRouteRulesItems0] + +schema ValuesGrpcRouteAdditionalLabels: + r""" + Add additional labels to the GRPCRoute. + """ + [...str]: any + +schema ValuesGrpcRouteAnnotations: + r""" + GRPCRoute annotations. + """ + [...str]: any + +schema ValuesGrpcRouteParentRefsItems0: + r""" + ValuesGrpcRouteParentRefsItems0 + + Attributes + ---------- + name : str, optional, default is "gateway" + sectionName : str, optional, default is "http" + """ + [...str]: any + name?: str + sectionName?: str + +schema ValuesGrpcRouteRulesItems0: + r""" + ValuesGrpcRouteRulesItems0 + """ + [...str]: any + schema ValuesH2C: r""" enable h2c protocol (non-TLS version of HTTP/2) @@ -142,28 +263,382 @@ schema ValuesH2C: [...str]: any enabled?: bool +schema ValuesHooks: + r""" + Helm hooks (for testing purposes) + + Attributes + ---------- + postDelete : ValuesHooksPostDelete, optional + postInstall : ValuesHooksPostInstall, optional + postRollback : ValuesHooksPostRollback, optional + postUpgrade : ValuesHooksPostUpgrade, optional + preDelete : ValuesHooksPreDelete, optional + preInstall : ValuesHooksPreInstall, optional + preRollback : ValuesHooksPreRollback, optional + preUpgrade : ValuesHooksPreUpgrade, optional + """ + [...str]: any + postDelete?: ValuesHooksPostDelete + postInstall?: ValuesHooksPostInstall + postRollback?: ValuesHooksPostRollback + postUpgrade?: ValuesHooksPostUpgrade + preDelete?: ValuesHooksPreDelete + preInstall?: ValuesHooksPreInstall + preRollback?: ValuesHooksPreRollback + preUpgrade?: ValuesHooksPreUpgrade + +schema ValuesHooksPostDelete: + r""" + ValuesHooksPostDelete + + Attributes + ---------- + job : ValuesHooksPostDeleteJob, optional + """ + [...str]: any + job?: ValuesHooksPostDeleteJob + +schema ValuesHooksPostDeleteJob: + r""" + ValuesHooksPostDeleteJob + + Attributes + ---------- + enabled : bool, optional, default is False + exitCode : int, optional, default is 0 + hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" + """ + [...str]: any + enabled?: bool + exitCode?: int + hookDeletePolicy?: str + sleepSeconds?: any + ttlSecondsAfterFinished?: any + +schema ValuesHooksPostInstall: + r""" + ValuesHooksPostInstall + + Attributes + ---------- + job : ValuesHooksPostInstallJob, optional + """ + [...str]: any + job?: ValuesHooksPostInstallJob + +schema ValuesHooksPostInstallJob: + r""" + ValuesHooksPostInstallJob + + Attributes + ---------- + enabled : bool, optional, default is False + exitCode : int, optional, default is 0 + hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" + """ + [...str]: any + enabled?: bool + exitCode?: int + hookDeletePolicy?: str + sleepSeconds?: any + ttlSecondsAfterFinished?: any + +schema ValuesHooksPostRollback: + r""" + ValuesHooksPostRollback + + Attributes + ---------- + job : ValuesHooksPostRollbackJob, optional + """ + [...str]: any + job?: ValuesHooksPostRollbackJob + +schema ValuesHooksPostRollbackJob: + r""" + ValuesHooksPostRollbackJob + + Attributes + ---------- + enabled : bool, optional, default is False + exitCode : int, optional, default is 0 + hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" + """ + [...str]: any + enabled?: bool + exitCode?: int + hookDeletePolicy?: str + sleepSeconds?: any + ttlSecondsAfterFinished?: any + +schema ValuesHooksPostUpgrade: + r""" + ValuesHooksPostUpgrade + + Attributes + ---------- + job : ValuesHooksPostUpgradeJob, optional + """ + [...str]: any + job?: ValuesHooksPostUpgradeJob + +schema ValuesHooksPostUpgradeJob: + r""" + ValuesHooksPostUpgradeJob + + Attributes + ---------- + enabled : bool, optional, default is False + exitCode : int, optional, default is 0 + hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" + """ + [...str]: any + enabled?: bool + exitCode?: int + hookDeletePolicy?: str + sleepSeconds?: any + ttlSecondsAfterFinished?: any + +schema ValuesHooksPreDelete: + r""" + ValuesHooksPreDelete + + Attributes + ---------- + job : ValuesHooksPreDeleteJob, optional + """ + [...str]: any + job?: ValuesHooksPreDeleteJob + +schema ValuesHooksPreDeleteJob: + r""" + ValuesHooksPreDeleteJob + + Attributes + ---------- + enabled : bool, optional, default is False + exitCode : int, optional, default is 0 + hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" + """ + [...str]: any + enabled?: bool + exitCode?: int + hookDeletePolicy?: str + sleepSeconds?: any + ttlSecondsAfterFinished?: any + +schema ValuesHooksPreInstall: + r""" + ValuesHooksPreInstall + + Attributes + ---------- + job : ValuesHooksPreInstallJob, optional + """ + [...str]: any + job?: ValuesHooksPreInstallJob + +schema ValuesHooksPreInstallJob: + r""" + ValuesHooksPreInstallJob + + Attributes + ---------- + enabled : bool, optional, default is False + exitCode : int, optional, default is 0 + hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" + """ + [...str]: any + enabled?: bool + exitCode?: int + hookDeletePolicy?: str + sleepSeconds?: any + ttlSecondsAfterFinished?: any + +schema ValuesHooksPreRollback: + r""" + ValuesHooksPreRollback + + Attributes + ---------- + job : ValuesHooksPreRollbackJob, optional + """ + [...str]: any + job?: ValuesHooksPreRollbackJob + +schema ValuesHooksPreRollbackJob: + r""" + ValuesHooksPreRollbackJob + + Attributes + ---------- + enabled : bool, optional, default is False + exitCode : int, optional, default is 0 + hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" + """ + [...str]: any + enabled?: bool + exitCode?: int + hookDeletePolicy?: str + sleepSeconds?: any + ttlSecondsAfterFinished?: any + +schema ValuesHooksPreUpgrade: + r""" + ValuesHooksPreUpgrade + + Attributes + ---------- + job : ValuesHooksPreUpgradeJob, optional + """ + [...str]: any + job?: ValuesHooksPreUpgradeJob + +schema ValuesHooksPreUpgradeJob: + r""" + ValuesHooksPreUpgradeJob + + Attributes + ---------- + enabled : bool, optional, default is False + exitCode : int, optional, default is 0 + hookDeletePolicy : str, optional, default is "hook-succeeded,hook-failed" + sleepSeconds : any, optional, default is "" + ttlSecondsAfterFinished : any, optional, default is "" + """ + [...str]: any + enabled?: bool + exitCode?: int + hookDeletePolicy?: str + sleepSeconds?: any + ttlSecondsAfterFinished?: any + schema ValuesHpa: r""" metrics-server add-on required Attributes ---------- - cpu : int, optional, default is None + cpu : any, optional, default is "" average total CPU usage per pod (1-100) enabled : bool, optional, default is False maxReplicas : int, optional, default is 10 - memory : any, optional, default is None + memory : any, optional, default is "" average memory usage per pod (100Mi-1Gi) - requests : any, optional, default is None + requests : any, optional, default is "" average http requests per second per pod (k8s-prometheus-adapter) """ [...str]: any - cpu?: int + cpu?: any enabled?: bool maxReplicas?: int memory?: any requests?: any +schema ValuesHttpRoute: + r""" + Expose the service via Gateway HTTPRoute + Requires a Gateway controller + Docs https://gateway-api.sigs.k8s.io/guides/ + + Attributes + ---------- + additionalLabels : ValuesHttpRouteAdditionalLabels, optional + Add additional labels to the HTTPRoute. + annotations : ValuesHttpRouteAnnotations, optional + HTTPRoute annotations. + enabled : bool, optional, default is False + HTTPRoute enabled. + hostnames : [str], optional + Hostnames matching HTTP header. + parentRefs : [ValuesHttpRouteParentRefsItems0], optional + Which Gateways this Route is attached to. + rules : [ValuesHttpRouteRulesItems0], optional + List of rules and filters applied. + """ + [...str]: any + additionalLabels?: ValuesHttpRouteAdditionalLabels + annotations?: ValuesHttpRouteAnnotations + enabled?: bool + hostnames?: [str] + parentRefs?: [ValuesHttpRouteParentRefsItems0] + rules?: [ValuesHttpRouteRulesItems0] + +schema ValuesHttpRouteAdditionalLabels: + r""" + Add additional labels to the HTTPRoute. + """ + [...str]: any + +schema ValuesHttpRouteAnnotations: + r""" + HTTPRoute annotations. + """ + [...str]: any + +schema ValuesHttpRouteParentRefsItems0: + r""" + ValuesHttpRouteParentRefsItems0 + + Attributes + ---------- + name : str, optional, default is "gateway" + sectionName : str, optional, default is "http" + """ + [...str]: any + name?: str + sectionName?: str + +schema ValuesHttpRouteRulesItems0: + r""" + ValuesHttpRouteRulesItems0 + + Attributes + ---------- + matches : [ValuesHttpRouteRulesItems0MatchesItems0], optional + """ + [...str]: any + matches?: [ValuesHttpRouteRulesItems0MatchesItems0] + +schema ValuesHttpRouteRulesItems0MatchesItems0: + r""" + ValuesHttpRouteRulesItems0MatchesItems0 + + Attributes + ---------- + path : ValuesHttpRouteRulesItems0MatchesItems0Path, optional + """ + [...str]: any + path?: ValuesHttpRouteRulesItems0MatchesItems0Path + +schema ValuesHttpRouteRulesItems0MatchesItems0Path: + r""" + ValuesHttpRouteRulesItems0MatchesItems0Path + + Attributes + ---------- + $type : str, optional, default is "PathPrefix" + value : str, optional, default is "/" + """ + [...str]: any + $type?: str + value?: str + schema ValuesImage: r""" ValuesImage @@ -171,61 +646,78 @@ schema ValuesImage: Attributes ---------- pullPolicy : str, optional, default is "IfNotPresent" + pullSecrets : [any], optional repository : str, optional, default is "ghcr.io/stefanprodan/podinfo" - tag : str, optional, default is "5.2.1" + tag : str, optional, default is "6.14.0" """ [...str]: any pullPolicy?: str + pullSecrets?: [any] repository?: str tag?: str schema ValuesIngress: r""" - ValuesIngress + Expose the service via Kubernetes Ingress + Requires an Ingress controller + Docs https://kubernetes.io/docs/concepts/services-networking/ingress/ Attributes ---------- + additionalLabels : ValuesIngressAdditionalLabels, optional annotations : ValuesIngressAnnotations, optional + className : str, optional, default is "" enabled : bool, optional, default is False - hosts : [any], optional, default is [] - path : str, optional, default is "/*" - tls : [any], optional, default is [] - - podinfo.local + hosts : [ValuesIngressHostsItems0], optional + kubernetes.io/ingress.class: nginx + kubernetes.io/tls-acme: "true" + tls : [any], optional """ [...str]: any + additionalLabels?: ValuesIngressAdditionalLabels annotations?: ValuesIngressAnnotations + className?: str enabled?: bool - hosts?: [any] - path?: str + hosts?: [ValuesIngressHostsItems0] tls?: [any] +schema ValuesIngressAdditionalLabels: + r""" + ValuesIngressAdditionalLabels + """ + [...str]: any + schema ValuesIngressAnnotations: r""" ValuesIngressAnnotations """ [...str]: any -schema ValuesLinkerd: +schema ValuesIngressHostsItems0: r""" - ValuesLinkerd + ValuesIngressHostsItems0 Attributes ---------- - profile : ValuesLinkerdProfile, optional + host : str, optional, default is "podinfo.local" + paths : [ValuesIngressHostsItems0PathsItems0], optional """ [...str]: any - profile?: ValuesLinkerdProfile + host?: str + paths?: [ValuesIngressHostsItems0PathsItems0] -schema ValuesLinkerdProfile: +schema ValuesIngressHostsItems0PathsItems0: r""" - ValuesLinkerdProfile + ValuesIngressHostsItems0PathsItems0 Attributes ---------- - enabled : bool, optional, default is False + path : str, optional, default is "/" + pathType : str, optional, default is "ImplementationSpecific" """ [...str]: any - enabled?: bool + path?: str + pathType?: str schema ValuesNodeSelector: r""" @@ -239,6 +731,92 @@ schema ValuesPodAnnotations: """ [...str]: any +schema ValuesPodDisruptionBudget: + r""" + Disruption budget will be configured only when the replicaCount is greater than 1 + """ + [...str]: any + +schema ValuesPodSecurityContext: + r""" + set pod security context + """ + [...str]: any + +schema ValuesProbes: + r""" + https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + + Attributes + ---------- + liveness : ValuesProbesLiveness, optional + readiness : ValuesProbesReadiness, optional + startup : ValuesProbesStartup, optional + """ + [...str]: any + liveness?: ValuesProbesLiveness + readiness?: ValuesProbesReadiness + startup?: ValuesProbesStartup + +schema ValuesProbesLiveness: + r""" + ValuesProbesLiveness + + Attributes + ---------- + failureThreshold : int, optional, default is 3 + initialDelaySeconds : int, optional, default is 1 + periodSeconds : int, optional, default is 10 + successThreshold : int, optional, default is 1 + timeoutSeconds : int, optional, default is 5 + """ + [...str]: any + failureThreshold?: int + initialDelaySeconds?: int + periodSeconds?: int + successThreshold?: int + timeoutSeconds?: int + +schema ValuesProbesReadiness: + r""" + ValuesProbesReadiness + + Attributes + ---------- + failureThreshold : int, optional, default is 3 + initialDelaySeconds : int, optional, default is 1 + periodSeconds : int, optional, default is 10 + successThreshold : int, optional, default is 1 + timeoutSeconds : int, optional, default is 5 + """ + [...str]: any + failureThreshold?: int + initialDelaySeconds?: int + periodSeconds?: int + successThreshold?: int + timeoutSeconds?: int + +schema ValuesProbesStartup: + r""" + ValuesProbesStartup + + Attributes + ---------- + enable : bool, optional, default is False + failureThreshold : int, optional, default is 20 + initialDelaySeconds : int, optional, default is 10 + periodSeconds : int, optional, default is 10 + successThreshold : int, optional, default is 1 + timeoutSeconds : int, optional, default is 5 + """ + [...str]: any + enable?: bool + failureThreshold?: int + initialDelaySeconds?: int + periodSeconds?: int + successThreshold?: int + timeoutSeconds?: int + schema ValuesRedis: r""" Redis deployment @@ -246,11 +824,13 @@ schema ValuesRedis: Attributes ---------- enabled : bool, optional, default is False - repository : str, optional, default is "redis" - tag : str, optional, default is "6.0.8" + imagePullSecrets : [any], optional + repository : str, optional, default is "docker.io/redis" + tag : str, optional, default is "8.8.0" """ [...str]: any enabled?: bool + imagePullSecrets?: [any] repository?: str tag?: str @@ -260,7 +840,7 @@ schema ValuesResources: Attributes ---------- - limits : any | ValuesResourcesLimits, optional, default is None + limits : any | ValuesResourcesLimits, optional, default is "" requests : ValuesResourcesRequests, optional """ [...str]: any @@ -273,7 +853,7 @@ schema ValuesResourcesLimits: Attributes ---------- - memory : str, optional, default is "256Mi" + memory : str, optional """ [...str]: any memory?: str @@ -303,30 +883,37 @@ schema ValuesService: Attributes ---------- + additionalLabels : ValuesServiceAdditionalLabels, optional annotations : ValuesServiceAnnotations, optional enabled : bool, optional, default is True externalPort : int, optional, default is 9898 + externalTrafficPolicy : str, optional, default is "" grpcPort : int, optional, default is 9999 grpcService : str, optional, default is "podinfo" - hostPort : any, optional, default is None + hostPort : any, optional, default is "" the port used to bind the http port to the host NOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing in local clusters such as kind without port forwarding httpPort : int, optional, default is 9898 metricsPort : int, optional, default is 9797 nodePort : int, optional, default is 31198 + trafficDistribution : str, optional, default is "" + Stable from Kubernetes v1.33+ with a value of PreferClose. Additional values are PreferSameZone and PreferSameNode from v1.34+. Empty string means it's disabled. $type : str, optional, default is "ClusterIP" """ [...str]: any + additionalLabels?: ValuesServiceAdditionalLabels annotations?: ValuesServiceAnnotations enabled?: bool externalPort?: int + externalTrafficPolicy?: str grpcPort?: int grpcService?: str hostPort?: any httpPort?: int metricsPort?: int nodePort?: int + trafficDistribution?: str $type?: str schema ValuesServiceAccount: @@ -337,14 +924,23 @@ schema ValuesServiceAccount: ---------- enabled : bool, optional, default is False Specifies whether a service account should be created - name : any, optional, default is None + imagePullSecrets : [any], optional + List of image pull secrets if pulling from private registries + name : any, optional, default is "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template """ [...str]: any enabled?: bool + imagePullSecrets?: [any] name?: any +schema ValuesServiceAdditionalLabels: + r""" + ValuesServiceAdditionalLabels + """ + [...str]: any + schema ValuesServiceAnnotations: r""" ValuesServiceAnnotations @@ -381,13 +977,13 @@ schema ValuesTls: certPath : str, optional, default is "/data/cert" the path where the certificate key pair will be mounted enabled : bool, optional, default is False - hostPort : any, optional, default is None + hostPort : any, optional, default is "" the port used to bind the tls port to the host NOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing in local clusters such as kind without port forwarding port : int, optional, default is 9899 the port used to host the tls endpoint on the service - secretName : any, optional, default is None + secretName : any, optional, default is "" the name of the secret used to mount the certificate key pair """ [...str]: any