helm-charts/charts/library/common/schemas/serviceMonitor.json
2025-06-11 14:09:46 +00:00

105 lines
3.6 KiB
JSON

{
"instance": {
"allOf": [
{"$ref": "definitions.json#/resourceIdentifier"},
{
"type": "object",
"additionalProperties": false,
"properties": {
"forceRename": {},
"prefix": {},
"suffix": {},
"enabled": {
"description": "Whether this ServiceMonitor is enabled or not.",
"type": "boolean",
"default": true
},
"annotations": {
"$ref": "definitions.json#/annotations"
},
"labels": {
"$ref": "definitions.json#/labels"
},
"endpoints": {
"description": "A list of endpoints allowed as part of this ServiceMonitor.",
"type": "array",
"items": {
"type": "object"
}
},
"selector": {
"description": "Selector to select Endpoints objects.",
"type": "object",
"additionalProperties": false,
"properties": {
"matchLabels": {
"description": "matchLabels is a map of {key,value} pairs. The requirements are ANDed.",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {"type": "string"},
"operator": {"type": "string"},
"values": {
"type": "array",
"items": {"type": "string"}
}
}
}
}
}
},
"service": {
"description": "Which service to monitor. Either 'serviceName' or 'service' must be specified.",
"oneOf": [
{
"description": "A reference to a Service name. Helm templates can be used.",
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
},
"required": ["name"]
},
{
"description": "A reference to a service identifier that is defined within the chart values.",
"type": "object",
"additionalProperties": false,
"properties": {
"identifier": {
"type": "string"
}
},
"required": ["identifier"]
}
]
},
"serviceName": {
"description": "A reference to a Service name to monitor. Helm templates can be used. Deprecated in favor of 'service'.",
"type": "string",
"deprecated": true
},
"targetLabels": {
"description": "TargetLabels transfers labels from the Kubernetes Service onto the created metrics.",
"type": "array"
}
},
"dependencies": {
"selector": {"not": {"required": ["serviceName", "service"]}},
"serviceName": {"not": {"required": ["selector", "service"]}},
"service": {"not": {"required": ["selector", "serviceName"]}}
}
}
]
}
}