diff --git a/helm/README.md b/helm/README.md index 40084a97..2cd07570 100644 --- a/helm/README.md +++ b/helm/README.md @@ -255,6 +255,14 @@ kubectl create secret -n example-namespace generic example-secret-name --from-li The secret can then be used with `existingSecretName`. +For advanced integrations, you can also use component-scoped `extraVolumes` and `extraVolumeMounts` to attach additional volumes such as CSI-backed secrets to specific workloads: + +- `components.agent.extraVolumes` / `components.agent.extraVolumeMounts` +- `components.aggregator.extraVolumes` / `components.aggregator.extraVolumeMounts` +- `components.webhookServer.extraVolumes` / `components.webhookServer.extraVolumeMounts` +- `components.webhookServer.backfill.extraVolumes` / `components.webhookServer.backfill.extraVolumeMounts` +- `components.miscellaneous.configLoader.extraVolumes` / `components.miscellaneous.configLoader.extraVolumeMounts` + ### Update Helm Chart If you are updating an existing installation, pull the latest chart information: diff --git a/helm/templates/NOTES.txt b/helm/templates/NOTES.txt index 5a37990b..3cf7ce91 100644 --- a/helm/templates/NOTES.txt +++ b/helm/templates/NOTES.txt @@ -11,6 +11,21 @@ it is likely you will not receive the required metrics and data in the CloudZero Please refer to the documentation for guidance on `kubeStateMetrics` settings. +*************** +{{- end }} +{{- if and (not .Values.apiKey) (not .Values.existingSecretName) }} +*************** + + +****WARNING**** + +This release is configured with both `apiKey` and `existingSecretName` unset. +No CloudZero API key Secret volume will be mounted by the chart. + +If you are using an external secret mount pattern, ensure each enabled workload +that needs the key has matching `components.*.extraVolumes` and +`components.*.extraVolumeMounts` configured. + *************** {{- end }} diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl index 799d5238..132d2f09 100644 --- a/helm/templates/_helpers.tpl +++ b/helm/templates/_helpers.tpl @@ -783,6 +783,33 @@ Volume mount for the API key {{- end }} {{- end }} +{{/* +Additional volume mounts for user-provided extensions. +*/}} +{{- define "cloudzero-agent.extraVolumeMounts" -}} +{{- with (.volumeMounts | default (list)) -}} +{{ toYaml . }} +{{- end -}} +{{- end }} + +{{/* +Additional volumes for user-provided extensions. +*/}} +{{- define "cloudzero-agent.extraVolumes" -}} +{{- with (.volumes | default (list)) -}} +{{ toYaml . }} +{{- end -}} +{{- end }} + +{{/* +Returns true if resource-scoped extra volumes are configured. +*/}} +{{- define "cloudzero-agent.hasExtraVolumes" -}} +{{- if gt (len (.volumes | default (list))) 0 -}} +true +{{- end -}} +{{- end }} + {{/* Return the URL for the agent and insights controller to send metrics to. diff --git a/helm/templates/agent-daemonset.yaml b/helm/templates/agent-daemonset.yaml index f4756107..5cf9b520 100644 --- a/helm/templates/agent-daemonset.yaml +++ b/helm/templates/agent-daemonset.yaml @@ -183,7 +183,8 @@ spec: - name: cloudzero-agent-storage-volume mountPath: /data subPath: "" - {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" .Values.components.agent.extraVolumeMounts) | nindent 12 }} {{- include "cloudzero-agent.generatePodSecurityContext" (mergeOverwrite (.Values.defaults.securityContext | default (dict)) (.Values.components.agent.federatedNode.securityContext | default (dict)) @@ -206,6 +207,7 @@ spec: secret: secretName: {{ include "cloudzero-agent.secretName" . }} {{- end }} + {{- include "cloudzero-agent.extraVolumes" (dict "volumes" .Values.components.agent.extraVolumes) | nindent 8 }} - name: cloudzero-agent-storage-volume emptyDir: {{- if .Values.server.emptyDir.sizeLimit }} diff --git a/helm/templates/agent-deploy.yaml b/helm/templates/agent-deploy.yaml index 2f137083..4c3d794a 100644 --- a/helm/templates/agent-deploy.yaml +++ b/helm/templates/agent-deploy.yaml @@ -78,6 +78,7 @@ spec: ) | nindent 10 }} volumeMounts: {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" .Values.components.agent.extraVolumeMounts) | nindent 12 }} - name: lifecycle-volume mountPath: /checks/bin/ - name: validator-config-volume @@ -102,6 +103,7 @@ spec: ) | nindent 10 }} volumeMounts: {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" .Values.components.agent.extraVolumeMounts) | nindent 12 }} - name: lifecycle-volume mountPath: /checks/bin/ - name: validator-config-volume @@ -234,6 +236,7 @@ spec: - name: validator-config-volume mountPath: /checks/app/config/ {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" .Values.components.agent.extraVolumeMounts) | nindent 12 }} {{- end }}{{/* End Prometheus container */}} {{- if eq (include "cloudzero-agent.Values.components.agent.mode" .) "clustered" }} # CloudZero Alloy container (binary embedded in agent image) @@ -315,6 +318,7 @@ spec: - name: alloy-tmp mountPath: /tmp {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" .Values.components.agent.extraVolumeMounts) | nindent 12 }} {{- end }}{{/* End Alloy container */}} {{- include "cloudzero-agent.generatePodSecurityContext" (mergeOverwrite (.Values.defaults.securityContext | default (dict)) @@ -348,6 +352,7 @@ spec: secret: secretName: {{ include "cloudzero-agent.secretName" . }} {{- end }} + {{- include "cloudzero-agent.extraVolumes" (dict "volumes" .Values.components.agent.extraVolumes) | nindent 8 }} - name: cloudzero-agent-storage-volume {{- if .Values.server.persistentVolume.enabled }} persistentVolumeClaim: diff --git a/helm/templates/aggregator-deploy.yaml b/helm/templates/aggregator-deploy.yaml index 4f5041ed..50bd6865 100644 --- a/helm/templates/aggregator-deploy.yaml +++ b/helm/templates/aggregator-deploy.yaml @@ -85,6 +85,7 @@ spec: value: "{{ .Values.aggregator.collector.port }}" volumeMounts: {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" .Values.components.aggregator.extraVolumeMounts) | nindent 12 }} - name: aggregator-config-volume mountPath: {{ .Values.aggregator.mountRoot }}/config readOnly: true @@ -131,6 +132,7 @@ spec: value: "{{ .Values.aggregator.shipper.port }}" volumeMounts: {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" .Values.components.aggregator.extraVolumeMounts) | nindent 12 }} - name: aggregator-config-volume mountPath: {{ .Values.aggregator.mountRoot }}/config readOnly: true @@ -191,6 +193,7 @@ spec: secret: secretName: {{ include "cloudzero-agent.secretName" . }} {{- end }} + {{- include "cloudzero-agent.extraVolumes" (dict "volumes" .Values.components.aggregator.extraVolumes) | nindent 8 }} - name: aggregator-config-volume configMap: name: {{ include "cloudzero-agent.aggregator.name" . }} diff --git a/helm/templates/backfill-job.yaml b/helm/templates/backfill-job.yaml index 32ea53c2..f5faf5cd 100644 --- a/helm/templates/backfill-job.yaml +++ b/helm/templates/backfill-job.yaml @@ -166,18 +166,14 @@ spec: volumeMounts: - name: insights-server-config mountPath: {{ include "cloudzero-agent.insightsController.configurationMountPath" $ }} + {{- include "cloudzero-agent.apiKeyVolumeMount" $ | nindent 16 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" $.Values.components.webhookServer.backfill.extraVolumeMounts) | nindent 16 }} {{- if or $.Values.insightsController.volumeMounts $.Values.insightsController.tls.enabled }} - {{- if or $.Values.existingSecretName $.Values.apiKey }} - - name: cloudzero-api-key - mountPath: {{ $.Values.serverConfig.containerSecretFilePath }} - subPath: "" - readOnly: true - {{- end }} {{- with $.Values.insightsController.volumeMounts }} {{- toYaml . | nindent 16 }} {{- end }} {{- end }} - {{- if or $.Values.insightsController.volumes $.Values.insightsController.tls.enabled }} + {{- if or $.Values.insightsController.volumes $.Values.insightsController.tls.enabled (or $.Values.existingSecretName $.Values.apiKey) (include "cloudzero-agent.hasExtraVolumes" (dict "volumes" $.Values.components.webhookServer.backfill.extraVolumes)) }} volumes: - name: insights-server-config configMap: @@ -192,6 +188,7 @@ spec: secret: secretName: {{ include "cloudzero-agent.secretName" $ }} {{- end }} + {{- include "cloudzero-agent.extraVolumes" (dict "volumes" $.Values.components.webhookServer.backfill.extraVolumes) | nindent 12 }} {{- with $.Values.insightsController.volumes }} {{- toYaml . | nindent 12 }} {{- end }} diff --git a/helm/templates/config-loader-job.yaml b/helm/templates/config-loader-job.yaml index 00c0c4c9..2380ccb6 100644 --- a/helm/templates/config-loader-job.yaml +++ b/helm/templates/config-loader-job.yaml @@ -91,6 +91,7 @@ spec: ) | nindent 10 }} volumeMounts: {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" .Values.components.miscellaneous.configLoader.extraVolumeMounts) | nindent 12 }} - name: config-values mountPath: /cloudzero/config/values # values.yaml - name: config-volume @@ -127,6 +128,7 @@ spec: secret: secretName: {{ include "cloudzero-agent.secretName" . }} {{- end }} + {{- include "cloudzero-agent.extraVolumes" (dict "volumes" .Values.components.miscellaneous.configLoader.extraVolumes) | nindent 8 }} {{- with .Values.insightsController.volumes }} {{- toYaml . | nindent 8 }} {{- end }} diff --git a/helm/templates/webhook-deploy.yaml b/helm/templates/webhook-deploy.yaml index 0afd024b..870aa51d 100644 --- a/helm/templates/webhook-deploy.yaml +++ b/helm/templates/webhook-deploy.yaml @@ -131,18 +131,14 @@ spec: volumeMounts: - name: insights-server-config mountPath: {{ include "cloudzero-agent.insightsController.configurationMountPath" . }} + {{- include "cloudzero-agent.apiKeyVolumeMount" . | nindent 12 }} + {{- include "cloudzero-agent.extraVolumeMounts" (dict "volumeMounts" .Values.components.webhookServer.extraVolumeMounts) | nindent 12 }} {{- if or .Values.insightsController.volumeMounts .Values.insightsController.tls.enabled }} {{- if .Values.insightsController.tls.enabled }} - name: tls-certs mountPath: {{ .Values.insightsController.tls.mountPath }} readOnly: true {{- end }} - {{- if or .Values.existingSecretName .Values.apiKey }} - - name: cloudzero-api-key - mountPath: {{ .Values.serverConfig.containerSecretFilePath }} - subPath: "" - readOnly: true - {{- end }} {{- with .Values.insightsController.volumeMounts }} {{- toYaml . | nindent 12 }} {{- end }} @@ -169,7 +165,7 @@ spec: successThreshold: {{ .Values.insightsController.server.healthCheck.successThreshold }} failureThreshold: {{ .Values.insightsController.server.healthCheck.failureThreshold }} {{- end }} - {{- if or .Values.insightsController.volumes .Values.insightsController.tls.enabled }} + {{- if or .Values.insightsController.volumes .Values.insightsController.tls.enabled (or .Values.existingSecretName .Values.apiKey) (include "cloudzero-agent.hasExtraVolumes" (dict "volumes" .Values.components.webhookServer.extraVolumes)) }} volumes: - name: insights-server-config configMap: @@ -184,6 +180,7 @@ spec: secret: secretName: {{ include "cloudzero-agent.secretName" . }} {{- end }} + {{- include "cloudzero-agent.extraVolumes" (dict "volumes" .Values.components.webhookServer.extraVolumes) | nindent 8 }} {{- with .Values.insightsController.volumes }} {{- toYaml . | nindent 8 }} {{- end }} diff --git a/helm/tests/api_key_mount_path_validation_test.yaml b/helm/tests/api_key_mount_path_validation_test.yaml new file mode 100644 index 00000000..a5066773 --- /dev/null +++ b/helm/tests/api_key_mount_path_validation_test.yaml @@ -0,0 +1,31 @@ +suite: test external api key mode behavior +templates: + - templates/aggregator-deploy.yaml +tests: + - it: should render when both apiKey and existingSecretName are null + set: + apiKey: null + existingSecretName: null + asserts: + - isKind: + of: Deployment + + - it: should not create cloudzero-api-key volume when both apiKey and existingSecretName are null + set: + apiKey: null + existingSecretName: null + asserts: + - notContains: + path: spec.template.spec.volumes + content: + name: cloudzero-api-key + + - it: should not create cloudzero-api-key volumeMount when both apiKey and existingSecretName are null + set: + apiKey: null + existingSecretName: null + asserts: + - notContains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: cloudzero-api-key diff --git a/helm/tests/apikey_secret_validation_test.yaml b/helm/tests/apikey_secret_validation_test.yaml index 7f6eaf96..9a39693e 100644 --- a/helm/tests/apikey_secret_validation_test.yaml +++ b/helm/tests/apikey_secret_validation_test.yaml @@ -2,18 +2,15 @@ suite: test apiKey and existingSecretName validation templates: - aggregator-secret.yaml tests: - # Schema validation failure tests - these test the anyOf + oneOf constraints + # API key source validation tests - - it: should fail when neither apiKey nor existingSecretName is set - values: - - ../values.yaml # Use empty base values + - it: should allow external mode when both apiKey and existingSecretName are null set: apiKey: null existingSecretName: null - host: api.cloudzero.com asserts: - - failedTemplate: - errorPattern: "anyOf" + - hasDocuments: + count: 0 - it: should fail when both apiKey and existingSecretName are set set: diff --git a/helm/tests/extra_volumes_test.yaml b/helm/tests/extra_volumes_test.yaml new file mode 100644 index 00000000..c9bf7677 --- /dev/null +++ b/helm/tests/extra_volumes_test.yaml @@ -0,0 +1,240 @@ +suite: test extraVolumes and extraVolumeMounts support +templates: + - templates/aggregator-deploy.yaml + - templates/agent-deploy.yaml + - templates/agent-daemonset.yaml + - templates/config-loader-job.yaml + - templates/webhook-deploy.yaml + - templates/backfill-job.yaml +tests: + - it: should add extra volumes and mounts to the aggregator deployment + set: + clusterName: "test-cluster" + cloudAccountId: "123456789" + region: "us-east-1" + existingSecretName: "cloudzero-api-key" + apiKey: null + components: + aggregator: + extraVolumes: + - name: custom-extra-volume + configMap: + name: custom-extra-config + extraVolumeMounts: + - name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + asserts: + - contains: + path: spec.template.spec.volumes + content: + name: custom-extra-volume + configMap: + name: custom-extra-config + template: templates/aggregator-deploy.yaml + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + template: templates/aggregator-deploy.yaml + - contains: + path: spec.template.spec.containers[1].volumeMounts + content: + name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + template: templates/aggregator-deploy.yaml + + - it: should add extra volumes and mounts to the clustered agent deployment + set: + clusterName: "test-cluster" + cloudAccountId: "123456789" + region: "us-east-1" + existingSecretName: "cloudzero-api-key" + apiKey: null + components: + agent: + extraVolumes: + - name: custom-extra-volume + configMap: + name: custom-extra-config + extraVolumeMounts: + - name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + asserts: + - contains: + path: spec.template.spec.volumes + content: + name: custom-extra-volume + configMap: + name: custom-extra-config + template: templates/agent-deploy.yaml + - contains: + path: spec.template.spec.initContainers[0].volumeMounts + content: + name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + template: templates/agent-deploy.yaml + - contains: + path: spec.template.spec.containers[1].volumeMounts + content: + name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + template: templates/agent-deploy.yaml + + - it: should add extra volumes and mounts to webhook and config-loader jobs + set: + clusterName: "test-cluster" + cloudAccountId: "123456789" + region: "us-east-1" + existingSecretName: "cloudzero-api-key" + apiKey: null + components: + webhookServer: + extraVolumes: + - name: custom-extra-volume + configMap: + name: custom-extra-config + extraVolumeMounts: + - name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + miscellaneous: + configLoader: + extraVolumes: + - name: custom-extra-volume + configMap: + name: custom-extra-config + extraVolumeMounts: + - name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + asserts: + - contains: + path: spec.template.spec.volumes + content: + name: custom-extra-volume + configMap: + name: custom-extra-config + template: templates/webhook-deploy.yaml + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + template: templates/webhook-deploy.yaml + - contains: + path: spec.template.spec.volumes + content: + name: custom-extra-volume + configMap: + name: custom-extra-config + template: templates/config-loader-job.yaml + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + template: templates/config-loader-job.yaml + + - it: should add extra volumes and mounts in federated mode and backfill + set: + clusterName: "test-cluster" + cloudAccountId: "123456789" + region: "us-east-1" + existingSecretName: "cloudzero-api-key" + apiKey: null + configmapReload: + prometheus: + enabled: false + defaults: + federation: + enabled: true + components: + agent: + extraVolumes: + - name: custom-extra-volume + configMap: + name: custom-extra-config + extraVolumeMounts: + - name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + asserts: + - contains: + path: spec.template.spec.volumes + content: + name: custom-extra-volume + configMap: + name: custom-extra-config + template: templates/agent-daemonset.yaml + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + template: templates/agent-daemonset.yaml + + - it: should add extra volumes and mounts to the backfill CronJob + documentIndex: 0 + set: + clusterName: "test-cluster" + cloudAccountId: "123456789" + region: "us-east-1" + existingSecretName: "cloudzero-api-key" + apiKey: null + components: + webhookServer: + backfill: + extraVolumes: + - name: custom-extra-volume + configMap: + name: custom-extra-config + extraVolumeMounts: + - name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + asserts: + - contains: + path: spec.jobTemplate.spec.template.spec.volumes + content: + name: custom-extra-volume + configMap: + name: custom-extra-config + template: templates/backfill-job.yaml + + - it: should add extra volumes and mounts to the backfill one-time Job + documentIndex: 1 + set: + clusterName: "test-cluster" + cloudAccountId: "123456789" + region: "us-east-1" + existingSecretName: "cloudzero-api-key" + apiKey: null + components: + webhookServer: + backfill: + extraVolumes: + - name: custom-extra-volume + configMap: + name: custom-extra-config + extraVolumeMounts: + - name: custom-extra-volume + mountPath: /opt/custom-extra + readOnly: true + asserts: + - contains: + path: spec.template.spec.volumes + content: + name: custom-extra-volume + configMap: + name: custom-extra-config + template: templates/backfill-job.yaml diff --git a/helm/values.schema.json b/helm/values.schema.json index 0f8afc47..ee7b86e5 100644 --- a/helm/values.schema.json +++ b/helm/values.schema.json @@ -1,25 +1,111 @@ { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://raw.githubusercontent.com/Cloudzero/cloudzero-agent/refs/heads/develop/helm/values.schema.json", "$defs": { + "com.cloudzero.agent.image": { + "additionalProperties": false, + "properties": { + "pullPolicy": { + "oneOf": [ + { + "$ref": "#/$defs/io.k8s.api.core.v1.Container/properties/imagePullPolicy" + }, + { + "type": "null" + } + ] + }, + "registry": { + "additionalProperties": false, + "type": [ + "string", + "null" + ] + }, + "repository": { + "additionalProperties": false, + "type": [ + "string", + "null" + ] + }, + "digest": { + "additionalProperties": false, + "type": [ + "string", + "null" + ] + }, + "tag": { + "additionalProperties": false, + "type": [ + "string", + "null" + ] + }, + "pullSecrets": { + "oneOf": [ + { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "com.cloudzero.agent.dns": { + "additionalProperties": false, + "type": "object", + "properties": { + "policy": { + "oneOf": [ + { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/dnsPolicy" + }, + { + "type": "null" + } + ] + }, + "config": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodDNSConfig" + } + } + }, + "com.cloudzero.agent.tolerations": { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Toleration" + } + }, + "com.cloudzero.agent.duration": { + "type": "string", + "pattern": "^[0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h)([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))*$" + }, "com.cloudzero.agent.AutoscalingSpec": { + "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, - "maxReplicas": { - "minimum": 1, - "type": "integer" - }, "minReplicas": { - "minimum": 1, - "type": "integer" + "type": "integer", + "minimum": 1 + }, + "maxReplicas": { + "type": "integer", + "minimum": 1 }, "targetCPUUtilizationPercentage": { "oneOf": [ { - "maximum": 100, + "type": "integer", "minimum": 1, - "type": "integer" + "maximum": 100 }, { "type": "null" @@ -29,48 +115,46 @@ "targetMemoryUtilizationPercentage": { "oneOf": [ { - "maximum": 100, + "type": "integer", "minimum": 1, - "type": "integer" + "maximum": 100 }, { "type": "null" } ] } - }, - "type": "object" - }, - "com.cloudzero.agent.CheckConfig": { - "default": "optional", - "enum": ["required", "optional", "informative", "disabled"], - "type": "string" + } }, "com.cloudzero.agent.PodDisruptionBudgetSpec": { + "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, - "maxUnavailable": { - "$ref": "#/$defs/io.k8s.api.policy.v1.PodDisruptionBudgetSpec/properties/maxUnavailable" - }, "minAvailable": { "$ref": "#/$defs/io.k8s.api.policy.v1.PodDisruptionBudgetSpec/properties/minAvailable" + }, + "maxUnavailable": { + "$ref": "#/$defs/io.k8s.api.policy.v1.PodDisruptionBudgetSpec/properties/maxUnavailable" } - }, - "type": "object" + } + }, + "com.cloudzero.agent.CheckConfig": { + "type": "string", + "enum": [ + "required", + "optional", + "informative", + "disabled" + ], + "default": "optional" }, "com.cloudzero.agent.StageChecks": { + "type": "object", "additionalProperties": false, "properties": { - "agent_settings": { - "allOf": [ - { - "$ref": "#/$defs/com.cloudzero.agent.CheckConfig" - } - ] - }, "api_key_valid": { "allOf": [ { @@ -78,7 +162,7 @@ } ] }, - "istio_xcluster_lb": { + "k8s_version": { "allOf": [ { "$ref": "#/$defs/com.cloudzero.agent.CheckConfig" @@ -99,13 +183,6 @@ } ] }, - "k8s_version": { - "allOf": [ - { - "$ref": "#/$defs/com.cloudzero.agent.CheckConfig" - } - ] - }, "kube_state_metrics_reachable": { "allOf": [ { @@ -133,83 +210,24 @@ "$ref": "#/$defs/com.cloudzero.agent.CheckConfig" } ] - } - }, - "type": "object" - }, - "com.cloudzero.agent.dns": { - "additionalProperties": false, - "properties": { - "config": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodDNSConfig" - }, - "policy": { - "oneOf": [ - { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/dnsPolicy" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "com.cloudzero.agent.duration": { - "pattern": "^[0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h)([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))*$", - "type": "string" - }, - "com.cloudzero.agent.image": { - "additionalProperties": false, - "properties": { - "digest": { - "additionalProperties": false, - "type": ["string", "null"] }, - "pullPolicy": { - "oneOf": [ - { - "$ref": "#/$defs/io.k8s.api.core.v1.Container/properties/imagePullPolicy" - }, + "istio_xcluster_lb": { + "allOf": [ { - "type": "null" + "$ref": "#/$defs/com.cloudzero.agent.CheckConfig" } ] }, - "pullSecrets": { - "oneOf": [ - { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets" - }, + "agent_settings": { + "allOf": [ { - "type": "null" + "$ref": "#/$defs/com.cloudzero.agent.CheckConfig" } ] - }, - "registry": { - "additionalProperties": false, - "type": ["string", "null"] - }, - "repository": { - "additionalProperties": false, - "type": ["string", "null"] - }, - "tag": { - "additionalProperties": false, - "type": ["string", "null"] } - }, - "type": "object" - }, - "com.cloudzero.agent.tolerations": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.Toleration" - }, - "type": "array" + } }, "io.k8s.api.admissionregistration.v1.MatchCondition": { - "additionalProperties": false, "properties": { "expression": { "type": "string" @@ -218,11 +236,14 @@ "type": "string" } }, - "required": ["name", "expression"], - "type": "object" + "required": [ + "name", + "expression" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.admissionregistration.v1.RuleWithOperations": { - "additionalProperties": false, "properties": { "apiGroups": { "items": { @@ -256,10 +277,10 @@ "type": "string" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.admissionregistration.v1.ServiceReference": { - "additionalProperties": false, "properties": { "name": { "type": "string" @@ -275,11 +296,14 @@ "type": "integer" } }, - "required": ["namespace", "name"], - "type": "object" + "required": [ + "namespace", + "name" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.admissionregistration.v1.ValidatingWebhook": { - "additionalProperties": false, "properties": { "admissionReviewVersions": { "items": { @@ -299,7 +323,9 @@ "$ref": "#/$defs/io.k8s.api.admissionregistration.v1.MatchCondition" }, "type": "array", - "x-kubernetes-list-map-keys": ["name"], + "x-kubernetes-list-map-keys": [ + "name" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" @@ -337,10 +363,10 @@ "sideEffects", "admissionReviewVersions" ], - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.admissionregistration.v1.WebhookClientConfig": { - "additionalProperties": false, "properties": { "caBundle": { "format": "byte", @@ -353,17 +379,19 @@ "type": "string" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.batch.v1.CronJob": { - "additionalProperties": false, "properties": { "apiVersion": { "type": "string" }, "kind": { - "enum": ["CronJob"], - "type": "string" + "type": "string", + "enum": [ + "CronJob" + ] }, "metadata": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" @@ -382,10 +410,10 @@ "kind": "CronJob", "version": "v1" } - ] + ], + "additionalProperties": false }, "io.k8s.api.batch.v1.CronJobSpec": { - "additionalProperties": false, "properties": { "concurrencyPolicy": { "type": "string" @@ -415,37 +443,23 @@ "type": "string" } }, - "required": ["schedule", "jobTemplate"], - "type": "object" - }, - "io.k8s.api.batch.v1.CronJobStatus": { - "additionalProperties": false, - "properties": { - "active": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "lastScheduleTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastSuccessfulTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - } - }, - "type": "object" + "required": [ + "schedule", + "jobTemplate" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.batch.v1.Job": { - "additionalProperties": false, "properties": { "apiVersion": { "type": "string" }, "kind": { - "enum": ["Job"], - "type": "string" + "type": "string", + "enum": [ + "Job" + ] }, "metadata": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" @@ -464,49 +478,24 @@ "kind": "Job", "version": "v1" } - ] + ], + "additionalProperties": false }, - "io.k8s.api.batch.v1.JobCondition": { - "additionalProperties": false, + "io.k8s.api.batch.v1.JobSpec": { "properties": { - "lastProbeTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "activeDeadlineSeconds": { + "format": "int64", + "type": "integer" }, - "lastTransitionTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "backoffLimit": { + "format": "int32", + "type": "integer" }, - "message": { - "type": "string" + "backoffLimitPerIndex": { + "format": "int32", + "type": "integer" }, - "reason": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": ["type", "status"], - "type": "object" - }, - "io.k8s.api.batch.v1.JobSpec": { - "additionalProperties": false, - "properties": { - "activeDeadlineSeconds": { - "format": "int64", - "type": "integer" - }, - "backoffLimit": { - "format": "int32", - "type": "integer" - }, - "backoffLimitPerIndex": { - "format": "int32", - "type": "integer" - }, - "completionMode": { + "completionMode": { "type": "string" }, "completions": { @@ -550,61 +539,13 @@ "type": "integer" } }, - "required": ["template"], - "type": "object" - }, - "io.k8s.api.batch.v1.JobStatus": { - "additionalProperties": false, - "properties": { - "active": { - "format": "int32", - "type": "integer" - }, - "completedIndexes": { - "type": "string" - }, - "completionTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "conditions": { - "items": { - "$ref": "#/$defs/io.k8s.api.batch.v1.JobCondition" - }, - "type": "array", - "x-kubernetes-list-type": "atomic", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "failed": { - "format": "int32", - "type": "integer" - }, - "failedIndexes": { - "type": "string" - }, - "ready": { - "format": "int32", - "type": "integer" - }, - "startTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "succeeded": { - "format": "int32", - "type": "integer" - }, - "terminating": { - "format": "int32", - "type": "integer" - }, - "uncountedTerminatedPods": { - "$ref": "#/$defs/io.k8s.api.batch.v1.UncountedTerminatedPods" - } - }, - "type": "object" + "required": [ + "template" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.batch.v1.JobTemplateSpec": { - "additionalProperties": false, "properties": { "metadata": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" @@ -613,10 +554,10 @@ "$ref": "#/$defs/io.k8s.api.batch.v1.JobSpec" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.batch.v1.PodFailurePolicy": { - "additionalProperties": false, "properties": { "rules": { "items": { @@ -626,11 +567,13 @@ "x-kubernetes-list-type": "atomic" } }, - "required": ["rules"], - "type": "object" + "required": [ + "rules" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement": { - "additionalProperties": false, "properties": { "containerName": { "type": "string" @@ -647,11 +590,14 @@ "x-kubernetes-list-type": "set" } }, - "required": ["operator", "values"], - "type": "object" + "required": [ + "operator", + "values" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern": { - "additionalProperties": false, "properties": { "status": { "type": "string" @@ -660,11 +606,13 @@ "type": "string" } }, - "required": ["type"], - "type": "object" + "required": [ + "type" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.batch.v1.PodFailurePolicyRule": { - "additionalProperties": false, "properties": { "action": { "type": "string" @@ -680,11 +628,13 @@ "x-kubernetes-list-type": "atomic" } }, - "required": ["action"], - "type": "object" + "required": [ + "action" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.batch.v1.SuccessPolicy": { - "additionalProperties": false, "properties": { "rules": { "items": { @@ -694,11 +644,13 @@ "x-kubernetes-list-type": "atomic" } }, - "required": ["rules"], - "type": "object" + "required": [ + "rules" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.batch.v1.SuccessPolicyRule": { - "additionalProperties": false, "properties": { "succeededCount": { "format": "int32", @@ -708,30 +660,10 @@ "type": "string" } }, - "type": "object" - }, - "io.k8s.api.batch.v1.UncountedTerminatedPods": { - "additionalProperties": false, - "properties": { - "failed": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "succeeded": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - } - }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": { - "additionalProperties": false, "properties": { "fsType": { "type": "string" @@ -747,11 +679,13 @@ "type": "string" } }, - "required": ["volumeID"], - "type": "object" + "required": [ + "volumeID" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.Affinity": { - "additionalProperties": false, "properties": { "nodeAffinity": { "$ref": "#/$defs/io.k8s.api.core.v1.NodeAffinity" @@ -763,10 +697,10 @@ "$ref": "#/$defs/io.k8s.api.core.v1.PodAntiAffinity" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.AppArmorProfile": { - "additionalProperties": false, "properties": { "localhostProfile": { "type": "string" @@ -775,7 +709,9 @@ "type": "string" } }, - "required": ["type"], + "required": [ + "type" + ], "type": "object", "x-kubernetes-unions": [ { @@ -784,23 +720,10 @@ "localhostProfile": "LocalhostProfile" } } - ] - }, - "io.k8s.api.core.v1.AttachedVolume": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": ["name", "devicePath"], - "type": "object" + ], + "additionalProperties": false }, "io.k8s.api.core.v1.AzureDiskVolumeSource": { - "additionalProperties": false, "properties": { "cachingMode": { "type": "string" @@ -821,30 +744,14 @@ "type": "boolean" } }, - "required": ["diskName", "diskURI"], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { - "additionalProperties": false, - "properties": { - "readOnly": { - "type": "boolean" - }, - "secretName": { - "type": "string" - }, - "secretNamespace": { - "type": "string" - }, - "shareName": { - "type": "string" - } - }, - "required": ["secretName", "shareName"], - "type": "object" + "required": [ + "diskName", + "diskURI" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.AzureFileVolumeSource": { - "additionalProperties": false, "properties": { "readOnly": { "type": "boolean" @@ -856,51 +763,14 @@ "type": "string" } }, - "required": ["secretName", "shareName"], - "type": "object" - }, - "io.k8s.api.core.v1.CSIPersistentVolumeSource": { - "additionalProperties": false, - "properties": { - "controllerExpandSecretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" - }, - "controllerPublishSecretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" - }, - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "nodeExpandSecretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" - }, - "nodePublishSecretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" - }, - "nodeStageSecretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" - }, - "readOnly": { - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "volumeHandle": { - "type": "string" - } - }, - "required": ["driver", "volumeHandle"], - "type": "object" + "required": [ + "secretName", + "shareName" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.CSIVolumeSource": { - "additionalProperties": false, "properties": { "driver": { "type": "string" @@ -921,11 +791,13 @@ "type": "object" } }, - "required": ["driver"], - "type": "object" + "required": [ + "driver" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.Capabilities": { - "additionalProperties": false, "properties": { "add": { "items": { @@ -942,10 +814,10 @@ "x-kubernetes-list-type": "atomic" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.CephFSPersistentVolumeSource": { - "additionalProperties": false, + "io.k8s.api.core.v1.CephFSVolumeSource": { "properties": { "monitors": { "items": { @@ -964,67 +836,21 @@ "type": "string" }, "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" }, "user": { "type": "string" } }, - "required": ["monitors"], - "type": "object" + "required": [ + "monitors" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.CephFSVolumeSource": { - "additionalProperties": false, + "io.k8s.api.core.v1.CinderVolumeSource": { "properties": { - "monitors": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretFile": { - "type": "string" - }, - "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" - }, - "user": { - "type": "string" - } - }, - "required": ["monitors"], - "type": "object" - }, - "io.k8s.api.core.v1.CinderPersistentVolumeSource": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" - }, - "volumeID": { - "type": "string" - } - }, - "required": ["volumeID"], - "type": "object" - }, - "io.k8s.api.core.v1.CinderVolumeSource": { - "additionalProperties": false, - "properties": { - "fsType": { + "fsType": { "type": "string" }, "readOnly": { @@ -1037,21 +863,13 @@ "type": "string" } }, - "required": ["volumeID"], - "type": "object" - }, - "io.k8s.api.core.v1.ClientIPConfig": { - "additionalProperties": false, - "properties": { - "timeoutSeconds": { - "format": "int32", - "type": "integer" - } - }, - "type": "object" + "required": [ + "volumeID" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ClusterTrustBundleProjection": { - "additionalProperties": false, "properties": { "labelSelector": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" @@ -1069,11 +887,13 @@ "type": "string" } }, - "required": ["path"], - "type": "object" + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ConfigMap": { - "additionalProperties": false, "properties": { "apiVersion": { "type": "string" @@ -1095,8 +915,10 @@ "type": "boolean" }, "kind": { - "enum": ["ConfigMap"], - "type": "string" + "type": "string", + "enum": [ + "ConfigMap" + ] }, "metadata": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" @@ -1109,10 +931,10 @@ "kind": "ConfigMap", "version": "v1" } - ] + ], + "additionalProperties": false }, "io.k8s.api.core.v1.ConfigMapEnvSource": { - "additionalProperties": false, "properties": { "name": { "type": "string" @@ -1121,10 +943,10 @@ "type": "boolean" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ConfigMapKeySelector": { - "additionalProperties": false, "properties": { "key": { "type": "string" @@ -1136,34 +958,14 @@ "type": "boolean" } }, - "required": ["key"], + "required": [ + "key" + ], "type": "object", - "x-kubernetes-map-type": "atomic" - }, - "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { - "additionalProperties": false, - "properties": { - "kubeletConfigKey": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "resourceVersion": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "required": ["namespace", "name", "kubeletConfigKey"], - "type": "object" + "x-kubernetes-map-type": "atomic", + "additionalProperties": false }, "io.k8s.api.core.v1.ConfigMapProjection": { - "additionalProperties": false, "properties": { "items": { "items": { @@ -1179,10 +981,10 @@ "type": "boolean" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ConfigMapVolumeSource": { - "additionalProperties": false, "properties": { "defaultMode": { "format": "int32", @@ -1202,10 +1004,10 @@ "type": "boolean" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.Container": { - "additionalProperties": false, "properties": { "args": { "items": { @@ -1226,7 +1028,9 @@ "$ref": "#/$defs/io.k8s.api.core.v1.EnvVar" }, "type": "array", - "x-kubernetes-list-map-keys": ["name"], + "x-kubernetes-list-map-keys": [ + "name" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" @@ -1258,7 +1062,10 @@ "$ref": "#/$defs/io.k8s.api.core.v1.ContainerPort" }, "type": "array", - "x-kubernetes-list-map-keys": ["containerPort", "protocol"], + "x-kubernetes-list-map-keys": [ + "containerPort", + "protocol" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "containerPort", "x-kubernetes-patch-strategy": "merge" @@ -1312,7 +1119,9 @@ "$ref": "#/$defs/io.k8s.api.core.v1.VolumeDevice" }, "type": "array", - "x-kubernetes-list-map-keys": ["devicePath"], + "x-kubernetes-list-map-keys": [ + "devicePath" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "devicePath", "x-kubernetes-patch-strategy": "merge" @@ -1322,7 +1131,9 @@ "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMount" }, "type": "array", - "x-kubernetes-list-map-keys": ["mountPath"], + "x-kubernetes-list-map-keys": [ + "mountPath" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "mountPath", "x-kubernetes-patch-strategy": "merge" @@ -1331,44 +1142,13 @@ "type": "string" } }, - "required": ["name"], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerExtendedResourceRequest": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "requestName": { - "type": "string" - }, - "resourceName": { - "type": "string" - } - }, - "required": ["containerName", "resourceName", "requestName"], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerImage": { - "additionalProperties": false, - "properties": { - "names": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "sizeBytes": { - "format": "int64", - "type": "integer" - } - }, - "type": "object" + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ContainerPort": { - "additionalProperties": false, "properties": { "containerPort": { "format": "int32", @@ -1388,11 +1168,13 @@ "type": "string" } }, - "required": ["containerPort"], - "type": "object" + "required": [ + "containerPort" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ContainerResizePolicy": { - "additionalProperties": false, "properties": { "resourceName": { "type": "string" @@ -1401,11 +1183,14 @@ "type": "string" } }, - "required": ["resourceName", "restartPolicy"], - "type": "object" + "required": [ + "resourceName", + "restartPolicy" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ContainerRestartRule": { - "additionalProperties": false, "properties": { "action": { "type": "string" @@ -1414,11 +1199,13 @@ "$ref": "#/$defs/io.k8s.api.core.v1.ContainerRestartRuleOnExitCodes" } }, - "required": ["action"], - "type": "object" + "required": [ + "action" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ContainerRestartRuleOnExitCodes": { - "additionalProperties": false, "properties": { "operator": { "type": "string" @@ -1432,244 +1219,92 @@ "x-kubernetes-list-type": "set" } }, - "required": ["operator"], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerState": { - "additionalProperties": false, - "properties": { - "running": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStateRunning" - }, - "terminated": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStateTerminated" - }, - "waiting": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStateWaiting" - } - }, - "type": "object" + "required": [ + "operator" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ContainerStateRunning": { - "additionalProperties": false, + "io.k8s.api.core.v1.DownwardAPIProjection": { "properties": { - "startedAt": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "items": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.DownwardAPIVolumeFile" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ContainerStateTerminated": { - "additionalProperties": false, + "io.k8s.api.core.v1.DownwardAPIVolumeFile": { "properties": { - "containerID": { - "type": "string" + "fieldRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.ObjectFieldSelector" }, - "exitCode": { + "mode": { "format": "int32", "type": "integer" }, - "finishedAt": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "type": "string" - }, - "reason": { + "path": { "type": "string" }, - "signal": { + "resourceFieldRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceFieldSelector" + } + }, + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.DownwardAPIVolumeSource": { + "properties": { + "defaultMode": { "format": "int32", "type": "integer" }, - "startedAt": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "items": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.DownwardAPIVolumeFile" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" } }, - "required": ["exitCode"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ContainerStateWaiting": { - "additionalProperties": false, + "io.k8s.api.core.v1.EmptyDirVolumeSource": { "properties": { - "message": { + "medium": { "type": "string" }, - "reason": { - "type": "string" + "sizeLimit": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ContainerStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.EnvFromSource": { "properties": { - "allocatedResources": { - "additionalProperties": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "type": "object" - }, - "allocatedResourcesStatus": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceStatus" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "containerID": { - "type": "string" + "configMapRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.ConfigMapEnvSource" }, - "image": { - "type": "string" - }, - "imageID": { - "type": "string" - }, - "lastState": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerState" - }, - "name": { - "type": "string" - }, - "ready": { - "type": "boolean" - }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" - }, - "restartCount": { - "format": "int32", - "type": "integer" - }, - "started": { - "type": "boolean" - }, - "state": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerState" - }, - "stopSignal": { - "type": "string" - }, - "user": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerUser" - }, - "volumeMounts": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMountStatus" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["mountPath"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": ["name", "ready", "restartCount", "image", "imageID"], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerUser": { - "additionalProperties": false, - "properties": { - "linux": { - "$ref": "#/$defs/io.k8s.api.core.v1.LinuxContainerUser" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.DaemonEndpoint": { - "additionalProperties": false, - "properties": { - "Port": { - "format": "int32", - "type": "integer" - } - }, - "required": ["Port"], - "type": "object" - }, - "io.k8s.api.core.v1.DownwardAPIProjection": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.DownwardAPIVolumeFile": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.ObjectFieldSelector" - }, - "mode": { - "format": "int32", - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceFieldSelector" - } - }, - "required": ["path"], - "type": "object" - }, - "io.k8s.api.core.v1.DownwardAPIVolumeSource": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "format": "int32", - "type": "integer" - }, - "items": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EmptyDirVolumeSource": { - "additionalProperties": false, - "properties": { - "medium": { - "type": "string" - }, - "sizeLimit": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EnvFromSource": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.ConfigMapEnvSource" - }, - "prefix": { + "prefix": { "type": "string" }, "secretRef": { "$ref": "#/$defs/io.k8s.api.core.v1.SecretEnvSource" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.EnvVar": { - "additionalProperties": false, "properties": { "name": { "type": "string" @@ -1681,11 +1316,13 @@ "$ref": "#/$defs/io.k8s.api.core.v1.EnvVarSource" } }, - "required": ["name"], - "type": "object" + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.EnvVarSource": { - "additionalProperties": false, "properties": { "configMapKeyRef": { "$ref": "#/$defs/io.k8s.api.core.v1.ConfigMapKeySelector" @@ -1703,10 +1340,10 @@ "$ref": "#/$defs/io.k8s.api.core.v1.SecretKeySelector" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.EphemeralContainer": { - "additionalProperties": false, "properties": { "args": { "items": { @@ -1727,7 +1364,9 @@ "$ref": "#/$defs/io.k8s.api.core.v1.EnvVar" }, "type": "array", - "x-kubernetes-list-map-keys": ["name"], + "x-kubernetes-list-map-keys": [ + "name" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" @@ -1759,7 +1398,10 @@ "$ref": "#/$defs/io.k8s.api.core.v1.ContainerPort" }, "type": "array", - "x-kubernetes-list-map-keys": ["containerPort", "protocol"], + "x-kubernetes-list-map-keys": [ + "containerPort", + "protocol" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "containerPort", "x-kubernetes-patch-strategy": "merge" @@ -1816,7 +1458,9 @@ "$ref": "#/$defs/io.k8s.api.core.v1.VolumeDevice" }, "type": "array", - "x-kubernetes-list-map-keys": ["devicePath"], + "x-kubernetes-list-map-keys": [ + "devicePath" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "devicePath", "x-kubernetes-patch-strategy": "merge" @@ -1826,7 +1470,9 @@ "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMount" }, "type": "array", - "x-kubernetes-list-map-keys": ["mountPath"], + "x-kubernetes-list-map-keys": [ + "mountPath" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "mountPath", "x-kubernetes-patch-strategy": "merge" @@ -1835,20 +1481,22 @@ "type": "string" } }, - "required": ["name"], - "type": "object" + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.EphemeralVolumeSource": { - "additionalProperties": false, "properties": { "volumeClaimTemplate": { "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimTemplate" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ExecAction": { - "additionalProperties": false, "properties": { "command": { "items": { @@ -1858,10 +1506,10 @@ "x-kubernetes-list-type": "atomic" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.FCVolumeSource": { - "additionalProperties": false, "properties": { "fsType": { "type": "string" @@ -1888,10 +1536,10 @@ "x-kubernetes-list-type": "atomic" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.FileKeySelector": { - "additionalProperties": false, "properties": { "key": { "type": "string" @@ -1906,37 +1554,16 @@ "type": "string" } }, - "required": ["volumeName", "path", "key"], + "required": [ + "volumeName", + "path", + "key" + ], "type": "object", - "x-kubernetes-map-type": "atomic" - }, - "io.k8s.api.core.v1.FlexPersistentVolumeSource": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "options": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" - } - }, - "required": ["driver"], - "type": "object" + "x-kubernetes-map-type": "atomic", + "additionalProperties": false }, "io.k8s.api.core.v1.FlexVolumeSource": { - "additionalProperties": false, "properties": { "driver": { "type": "string" @@ -1957,11 +1584,13 @@ "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" } }, - "required": ["driver"], - "type": "object" + "required": [ + "driver" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.FlockerVolumeSource": { - "additionalProperties": false, "properties": { "datasetName": { "type": "string" @@ -1970,10 +1599,10 @@ "type": "string" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": { - "additionalProperties": false, "properties": { "fsType": { "type": "string" @@ -1989,11 +1618,13 @@ "type": "boolean" } }, - "required": ["pdName"], - "type": "object" + "required": [ + "pdName" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.GRPCAction": { - "additionalProperties": false, "properties": { "port": { "format": "int32", @@ -2003,11 +1634,13 @@ "type": "string" } }, - "required": ["port"], - "type": "object" + "required": [ + "port" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.GitRepoVolumeSource": { - "additionalProperties": false, "properties": { "directory": { "type": "string" @@ -2019,30 +1652,13 @@ "type": "string" } }, - "required": ["repository"], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { - "additionalProperties": false, - "properties": { - "endpoints": { - "type": "string" - }, - "endpointsNamespace": { - "type": "string" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "required": ["endpoints", "path"], - "type": "object" + "required": [ + "repository" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.GlusterfsVolumeSource": { - "additionalProperties": false, "properties": { "endpoints": { "type": "string" @@ -2054,11 +1670,14 @@ "type": "boolean" } }, - "required": ["endpoints", "path"], - "type": "object" + "required": [ + "endpoints", + "path" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.HTTPGetAction": { - "additionalProperties": false, "properties": { "host": { "type": "string" @@ -2080,11 +1699,13 @@ "type": "string" } }, - "required": ["port"], - "type": "object" + "required": [ + "port" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.HTTPHeader": { - "additionalProperties": false, "properties": { "name": { "type": "string" @@ -2093,11 +1714,14 @@ "type": "string" } }, - "required": ["name", "value"], - "type": "object" + "required": [ + "name", + "value" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.HostAlias": { - "additionalProperties": false, "properties": { "hostnames": { "items": { @@ -2110,79 +1734,28 @@ "type": "string" } }, - "required": ["ip"], - "type": "object" + "required": [ + "ip" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.HostIP": { - "additionalProperties": false, + "io.k8s.api.core.v1.HostPathVolumeSource": { "properties": { - "ip": { - "type": "string" - } - }, - "required": ["ip"], - "type": "object" - }, - "io.k8s.api.core.v1.HostPathVolumeSource": { - "additionalProperties": false, - "properties": { - "path": { + "path": { "type": "string" }, "type": { "type": "string" } }, - "required": ["path"], - "type": "object" - }, - "io.k8s.api.core.v1.ISCSIPersistentVolumeSource": { - "additionalProperties": false, - "properties": { - "chapAuthDiscovery": { - "type": "boolean" - }, - "chapAuthSession": { - "type": "boolean" - }, - "fsType": { - "type": "string" - }, - "initiatorName": { - "type": "string" - }, - "iqn": { - "type": "string" - }, - "iscsiInterface": { - "type": "string" - }, - "lun": { - "format": "int32", - "type": "integer" - }, - "portals": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" - }, - "targetPortal": { - "type": "string" - } - }, - "required": ["targetPortal", "iqn", "lun"], - "type": "object" + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ISCSIVolumeSource": { - "additionalProperties": false, "properties": { "chapAuthDiscovery": { "type": "boolean" @@ -2223,11 +1796,15 @@ "type": "string" } }, - "required": ["targetPortal", "iqn", "lun"], - "type": "object" + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.ImageVolumeSource": { - "additionalProperties": false, "properties": { "pullPolicy": { "type": "string" @@ -2236,10 +1813,10 @@ "type": "string" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.KeyToPath": { - "additionalProperties": false, "properties": { "key": { "type": "string" @@ -2252,11 +1829,14 @@ "type": "string" } }, - "required": ["key", "path"], - "type": "object" + "required": [ + "key", + "path" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.Lifecycle": { - "additionalProperties": false, "properties": { "postStart": { "$ref": "#/$defs/io.k8s.api.core.v1.LifecycleHandler" @@ -2268,10 +1848,10 @@ "type": "string" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.LifecycleHandler": { - "additionalProperties": false, "properties": { "exec": { "$ref": "#/$defs/io.k8s.api.core.v1.ExecAction" @@ -2286,104 +1866,20 @@ "$ref": "#/$defs/io.k8s.api.core.v1.TCPSocketAction" } }, - "type": "object" - }, - "io.k8s.api.core.v1.LinuxContainerUser": { - "additionalProperties": false, - "properties": { - "gid": { - "format": "int64", - "type": "integer" - }, - "supplementalGroups": { - "items": { - "format": "int64", - "type": "integer" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "uid": { - "format": "int64", - "type": "integer" - } - }, - "required": ["uid", "gid"], - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerIngress": { - "additionalProperties": false, - "properties": { - "hostname": { - "type": "string" - }, - "ip": { - "type": "string" - }, - "ipMode": { - "type": "string" - }, - "ports": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PortStatus" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerStatus": { - "additionalProperties": false, - "properties": { - "ingress": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.LoadBalancerIngress" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.LocalObjectReference": { - "additionalProperties": false, "properties": { "name": { "type": "string" } }, "type": "object", - "x-kubernetes-map-type": "atomic" - }, - "io.k8s.api.core.v1.LocalVolumeSource": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "path": { - "type": "string" - } - }, - "required": ["path"], - "type": "object" - }, - "io.k8s.api.core.v1.ModifyVolumeStatus": { - "additionalProperties": false, - "properties": { - "status": { - "type": "string" - }, - "targetVolumeAttributesClassName": { - "type": "string" - } - }, - "required": ["status"], - "type": "object" + "x-kubernetes-map-type": "atomic", + "additionalProperties": false }, "io.k8s.api.core.v1.NFSVolumeSource": { - "additionalProperties": false, "properties": { "path": { "type": "string" @@ -2395,18 +1891,23 @@ "type": "string" } }, - "required": ["server", "path"], - "type": "object" + "required": [ + "server", + "path" + ], + "type": "object", + "additionalProperties": false }, "io.k8s.api.core.v1.Node": { - "additionalProperties": false, "properties": { "apiVersion": { "type": "string" }, "kind": { - "enum": ["Node"], - "type": "string" + "type": "string", + "enum": [ + "Node" + ] }, "metadata": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" @@ -2425,23 +1926,10 @@ "kind": "Node", "version": "v1" } - ] - }, - "io.k8s.api.core.v1.NodeAddress": { - "additionalProperties": false, - "properties": { - "address": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": ["type", "address"], - "type": "object" + ], + "additionalProperties": false }, "io.k8s.api.core.v1.NodeAffinity": { - "additionalProperties": false, "properties": { "preferredDuringSchedulingIgnoredDuringExecution": { "items": { @@ -2454,266 +1942,386 @@ "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelector" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeCondition": { - "additionalProperties": false, + "io.k8s.api.core.v1.NodeSelector": { "properties": { - "lastHeartbeatTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastTransitionTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "type": "string" - }, - "reason": { + "nodeSelectorTerms": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelectorTerm" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "nodeSelectorTerms" + ], + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false + }, + "io.k8s.api.core.v1.NodeSelectorRequirement": { + "properties": { + "key": { "type": "string" }, - "status": { + "operator": { "type": "string" }, - "type": { - "type": "string" + "values": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" } }, - "required": ["type", "status"], - "type": "object" + "required": [ + "key", + "operator" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeConfigSource": { - "additionalProperties": false, + "io.k8s.api.core.v1.NodeSelectorTerm": { "properties": { - "configMap": { - "$ref": "#/$defs/io.k8s.api.core.v1.ConfigMapNodeConfigSource" + "matchExpressions": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelectorRequirement" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "matchFields": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelectorRequirement" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" } }, - "type": "object" + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeConfigStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.ObjectFieldSelector": { "properties": { - "active": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigSource" - }, - "assigned": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigSource" - }, - "error": { + "apiVersion": { "type": "string" }, - "lastKnownGood": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigSource" + "fieldPath": { + "type": "string" } }, - "type": "object" + "required": [ + "fieldPath" + ], + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeDaemonEndpoints": { - "additionalProperties": false, + "io.k8s.api.core.v1.PersistentVolume": { "properties": { - "kubeletEndpoint": { - "$ref": "#/$defs/io.k8s.api.core.v1.DaemonEndpoint" + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "PersistentVolume" + ] + }, + "metadata": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeSpec" + }, + "status": { + "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeStatus" } }, - "type": "object" + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + ], + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeFeatures": { - "additionalProperties": false, + "io.k8s.api.core.v1.PersistentVolumeClaim": { "properties": { - "supplementalGroupsPolicy": { - "type": "boolean" + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "PersistentVolumeClaim" + ] + }, + "metadata": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimSpec" + }, + "status": { + "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimStatus" } }, - "type": "object" + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + ], + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeRuntimeHandler": { - "additionalProperties": false, + "io.k8s.api.core.v1.PersistentVolumeClaimSpec": { "properties": { - "features": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeRuntimeHandlerFeatures" + "accessModes": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" }, - "name": { + "dataSource": { + "$ref": "#/$defs/io.k8s.api.core.v1.TypedLocalObjectReference" + }, + "dataSourceRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.TypedObjectReference" + }, + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.VolumeResourceRequirements" + }, + "selector": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "storageClassName": { + "type": "string" + }, + "volumeAttributesClassName": { + "type": "string" + }, + "volumeMode": { + "type": "string" + }, + "volumeName": { "type": "string" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeRuntimeHandlerFeatures": { - "additionalProperties": false, + "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": { "properties": { - "recursiveReadOnlyMounts": { - "type": "boolean" + "metadata": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" }, - "userNamespaces": { - "type": "boolean" + "spec": { + "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimSpec" } }, - "type": "object" + "required": [ + "spec" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeSelector": { - "additionalProperties": false, + "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": { "properties": { - "nodeSelectorTerms": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelectorTerm" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "claimName": { + "type": "string" + }, + "readOnly": { + "type": "boolean" } }, - "required": ["nodeSelectorTerms"], + "required": [ + "claimName" + ], "type": "object", - "x-kubernetes-map-type": "atomic" + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeSelectorRequirement": { - "additionalProperties": false, + "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { "properties": { - "key": { + "fsType": { "type": "string" }, - "operator": { + "pdID": { + "type": "string" + } + }, + "required": [ + "pdID" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.Pod": { + "properties": { + "apiVersion": { "type": "string" }, - "values": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "kind": { + "type": "string", + "enum": [ + "Pod" + ] + }, + "metadata": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec" + }, + "status": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodStatus" } }, - "required": ["key", "operator"], - "type": "object" + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Pod", + "version": "v1" + } + ], + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeSelectorTerm": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodAffinity": { "properties": { - "matchExpressions": { + "preferredDuringSchedulingIgnoredDuringExecution": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelectorRequirement" + "$ref": "#/$defs/io.k8s.api.core.v1.WeightedPodAffinityTerm" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "matchFields": { + "requiredDuringSchedulingIgnoredDuringExecution": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelectorRequirement" + "$ref": "#/$defs/io.k8s.api.core.v1.PodAffinityTerm" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object", - "x-kubernetes-map-type": "atomic" + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeSpec": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodAffinityTerm": { "properties": { - "configSource": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigSource" - }, - "externalID": { - "type": "string" + "labelSelector": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" }, - "podCIDR": { - "type": "string" + "matchLabelKeys": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" }, - "podCIDRs": { + "mismatchLabelKeys": { "items": { "type": "string" }, "type": "array", - "x-kubernetes-list-type": "set", - "x-kubernetes-patch-strategy": "merge" + "x-kubernetes-list-type": "atomic" }, - "providerID": { - "type": "string" + "namespaceSelector": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" }, - "taints": { + "namespaces": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.Taint" + "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "unschedulable": { - "type": "boolean" + "topologyKey": { + "type": "string" } }, - "type": "object" + "required": [ + "topologyKey" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodAntiAffinity": { "properties": { - "addresses": { + "preferredDuringSchedulingIgnoredDuringExecution": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeAddress" + "$ref": "#/$defs/io.k8s.api.core.v1.WeightedPodAffinityTerm" }, "type": "array", - "x-kubernetes-list-map-keys": ["type"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "allocatable": { - "additionalProperties": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "type": "object" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "type": "object" + "x-kubernetes-list-type": "atomic" }, - "conditions": { + "requiredDuringSchedulingIgnoredDuringExecution": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["type"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "config": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigStatus" - }, - "daemonEndpoints": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeDaemonEndpoints" - }, - "features": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeFeatures" - }, - "images": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerImage" + "$ref": "#/$defs/io.k8s.api.core.v1.PodAffinityTerm" }, "type": "array", "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PodCertificateProjection": { + "properties": { + "certificateChainPath": { + "type": "string" }, - "nodeInfo": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeSystemInfo" + "credentialBundlePath": { + "type": "string" }, - "phase": { + "keyPath": { "type": "string" }, - "runtimeHandlers": { + "keyType": { + "type": "string" + }, + "maxExpirationSeconds": { + "format": "int32", + "type": "integer" + }, + "signerName": { + "type": "string" + } + }, + "required": [ + "signerName", + "keyType" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PodDNSConfig": { + "properties": { + "nameservers": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeRuntimeHandler" + "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "volumesAttached": { + "options": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.AttachedVolume" + "$ref": "#/$defs/io.k8s.api.core.v1.PodDNSConfigOption" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "volumesInUse": { + "searches": { "items": { "type": "string" }, @@ -2721,1397 +2329,1311 @@ "x-kubernetes-list-type": "atomic" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeSwapStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodDNSConfigOption": { "properties": { - "capacity": { - "format": "int64", - "type": "integer" + "name": { + "type": "string" + }, + "value": { + "type": "string" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.NodeSystemInfo": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodOS": { "properties": { - "architecture": { - "type": "string" - }, - "bootID": { - "type": "string" - }, - "containerRuntimeVersion": { - "type": "string" - }, - "kernelVersion": { - "type": "string" - }, - "kubeProxyVersion": { - "type": "string" - }, - "kubeletVersion": { - "type": "string" - }, - "machineID": { - "type": "string" - }, - "operatingSystem": { - "type": "string" - }, - "osImage": { - "type": "string" - }, - "swap": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeSwapStatus" - }, - "systemUUID": { + "name": { "type": "string" } }, "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion", - "operatingSystem", - "architecture" + "name" ], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ObjectFieldSelector": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodReadinessGate": { "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { + "conditionType": { "type": "string" } }, - "required": ["fieldPath"], + "required": [ + "conditionType" + ], "type": "object", - "x-kubernetes-map-type": "atomic" + "additionalProperties": false }, - "io.k8s.api.core.v1.ObjectReference": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodResourceClaim": { "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - }, - "kind": { - "type": "string" - }, "name": { "type": "string" }, - "namespace": { - "type": "string" - }, - "resourceVersion": { + "resourceClaimName": { "type": "string" }, - "uid": { + "resourceClaimTemplateName": { "type": "string" } }, + "required": [ + "name" + ], "type": "object", - "x-kubernetes-map-type": "atomic" + "additionalProperties": false }, - "io.k8s.api.core.v1.PersistentVolume": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodSchedulingGate": { "properties": { - "apiVersion": { - "type": "string" - }, - "kind": { - "enum": ["PersistentVolume"], + "name": { "type": "string" - }, - "metadata": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeSpec" - }, - "status": { - "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeStatus" } }, + "required": [ + "name" + ], "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - ] + "additionalProperties": false }, - "io.k8s.api.core.v1.PersistentVolumeClaim": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodSecurityContext": { "properties": { - "apiVersion": { - "type": "string" + "appArmorProfile": { + "$ref": "#/$defs/io.k8s.api.core.v1.AppArmorProfile" }, - "kind": { - "enum": ["PersistentVolumeClaim"], - "type": "string" + "fsGroup": { + "format": "int64", + "type": "integer" }, - "metadata": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + "fsGroupChangePolicy": { + "type": "string" }, - "spec": { - "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimSpec" + "runAsGroup": { + "format": "int64", + "type": "integer" }, - "status": { - "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimStatus" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { - "additionalProperties": false, - "properties": { - "lastProbeTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "runAsNonRoot": { + "type": "boolean" }, - "lastTransitionTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "runAsUser": { + "format": "int64", + "type": "integer" }, - "message": { + "seLinuxChangePolicy": { "type": "string" }, - "reason": { - "type": "string" + "seLinuxOptions": { + "$ref": "#/$defs/io.k8s.api.core.v1.SELinuxOptions" }, - "status": { - "type": "string" + "seccompProfile": { + "$ref": "#/$defs/io.k8s.api.core.v1.SeccompProfile" }, - "type": { - "type": "string" - } - }, - "required": ["type", "status"], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimSpec": { - "additionalProperties": false, - "properties": { - "accessModes": { + "supplementalGroups": { "items": { - "type": "string" + "format": "int64", + "type": "integer" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "dataSource": { - "$ref": "#/$defs/io.k8s.api.core.v1.TypedLocalObjectReference" - }, - "dataSourceRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.TypedObjectReference" - }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.VolumeResourceRequirements" - }, - "selector": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "storageClassName": { + "supplementalGroupsPolicy": { "type": "string" }, - "volumeAttributesClassName": { - "type": "string" - }, - "volumeMode": { - "type": "string" + "sysctls": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Sysctl" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" }, - "volumeName": { - "type": "string" + "windowsOptions": { + "$ref": "#/$defs/io.k8s.api.core.v1.WindowsSecurityContextOptions" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodSpec": { "properties": { - "accessModes": { + "activeDeadlineSeconds": { + "format": "int64", + "type": "integer" + }, + "affinity": { + "$ref": "#/$defs/io.k8s.api.core.v1.Affinity" + }, + "automountServiceAccountToken": { + "type": "boolean" + }, + "containers": { "items": { - "type": "string" + "$ref": "#/$defs/io.k8s.api.core.v1.Container" }, "type": "array", - "x-kubernetes-list-type": "atomic" + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" }, - "allocatedResourceStatuses": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-kubernetes-map-type": "granular" + "dnsConfig": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodDNSConfig" }, - "allocatedResources": { - "additionalProperties": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "type": "object" + "dnsPolicy": { + "type": "string" }, - "capacity": { - "additionalProperties": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + "enableServiceLinks": { + "type": "boolean" + }, + "ephemeralContainers": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.EphemeralContainer" }, - "type": "object" + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" }, - "conditions": { + "hostAliases": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimCondition" + "$ref": "#/$defs/io.k8s.api.core.v1.HostAlias" }, "type": "array", - "x-kubernetes-list-map-keys": ["type"], + "x-kubernetes-list-map-keys": [ + "ip" + ], "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-merge-key": "ip", "x-kubernetes-patch-strategy": "merge" }, - "currentVolumeAttributesClassName": { - "type": "string" + "hostIPC": { + "type": "boolean" }, - "modifyVolumeStatus": { - "$ref": "#/$defs/io.k8s.api.core.v1.ModifyVolumeStatus" + "hostNetwork": { + "type": "boolean" }, - "phase": { + "hostPID": { + "type": "boolean" + }, + "hostUsers": { + "type": "boolean" + }, + "hostname": { "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": { - "additionalProperties": false, - "properties": { - "metadata": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" }, - "spec": { - "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimSpec" - } - }, - "required": ["spec"], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": { - "additionalProperties": false, - "properties": { - "claimName": { + "hostnameOverride": { "type": "string" }, - "readOnly": { - "type": "boolean" - } - }, - "required": ["claimName"], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeSpec": { - "additionalProperties": false, - "properties": { - "accessModes": { + "imagePullSecrets": { "items": { - "type": "string" + "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" }, "type": "array", - "x-kubernetes-list-type": "atomic" + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" }, - "awsElasticBlockStore": { - "$ref": "#/$defs/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" + "initContainers": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Container" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" }, - "azureDisk": { - "$ref": "#/$defs/io.k8s.api.core.v1.AzureDiskVolumeSource" + "nodeName": { + "type": "string" }, - "azureFile": { - "$ref": "#/$defs/io.k8s.api.core.v1.AzureFilePersistentVolumeSource" + "nodeSelector": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-kubernetes-map-type": "atomic" }, - "capacity": { + "os": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodOS" + }, + "overhead": { "additionalProperties": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "type": "object" }, - "cephfs": { - "$ref": "#/$defs/io.k8s.api.core.v1.CephFSPersistentVolumeSource" - }, - "cinder": { - "$ref": "#/$defs/io.k8s.api.core.v1.CinderPersistentVolumeSource" - }, - "claimRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.ObjectReference", - "x-kubernetes-map-type": "granular" - }, - "csi": { - "$ref": "#/$defs/io.k8s.api.core.v1.CSIPersistentVolumeSource" - }, - "fc": { - "$ref": "#/$defs/io.k8s.api.core.v1.FCVolumeSource" - }, - "flexVolume": { - "$ref": "#/$defs/io.k8s.api.core.v1.FlexPersistentVolumeSource" - }, - "flocker": { - "$ref": "#/$defs/io.k8s.api.core.v1.FlockerVolumeSource" - }, - "gcePersistentDisk": { - "$ref": "#/$defs/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" - }, - "glusterfs": { - "$ref": "#/$defs/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource" - }, - "hostPath": { - "$ref": "#/$defs/io.k8s.api.core.v1.HostPathVolumeSource" + "preemptionPolicy": { + "type": "string" }, - "iscsi": { - "$ref": "#/$defs/io.k8s.api.core.v1.ISCSIPersistentVolumeSource" + "priority": { + "format": "int32", + "type": "integer" }, - "local": { - "$ref": "#/$defs/io.k8s.api.core.v1.LocalVolumeSource" + "priorityClassName": { + "type": "string" }, - "mountOptions": { + "readinessGates": { "items": { - "type": "string" + "$ref": "#/$defs/io.k8s.api.core.v1.PodReadinessGate" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "nfs": { - "$ref": "#/$defs/io.k8s.api.core.v1.NFSVolumeSource" + "resourceClaims": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodResourceClaim" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge,retainKeys" }, - "nodeAffinity": { - "$ref": "#/$defs/io.k8s.api.core.v1.VolumeNodeAffinity" + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" }, - "persistentVolumeReclaimPolicy": { + "restartPolicy": { "type": "string" }, - "photonPersistentDisk": { - "$ref": "#/$defs/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" - }, - "portworxVolume": { - "$ref": "#/$defs/io.k8s.api.core.v1.PortworxVolumeSource" + "runtimeClassName": { + "type": "string" }, - "quobyte": { - "$ref": "#/$defs/io.k8s.api.core.v1.QuobyteVolumeSource" + "schedulerName": { + "type": "string" }, - "rbd": { - "$ref": "#/$defs/io.k8s.api.core.v1.RBDPersistentVolumeSource" + "schedulingGates": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSchedulingGate" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" }, - "scaleIO": { - "$ref": "#/$defs/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource" + "securityContext": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" }, - "storageClassName": { + "serviceAccount": { "type": "string" }, - "storageos": { - "$ref": "#/$defs/io.k8s.api.core.v1.StorageOSPersistentVolumeSource" - }, - "volumeAttributesClassName": { + "serviceAccountName": { "type": "string" }, - "volumeMode": { - "type": "string" + "setHostnameAsFQDN": { + "type": "boolean" }, - "vsphereVolume": { - "$ref": "#/$defs/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeStatus": { - "additionalProperties": false, - "properties": { - "lastPhaseTransitionTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "shareProcessNamespace": { + "type": "boolean" }, - "message": { + "subdomain": { "type": "string" }, - "phase": { - "type": "string" + "terminationGracePeriodSeconds": { + "format": "int64", + "type": "integer" }, - "reason": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" + "tolerations": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Toleration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" }, - "pdID": { - "type": "string" + "topologySpreadConstraints": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.TopologySpreadConstraint" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "topologyKey", + "whenUnsatisfiable" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge" + }, + "volumes": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Volume" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge,retainKeys" } }, - "required": ["pdID"], - "type": "object" + "required": [ + "containers" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.Pod": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodTemplate": { "properties": { "apiVersion": { "type": "string" }, "kind": { - "enum": ["Pod"], - "type": "string" + "type": "string", + "enum": [ + "PodTemplate" + ] }, "metadata": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" }, - "spec": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec" - }, - "status": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodStatus" + "template": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodTemplateSpec" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", - "kind": "Pod", + "kind": "PodTemplate", "version": "v1" } - ] + ], + "additionalProperties": false }, - "io.k8s.api.core.v1.PodAffinity": { - "additionalProperties": false, + "io.k8s.api.core.v1.PodTemplateSpec": { "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "metadata": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "spec": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodAffinityTerm": { - "additionalProperties": false, + "io.k8s.api.core.v1.PortworxVolumeSource": { "properties": { - "labelSelector": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "namespaceSelector": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + "fsType": { + "type": "string" }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "readOnly": { + "type": "boolean" }, - "topologyKey": { + "volumeID": { "type": "string" } }, - "required": ["topologyKey"], - "type": "object" + "required": [ + "volumeID" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodAntiAffinity": { - "additionalProperties": false, + "io.k8s.api.core.v1.PreferredSchedulingTerm": { "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "preference": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelectorTerm" }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "weight": { + "format": "int32", + "type": "integer" } }, - "type": "object" + "required": [ + "weight", + "preference" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodCertificateProjection": { - "additionalProperties": false, + "io.k8s.api.core.v1.Probe": { "properties": { - "certificateChainPath": { - "type": "string" + "exec": { + "$ref": "#/$defs/io.k8s.api.core.v1.ExecAction" }, - "credentialBundlePath": { - "type": "string" + "failureThreshold": { + "format": "int32", + "type": "integer" }, - "keyPath": { - "type": "string" + "grpc": { + "$ref": "#/$defs/io.k8s.api.core.v1.GRPCAction" }, - "keyType": { - "type": "string" + "httpGet": { + "$ref": "#/$defs/io.k8s.api.core.v1.HTTPGetAction" }, - "maxExpirationSeconds": { + "initialDelaySeconds": { "format": "int32", "type": "integer" }, - "signerName": { - "type": "string" - } - }, - "required": ["signerName", "keyType"], - "type": "object" - }, - "io.k8s.api.core.v1.PodCondition": { - "additionalProperties": false, - "properties": { - "lastProbeTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "periodSeconds": { + "format": "int32", + "type": "integer" }, - "lastTransitionTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "successThreshold": { + "format": "int32", + "type": "integer" }, - "message": { - "type": "string" + "tcpSocket": { + "$ref": "#/$defs/io.k8s.api.core.v1.TCPSocketAction" }, - "observedGeneration": { + "terminationGracePeriodSeconds": { "format": "int64", "type": "integer" }, - "reason": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" + "timeoutSeconds": { + "format": "int32", + "type": "integer" } }, - "required": ["type", "status"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodDNSConfig": { - "additionalProperties": false, + "io.k8s.api.core.v1.ProjectedVolumeSource": { "properties": { - "nameservers": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "options": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodDNSConfigOption" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "defaultMode": { + "format": "int32", + "type": "integer" }, - "searches": { + "sources": { "items": { - "type": "string" + "$ref": "#/$defs/io.k8s.api.core.v1.VolumeProjection" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodDNSConfigOption": { - "additionalProperties": false, + "io.k8s.api.core.v1.QuobyteVolumeSource": { "properties": { - "name": { + "group": { "type": "string" }, - "value": { + "readOnly": { + "type": "boolean" + }, + "registry": { + "type": "string" + }, + "tenant": { + "type": "string" + }, + "user": { + "type": "string" + }, + "volume": { "type": "string" } }, - "type": "object" + "required": [ + "registry", + "volume" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodExtendedResourceClaimStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.RBDVolumeSource": { "properties": { - "requestMappings": { + "fsType": { + "type": "string" + }, + "image": { + "type": "string" + }, + "keyring": { + "type": "string" + }, + "monitors": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerExtendedResourceRequest" + "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "resourceClaimName": { + "pool": { + "type": "string" + }, + "readOnly": { + "type": "boolean" + }, + "secretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" + }, + "user": { "type": "string" } }, - "required": ["requestMappings", "resourceClaimName"], - "type": "object" + "required": [ + "monitors", + "image" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodIP": { - "additionalProperties": false, + "io.k8s.api.core.v1.ResourceClaim": { "properties": { - "ip": { + "name": { + "type": "string" + }, + "request": { "type": "string" } }, - "required": ["ip"], - "type": "object" + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodOS": { - "additionalProperties": false, + "io.k8s.api.core.v1.ResourceFieldSelector": { "properties": { - "name": { + "containerName": { + "type": "string" + }, + "divisor": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "resource": { "type": "string" } }, - "required": ["name"], - "type": "object" + "required": [ + "resource" + ], + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodReadinessGate": { - "additionalProperties": false, + "io.k8s.api.core.v1.ResourceRequirements": { "properties": { - "conditionType": { - "type": "string" + "claims": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceClaim" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map" + }, + "limits": { + "additionalProperties": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "type": "object" + }, + "requests": { + "additionalProperties": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "type": "object" } }, - "required": ["conditionType"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodResourceClaim": { - "additionalProperties": false, + "io.k8s.api.core.v1.SELinuxOptions": { "properties": { - "name": { + "level": { "type": "string" }, - "resourceClaimName": { + "role": { "type": "string" }, - "resourceClaimTemplateName": { + "type": { + "type": "string" + }, + "user": { "type": "string" } }, - "required": ["name"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodResourceClaimStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.ScaleIOVolumeSource": { "properties": { - "name": { + "fsType": { "type": "string" }, - "resourceClaimName": { + "gateway": { + "type": "string" + }, + "protectionDomain": { + "type": "string" + }, + "readOnly": { + "type": "boolean" + }, + "secretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" + }, + "sslEnabled": { + "type": "boolean" + }, + "storageMode": { + "type": "string" + }, + "storagePool": { + "type": "string" + }, + "system": { + "type": "string" + }, + "volumeName": { "type": "string" } }, - "required": ["name"], - "type": "object" + "required": [ + "gateway", + "system", + "secretRef" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodSchedulingGate": { - "additionalProperties": false, + "io.k8s.api.core.v1.SeccompProfile": { "properties": { - "name": { + "localhostProfile": { + "type": "string" + }, + "type": { "type": "string" } }, - "required": ["name"], - "type": "object" + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "localhostProfile": "LocalhostProfile" + } + } + ], + "additionalProperties": false }, - "io.k8s.api.core.v1.PodSecurityContext": { - "additionalProperties": false, + "io.k8s.api.core.v1.Secret": { "properties": { - "appArmorProfile": { - "$ref": "#/$defs/io.k8s.api.core.v1.AppArmorProfile" - }, - "fsGroup": { - "format": "int64", - "type": "integer" - }, - "fsGroupChangePolicy": { + "apiVersion": { "type": "string" }, - "runAsGroup": { - "format": "int64", - "type": "integer" + "data": { + "additionalProperties": { + "format": "byte", + "type": "string" + }, + "type": "object" }, - "runAsNonRoot": { + "immutable": { "type": "boolean" }, - "runAsUser": { - "format": "int64", - "type": "integer" - }, - "seLinuxChangePolicy": { - "type": "string" - }, - "seLinuxOptions": { - "$ref": "#/$defs/io.k8s.api.core.v1.SELinuxOptions" + "kind": { + "type": "string", + "enum": [ + "Secret" + ] }, - "seccompProfile": { - "$ref": "#/$defs/io.k8s.api.core.v1.SeccompProfile" + "metadata": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" }, - "supplementalGroups": { - "items": { - "format": "int64", - "type": "integer" + "stringData": { + "additionalProperties": { + "type": "string" }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "type": "object" }, - "supplementalGroupsPolicy": { + "type": { "type": "string" - }, - "sysctls": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.Sysctl" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "windowsOptions": { - "$ref": "#/$defs/io.k8s.api.core.v1.WindowsSecurityContextOptions" } }, - "type": "object" + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Secret", + "version": "v1" + } + ], + "additionalProperties": false }, - "io.k8s.api.core.v1.PodSpec": { - "additionalProperties": false, + "io.k8s.api.core.v1.SecretEnvSource": { "properties": { - "activeDeadlineSeconds": { - "format": "int64", - "type": "integer" - }, - "affinity": { - "$ref": "#/$defs/io.k8s.api.core.v1.Affinity" + "name": { + "type": "string" }, - "automountServiceAccountToken": { + "optional": { "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.SecretKeySelector": { + "properties": { + "key": { + "type": "string" }, - "containers": { + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false + }, + "io.k8s.api.core.v1.SecretProjection": { + "properties": { + "items": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.Container" + "$ref": "#/$defs/io.k8s.api.core.v1.KeyToPath" }, "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "dnsConfig": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodDNSConfig" + "x-kubernetes-list-type": "atomic" }, - "dnsPolicy": { + "name": { "type": "string" }, - "enableServiceLinks": { + "optional": { "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.SecretVolumeSource": { + "properties": { + "defaultMode": { + "format": "int32", + "type": "integer" }, - "ephemeralContainers": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.EphemeralContainer" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "hostAliases": { + "items": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.HostAlias" + "$ref": "#/$defs/io.k8s.api.core.v1.KeyToPath" }, "type": "array", - "x-kubernetes-list-map-keys": ["ip"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" + "x-kubernetes-list-type": "atomic" }, - "hostIPC": { + "optional": { "type": "boolean" }, - "hostNetwork": { + "secretName": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.SecurityContext": { + "properties": { + "allowPrivilegeEscalation": { "type": "boolean" }, - "hostPID": { - "type": "boolean" + "appArmorProfile": { + "$ref": "#/$defs/io.k8s.api.core.v1.AppArmorProfile" }, - "hostUsers": { - "type": "boolean" + "capabilities": { + "$ref": "#/$defs/io.k8s.api.core.v1.Capabilities" }, - "hostname": { - "type": "string" + "privileged": { + "type": "boolean" }, - "hostnameOverride": { + "procMount": { "type": "string" }, - "imagePullSecrets": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" + "readOnlyRootFilesystem": { + "type": "boolean" }, - "initContainers": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" + "runAsGroup": { + "format": "int64", + "type": "integer" }, - "nodeName": { - "type": "string" + "runAsNonRoot": { + "type": "boolean" }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-kubernetes-map-type": "atomic" + "runAsUser": { + "format": "int64", + "type": "integer" }, - "os": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodOS" + "seLinuxOptions": { + "$ref": "#/$defs/io.k8s.api.core.v1.SELinuxOptions" }, - "overhead": { - "additionalProperties": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "type": "object" + "seccompProfile": { + "$ref": "#/$defs/io.k8s.api.core.v1.SeccompProfile" }, - "preemptionPolicy": { + "windowsOptions": { + "$ref": "#/$defs/io.k8s.api.core.v1.WindowsSecurityContextOptions" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.Service": { + "properties": { + "apiVersion": { "type": "string" }, - "priority": { - "format": "int32", - "type": "integer" + "kind": { + "type": "string", + "enum": [ + "Service" + ] }, - "priorityClassName": { + "metadata": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/io.k8s.api.core.v1.ServiceSpec" + }, + "status": { + "$ref": "#/$defs/io.k8s.api.core.v1.ServiceStatus" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Service", + "version": "v1" + } + ], + "additionalProperties": false + }, + "io.k8s.api.core.v1.ServiceAccount": { + "properties": { + "apiVersion": { "type": "string" }, - "readinessGates": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodReadinessGate" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "automountServiceAccountToken": { + "type": "boolean" }, - "resourceClaims": { + "imagePullSecrets": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodResourceClaim" + "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" }, "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" - }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" - }, - "restartPolicy": { - "type": "string" + "x-kubernetes-list-type": "atomic" }, - "runtimeClassName": { - "type": "string" + "kind": { + "type": "string", + "enum": [ + "ServiceAccount" + ] }, - "schedulerName": { - "type": "string" + "metadata": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" }, - "schedulingGates": { + "secrets": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSchedulingGate" + "$ref": "#/$defs/io.k8s.api.core.v1.ObjectReference" }, "type": "array", - "x-kubernetes-list-map-keys": ["name"], + "x-kubernetes-list-map-keys": [ + "name" + ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + ], + "additionalProperties": false + }, + "io.k8s.api.core.v1.ServiceAccountTokenProjection": { + "properties": { + "audience": { + "type": "string" }, - "securityContext": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + "expirationSeconds": { + "format": "int64", + "type": "integer" }, - "serviceAccount": { + "path": { "type": "string" - }, - "serviceAccountName": { + } + }, + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.SleepAction": { + "properties": { + "seconds": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "seconds" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.StorageOSVolumeSource": { + "properties": { + "fsType": { "type": "string" }, - "setHostnameAsFQDN": { + "readOnly": { "type": "boolean" }, - "shareProcessNamespace": { - "type": "boolean" + "secretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" }, - "subdomain": { + "volumeName": { "type": "string" }, - "terminationGracePeriodSeconds": { - "format": "int64", - "type": "integer" - }, - "tolerations": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.Toleration" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "topologySpreadConstraints": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.TopologySpreadConstraint" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["topologyKey", "whenUnsatisfiable"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "topologyKey", - "x-kubernetes-patch-strategy": "merge" - }, - "volumes": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.Volume" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" + "volumeNamespace": { + "type": "string" } }, - "required": ["containers"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.Sysctl": { "properties": { - "conditions": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["type"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "containerStatuses": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "ephemeralContainerStatuses": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "extendedResourceClaimStatus": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodExtendedResourceClaimStatus" - }, - "hostIP": { + "name": { "type": "string" }, - "hostIPs": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.HostIP" - }, - "type": "array", - "x-kubernetes-list-type": "atomic", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.TCPSocketAction": { + "properties": { + "host": { + "type": "string" }, - "initContainerStatuses": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "port": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + } + }, + "required": [ + "port" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.Toleration": { + "properties": { + "effect": { + "type": "string" }, - "message": { + "key": { "type": "string" }, - "nominatedNodeName": { + "operator": { "type": "string" }, - "observedGeneration": { + "tolerationSeconds": { "format": "int64", "type": "integer" }, - "phase": { - "type": "string" - }, - "podIP": { + "value": { "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.TopologySpreadConstraint": { + "properties": { + "labelSelector": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" }, - "podIPs": { + "matchLabelKeys": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodIP" + "type": "string" }, "type": "array", - "x-kubernetes-list-map-keys": ["ip"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" + "x-kubernetes-list-type": "atomic" }, - "qosClass": { - "type": "string" + "maxSkew": { + "format": "int32", + "type": "integer" }, - "reason": { + "minDomains": { + "format": "int32", + "type": "integer" + }, + "nodeAffinityPolicy": { "type": "string" }, - "resize": { + "nodeTaintsPolicy": { "type": "string" }, - "resourceClaimStatuses": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodResourceClaimStatus" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" + "topologyKey": { + "type": "string" }, - "startTime": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "whenUnsatisfiable": { + "type": "string" } }, - "type": "object" + "required": [ + "maxSkew", + "topologyKey", + "whenUnsatisfiable" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PodTemplate": { - "additionalProperties": false, + "io.k8s.api.core.v1.TypedLocalObjectReference": { "properties": { - "apiVersion": { + "apiGroup": { "type": "string" }, "kind": { - "enum": ["PodTemplate"], "type": "string" }, - "metadata": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "template": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodTemplateSpec" + "name": { + "type": "string" } }, + "required": [ + "kind", + "name" + ], "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateSpec": { - "additionalProperties": false, - "properties": { - "metadata": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec" - } - }, - "type": "object" + "x-kubernetes-map-type": "atomic", + "additionalProperties": false }, - "io.k8s.api.core.v1.PortStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.TypedObjectReference": { "properties": { - "error": { + "apiGroup": { "type": "string" }, - "port": { - "format": "int32", - "type": "integer" - }, - "protocol": { - "type": "string" - } - }, - "required": ["port", "protocol"], - "type": "object" - }, - "io.k8s.api.core.v1.PortworxVolumeSource": { - "additionalProperties": false, - "properties": { - "fsType": { + "kind": { "type": "string" }, - "readOnly": { - "type": "boolean" + "name": { + "type": "string" }, - "volumeID": { + "namespace": { "type": "string" } }, - "required": ["volumeID"], - "type": "object" + "required": [ + "kind", + "name" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.PreferredSchedulingTerm": { - "additionalProperties": false, + "io.k8s.api.core.v1.Volume": { "properties": { - "preference": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelectorTerm" + "awsElasticBlockStore": { + "$ref": "#/$defs/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" }, - "weight": { - "format": "int32", - "type": "integer" - } - }, - "required": ["weight", "preference"], - "type": "object" - }, - "io.k8s.api.core.v1.Probe": { - "additionalProperties": false, - "properties": { - "exec": { - "$ref": "#/$defs/io.k8s.api.core.v1.ExecAction" + "azureDisk": { + "$ref": "#/$defs/io.k8s.api.core.v1.AzureDiskVolumeSource" }, - "failureThreshold": { - "format": "int32", - "type": "integer" + "azureFile": { + "$ref": "#/$defs/io.k8s.api.core.v1.AzureFileVolumeSource" }, - "grpc": { - "$ref": "#/$defs/io.k8s.api.core.v1.GRPCAction" + "cephfs": { + "$ref": "#/$defs/io.k8s.api.core.v1.CephFSVolumeSource" }, - "httpGet": { - "$ref": "#/$defs/io.k8s.api.core.v1.HTTPGetAction" + "cinder": { + "$ref": "#/$defs/io.k8s.api.core.v1.CinderVolumeSource" }, - "initialDelaySeconds": { - "format": "int32", - "type": "integer" + "configMap": { + "$ref": "#/$defs/io.k8s.api.core.v1.ConfigMapVolumeSource" }, - "periodSeconds": { - "format": "int32", - "type": "integer" + "csi": { + "$ref": "#/$defs/io.k8s.api.core.v1.CSIVolumeSource" }, - "successThreshold": { - "format": "int32", - "type": "integer" + "downwardAPI": { + "$ref": "#/$defs/io.k8s.api.core.v1.DownwardAPIVolumeSource" }, - "tcpSocket": { - "$ref": "#/$defs/io.k8s.api.core.v1.TCPSocketAction" + "emptyDir": { + "$ref": "#/$defs/io.k8s.api.core.v1.EmptyDirVolumeSource" }, - "terminationGracePeriodSeconds": { - "format": "int64", - "type": "integer" + "ephemeral": { + "$ref": "#/$defs/io.k8s.api.core.v1.EphemeralVolumeSource" }, - "timeoutSeconds": { - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ProjectedVolumeSource": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "format": "int32", - "type": "integer" + "fc": { + "$ref": "#/$defs/io.k8s.api.core.v1.FCVolumeSource" }, - "sources": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.VolumeProjection" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.QuobyteVolumeSource": { - "additionalProperties": false, - "properties": { - "group": { - "type": "string" + "flexVolume": { + "$ref": "#/$defs/io.k8s.api.core.v1.FlexVolumeSource" }, - "readOnly": { - "type": "boolean" + "flocker": { + "$ref": "#/$defs/io.k8s.api.core.v1.FlockerVolumeSource" }, - "registry": { - "type": "string" + "gcePersistentDisk": { + "$ref": "#/$defs/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" }, - "tenant": { - "type": "string" + "gitRepo": { + "$ref": "#/$defs/io.k8s.api.core.v1.GitRepoVolumeSource" }, - "user": { - "type": "string" + "glusterfs": { + "$ref": "#/$defs/io.k8s.api.core.v1.GlusterfsVolumeSource" }, - "volume": { - "type": "string" - } - }, - "required": ["registry", "volume"], - "type": "object" - }, - "io.k8s.api.core.v1.RBDPersistentVolumeSource": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" + "hostPath": { + "$ref": "#/$defs/io.k8s.api.core.v1.HostPathVolumeSource" }, "image": { - "type": "string" - }, - "keyring": { - "type": "string" + "$ref": "#/$defs/io.k8s.api.core.v1.ImageVolumeSource" }, - "monitors": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "iscsi": { + "$ref": "#/$defs/io.k8s.api.core.v1.ISCSIVolumeSource" }, - "pool": { + "name": { "type": "string" }, - "readOnly": { - "type": "boolean" + "nfs": { + "$ref": "#/$defs/io.k8s.api.core.v1.NFSVolumeSource" }, - "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + "persistentVolumeClaim": { + "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource" }, - "user": { - "type": "string" - } - }, - "required": ["monitors", "image"], - "type": "object" - }, - "io.k8s.api.core.v1.RBDVolumeSource": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" + "photonPersistentDisk": { + "$ref": "#/$defs/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" }, - "image": { - "type": "string" + "portworxVolume": { + "$ref": "#/$defs/io.k8s.api.core.v1.PortworxVolumeSource" }, - "keyring": { - "type": "string" + "projected": { + "$ref": "#/$defs/io.k8s.api.core.v1.ProjectedVolumeSource" }, - "monitors": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "quobyte": { + "$ref": "#/$defs/io.k8s.api.core.v1.QuobyteVolumeSource" }, - "pool": { - "type": "string" + "rbd": { + "$ref": "#/$defs/io.k8s.api.core.v1.RBDVolumeSource" }, - "readOnly": { - "type": "boolean" + "scaleIO": { + "$ref": "#/$defs/io.k8s.api.core.v1.ScaleIOVolumeSource" }, - "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" + "secret": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretVolumeSource" }, - "user": { - "type": "string" + "storageos": { + "$ref": "#/$defs/io.k8s.api.core.v1.StorageOSVolumeSource" + }, + "vsphereVolume": { + "$ref": "#/$defs/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" } }, - "required": ["monitors", "image"], - "type": "object" + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ResourceClaim": { - "additionalProperties": false, + "io.k8s.api.core.v1.VolumeDevice": { "properties": { - "name": { + "devicePath": { "type": "string" }, - "request": { + "name": { "type": "string" } }, - "required": ["name"], - "type": "object" + "required": [ + "name", + "devicePath" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ResourceFieldSelector": { - "additionalProperties": false, + "io.k8s.api.core.v1.VolumeMount": { "properties": { - "containerName": { + "mountPath": { "type": "string" }, - "divisor": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + "mountPropagation": { + "type": "string" }, - "resource": { + "name": { + "type": "string" + }, + "readOnly": { + "type": "boolean" + }, + "recursiveReadOnly": { + "type": "string" + }, + "subPath": { + "type": "string" + }, + "subPathExpr": { "type": "string" } }, - "required": ["resource"], + "required": [ + "name", + "mountPath" + ], "type": "object", - "x-kubernetes-map-type": "atomic" + "additionalProperties": false }, - "io.k8s.api.core.v1.ResourceHealth": { - "additionalProperties": false, + "io.k8s.api.core.v1.VolumeProjection": { "properties": { - "health": { - "type": "string" + "clusterTrustBundle": { + "$ref": "#/$defs/io.k8s.api.core.v1.ClusterTrustBundleProjection" }, - "resourceID": { - "type": "string" + "configMap": { + "$ref": "#/$defs/io.k8s.api.core.v1.ConfigMapProjection" + }, + "downwardAPI": { + "$ref": "#/$defs/io.k8s.api.core.v1.DownwardAPIProjection" + }, + "podCertificate": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodCertificateProjection" + }, + "secret": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretProjection" + }, + "serviceAccountToken": { + "$ref": "#/$defs/io.k8s.api.core.v1.ServiceAccountTokenProjection" } }, - "required": ["resourceID"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ResourceRequirements": { - "additionalProperties": false, + "io.k8s.api.core.v1.VolumeResourceRequirements": { "properties": { - "claims": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceClaim" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map" - }, "limits": { "additionalProperties": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" @@ -4125,581 +3647,550 @@ "type": "object" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ResourceStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { "properties": { - "name": { + "fsType": { "type": "string" }, - "resources": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceHealth" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["resourceID"], - "x-kubernetes-list-type": "map" - } - }, - "required": ["name"], - "type": "object" - }, - "io.k8s.api.core.v1.SELinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { + "storagePolicyID": { "type": "string" }, - "role": { + "storagePolicyName": { "type": "string" }, - "type": { - "type": "string" - }, - "user": { + "volumePath": { "type": "string" } }, - "type": "object" + "required": [ + "volumePath" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { - "additionalProperties": false, + "io.k8s.api.core.v1.WeightedPodAffinityTerm": { "properties": { - "fsType": { - "type": "string" - }, - "gateway": { - "type": "string" - }, - "protectionDomain": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" - }, - "sslEnabled": { - "type": "boolean" - }, - "storageMode": { - "type": "string" - }, - "storagePool": { - "type": "string" - }, - "system": { - "type": "string" + "podAffinityTerm": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodAffinityTerm" }, - "volumeName": { - "type": "string" + "weight": { + "format": "int32", + "type": "integer" } }, - "required": ["gateway", "system", "secretRef"], - "type": "object" + "required": [ + "weight", + "podAffinityTerm" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ScaleIOVolumeSource": { - "additionalProperties": false, + "io.k8s.api.core.v1.WindowsSecurityContextOptions": { "properties": { - "fsType": { - "type": "string" - }, - "gateway": { + "gmsaCredentialSpec": { "type": "string" }, - "protectionDomain": { + "gmsaCredentialSpecName": { "type": "string" }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" - }, - "sslEnabled": { + "hostProcess": { "type": "boolean" }, - "storageMode": { - "type": "string" - }, - "storagePool": { - "type": "string" - }, - "system": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "required": ["gateway", "system", "secretRef"], - "type": "object" - }, - "io.k8s.api.core.v1.SeccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { + "runAsUserName": { "type": "string" } }, - "required": ["type"], "type": "object", - "x-kubernetes-unions": [ - { - "discriminator": "type", - "fields-to-discriminateBy": { - "localhostProfile": "LocalhostProfile" - } - } - ] + "additionalProperties": false }, - "io.k8s.api.core.v1.Secret": { - "additionalProperties": false, + "io.k8s.api.policy.v1.PodDisruptionBudget": { "properties": { "apiVersion": { "type": "string" }, - "data": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "type": "object" - }, - "immutable": { - "type": "boolean" - }, "kind": { - "enum": ["Secret"], - "type": "string" + "type": "string", + "enum": [ + "PodDisruptionBudget" + ] }, "metadata": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" }, - "stringData": { - "additionalProperties": { - "type": "string" - }, - "type": "object" + "spec": { + "$ref": "#/$defs/io.k8s.api.policy.v1.PodDisruptionBudgetSpec" }, - "type": { - "type": "string" + "status": { + "$ref": "#/$defs/io.k8s.api.policy.v1.PodDisruptionBudgetStatus" } }, "type": "object", "x-kubernetes-group-version-kind": [ { - "group": "", - "kind": "Secret", + "group": "policy", + "kind": "PodDisruptionBudget", "version": "v1" } - ] + ], + "additionalProperties": false }, - "io.k8s.api.core.v1.SecretEnvSource": { - "additionalProperties": false, + "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": { "properties": { - "name": { - "type": "string" + "maxUnavailable": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.util.intstr.IntOrString" }, - "optional": { - "type": "boolean" + "minAvailable": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + }, + "selector": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "x-kubernetes-patch-strategy": "replace" + }, + "unhealthyPodEvictionPolicy": { + "type": "string" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.SecretKeySelector": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { + "io.k8s.apimachinery.pkg.api.resource.Quantity": { + "oneOf": [ + { "type": "string" }, - "optional": { - "type": "boolean" + { + "type": "number" } - }, - "required": ["key"], - "type": "object", - "x-kubernetes-map-type": "atomic" + ] }, - "io.k8s.api.core.v1.SecretProjection": { - "additionalProperties": false, + "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": { + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": { "properties": { - "items": { + "matchExpressions": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.KeyToPath" + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" + "matchLabels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" } }, - "type": "object" + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false }, - "io.k8s.api.core.v1.SecretReference": { - "additionalProperties": false, + "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { "properties": { - "name": { + "key": { "type": "string" }, - "namespace": { + "operator": { "type": "string" - } - }, - "type": "object", - "x-kubernetes-map-type": "atomic" - }, - "io.k8s.api.core.v1.SecretVolumeSource": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "format": "int32", - "type": "integer" }, - "items": { + "values": { "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.KeyToPath" + "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" - }, - "optional": { - "type": "boolean" - }, - "secretName": { - "type": "string" } }, - "type": "object" + "required": [ + "key", + "operator" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.SecurityContext": { - "additionalProperties": false, + "io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": { "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "$ref": "#/$defs/io.k8s.api.core.v1.AppArmorProfile" - }, - "capabilities": { - "$ref": "#/$defs/io.k8s.api.core.v1.Capabilities" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { + "apiVersion": { "type": "string" }, - "readOnlyRootFilesystem": { - "type": "boolean" + "fieldsType": { + "type": "string" }, - "runAsGroup": { - "format": "int64", - "type": "integer" + "fieldsV1": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1" }, - "runAsNonRoot": { - "type": "boolean" + "manager": { + "type": "string" }, - "runAsUser": { - "format": "int64", - "type": "integer" + "operation": { + "type": "string" }, - "seLinuxOptions": { - "$ref": "#/$defs/io.k8s.api.core.v1.SELinuxOptions" + "subresource": { + "type": "string" }, - "seccompProfile": { - "$ref": "#/$defs/io.k8s.api.core.v1.SeccompProfile" - }, - "windowsOptions": { - "$ref": "#/$defs/io.k8s.api.core.v1.WindowsSecurityContextOptions" + "time": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.Service": { - "additionalProperties": false, + "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { "properties": { - "apiVersion": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "creationTimestamp": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "deletionGracePeriodSeconds": { + "format": "int64", + "type": "integer" + }, + "deletionTimestamp": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set", + "x-kubernetes-patch-strategy": "merge" + }, + "generateName": { "type": "string" }, - "kind": { - "enum": ["Service"], + "generation": { + "format": "int64", + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "managedFields": { + "items": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "name": { "type": "string" }, - "metadata": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + "namespace": { + "type": "string" }, - "spec": { - "$ref": "#/$defs/io.k8s.api.core.v1.ServiceSpec" + "ownerReferences": { + "items": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "uid" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "uid", + "x-kubernetes-patch-strategy": "merge" }, - "status": { - "$ref": "#/$defs/io.k8s.api.core.v1.ServiceStatus" + "resourceVersion": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "uid": { + "type": "string" } }, "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Service", - "version": "v1" - } - ] + "additionalProperties": false }, - "io.k8s.api.core.v1.ServiceAccount": { - "additionalProperties": false, + "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": { "properties": { "apiVersion": { "type": "string" }, - "automountServiceAccountToken": { + "blockOwnerDeletion": { "type": "boolean" }, - "imagePullSecrets": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "controller": { + "type": "boolean" }, "kind": { - "enum": ["ServiceAccount"], "type": "string" }, - "metadata": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + "name": { + "type": "string" }, - "secrets": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["name"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" + "uid": { + "type": "string" } }, + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ], "type": "object", - "x-kubernetes-group-version-kind": [ + "x-kubernetes-map-type": "atomic", + "additionalProperties": false + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { + "format": "date-time", + "type": "string" + }, + "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { + "oneOf": [ { - "group": "", - "kind": "ServiceAccount", - "version": "v1" + "type": "string" + }, + { + "type": "integer" } ] }, - "io.k8s.api.core.v1.ServiceAccountTokenProjection": { - "additionalProperties": false, + "io.k8s.api.batch.v1.CronJobStatus": { "properties": { - "audience": { - "type": "string" + "active": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.ObjectReference" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" }, - "expirationSeconds": { - "format": "int64", - "type": "integer" + "lastScheduleTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, - "path": { - "type": "string" + "lastSuccessfulTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" } }, - "required": ["path"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ServicePort": { - "additionalProperties": false, + "io.k8s.api.batch.v1.JobCondition": { "properties": { - "appProtocol": { - "type": "string" + "lastProbeTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, - "name": { - "type": "string" + "lastTransitionTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, - "nodePort": { - "format": "int32", - "type": "integer" + "message": { + "type": "string" }, - "port": { - "format": "int32", - "type": "integer" + "reason": { + "type": "string" }, - "protocol": { + "status": { "type": "string" }, - "targetPort": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + "type": { + "type": "string" } }, - "required": ["port"], - "type": "object" + "required": [ + "type", + "status" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ServiceSpec": { - "additionalProperties": false, + "io.k8s.api.batch.v1.JobStatus": { "properties": { - "allocateLoadBalancerNodePorts": { - "type": "boolean" + "active": { + "format": "int32", + "type": "integer" }, - "clusterIP": { + "completedIndexes": { "type": "string" }, - "clusterIPs": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "completionTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, - "externalIPs": { + "conditions": { "items": { - "type": "string" + "$ref": "#/$defs/io.k8s.api.batch.v1.JobCondition" }, "type": "array", - "x-kubernetes-list-type": "atomic" + "x-kubernetes-list-type": "atomic", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" }, - "externalName": { - "type": "string" + "failed": { + "format": "int32", + "type": "integer" }, - "externalTrafficPolicy": { + "failedIndexes": { "type": "string" }, - "healthCheckNodePort": { + "ready": { "format": "int32", "type": "integer" }, - "internalTrafficPolicy": { - "type": "string" + "startTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, - "ipFamilies": { + "succeeded": { + "format": "int32", + "type": "integer" + }, + "terminating": { + "format": "int32", + "type": "integer" + }, + "uncountedTerminatedPods": { + "$ref": "#/$defs/io.k8s.api.batch.v1.UncountedTerminatedPods" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.batch.v1.UncountedTerminatedPods": { + "properties": { + "failed": { "items": { "type": "string" }, "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "ipFamilyPolicy": { - "type": "string" - }, - "loadBalancerClass": { - "type": "string" - }, - "loadBalancerIP": { - "type": "string" + "x-kubernetes-list-type": "set" }, - "loadBalancerSourceRanges": { + "succeeded": { "items": { "type": "string" }, "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "ports": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.ServicePort" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["port", "protocol"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge" + "x-kubernetes-list-type": "set" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.AttachedVolume": { + "properties": { + "devicePath": { + "type": "string" }, - "publishNotReadyAddresses": { + "name": { + "type": "string" + } + }, + "required": [ + "name", + "devicePath" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { + "properties": { + "readOnly": { "type": "boolean" }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-kubernetes-map-type": "atomic" - }, - "sessionAffinity": { + "secretName": { "type": "string" }, - "sessionAffinityConfig": { - "$ref": "#/$defs/io.k8s.api.core.v1.SessionAffinityConfig" - }, - "trafficDistribution": { + "secretNamespace": { "type": "string" }, - "type": { + "shareName": { "type": "string" } }, - "type": "object" + "required": [ + "secretName", + "shareName" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.ServiceStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.CSIPersistentVolumeSource": { "properties": { - "conditions": { - "items": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + "controllerExpandSecretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + }, + "controllerPublishSecretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + }, + "driver": { + "type": "string" + }, + "fsType": { + "type": "string" + }, + "nodeExpandSecretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + }, + "nodePublishSecretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + }, + "nodeStageSecretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + }, + "readOnly": { + "type": "boolean" + }, + "volumeAttributes": { + "additionalProperties": { + "type": "string" }, - "type": "array", - "x-kubernetes-list-map-keys": ["type"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" + "type": "object" }, - "loadBalancer": { - "$ref": "#/$defs/io.k8s.api.core.v1.LoadBalancerStatus" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SessionAffinityConfig": { - "additionalProperties": false, - "properties": { - "clientIP": { - "$ref": "#/$defs/io.k8s.api.core.v1.ClientIPConfig" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SleepAction": { - "additionalProperties": false, - "properties": { - "seconds": { - "format": "int64", - "type": "integer" + "volumeHandle": { + "type": "string" } }, - "required": ["seconds"], - "type": "object" + "required": [ + "driver", + "volumeHandle" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { - "additionalProperties": false, + "io.k8s.api.core.v1.CephFSPersistentVolumeSource": { "properties": { - "fsType": { + "monitors": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "path": { "type": "string" }, "readOnly": { "type": "boolean" }, - "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.ObjectReference" - }, - "volumeName": { + "secretFile": { "type": "string" }, - "volumeNamespace": { + "secretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + }, + "user": { "type": "string" } }, - "type": "object" + "required": [ + "monitors" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.StorageOSVolumeSource": { - "additionalProperties": false, + "io.k8s.api.core.v1.CinderPersistentVolumeSource": { "properties": { "fsType": { "type": "string" @@ -4708,538 +4199,489 @@ "type": "boolean" }, "secretRef": { - "$ref": "#/$defs/io.k8s.api.core.v1.LocalObjectReference" - }, - "volumeName": { - "type": "string" + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" }, - "volumeNamespace": { + "volumeID": { "type": "string" } }, - "type": "object" + "required": [ + "volumeID" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.Sysctl": { - "additionalProperties": false, + "io.k8s.api.core.v1.ClientIPConfig": { "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" + "timeoutSeconds": { + "format": "int32", + "type": "integer" } }, - "required": ["name", "value"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.TCPSocketAction": { - "additionalProperties": false, + "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { "properties": { - "host": { + "kubeletConfigKey": { "type": "string" }, - "port": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - }, - "required": ["port"], - "type": "object" - }, - "io.k8s.api.core.v1.Taint": { - "additionalProperties": false, - "properties": { - "effect": { + "name": { "type": "string" }, - "key": { + "namespace": { "type": "string" }, - "timeAdded": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "resourceVersion": { + "type": "string" }, - "value": { + "uid": { "type": "string" } }, - "required": ["key", "effect"], - "type": "object" + "required": [ + "namespace", + "name", + "kubeletConfigKey" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.Toleration": { - "additionalProperties": false, + "io.k8s.api.core.v1.ContainerExtendedResourceRequest": { "properties": { - "effect": { - "type": "string" - }, - "key": { + "containerName": { "type": "string" }, - "operator": { + "requestName": { "type": "string" }, - "tolerationSeconds": { - "format": "int64", - "type": "integer" - }, - "value": { + "resourceName": { "type": "string" } }, - "type": "object" + "required": [ + "containerName", + "resourceName", + "requestName" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.TopologySpreadConstraint": { - "additionalProperties": false, + "io.k8s.api.core.v1.ContainerImage": { "properties": { - "labelSelector": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "matchLabelKeys": { + "names": { "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "maxSkew": { - "format": "int32", - "type": "integer" - }, - "minDomains": { - "format": "int32", + "sizeBytes": { + "format": "int64", "type": "integer" - }, - "nodeAffinityPolicy": { - "type": "string" - }, - "nodeTaintsPolicy": { - "type": "string" - }, - "topologyKey": { - "type": "string" - }, - "whenUnsatisfiable": { - "type": "string" } }, - "required": ["maxSkew", "topologyKey", "whenUnsatisfiable"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.TypedLocalObjectReference": { - "additionalProperties": false, + "io.k8s.api.core.v1.ContainerState": { "properties": { - "apiGroup": { - "type": "string" + "running": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStateRunning" }, - "kind": { - "type": "string" + "terminated": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStateTerminated" }, - "name": { - "type": "string" + "waiting": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStateWaiting" } }, - "required": ["kind", "name"], "type": "object", - "x-kubernetes-map-type": "atomic" + "additionalProperties": false }, - "io.k8s.api.core.v1.TypedObjectReference": { - "additionalProperties": false, + "io.k8s.api.core.v1.ContainerStateRunning": { "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" + "startedAt": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" } }, - "required": ["kind", "name"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.Volume": { - "additionalProperties": false, + "io.k8s.api.core.v1.ContainerStateTerminated": { "properties": { - "awsElasticBlockStore": { - "$ref": "#/$defs/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" - }, - "azureDisk": { - "$ref": "#/$defs/io.k8s.api.core.v1.AzureDiskVolumeSource" - }, - "azureFile": { - "$ref": "#/$defs/io.k8s.api.core.v1.AzureFileVolumeSource" - }, - "cephfs": { - "$ref": "#/$defs/io.k8s.api.core.v1.CephFSVolumeSource" - }, - "cinder": { - "$ref": "#/$defs/io.k8s.api.core.v1.CinderVolumeSource" - }, - "configMap": { - "$ref": "#/$defs/io.k8s.api.core.v1.ConfigMapVolumeSource" - }, - "csi": { - "$ref": "#/$defs/io.k8s.api.core.v1.CSIVolumeSource" - }, - "downwardAPI": { - "$ref": "#/$defs/io.k8s.api.core.v1.DownwardAPIVolumeSource" + "containerID": { + "type": "string" }, - "emptyDir": { - "$ref": "#/$defs/io.k8s.api.core.v1.EmptyDirVolumeSource" + "exitCode": { + "format": "int32", + "type": "integer" }, - "ephemeral": { - "$ref": "#/$defs/io.k8s.api.core.v1.EphemeralVolumeSource" + "finishedAt": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, - "fc": { - "$ref": "#/$defs/io.k8s.api.core.v1.FCVolumeSource" + "message": { + "type": "string" }, - "flexVolume": { - "$ref": "#/$defs/io.k8s.api.core.v1.FlexVolumeSource" + "reason": { + "type": "string" }, - "flocker": { - "$ref": "#/$defs/io.k8s.api.core.v1.FlockerVolumeSource" + "signal": { + "format": "int32", + "type": "integer" }, - "gcePersistentDisk": { - "$ref": "#/$defs/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" + "startedAt": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + }, + "required": [ + "exitCode" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.ContainerStateWaiting": { + "properties": { + "message": { + "type": "string" }, - "gitRepo": { - "$ref": "#/$defs/io.k8s.api.core.v1.GitRepoVolumeSource" + "reason": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.ContainerStatus": { + "properties": { + "allocatedResources": { + "additionalProperties": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "type": "object" }, - "glusterfs": { - "$ref": "#/$defs/io.k8s.api.core.v1.GlusterfsVolumeSource" + "allocatedResourcesStatus": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceStatus" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" }, - "hostPath": { - "$ref": "#/$defs/io.k8s.api.core.v1.HostPathVolumeSource" + "containerID": { + "type": "string" }, "image": { - "$ref": "#/$defs/io.k8s.api.core.v1.ImageVolumeSource" - }, - "iscsi": { - "$ref": "#/$defs/io.k8s.api.core.v1.ISCSIVolumeSource" - }, - "name": { "type": "string" }, - "nfs": { - "$ref": "#/$defs/io.k8s.api.core.v1.NFSVolumeSource" + "imageID": { + "type": "string" }, - "persistentVolumeClaim": { - "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource" + "lastState": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerState" }, - "photonPersistentDisk": { - "$ref": "#/$defs/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" + "name": { + "type": "string" }, - "portworxVolume": { - "$ref": "#/$defs/io.k8s.api.core.v1.PortworxVolumeSource" + "ready": { + "type": "boolean" }, - "projected": { - "$ref": "#/$defs/io.k8s.api.core.v1.ProjectedVolumeSource" + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" }, - "quobyte": { - "$ref": "#/$defs/io.k8s.api.core.v1.QuobyteVolumeSource" + "restartCount": { + "format": "int32", + "type": "integer" }, - "rbd": { - "$ref": "#/$defs/io.k8s.api.core.v1.RBDVolumeSource" + "started": { + "type": "boolean" }, - "scaleIO": { - "$ref": "#/$defs/io.k8s.api.core.v1.ScaleIOVolumeSource" + "state": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerState" }, - "secret": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretVolumeSource" + "stopSignal": { + "type": "string" }, - "storageos": { - "$ref": "#/$defs/io.k8s.api.core.v1.StorageOSVolumeSource" + "user": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerUser" }, - "vsphereVolume": { - "$ref": "#/$defs/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" + "volumeMounts": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMountStatus" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "mountPath", + "x-kubernetes-patch-strategy": "merge" } }, - "required": ["name"], - "type": "object" + "required": [ + "name", + "ready", + "restartCount", + "image", + "imageID" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.VolumeDevice": { - "additionalProperties": false, + "io.k8s.api.core.v1.ContainerUser": { "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" + "linux": { + "$ref": "#/$defs/io.k8s.api.core.v1.LinuxContainerUser" } }, - "required": ["name", "devicePath"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.VolumeMount": { - "additionalProperties": false, + "io.k8s.api.core.v1.DaemonEndpoint": { "properties": { - "mountPath": { + "Port": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.FlexPersistentVolumeSource": { + "properties": { + "driver": { "type": "string" }, - "mountPropagation": { + "fsType": { "type": "string" }, - "name": { - "type": "string" + "options": { + "additionalProperties": { + "type": "string" + }, + "type": "object" }, "readOnly": { "type": "boolean" }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" + "secretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" } }, - "required": ["name", "mountPath"], - "type": "object" + "required": [ + "driver" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.VolumeMountStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { "properties": { - "mountPath": { + "endpoints": { "type": "string" }, - "name": { + "endpointsNamespace": { + "type": "string" + }, + "path": { "type": "string" }, "readOnly": { "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" } }, - "required": ["name", "mountPath"], - "type": "object" + "required": [ + "endpoints", + "path" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.VolumeNodeAffinity": { - "additionalProperties": false, + "io.k8s.api.core.v1.HostIP": { "properties": { - "required": { - "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelector" + "ip": { + "type": "string" } }, - "type": "object" + "required": [ + "ip" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.VolumeProjection": { - "additionalProperties": false, + "io.k8s.api.core.v1.ISCSIPersistentVolumeSource": { "properties": { - "clusterTrustBundle": { - "$ref": "#/$defs/io.k8s.api.core.v1.ClusterTrustBundleProjection" + "chapAuthDiscovery": { + "type": "boolean" }, - "configMap": { - "$ref": "#/$defs/io.k8s.api.core.v1.ConfigMapProjection" + "chapAuthSession": { + "type": "boolean" }, - "downwardAPI": { - "$ref": "#/$defs/io.k8s.api.core.v1.DownwardAPIProjection" + "fsType": { + "type": "string" }, - "podCertificate": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodCertificateProjection" + "initiatorName": { + "type": "string" }, - "secret": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecretProjection" + "iqn": { + "type": "string" }, - "serviceAccountToken": { - "$ref": "#/$defs/io.k8s.api.core.v1.ServiceAccountTokenProjection" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VolumeResourceRequirements": { - "additionalProperties": false, - "properties": { - "limits": { - "additionalProperties": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "type": "object" + "iscsiInterface": { + "type": "string" }, - "requests": { - "additionalProperties": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + "lun": { + "format": "int32", + "type": "integer" + }, + "portals": { + "items": { + "type": "string" }, - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" + "type": "array", + "x-kubernetes-list-type": "atomic" }, - "storagePolicyID": { - "type": "string" + "readOnly": { + "type": "boolean" }, - "storagePolicyName": { - "type": "string" + "secretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" }, - "volumePath": { + "targetPortal": { "type": "string" } }, - "required": ["volumePath"], - "type": "object" + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.WeightedPodAffinityTerm": { - "additionalProperties": false, + "io.k8s.api.core.v1.LinuxContainerUser": { "properties": { - "podAffinityTerm": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodAffinityTerm" + "gid": { + "format": "int64", + "type": "integer" }, - "weight": { - "format": "int32", + "supplementalGroups": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "uid": { + "format": "int64", "type": "integer" } }, - "required": ["weight", "podAffinityTerm"], - "type": "object" + "required": [ + "uid", + "gid" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.core.v1.WindowsSecurityContextOptions": { - "additionalProperties": false, + "io.k8s.api.core.v1.LoadBalancerIngress": { "properties": { - "gmsaCredentialSpec": { + "hostname": { "type": "string" }, - "gmsaCredentialSpecName": { + "ip": { "type": "string" }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { + "ipMode": { "type": "string" + }, + "ports": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.PortStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.api.policy.v1.PodDisruptionBudget": { - "additionalProperties": false, + "io.k8s.api.core.v1.LoadBalancerStatus": { "properties": { - "apiVersion": { - "type": "string" - }, - "kind": { - "enum": ["PodDisruptionBudget"], - "type": "string" - }, - "metadata": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/$defs/io.k8s.api.policy.v1.PodDisruptionBudgetSpec" - }, - "status": { - "$ref": "#/$defs/io.k8s.api.policy.v1.PodDisruptionBudgetStatus" + "ingress": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.LoadBalancerIngress" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1" - } - ] + "additionalProperties": false }, - "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": { - "additionalProperties": false, + "io.k8s.api.core.v1.LocalVolumeSource": { "properties": { - "maxUnavailable": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "minAvailable": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "selector": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "x-kubernetes-patch-strategy": "replace" + "fsType": { + "type": "string" }, - "unhealthyPodEvictionPolicy": { + "path": { "type": "string" } }, - "type": "object" + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.api.policy.v1.PodDisruptionBudgetStatus": { - "additionalProperties": false, + "io.k8s.api.core.v1.ModifyVolumeStatus": { "properties": { - "conditions": { - "items": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" - }, - "type": "array", - "x-kubernetes-list-map-keys": ["type"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentHealthy": { - "format": "int32", - "type": "integer" - }, - "desiredHealthy": { - "format": "int32", - "type": "integer" - }, - "disruptedPods": { - "additionalProperties": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "type": "object" - }, - "disruptionsAllowed": { - "format": "int32", - "type": "integer" - }, - "expectedPods": { - "format": "int32", - "type": "integer" + "status": { + "type": "string" }, - "observedGeneration": { - "format": "int64", - "type": "integer" + "targetVolumeAttributesClassName": { + "type": "string" } }, "required": [ - "disruptionsAllowed", - "currentHealthy", - "desiredHealthy", - "expectedPods" + "status" ], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.apimachinery.pkg.api.resource.Quantity": { - "oneOf": [ - { + "io.k8s.api.core.v1.NodeAddress": { + "properties": { + "address": { "type": "string" }, - { - "type": "number" + "type": { + "type": "string" } - ] + }, + "required": [ + "type", + "address" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Condition": { - "additionalProperties": false, + "io.k8s.api.core.v1.NodeCondition": { "properties": { + "lastHeartbeatTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, "lastTransitionTime": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, "message": { "type": "string" }, - "observedGeneration": { - "format": "int64", - "type": "integer" - }, "reason": { "type": "string" }, @@ -5250,597 +4692,1467 @@ "type": "string" } }, - "required": ["type", "status", "lastTransitionTime", "reason", "message"], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": { - "type": "object" + "required": [ + "type", + "status" + ], + "type": "object", + "additionalProperties": false }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": { - "additionalProperties": false, + "io.k8s.api.core.v1.NodeConfigSource": { "properties": { - "matchExpressions": { - "items": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" + "configMap": { + "$ref": "#/$defs/io.k8s.api.core.v1.ConfigMapNodeConfigSource" } }, "type": "object", - "x-kubernetes-map-type": "atomic" + "additionalProperties": false }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { - "additionalProperties": false, + "io.k8s.api.core.v1.NodeConfigStatus": { "properties": { - "key": { - "type": "string" + "active": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigSource" }, - "operator": { + "assigned": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigSource" + }, + "error": { "type": "string" }, - "values": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" + "lastKnownGood": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigSource" } }, - "required": ["key", "operator"], - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": { - "additionalProperties": false, + "io.k8s.api.core.v1.NodeDaemonEndpoints": { "properties": { - "apiVersion": { - "type": "string" + "kubeletEndpoint": { + "$ref": "#/$defs/io.k8s.api.core.v1.DaemonEndpoint" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.NodeFeatures": { + "properties": { + "supplementalGroupsPolicy": { + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.NodeRuntimeHandler": { + "properties": { + "features": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeRuntimeHandlerFeatures" }, - "fieldsType": { + "name": { "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.NodeRuntimeHandlerFeatures": { + "properties": { + "recursiveReadOnlyMounts": { + "type": "boolean" }, - "fieldsV1": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1" + "userNamespaces": { + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.NodeSpec": { + "properties": { + "configSource": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigSource" }, - "manager": { + "externalID": { "type": "string" }, - "operation": { + "podCIDR": { "type": "string" }, - "subresource": { + "podCIDRs": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set", + "x-kubernetes-patch-strategy": "merge" + }, + "providerID": { "type": "string" }, - "time": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "taints": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Taint" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "unschedulable": { + "type": "boolean" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { - "additionalProperties": false, + "io.k8s.api.core.v1.NodeStatus": { "properties": { - "annotations": { + "addresses": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeAddress" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "allocatable": { "additionalProperties": { - "type": "string" + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "type": "object" }, - "creationTimestamp": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "deletionGracePeriodSeconds": { - "format": "int64", - "type": "integer" - }, - "deletionTimestamp": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "capacity": { + "additionalProperties": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "type": "object" }, - "finalizers": { + "conditions": { "items": { - "type": "string" + "$ref": "#/$defs/io.k8s.api.core.v1.NodeCondition" }, "type": "array", - "x-kubernetes-list-type": "set", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, - "generateName": { - "type": "string" + "config": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeConfigStatus" }, - "generation": { - "format": "int64", - "type": "integer" + "daemonEndpoints": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeDaemonEndpoints" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" + "features": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeFeatures" }, - "managedFields": { + "images": { "items": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerImage" }, "type": "array", "x-kubernetes-list-type": "atomic" }, - "name": { - "type": "string" + "nodeInfo": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeSystemInfo" }, - "namespace": { + "phase": { "type": "string" }, - "ownerReferences": { + "runtimeHandlers": { "items": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" + "$ref": "#/$defs/io.k8s.api.core.v1.NodeRuntimeHandler" }, "type": "array", - "x-kubernetes-list-map-keys": ["uid"], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "uid", - "x-kubernetes-patch-strategy": "merge" - }, - "resourceVersion": { - "type": "string" + "x-kubernetes-list-type": "atomic" }, - "selfLink": { - "type": "string" + "volumesAttached": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.AttachedVolume" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" }, - "uid": { - "type": "string" + "volumesInUse": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" } }, - "type": "object" + "type": "object", + "additionalProperties": false }, - "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": { - "additionalProperties": false, + "io.k8s.api.core.v1.NodeSwapStatus": { "properties": { - "apiVersion": { + "capacity": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.NodeSystemInfo": { + "properties": { + "architecture": { "type": "string" }, - "blockOwnerDeletion": { - "type": "boolean" + "bootID": { + "type": "string" }, - "controller": { - "type": "boolean" + "containerRuntimeVersion": { + "type": "string" }, - "kind": { + "kernelVersion": { "type": "string" }, - "name": { + "kubeProxyVersion": { "type": "string" }, - "uid": { + "kubeletVersion": { "type": "string" - } - }, - "required": ["apiVersion", "kind", "name", "uid"], - "type": "object", - "x-kubernetes-map-type": "atomic" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { - "oneOf": [ - { + }, + "machineID": { "type": "string" }, - { - "type": "integer" - } - ] - } - }, - "$id": "https://raw.githubusercontent.com/Cloudzero/cloudzero-agent/refs/heads/develop/helm/values.schema.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": false, - "allOf": [ - { - "if": { - "allOf": [ - { - "properties": { - "defaults": { - "properties": { - "federation": { - "properties": { - "enabled": { - "const": true - } - }, - "required": ["enabled"], - "type": "object" - } - }, - "required": ["federation"], - "type": "object" - } - } - } - ] + "operatingSystem": { + "type": "string" + }, + "osImage": { + "type": "string" + }, + "swap": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeSwapStatus" + }, + "systemUUID": { + "type": "string" + } + }, + "required": [ + "machineID", + "systemUUID", + "bootID", + "kernelVersion", + "osImage", + "containerRuntimeVersion", + "kubeletVersion", + "kubeProxyVersion", + "operatingSystem", + "architecture" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.ObjectReference": { + "properties": { + "apiVersion": { + "type": "string" + }, + "fieldPath": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "resourceVersion": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { + "properties": { + "lastProbeTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "lastTransitionTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { + "properties": { + "accessModes": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "allocatedResourceStatuses": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-kubernetes-map-type": "granular" + }, + "allocatedResources": { + "additionalProperties": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "type": "object" + }, + "capacity": { + "additionalProperties": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "type": "object" + }, + "conditions": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentVolumeAttributesClassName": { + "type": "string" + }, + "modifyVolumeStatus": { + "$ref": "#/$defs/io.k8s.api.core.v1.ModifyVolumeStatus" + }, + "phase": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PersistentVolumeSpec": { + "properties": { + "accessModes": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "awsElasticBlockStore": { + "$ref": "#/$defs/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" + }, + "azureDisk": { + "$ref": "#/$defs/io.k8s.api.core.v1.AzureDiskVolumeSource" + }, + "azureFile": { + "$ref": "#/$defs/io.k8s.api.core.v1.AzureFilePersistentVolumeSource" + }, + "capacity": { + "additionalProperties": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "type": "object" + }, + "cephfs": { + "$ref": "#/$defs/io.k8s.api.core.v1.CephFSPersistentVolumeSource" + }, + "cinder": { + "$ref": "#/$defs/io.k8s.api.core.v1.CinderPersistentVolumeSource" + }, + "claimRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.ObjectReference", + "x-kubernetes-map-type": "granular" + }, + "csi": { + "$ref": "#/$defs/io.k8s.api.core.v1.CSIPersistentVolumeSource" + }, + "fc": { + "$ref": "#/$defs/io.k8s.api.core.v1.FCVolumeSource" + }, + "flexVolume": { + "$ref": "#/$defs/io.k8s.api.core.v1.FlexPersistentVolumeSource" + }, + "flocker": { + "$ref": "#/$defs/io.k8s.api.core.v1.FlockerVolumeSource" + }, + "gcePersistentDisk": { + "$ref": "#/$defs/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" + }, + "glusterfs": { + "$ref": "#/$defs/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource" + }, + "hostPath": { + "$ref": "#/$defs/io.k8s.api.core.v1.HostPathVolumeSource" + }, + "iscsi": { + "$ref": "#/$defs/io.k8s.api.core.v1.ISCSIPersistentVolumeSource" + }, + "local": { + "$ref": "#/$defs/io.k8s.api.core.v1.LocalVolumeSource" + }, + "mountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "nfs": { + "$ref": "#/$defs/io.k8s.api.core.v1.NFSVolumeSource" + }, + "nodeAffinity": { + "$ref": "#/$defs/io.k8s.api.core.v1.VolumeNodeAffinity" + }, + "persistentVolumeReclaimPolicy": { + "type": "string" + }, + "photonPersistentDisk": { + "$ref": "#/$defs/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" + }, + "portworxVolume": { + "$ref": "#/$defs/io.k8s.api.core.v1.PortworxVolumeSource" + }, + "quobyte": { + "$ref": "#/$defs/io.k8s.api.core.v1.QuobyteVolumeSource" + }, + "rbd": { + "$ref": "#/$defs/io.k8s.api.core.v1.RBDPersistentVolumeSource" + }, + "scaleIO": { + "$ref": "#/$defs/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource" + }, + "storageClassName": { + "type": "string" + }, + "storageos": { + "$ref": "#/$defs/io.k8s.api.core.v1.StorageOSPersistentVolumeSource" + }, + "volumeAttributesClassName": { + "type": "string" + }, + "volumeMode": { + "type": "string" + }, + "vsphereVolume": { + "$ref": "#/$defs/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PersistentVolumeStatus": { + "properties": { + "lastPhaseTransitionTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "reason": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PodCondition": { + "properties": { + "lastProbeTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "lastTransitionTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PodExtendedResourceClaimStatus": { + "properties": { + "requestMappings": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerExtendedResourceRequest" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceClaimName": { + "type": "string" + } + }, + "required": [ + "requestMappings", + "resourceClaimName" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PodIP": { + "properties": { + "ip": { + "type": "string" + } + }, + "required": [ + "ip" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PodResourceClaimStatus": { + "properties": { + "name": { + "type": "string" + }, + "resourceClaimName": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PodStatus": { + "properties": { + "conditions": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "containerStatuses": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ephemeralContainerStatuses": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "extendedResourceClaimStatus": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodExtendedResourceClaimStatus" + }, + "hostIP": { + "type": "string" + }, + "hostIPs": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.HostIP" + }, + "type": "array", + "x-kubernetes-list-type": "atomic", + "x-kubernetes-patch-merge-key": "ip", + "x-kubernetes-patch-strategy": "merge" + }, + "initContainerStatuses": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.ContainerStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "message": { + "type": "string" + }, + "nominatedNodeName": { + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + }, + "phase": { + "type": "string" + }, + "podIP": { + "type": "string" + }, + "podIPs": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodIP" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "ip" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "ip", + "x-kubernetes-patch-strategy": "merge" + }, + "qosClass": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "resize": { + "type": "string" + }, + "resourceClaimStatuses": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodResourceClaimStatus" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge,retainKeys" + }, + "startTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.PortStatus": { + "properties": { + "error": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "protocol": { + "type": "string" + } + }, + "required": [ + "port", + "protocol" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.RBDPersistentVolumeSource": { + "properties": { + "fsType": { + "type": "string" + }, + "image": { + "type": "string" + }, + "keyring": { + "type": "string" + }, + "monitors": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "pool": { + "type": "string" + }, + "readOnly": { + "type": "boolean" + }, + "secretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + }, + "user": { + "type": "string" + } + }, + "required": [ + "monitors", + "image" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.ResourceHealth": { + "properties": { + "health": { + "type": "string" + }, + "resourceID": { + "type": "string" + } + }, + "required": [ + "resourceID" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.ResourceStatus": { + "properties": { + "name": { + "type": "string" + }, + "resources": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceHealth" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "resourceID" + ], + "x-kubernetes-list-type": "map" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { + "properties": { + "fsType": { + "type": "string" + }, + "gateway": { + "type": "string" + }, + "protectionDomain": { + "type": "string" + }, + "readOnly": { + "type": "boolean" + }, + "secretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecretReference" + }, + "sslEnabled": { + "type": "boolean" + }, + "storageMode": { + "type": "string" + }, + "storagePool": { + "type": "string" + }, + "system": { + "type": "string" + }, + "volumeName": { + "type": "string" + } + }, + "required": [ + "gateway", + "system", + "secretRef" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.SecretReference": { + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false + }, + "io.k8s.api.core.v1.ServicePort": { + "properties": { + "appProtocol": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nodePort": { + "format": "int32", + "type": "integer" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "targetPort": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + } + }, + "required": [ + "port" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.ServiceSpec": { + "properties": { + "allocateLoadBalancerNodePorts": { + "type": "boolean" + }, + "clusterIP": { + "type": "string" + }, + "clusterIPs": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "externalIPs": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "externalName": { + "type": "string" + }, + "externalTrafficPolicy": { + "type": "string" + }, + "healthCheckNodePort": { + "format": "int32", + "type": "integer" + }, + "internalTrafficPolicy": { + "type": "string" + }, + "ipFamilies": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ipFamilyPolicy": { + "type": "string" + }, + "loadBalancerClass": { + "type": "string" + }, + "loadBalancerIP": { + "type": "string" + }, + "loadBalancerSourceRanges": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ports": { + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.ServicePort" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "port", + "protocol" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "port", + "x-kubernetes-patch-strategy": "merge" + }, + "publishNotReadyAddresses": { + "type": "boolean" + }, + "selector": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "sessionAffinity": { + "type": "string" + }, + "sessionAffinityConfig": { + "$ref": "#/$defs/io.k8s.api.core.v1.SessionAffinityConfig" + }, + "trafficDistribution": { + "type": "string" + }, + "type": { + "type": "string" + } }, - "then": { - "properties": { - "components": { - "properties": { - "agent": { - "properties": { - "mode": { - "oneOf": [ - { - "type": "null" - }, - { - "const": "federated" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.ServiceStatus": { + "properties": { + "conditions": { + "items": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "loadBalancer": { + "$ref": "#/$defs/io.k8s.api.core.v1.LoadBalancerStatus" } - } + }, + "type": "object", + "additionalProperties": false }, - { - "if": { - "properties": { - "components": { - "properties": { - "agent": { - "properties": { - "mode": { - "const": "clustered" - } - }, - "type": "object" - } - }, - "type": "object" - } + "io.k8s.api.core.v1.SessionAffinityConfig": { + "properties": { + "clientIP": { + "$ref": "#/$defs/io.k8s.api.core.v1.ClientIPConfig" } }, - "then": { - "properties": { - "server": { - "properties": { - "persistentVolume": { - "properties": { - "enabled": { - "const": false - } - }, - "type": "object" - } - }, - "type": "object" - } + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { + "properties": { + "fsType": { + "type": "string" + }, + "readOnly": { + "type": "boolean" + }, + "secretRef": { + "$ref": "#/$defs/io.k8s.api.core.v1.ObjectReference" + }, + "volumeName": { + "type": "string" + }, + "volumeNamespace": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.Taint": { + "properties": { + "effect": { + "type": "string" + }, + "key": { + "type": "string" + }, + "timeAdded": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "value": { + "type": "string" + } + }, + "required": [ + "key", + "effect" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.VolumeMountStatus": { + "properties": { + "mountPath": { + "type": "string" + }, + "name": { + "type": "string" + }, + "readOnly": { + "type": "boolean" + }, + "recursiveReadOnly": { + "type": "string" + } + }, + "required": [ + "name", + "mountPath" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.core.v1.VolumeNodeAffinity": { + "properties": { + "required": { + "$ref": "#/$defs/io.k8s.api.core.v1.NodeSelector" + } + }, + "type": "object", + "additionalProperties": false + }, + "io.k8s.api.policy.v1.PodDisruptionBudgetStatus": { + "properties": { + "conditions": { + "items": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentHealthy": { + "format": "int32", + "type": "integer" + }, + "desiredHealthy": { + "format": "int32", + "type": "integer" + }, + "disruptedPods": { + "additionalProperties": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "type": "object" + }, + "disruptionsAllowed": { + "format": "int32", + "type": "integer" + }, + "expectedPods": { + "format": "int32", + "type": "integer" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "disruptionsAllowed", + "currentHealthy", + "desiredHealthy", + "expectedPods" + ], + "type": "object", + "additionalProperties": false + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Condition": { + "properties": { + "lastTransitionTime": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" } - } + }, + "required": [ + "type", + "status", + "lastTransitionTime", + "reason", + "message" + ], + "type": "object", + "additionalProperties": false } + }, + "type": "object", + "additionalProperties": false, + "required": [ + "host" ], - "anyOf": [ - { - "required": ["apiKey"] + "properties": { + "cloudAccountId": { + "type": "string", + "pattern": "^$|^[0-9]+$|^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$|^'[0-9]+'$|^'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'$" }, - { - "required": ["existingSecretName"] - } - ], - "oneOf": [ - { - "properties": { - "apiKey": { - "pattern": "^[a-zA-Z0-9-_.~!*'();]+$", - "type": "string" + "clusterName": { + "type": "string", + "pattern": "^(|[a-zA-Z0-9](?:[a-zA-Z0-9._-]{0,251}[a-zA-Z0-9])?)$" + }, + "region": { + "oneOf": [ + { + "type": "string", + "minLength": 4, + "pattern": "^(([a-z]+-[a-z]+-?[0-9]+)|([a-z]{4,}[0-9]*))$" }, - "existingSecretName": { + { "type": "null" } - } + ] }, - { - "properties": { - "apiKey": { - "type": "null" + "apiKey": { + "type": [ + "string", + "null" + ], + "pattern": "^[a-zA-Z0-9-_.~!*'();]+$" + }, + "host": { + "type": "string", + "minLength": 1 + }, + "existingSecretName": { + "type": [ + "string", + "null" + ] + }, + "nameOverride": { + "deprecated": true, + "type": [ + "string", + "null" + ] + }, + "forceNamespace": { + "deprecated": true, + "type": [ + "string", + "null" + ] + }, + "configMapNameOverride": { + "deprecated": true, + "type": [ + "string", + "null" + ] + }, + "imagePullSecrets": { + "deprecated": true, + "oneOf": [ + { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets" }, - "existingSecretName": { - "type": "string" + { + "type": "null" } - } - } - ], - "properties": { - "aggregator": { + ] + }, + "defaults": { + "type": "object", "additionalProperties": false, "properties": { + "federation": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": [ + "boolean", + "null" + ] + } + } + }, + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" + }, + "dns": { + "$ref": "#/$defs/com.cloudzero.agent.dns" + }, + "labels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "annotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, "affinity": { "$ref": "#/$defs/io.k8s.api.core.v1.Affinity" }, - "cloudzero": { - "additionalProperties": false, - "properties": { - "httpMaxRetries": { - "maximum": 10, - "minimum": 0, - "type": "integer" - }, - "httpMaxWait": { - "$ref": "#/$defs/com.cloudzero.agent.duration" - }, - "rotateInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" - }, - "sendInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" + "tolerations": { + "$ref": "#/$defs/com.cloudzero.agent.tolerations" + }, + "nodeSelector": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" + }, + "podDisruptionBudget": { + "oneOf": [ + { + "$ref": "#/$defs/com.cloudzero.agent.PodDisruptionBudgetSpec" }, - "sendTimeout": { - "$ref": "#/$defs/com.cloudzero.agent.duration" + { + "type": "null" } - }, - "type": "object" + ] }, - "collector": { + "priorityClassName": { + "type": [ + "string", + "null" + ] + }, + "replicas": { + "type": "integer", + "default": 3 + }, + "autoscaling": { + "$ref": "#/$defs/com.cloudzero.agent.AutoscalingSpec" + }, + "securityContext": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + } + } + }, + "components": { + "additionalProperties": false, + "type": "object", + "properties": { + "agent": { "additionalProperties": false, + "type": "object", "properties": { - "livenessProbe": { - "additionalProperties": false, - "properties": { - "failureThreshold": { - "minimum": 1, - "type": "integer" - }, - "initialDelaySeconds": { - "minimum": 0, - "type": "integer" + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" + }, + "mode": { + "oneOf": [ + { + "enum": [ + "federated", + "agent", + "server", + "clustered" + ] }, - "periodSeconds": { - "minimum": 1, - "type": "integer" + { + "type": "null" } - }, - "type": "object" + ], + "default": null }, - "port": { - "type": "integer" + "podDisruptionBudget": { + "oneOf": [ + { + "$ref": "#/$defs/com.cloudzero.agent.PodDisruptionBudgetSpec" + }, + { + "type": "null" + } + ] }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "failureThreshold": { - "minimum": 1, + "replicas": { + "oneOf": [ + { "type": "integer" }, - "initialDelaySeconds": { - "minimum": 0, - "type": "integer" + { + "type": "null" + } + ] + }, + "autoscaling": { + "oneOf": [ + { + "$ref": "#/$defs/com.cloudzero.agent.AutoscalingSpec" }, - "periodSeconds": { - "minimum": 1, - "type": "integer" + { + "type": "null" } - }, - "type": "object" + ] + }, + "tolerations": { + "$ref": "#/$defs/com.cloudzero.agent.tolerations" }, "resources": { "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" - } - }, - "type": "object" - }, - "database": { - "additionalProperties": false, - "properties": { - "compressionLevel": { - "maximum": 11, - "minimum": 0, - "type": "integer" }, - "costMaxInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" + "securityContext": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" }, - "emptyDir": { + "extraVolumeMounts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMount" + } + }, + { + "type": "null" + } + ] + }, + "extraVolumes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Volume" + } + }, + { + "type": "null" + } + ] + }, + "labels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "annotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "podLabels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "federatedNode": { "additionalProperties": false, + "type": "object", "properties": { - "enabled": { - "type": "boolean" + "labels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "annotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "podLabels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, - "medium": { - "$ref": "#/$defs/io.k8s.api.core.v1.EmptyDirVolumeSource/properties/medium" + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "sizeLimit": { - "$ref": "#/$defs/io.k8s.api.core.v1.EmptyDirVolumeSource/properties/sizeLimit" + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + }, + "securityContext": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" } - }, - "type": "object" - }, - "maxRecords": { - "type": "integer" - }, - "observabilityMaxInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" + } }, - "purgeRules": { + "kubeState": { "additionalProperties": false, + "type": "object", "properties": { - "lazy": { + "enabled": { "type": "boolean" }, - "metricsOlderThan": { + "reemitInterval": { "$ref": "#/$defs/com.cloudzero.agent.duration" - }, - "percent": { - "type": "integer" } - }, - "type": "object" - } - }, - "type": "object" - }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image", - "deprecated": true - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "failureThreshold": { - "minimum": 1, - "type": "integer" - }, - "initialDelaySeconds": { - "minimum": 0, - "type": "integer" - }, - "periodSeconds": { - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "logging": { - "additionalProperties": false, - "properties": { - "capture": { - "default": true, - "type": "boolean" - }, - "level": { - "enum": ["debug", "info", "warn", "error"], - "type": "string" - } - }, - "type": "object" - }, - "mountRoot": { - "type": "string" - }, - "name": { - "deprecated": true, - "type": ["string", "null"] - }, - "nodeSelector": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" - }, - "profiling": { - "type": "boolean" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "failureThreshold": { - "minimum": 1, - "type": "integer" - }, - "initialDelaySeconds": { - "minimum": 0, - "type": "integer" + } }, - "periodSeconds": { - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "reconnectFrequency": { - "minimum": 0, - "type": "integer" - }, - "shipper": { - "additionalProperties": false, - "properties": { - "livenessProbe": { + "clusteredNode": { "additionalProperties": false, + "type": "object", "properties": { - "failureThreshold": { - "minimum": 1, - "type": "integer" + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" }, - "initialDelaySeconds": { - "minimum": 0, - "type": "integer" + "command": { + "oneOf": [ + { + "$ref": "#/$defs/io.k8s.api.core.v1.Container/properties/command" + }, + { + "type": "null" + } + ] }, - "periodSeconds": { - "minimum": 1, - "type": "integer" + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + }, + "securityContext": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" } - }, - "type": "object" - }, - "port": { - "type": "integer" + } }, - "readinessProbe": { + "reloader": { "additionalProperties": false, + "type": "object", "properties": { - "failureThreshold": { - "minimum": 1, - "type": "integer" - }, - "initialDelaySeconds": { - "minimum": 0, - "type": "integer" + "securityContext": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" }, - "periodSeconds": { - "minimum": 1, - "type": "integer" + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" } - }, - "type": "object" - }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + } } }, - "type": "object" - }, - "tolerations": { - "$ref": "#/$defs/com.cloudzero.agent.tolerations" - } - }, - "type": "object" - }, - "apiKey": { - "type": ["string", "null"] - }, - "cloudAccountId": { - "pattern": "^$|^[0-9]+$|^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$|^'[0-9]+'$|^'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'$", - "type": "string" - }, - "clusterName": { - "pattern": "^(|[a-zA-Z0-9](?:[a-zA-Z0-9._-]{0,251}[a-zA-Z0-9])?)$", - "type": "string" - }, - "commonMetaLabels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels", - "default": {}, - "deprecated": true, - "examples": [ - { - "environment": "production", - "team": "platform" - } - ], - "title": "Common labels applied to all resources" - }, - "components": { - "additionalProperties": false, - "properties": { - "agent": { - "additionalProperties": false, "allOf": [ { "if": { @@ -5855,7 +6167,11 @@ { "properties": { "mode": { - "enum": ["federated", "agent", "server"] + "enum": [ + "federated", + "agent", + "server" + ] } } } @@ -5891,7 +6207,11 @@ { "properties": { "mode": { - "enum": ["federated", "agent", "server"] + "enum": [ + "federated", + "agent", + "server" + ] } } } @@ -5950,12 +6270,12 @@ "if": { "properties": { "kubeState": { + "type": "object", "properties": { "enabled": { "const": true } - }, - "type": "object" + } } } }, @@ -5967,159 +6287,184 @@ } } } - ], + ] + }, + "validator": { + "additionalProperties": false, + "type": "object", "properties": { + "labels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, "annotations": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "autoscaling": { - "oneOf": [ - { - "$ref": "#/$defs/com.cloudzero.agent.AutoscalingSpec" + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + }, + "checks": { + "type": "object", + "additionalProperties": false, + "properties": { + "pre-start": { + "$ref": "#/$defs/com.cloudzero.agent.StageChecks" }, - { - "type": "null" + "post-start": { + "$ref": "#/$defs/com.cloudzero.agent.StageChecks" + }, + "pre-stop": { + "$ref": "#/$defs/com.cloudzero.agent.StageChecks" + }, + "config-load": { + "$ref": "#/$defs/com.cloudzero.agent.StageChecks" } - ] - }, - "clusteredNode": { + } + } + } + }, + "miscellaneous": { + "additionalProperties": false, + "type": "object", + "properties": { + "configLoader": { "additionalProperties": false, + "type": "object", "properties": { - "command": { + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + }, + "securityContext": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + }, + "extraVolumeMounts": { "oneOf": [ { - "$ref": "#/$defs/io.k8s.api.core.v1.Container/properties/command" + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMount" + } + }, + { + "type": "null" + } + ] + }, + "extraVolumes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Volume" + } }, { "type": "null" } ] }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" + "annotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "labels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "podLabels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + } + } + }, + "helmless": { + "additionalProperties": false, + "type": "object", + "properties": { "resources": { "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" }, "securityContext": { "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" - } - }, - "type": "object" - }, - "federatedNode": { - "additionalProperties": false, - "properties": { + }, "annotations": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, "labels": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, - "podAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, "podLabels": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + } + } + }, + "initCert": { + "additionalProperties": false, + "type": "object", + "properties": { "resources": { "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" }, "securityContext": { "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" - } - }, - "type": "object" - }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" - }, - "kubeState": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" }, - "reemitInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" + "labels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "annotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "podLabels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" } - }, - "type": "object" - }, + } + } + } + }, + "aggregator": { + "additionalProperties": false, + "type": "object", + "properties": { "labels": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, - "mode": { - "default": null, - "oneOf": [ - { - "enum": ["federated", "agent", "server", "clustered"] - }, - { - "type": "null" - } - ] - }, - "podAnnotations": { + "annotations": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "podDisruptionBudget": { - "oneOf": [ - { - "$ref": "#/$defs/com.cloudzero.agent.PodDisruptionBudgetSpec" - }, - { - "type": "null" - } - ] - }, "podLabels": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, - "reloader": { - "additionalProperties": false, - "properties": { - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" - }, - "securityContext": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" - } - }, - "type": "object" + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "replicas": { + "collector": { "oneOf": [ { - "type": "integer" + "type": "object", + "properties": { + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + }, + "securityContext": { + "$ref": "#/$defs/io.k8s.api.core.v1.SecurityContext" + } + }, + "additionalProperties": false }, { "type": "null" } ] }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" - }, - "securityContext": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" - }, - "tolerations": { - "$ref": "#/$defs/com.cloudzero.agent.tolerations" - } - }, - "type": "object" - }, - "aggregator": { - "additionalProperties": false, - "properties": { - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "collector": { + "shipper": { "oneOf": [ { - "additionalProperties": false, + "type": "object", "properties": { "resources": { "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" @@ -6128,19 +6473,13 @@ "$ref": "#/$defs/io.k8s.api.core.v1.SecurityContext" } }, - "type": "object" + "additionalProperties": false }, { "type": "null" } ] }, - "labels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" - }, - "podAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, "podDisruptionBudget": { "oneOf": [ { @@ -6151,131 +6490,209 @@ } ] }, - "podLabels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" - }, "replicas": { "additionalProperties": false, - "type": ["integer", "null"] + "type": [ + "integer", + "null" + ] + }, + "tolerations": { + "$ref": "#/$defs/com.cloudzero.agent.tolerations" }, "securityContext": { "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" }, - "shipper": { + "extraVolumeMounts": { "oneOf": [ { - "additionalProperties": false, - "properties": { - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" - }, - "securityContext": { - "$ref": "#/$defs/io.k8s.api.core.v1.SecurityContext" - } - }, - "type": "object" + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMount" + } }, { "type": "null" } ] }, - "tolerations": { - "$ref": "#/$defs/com.cloudzero.agent.tolerations" + "extraVolumes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Volume" + } + }, + { + "type": "null" + } + ] } - }, - "type": "object" + } }, "kubectl": { - "additionalProperties": false, "deprecated": true, + "additionalProperties": false, + "type": "object", "properties": { "image": { "$ref": "#/$defs/com.cloudzero.agent.image" } - }, - "type": "object" + } }, - "miscellaneous": { + "prometheus": { "additionalProperties": false, + "type": "object", "properties": { - "configLoader": { - "additionalProperties": false, - "properties": { - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "labels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" - }, - "podAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "podLabels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" + } + } + }, + "prometheusReloader": { + "additionalProperties": false, + "type": "object", + "properties": { + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" + } + } + }, + "webhookServer": { + "additionalProperties": false, + "type": "object", + "properties": { + "autoscaling": { + "oneOf": [ + { + "$ref": "#/$defs/com.cloudzero.agent.AutoscalingSpec" }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + { + "type": "null" + } + ] + }, + "podDisruptionBudget": { + "oneOf": [ + { + "$ref": "#/$defs/com.cloudzero.agent.PodDisruptionBudgetSpec" }, - "securityContext": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + { + "type": "null" } - }, - "type": "object" + ] }, - "helmless": { + "replicas": { "additionalProperties": false, - "properties": { - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "labels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" - }, - "podAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "podLabels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + "type": [ + "integer", + "null" + ] + }, + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + }, + "securityContext": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + }, + "extraVolumeMounts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMount" + } }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + { + "type": "null" + } + ] + }, + "extraVolumes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Volume" + } }, - "securityContext": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + { + "type": "null" } - }, - "type": "object" + ] }, - "initCert": { + "labels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "annotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "podLabels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "backfill": { "additionalProperties": false, + "type": "object", "properties": { - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + "schedule": { + "$ref": "#/$defs/io.k8s.api.batch.v1.CronJobSpec/properties/schedule", + "default": "0 */3 * * *" }, "labels": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, - "podAnnotations": { + "annotations": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, "podLabels": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, "resources": { "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" }, "securityContext": { "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + }, + "extraVolumeMounts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMount" + } + }, + { + "type": "null" + } + ] + }, + "extraVolumes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.Volume" + } + }, + { + "type": "null" + } + ] } - }, - "type": "object" + } } - }, - "type": "object" + } }, "monitoring": { "additionalProperties": false, + "type": "object", "properties": { "enabled": { "default": null, @@ -6287,17 +6704,13 @@ "type": "boolean" }, { - "enum": ["auto"], - "type": "string" + "type": "string", + "enum": [ + "auto" + ] } ] }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, "namespace": { "default": null, "oneOf": [ @@ -6309,277 +6722,440 @@ } ] }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, "sharedSecret": { "default": false, "type": "boolean" } - }, - "type": "object" + } + } + } + }, + "aggregator": { + "additionalProperties": false, + "type": "object", + "properties": { + "name": { + "deprecated": true, + "type": [ + "string", + "null" + ] }, - "prometheus": { + "logging": { + "type": "object", "additionalProperties": false, "properties": { - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" + "level": { + "type": "string", + "enum": [ + "debug", + "info", + "warn", + "error" + ] + }, + "capture": { + "type": "boolean", + "default": true } - }, - "type": "object" + } }, - "prometheusReloader": { + "mountRoot": { + "type": "string" + }, + "profiling": { + "type": "boolean" + }, + "reconnectFrequency": { + "type": "integer", + "minimum": 0 + }, + "readinessProbe": { + "type": "object", "additionalProperties": false, "properties": { - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" + "initialDelaySeconds": { + "type": "integer", + "minimum": 0 + }, + "periodSeconds": { + "type": "integer", + "minimum": 1 + }, + "failureThreshold": { + "type": "integer", + "minimum": 1 } - }, - "type": "object" + } }, - "validator": { + "livenessProbe": { + "type": "object", "additionalProperties": false, "properties": { - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + "initialDelaySeconds": { + "type": "integer", + "minimum": 0 }, - "checks": { - "additionalProperties": false, - "properties": { - "config-load": { - "$ref": "#/$defs/com.cloudzero.agent.StageChecks" - }, - "post-start": { - "$ref": "#/$defs/com.cloudzero.agent.StageChecks" - }, - "pre-start": { - "$ref": "#/$defs/com.cloudzero.agent.StageChecks" - }, - "pre-stop": { - "$ref": "#/$defs/com.cloudzero.agent.StageChecks" - } - }, - "type": "object" + "periodSeconds": { + "type": "integer", + "minimum": 1 }, - "labels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + "failureThreshold": { + "type": "integer", + "minimum": 1 + } + } + }, + "image": { + "deprecated": true, + "$ref": "#/$defs/com.cloudzero.agent.image" + }, + "cloudzero": { + "type": "object", + "additionalProperties": false, + "properties": { + "sendInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + "sendTimeout": { + "$ref": "#/$defs/com.cloudzero.agent.duration" + }, + "rotateInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" + }, + "httpMaxRetries": { + "type": "integer", + "minimum": 0, + "maximum": 10 + }, + "httpMaxWait": { + "$ref": "#/$defs/com.cloudzero.agent.duration" } - }, - "type": "object" + } }, - "webhookServer": { + "database": { + "type": "object", "additionalProperties": false, "properties": { - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + "maxRecords": { + "type": "integer" }, - "autoscaling": { - "oneOf": [ - { - "$ref": "#/$defs/com.cloudzero.agent.AutoscalingSpec" - }, - { - "type": "null" - } - ] + "costMaxInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" }, - "backfill": { + "observabilityMaxInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" + }, + "compressionLevel": { + "type": "integer", + "minimum": 0, + "maximum": 11 + }, + "purgeRules": { + "type": "object", "additionalProperties": false, "properties": { - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "labels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" - }, - "podAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "podLabels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" - }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" - }, - "schedule": { - "$ref": "#/$defs/io.k8s.api.batch.v1.CronJobSpec/properties/schedule", - "default": "0 */3 * * *" + "metricsOlderThan": { + "$ref": "#/$defs/com.cloudzero.agent.duration" }, - "securityContext": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" - } - }, - "type": "object" - }, - "labels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" - }, - "podAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "podDisruptionBudget": { - "oneOf": [ - { - "$ref": "#/$defs/com.cloudzero.agent.PodDisruptionBudgetSpec" + "lazy": { + "type": "boolean" }, - { - "type": "null" - } - ] - }, - "podLabels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + "percent": { + "type": "integer" + } + } }, - "replicas": { + "emptyDir": { + "type": "object", "additionalProperties": false, - "type": ["integer", "null"] + "properties": { + "enabled": { + "type": "boolean" + }, + "medium": { + "$ref": "#/$defs/io.k8s.api.core.v1.EmptyDirVolumeSource/properties/medium" + }, + "sizeLimit": { + "$ref": "#/$defs/io.k8s.api.core.v1.EmptyDirVolumeSource/properties/sizeLimit" + } + } + } + } + }, + "collector": { + "type": "object", + "additionalProperties": false, + "properties": { + "port": { + "type": "integer" }, "resources": { "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" }, - "securityContext": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + "readinessProbe": { + "type": "object", + "additionalProperties": false, + "properties": { + "initialDelaySeconds": { + "type": "integer", + "minimum": 0 + }, + "periodSeconds": { + "type": "integer", + "minimum": 1 + }, + "failureThreshold": { + "type": "integer", + "minimum": 1 + } + } + }, + "livenessProbe": { + "type": "object", + "additionalProperties": false, + "properties": { + "initialDelaySeconds": { + "type": "integer", + "minimum": 0 + }, + "periodSeconds": { + "type": "integer", + "minimum": 1 + }, + "failureThreshold": { + "type": "integer", + "minimum": 1 + } + } } - }, - "type": "object" - } - }, - "type": "object" - }, - "configMapNameOverride": { - "deprecated": true, - "type": ["string", "null"] - }, - "configmapReload": { - "deprecated": true, - "properties": { - "prometheus": { + } + }, + "shipper": { + "type": "object", "additionalProperties": false, "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" + "port": { + "type": "integer" }, "resources": { "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + }, + "readinessProbe": { + "type": "object", + "additionalProperties": false, + "properties": { + "initialDelaySeconds": { + "type": "integer", + "minimum": 0 + }, + "periodSeconds": { + "type": "integer", + "minimum": 1 + }, + "failureThreshold": { + "type": "integer", + "minimum": 1 + } + } + }, + "livenessProbe": { + "type": "object", + "additionalProperties": false, + "properties": { + "initialDelaySeconds": { + "type": "integer", + "minimum": 0 + }, + "periodSeconds": { + "type": "integer", + "minimum": 1 + }, + "failureThreshold": { + "type": "integer", + "minimum": 1 + } + } } - }, - "type": "object" + } + }, + "nodeSelector": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" + }, + "tolerations": { + "$ref": "#/$defs/com.cloudzero.agent.tolerations" + }, + "affinity": { + "$ref": "#/$defs/io.k8s.api.core.v1.Affinity" } - }, - "title": "Configuration for ConfigMap reloading", - "type": "object" + } }, - "defaults": { + "prometheusConfig": { + "type": "object", "additionalProperties": false, "properties": { - "affinity": { - "$ref": "#/$defs/io.k8s.api.core.v1.Affinity" + "configMapNameOverride": { + "type": "string" }, - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + "configMapAnnotations": { + "type": "object", + "additionalProperties": true }, - "autoscaling": { - "$ref": "#/$defs/com.cloudzero.agent.AutoscalingSpec" + "configOverride": { + "type": "string" }, - "dns": { - "$ref": "#/$defs/com.cloudzero.agent.dns" + "globalScrapeInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" }, - "federation": { + "outOfOrderTimeWindow": { + "type": [ + "string", + "null" + ], + "pattern": "^((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0)$" + }, + "scrapeJobs": { + "type": "object", "additionalProperties": false, "properties": { - "enabled": { - "type": ["boolean", "null"] - } - }, - "type": "object" - }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" - }, - "labels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" - }, - "nodeSelector": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" - }, - "podDisruptionBudget": { - "oneOf": [ - { - "$ref": "#/$defs/com.cloudzero.agent.PodDisruptionBudgetSpec" + "kubeStateMetrics": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean" + }, + "scrapeInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" + } + } }, - { - "type": "null" + "cadvisor": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "boolean" + } + ], + "default": null, + "deprecated": true + }, + "scrapeInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" + } + } + }, + "prometheus": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean" + }, + "scrapeInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" + } + } + }, + "aggregator": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean" + }, + "scrapeInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" + } + } + }, + "gpu": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean" + }, + "scrapeInterval": { + "$ref": "#/$defs/com.cloudzero.agent.duration" + } + } + }, + "additionalScrapeJobs": { + "type": "array", + "items": { + "type": "object" + } } - ] - }, - "priorityClassName": { - "type": ["string", "null"] - }, - "replicas": { - "default": 3, - "type": "integer" - }, - "securityContext": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + } }, - "tolerations": { - "$ref": "#/$defs/com.cloudzero.agent.tolerations" + "additionalAlloyConfig": { + "type": "string", + "default": "" } - }, - "type": "object" - }, - "existingSecretName": { - "type": ["string", "null"] - }, - "forceNamespace": { - "deprecated": true, - "type": ["string", "null"] - }, - "global": { - "additionalProperties": true, - "type": "object" + } }, - "helmless": { - "additionalProperties": false, - "properties": { - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + "commonMetaLabels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels", + "title": "Common labels applied to all resources", + "default": {}, + "examples": [ + { + "environment": "production", + "team": "platform" } - }, - "type": "object" - }, - "host": { - "minLength": 1, - "type": "string" + ], + "deprecated": true }, - "imagePullSecrets": { + "configmapReload": { + "title": "Configuration for ConfigMap reloading", + "type": "object", "deprecated": true, - "oneOf": [ - { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets" - }, - { - "type": "null" + "properties": { + "prometheus": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean", + "default": true + }, + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" + }, + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + } + } } - ] + } }, "initBackfillJob": { + "type": "object", "additionalProperties": false, "properties": { - "annotations": { - "additionalProperties": true, - "type": "object" - }, "enabled": { - "default": true, - "type": "boolean" + "type": "boolean", + "default": true }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" + "annotations": { + "type": "object", + "additionalProperties": true + }, + "tolerations": { + "$ref": "#/$defs/com.cloudzero.agent.tolerations" }, "imagePullSecrets": { "oneOf": [ @@ -6601,24 +7177,24 @@ } ] }, - "tolerations": { - "$ref": "#/$defs/com.cloudzero.agent.tolerations" + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" } - }, - "type": "object" + } }, "initCertJob": { + "type": "object", "additionalProperties": false, "properties": { + "enabled": { + "type": "boolean", + "default": true + }, "annotations": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "enabled": { - "default": true, - "type": "boolean" - }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" + "tolerations": { + "$ref": "#/$defs/com.cloudzero.agent.tolerations" }, "imagePullSecrets": { "oneOf": [ @@ -6633,947 +7209,1051 @@ "nodeSelector": { "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" }, + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" + }, + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + }, "rbac": { + "type": "object", "properties": { - "clusterRoleBindingName": { - "type": "string" - }, - "clusterRoleName": { - "type": "string" - }, "create": { - "default": true, - "type": "boolean" + "type": "boolean", + "default": true }, "serviceAccountName": { "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/serviceAccountName" + }, + "clusterRoleName": { + "type": "string" + }, + "clusterRoleBindingName": { + "type": "string" } - }, - "type": "object" - }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" - }, - "tolerations": { - "$ref": "#/$defs/com.cloudzero.agent.tolerations" + } } - }, - "type": "object" + } }, "initScrapeJob": { - "additionalProperties": false, "deprecated": true, + "type": "object", + "additionalProperties": false, "properties": { "annotations": { - "additionalProperties": true, - "type": ["object", "null"] - }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" + "type": [ + "object", + "null" + ], + "additionalProperties": true }, - "imagePullSecrets": { + "tolerations": { "oneOf": [ { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets" + "$ref": "#/$defs/com.cloudzero.agent.tolerations" }, { "type": "null" } ] }, - "nodeSelector": { + "imagePullSecrets": { "oneOf": [ { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets" }, { "type": "null" } ] }, - "tolerations": { + "nodeSelector": { "oneOf": [ { - "$ref": "#/$defs/com.cloudzero.agent.tolerations" + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" }, { "type": "null" } ] + }, + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" } - }, - "type": "object" + } }, "insightsController": { + "type": "object", "additionalProperties": false, "properties": { - "ConfigMapNameOverride": { - "type": ["string", "null"] + "enabled": { + "type": "boolean", + "default": true }, - "annotations": { + "labels": { + "type": "object", "additionalProperties": false, "properties": { "enabled": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": true }, "patterns": { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "resources": { + "type": "object", "additionalProperties": false, "properties": { "cronjobs": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "daemonsets": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "deployments": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "jobs": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "namespaces": { - "default": true, - "type": "boolean" + "type": "boolean", + "default": true }, "nodes": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "pods": { - "default": true, - "type": "boolean" + "type": "boolean", + "default": true }, "statefulsets": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false } - }, - "type": "object" + } } - }, - "type": "object" - }, - "configurationMountPath": { - "type": ["string", "null"] - }, - "enabled": { - "default": true, - "type": "boolean" + } }, - "labels": { + "annotations": { + "type": "object", "additionalProperties": false, "properties": { "enabled": { - "default": true, - "type": "boolean" + "type": "boolean", + "default": false }, "patterns": { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "resources": { + "type": "object", "additionalProperties": false, "properties": { "cronjobs": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "daemonsets": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "deployments": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "jobs": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "namespaces": { - "default": true, - "type": "boolean" + "type": "boolean", + "default": true }, "nodes": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false }, "pods": { - "default": true, - "type": "boolean" + "type": "boolean", + "default": true }, "statefulsets": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false } - }, - "type": "object" + } } - }, - "type": "object" - }, - "podAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "podLabels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" - }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + } }, - "server": { + "tls": { + "type": "object", "additionalProperties": false, "properties": { - "affinity": { - "$ref": "#/$defs/io.k8s.api.core.v1.Affinity" + "enabled": { + "type": "boolean", + "default": true }, - "deploymentAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + "crt": { + "type": "string", + "default": "" }, - "healthCheck": { + "key": { + "type": "string", + "default": "" + }, + "secret": { + "type": "object", "additionalProperties": false, "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "failureThreshold": { - "default": 5, - "type": "integer" - }, - "initialDelaySeconds": { - "default": 15, - "type": "integer" - }, - "path": { - "default": "/healthz", - "type": "string" - }, - "periodSeconds": { - "default": 20, - "type": "integer" - }, - "port": { - "default": 8443, - "type": "integer" - }, - "successThreshold": { - "default": 1, - "type": "integer" + "create": { + "type": "boolean", + "default": true }, - "timeoutSeconds": { - "default": 3, - "type": "integer" + "name": { + "type": "string", + "default": "" } - }, - "type": "object" - }, - "idle_timeout": { - "$ref": "#/$defs/com.cloudzero.agent.duration", - "default": "120s" + } }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" + "mountPath": { + "type": "string", + "default": "/etc/certs" }, - "imagePullSecrets": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets" + "caBundle": { + "type": "string", + "default": "" }, - "logging": { - "additionalProperties": false, - "properties": { - "level": { - "default": "info", - "enum": ["debug", "info", "warn", "error"], - "type": "string" - } - }, - "type": "object" + "useCertManager": { + "type": "boolean", + "default": false }, + "issuerSpec": { + "type": "object", + "additionalProperties": true + } + } + }, + "server": { + "type": "object", + "additionalProperties": false, + "properties": { "name": { - "default": "webhook-server", - "type": "string" + "type": "string", + "default": "webhook-server" }, - "nodeSelector": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" + "replicaCount": { + "deprecated": true, + "type": [ + "integer", + "null" + ] }, - "podAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" + }, + "imagePullSecrets": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets" }, "port": { - "default": 8443, - "type": "integer" + "type": "integer", + "default": 8443 }, "read_timeout": { "$ref": "#/$defs/com.cloudzero.agent.duration", "default": "10s" }, - "reconnectFrequency": { - "default": 16, - "minimum": 0, - "type": "integer" + "write_timeout": { + "$ref": "#/$defs/com.cloudzero.agent.duration", + "default": "10s" }, - "replicaCount": { - "deprecated": true, - "type": ["integer", "null"] + "send_timeout": { + "$ref": "#/$defs/com.cloudzero.agent.duration", + "default": "1m" }, "send_interval": { "$ref": "#/$defs/com.cloudzero.agent.duration", "default": "1m" }, - "send_timeout": { + "idle_timeout": { "$ref": "#/$defs/com.cloudzero.agent.duration", - "default": "1m" + "default": "120s" }, - "suppressIstioAnnotations": { - "default": null, - "deprecated": true, - "oneOf": [ - { - "type": "null" + "reconnectFrequency": { + "type": "integer", + "minimum": 0, + "default": 16 + }, + "logging": { + "type": "object", + "additionalProperties": false, + "properties": { + "level": { + "type": "string", + "enum": [ + "debug", + "info", + "warn", + "error" + ], + "default": "info" + } + } + }, + "healthCheck": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean", + "default": true }, - { - "type": "boolean" + "path": { + "type": "string", + "default": "/healthz" + }, + "port": { + "type": "integer", + "default": 8443 + }, + "initialDelaySeconds": { + "type": "integer", + "default": 15 + }, + "periodSeconds": { + "type": "integer", + "default": 20 + }, + "timeoutSeconds": { + "type": "integer", + "default": 3 + }, + "successThreshold": { + "type": "integer", + "default": 1 + }, + "failureThreshold": { + "type": "integer", + "default": 5 } - ] + } + }, + "nodeSelector": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" }, "tolerations": { "$ref": "#/$defs/com.cloudzero.agent.tolerations" }, - "write_timeout": { - "$ref": "#/$defs/com.cloudzero.agent.duration", - "default": "10s" - } - }, - "type": "object" - }, - "service": { - "additionalProperties": false, - "properties": { - "port": { - "default": 443, - "type": "integer" - } - }, - "type": "object" - }, - "tls": { - "additionalProperties": false, - "properties": { - "caBundle": { - "default": "", - "type": "string" - }, - "crt": { - "default": "", - "type": "string" - }, - "enabled": { - "default": true, - "type": "boolean" - }, - "issuerSpec": { - "additionalProperties": true, - "type": "object" + "affinity": { + "$ref": "#/$defs/io.k8s.api.core.v1.Affinity" }, - "key": { - "default": "", - "type": "string" + "deploymentAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "mountPath": { - "default": "/etc/certs", - "type": "string" + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "secret": { - "additionalProperties": false, - "properties": { - "create": { - "default": true, - "type": "boolean" + "suppressIstioAnnotations": { + "deprecated": true, + "oneOf": [ + { + "type": "null" }, - "name": { - "default": "", - "type": "string" + { + "type": "boolean" } - }, - "type": "object" - }, - "useCertManager": { - "default": false, - "type": "boolean" + ], + "default": null } - }, - "type": "object" + } }, "volumeMounts": { + "type": "array", "items": { "$ref": "#/$defs/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array" + } }, "volumes": { + "type": "array", "items": { "$ref": "#/$defs/io.k8s.api.core.v1.Volume" - }, - "type": "array" + } + }, + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + }, + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "podLabels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + }, + "service": { + "type": "object", + "additionalProperties": false, + "properties": { + "port": { + "type": "integer", + "default": 443 + } + } }, "webhooks": { + "type": "object", "additionalProperties": false, "properties": { "annotations": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "caInjection": { - "type": ["string", "null"] - }, "namespaceSelector": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" }, "path": { - "default": "/validate", - "type": "string" + "type": "string", + "default": "/validate" }, "timeoutSeconds": { - "$ref": "#/$defs/io.k8s.api.admissionregistration.v1.ValidatingWebhook/properties/timeoutSeconds", + "type": "integer", "default": 1, - "type": "integer" + "$ref": "#/$defs/io.k8s.api.admissionregistration.v1.ValidatingWebhook/properties/timeoutSeconds" + }, + "caInjection": { + "type": [ + "string", + "null" + ] } - }, - "type": "object" + } + }, + "configurationMountPath": { + "type": [ + "string", + "null" + ] + }, + "ConfigMapNameOverride": { + "type": [ + "string", + "null" + ] } - }, - "type": "object" + } }, "integrations": { + "type": "object", "additionalProperties": false, "properties": { - "cAdvisor": { - "additionalProperties": false, - "properties": { - "directNodeAccess": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "default": true, - "type": "boolean" - }, - "port": { - "default": 10250, - "maximum": 65535, - "minimum": 1, - "type": "integer" - }, - "tls": { - "additionalProperties": false, - "properties": { - "insecureSkipVerify": { - "default": true, - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, "istio": { + "type": "object", "additionalProperties": false, "properties": { - "clusterID": { - "default": null, - "type": ["string", "null"] - }, "enabled": { - "default": null, "oneOf": [ { - "type": "null" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "jobConfigID": { - "type": ["string", "null"] - }, - "kubeStateMetrics": { - "type": "object" - }, - "nameOverride": { - "deprecated": true, - "type": ["string", "null"] - }, - "prometheusConfig": { - "additionalProperties": false, - "properties": { - "additionalAlloyConfig": { - "default": "", - "type": "string" - }, - "configMapAnnotations": { - "additionalProperties": true, - "type": "object" - }, - "configMapNameOverride": { - "type": "string" - }, - "configOverride": { - "type": "string" - }, - "globalScrapeInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" - }, - "outOfOrderTimeWindow": { - "pattern": "^((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0)$", - "type": ["string", "null"] - }, - "scrapeJobs": { - "additionalProperties": false, - "properties": { - "additionalScrapeJobs": { - "items": { - "type": "object" - }, - "type": "array" - }, - "aggregator": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" + "type": "null" }, - "scrapeInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" + { + "type": "boolean" } - }, - "type": "object" + ], + "default": null }, - "cadvisor": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": null, - "deprecated": true, - "oneOf": [ - { - "type": "null" - }, - { - "type": "boolean" - } - ] - }, - "scrapeInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" - } - }, - "type": "object" + "clusterID": { + "type": [ + "string", + "null" + ], + "default": null + } + } + }, + "cAdvisor": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean", + "default": true }, - "gpu": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "scrapeInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" - } - }, - "type": "object" + "port": { + "type": "integer", + "default": 10250, + "minimum": 1, + "maximum": 65535 }, - "kubeStateMetrics": { + "tls": { + "type": "object", "additionalProperties": false, "properties": { - "enabled": { - "type": "boolean" - }, - "scrapeInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" + "insecureSkipVerify": { + "type": "boolean", + "default": true } - }, - "type": "object" + } }, - "prometheus": { + "directNodeAccess": { + "type": "object", "additionalProperties": false, "properties": { "enabled": { - "type": "boolean" - }, - "scrapeInterval": { - "$ref": "#/$defs/com.cloudzero.agent.duration" + "type": "boolean", + "default": false } - }, - "type": "object" + } } - }, - "type": "object" + } } - }, + } + }, + "kubeStateMetrics": { "type": "object" }, "rbac": { + "type": "object", "additionalProperties": false, "properties": { "create": { - "default": true, - "type": "boolean" - } - }, - "type": "object" - }, - "region": { - "oneOf": [ - { - "minLength": 4, - "pattern": "^(([a-z]+-[a-z]+-?[0-9]+)|([a-z]{4,}[0-9]*))$", - "type": "string" - }, - { - "type": "null" + "type": "boolean", + "default": true } - ] + } }, "secretAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations", "additionalProperties": true, + "deprecated": true, "default": {}, - "deprecated": true + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, "server": { + "type": "object", "additionalProperties": false, "properties": { - "affinity": { - "$ref": "#/$defs/io.k8s.api.core.v1.Affinity" + "name": { + "type": "string", + "default": "server" }, - "agentMode": { - "deprecated": true, - "type": ["boolean", "null"] + "fullnameOverride": { + "type": [ + "string", + "null" + ] }, - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + "clusterRoleNameOverride": { + "type": [ + "string", + "null" + ] }, - "args": { - "default": [ - "--config.file=/etc/config/prometheus/configmaps/prometheus.yml", - "--web.enable-lifecycle", - "--web.console.libraries=/etc/prometheus/console_libraries", - "--web.console.templates=/etc/prometheus/consoles" - ], - "items": { - "type": "string" - }, - "type": "array" + "useExistingClusterRoleName": { + "type": [ + "string", + "null" + ] }, "automountServiceAccountToken": { "deprecated": true, - "type": ["boolean", "null"] - }, - "clusterRoleNameOverride": { - "type": ["string", "null"] - }, - "deploymentAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "emptyDir": { - "additionalProperties": false, - "properties": { - "sizeLimit": { - "$ref": "#/$defs/io.k8s.api.core.v1.EmptyDirVolumeSource/properties/sizeLimit", - "default": "8Gi" - } - }, - "type": "object" + "type": [ + "boolean", + "null" + ] }, "env": { + "type": "array", "items": { "$ref": "#/$defs/io.k8s.api.core.v1.EnvVar" - }, - "type": "array" + } }, - "fullnameOverride": { - "type": ["string", "null"] + "podLabels": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image", - "deprecated": true + "priorityClassName": { + "type": [ + "string", + "null" + ] }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "failureThreshold": { - "default": 3, - "type": "integer" - }, - "initialDelaySeconds": { - "default": 30, - "type": "integer" - }, - "periodSeconds": { - "default": 15, - "type": "integer" - }, - "successThreshold": { - "default": 1, - "type": "integer" - }, - "timeoutSeconds": { - "default": 10, - "type": "integer" - } - }, - "type": "object" + "image": { + "deprecated": true, + "$ref": "#/$defs/com.cloudzero.agent.image" }, - "livenessProbeFailureThreshold": { - "type": ["integer", "null"] + "nodeSelector": { + "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" }, - "livenessProbeInitialDelay": { - "type": ["integer", "null"] + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" }, - "livenessProbePeriodSeconds": { - "type": ["integer", "null"] + "deploymentAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "livenessProbeSuccessThreshold": { - "type": ["integer", "null"] + "podAnnotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "livenessProbeTimeout": { - "type": ["integer", "null"] + "agentMode": { + "deprecated": true, + "type": [ + "boolean", + "null" + ] }, "logging": { + "type": "object", "additionalProperties": false, "properties": { "level": { - "default": "info", - "enum": ["debug", "info", "warn", "error", null], - "type": ["string", "null"] + "type": [ + "string", + "null" + ], + "enum": [ + "debug", + "info", + "warn", + "error", + null + ], + "default": "info" } - }, - "type": "object" - }, - "name": { - "default": "server", - "type": "string" + } }, - "nodeSelector": { - "$ref": "#/$defs/io.k8s.api.core.v1.PodSpec/properties/nodeSelector" + "args": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "--config.file=/etc/config/prometheus/configmaps/prometheus.yml", + "--web.enable-lifecycle", + "--web.console.libraries=/etc/prometheus/console_libraries", + "--web.console.templates=/etc/prometheus/consoles" + ] }, "persistentVolume": { + "type": "object", "additionalProperties": false, "properties": { + "existingClaim": { + "type": "string", + "default": "" + }, + "enabled": { + "type": "boolean", + "default": false + }, + "mountPath": { + "type": "string", + "default": "/data" + }, + "subPath": { + "type": "string", + "default": "" + }, + "storageClass": { + "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimSpec/properties/storageClassName" + }, + "size": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, "accessModes": { "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimSpec/properties/accessModes" }, "annotations": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, - "enabled": { - "default": false, - "type": "boolean" - }, - "existingClaim": { - "default": "", - "type": "string" - }, "labels": { "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" }, - "mountPath": { - "default": "/data", - "type": "string" - }, "selector": { "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimSpec/properties/selector" }, - "size": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "storageClass": { - "$ref": "#/$defs/io.k8s.api.core.v1.PersistentVolumeClaimSpec/properties/storageClassName" - }, - "subPath": { - "default": "", - "type": "string" - }, "volumeBindingMode": { - "type": ["string", "null"] + "type": [ + "string", + "null" + ] }, "volumeName": { - "type": ["string", "null"] + "type": [ + "string", + "null" + ] } - }, - "type": "object" + } }, - "podAnnotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + "emptyDir": { + "type": "object", + "additionalProperties": false, + "properties": { + "sizeLimit": { + "$ref": "#/$defs/io.k8s.api.core.v1.EmptyDirVolumeSource/properties/sizeLimit", + "default": "8Gi" + } + } + }, + "affinity": { + "$ref": "#/$defs/io.k8s.api.core.v1.Affinity" }, - "podLabels": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels" + "tolerations": { + "$ref": "#/$defs/com.cloudzero.agent.tolerations" }, - "priorityClassName": { - "type": ["string", "null"] + "topologySpreadConstraints": { + "type": "array", + "items": { + "$ref": "#/$defs/io.k8s.api.core.v1.TopologySpreadConstraint" + } + }, + "terminationGracePeriodSeconds": { + "type": "integer", + "default": 300 }, "readinessProbe": { + "type": "object", "additionalProperties": false, "properties": { + "initialDelaySeconds": { + "type": "integer", + "default": 30 + }, + "periodSeconds": { + "type": "integer", + "default": 5 + }, + "timeoutSeconds": { + "type": "integer", + "default": 4 + }, "failureThreshold": { - "default": 3, - "type": "integer" + "type": "integer", + "default": 3 }, + "successThreshold": { + "type": "integer", + "default": 1 + } + } + }, + "livenessProbe": { + "type": "object", + "additionalProperties": false, + "properties": { "initialDelaySeconds": { - "default": 30, - "type": "integer" + "type": "integer", + "default": 30 }, "periodSeconds": { - "default": 5, - "type": "integer" + "type": "integer", + "default": 15 + }, + "timeoutSeconds": { + "type": "integer", + "default": 10 + }, + "failureThreshold": { + "type": "integer", + "default": 3 }, "successThreshold": { - "default": 1, - "type": "integer" + "type": "integer", + "default": 1 + } + } + }, + "serviceAccount": { + "deprecated": true, + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": [ + "string", + "null" + ] }, - "timeoutSeconds": { - "default": 4, - "type": "integer" + "automountServiceAccountToken": { + "type": [ + "boolean", + "null" + ] } - }, - "type": "object" + } }, - "readinessProbeFailureThreshold": { - "type": ["integer", "null"] + "annotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" }, "readinessProbeInitialDelay": { - "type": ["integer", "null"] + "type": [ + "integer", + "null" + ] }, "readinessProbePeriodSeconds": { - "type": ["integer", "null"] - }, - "readinessProbeSuccessThreshold": { - "type": ["integer", "null"] + "type": [ + "integer", + "null" + ] }, "readinessProbeTimeout": { - "type": ["integer", "null"] + "type": [ + "integer", + "null" + ] }, - "resources": { - "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + "readinessProbeFailureThreshold": { + "type": [ + "integer", + "null" + ] }, - "serviceAccount": { - "additionalProperties": false, - "deprecated": true, - "properties": { - "automountServiceAccountToken": { - "type": ["boolean", "null"] - }, - "name": { - "type": ["string", "null"] - } - }, - "type": "object" + "readinessProbeSuccessThreshold": { + "type": [ + "integer", + "null" + ] }, - "terminationGracePeriodSeconds": { - "default": 300, - "type": "integer" + "livenessProbeInitialDelay": { + "type": [ + "integer", + "null" + ] }, - "tolerations": { - "$ref": "#/$defs/com.cloudzero.agent.tolerations" + "livenessProbePeriodSeconds": { + "type": [ + "integer", + "null" + ] }, - "topologySpreadConstraints": { - "items": { - "$ref": "#/$defs/io.k8s.api.core.v1.TopologySpreadConstraint" - }, - "type": "array" + "livenessProbeTimeout": { + "type": [ + "integer", + "null" + ] }, - "useExistingClusterRoleName": { - "type": ["string", "null"] + "livenessProbeFailureThreshold": { + "type": [ + "integer", + "null" + ] + }, + "livenessProbeSuccessThreshold": { + "type": [ + "integer", + "null" + ] } - }, - "type": "object" + } }, "serverConfig": { + "type": "object", "additionalProperties": false, "properties": { - "containerSecretFileName": { - "default": "value", - "type": "string" - }, "containerSecretFilePath": { - "default": "/etc/config/secrets/", - "type": "string" + "type": "string", + "default": "/etc/config/secrets/" + }, + "containerSecretFileName": { + "type": "string", + "default": "value" } - }, - "type": "object" + } }, "serviceAccount": { + "type": "object", "additionalProperties": false, "properties": { - "annotations": { - "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" - }, - "automountServiceAccountToken": { - "type": ["boolean", "null"] - }, "create": { - "default": true, - "type": "boolean" + "type": "boolean", + "default": true }, "name": { - "default": "", - "type": "string" + "type": "string", + "default": "" + }, + "automountServiceAccountToken": { + "type": [ + "boolean", + "null" + ] + }, + "annotations": { + "$ref": "#/$defs/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" } - }, - "type": "object" + } }, "validator": { + "type": "object", "additionalProperties": false, "properties": { - "image": { - "$ref": "#/$defs/com.cloudzero.agent.image" + "serviceEndpoints": { + "type": "object", + "additionalProperties": false, + "properties": { + "kubeStateMetrics": { + "type": [ + "string", + "null" + ], + "additionalProperties": true + } + } }, "name": { - "default": "env-validator", - "type": "string" + "type": "string", + "default": "env-validator" + }, + "image": { + "$ref": "#/$defs/com.cloudzero.agent.image" }, "resources": { "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" - }, - "serviceEndpoints": { - "additionalProperties": false, - "properties": { - "kubeStateMetrics": { - "additionalProperties": true, - "type": ["string", "null"] + } + } + }, + "jobConfigID": { + "type": [ + "string", + "null" + ] + }, + "helmless": { + "type": "object", + "additionalProperties": false, + "properties": { + "resources": { + "$ref": "#/$defs/io.k8s.api.core.v1.ResourceRequirements" + } + } + }, + "global": { + "type": "object", + "additionalProperties": true + } + }, + "allOf": [ + { + "not": { + "allOf": [ + { + "required": [ + "apiKey" + ], + "properties": { + "apiKey": { + "type": "string" + } } }, - "type": "object" + { + "required": [ + "existingSecretName" + ], + "properties": { + "existingSecretName": { + "type": "string" + } + } + } + ] + } + }, + { + "if": { + "allOf": [ + { + "properties": { + "defaults": { + "type": "object", + "required": [ + "federation" + ], + "properties": { + "federation": { + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "const": true + } + } + } + } + } + } + } + ] + }, + "then": { + "properties": { + "components": { + "type": "object", + "properties": { + "agent": { + "type": "object", + "properties": { + "mode": { + "oneOf": [ + { + "type": "null" + }, + { + "const": "federated" + } + ] + } + } + } + } + } + } + } + }, + { + "if": { + "properties": { + "components": { + "type": "object", + "properties": { + "agent": { + "type": "object", + "properties": { + "mode": { + "const": "clustered" + } + } + } + } + } } }, - "type": "object" + "then": { + "properties": { + "server": { + "type": "object", + "properties": { + "persistentVolume": { + "type": "object", + "properties": { + "enabled": { + "const": false + } + } + } + } + } + } + } } - }, - "required": ["host"], - "type": "object" + ] } diff --git a/helm/values.schema.yaml b/helm/values.schema.yaml index 4e1ee8b4..a45128b2 100644 --- a/helm/values.schema.yaml +++ b/helm/values.schema.yaml @@ -302,23 +302,7 @@ additionalProperties: false required: - host -# Enforce that exactly one of apiKey or existingSecretName must be set -# anyOf ensures at least one is required, oneOf ensures only one has a non-null value -anyOf: - - required: [apiKey] - - required: [existingSecretName] -oneOf: - - properties: - apiKey: - type: string - pattern: "^[a-zA-Z0-9-_.~!*'();]+$" - existingSecretName: - type: "null" - - properties: - apiKey: - type: "null" - existingSecretName: - type: string +# Root-level cross-field validations live in allOf below. properties: cloudAccountId: @@ -380,6 +364,7 @@ properties: type: - string - "null" + pattern: "^[a-zA-Z0-9-_.~!*'();]+$" description: | The CloudZero API key. host: @@ -609,6 +594,22 @@ properties: For details, see the Kubernetes documentation on security contexts: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ $ref: "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + extraVolumeMounts: + description: | + Additional Kubernetes VolumeMount definitions to add to agent workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.VolumeMount" + - type: "null" + extraVolumes: + description: | + Additional Kubernetes Volume definitions to add to agent workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.Volume" + - type: "null" labels: description: | Labels to be added to agent resources. @@ -929,6 +930,22 @@ properties: For details, see the Kubernetes documentation on security contexts: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ $ref: "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + extraVolumeMounts: + description: | + Additional Kubernetes VolumeMount definitions to add to config loader workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.VolumeMount" + - type: "null" + extraVolumes: + description: | + Additional Kubernetes Volume definitions to add to config loader workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.Volume" + - type: "null" annotations: description: | Annotations to add to the config loader job. @@ -1159,6 +1176,22 @@ properties: For details, see the Kubernetes documentation on security contexts: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ $ref: "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + extraVolumeMounts: + description: | + Additional Kubernetes VolumeMount definitions to add to aggregator workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.VolumeMount" + - type: "null" + extraVolumes: + description: | + Additional Kubernetes Volume definitions to add to aggregator workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.Volume" + - type: "null" kubectl: description: | @@ -1251,6 +1284,22 @@ properties: For details, see the Kubernetes documentation on security contexts: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ $ref: "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + extraVolumeMounts: + description: | + Additional Kubernetes VolumeMount definitions to add to webhook server workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.VolumeMount" + - type: "null" + extraVolumes: + description: | + Additional Kubernetes Volume definitions to add to webhook server workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.Volume" + - type: "null" labels: description: | Labels to be added to webhook server resources. @@ -1328,6 +1377,22 @@ properties: For details, see the Kubernetes documentation on security contexts: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ $ref: "#/$defs/io.k8s.api.core.v1.PodSecurityContext" + extraVolumeMounts: + description: | + Additional Kubernetes VolumeMount definitions to add to backfill workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.VolumeMount" + - type: "null" + extraVolumes: + description: | + Additional Kubernetes Volume definitions to add to backfill workloads. + oneOf: + - type: array + items: + $ref: "#/$defs/io.k8s.api.core.v1.Volume" + - type: "null" monitoring: description: | @@ -3065,6 +3130,23 @@ properties: # Root-level conditional validations that span multiple properties allOf: + # Conditional: API key source validation + # + # Prevent setting both apiKey and existingSecretName at the same time. + # Both can be null to support external secret mount patterns. + - not: + allOf: + - required: + - apiKey + properties: + apiKey: + type: string + - required: + - existingSecretName + properties: + existingSecretName: + type: string + # Conditional: Federation mode constraint # # If defaults.federation.enabled is true, then components.agent.mode must be diff --git a/helm/values.yaml b/helm/values.yaml index 47e1ad8b..45cb8e5b 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -352,6 +352,10 @@ components: # For details, see the Kubernetes documentation on security contexts: # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ securityContext: {} + # Additional Kubernetes VolumeMount entries to add to agent workloads. + extraVolumeMounts: [] + # Additional Kubernetes Volume entries to add to agent workloads. + extraVolumes: [] # Resource requirements and limits for the agent component. # # For details, see the Kubernetes documentation on resource management: @@ -566,6 +570,10 @@ components: # For details, see the Kubernetes documentation on security contexts: # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ securityContext: {} + # Additional Kubernetes VolumeMount entries to add to the config loader job. + extraVolumeMounts: [] + # Additional Kubernetes Volume entries to add to the config loader job. + extraVolumes: [] # Annotations to add to the config loader job. # # These annotations are merged with defaults.annotations and apply to @@ -716,6 +724,10 @@ components: # For details, see the Kubernetes documentation on security contexts: # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ securityContext: {} + # Additional Kubernetes VolumeMount entries to add to aggregator workloads. + extraVolumeMounts: [] + # Additional Kubernetes Volume entries to add to aggregator workloads. + extraVolumes: [] collector: # Security context for the aggregator collector container. # @@ -788,6 +800,10 @@ components: # For details, see the Kubernetes documentation on security contexts: # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ securityContext: {} + # Additional Kubernetes VolumeMount entries to add to webhook server workloads. + extraVolumeMounts: [] + # Additional Kubernetes Volume entries to add to webhook server workloads. + extraVolumes: [] # Resource requirements and limits for the webhook server component. # # For details, see the Kubernetes documentation on resource management: @@ -839,6 +855,10 @@ components: # For details, see the Kubernetes documentation on security contexts: # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ securityContext: {} + # Additional Kubernetes VolumeMount entries to add to backfill job workloads. + extraVolumeMounts: [] + # Additional Kubernetes Volume entries to add to backfill job workloads. + extraVolumes: [] # Prometheus Operator monitoring integration. #