be862d863e
This change adds the current status of a project that aims to create
a simple monitoring setup to monitor Gerrit servers, which was developed
internally at SAP.
The project provides an opinionated and basic configuration for helm
charts that can be used to install Loki, Prometheus and Grafana on a
Kubernetes cluster. Scripts to easily apply the configuration and
install the whole setup are provided as well.
The contributions so far were done by (with number of commits)
80 Thomas Draebing
11 Matthias Sohn
2 Saša Živkov
Change-Id: I8045780446edfb3c0dc8287b8f494505e338e066
242 lines
5.3 KiB
YAML
242 lines
5.3 KiB
YAML
#@ load("@ytt:data", "data")
|
|
|
|
image:
|
|
repository: grafana/loki
|
|
tag: v1.3.0
|
|
pullPolicy: IfNotPresent
|
|
|
|
ingress:
|
|
enabled: true
|
|
annotations:
|
|
kubernetes.io/ingress.class: nginx
|
|
nginx.ingress.kubernetes.io/auth-type: basic
|
|
nginx.ingress.kubernetes.io/auth-secret: loki-basic-auth
|
|
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required'
|
|
# kubernetes.io/tls-acme: "true"
|
|
hosts:
|
|
- host: #@ data.values.loki.host
|
|
paths:
|
|
- /
|
|
tls:
|
|
- secretName: loki-server-tls
|
|
hosts:
|
|
- #@ data.values.loki.host
|
|
|
|
## Affinity for pod assignment
|
|
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
|
affinity: {}
|
|
# podAntiAffinity:
|
|
# requiredDuringSchedulingIgnoredDuringExecution:
|
|
# - labelSelector:
|
|
# matchExpressions:
|
|
# - key: app
|
|
# operator: In
|
|
# values:
|
|
# - loki
|
|
# topologyKey: "kubernetes.io/hostname"
|
|
|
|
## StatefulSet annotations
|
|
annotations: {}
|
|
|
|
# enable tracing for debug, need install jaeger and specify right jaeger_agent_host
|
|
tracing:
|
|
jaegerAgentHost:
|
|
|
|
config:
|
|
auth_enabled: false
|
|
ingester:
|
|
chunk_idle_period: 3m
|
|
chunk_block_size: 262144
|
|
chunk_retain_period: 1m
|
|
max_transfer_retries: 0
|
|
lifecycler:
|
|
ring:
|
|
kvstore:
|
|
store: inmemory
|
|
replication_factor: 1
|
|
|
|
## Different ring configs can be used. E.g. Consul
|
|
# ring:
|
|
# store: consul
|
|
# replication_factor: 1
|
|
# consul:
|
|
# host: "consul:8500"
|
|
# prefix: ""
|
|
# httpclienttimeout: "20s"
|
|
# consistentreads: true
|
|
limits_config:
|
|
enforce_metric_name: false
|
|
reject_old_samples: true
|
|
reject_old_samples_max_age: 168h
|
|
schema_config:
|
|
configs:
|
|
- from: 2018-04-15
|
|
store: boltdb
|
|
object_store: filesystem
|
|
schema: v9
|
|
index:
|
|
prefix: index_
|
|
period: 24h
|
|
chunks:
|
|
prefix: chunk_
|
|
period: 24h
|
|
server:
|
|
http_listen_port: 3100
|
|
storage_config:
|
|
boltdb:
|
|
directory: /data/loki/index
|
|
filesystem:
|
|
directory: /data/loki/chunks
|
|
chunk_store_config:
|
|
max_look_back_period: 0
|
|
table_manager:
|
|
retention_deletes_enabled: true
|
|
retention_period: 336h
|
|
|
|
## Additional Loki container arguments, e.g. log level (debug, info, warn, error)
|
|
extraArgs: {}
|
|
# log.level: debug
|
|
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /ready
|
|
port: http-metrics
|
|
initialDelaySeconds: 45
|
|
|
|
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
|
networkPolicy:
|
|
enabled: false
|
|
|
|
## The app name of loki clients
|
|
client: {}
|
|
# name:
|
|
|
|
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
|
|
nodeSelector: {}
|
|
|
|
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
|
|
## If you set enabled as "True", you need :
|
|
## - create a pv which above 10Gi and has same namespace with loki
|
|
## - keep storageClassName same with below setting
|
|
persistence:
|
|
enabled: true
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
size: 10Gi
|
|
annotations: {}
|
|
# subPath: ""
|
|
# existingClaim:
|
|
|
|
## Pod Labels
|
|
podLabels: {}
|
|
|
|
## Pod Annotations
|
|
podAnnotations:
|
|
prometheus.io/scrape: "true"
|
|
prometheus.io/port: "http-metrics"
|
|
|
|
podManagementPolicy: OrderedReady
|
|
|
|
## Assign a PriorityClassName to pods if set
|
|
# priorityClassName:
|
|
|
|
rbac:
|
|
create: true
|
|
pspEnabled: true
|
|
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /ready
|
|
port: http-metrics
|
|
initialDelaySeconds: 45
|
|
|
|
replicas: 1
|
|
|
|
resources: {}
|
|
# limits:
|
|
# cpu: 200m
|
|
# memory: 256Mi
|
|
# requests:
|
|
# cpu: 100m
|
|
# memory: 128Mi
|
|
|
|
securityContext:
|
|
fsGroup: 10001
|
|
runAsGroup: 10001
|
|
runAsNonRoot: true
|
|
runAsUser: 10001
|
|
|
|
service:
|
|
type: ClusterIP
|
|
nodePort:
|
|
port: 3100
|
|
annotations: {}
|
|
labels: {}
|
|
|
|
serviceAccount:
|
|
create: true
|
|
name:
|
|
annotations: {}
|
|
|
|
terminationGracePeriodSeconds: 4800
|
|
|
|
## Tolerations for pod assignment
|
|
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
|
tolerations: []
|
|
|
|
# The values to set in the PodDisruptionBudget spec
|
|
# If not set then a PodDisruptionBudget will not be created
|
|
podDisruptionBudget: {}
|
|
# minAvailable: 1
|
|
# maxUnavailable: 1
|
|
|
|
updateStrategy:
|
|
type: RollingUpdate
|
|
|
|
serviceMonitor:
|
|
enabled: false
|
|
interval: ""
|
|
additionalLabels: {}
|
|
# scrapeTimeout: 10s
|
|
|
|
initContainers: []
|
|
## Init containers to be added to the loki pod.
|
|
# - name: my-init-container
|
|
# image: busybox:latest
|
|
# command: ['sh', '-c', 'echo hello']
|
|
|
|
extraContainers: []
|
|
## Additional containers to be added to the loki pod.
|
|
# - name: reverse-proxy
|
|
# image: angelbarrera92/basic-auth-reverse-proxy:dev
|
|
# args:
|
|
# - "serve"
|
|
# - "--upstream=http://localhost:3100"
|
|
# - "--auth-config=/etc/reverse-proxy-conf/authn.yaml"
|
|
# ports:
|
|
# - name: http
|
|
# containerPort: 11811
|
|
# protocol: TCP
|
|
# volumeMounts:
|
|
# - name: reverse-proxy-auth-config
|
|
# mountPath: /etc/reverse-proxy-conf
|
|
|
|
|
|
extraVolumes: []
|
|
## Additional volumes to the loki pod.
|
|
# - name: reverse-proxy-auth-config
|
|
# secret:
|
|
# secretName: reverse-proxy-auth-config
|
|
|
|
## Extra volume mounts that will be added to the loki container
|
|
extraVolumeMounts: []
|
|
|
|
extraPorts: []
|
|
## Additional ports to the loki services. Useful to expose extra container ports.
|
|
# - port: 11811
|
|
# protocol: TCP
|
|
# name: http
|
|
# targetPort: http
|
|
|
|
# Extra env variables to pass to the loki container
|
|
env: []
|