values.yaml 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142
  1. rbac:
  2. create: true
  3. ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true)
  4. # useExistingRole: name-of-some-(cluster)role
  5. pspEnabled: true
  6. pspUseAppArmor: true
  7. namespaced: false
  8. extraRoleRules: []
  9. # - apiGroups: []
  10. # resources: []
  11. # verbs: []
  12. extraClusterRoleRules: []
  13. # - apiGroups: []
  14. # resources: []
  15. # verbs: []
  16. serviceAccount:
  17. create: true
  18. name:
  19. nameTest:
  20. ## ServiceAccount labels.
  21. labels: {}
  22. ## Service account annotations. Can be templated.
  23. # annotations:
  24. # eks.amazonaws.com/role-arn: arn:aws:iam::123456789000:role/iam-role-name-here
  25. autoMount: true
  26. replicas: 1
  27. ## Create a headless service for the deployment
  28. headlessService: false
  29. ## Create HorizontalPodAutoscaler object for deployment type
  30. #
  31. autoscaling:
  32. enabled: false
  33. # minReplicas: 1
  34. # maxReplicas: 10
  35. # metrics:
  36. # - type: Resource
  37. # resource:
  38. # name: cpu
  39. # targetAverageUtilization: 60
  40. # - type: Resource
  41. # resource:
  42. # name: memory
  43. # targetAverageUtilization: 60
  44. ## See `kubectl explain poddisruptionbudget.spec` for more
  45. ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
  46. podDisruptionBudget: {}
  47. # minAvailable: 1
  48. # maxUnavailable: 1
  49. ## See `kubectl explain deployment.spec.strategy` for more
  50. ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  51. deploymentStrategy:
  52. type: RollingUpdate
  53. readinessProbe:
  54. httpGet:
  55. path: /api/health
  56. port: 3000
  57. livenessProbe:
  58. httpGet:
  59. path: /api/health
  60. port: 3000
  61. initialDelaySeconds: 60
  62. timeoutSeconds: 30
  63. failureThreshold: 10
  64. ## Use an alternate scheduler, e.g. "stork".
  65. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  66. ##
  67. # schedulerName: "default-scheduler"
  68. image:
  69. repository: grafana/grafana
  70. # Overrides the Grafana image tag whose default is the chart appVersion
  71. tag: ""
  72. sha: ""
  73. pullPolicy: IfNotPresent
  74. ## Optionally specify an array of imagePullSecrets.
  75. ## Secrets must be manually created in the namespace.
  76. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  77. ## Can be templated.
  78. ##
  79. # pullSecrets:
  80. # - myRegistrKeySecretName
  81. testFramework:
  82. enabled: true
  83. image: "bats/bats"
  84. tag: "v1.4.1"
  85. imagePullPolicy: IfNotPresent
  86. securityContext: {}
  87. securityContext:
  88. runAsUser: 472
  89. runAsGroup: 472
  90. fsGroup: 472
  91. containerSecurityContext:
  92. {}
  93. # Enable creating the grafana configmap
  94. createConfigmap: true
  95. # Extra configmaps to mount in grafana pods
  96. # Values are templated.
  97. extraConfigmapMounts: []
  98. # - name: certs-configmap
  99. # mountPath: /etc/grafana/ssl/
  100. # subPath: certificates.crt # (optional)
  101. # configMap: certs-configmap
  102. # readOnly: true
  103. extraEmptyDirMounts: []
  104. # - name: provisioning-notifiers
  105. # mountPath: /etc/grafana/provisioning/notifiers
  106. # Apply extra labels to common labels.
  107. extraLabels: {}
  108. ## Assign a PriorityClassName to pods if set
  109. # priorityClassName:
  110. downloadDashboardsImage:
  111. repository: curlimages/curl
  112. tag: 7.85.0
  113. sha: ""
  114. pullPolicy: IfNotPresent
  115. downloadDashboards:
  116. env: {}
  117. envFromSecret: ""
  118. resources: {}
  119. securityContext: {}
  120. ## Pod Annotations
  121. # podAnnotations: {}
  122. ## Pod Labels
  123. # podLabels: {}
  124. podPortName: grafana
  125. ## Deployment annotations
  126. # annotations: {}
  127. ## Expose the grafana service to be accessed from outside the cluster (LoadBalancer service).
  128. ## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.
  129. ## ref: http://kubernetes.io/docs/user-guide/services/
  130. ##
  131. service:
  132. enabled: true
  133. type: ClusterIP
  134. port: 80
  135. targetPort: 3000
  136. # targetPort: 4181 To be used with a proxy extraContainer
  137. ## Service annotations. Can be templated.
  138. annotations: {}
  139. labels: {}
  140. portName: service
  141. # Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp"
  142. appProtocol: ""
  143. serviceMonitor:
  144. ## If true, a ServiceMonitor CRD is created for a prometheus operator
  145. ## https://github.com/coreos/prometheus-operator
  146. ##
  147. enabled: false
  148. path: /metrics
  149. # namespace: monitoring (defaults to use the namespace this chart is deployed to)
  150. labels: {}
  151. interval: 1m
  152. scheme: http
  153. tlsConfig: {}
  154. scrapeTimeout: 30s
  155. relabelings: []
  156. extraExposePorts: []
  157. # - name: keycloak
  158. # port: 8080
  159. # targetPort: 8080
  160. # type: ClusterIP
  161. # overrides pod.spec.hostAliases in the grafana deployment's pods
  162. hostAliases: []
  163. # - ip: "1.2.3.4"
  164. # hostnames:
  165. # - "my.host.com"
  166. ingress:
  167. enabled: false
  168. # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
  169. # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
  170. # ingressClassName: nginx
  171. # Values can be templated
  172. annotations: {}
  173. # kubernetes.io/ingress.class: nginx
  174. # kubernetes.io/tls-acme: "true"
  175. labels: {}
  176. path: /
  177. # pathType is only for k8s >= 1.1=
  178. pathType: Prefix
  179. hosts:
  180. - chart-example.local
  181. ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
  182. extraPaths: []
  183. # - path: /*
  184. # backend:
  185. # serviceName: ssl-redirect
  186. # servicePort: use-annotation
  187. ## Or for k8s > 1.19
  188. # - path: /*
  189. # pathType: Prefix
  190. # backend:
  191. # service:
  192. # name: ssl-redirect
  193. # port:
  194. # name: use-annotation
  195. tls: []
  196. # - secretName: chart-example-tls
  197. # hosts:
  198. # - chart-example.local
  199. resources: {}
  200. # limits:
  201. # cpu: 100m
  202. # memory: 128Mi
  203. # requests:
  204. # cpu: 100m
  205. # memory: 128Mi
  206. ## Node labels for pod assignment
  207. ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  208. #
  209. nodeSelector: {}
  210. ## Tolerations for pod assignment
  211. ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  212. ##
  213. tolerations: []
  214. ## Affinity for pod assignment (evaluated as template)
  215. ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  216. ##
  217. affinity: {}
  218. ## Topology Spread Constraints
  219. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  220. ##
  221. topologySpreadConstraints: []
  222. ## Additional init containers (evaluated as template)
  223. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
  224. ##
  225. extraInitContainers: []
  226. ## Enable an Specify container in extraContainers. This is meant to allow adding an authentication proxy to a grafana pod
  227. extraContainers: ""
  228. # extraContainers: |
  229. # - name: proxy
  230. # image: quay.io/gambol99/keycloak-proxy:latest
  231. # args:
  232. # - -provider=github
  233. # - -client-id=
  234. # - -client-secret=
  235. # - -github-org=<ORG_NAME>
  236. # - -email-domain=*
  237. # - -cookie-secret=
  238. # - -http-address=http://0.0.0.0:4181
  239. # - -upstream-url=http://127.0.0.1:3000
  240. # ports:
  241. # - name: proxy-web
  242. # containerPort: 4181
  243. ## Volumes that can be used in init containers that will not be mounted to deployment pods
  244. extraContainerVolumes: []
  245. # - name: volume-from-secret
  246. # secret:
  247. # secretName: secret-to-mount
  248. # - name: empty-dir-volume
  249. # emptyDir: {}
  250. ## Enable persistence using Persistent Volume Claims
  251. ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
  252. ##
  253. persistence:
  254. type: pvc
  255. enabled: false
  256. # storageClassName: default
  257. accessModes:
  258. - ReadWriteOnce
  259. size: 10Gi
  260. # annotations: {}
  261. finalizers:
  262. - kubernetes.io/pvc-protection
  263. # selectorLabels: {}
  264. ## Sub-directory of the PV to mount. Can be templated.
  265. # subPath: ""
  266. ## Name of an existing PVC. Can be templated.
  267. # existingClaim:
  268. ## Extra labels to apply to a PVC.
  269. extraPvcLabels: {}
  270. ## If persistence is not enabled, this allows to mount the
  271. ## local storage in-memory to improve performance
  272. ##
  273. inMemory:
  274. enabled: false
  275. ## The maximum usage on memory medium EmptyDir would be
  276. ## the minimum value between the SizeLimit specified
  277. ## here and the sum of memory limits of all containers in a pod
  278. ##
  279. # sizeLimit: 300Mi
  280. initChownData:
  281. ## If false, data ownership will not be reset at startup
  282. ## This allows the grafana-server to be run with an arbitrary user
  283. ##
  284. enabled: true
  285. ## initChownData container image
  286. ##
  287. image:
  288. repository: busybox
  289. tag: "1.31.1"
  290. sha: ""
  291. pullPolicy: IfNotPresent
  292. ## initChownData resource requests and limits
  293. ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
  294. ##
  295. resources: {}
  296. # limits:
  297. # cpu: 100m
  298. # memory: 128Mi
  299. # requests:
  300. # cpu: 100m
  301. # memory: 128Mi
  302. securityContext:
  303. runAsNonRoot: false
  304. runAsUser: 0
  305. # Administrator credentials when not using an existing secret (see below)
  306. adminUser: admin
  307. # adminPassword: strongpassword
  308. # Use an existing secret for the admin user.
  309. admin:
  310. ## Name of the secret. Can be templated.
  311. existingSecret: ""
  312. userKey: admin-user
  313. passwordKey: admin-password
  314. ## Define command to be executed at startup by grafana container
  315. ## Needed if using `vault-env` to manage secrets (ref: https://banzaicloud.com/blog/inject-secrets-into-pods-vault/)
  316. ## Default is "run.sh" as defined in grafana's Dockerfile
  317. # command:
  318. # - "sh"
  319. # - "/run.sh"
  320. ## Use an alternate scheduler, e.g. "stork".
  321. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  322. ##
  323. # schedulerName:
  324. ## Extra environment variables that will be pass onto deployment pods
  325. ##
  326. ## to provide grafana with access to CloudWatch on AWS EKS:
  327. ## 1. create an iam role of type "Web identity" with provider oidc.eks.* (note the provider for later)
  328. ## 2. edit the "Trust relationships" of the role, add a line inside the StringEquals clause using the
  329. ## same oidc eks provider as noted before (same as the existing line)
  330. ## also, replace NAMESPACE and prometheus-operator-grafana with the service account namespace and name
  331. ##
  332. ## "oidc.eks.us-east-1.amazonaws.com/id/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:sub": "system:serviceaccount:NAMESPACE:prometheus-operator-grafana",
  333. ##
  334. ## 3. attach a policy to the role, you can use a built in policy called CloudWatchReadOnlyAccess
  335. ## 4. use the following env: (replace 123456789000 and iam-role-name-here with your aws account number and role name)
  336. ##
  337. ## env:
  338. ## AWS_ROLE_ARN: arn:aws:iam::123456789000:role/iam-role-name-here
  339. ## AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/token
  340. ## AWS_REGION: us-east-1
  341. ##
  342. ## 5. uncomment the EKS section in extraSecretMounts: below
  343. ## 6. uncomment the annotation section in the serviceAccount: above
  344. ## make sure to replace arn:aws:iam::123456789000:role/iam-role-name-here with your role arn
  345. env: {}
  346. ## "valueFrom" environment variable references that will be added to deployment pods. Name is templated.
  347. ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#envvarsource-v1-core
  348. ## Renders in container spec as:
  349. ## env:
  350. ## ...
  351. ## - name: <key>
  352. ## valueFrom:
  353. ## <value rendered as YAML>
  354. envValueFrom: {}
  355. # ENV_NAME:
  356. # configMapKeyRef:
  357. # name: configmap-name
  358. # key: value_key
  359. ## The name of a secret in the same kubernetes namespace which contain values to be added to the environment
  360. ## This can be useful for auth tokens, etc. Value is templated.
  361. envFromSecret: ""
  362. ## Sensible environment variables that will be rendered as new secret object
  363. ## This can be useful for auth tokens, etc
  364. envRenderSecret: {}
  365. ## The names of secrets in the same kubernetes namespace which contain values to be added to the environment
  366. ## Each entry should contain a name key, and can optionally specify whether the secret must be defined with an optional key.
  367. ## Name is templated.
  368. envFromSecrets: []
  369. ## - name: secret-name
  370. ## optional: true
  371. ## The names of conifgmaps in the same kubernetes namespace which contain values to be added to the environment
  372. ## Each entry should contain a name key, and can optionally specify whether the configmap must be defined with an optional key.
  373. ## Name is templated.
  374. ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#configmapenvsource-v1-core
  375. envFromConfigMaps: []
  376. ## - name: configmap-name
  377. ## optional: true
  378. # Inject Kubernetes services as environment variables.
  379. # See https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#environment-variables
  380. enableServiceLinks: true
  381. ## Additional grafana server secret mounts
  382. # Defines additional mounts with secrets. Secrets must be manually created in the namespace.
  383. extraSecretMounts: []
  384. # - name: secret-files
  385. # mountPath: /etc/secrets
  386. # secretName: grafana-secret-files
  387. # readOnly: true
  388. # subPath: ""
  389. #
  390. # for AWS EKS (cloudwatch) use the following (see also instruction in env: above)
  391. # - name: aws-iam-token
  392. # mountPath: /var/run/secrets/eks.amazonaws.com/serviceaccount
  393. # readOnly: true
  394. # projected:
  395. # defaultMode: 420
  396. # sources:
  397. # - serviceAccountToken:
  398. # audience: sts.amazonaws.com
  399. # expirationSeconds: 86400
  400. # path: token
  401. #
  402. # for CSI e.g. Azure Key Vault use the following
  403. # - name: secrets-store-inline
  404. # mountPath: /run/secrets
  405. # readOnly: true
  406. # csi:
  407. # driver: secrets-store.csi.k8s.io
  408. # readOnly: true
  409. # volumeAttributes:
  410. # secretProviderClass: "akv-grafana-spc"
  411. # nodePublishSecretRef: # Only required when using service principal mode
  412. # name: grafana-akv-creds # Only required when using service principal mode
  413. ## Additional grafana server volume mounts
  414. # Defines additional volume mounts.
  415. extraVolumeMounts: []
  416. # - name: extra-volume-0
  417. # mountPath: /mnt/volume0
  418. # readOnly: true
  419. # existingClaim: volume-claim
  420. # - name: extra-volume-1
  421. # mountPath: /mnt/volume1
  422. # readOnly: true
  423. # hostPath: /usr/shared/
  424. # - name: grafana-secrets
  425. # csi: true
  426. # data:
  427. # driver: secrets-store.csi.k8s.io
  428. # readOnly: true
  429. # volumeAttributes:
  430. # secretProviderClass: "grafana-env-spc"
  431. ## Container Lifecycle Hooks. Execute a specific bash command or make an HTTP request
  432. lifecycleHooks: {}
  433. # postStart:
  434. # exec:
  435. # command: []
  436. ## Pass the plugins you want installed as a list.
  437. ##
  438. plugins: []
  439. # - digrich-bubblechart-panel
  440. # - grafana-clock-panel
  441. ## Configure grafana datasources
  442. ## ref: http://docs.grafana.org/administration/provisioning/#datasources
  443. ##
  444. datasources: {}
  445. # datasources.yaml:
  446. # apiVersion: 1
  447. # datasources:
  448. # - name: Prometheus
  449. # type: prometheus
  450. # url: http://prometheus-prometheus-server
  451. # access: proxy
  452. # isDefault: true
  453. # - name: CloudWatch
  454. # type: cloudwatch
  455. # access: proxy
  456. # uid: cloudwatch
  457. # editable: false
  458. # jsonData:
  459. # authType: default
  460. # defaultRegion: us-east-1
  461. ## Configure grafana alerting (can be templated)
  462. ## ref: http://docs.grafana.org/administration/provisioning/#alerting
  463. ##
  464. alerting: {}
  465. # rules.yaml:
  466. # apiVersion: 1
  467. # groups:
  468. # - orgId: 1
  469. # name: '{{ .Chart.Name }}_my_rule_group'
  470. # folder: my_first_folder
  471. # interval: 60s
  472. # rules:
  473. # - uid: my_id_1
  474. # title: my_first_rule
  475. # condition: A
  476. # data:
  477. # - refId: A
  478. # datasourceUid: '-100'
  479. # model:
  480. # conditions:
  481. # - evaluator:
  482. # params:
  483. # - 3
  484. # type: gt
  485. # operator:
  486. # type: and
  487. # query:
  488. # params:
  489. # - A
  490. # reducer:
  491. # type: last
  492. # type: query
  493. # datasource:
  494. # type: __expr__
  495. # uid: '-100'
  496. # expression: 1==0
  497. # intervalMs: 1000
  498. # maxDataPoints: 43200
  499. # refId: A
  500. # type: math
  501. # dashboardUid: my_dashboard
  502. # panelId: 123
  503. # noDataState: Alerting
  504. # for: 60s
  505. # annotations:
  506. # some_key: some_value
  507. # labels:
  508. # team: sre_team_1
  509. # contactpoints.yaml:
  510. # apiVersion: 1
  511. # contactPoints:
  512. # - orgId: 1
  513. # name: cp_1
  514. # receivers:
  515. # - uid: first_uid
  516. # type: pagerduty
  517. # settings:
  518. # integrationKey: XXX
  519. # severity: critical
  520. # class: ping failure
  521. # component: Grafana
  522. # group: app-stack
  523. # summary: |
  524. # {{ `{{ template "default.message" . }}` }}
  525. ## Configure notifiers
  526. ## ref: http://docs.grafana.org/administration/provisioning/#alert-notification-channels
  527. ##
  528. notifiers: {}
  529. # notifiers.yaml:
  530. # notifiers:
  531. # - name: email-notifier
  532. # type: email
  533. # uid: email1
  534. # # either:
  535. # org_id: 1
  536. # # or
  537. # org_name: Main Org.
  538. # is_default: true
  539. # settings:
  540. # addresses: an_email_address@example.com
  541. # delete_notifiers:
  542. ## Configure grafana dashboard providers
  543. ## ref: http://docs.grafana.org/administration/provisioning/#dashboards
  544. ##
  545. ## `path` must be /var/lib/grafana/dashboards/<provider_name>
  546. ##
  547. dashboardProviders: {}
  548. # dashboardproviders.yaml:
  549. # apiVersion: 1
  550. # providers:
  551. # - name: 'default'
  552. # orgId: 1
  553. # folder: ''
  554. # type: file
  555. # disableDeletion: false
  556. # editable: true
  557. # options:
  558. # path: /var/lib/grafana/dashboards/default
  559. ## Configure grafana dashboard to import
  560. ## NOTE: To use dashboards you must also enable/configure dashboardProviders
  561. ## ref: https://grafana.com/dashboards
  562. ##
  563. ## dashboards per provider, use provider name as key.
  564. ##
  565. dashboards: {}
  566. # default:
  567. # some-dashboard:
  568. # json: |
  569. # $RAW_JSON
  570. # custom-dashboard:
  571. # file: dashboards/custom-dashboard.json
  572. # prometheus-stats:
  573. # gnetId: 2
  574. # revision: 2
  575. # datasource: Prometheus
  576. # local-dashboard:
  577. # url: https://example.com/repository/test.json
  578. # token: ''
  579. # local-dashboard-base64:
  580. # url: https://example.com/repository/test-b64.json
  581. # token: ''
  582. # b64content: true
  583. # local-dashboard-gitlab:
  584. # url: https://example.com/repository/test-gitlab.json
  585. # gitlabToken: ''
  586. # local-dashboard-bitbucket:
  587. # url: https://example.com/repository/test-bitbucket.json
  588. # bearerToken: ''
  589. ## Reference to external ConfigMap per provider. Use provider name as key and ConfigMap name as value.
  590. ## A provider dashboards must be defined either by external ConfigMaps or in values.yaml, not in both.
  591. ## ConfigMap data example:
  592. ##
  593. ## data:
  594. ## example-dashboard.json: |
  595. ## RAW_JSON
  596. ##
  597. dashboardsConfigMaps: {}
  598. # default: ""
  599. ## Grafana's primary configuration
  600. ## NOTE: values in map will be converted to ini format
  601. ## ref: http://docs.grafana.org/installation/configuration/
  602. ##
  603. grafana.ini:
  604. paths:
  605. data: /var/lib/grafana/
  606. logs: /var/log/grafana
  607. plugins: /var/lib/grafana/plugins
  608. provisioning: /etc/grafana/provisioning
  609. analytics:
  610. check_for_updates: true
  611. log:
  612. mode: console
  613. grafana_net:
  614. url: https://grafana.net
  615. server:
  616. domain: "{{ if (and .Values.ingress.enabled .Values.ingress.hosts) }}{{ .Values.ingress.hosts | first }}{{ else }}''{{ end }}"
  617. ## grafana Authentication can be enabled with the following values on grafana.ini
  618. # server:
  619. # The full public facing url you use in browser, used for redirects and emails
  620. # root_url:
  621. # https://grafana.com/docs/grafana/latest/auth/github/#enable-github-in-grafana
  622. # auth.github:
  623. # enabled: false
  624. # allow_sign_up: false
  625. # scopes: user:email,read:org
  626. # auth_url: https://github.com/login/oauth/authorize
  627. # token_url: https://github.com/login/oauth/access_token
  628. # api_url: https://api.github.com/user
  629. # team_ids:
  630. # allowed_organizations:
  631. # client_id:
  632. # client_secret:
  633. ## LDAP Authentication can be enabled with the following values on grafana.ini
  634. ## NOTE: Grafana will fail to start if the value for ldap.toml is invalid
  635. # auth.ldap:
  636. # enabled: true
  637. # allow_sign_up: true
  638. # config_file: /etc/grafana/ldap.toml
  639. ## Grafana's LDAP configuration
  640. ## Templated by the template in _helpers.tpl
  641. ## NOTE: To enable the grafana.ini must be configured with auth.ldap.enabled
  642. ## ref: http://docs.grafana.org/installation/configuration/#auth-ldap
  643. ## ref: http://docs.grafana.org/installation/ldap/#configuration
  644. ldap:
  645. enabled: false
  646. # `existingSecret` is a reference to an existing secret containing the ldap configuration
  647. # for Grafana in a key `ldap-toml`.
  648. existingSecret: ""
  649. # `config` is the content of `ldap.toml` that will be stored in the created secret
  650. config: ""
  651. # config: |-
  652. # verbose_logging = true
  653. # [[servers]]
  654. # host = "my-ldap-server"
  655. # port = 636
  656. # use_ssl = true
  657. # start_tls = false
  658. # ssl_skip_verify = false
  659. # bind_dn = "uid=%s,ou=users,dc=myorg,dc=com"
  660. ## Grafana's SMTP configuration
  661. ## NOTE: To enable, grafana.ini must be configured with smtp.enabled
  662. ## ref: http://docs.grafana.org/installation/configuration/#smtp
  663. smtp:
  664. # `existingSecret` is a reference to an existing secret containing the smtp configuration
  665. # for Grafana.
  666. existingSecret: ""
  667. userKey: "user"
  668. passwordKey: "password"
  669. ## Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders
  670. ## Requires at least Grafana 5 to work and can't be used together with parameters dashboardProviders, datasources and dashboards
  671. sidecar:
  672. image:
  673. repository: quay.io/kiwigrid/k8s-sidecar
  674. tag: 1.19.2
  675. sha: ""
  676. imagePullPolicy: IfNotPresent
  677. resources: {}
  678. # limits:
  679. # cpu: 100m
  680. # memory: 100Mi
  681. # requests:
  682. # cpu: 50m
  683. # memory: 50Mi
  684. securityContext: {}
  685. # skipTlsVerify Set to true to skip tls verification for kube api calls
  686. # skipTlsVerify: true
  687. enableUniqueFilenames: false
  688. readinessProbe: {}
  689. livenessProbe: {}
  690. # Log level default for all sidecars. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL. Defaults to INFO
  691. # logLevel: INFO
  692. alerts:
  693. enabled: false
  694. # Additional environment variables for the alerts sidecar
  695. env: {}
  696. # Do not reprocess already processed unchanged resources on k8s API reconnect.
  697. # ignoreAlreadyProcessed: true
  698. # label that the configmaps with alert are marked with
  699. label: grafana_alert
  700. # value of label that the configmaps with alert are set to
  701. labelValue: ""
  702. # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
  703. # logLevel: INFO
  704. # If specified, the sidecar will search for alert config-maps inside this namespace.
  705. # Otherwise the namespace in which the sidecar is running will be used.
  706. # It's also possible to specify ALL to search in all namespaces
  707. searchNamespace: null
  708. # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
  709. watchMethod: WATCH
  710. # search in configmap, secret or both
  711. resource: both
  712. # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
  713. # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
  714. # watchServerTimeout: 3600
  715. #
  716. # watchClientTimeout: is a client-side timeout, configuring your local socket.
  717. # If you have a network outage dropping all packets with no RST/FIN,
  718. # this is how long your client waits before realizing & dropping the connection.
  719. # defaults to 66sec (sic!)
  720. # watchClientTimeout: 60
  721. #
  722. # Endpoint to send request to reload alerts
  723. reloadURL: "http://localhost:3000/api/admin/provisioning/alerting/reload"
  724. # Absolute path to shell script to execute after a alert got reloaded
  725. script: null
  726. skipReload: false
  727. # Deploy the alert sidecar as an initContainer in addition to a container.
  728. # Sets the size limit of the alert sidecar emptyDir volume
  729. sizeLimit: {}
  730. dashboards:
  731. enabled: false
  732. # Additional environment variables for the dashboards sidecar
  733. env: {}
  734. # Do not reprocess already processed unchanged resources on k8s API reconnect.
  735. # ignoreAlreadyProcessed: true
  736. SCProvider: true
  737. # label that the configmaps with dashboards are marked with
  738. label: grafana_dashboard
  739. # value of label that the configmaps with dashboards are set to
  740. labelValue: ""
  741. # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
  742. # logLevel: INFO
  743. # folder in the pod that should hold the collected dashboards (unless `defaultFolderName` is set)
  744. folder: /tmp/dashboards
  745. # The default folder name, it will create a subfolder under the `folder` and put dashboards in there instead
  746. defaultFolderName: null
  747. # Namespaces list. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
  748. # Otherwise the namespace in which the sidecar is running will be used.
  749. # It's also possible to specify ALL to search in all namespaces.
  750. searchNamespace: null
  751. # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
  752. watchMethod: WATCH
  753. # search in configmap, secret or both
  754. resource: both
  755. # If specified, the sidecar will look for annotation with this name to create folder and put graph here.
  756. # You can use this parameter together with `provider.foldersFromFilesStructure`to annotate configmaps and create folder structure.
  757. folderAnnotation: null
  758. # Absolute path to shell script to execute after a configmap got reloaded
  759. script: null
  760. # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
  761. # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
  762. # watchServerTimeout: 3600
  763. #
  764. # watchClientTimeout: is a client-side timeout, configuring your local socket.
  765. # If you have a network outage dropping all packets with no RST/FIN,
  766. # this is how long your client waits before realizing & dropping the connection.
  767. # defaults to 66sec (sic!)
  768. # watchClientTimeout: 60
  769. #
  770. # provider configuration that lets grafana manage the dashboards
  771. provider:
  772. # name of the provider, should be unique
  773. name: sidecarProvider
  774. # orgid as configured in grafana
  775. orgid: 1
  776. # folder in which the dashboards should be imported in grafana
  777. folder: ''
  778. # type of the provider
  779. type: file
  780. # disableDelete to activate a import-only behaviour
  781. disableDelete: false
  782. # allow updating provisioned dashboards from the UI
  783. allowUiUpdates: false
  784. # allow Grafana to replicate dashboard structure from filesystem
  785. foldersFromFilesStructure: false
  786. # Additional dashboard sidecar volume mounts
  787. extraMounts: []
  788. # Sets the size limit of the dashboard sidecar emptyDir volume
  789. sizeLimit: {}
  790. datasources:
  791. enabled: false
  792. # Additional environment variables for the datasourcessidecar
  793. env: {}
  794. # Do not reprocess already processed unchanged resources on k8s API reconnect.
  795. # ignoreAlreadyProcessed: true
  796. # label that the configmaps with datasources are marked with
  797. label: grafana_datasource
  798. # value of label that the configmaps with datasources are set to
  799. labelValue: ""
  800. # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
  801. # logLevel: INFO
  802. # If specified, the sidecar will search for datasource config-maps inside this namespace.
  803. # Otherwise the namespace in which the sidecar is running will be used.
  804. # It's also possible to specify ALL to search in all namespaces
  805. searchNamespace: null
  806. # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
  807. watchMethod: WATCH
  808. # search in configmap, secret or both
  809. resource: both
  810. # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
  811. # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
  812. # watchServerTimeout: 3600
  813. #
  814. # watchClientTimeout: is a client-side timeout, configuring your local socket.
  815. # If you have a network outage dropping all packets with no RST/FIN,
  816. # this is how long your client waits before realizing & dropping the connection.
  817. # defaults to 66sec (sic!)
  818. # watchClientTimeout: 60
  819. #
  820. # Endpoint to send request to reload datasources
  821. reloadURL: "http://localhost:3000/api/admin/provisioning/datasources/reload"
  822. # Absolute path to shell script to execute after a datasource got reloaded
  823. script: null
  824. skipReload: false
  825. # Deploy the datasource sidecar as an initContainer in addition to a container.
  826. # This is needed if skipReload is true, to load any datasources defined at startup time.
  827. initDatasources: false
  828. # Sets the size limit of the datasource sidecar emptyDir volume
  829. sizeLimit: {}
  830. plugins:
  831. enabled: false
  832. # Additional environment variables for the plugins sidecar
  833. env: {}
  834. # Do not reprocess already processed unchanged resources on k8s API reconnect.
  835. # ignoreAlreadyProcessed: true
  836. # label that the configmaps with plugins are marked with
  837. label: grafana_plugin
  838. # value of label that the configmaps with plugins are set to
  839. labelValue: ""
  840. # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
  841. # logLevel: INFO
  842. # If specified, the sidecar will search for plugin config-maps inside this namespace.
  843. # Otherwise the namespace in which the sidecar is running will be used.
  844. # It's also possible to specify ALL to search in all namespaces
  845. searchNamespace: null
  846. # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
  847. watchMethod: WATCH
  848. # search in configmap, secret or both
  849. resource: both
  850. # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
  851. # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
  852. # watchServerTimeout: 3600
  853. #
  854. # watchClientTimeout: is a client-side timeout, configuring your local socket.
  855. # If you have a network outage dropping all packets with no RST/FIN,
  856. # this is how long your client waits before realizing & dropping the connection.
  857. # defaults to 66sec (sic!)
  858. # watchClientTimeout: 60
  859. #
  860. # Endpoint to send request to reload plugins
  861. reloadURL: "http://localhost:3000/api/admin/provisioning/plugins/reload"
  862. # Absolute path to shell script to execute after a plugin got reloaded
  863. script: null
  864. skipReload: false
  865. # Deploy the datasource sidecar as an initContainer in addition to a container.
  866. # This is needed if skipReload is true, to load any plugins defined at startup time.
  867. initPlugins: false
  868. # Sets the size limit of the plugin sidecar emptyDir volume
  869. sizeLimit: {}
  870. notifiers:
  871. enabled: false
  872. # Additional environment variables for the notifierssidecar
  873. env: {}
  874. # Do not reprocess already processed unchanged resources on k8s API reconnect.
  875. # ignoreAlreadyProcessed: true
  876. # label that the configmaps with notifiers are marked with
  877. label: grafana_notifier
  878. # value of label that the configmaps with notifiers are set to
  879. labelValue: ""
  880. # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
  881. # logLevel: INFO
  882. # If specified, the sidecar will search for notifier config-maps inside this namespace.
  883. # Otherwise the namespace in which the sidecar is running will be used.
  884. # It's also possible to specify ALL to search in all namespaces
  885. searchNamespace: null
  886. # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
  887. watchMethod: WATCH
  888. # search in configmap, secret or both
  889. resource: both
  890. # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
  891. # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
  892. # watchServerTimeout: 3600
  893. #
  894. # watchClientTimeout: is a client-side timeout, configuring your local socket.
  895. # If you have a network outage dropping all packets with no RST/FIN,
  896. # this is how long your client waits before realizing & dropping the connection.
  897. # defaults to 66sec (sic!)
  898. # watchClientTimeout: 60
  899. #
  900. # Endpoint to send request to reload notifiers
  901. reloadURL: "http://localhost:3000/api/admin/provisioning/notifications/reload"
  902. # Absolute path to shell script to execute after a notifier got reloaded
  903. script: null
  904. skipReload: false
  905. # Deploy the notifier sidecar as an initContainer in addition to a container.
  906. # This is needed if skipReload is true, to load any notifiers defined at startup time.
  907. initNotifiers: false
  908. # Sets the size limit of the notifier sidecar emptyDir volume
  909. sizeLimit: {}
  910. ## Override the deployment namespace
  911. ##
  912. namespaceOverride: ""
  913. ## Number of old ReplicaSets to retain
  914. ##
  915. revisionHistoryLimit: 10
  916. ## Add a seperate remote image renderer deployment/service
  917. imageRenderer:
  918. deploymentStrategy: {}
  919. # Enable the image-renderer deployment & service
  920. enabled: false
  921. replicas: 1
  922. image:
  923. # image-renderer Image repository
  924. repository: grafana/grafana-image-renderer
  925. # image-renderer Image tag
  926. tag: latest
  927. # image-renderer Image sha (optional)
  928. sha: ""
  929. # image-renderer ImagePullPolicy
  930. pullPolicy: Always
  931. # extra environment variables
  932. env:
  933. HTTP_HOST: "0.0.0.0"
  934. # RENDERING_ARGS: --no-sandbox,--disable-gpu,--window-size=1280x758
  935. # RENDERING_MODE: clustered
  936. # IGNORE_HTTPS_ERRORS: true
  937. # image-renderer deployment serviceAccount
  938. serviceAccountName: ""
  939. # image-renderer deployment securityContext
  940. securityContext: {}
  941. # image-renderer deployment container securityContext
  942. containerSecurityContext:
  943. capabilities:
  944. drop: ['ALL']
  945. allowPrivilegeEscalation: false
  946. readOnlyRootFilesystem: true
  947. # image-renderer deployment Host Aliases
  948. hostAliases: []
  949. # image-renderer deployment priority class
  950. priorityClassName: ''
  951. service:
  952. # Enable the image-renderer service
  953. enabled: true
  954. # image-renderer service port name
  955. portName: 'http'
  956. # image-renderer service port used by both service and deployment
  957. port: 8081
  958. targetPort: 8081
  959. # Adds the appProtocol field to the image-renderer service. This allows to work with istio protocol selection. Ex: "http" or "tcp"
  960. appProtocol: ""
  961. # If https is enabled in Grafana, this needs to be set as 'https' to correctly configure the callback used in Grafana
  962. grafanaProtocol: http
  963. # In case a sub_path is used this needs to be added to the image renderer callback
  964. grafanaSubPath: ""
  965. # name of the image-renderer port on the pod
  966. podPortName: http
  967. # number of image-renderer replica sets to keep
  968. revisionHistoryLimit: 10
  969. networkPolicy:
  970. # Enable a NetworkPolicy to limit inbound traffic to only the created grafana pods
  971. limitIngress: true
  972. # Enable a NetworkPolicy to limit outbound traffic to only the created grafana pods
  973. limitEgress: false
  974. resources: {}
  975. # limits:
  976. # cpu: 100m
  977. # memory: 100Mi
  978. # requests:
  979. # cpu: 50m
  980. # memory: 50Mi
  981. ## Node labels for pod assignment
  982. ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  983. #
  984. nodeSelector: {}
  985. ## Tolerations for pod assignment
  986. ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  987. ##
  988. tolerations: []
  989. ## Affinity for pod assignment (evaluated as template)
  990. ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  991. ##
  992. affinity: {}
  993. networkPolicy:
  994. ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now.
  995. ##
  996. enabled: false
  997. ## @param networkPolicy.allowExternal Don't require client label for connections
  998. ## The Policy model to apply. When set to false, only pods with the correct
  999. ## client label will have network access to grafana port defined.
  1000. ## When true, grafana will accept connections from any source
  1001. ## (with the correct destination port).
  1002. ##
  1003. ingress: true
  1004. ## @param networkPolicy.ingress When true enables the creation
  1005. ## an ingress network policy
  1006. ##
  1007. allowExternal: true
  1008. ## @param networkPolicy.explicitNamespacesSelector A Kubernetes LabelSelector to explicitly select namespaces from which traffic could be allowed
  1009. ## If explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace
  1010. ## and that match other criteria, the ones that have the good label, can reach the grafana.
  1011. ## But sometimes, we want the grafana to be accessible to clients from other namespaces, in this case, we can use this
  1012. ## LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added.
  1013. ##
  1014. ## Example:
  1015. ## explicitNamespacesSelector:
  1016. ## matchLabels:
  1017. ## role: frontend
  1018. ## matchExpressions:
  1019. ## - {key: role, operator: In, values: [frontend]}
  1020. ##
  1021. explicitNamespacesSelector: {}
  1022. ##
  1023. ##
  1024. ##
  1025. ##
  1026. ##
  1027. ##
  1028. egress:
  1029. ## @param networkPolicy.egress.enabled When enabled, an egress network policy will be
  1030. ## created allowing grafana to connect to external data sources from kubernetes cluster.
  1031. enabled: false
  1032. ##
  1033. ## @param networkPolicy.egress.ports Add individual ports to be allowed by the egress
  1034. ports: []
  1035. ## Add ports to the egress by specifying - port: <port number>
  1036. ## E.X.
  1037. ## ports:
  1038. ## - port: 80
  1039. ## - port: 443
  1040. ##
  1041. ##
  1042. ##
  1043. ##
  1044. ##
  1045. ##
  1046. # Enable backward compatibility of kubernetes where version below 1.13 doesn't have the enableServiceLinks option
  1047. enableKubeBackwardCompatibility: false
  1048. useStatefulSet: false
  1049. # Create a dynamic manifests via values:
  1050. extraObjects: []
  1051. # - apiVersion: "kubernetes-client.io/v1"
  1052. # kind: ExternalSecret
  1053. # metadata:
  1054. # name: grafana-secrets
  1055. # spec:
  1056. # backendType: gcpSecretsManager
  1057. # data:
  1058. # - key: grafana-admin-password
  1059. # name: adminPassword