values.yaml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643
  1. rbac:
  2. create: true
  3. pspEnabled: true
  4. pspUseAppArmor: true
  5. namespaced: false
  6. extraRoleRules: []
  7. # - apiGroups: []
  8. # resources: []
  9. # verbs: []
  10. extraClusterRoleRules: []
  11. # - apiGroups: []
  12. # resources: []
  13. # verbs: []
  14. serviceAccount:
  15. create: true
  16. name:
  17. nameTest:
  18. # annotations:
  19. # eks.amazonaws.com/role-arn: arn:aws:iam::123456789000:role/iam-role-name-here
  20. replicas: 1
  21. ## See `kubectl explain poddisruptionbudget.spec` for more
  22. ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
  23. podDisruptionBudget: {}
  24. # minAvailable: 1
  25. # maxUnavailable: 1
  26. ## See `kubectl explain deployment.spec.strategy` for more
  27. ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  28. deploymentStrategy:
  29. type: RollingUpdate
  30. readinessProbe:
  31. httpGet:
  32. path: /api/health
  33. port: 3000
  34. livenessProbe:
  35. httpGet:
  36. path: /api/health
  37. port: 3000
  38. initialDelaySeconds: 60
  39. timeoutSeconds: 30
  40. failureThreshold: 10
  41. ## Use an alternate scheduler, e.g. "stork".
  42. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  43. ##
  44. # schedulerName: "default-scheduler"
  45. image:
  46. repository: registry.cn-beijing.aliyuncs.com/dotbalo/grafana
  47. tag: 7.2.1
  48. sha: ""
  49. pullPolicy: IfNotPresent
  50. ## Optionally specify an array of imagePullSecrets.
  51. ## Secrets must be manually created in the namespace.
  52. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  53. ##
  54. # pullSecrets:
  55. # - myRegistrKeySecretName
  56. testFramework:
  57. enabled: true
  58. image: "bats/bats"
  59. tag: "v1.1.0"
  60. imagePullPolicy: IfNotPresent
  61. securityContext: {}
  62. securityContext:
  63. runAsUser: 472
  64. runAsGroup: 472
  65. fsGroup: 472
  66. extraConfigmapMounts: []
  67. # - name: certs-configmap
  68. # mountPath: /etc/grafana/ssl/
  69. # subPath: certificates.crt # (optional)
  70. # configMap: certs-configmap
  71. # readOnly: true
  72. extraEmptyDirMounts: []
  73. # - name: provisioning-notifiers
  74. # mountPath: /etc/grafana/provisioning/notifiers
  75. ## Assign a PriorityClassName to pods if set
  76. # priorityClassName:
  77. downloadDashboardsImage:
  78. repository: curlimages/curl
  79. tag: 7.70.0
  80. sha: ""
  81. pullPolicy: IfNotPresent
  82. downloadDashboards:
  83. env: {}
  84. resources: {}
  85. ## Pod Annotations
  86. # podAnnotations: {}
  87. ## Pod Labels
  88. # podLabels: {}
  89. podPortName: grafana
  90. ## Deployment annotations
  91. # annotations: {}
  92. ## Expose the grafana service to be accessed from outside the cluster (LoadBalancer service).
  93. ## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.
  94. ## ref: http://kubernetes.io/docs/user-guide/services/
  95. ##
  96. service:
  97. type: ClusterIP
  98. port: 80
  99. targetPort: 3000
  100. # targetPort: 4181 To be used with a proxy extraContainer
  101. annotations: {}
  102. labels: {}
  103. portName: service
  104. serviceMonitor:
  105. ## If true, a ServiceMonitor CRD is created for a prometheus operator
  106. ## https://github.com/coreos/prometheus-operator
  107. ##
  108. enabled: false
  109. path: /metrics
  110. # namespace: monitoring (defaults to use the namespace this chart is deployed to)
  111. labels: {}
  112. interval: 1m
  113. scrapeTimeout: 30s
  114. relabelings: []
  115. extraExposePorts: []
  116. # - name: keycloak
  117. # port: 8080
  118. # targetPort: 8080
  119. # type: ClusterIP
  120. # overrides pod.spec.hostAliases in the grafana deployment's pods
  121. hostAliases: []
  122. # - ip: "1.2.3.4"
  123. # hostnames:
  124. # - "my.host.com"
  125. ingress:
  126. enabled: false
  127. # Values can be templated
  128. annotations: {}
  129. # kubernetes.io/ingress.class: nginx
  130. # kubernetes.io/tls-acme: "true"
  131. labels: {}
  132. path: /
  133. hosts:
  134. - chart-example.local
  135. ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
  136. extraPaths: []
  137. # - path: /*
  138. # backend:
  139. # serviceName: ssl-redirect
  140. # servicePort: use-annotation
  141. tls: []
  142. # - secretName: chart-example-tls
  143. # hosts:
  144. # - chart-example.local
  145. resources: {}
  146. # limits:
  147. # cpu: 100m
  148. # memory: 128Mi
  149. # requests:
  150. # cpu: 100m
  151. # memory: 128Mi
  152. ## Node labels for pod assignment
  153. ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  154. #
  155. nodeSelector: {}
  156. ## Tolerations for pod assignment
  157. ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  158. ##
  159. tolerations: []
  160. ## Affinity for pod assignment
  161. ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  162. ##
  163. affinity: {}
  164. extraInitContainers: []
  165. ## Enable an Specify container in extraContainers. This is meant to allow adding an authentication proxy to a grafana pod
  166. extraContainers: |
  167. # - name: proxy
  168. # image: quay.io/gambol99/keycloak-proxy:latest
  169. # args:
  170. # - -provider=github
  171. # - -client-id=
  172. # - -client-secret=
  173. # - -github-org=<ORG_NAME>
  174. # - -email-domain=*
  175. # - -cookie-secret=
  176. # - -http-address=http://0.0.0.0:4181
  177. # - -upstream-url=http://127.0.0.1:3000
  178. # ports:
  179. # - name: proxy-web
  180. # containerPort: 4181
  181. ## Volumes that can be used in init containers that will not be mounted to deployment pods
  182. extraContainerVolumes: []
  183. # - name: volume-from-secret
  184. # secret:
  185. # secretName: secret-to-mount
  186. # - name: empty-dir-volume
  187. # emptyDir: {}
  188. ## Enable persistence using Persistent Volume Claims
  189. ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
  190. ##
  191. persistence:
  192. type: pvc
  193. enabled: false
  194. # storageClassName: default
  195. accessModes:
  196. - ReadWriteOnce
  197. size: 10Gi
  198. # annotations: {}
  199. finalizers:
  200. - kubernetes.io/pvc-protection
  201. # subPath: ""
  202. # existingClaim:
  203. initChownData:
  204. ## If false, data ownership will not be reset at startup
  205. ## This allows the prometheus-server to be run with an arbitrary user
  206. ##
  207. enabled: true
  208. ## initChownData container image
  209. ##
  210. image:
  211. repository: busybox
  212. tag: "1.31.1"
  213. sha: ""
  214. pullPolicy: IfNotPresent
  215. ## initChownData resource requests and limits
  216. ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
  217. ##
  218. resources: {}
  219. # limits:
  220. # cpu: 100m
  221. # memory: 128Mi
  222. # requests:
  223. # cpu: 100m
  224. # memory: 128Mi
  225. # Administrator credentials when not using an existing secret (see below)
  226. adminUser: admin
  227. # adminPassword: strongpassword
  228. # Use an existing secret for the admin user.
  229. admin:
  230. existingSecret: ""
  231. userKey: admin-user
  232. passwordKey: admin-password
  233. ## Define command to be executed at startup by grafana container
  234. ## Needed if using `vault-env` to manage secrets (ref: https://banzaicloud.com/blog/inject-secrets-into-pods-vault/)
  235. ## Default is "run.sh" as defined in grafana's Dockerfile
  236. # command:
  237. # - "sh"
  238. # - "/run.sh"
  239. ## Use an alternate scheduler, e.g. "stork".
  240. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  241. ##
  242. # schedulerName:
  243. ## Extra environment variables that will be pass onto deployment pods
  244. ##
  245. ## to provide grafana with access to CloudWatch on AWS EKS:
  246. ## 1. create an iam role of type "Web identity" with provider oidc.eks.* (note the provider for later)
  247. ## 2. edit the "Trust relationships" of the role, add a line inside the StringEquals clause using the
  248. ## same oidc eks provider as noted before (same as the existing line)
  249. ## also, replace NAMESPACE and prometheus-operator-grafana with the service account namespace and name
  250. ##
  251. ## "oidc.eks.us-east-1.amazonaws.com/id/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:sub": "system:serviceaccount:NAMESPACE:prometheus-operator-grafana",
  252. ##
  253. ## 3. attach a policy to the role, you can use a built in policy called CloudWatchReadOnlyAccess
  254. ## 4. use the following env: (replace 123456789000 and iam-role-name-here with your aws account number and role name)
  255. ##
  256. ## env:
  257. ## AWS_ROLE_ARN: arn:aws:iam::123456789000:role/iam-role-name-here
  258. ## AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/token
  259. ## AWS_REGION: us-east-1
  260. ##
  261. ## 5. uncomment the EKS section in extraSecretMounts: below
  262. ## 6. uncomment the annotation section in the serviceAccount: above
  263. ## make sure to replace arn:aws:iam::123456789000:role/iam-role-name-here with your role arn
  264. env: {}
  265. ## "valueFrom" environment variable references that will be added to deployment pods
  266. ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/#envvarsource-v1-core
  267. ## Renders in container spec as:
  268. ## env:
  269. ## ...
  270. ## - name: <key>
  271. ## valueFrom:
  272. ## <value rendered as YAML>
  273. envValueFrom: {}
  274. ## The name of a secret in the same kubernetes namespace which contain values to be added to the environment
  275. ## This can be useful for auth tokens, etc. Value is templated.
  276. envFromSecret: ""
  277. ## Sensible environment variables that will be rendered as new secret object
  278. ## This can be useful for auth tokens, etc
  279. envRenderSecret: {}
  280. ## Additional grafana server secret mounts
  281. # Defines additional mounts with secrets. Secrets must be manually created in the namespace.
  282. extraSecretMounts: []
  283. # - name: secret-files
  284. # mountPath: /etc/secrets
  285. # secretName: grafana-secret-files
  286. # readOnly: true
  287. # subPath: ""
  288. #
  289. # for AWS EKS (cloudwatch) use the following (see also instruction in env: above)
  290. # - name: aws-iam-token
  291. # mountPath: /var/run/secrets/eks.amazonaws.com/serviceaccount
  292. # readOnly: true
  293. # projected:
  294. # defaultMode: 420
  295. # sources:
  296. # - serviceAccountToken:
  297. # audience: sts.amazonaws.com
  298. # expirationSeconds: 86400
  299. # path: token
  300. ## Additional grafana server volume mounts
  301. # Defines additional volume mounts.
  302. extraVolumeMounts: []
  303. # - name: extra-volume
  304. # mountPath: /mnt/volume
  305. # readOnly: true
  306. # existingClaim: volume-claim
  307. ## Pass the plugins you want installed as a list.
  308. ##
  309. plugins: []
  310. # - digrich-bubblechart-panel
  311. # - grafana-clock-panel
  312. ## Configure grafana datasources
  313. ## ref: http://docs.grafana.org/administration/provisioning/#datasources
  314. ##
  315. datasources: {}
  316. # datasources.yaml:
  317. # apiVersion: 1
  318. # datasources:
  319. # - name: Prometheus
  320. # type: prometheus
  321. # url: http://prometheus-prometheus-server
  322. # access: proxy
  323. # isDefault: true
  324. # - name: CloudWatch
  325. # type: cloudwatch
  326. # access: proxy
  327. # uid: cloudwatch
  328. # editable: false
  329. # jsonData:
  330. # authType: credentials
  331. # defaultRegion: us-east-1
  332. ## Configure notifiers
  333. ## ref: http://docs.grafana.org/administration/provisioning/#alert-notification-channels
  334. ##
  335. notifiers: {}
  336. # notifiers.yaml:
  337. # notifiers:
  338. # - name: email-notifier
  339. # type: email
  340. # uid: email1
  341. # # either:
  342. # org_id: 1
  343. # # or
  344. # org_name: Main Org.
  345. # is_default: true
  346. # settings:
  347. # addresses: an_email_address@example.com
  348. # delete_notifiers:
  349. ## Configure grafana dashboard providers
  350. ## ref: http://docs.grafana.org/administration/provisioning/#dashboards
  351. ##
  352. ## `path` must be /var/lib/grafana/dashboards/<provider_name>
  353. ##
  354. dashboardProviders: {}
  355. # dashboardproviders.yaml:
  356. # apiVersion: 1
  357. # providers:
  358. # - name: 'default'
  359. # orgId: 1
  360. # folder: ''
  361. # type: file
  362. # disableDeletion: false
  363. # editable: true
  364. # options:
  365. # path: /var/lib/grafana/dashboards/default
  366. ## Configure grafana dashboard to import
  367. ## NOTE: To use dashboards you must also enable/configure dashboardProviders
  368. ## ref: https://grafana.com/dashboards
  369. ##
  370. ## dashboards per provider, use provider name as key.
  371. ##
  372. dashboards: {}
  373. # default:
  374. # some-dashboard:
  375. # json: |
  376. # $RAW_JSON
  377. # custom-dashboard:
  378. # file: dashboards/custom-dashboard.json
  379. # prometheus-stats:
  380. # gnetId: 2
  381. # revision: 2
  382. # datasource: Prometheus
  383. # local-dashboard:
  384. # url: https://example.com/repository/test.json
  385. # local-dashboard-base64:
  386. # url: https://example.com/repository/test-b64.json
  387. # b64content: true
  388. ## Reference to external ConfigMap per provider. Use provider name as key and ConfigMap name as value.
  389. ## A provider dashboards must be defined either by external ConfigMaps or in values.yaml, not in both.
  390. ## ConfigMap data example:
  391. ##
  392. ## data:
  393. ## example-dashboard.json: |
  394. ## RAW_JSON
  395. ##
  396. dashboardsConfigMaps: {}
  397. # default: ""
  398. ## Grafana's primary configuration
  399. ## NOTE: values in map will be converted to ini format
  400. ## ref: http://docs.grafana.org/installation/configuration/
  401. ##
  402. grafana.ini:
  403. paths:
  404. data: /var/lib/grafana/data
  405. logs: /var/log/grafana
  406. plugins: /var/lib/grafana/plugins
  407. provisioning: /etc/grafana/provisioning
  408. analytics:
  409. check_for_updates: true
  410. log:
  411. mode: console
  412. grafana_net:
  413. url: https://grafana.net
  414. ## grafana Authentication can be enabled with the following values on grafana.ini
  415. # server:
  416. # The full public facing url you use in browser, used for redirects and emails
  417. # root_url:
  418. # https://grafana.com/docs/grafana/latest/auth/github/#enable-github-in-grafana
  419. # auth.github:
  420. # enabled: false
  421. # allow_sign_up: false
  422. # scopes: user:email,read:org
  423. # auth_url: https://github.com/login/oauth/authorize
  424. # token_url: https://github.com/login/oauth/access_token
  425. # api_url: https://api.github.com/user
  426. # team_ids:
  427. # allowed_organizations:
  428. # client_id:
  429. # client_secret:
  430. ## LDAP Authentication can be enabled with the following values on grafana.ini
  431. ## NOTE: Grafana will fail to start if the value for ldap.toml is invalid
  432. # auth.ldap:
  433. # enabled: true
  434. # allow_sign_up: true
  435. # config_file: /etc/grafana/ldap.toml
  436. ## Grafana's LDAP configuration
  437. ## Templated by the template in _helpers.tpl
  438. ## NOTE: To enable the grafana.ini must be configured with auth.ldap.enabled
  439. ## ref: http://docs.grafana.org/installation/configuration/#auth-ldap
  440. ## ref: http://docs.grafana.org/installation/ldap/#configuration
  441. ldap:
  442. enabled: false
  443. # `existingSecret` is a reference to an existing secret containing the ldap configuration
  444. # for Grafana in a key `ldap-toml`.
  445. existingSecret: ""
  446. # `config` is the content of `ldap.toml` that will be stored in the created secret
  447. config: ""
  448. # config: |-
  449. # verbose_logging = true
  450. # [[servers]]
  451. # host = "my-ldap-server"
  452. # port = 636
  453. # use_ssl = true
  454. # start_tls = false
  455. # ssl_skip_verify = false
  456. # bind_dn = "uid=%s,ou=users,dc=myorg,dc=com"
  457. ## Grafana's SMTP configuration
  458. ## NOTE: To enable, grafana.ini must be configured with smtp.enabled
  459. ## ref: http://docs.grafana.org/installation/configuration/#smtp
  460. smtp:
  461. # `existingSecret` is a reference to an existing secret containing the smtp configuration
  462. # for Grafana.
  463. existingSecret: ""
  464. userKey: "user"
  465. passwordKey: "password"
  466. ## Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders
  467. ## Requires at least Grafana 5 to work and can't be used together with parameters dashboardProviders, datasources and dashboards
  468. sidecar:
  469. image:
  470. repository: kiwigrid/k8s-sidecar
  471. tag: 0.1.209
  472. sha: ""
  473. imagePullPolicy: IfNotPresent
  474. resources: {}
  475. # limits:
  476. # cpu: 100m
  477. # memory: 100Mi
  478. # requests:
  479. # cpu: 50m
  480. # memory: 50Mi
  481. # skipTlsVerify Set to true to skip tls verification for kube api calls
  482. # skipTlsVerify: true
  483. enableUniqueFilenames: false
  484. dashboards:
  485. enabled: false
  486. SCProvider: true
  487. # label that the configmaps with dashboards are marked with
  488. label: grafana_dashboard
  489. # folder in the pod that should hold the collected dashboards (unless `defaultFolderName` is set)
  490. folder: /tmp/dashboards
  491. # The default folder name, it will create a subfolder under the `folder` and put dashboards in there instead
  492. defaultFolderName: null
  493. # If specified, the sidecar will search for dashboard config-maps inside this namespace.
  494. # Otherwise the namespace in which the sidecar is running will be used.
  495. # It's also possible to specify ALL to search in all namespaces
  496. searchNamespace: null
  497. # provider configuration that lets grafana manage the dashboards
  498. provider:
  499. # name of the provider, should be unique
  500. name: sidecarProvider
  501. # orgid as configured in grafana
  502. orgid: 1
  503. # folder in which the dashboards should be imported in grafana
  504. folder: ''
  505. # type of the provider
  506. type: file
  507. # disableDelete to activate a import-only behaviour
  508. disableDelete: false
  509. # allow updating provisioned dashboards from the UI
  510. allowUiUpdates: false
  511. # allow Grafana to replicate dashboard structure from filesystem
  512. foldersFromFilesStructure: false
  513. datasources:
  514. enabled: false
  515. # label that the configmaps with datasources are marked with
  516. label: grafana_datasource
  517. # If specified, the sidecar will search for datasource config-maps inside this namespace.
  518. # Otherwise the namespace in which the sidecar is running will be used.
  519. # It's also possible to specify ALL to search in all namespaces
  520. searchNamespace: null
  521. notifiers:
  522. enabled: false
  523. # label that the configmaps with notifiers are marked with
  524. label: grafana_notifier
  525. # If specified, the sidecar will search for notifier config-maps inside this namespace.
  526. # Otherwise the namespace in which the sidecar is running will be used.
  527. # It's also possible to specify ALL to search in all namespaces
  528. searchNamespace: null
  529. ## Override the deployment namespace
  530. ##
  531. namespaceOverride: ""
  532. ## Number of old ReplicaSets to retain
  533. ##
  534. revisionHistoryLimit: 10
  535. ## Add a seperate remote image renderer deployment/service
  536. imageRenderer:
  537. # Enable the image-renderer deployment & service
  538. enabled: false
  539. replicas: 1
  540. image:
  541. # image-renderer Image repository
  542. repository: grafana/grafana-image-renderer
  543. # image-renderer Image tag
  544. tag: latest
  545. # image-renderer Image sha (optional)
  546. sha: ""
  547. # image-renderer ImagePullPolicy
  548. pullPolicy: Always
  549. # extra environment variables
  550. env: {}
  551. # RENDERING_ARGS: --disable-gpu,--window-size=1280x758
  552. # RENDERING_MODE: clustered
  553. # image-renderer deployment securityContext
  554. securityContext: {}
  555. # image-renderer deployment Host Aliases
  556. hostAliases: []
  557. # image-renderer deployment priority class
  558. priorityClassName: ''
  559. service:
  560. # image-renderer service port name
  561. portName: 'http'
  562. # image-renderer service port used by both service and deployment
  563. port: 8081
  564. # name of the image-renderer port on the pod
  565. podPortName: http
  566. # number of image-renderer replica sets to keep
  567. revisionHistoryLimit: 10
  568. networkPolicy:
  569. # Enable a NetworkPolicy to limit inbound traffic to only the created grafana pods
  570. limitIngress: true
  571. # Enable a NetworkPolicy to limit outbound traffic to only the created grafana pods
  572. limitEgress: false
  573. resources: {}
  574. # limits:
  575. # cpu: 100m
  576. # memory: 100Mi
  577. # requests:
  578. # cpu: 50m
  579. # memory: 50Mi