Files
service-catalog/manifests/helm/perses/0.21.0/values.yaml
T
wbsong111 6290322f1b Add VictoriaMetrics observability stack + sync catalog for monitoring test
- VM stack 10 charts: victoria-metrics-cluster/auth, victoria-logs-cluster,
  victoria-metrics-agent/alert, opentelemetry-collector, kube-state-metrics,
  prometheus-node-exporter, alertmanager, perses (JWT/OIDC, Infisical-ready)
- ArgoCD ApplicationSet (syncWave) + per-chart dip-values overlays
- doc/victoria-metrics-architecture.md, define-chart-resources updates
- includes pending working-tree changes (mlflow, kubeflow, apisix, CLAUDE.md)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 11:10:51 +09:00

498 lines
17 KiB
YAML

# Default values for perses.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
# -- Override name of the chart used in Kubernetes object names.
nameOverride: ""
# -- Override fully qualified app name
fullnameOverride: ""
## Image of Perses
##
image:
# -- Perses image registry
registry: docker.io
# -- Perses image repository and name
name: "persesdev/perses"
# -- Overrides the image tag whose default is the chart appVersion.
version: ""
# -- Default image pull policy
pullPolicy: IfNotPresent
additionalLabels:
{}
# app: perses
# -- Service account for Perses to use.
serviceAccount:
# -- Specifies whether a service account should be created
create: true
# -- Annotations to add to the service account
annotations: {}
# -- The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
# -- Expose the Perses service to be accessed from outside the cluster (LoadBalancer service).
# or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.
service:
# -- Annotations to add to the service
annotations: {}
# -- Labels to add to the service
labels: {}
# -- Service Type
type: "ClusterIP"
# -- Service Port Name
portName: http
# -- Service Port
port: 8080
# -- Perses running port
targetPort: 8080
serviceMonitor:
# -- Create a serviceMonitor for Perses
selfMonitor: false
# -- Labels to add to the ServiceMonitor so that Prometheus can discover it.
# These labels should match the 'serviceMonitorSelector.matchLabels' defined in your Prometheus CR.
labels: {}
selector:
# -- Selector used by the ServiceMonitor to find which Perses service to scrape metrics from.
# These matchLabels should match the labels on your Perses service.
matchLabels: {}
# -- Interval for the serviceMonitor
interval: 30s
# -- Statefulset Annotations
annotations: {}
# -- Number of pod replicas.
replicas: 1
# -- Node tolerations for server scheduling to nodes with taints
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
##
tolerations:
[]
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
# -- Node labels for Perses pod assignment
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
##
nodeSelector: {}
## Pod affinity
##
affinity: {}
# -- Pod anti-affinity can prevent the scheduler from placing Perses replicas on the same node.
## The value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
## The default value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
##
podAntiAffinity: ""
# -- If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
##
podAntiAffinityTopologyKey: kubernetes.io/hostname
# -- Pod topology spread constraints
## ref. https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
topologySpreadConstraints: []
# -- Log level for Perses be configured in
# available options "panic", "error", "warning", "info", "debug", "trace"
logLevel: info
# -- Liveness probe configuration
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
livenessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 60
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
# -- Readiness probe configuration
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
readinessProbe:
enabled: true
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
# -- Additional arguments to pass to perses.
# Set to null for argumentless flags
extraArgs:
{}
# web.hide-port: null
# -- Additional volumes on the output StatefulSet definition.
volumes: []
# -- Additional VolumeMounts on the output StatefulSet definition.
volumeMounts: []
# -- OCI artifacts configuration for mounting OCI images as volumes.
# This feature allows you to package Perses manifests (dashboards, datasources, projects, etc.)
# as OCI images and mount them directly into the Perses container. The mounted manifests will be
# automatically loaded by Perses provisioning system when mounted at the provisioning path.
#
# Use cases:
# - Distribute dashboards as versioned OCI images
# - Deploy datasource configurations from container registries
# - Enable immutable configuration deployments with rollback capabilities
#
# Requirements: Kubernetes v1.31+ and ImageVolume feature gate enabled
# Note: OCI artifacts are inherently read-only
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/image-volumes/
ociArtifacts:
{}
# name: perses-manifests
# image:
# reference: "registry.example.com/perses-manifests:v1.0.0"
# pullPolicy: Always # Options: Always, IfNotPresent, Never
# mountPath: "/etc/perses/provisioning" # Should match provisioning.folders path
# # Optional: Mount specific path from image
# subPath: "configs/production"
# -- TLS configuration for mounting certificates from Kubernetes secrets
tls:
# -- Enable TLS certificate mounting
enabled: false
# -- CA Certificate configuration
# Certificates will be mounted to the directory specified in mountPath
caCert:
# -- Enable CA certificate mounting
enabled: false
# -- Name of the Kubernetes secret containing the CA certificate
# Defaults to "release-name-tls" if not specified
secretName: ""
# -- Mount path for the CA certificate directory
mountPath: "/ca"
# -- Client Certificate configuration (contains both cert and key)
# Certificates will be mounted to the directory specified in mountPath
clientCert:
# -- Enable client certificate mounting
enabled: false
# -- Name of the Kubernetes secret containing the client certificate and key
# Defaults to "release-name-tls" if not specified
secretName: ""
# -- Mount path for the client certificate directory
mountPath: "/tls"
# -- Resource limits & requests.
# Update according to your own use case as these values might be too low for a typical deployment.
# ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
resources:
{}
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
# -- Perses configuration file
# ref: https://github.com/perses/perses/blob/main/docs/configuration/configuration.md
config:
# -- Annotations for config
annotations: {}
# -- Use it in case you want to prefix the API path. By default the API is served with the path /api.
# With this config, it will be served with the path <api_prefix>/api
api_prefix: ""
security:
# -- Configure Perses instance as readonly
readonly: false
# -- Enable Authentication
enable_auth: false
# -- cookie config
cookie:
same_site: lax
secure: false
# [ same_site: < enum | possibleValue = 'strict' | 'lax' | 'none' > | default = lax ]
# Set to true if you host Perses behind HTTPS. Default is false
# [ secure: <boolean> | default = false ]
# -- Frontend configuration
frontend:
explorer:
enable: true
# -- Information contains markdown content to be display on the home page
information: ""
# -- Important dashboards list
important_dashboards:
[]
# - project: "perses"
# dashboard: "Demo"
# -- Database config based on data base type
database:
# -- file system configs
file:
folder: /perses
extension: json
# -- SQL Config (Perses v0.53+ uses camelCase keys in tls_config)
# sql:
# user: "user"
# password: "password"
# net: "tcp"
# addr: "localhost:3306"
# db_name: "perses"
# allow_native_passwords: true
# tls_config:
# caFile: "/ca/ca.crt"
# certFile: "/tls/tls.crt"
# keyFile: "/tls/tls.key"
# serverName: "localhost"
# insecureSkipVerify: false
# minVersion: "TLS12"
# maxVersion: "TLS13"
# -- provisioning config
provisioning:
folders:
- /etc/perses/provisioning
interval: 10m
# -- Persistence configuration for Perses provisioning.
# For more information on provisioning feature, see: https://perses.dev/perses/docs/configuration/provisioning/
# When enabled, a PersistentVolumeClaim (PVC) is created via StatefulSet volumeClaimTemplates.
# The PVC will be named: provisioning-<statefulset-name>-<ordinal>
# Examples:
# - Release "perses-oci" → PVC: "provisioning-perses-oci-0"
# - Release "my-app" → PVC: "provisioning-my-app-perses-0"
# This PVC can be referenced by other workloads (e.g., CronJobs) to write dashboards/datasources.
provisioningPersistence:
# -- enable persistent volume for provisioning
enabled: false
# -- storage class for provisioning PVC
storageClass: ""
# -- access modes for provisioning PVC
# ReadWriteOnce: Only one pod can mount (cheaper, single-node storage)
# ReadWriteMany: Multiple pods can mount simultaneously (required for CronJobs or multiple replicas)
# Note: ReadWriteMany requires storage class that supports it (e.g., NFS, CephFS, Azure Files)
accessModes:
- ReadWriteOnce
# -- size of provisioning PVC
size: 1Gi
# -- labels for provisioning PVC
labels: {}
# -- annotations for provisioning PVC
annotations: {}
# -- Perses configuration as environment variables.
# A Kubernetes Secret will be created containing these environment variables.
# Perses automatically merges them at runtime using the PERSES_<YAML_PATH> pattern,
# e.g. PERSES_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_0_CLIENT_SECRET
# For more information, see: https://perses.dev/perses/docs/configuration/configuration/?h=envir#configuration-file
envVars: []
# - name: PERSES_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_0_CLIENT_SECRET
# value: "4711"
# - name: PERSES_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_1_CLIENT_SECRET
# value: "0815"
# -- Secret settings for envVars / auto-generated auth env vars
secret:
# -- Create the Secret automatically
create: true
# -- Name of the Secret to reference (defaults to release fullname when empty)
name: ""
# -- Name of existing Kubernetes Secret containing environment variables.
# When specified, no new Secret is created and values from envVars array are ignored.
#########################################################################################################
###### WARNING: 'envVarsExternalSecretName' is deprecated since 0.19.2 and will be removed soon. #####
###### Use the 'secret' block to reference an existing Secret instead. #####
###### Example: set secret.create=false and secret.name to your Secret name. #####
#########################################################################################################
envVarsExternalSecretName: ""
# -- Sidecar configuration that watches for ConfigMaps with the specified label/labelValue and loads them into Perses provisioning
sidecar:
# -- Enable the sidecar container for ConfigMap provisioning
enabled: false
# -- List of usernames to bind to the Perses global-admin role when the sidecar is enabled
globalAdminUsers: []
image:
# -- Container image registry for the sidecar
registry: docker.io
# -- Container image repository for the sidecar
repository: kiwigrid/k8s-sidecar
# -- Container image tag for the sidecar
tag: 2.5.0
# -- Label key to watch for ConfigMaps containing Perses resources
label: "perses.dev/resource"
# -- Label value to watch for ConfigMaps containing Perses resources
labelValue: "true"
# -- check for configmaps from all namespaces. When set to false, it will only check for configmaps in the same namespace as the Perses instance
allNamespaces: true
# -- Port exposed by the sidecar health endpoint (k8s-sidecar HEALTH_PORT env var)
healthPort: 8081
# -- add additional environment variables to sidecar container. you can look at the k8s-sidecar documentation for more information - https://github.com/kiwigrid/k8s-sidecar
extraEnvVars:
[]
# - name: RESOURCE
# value: both
# -- Enable secret access permissions in the cluster role. When enabled, the sidecar will have permissions to read secrets and use them.
enableSecretAccess: false
# -- dedicated sidecar container security in case elevated privileges are needed for writing to volumes.
securityContext: {}
# -- Persistence parameters
persistence:
# -- If disabled, it will use a emptydir volume
enabled: false
# -- Specify the `storageClass` to provision the volume for the PVC. If you don't specify a `storageClass`, a default `storageClass` will be used.
# storageClass: ""
# -- PVC Access Modes for data volume
accessModes:
- ReadWriteOnce
# -- PVC Storage Request for data volume
size: 8Gi
# -- Pod-level security context applied to all containers
securityContext:
# -- Group ID that owns mounted volumes (needed for file access when using persistent storage)
fsGroup: 2000
# -- UID to run the entrypoint of the container process (e.g., 1000)
# runAsUser: 1000
# -- GID to run the entrypoint of the container process (e.g., 3000)
# runAsGroup: 3000
# -- Indicates that containers must run as a non-root user (true/false)
# runAsNonRoot: true
# -- How volume ownership and permissions are changed (OnRootMismatch/Always)
# fsGroupChangePolicy: OnRootMismatch
# -- List of additional groups for the first process in containers
# supplementalGroups: [2000, 3000]
# -- Labels for the PVC
labels: {}
# -- Annotations for the PVC
annotations: {}
# -- Configure the ingress resource that allows you to access Perses Frontend
# ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
ingress:
# -- Enable ingress controller resource
enabled: false
# -- Default host for the ingress resource
hosts:
- host: perses.local
paths:
- path: /
pathType: Prefix
# -- IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
# This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
# ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
#
ingressClassName: ""
# -- Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
# For a full list of possible ingress annotations, please see
# ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
annotations: {}
# -- Ingress TLS configuration
tls: []
# - secretName: ingress-cert
# hosts: []
# -- Configure Gateway API resources to expose Perses Frontend through a Gateway and HTTPRoute
gateway:
# -- Enable Gateway API resources
enabled: false
# -- Create a Gateway resource. If false, only the HTTPRoute is created and parentRefs must target an existing Gateway.
createGateway: true
# -- Name of the Gateway to create or reference. Defaults to "<release-name>-perses-gateway" when empty.
name: ""
# -- Namespace of the Gateway. Defaults to the release namespace when empty.
namespace: ""
# -- GatewayClass name used by the Gateway. Required when createGateway is true.
gatewayClassName: ""
# -- Labels to add to the Gateway
labels: {}
# -- Annotations to add to the Gateway
annotations: {}
# -- Listener configuration for the Gateway
listeners:
- name: http
port: 80
protocol: HTTP
hostname: ""
allowedRoutes:
namespaces:
from: Same
httpRoute:
# -- Name of the HTTPRoute. Defaults to "<release-name>-perses-http-route" when empty.
name: ""
# -- Labels to add to the HTTPRoute
labels: {}
# -- Annotations to add to the HTTPRoute
annotations: {}
# -- ParentRefs for the HTTPRoute. Defaults to the created Gateway when createGateway is true.
parentRefs: []
# -- Hostnames served by the HTTPRoute
hostnames:
- perses.local
# -- Rules for the HTTPRoute. Defaults to a single PathPrefix "/" rule targeting the Perses service.
rules: []
# -- Configure datasources
# DEPRECATED: This field will be removed in the future release. Please use the 'sidecar' configuration to provision datasources.
# ref: https://github.com/perses/perses/blob/90beed356243208f14cf2249bebb6f6222cb77ae/docs/datasource.md
datasources:
[]
# - kind: GlobalDatasource
# metadata:
# name: PrometheusDemoBrowser
# spec:
# default: true
# plugin:
# kind: PrometheusDatasource
# spec:
# directUrl: https://prometheus.demo.do.prometheus.io
testFramework:
enabled: true
image:
registry: ghcr.io
repository: cloudoperators/greenhouse-extensions-integration-test
tag: main
imagePullPolicy: IfNotPresent
# -- Deploy extra K8s manifests
extraObjects:
[]
# - apiVersion: v1
# kind: ConfigMap
# metadata:
# name: 'truststore-{{ include "perses.fullname" . }}'
# data:
# ca.crt: |
# -----BEGIN CERTIFICATE-----
# -----END CERTIFICATE-----