From b75edcb021d0d7df9a39e1aaf4ef17568b7fa98f Mon Sep 17 00:00:00 2001 From: NikolaiKuziaevQubership Date: Fri, 24 Jan 2025 17:35:06 +0400 Subject: [PATCH] Refactoring helm for open-telemetry-collector --- .../open-telemetry-collector/Chart.yaml | 0 .../templates/HorizontalPodAutoscaler.yaml | 2 +- .../templates/Ingress.yaml | 0 .../templates/_helpers.tpl | 0 .../templates/deployment.yaml | 12 +- .../templates/metrics_collector_config.yaml | 0 .../templates/service-monitor.yaml | 0 .../templates/service.yaml | 0 .../open-telemetry-collector/values.yaml | 19 +- docs/installation-notes.md | 71 +++--- .../values.schema.json | 220 ------------------ 11 files changed, 62 insertions(+), 262 deletions(-) rename {helm-templates => charts}/open-telemetry-collector/Chart.yaml (100%) rename {helm-templates => charts}/open-telemetry-collector/templates/HorizontalPodAutoscaler.yaml (96%) rename {helm-templates => charts}/open-telemetry-collector/templates/Ingress.yaml (100%) rename {helm-templates => charts}/open-telemetry-collector/templates/_helpers.tpl (100%) rename {helm-templates => charts}/open-telemetry-collector/templates/deployment.yaml (95%) rename {helm-templates => charts}/open-telemetry-collector/templates/metrics_collector_config.yaml (100%) rename {helm-templates => charts}/open-telemetry-collector/templates/service-monitor.yaml (100%) rename {helm-templates => charts}/open-telemetry-collector/templates/service.yaml (100%) rename {helm-templates => charts}/open-telemetry-collector/values.yaml (94%) delete mode 100644 helm-templates/open-telemetry-collector/values.schema.json diff --git a/helm-templates/open-telemetry-collector/Chart.yaml b/charts/open-telemetry-collector/Chart.yaml similarity index 100% rename from helm-templates/open-telemetry-collector/Chart.yaml rename to charts/open-telemetry-collector/Chart.yaml diff --git a/helm-templates/open-telemetry-collector/templates/HorizontalPodAutoscaler.yaml b/charts/open-telemetry-collector/templates/HorizontalPodAutoscaler.yaml similarity index 96% rename from helm-templates/open-telemetry-collector/templates/HorizontalPodAutoscaler.yaml rename to charts/open-telemetry-collector/templates/HorizontalPodAutoscaler.yaml index 37c0ab9..d11c7b6 100644 --- a/helm-templates/open-telemetry-collector/templates/HorizontalPodAutoscaler.yaml +++ b/charts/open-telemetry-collector/templates/HorizontalPodAutoscaler.yaml @@ -29,7 +29,7 @@ spec: name: cpu target: type: Utilization - averageUtilization: {{ int (divf (mulf (default 75 .Values.HPA_AVG_CPU_UTILIZATION_TARGET_PERCENT) (include "to_millicores" .Values.CPU_LIMIT)) (include "to_millicores" .Values.CPU_REQUEST)) }} + averageUtilization: {{ int (divf (mulf (default 75 .Values.HPA_AVG_CPU_UTILIZATION_TARGET_PERCENT) (include "to_millicores" .Values.resources.limits.cpu)) (include "to_millicores" .Values.resources.requests.cpu)) }} behavior: scaleUp: stabilizationWindowSeconds: {{ default 0 .Values.HPA_SCALING_UP_STABILIZATION_WINDOW_SECONDS }} diff --git a/helm-templates/open-telemetry-collector/templates/Ingress.yaml b/charts/open-telemetry-collector/templates/Ingress.yaml similarity index 100% rename from helm-templates/open-telemetry-collector/templates/Ingress.yaml rename to charts/open-telemetry-collector/templates/Ingress.yaml diff --git a/helm-templates/open-telemetry-collector/templates/_helpers.tpl b/charts/open-telemetry-collector/templates/_helpers.tpl similarity index 100% rename from helm-templates/open-telemetry-collector/templates/_helpers.tpl rename to charts/open-telemetry-collector/templates/_helpers.tpl diff --git a/helm-templates/open-telemetry-collector/templates/deployment.yaml b/charts/open-telemetry-collector/templates/deployment.yaml similarity index 95% rename from helm-templates/open-telemetry-collector/templates/deployment.yaml rename to charts/open-telemetry-collector/templates/deployment.yaml index fdd5265..9c4dd17 100644 --- a/helm-templates/open-telemetry-collector/templates/deployment.yaml +++ b/charts/open-telemetry-collector/templates/deployment.yaml @@ -103,7 +103,7 @@ spec: containers: - name: opentelemetry-collector command: ["{{ .Values.entrypoint }}","--config", "/conf/otel.yaml"] - image: '{{ .Values.IMAGE_REPOSITORY }}:{{ .Values.TAG }}' + image: '{{ .Values.image.repository }}:{{ .Values.image.tag }}' ports: - name: jaeger-compact containerPort: 6831 @@ -143,11 +143,11 @@ spec: {{- toYaml .Values.resources | nindent 12 }} {{- else }} limits: - cpu: '{{ .Values.CPU_LIMIT }}' - memory: '{{ .Values.MEMORY_LIMIT }}' + cpu: '{{ .Values.resources.limits.cpu }}' + memory: '{{ .Values.resources.limits.memory }}' requests: - cpu: '{{ .Values.CPU_REQUEST }}' - memory: '{{ .Values.MEMORY_REQUEST }}' + cpu: '{{ .Values.resources.requests.cpu }}' + memory: '{{ .Values.resources.requests.memory }}' {{- end }} volumeMounts: - name: opentelemetry-collector-vol @@ -183,6 +183,7 @@ spec: path: / port: {{ .Values.OTEC_HEALTH_CHECK_PORT }} scheme: HTTP + initialDelaySeconds: 3 timeoutSeconds: 1 periodSeconds: 10 successThreshold: 1 @@ -192,6 +193,7 @@ spec: imagePullPolicy: IfNotPresent securityContext: {{- if eq .Values.PAAS_PLATFORM "KUBERNETES" }} + runAsUser: 10001 runAsGroup: 10001 {{- end }} readOnlyRootFilesystem: true diff --git a/helm-templates/open-telemetry-collector/templates/metrics_collector_config.yaml b/charts/open-telemetry-collector/templates/metrics_collector_config.yaml similarity index 100% rename from helm-templates/open-telemetry-collector/templates/metrics_collector_config.yaml rename to charts/open-telemetry-collector/templates/metrics_collector_config.yaml diff --git a/helm-templates/open-telemetry-collector/templates/service-monitor.yaml b/charts/open-telemetry-collector/templates/service-monitor.yaml similarity index 100% rename from helm-templates/open-telemetry-collector/templates/service-monitor.yaml rename to charts/open-telemetry-collector/templates/service-monitor.yaml diff --git a/helm-templates/open-telemetry-collector/templates/service.yaml b/charts/open-telemetry-collector/templates/service.yaml similarity index 100% rename from helm-templates/open-telemetry-collector/templates/service.yaml rename to charts/open-telemetry-collector/templates/service.yaml diff --git a/helm-templates/open-telemetry-collector/values.yaml b/charts/open-telemetry-collector/values.yaml similarity index 94% rename from helm-templates/open-telemetry-collector/values.yaml rename to charts/open-telemetry-collector/values.yaml index a7ef4bf..e7c7480 100644 --- a/helm-templates/open-telemetry-collector/values.yaml +++ b/charts/open-telemetry-collector/values.yaml @@ -56,7 +56,24 @@ OTEC_LOGTCPEXPORTER_PARAMETERS: # Type: object # Mandatory: no # Default: -resources: '' +resources: + requests: + cpu: 100m + memory: 100Mi + limits: + cpu: 200m + memory: 200Mi + +# The name of type cloud environment +# Type: String +# Possible values: KUBERNETES or OPENSHIFT +# Default: KUBERNETES +# +PAAS_PLATFORM: KUBERNETES + +image: + repository: ghcr.io/netcracker/qubership-open-telemetry-collector + tag: main # Only pods which provide own keys can access the private registry. # Default: [] diff --git a/docs/installation-notes.md b/docs/installation-notes.md index be77225..c69ae77 100644 --- a/docs/installation-notes.md +++ b/docs/installation-notes.md @@ -2,41 +2,42 @@ See below the full list of parameters which defines the Open Telemetry Collector deployment mode and is used during the installation. Mandatory parameters from the list must be specified for Open Telemetry Collector in helm. -| Parameter | Mandatory | Default | Value Example |Description | -|---------------------------|------------|-----------------------------|-----------------------------|---------------------------------------------------------------------------------| -| OTEC_INSTALLATION_MODE | N | SPAN_METRICS_PROCESSOR | `SPAN_METRICS_PROCESSOR` | The type of OOB configuration (SPAN_METRICS_PROCESSOR or SENTRY_ENVELOPES_PROCESSING) | -| SERVICE_NAME | N | open-telemetry-collector | `open-telemetry-collector` | The Kubernetes service name for Open Telemetry Collector. | -| MONITORING_ENABLED | N | false | `false` | Disables and enables the service monitor. | -| resources | N | - | | Set up this object to use custom profiles configuration. | -| imagePullSecrets | N | - | | K8s imagePullSecrets for private registry access. | -| labels | N | - | | The Kubernetes labels setup. | -| entrypoint | N | /otelcol-contrib | /otelcol-contrib | The path to the opentelemetry binary. | -| JAEGER_COLLECTOR_HOST | N | - | jaeger-app-collector.jaeger | The Jaeger hostname or IP. | -| JAEGER_COLLECTOR_
OTLP_PORT | N | 4317 | 4317 | The port for the Jaeger service OpenTelemetry Protocol span reporting API. | -| TRACING_HOST | N | - | jaeger-app-collector.jaeger | Jaeger URL. It is used if JAEGER_COLLECTOR_HOST is not set. | -| GRAYLOG_COLLECTOR_HOST | N | https://graylog-logging.${CLOUD_PUBLIC_HOST} | | The Graylog hostname or IP to which OTeC sends data from traces | -| GRAYLOG_COLLECTOR_PORT | N | 12201 | 12201 | The port for the Graylog service. | -| GRAYLOG_UI_URL | N | https://graylog-logging.${CLOUD_PUBLIC_HOST} | | The Graylog hostname or IP. It is used if GRAYLOG_COLLECTOR_HOST is not set. | -| CONFIG_MAP | N | - | | Config map customization. | -| SERVICE_PORTS | N | - | | Customization for service.ports. | -| SERVICE_MONITOR_PORT_NAME | N | exporter-prom | exporter-prom | Customization for ServiceMonitor port. | -| LATENCY_HISTOGRAM_BUCKETS | N | [2ms, 4ms, 6ms, 8ms, 10ms, 50ms, 100ms, 200ms, 400ms, 800ms, 1s, 1400ms, 2s, 5s, 10s, 15s] | [100ms, 1s, 10s] | The list of durations defining the latency histogram buckets. If it is not set, the default list is used. | -| CLOUD_TOPOLOGIES | N | - | | Array of topology settings for topologySpreadConstraints. Each array item must contain at least 'topologyKey' attribute. Other supported attributes are 'maxSkew' and 'whenUnsatisfiable', which are optional. This parameter has higher priority over CLOUD_TOPOLOGY_KEY. Should not be an empty list. | -| CLOUD_TOPOLOGY_KEY | N | kubernetes.io/hostname | | Defines topologyKey in topologySpreadConstraints. This is a BWC parameter. | -| DEPLOYMENT_STRATEGY_
TYPE | N | | | The Kubernetes rolling update deployment strategy. Possible values are "recreate", "best_effort_controlled_rollout", "ramped_slow_rollout", and "custom_rollout". | -| DEPLOYMENT_STRATEGY_
MAXSURGE | N | 25% | 25% | The parameter sets maxSurge if DEPLOYMENT_STRATEGY_TYPE is "custom_rollout". | -| DEPLOYMENT_STRATEGY_
MAXUNAVAILABLE | N | 25% | 25% | The parameter sets maxUnavailable if DEPLOYMENT_STRATEGY_TYPE is "custom_rollout". | -| LOG_LEVEL | N | info | info | The parameter indicates the OTeC log level. The possible values are "debug", "info", "warn", and "error". | -| OTEC_LOG_FORMAT | N | json | text | The parameter allows to specify log format. It might be convenient to use text format for dev purposes. Json is strongly recommended on prod. | -| OTEC_SENTRY_
ENVELOPES_INGRESS_
ENABLED | N | false | true | The parameter allows to enable the default sentry ingress. | -| OTEC_SENTRY_
ENVELOPES_INGRESS_
ANNOTATIONS | N | | string map in yaml format | The parameter allows to specify the annotations map for the sentry ingress. | -| OTEC_SENTRY_
RECEIVER_PARAMETERS | N | | Object | The parameter allows to customize sentry receiver parameters. | -| OTEC_SENTRY_
EVENT_METRICS_PARAMETERS | N | | Object | The parameter allows to customize setry event metrics parameters. | -| OTEC_SENTRY_
MEASUREMENTS_METRICS_PARAMETERS | N | | Object | The parameter allows to customize setry measurements metrics parameters. | -| OTEC_LOGTCPEXPORTER
_PARAMETERS | N | | Object | The parameter allows to customize logtcpexporter parameters. | -| OTEC_HEALTH_
CHECK_PORT | N | 13133 | 13133 | The parameter allows to customize OTeC health check port wich is used for liveness and readiness probes | -| OTEC_ENABLE_
ARBITRARY_TRACES_
LOGGING | N | false | false | The parameter allows to enable arbitrary traces logging. | -| OTEC_ARBITRARY_
TRACES_LOGGING_
CONFIG | N | | Object | The parameter allows to customize arbitrary traces logging configuration. | +| Parameter | Mandatory | Default | Value Example | Description | +|---------------------------------------------------|-----------|--------------------------------------------------------------------------------------------|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| OTEC_INSTALLATION_MODE | N | SPAN_METRICS_PROCESSOR | `SPAN_METRICS_PROCESSOR` | The type of OOB configuration (SPAN_METRICS_PROCESSOR or SENTRY_ENVELOPES_PROCESSING) | +| SERVICE_NAME | N | open-telemetry-collector | `open-telemetry-collector` | The Kubernetes service name for Open Telemetry Collector. | +| MONITORING_ENABLED | N | false | `false` | Disables and enables the service monitor. | +| resources | N | requests: cpu: 100m memory: 100Mi limits: cpu: 200m memory: 200Mi | | Set up this object to use custom profiles configuration. | +| PAAS_PLATFORM | N | KUBERNETES | 'KUBERNETES' or 'OPENSHIFT' | The name of type cloud environment | +| imagePullSecrets | N | - | | K8s imagePullSecrets for private registry access. | +| labels | N | - | | The Kubernetes labels setup. | +| entrypoint | N | /otelcol-contrib | /otelcol-contrib | The path to the opentelemetry binary. | +| JAEGER_COLLECTOR_HOST | N | - | jaeger-app-collector.jaeger | The Jaeger hostname or IP. | +| JAEGER_COLLECTOR_
OTLP_PORT | N | 4317 | 4317 | The port for the Jaeger service OpenTelemetry Protocol span reporting API. | +| TRACING_HOST | N | - | jaeger-app-collector.jaeger | Jaeger URL. It is used if JAEGER_COLLECTOR_HOST is not set. | +| GRAYLOG_COLLECTOR_HOST | N | https://graylog-logging.${CLOUD_PUBLIC_HOST} | | The Graylog hostname or IP to which OTeC sends data from traces | +| GRAYLOG_COLLECTOR_PORT | N | 12201 | 12201 | The port for the Graylog service. | +| GRAYLOG_UI_URL | N | https://graylog-logging.${CLOUD_PUBLIC_HOST} | | The Graylog hostname or IP. It is used if GRAYLOG_COLLECTOR_HOST is not set. | +| CONFIG_MAP | N | - | | Config map customization. | +| SERVICE_PORTS | N | - | | Customization for service.ports. | +| SERVICE_MONITOR_PORT_NAME | N | exporter-prom | exporter-prom | Customization for ServiceMonitor port. | +| LATENCY_HISTOGRAM_BUCKETS | N | [2ms, 4ms, 6ms, 8ms, 10ms, 50ms, 100ms, 200ms, 400ms, 800ms, 1s, 1400ms, 2s, 5s, 10s, 15s] | [100ms, 1s, 10s] | The list of durations defining the latency histogram buckets. If it is not set, the default list is used. | +| CLOUD_TOPOLOGIES | N | - | | Array of topology settings for topologySpreadConstraints. Each array item must contain at least 'topologyKey' attribute. Other supported attributes are 'maxSkew' and 'whenUnsatisfiable', which are optional. This parameter has higher priority over CLOUD_TOPOLOGY_KEY. Should not be an empty list. | +| CLOUD_TOPOLOGY_KEY | N | kubernetes.io/hostname | | Defines topologyKey in topologySpreadConstraints. This is a BWC parameter. | +| DEPLOYMENT_STRATEGY_
TYPE | N | | | The Kubernetes rolling update deployment strategy. Possible values are "recreate", "best_effort_controlled_rollout", "ramped_slow_rollout", and "custom_rollout". | +| DEPLOYMENT_STRATEGY_
MAXSURGE | N | 25% | 25% | The parameter sets maxSurge if DEPLOYMENT_STRATEGY_TYPE is "custom_rollout". | +| DEPLOYMENT_STRATEGY_
MAXUNAVAILABLE | N | 25% | 25% | The parameter sets maxUnavailable if DEPLOYMENT_STRATEGY_TYPE is "custom_rollout". | +| LOG_LEVEL | N | info | info | The parameter indicates the OTeC log level. The possible values are "debug", "info", "warn", and "error". | +| OTEC_LOG_FORMAT | N | json | text | The parameter allows to specify log format. It might be convenient to use text format for dev purposes. Json is strongly recommended on prod. | +| OTEC_SENTRY_
ENVELOPES_INGRESS_
ENABLED | N | false | true | The parameter allows to enable the default sentry ingress. | +| OTEC_SENTRY_
ENVELOPES_INGRESS_
ANNOTATIONS | N | | string map in yaml format | The parameter allows to specify the annotations map for the sentry ingress. | +| OTEC_SENTRY_
RECEIVER_PARAMETERS | N | | Object | The parameter allows to customize sentry receiver parameters. | +| OTEC_SENTRY_
EVENT_METRICS_PARAMETERS | N | | Object | The parameter allows to customize setry event metrics parameters. | +| OTEC_SENTRY_
MEASUREMENTS_METRICS_PARAMETERS | N | | Object | The parameter allows to customize setry measurements metrics parameters. | +| OTEC_LOGTCPEXPORTER
_PARAMETERS | N | | Object | The parameter allows to customize logtcpexporter parameters. | +| OTEC_HEALTH_
CHECK_PORT | N | 13133 | 13133 | The parameter allows to customize OTeC health check port wich is used for liveness and readiness probes | +| OTEC_ENABLE_
ARBITRARY_TRACES_
LOGGING | N | false | false | The parameter allows to enable arbitrary traces logging. | +| OTEC_ARBITRARY_
TRACES_LOGGING_
CONFIG | N | | Object | The parameter allows to customize arbitrary traces logging configuration. | **Note:** Open Telemetry Collector preprocesses traces before they come to the Jaeger storage. For proper work, a trace generating application must be configured to send the traces not to Jaeger directly, but to the Open Telemtry Collector endpoint. Open Telemetry Collector receives the traces, generates the metrics on their basis, then resends the traces to Jaeger. The generated Prometheus metrics are later available for pulling via the service monitor. Jaeger endpoint configuration is the essential part of the OTeC configuration in helm. Note, that if the parameter JAEGER_COLLECTOR_HOST is not empty, the traces are sent to JAEGER_COLLECTOR_HOST:JAEGER_COLLECTOR_PORT URL. If the helm parameter JAEGER_COLLECTOR_HOST is empty, URL is taken from the helm parameter TRACING_HOST. If the helm parameters TRACING_HOST and JAEGER_COLLECTOR_HOST are both empty, then the traces are sent to the default URL jaeger-app-collector.jaeger:JAEGER_COLLECTOR_PORT. The default value for JAEGER_COLLECTOR_PORT is 14250. \ No newline at end of file diff --git a/helm-templates/open-telemetry-collector/values.schema.json b/helm-templates/open-telemetry-collector/values.schema.json deleted file mode 100644 index 2a21d63..0000000 --- a/helm-templates/open-telemetry-collector/values.schema.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema", - "type": "object", - "title": "The open-telemetry-collector schema prototype", - "description": "The JSON schema prototype for open-telemetry-collector", - "default": {}, - "examples": [ - ], - "definitions": { - "integerOrString": { - "anyOf": [ - { "type": "integer" }, - { "type": "string" } - ] - } - }, - "properties": { - "HPA_AVG_CPU_UTILIZATION_TARGET_PERCENT": { - "$id": "#/properties/HPA_AVG_CPU_UTILIZATION_TARGET_PERCENT", - "description": "Target average CPU utilization for horizontal pod autoscaling", - "envSpecific": true, - "examples": [ - 75 - ], - "internal": true, - "title": "The HPA_AVG_CPU_UTILIZATION_TARGET_PERCENT scheme", - "type": "integer" - }, - "HPA_ENABLED": { - "$id": "#/properties/HPA_ENABLED", - "description": "Defines whether horizontal autoscaling enabled for microservice", - "envSpecific": true, - "internal": true, - "title": "The HPA_ENABLED scheme", - "type": "boolean" - }, - "HPA_MAX_REPLICAS": { - "$id": "#/properties/HPA_MAX_REPLICAS", - "description": "Defines the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that HPA_MIN_REPLICAS.", - "envSpecific": true, - "internal": true, - "title": "The HPA_MAX_REPLICAS scheme", - "type": "integer" - }, - "HPA_MIN_REPLICAS": { - "$id": "#/properties/HPA_MIN_REPLICAS", - "description": "Defines the lower limit for the number of replicas to which the autoscaler can scale down", - "envSpecific": true, - "internal": true, - "title": "The HPA_MIN_REPLICAS scheme", - "type": "integer" - }, - "HPA_SCALING_DOWN_PERCENT_PERIOD_SECONDS": { - "$id": "#/properties/HPA_SCALING_DOWN_PERCENT_PERIOD_SECONDS", - "description": "Defines behavior.scaleDown.policies[].periodSeconds property in HPA resource for Percent type", - "envSpecific": true, - "examples": [ - 60 - ], - "internal": true, - "title": "The HPA_SCALING_DOWN_PERCENT_PERIOD_SECONDS scheme", - "type": "integer" - }, - "HPA_SCALING_DOWN_PERCENT_VALUE": { - "$id": "#/properties/HPA_SCALING_DOWN_PERCENT_VALUE", - "description": "Defines behavior.scaleDown.policies[].value property in HPA resource for Percent type", - "envSpecific": true, - "examples": [ - 100 - ], - "internal": true, - "title": "The HPA_SCALING_DOWN_PERCENT_VALUE scheme", - "type": "integer" - }, - "HPA_SCALING_DOWN_PODS_PERIOD_SECONDS": { - "$id": "#/properties/HPA_SCALING_DOWN_PODS_PERIOD_SECONDS", - "description": "Defines behavior.scaleDown.policies[].periodSeconds property in HPA resource for Pods type", - "envSpecific": true, - "examples": [ - 60 - ], - "internal": true, - "title": "The HPA_SCALING_DOWN_PODS_PERIOD_SECONDS scheme", - "type": "integer" - }, - "HPA_SCALING_DOWN_PODS_VALUE": { - "$id": "#/properties/HPA_SCALING_DOWN_PODS_VALUE", - "description": "Defines behavior.scaleDown.policies[].value property in HPA resource for Pods type", - "envSpecific": true, - "examples": [ - 1 - ], - "internal": true, - "title": "The HPA_SCALING_DOWN_PODS_VALUE scheme", - "type": "integer" - }, - "HPA_SCALING_DOWN_SELECT_POLICY": { - "$id": "#/properties/HPA_SCALING_DOWN_SELECT_POLICY", - "description": "Defines behavior.scaleDown.selectPolicy property in HPA resource. Allowed values are: Min, Max, Disabled", - "enum": [ - "Min", - "Max", - "Disabled" - ], - "envSpecific": true, - "examples": [ - "Max" - ], - "internal": true, - "title": "The HPA_SCALING_DOWN_SELECT_POLICY scheme", - "type": "string" - }, - "HPA_SCALING_DOWN_STABILIZATION_WINDOW_SECONDS": { - "$id": "#/properties/HPA_SCALING_DOWN_STABILIZATION_WINDOW_SECONDS", - "description": "Defines behavior.scaleDown.stabilizationWindowSeconds property in HPA resource", - "envSpecific": true, - "examples": [ - 300 - ], - "internal": true, - "title": "The HPA_SCALING_DOWN_STABILIZATION_WINDOW_SECONDS scheme", - "type": "integer" - }, - "HPA_SCALING_UP_PERCENT_PERIOD_SECONDS": { - "$id": "#/properties/HPA_SCALING_UP_PERCENT_PERIOD_SECONDS", - "description": "Defines behavior.scaleUp.policies[].periodSeconds property in HPA resource for Percent type", - "envSpecific": true, - "examples": [ - 60 - ], - "internal": true, - "title": "The HPA_SCALING_UP_PERCENT_PERIOD_SECONDS scheme", - "type": "integer" - }, - "HPA_SCALING_UP_PERCENT_VALUE": { - "$id": "#/properties/HPA_SCALING_UP_PERCENT_VALUE", - "description": "Defines behavior.scaleUp.policies[].value property in HPA resource for Percent type", - "envSpecific": true, - "examples": [ - 100 - ], - "internal": true, - "title": "The HPA_SCALING_UP_PERCENT_VALUE scheme", - "type": "integer" - }, - "HPA_SCALING_UP_PODS_PERIOD_SECONDS": { - "$id": "#/properties/HPA_SCALING_UP_PODS_PERIOD_SECONDS", - "description": "Defines behavior.scaleUp.policies[].periodSeconds property in HPA resource for Pods type", - "envSpecific": true, - "examples": [ - 60 - ], - "internal": true, - "title": "The HPA_SCALING_UP_PODS_PERIOD_SECONDS scheme", - "type": "integer" - }, - "HPA_SCALING_UP_PODS_VALUE": { - "$id": "#/properties/HPA_SCALING_UP_PODS_VALUE", - "description": "Defines behavior.scaleUp.policies[].value property in HPA resource for Pods type", - "envSpecific": true, - "examples": [ - 1 - ], - "internal": true, - "title": "The HPA_SCALING_UP_PODS_VALUE scheme", - "type": "integer" - }, - "HPA_SCALING_UP_SELECT_POLICY": { - "$id": "#/properties/HPA_SCALING_UP_SELECT_POLICY", - "description": "Defines behavior.scaleUp.selectPolicy property in HPA resource. Allowed values are: Min, Max, Disabled", - "enum": [ - "Min", - "Max", - "Disabled" - ], - "envSpecific": true, - "examples": [ - "Max" - ], - "internal": true, - "title": "The HPA_SCALING_UP_SELECT_POLICY scheme", - "type": "string" - }, - "HPA_SCALING_UP_STABILIZATION_WINDOW_SECONDS": { - "$id": "#/properties/HPA_SCALING_UP_STABILIZATION_WINDOW_SECONDS", - "description": "Defines behavior.scaleUp.stabilizationWindowSeconds property in HPA resource", - "envSpecific": true, - "examples": [ - 60 - ], - "internal": true, - "title": "The HPA_SCALING_UP_STABILIZATION_WINDOW_SECONDS scheme", - "type": "integer" - }, - "CLOUD_TOPOLOGIES": - { - "$id": "#/properties/CLOUD_TOPOLOGIES", - "description": "Array of topologies settings for topologySpreadConstraints. Each array item must contain at least 'topologyKey' attribute. Other supported attributes are 'maxSkew' and 'whenUnsatisfiable' - optional.", - "examples": - [ - "- topologyKey: kubernetes.io/hostname" - ], - "title": "The CLOUD_TOPOLOGIES schema", - "type": "array" - }, - "CLOUD_TOPOLOGY_KEY": - { - "$id": "#/properties/CLOUD_TOPOLOGY_KEY", - "default": "kubernetes.io/hostname", - "description": "Defines topologyKey in topologySpreadConstraints", - "examples": - [ - "kubernetes.io/hostname" - ], - "title": "The CLOUD_TOPOLOGY_KEY schema", - "type": "string" - } - }, - "additionalProperties": true -}