## @section Percona Monitoring and Management (PMM) parameters ## Default values for PMM. ## This is a YAML-formatted file. ## Declare variables to be passed into your templates. ## PMM image version ## ref: https://hub.docker.com/r/percona/pmm-server/tags ## @param image.repository PMM image repository ## @param image.pullPolicy PMM image pull policy ## @param image.tag PMM image tag (immutable tags are recommended) ## @param image.imagePullSecrets Global Docker registry secret names as an array ## image: repository: percona/pmm-server pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: "2.39.0" imagePullSecrets: [] ## PMM environment variables ## ref: https://docs.percona.com/percona-monitoring-and-management/setting-up/server/docker.html#environment-variables ## pmmEnv: ## @param pmmEnv.DISABLE_UPDATES Disables a periodic check for new PMM versions as well as ability to apply upgrades using the UI (need to be disabled in k8s environment as updates rolled with helm/container update) ## DISABLE_UPDATES: "1" # ENABLE_DBAAS: "1" # optional variables to integrate Grafana with internal iDP, see also secret part # GF_AUTH_GENERIC_OAUTH_ENABLED: 'true' # GF_AUTH_GENERIC_OAUTH_SCOPES: '' # GF_AUTH_GENERIC_OAUTH_AUTH_URL: '' # GF_AUTH_GENERIC_OAUTH_TOKEN_URL: '' # GF_AUTH_GENERIC_OAUTH_API_URL: '' # GF_AUTH_GENERIC_OAUTH_ALLOWED_DOMAINS: '' ## @param pmmResources optional [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) requested for [PMM container](https://docs.percona.com/percona-monitoring-and-management/setting-up/server/index.html#set-up-pmm-server) ## pmmResources: ## requests: ## memory: "32Gi" ## cpu: "8" ## limits: ## memory: "64Gi" ## cpu: "32" pmmResources: {} ## Readiness probe Config ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes ## @param readyProbeConf.initialDelaySeconds Number of seconds after the container has started before readiness probes is initiated ## @param readyProbeConf.periodSeconds How often (in seconds) to perform the probe ## @param readyProbeConf.failureThreshold When a probe fails, Kubernetes will try failureThreshold times before giving up ## readyProbeConf: initialDelaySeconds: 1 periodSeconds: 5 failureThreshold: 6 ## @section PMM secrets ## secret: ## @param secret.name Defines the name of the k8s secret that holds passwords and other secrets ## name: pmm-secret ## @param secret.create If true then secret will be generated by Helm chart. Otherwise it is expected to be created by user. ## create: true ## @param secret.pmm_password Initial PMM password - it changes only on the first deployment, ignored if PMM was already provisioned and just restarted. If PMM admin password is not set, it will be generated. ## E.g. ## pmm_password: admin ## ## To get password execute `kubectl get secret pmm-secret -o jsonpath='{.data.PMM_ADMIN_PASSWORD}' | base64 --decode` ## pmm_password: "" ## # GF_AUTH_GENERIC_OAUTH_CLIENT_ID optional client ID to integrate Grafana with internal iDP, requires other env defined as well under pmmEnv # GF_AUTH_GENERIC_OAUTH_CLIENT_ID: # GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET optional secret to integrate Grafana with internal iDP, requires other env defined as well under pmmEnv # GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET: ## @param certs Optional certificates, if not provided PMM would use generated self-signed certificates, ## please provide your own signed ssl certificates like this: ## certs: ## name: pmm-certs ## files: ## certificate.crt: ## certificate.key: ## ca-certs.pem: ## dhparam.pem: certs: {} ## @section PMM network configuration ## Service configuration ## service: ## @param service.name Service name that is dns name monitoring services would send data to. `monitoring-service` used by default by pmm-client in Percona operators. ## name: percona-pmm ## @param service.type Kubernetes Service type ## type: NodePort ## Ports 443 and/or 80 ## ports: ## @param service.ports[0].port https port number - port: 443 ## @param service.ports[0].targetPort target port to map for statefulset and ingress targetPort: https ## @param service.ports[0].protocol protocol for https protocol: TCP ## @param service.ports[0].name port name name: https ## @param service.ports[1].port http port number - port: 80 ## @param service.ports[1].targetPort target port to map for statefulset and ingress targetPort: http ## @param service.ports[1].protocol protocol for http protocol: TCP ## @param service.ports[1].name port name name: http ## Ingress controller configuration ## ingress: ## @param ingress.enabled -- Enable ingress controller resource enabled: false ## @param ingress.nginxInc -- Using ingress controller from NGINX Inc nginxInc: false ## @param ingress.annotations -- Ingress annotations configuration annotations: {} ## kubernetes.io/ingress.class: nginx ## kubernetes.io/tls-acme: "true" ### nginx proxy to https ## nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" ## @param ingress.community.annotations -- Ingress annotations configuration for community managed ingress (nginxInc = false) community: annotations: {} ## kubernetes.io/ingress.class: nginx ## kubernetes.io/tls-acme: "true" ## @param ingress.ingressClassName -- Sets the ingress controller class name to use. ingressClassName: "" ## Ingress resource hostnames and path mappings hosts: ## @param ingress.hosts[0].host hostname - host: chart-example.local ## @param ingress.hosts[0].paths path mapping paths: [] ## @param ingress.pathType -- How ingress paths should be treated. pathType: Prefix ## @param ingress.tls -- Ingress TLS configuration tls: [] ## - secretName: chart-example-tls ## hosts: ## - chart-example.local ## @section PMM storage configuration ## Claiming storage for PMM using Persistent Volume Claims (PVC) ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/ ## storage: ## @param storage.name name of PVC name: pmm-storage ## @param storage.storageClassName optional PMM data Persistent Volume Storage Class ## If defined, storageClassName: ## If set to "-", storageClassName: "", which disables dynamic provisioning ## If undefined (the default) or set to null, no storageClassName spec is ## set, choosing the default provisioner. (gp2 on AWS, standard on ## GKE, AWS & OpenStack) ## storageClassName: "" ## ## @param storage.size size of storage [depends](https://docs.percona.com/percona-monitoring-and-management/setting-up/server/index.html#set-up-pmm-server) on number of monitored services and data retention ## size: 10Gi ## ## @param storage.dataSource VolumeSnapshot to start from ## dataSource: {} ## name: before-vX.Y.Z-upgrade ## kind: VolumeSnapshot ## apiGroup: snapshot.storage.k8s.io ## ## @param storage.selector select existing PersistentVolume ## selector: {} ## matchLabels: ## release: "stable" ## matchExpressions: ## - key: environment ## operator: In ## values: ## - dev ## @section PMM kubernetes configurations ## @param nameOverride String to partially override common.names.fullname template with a string (will prepend the release name) ## nameOverride: "" ## @param extraLabels Labels to add to all deployed objects ## extraLabels: {} ## Pods Service Account ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ ## @param serviceAccount.create Specifies whether a ServiceAccount should be created ## @param serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`. ## @param serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template. ## serviceAccount: create: true annotations: {} name: "pmm-service-account" ## @param podAnnotations Pod annotations ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ ## podAnnotations: {} ## @param podSecurityContext Configure Pods Security Context ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod ## E.g ## podSecurityContext: ## fsGroup: 2000 ## podSecurityContext: {} ## @param securityContext Configure Container Security Context ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod ## securityContext.capabilities The capabilities to add/drop when running containers ## securityContext.runAsUser Set pmm containers' Security Context runAsUser ## securityContext.runAsNonRoot Set pmm container's Security Context runAsNonRoot ## E.g. ## securityContext: ## capabilities: ## drop: ## - ALL ## readOnlyRootFilesystem: true ## runAsNonRoot: true ## runAsUser: 1000 securityContext: {} ## @param nodeSelector Node labels for pod assignment ## Ref: https://kubernetes.io/docs/user-guide/node-selection/ ## nodeSelector: {} ## @param tolerations Tolerations for pod assignment ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] ## @param affinity Affinity for pod assignment ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity ## affinity: {}