Skip to content

Instantly share code, notes, and snippets.

@bgarcial
Created March 14, 2024 11:38
Show Gist options
  • Save bgarcial/1cddf429e549865cd1f19098d6f2d202 to your computer and use it in GitHub Desktop.
Save bgarcial/1cddf429e549865cd1f19098d6f2d202 to your computer and use it in GitHub Desktop.
Add-on configuration schema
{
"$id": "http://example.com/example.json",
"$schema": "https://json-schema.org/draft/2019-09/schema",
"additionalProperties": false,
"description": "Configurable parameters of the adot Operator Addon",
"examples": [
{
"admissionWebhooks": {
"namespaceSelector": {},
"objectSelector": {}
},
"affinity": {},
"collector": {
"containerLogs": {
"exporters": {
"awscloudwatchlogs": {
"log_group_name": "adot-log-group",
"log_stream_name": "adot-log-stream"
}
},
"pipelines": {
"logs": {
"cloudwatchLogs": {
"enabled": true
}
}
},
"resources": {
"limits": {
"cpu": "1000m",
"memory": "750Mi"
},
"requests": {
"cpu": "300m",
"memory": "512Mi"
}
},
"serviceAccount": {
"annotations": {
"eks.amazonaws.com/role-arn": "arn:aws:iam::***:role/adot-col-container-logs"
}
}
},
"otlpIngest": {
"pipelines": {
"traces": {
"xray": {
"enabled": true
}
}
},
"resources": {
"limits": {
"cpu": "1000m",
"memory": "750Mi"
},
"requests": {
"cpu": "300m",
"memory": "512Mi"
}
},
"serviceAccount": {
"annotations": {
"eks.amazonaws.com/role-arn": "arn:aws:iam::***:role/adot-col-otlp-ingest"
}
}
},
"prometheusMetrics": {
"exporters": {
"prometheusremotewrite": {
"endpoint": "https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/api/v1/remote_write"
}
},
"pipelines": {
"metrics": {
"amp": {
"enabled": true
},
"emf": {
"enabled": true
}
}
},
"resources": {
"limits": {
"cpu": "1000m",
"memory": "750Mi"
},
"requests": {
"cpu": "300m",
"memory": "512Mi"
}
},
"serviceAccount": {
"annotations": {
"eks.amazonaws.com/role-arn": "arn:aws:iam::***:role/adot-col-prom-metrics"
}
}
}
},
"kubeRBACProxy": {
"enabled": true,
"resources": {
"limits": {
"cpu": "500m",
"memory": "128Mi"
},
"requests": {
"cpu": "5m",
"memory": "64Mi"
}
}
},
"manager": {
"env": {},
"resources": {
"limits": {
"cpu": "100m",
"memory": "128Mi"
},
"requests": {
"cpu": "100m",
"memory": "64Mi"
}
}
},
"nodeSelector": {},
"replicaCount": 1,
"tolerations": []
}
],
"properties": {
"admissionWebhooks": {
"additionalProperties": false,
"properties": {
"namespaceSelector": {
"properties": {},
"title": "The namespaceSelector Schema",
"type": "object"
},
"objectSelector": {
"properties": {},
"title": "The objectSelector Schema",
"type": "object"
}
},
"title": "The admissionWebhooks Schema",
"type": "object"
},
"affinity": {
"properties": {},
"title": "The affinity Schema",
"type": "object"
},
"collector": {
"additionalProperties": false,
"properties": {
"containerLogs": {
"additionalProperties": false,
"properties": {
"exporters": {
"additionalProperties": false,
"properties": {
"awscloudwatchlogs": {
"additionalProperties": false,
"properties": {
"log_group_name": {
"maxLength": 512,
"minLength": 1,
"pattern": "[\\.\\-_/#A-Za-z0-9]+",
"title": "The log_group_name Schema",
"type": "string"
},
"log_stream_name": {
"maxLength": 512,
"minLength": 1,
"pattern": "[^:*]*",
"title": "The log_stream_name Schema",
"type": "string"
}
},
"title": "The awscloudwatchlogs exporter Schema",
"type": "object"
}
},
"title": "The ADOT exporters Schema",
"type": "object"
},
"pipelines": {
"additionalProperties": false,
"properties": {
"logs": {
"additionalProperties": false,
"properties": {
"cloudwatchLogs": {
"additionalProperties": false,
"properties": {
"enabled": {
"title": "The enabled Schema",
"type": "boolean"
}
},
"required": [
"enabled"
],
"title": "The Cloudwatch Logs Schema",
"type": "object"
}
},
"title": "The logs Schema",
"type": "object"
}
},
"title": "The ADOT pipelines Schema",
"type": "object"
},
"resources": {
"additionalProperties": false,
"properties": {
"limits": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The limits Schema",
"type": "object"
},
"requests": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The requests Schema",
"type": "object"
}
},
"title": "The resources Schema",
"type": "object"
},
"serviceAccount": {
"additionalProperties": false,
"properties": {
"annotations": {
"properties": {},
"title": "The annotations Schema",
"type": "object"
}
},
"title": "The serviceAccount Schema",
"type": "object"
}
},
"title": "Opinionated collector for container logs",
"type": "object"
},
"otlpIngest": {
"additionalProperties": false,
"properties": {
"pipelines": {
"additionalProperties": false,
"properties": {
"traces": {
"additionalProperties": false,
"properties": {
"xray": {
"additionalProperties": false,
"properties": {
"enabled": {
"title": "The enabled Schema",
"type": "boolean"
}
},
"required": [
"enabled"
],
"title": "The X-Ray Schema",
"type": "object"
}
},
"title": "The traces Schema",
"type": "object"
}
},
"title": "The ADOT pipelines Schema",
"type": "object"
},
"resources": {
"additionalProperties": false,
"properties": {
"limits": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The limits Schema",
"type": "object"
},
"requests": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The requests Schema",
"type": "object"
}
},
"title": "The resources Schema",
"type": "object"
},
"serviceAccount": {
"additionalProperties": false,
"properties": {
"annotations": {
"properties": {},
"title": "The annotations Schema",
"type": "object"
}
},
"title": "The serviceAccount Schema",
"type": "object"
}
},
"title": "Opinionated collector for otlp ingest",
"type": "object"
},
"prometheusMetrics": {
"additionalProperties": false,
"if": {
"properties": {
"pipelines": {
"properties": {
"metrics": {
"properties": {
"amp": {
"properties": {
"enabled": {
"const": true
}
},
"required": [
"enabled"
],
"type": "object"
}
},
"required": [
"amp"
],
"type": "object"
}
},
"required": [
"metrics"
],
"type": "object"
}
},
"required": [
"pipelines"
],
"type": "object"
},
"properties": {
"exporters": {
"additionalProperties": false,
"properties": {
"prometheusremotewrite": {
"additionalProperties": false,
"properties": {
"endpoint": {
"pattern": "^https://aps-workspaces\\.(us(-gov)?|ap|ca|cn|eu|sa)-(central|(north|south)?(east|west)?)-[0-9]\\.amazonaws\\.com/workspaces/ws-[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}/api/v1/remote_write$",
"title": "The AMP endpoint uri Schema",
"type": "string"
}
},
"title": "The prometheusremotewrite exporter Schema",
"type": "object"
}
},
"title": "The exporters Schema",
"type": "object"
},
"pipelines": {
"additionalProperties": false,
"properties": {
"metrics": {
"additionalProperties": false,
"properties": {
"amp": {
"additionalProperties": false,
"properties": {
"enabled": {
"title": "The enabled Schema",
"type": "boolean"
}
},
"required": [
"enabled"
],
"title": "The AMP Schema",
"type": "object"
},
"emf": {
"additionalProperties": false,
"properties": {
"enabled": {
"title": "The enabled Schema",
"type": "boolean"
}
},
"required": [
"enabled"
],
"title": "The EMF Schema",
"type": "object"
}
},
"title": "The metrics Schema",
"type": "object"
}
},
"title": "The ADOT pipelines Schema",
"type": "object"
},
"resources": {
"additionalProperties": false,
"properties": {
"limits": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The limits Schema",
"type": "object"
},
"requests": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The requests Schema",
"type": "object"
}
},
"title": "The resources Schema",
"type": "object"
},
"serviceAccount": {
"additionalProperties": false,
"properties": {
"annotations": {
"properties": {},
"title": "The annotations Schema",
"type": "object"
}
},
"title": "The serviceAccount Schema",
"type": "object"
}
},
"then": {
"properties": {
"exporters": {
"properties": {
"prometheusremotewrite": {
"properties": {
"endpoint": {}
},
"required": [
"endpoint"
],
"type": "object"
}
},
"required": [
"prometheusremotewrite"
],
"type": "object"
}
},
"required": [
"exporters"
],
"type": "object"
},
"title": "Opinionated collector for prometheus metrics",
"type": "object"
}
},
"title": "The collector Schema",
"type": "object"
},
"kubeRBACProxy": {
"additionalProperties": false,
"properties": {
"resources": {
"additionalProperties": false,
"properties": {
"limits": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The limits Schema",
"type": "object"
},
"requests": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The requests Schema",
"type": "object"
}
},
"title": "The resources Schema",
"type": "object"
}
},
"title": "The kubeRBACProxy Schema",
"type": "object"
},
"manager": {
"additionalProperties": false,
"properties": {
"env": {
"properties": {},
"title": "The env Schema",
"type": "object"
},
"resources": {
"additionalProperties": false,
"properties": {
"limits": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The limits Schema",
"type": "object"
},
"requests": {
"additionalProperties": false,
"properties": {
"cpu": {
"title": "The cpu Schema",
"type": "string"
},
"memory": {
"title": "The memory Schema",
"type": "string"
}
},
"title": "The requests Schema",
"type": "object"
}
},
"title": "The resources Schema",
"type": "object"
}
},
"title": "The manager Schema",
"type": "object"
},
"nodeSelector": {
"properties": {},
"title": "The nodeSelector Schema",
"type": "object"
},
"replicaCount": {
"title": "The replicaCount Schema",
"type": "integer"
},
"tolerations": {
"items": {},
"title": "The tolerations Schema",
"type": "array"
}
},
"title": "Root Schema",
"type": "object"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment