449 lines
12 KiB
JSON
449 lines
12 KiB
JSON
|
{
|
||
|
"$schema": "https://json-schema.org/draft-07/schema#",
|
||
|
"title": "Values",
|
||
|
"type": "object",
|
||
|
"definitions": {
|
||
|
"prometheusAlert": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"labels": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": { "type": "string" }
|
||
|
}
|
||
|
},
|
||
|
"required": [ "enabled" ]
|
||
|
},
|
||
|
"probe": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"failureThreshold": {
|
||
|
"type": "integer"
|
||
|
},
|
||
|
"initialDelaySeconds": {
|
||
|
"type": "integer"
|
||
|
},
|
||
|
"periodSeconds": {
|
||
|
"type": "integer"
|
||
|
},
|
||
|
"successThreshold": {
|
||
|
"type": "integer"
|
||
|
},
|
||
|
"timeoutSeconds": {
|
||
|
"type": "integer"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"failureThreshold",
|
||
|
"initialDelaySeconds",
|
||
|
"periodSeconds",
|
||
|
"successThreshold",
|
||
|
"timeoutSeconds"
|
||
|
]
|
||
|
},
|
||
|
"component": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"logLevel": {
|
||
|
"type": "string",
|
||
|
"enum": [ "all", "debug", "info", "warn", "error", "none" ]
|
||
|
},
|
||
|
"image": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"repository": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"tag": {
|
||
|
"anyOf": [
|
||
|
{ "type": "string" },
|
||
|
{ "type": "null" }
|
||
|
]
|
||
|
},
|
||
|
"pullPolicy": {
|
||
|
"anyOf": [
|
||
|
{
|
||
|
"type": "null"
|
||
|
},
|
||
|
{
|
||
|
"type": "string",
|
||
|
"enum": [ "Always", "IfNotPresent", "Never" ]
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"serviceAccount": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"create": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"annotations": {
|
||
|
"type": "object"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"resources": {
|
||
|
"type": "object"
|
||
|
},
|
||
|
"nodeSelector": {
|
||
|
"type": "object"
|
||
|
},
|
||
|
"tolerations": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object"
|
||
|
}
|
||
|
},
|
||
|
"priorityClassName": {
|
||
|
"type":"string"
|
||
|
},
|
||
|
"runtimeClassName": {
|
||
|
"type":"string"
|
||
|
},
|
||
|
"affinity": {
|
||
|
"type": "object"
|
||
|
},
|
||
|
"podAnnotations": {
|
||
|
"type": "object"
|
||
|
},
|
||
|
"livenessProbe": {
|
||
|
"$ref": "#/definitions/probe"
|
||
|
},
|
||
|
"readinessProbe": {
|
||
|
"$ref": "#/definitions/probe"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"image",
|
||
|
"serviceAccount"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"properties": {
|
||
|
"imagePullSecrets": {
|
||
|
"description": "Secrets used for pulling images",
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [ "name" ],
|
||
|
"additionalProperties": false
|
||
|
}
|
||
|
},
|
||
|
"nameOverride": {
|
||
|
"description": "Override chart name",
|
||
|
"type": "string"
|
||
|
},
|
||
|
"fullNameOverride": {
|
||
|
"description": "Override fully qualified app name",
|
||
|
"type": "string"
|
||
|
},
|
||
|
"configInLine": {
|
||
|
"description": "MetalLB configuration",
|
||
|
"type": "object"
|
||
|
},
|
||
|
"loadBalancerClass": {
|
||
|
"type":"string"
|
||
|
},
|
||
|
"rbac": {
|
||
|
"description": "RBAC configuration",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"create": {
|
||
|
"description": "Enable RBAC",
|
||
|
"type": "boolean"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"prometheus": {
|
||
|
"description": "Prometheus monitoring config",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"scrapeAnnotations": { "type": "boolean" },
|
||
|
"metricsPort": { "type": "integer" },
|
||
|
"secureMetricsPort": { "type": "integer" },
|
||
|
"rbacPrometheus": { "type": "boolean" },
|
||
|
"serviceAccount": { "type": "string" },
|
||
|
"namespace": { "type": "string" },
|
||
|
"rbacProxy": {
|
||
|
"description": "kube-rbac-proxy configuration",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"repository": { "type": "string" },
|
||
|
"tag": { "type": "string" }
|
||
|
}
|
||
|
},
|
||
|
"podMonitor": {
|
||
|
"description": "Prometheus Operator PodMonitors",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": { "type": "boolean" },
|
||
|
"additionalMonitors": { "type": "object" },
|
||
|
"jobLabel": { "type": "string" },
|
||
|
"interval": {
|
||
|
"anyOf": [
|
||
|
{ "type": "integer" },
|
||
|
{ "type": "null" }
|
||
|
]
|
||
|
},
|
||
|
"metricRelabelings": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object"
|
||
|
}
|
||
|
},
|
||
|
"relabelings": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"serviceMonitor": {
|
||
|
"description": "Prometheus Operator ServiceMonitors",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": { "type": "boolean" },
|
||
|
"jobLabel": { "type": "string" },
|
||
|
"interval": {
|
||
|
"anyOf": [
|
||
|
{ "type": "integer" },
|
||
|
{ "type": "null" }
|
||
|
]
|
||
|
},
|
||
|
"metricRelabelings": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object"
|
||
|
}
|
||
|
},
|
||
|
"relabelings": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"prometheusRule": {
|
||
|
"description": "Prometheus Operator alertmanager alerts",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": { "type": "boolean" },
|
||
|
"additionalMonitors": { "type": "object" },
|
||
|
"staleConfig": { "$ref": "#/definitions/prometheusAlert" },
|
||
|
"configNotLoaded": { "$ref": "#/definitions/prometheusAlert" },
|
||
|
"addressPoolExhausted": { "$ref": "#/definitions/prometheusAlert" },
|
||
|
"addressPoolUsage": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"thresholds": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"percent": {
|
||
|
"type": "integer",
|
||
|
"minimum": 0,
|
||
|
"maximum": 100
|
||
|
},
|
||
|
"labels": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": { "type": "string" }
|
||
|
}
|
||
|
},
|
||
|
"required": [ "percent" ]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": [ "enabled" ]
|
||
|
},
|
||
|
"bgpSessionDown": { "$ref": "#/definitions/prometheusAlert" },
|
||
|
"extraAlerts": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"enabled",
|
||
|
"staleConfig",
|
||
|
"configNotLoaded",
|
||
|
"addressPoolExhausted",
|
||
|
"addressPoolUsage",
|
||
|
"bgpSessionDown"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"required": [ "podMonitor", "prometheusRule" ]
|
||
|
},
|
||
|
"controller": {
|
||
|
"allOf": [
|
||
|
{ "$ref": "#/definitions/component" },
|
||
|
{ "description": "MetalLB Controller",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"strategy": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"type": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [ "type" ]
|
||
|
},
|
||
|
"command" : {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"webhookMode" : {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"extraContainers": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"speaker": {
|
||
|
"allOf": [
|
||
|
{ "$ref": "#/definitions/component" },
|
||
|
{ "description": "MetalLB Speaker",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"tolerateMaster": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"memberlist": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"mlBindPort": {
|
||
|
"type": "integer"
|
||
|
},
|
||
|
"mlBindAddrOverride": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"mlSecretKeyPath": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"excludeInterfaces": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": {
|
||
|
"type": "boolean"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"ignoreExcludeLB": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"updateStrategy": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"type": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [ "type" ]
|
||
|
},
|
||
|
"runtimeClassName": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"securityContext": {
|
||
|
"type": "object"
|
||
|
},
|
||
|
"secretName": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"frr": {
|
||
|
"description": "Install FRR container in speaker deployment",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"image": { "$ref": "#/definitions/component/properties/image" },
|
||
|
"metricsPort": { "type": "integer" },
|
||
|
"secureMetricsPort": { "type": "integer" },
|
||
|
"resources:": { "type": "object" }
|
||
|
},
|
||
|
"required": [ "enabled" ]
|
||
|
},
|
||
|
"command" : {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"reloader": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"resources": { "type": "object" }
|
||
|
}
|
||
|
},
|
||
|
"frrMetrics": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"resources": { "type": "object" }
|
||
|
}
|
||
|
},
|
||
|
"extraContainers": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": [ "tolerateMaster" ]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"crds": {
|
||
|
"description": "CRD configuration",
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"enabled": {
|
||
|
"description": "Enable CRDs",
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"validationFailurePolicy": {
|
||
|
"description": "Failure policy to use with validating webhooks",
|
||
|
"type": "string",
|
||
|
"enum": [ "Ignore", "Fail" ]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"controller",
|
||
|
"speaker"
|
||
|
]
|
||
|
}
|