286 lines
6.9 KiB
YAML
286 lines
6.9 KiB
YAML
# -- Number of replicas for the MCP server
|
|
replicas: 1
|
|
|
|
# -- Deployment strategy
|
|
deploymentStrategy:
|
|
type: RollingUpdate
|
|
rollingUpdate:
|
|
maxSurge: 25%
|
|
maxUnavailable: 25%
|
|
|
|
# -- Image configuration
|
|
image:
|
|
# -- The Docker registry
|
|
registry: asia-southeast1-docker.pkg.dev
|
|
# -- The Docker repository
|
|
repository: meesho-devops-admin-0622/prd/devop/grafana-mcp
|
|
# -- Image tag
|
|
tag: "v2026-03-10"
|
|
# -- Image pull policy
|
|
pullPolicy: IfNotPresent
|
|
|
|
# -- Image pull secrets
|
|
imagePullSecrets: []
|
|
|
|
# -- Grafana connection configuration.
|
|
# `apiKeySecret.name` should point at the K8s Secret produced by the
|
|
# ExternalSecret (see `externalSecret` below). The key inside that Secret must
|
|
# match the env var the mcp-grafana binary reads: GRAFANA_SERVICE_ACCOUNT_TOKEN.
|
|
grafana:
|
|
# -- Grafana URL (set per-cluster in the override)
|
|
url: ""
|
|
# -- Secret containing the Grafana service-account token
|
|
apiKeySecret:
|
|
# -- Name of the K8s Secret (typically the ExternalSecret's target.name)
|
|
name: ""
|
|
# -- Key inside that Secret holding the token
|
|
key: "GRAFANA_SERVICE_ACCOUNT_TOKEN"
|
|
|
|
# -- Enable debug mode
|
|
debug: false
|
|
|
|
# -- Categories to disable (e.g., oncall, incident, sift)
|
|
disabledCategories: []
|
|
|
|
# -- Additional command line arguments
|
|
extraArgs: []
|
|
|
|
# -- Environment variables
|
|
env: {}
|
|
|
|
# -- Environment variables from other sources
|
|
envValueFrom: {}
|
|
|
|
# -- Environment variables from ConfigMaps or Secrets
|
|
envFrom: []
|
|
|
|
# -- MCP server Readiness probe configuration
|
|
readinessProbe: {}
|
|
|
|
# -- MCP server Liveness probe configuration
|
|
livenessProbe: {}
|
|
|
|
# -- MCP server Startup probe configuration
|
|
startupProbe: {}
|
|
|
|
# -- Service account Configuration
|
|
serviceAccount:
|
|
# -- Enable service account
|
|
create: true
|
|
# -- Name of the service account
|
|
name: ""
|
|
# -- Annotations for the service account
|
|
annotations: {}
|
|
# -- Labels for the service account
|
|
labels: {}
|
|
# -- Automount service account token
|
|
automountServiceAccountToken: false
|
|
|
|
# -- Service configuration
|
|
service:
|
|
# -- Enable service
|
|
enabled: true
|
|
# -- Service type
|
|
type: ClusterIP
|
|
# -- Service port (matches the mcp-grafana SSE default)
|
|
port: 8000
|
|
# -- Service annotations
|
|
annotations: {}
|
|
# -- Service labels
|
|
labels: {}
|
|
# -- Cluster IP (if type is ClusterIP)
|
|
clusterIP: ""
|
|
# -- External IPs
|
|
externalIPs: []
|
|
# -- Load balancer IP
|
|
loadBalancerIP: ""
|
|
# -- Load balancer source ranges
|
|
loadBalancerSourceRanges: []
|
|
# -- External name (if type is ExternalName)
|
|
externalName: ""
|
|
# -- Node port (if type is NodePort or LoadBalancer)
|
|
nodePort: ""
|
|
# -- Extra ports
|
|
extraPorts: []
|
|
# -- Session affinity
|
|
sessionAffinity: ""
|
|
# -- Session affinity config
|
|
sessionAffinityConfig: {}
|
|
|
|
# -- Create Contour HTTPProxy resources (parent + child for the configured class,
|
|
# plus intra parent + child when class is contour-internal*).
|
|
# When false, only the upstream Ingress is considered (and only for nginx-* classes).
|
|
createContourGateway: false
|
|
|
|
# -- Response timeout for Contour HTTPProxy routes. SSE is long-lived — set this
|
|
# to e.g. "5m" or "1h" in the override. Leave false to keep Contour defaults.
|
|
contourResponseTimeout: false
|
|
|
|
# -- Routing configuration. Reused by both the Ingress fallback and the HTTPProxy
|
|
# templates: `ingressClassName` decides which family of resources render.
|
|
# * nginx-internal / nginx-external -> Ingress
|
|
# * contour-external / contour-external-0/1 -> HTTPProxy (external)
|
|
# * contour-internal / contour-internal-0/1 -> HTTPProxy (internal) + intra
|
|
ingress:
|
|
# -- Enable routing (HTTPProxy or Ingress, picked by ingressClassName)
|
|
enabled: false
|
|
# -- Ingress / HTTPProxy class
|
|
ingressClassName: ""
|
|
# -- Backend service port number (defaults to service.port)
|
|
servicePortNumber: 8000
|
|
# -- Forward WebSocket upgrades. mcp-grafana SSE transport benefits from this.
|
|
enableWebsocket: true
|
|
# -- Ingress annotations (Ingress fallback only; HTTPProxy uses its own spec)
|
|
annotations: {}
|
|
# -- Hosts and paths
|
|
hosts: []
|
|
# - host: grafana-mcp.meeshogcp.in
|
|
# paths:
|
|
# - path: /
|
|
# pathType: Prefix
|
|
# -- Ingress TLS configuration (Ingress fallback only)
|
|
tls: []
|
|
# -- Ingress labels
|
|
labels: {}
|
|
# -- Contour slow-start policy (HTTPProxy only)
|
|
slowStart:
|
|
enabled: false
|
|
window: "120s"
|
|
aggression: 1
|
|
minPercent: 10
|
|
|
|
# -- ExternalSecret (Vault-backed). The template renders an external-secrets.io
|
|
# ExternalSecret that pulls a KV bundle from Vault at `path` and writes a K8s
|
|
# Secret named `secretName`. The deployment reads
|
|
# `GRAFANA_SERVICE_ACCOUNT_TOKEN` from that Secret via `grafana.apiKeySecret`.
|
|
externalSecret:
|
|
enabled: false
|
|
# -- Name of the K8s Secret created by the ExternalSecret.
|
|
# Reference this from grafana.apiKeySecret.name.
|
|
secretName: ""
|
|
# -- Vault path holding the bundle. Must contain a key named
|
|
# GRAFANA_SERVICE_ACCOUNT_TOKEN (matches grafana.apiKeySecret.key).
|
|
path: ""
|
|
# -- Refresh interval. "0" disables periodic refresh; ESO still syncs on changes.
|
|
refreshInterval: "0"
|
|
# -- ClusterSecretStore name
|
|
secretStoreRef: "vault-backend"
|
|
# -- Optional Vault version
|
|
version: ""
|
|
|
|
# -- Resource requests and limits
|
|
resources:
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
requests:
|
|
cpu: 250m
|
|
memory: 256Mi
|
|
|
|
# -- Container security context
|
|
containerSecurityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
runAsUser: 1000
|
|
runAsGroup: 1000
|
|
|
|
# -- Pod security context
|
|
securityContext:
|
|
fsGroup: 1000
|
|
runAsNonRoot: true
|
|
runAsUser: 1000
|
|
runAsGroup: 1000
|
|
|
|
# -- Automount service account token
|
|
automountServiceAccountToken: true
|
|
|
|
# -- Node selector
|
|
nodeSelector: {}
|
|
|
|
# -- Tolerations
|
|
tolerations: []
|
|
|
|
# -- Affinity
|
|
affinity: {}
|
|
|
|
# -- Topology spread constraints
|
|
topologySpreadConstraints: []
|
|
|
|
# -- Priority class name
|
|
priorityClassName: ""
|
|
|
|
# -- Runtime class name
|
|
runtimeClassName: ""
|
|
|
|
# -- Scheduler name
|
|
schedulerName: ""
|
|
|
|
# -- Host aliases
|
|
hostAliases: []
|
|
|
|
# -- DNS policy
|
|
dnsPolicy: ""
|
|
|
|
# -- DNS config
|
|
dnsConfig: {}
|
|
|
|
# -- Pod annotations
|
|
podAnnotations: {}
|
|
|
|
# -- Pod labels
|
|
podLabels: {}
|
|
|
|
# -- Deployment annotations
|
|
annotations: {}
|
|
|
|
# -- Deployment labels
|
|
labels: {}
|
|
|
|
# -- Lifecycle hooks
|
|
lifecycle: {}
|
|
|
|
# -- Volume mounts
|
|
volumeMounts: []
|
|
|
|
# -- Volumes
|
|
volumes: []
|
|
|
|
# -- Init containers
|
|
initContainers: []
|
|
|
|
# -- Extra init containers
|
|
extraInitContainers: []
|
|
|
|
# -- Extra containers
|
|
extraContainers: []
|
|
|
|
# -- Metrics configuration
|
|
metrics:
|
|
# -- Enable Prometheus metrics endpoint (adds --metrics flag)
|
|
enabled: false
|
|
|
|
# -- ServiceMonitor configuration for Prometheus Operator
|
|
serviceMonitor:
|
|
# -- Enable ServiceMonitor
|
|
enabled: false
|
|
# -- ServiceMonitor labels
|
|
labels: {}
|
|
# -- ServiceMonitor annotations
|
|
annotations: {}
|
|
# -- Scrape interval
|
|
interval: 30s
|
|
# -- Scrape timeout
|
|
scrapeTimeout: 10s
|
|
# -- Metrics path
|
|
path: /metrics
|
|
# -- Additional relabelings
|
|
relabelings: []
|
|
# -- Additional metric relabelings
|
|
metricRelabelings: []
|
|
# -- Namespace selector
|
|
namespaceSelector: {}
|