{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "http://example.com/example.json", "title": "HPE Storage Array Exporter for Prometheus Helm Chart JSON Schema", "type": "object", "default": { "acceptEula": false, "image": { "registry": "quay.io", "pullPolicy": "IfNotPresent" }, "logLevel": "info", "service": { "type": "ClusterIP", "port": "9090" } }, "required": [ "acceptEula", "arraySecret", "image", "logLevel", "metrics", "service" ], "properties": { "acceptEula": { "$id": "#/properties/acceptEula", "title": "Accept the HPE End User License Agreement", "description": "Confirm your acceptance of the HPE End User License Agreement at https://www.hpe.com/us/en/software/licensing.html by setting this value to true.", "type": "boolean", "default": false }, "arraySecret": { "$id": "#/properties/arraySecret", "title": "Storage array access Secret", "description": "The name of a Secret in the same namespace as the Helm chart installation providing storage array access information: \"address\" (or \"backend\"), \"username\", and \"password\".", "type": "string", "pattern": "[a-z0-9]([-a-z0-9]*[a-z0-9])?", "minLength": 1, "maxLength": 63 }, "image": { "$id": "#/properties/image", "title": "Container image configuration", "type": "object", "default": { "registry": "quay.io", "pullPolicy": "IfNotPresent" }, "required": [ "registry", "pullPolicy" ], "properties": { "registry": { "$id": "#/properties/image/properties/registry", "title": "Container image registry", "description": "The registry from which to pull container images.", "type": "string", "default": "quay.io" }, "pullPolicy": { "$id": "#/properties/image/properties/pullPolicy", "title": "Container image pull policy", "type": "string", "default": "IfNotPresent", "enum": [ "Always", "IfNotPresent", "Never" ] } }, "additionalProperties": false }, "logLevel": { "$id": "#/properties/logLevel", "title": "Logging level", "description": "Minimum severity of messages to output.", "type": "string", "default": "info", "enum": [ "info", "debug", "trace", "warn", "error" ] }, "metrics": { "$id": "#/properties/metrics", "title": "Metrics customization", "description": "Customization of the metrics provided.", "type": "object", "default": { "disableIntrospection": false }, "required": [ "disableIntrospection" ], "properties": { "disableIntrospection": { "$id": "#/properties/metrics/properties/disableIntrospection", "title": "Disable introspection metrics", "description": "Exclude metrics about the metrics provider itself, with prefixes such as \"promhttp\", \"process\", and \"go\".", "type": "boolean", "default": false } }, "additionalProperties": false }, "service": { "$id": "#/properties/service", "title": "Service settings", "description": "Settings for the Service providing access to storage array metrics.", "type": "object", "default": { "type": "ClusterIP", "port": "9090" }, "required": [ "type", "port" ], "properties": { "type": { "$id": "#/properties/service/properties/type", "title": "Service type", "description": "The type of Service to create, ClusterIP for access solely from within the cluster or NodePort to provide access from outside the cluster.", "type": "string", "default": "ClusterIP", "enum": [ "ClusterIP", "NodePort" ] }, "port": { "$id": "#/properties/service/properties/port", "title": "Service port", "description": "The TCP port at which to expose access to storage array metrics within the cluster.", "type": "integer", "default": 9090, "minimum": 0, "maximum": 65535 }, "nodePort": { "$id": "#/properties/service/properties/nodePort", "title": "Node port", "description": "The TCP port at which to expose access to storage array metrics externally at each cluster node, if the Service type is NodePort and automatic assignment is not desired.", "type": "integer", "minimum": 0, "maximum": 65535 }, "labels": { "$id": "#/properties/service/properties/labels", "title": "Custom labels", "description": "Labels to add to the Service, for example to include target labels in a ServiceMonitor scrape configuration.", "type": "object", "additionalProperties": true }, "annotations": { "$id": "#/properties/service/properties/annotations", "title": "Custom annotations", "description": "Annotations to add to the Service, for example to configure it as a scrape target when using the Prometheus Helm chart's default configuration.", "type": "object", "additionalProperties": true } }, "additionalProperties": false }, "serviceMonitor": { "$id": "#/properties/serviceMonitor", "title": "ServiceMonitor settings", "description": "Settings for the ServiceMonitor scraped by the Prometheus Operator.", "type": "object", "default": { "enable": false, "targetLabels": [] }, "properties": { "enable": { "$id": "#/properties/serviceMonitor/properties/enable", "title": "Enable ServiceMonitor for Array Exporter", "description": "description", "type": "boolean", "additionalProperties": true }, "targetLabels": { "$id": "#/properties/serviceMonitor/properties/targetLabels", "title": "Service target labels", "description": "Labels from the Service to add to the scraped metric labels.", "type": "array", "additionalProperties": true } }, "additionalProperties": false }, "global": {} }, "additionalProperties": false }