| #@ load("@ytt:data", "data") |
| |
| ## Affinity for pod assignment |
| ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity |
| affinity: {} |
| |
| annotations: {} |
| |
| # The update strategy to apply to the DaemonSet |
| ## |
| deploymentStrategy: {} |
| # rollingUpdate: |
| # maxUnavailable: 1 |
| # type: RollingUpdate |
| |
| initContainer: |
| enabled: false |
| fsInotifyMaxUserInstances: 128 |
| |
| image: |
| repository: grafana/promtail |
| tag: v1.3.0 |
| pullPolicy: IfNotPresent |
| |
| livenessProbe: {} |
| |
| loki: |
| serviceName: #@ "loki-{}".format(data.values.namespace) |
| servicePort: 3100 |
| serviceScheme: http |
| user: #@ data.values.logging.loki.username |
| password: #@ data.values.logging.loki.password |
| |
| nameOverride: #@ "promtail-{}".format(data.values.namespace, data.values.namespace) |
| |
| ## Node labels for pod assignment |
| ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ |
| nodeSelector: {} |
| |
| pipelineStages: |
| - docker: {} |
| |
| ## Pod Labels |
| podLabels: {} |
| |
| podAnnotations: |
| prometheus.io/scrape: "true" |
| prometheus.io/port: "http-metrics" |
| |
| ## Assign a PriorityClassName to pods if set |
| # priorityClassName: |
| |
| rbac: |
| create: true |
| pspEnabled: true |
| |
| readinessProbe: |
| failureThreshold: 5 |
| httpGet: |
| path: /ready |
| port: http-metrics |
| initialDelaySeconds: 10 |
| periodSeconds: 10 |
| successThreshold: 1 |
| timeoutSeconds: 1 |
| |
| resources: |
| limits: |
| cpu: 200m |
| memory: 128Mi |
| requests: |
| cpu: 100m |
| memory: 128Mi |
| |
| # Custom scrape_configs to override the default ones in the configmap |
| scrapeConfigs: |
| - job_name: kubernetes-pods-monitoring |
| pipeline_stages: |
| - docker: {} |
| kubernetes_sd_configs: |
| - role: pod |
| relabel_configs: |
| - action: labeldrop |
| regex: '__meta_kubernetes_pod_label_app_kubernetes_io_.*' |
| - action: labeldrop |
| regex: '__meta_kubernetes_pod_label_statefulset_kubernetes_io_.*' |
| - action: labeldrop |
| regex: '__meta_kubernetes_pod_label_controller_revision_hash' |
| - action: labeldrop |
| regex: '__meta_kubernetes_pod_label_pod_template_.*' |
| - source_labels: |
| - __meta_kubernetes_pod_label_name |
| target_label: __service__ |
| - source_labels: |
| - __meta_kubernetes_pod_node_name |
| target_label: __host__ |
| - action: labelmap |
| regex: __meta_kubernetes_pod_label_(.+) |
| - action: replace |
| replacement: $1 |
| separator: / |
| source_labels: |
| - __meta_kubernetes_namespace |
| - __meta_kubernetes_pod_label_app |
| - __service__ |
| target_label: job |
| - action: replace |
| source_labels: |
| - __meta_kubernetes_namespace |
| target_label: namespace |
| - action: keep |
| regex: #@ data.values.namespace |
| source_labels: |
| - namespace |
| - action: replace |
| source_labels: |
| - release |
| target_label: chart_release |
| - action: replace |
| source_labels: |
| - __meta_kubernetes_pod_name |
| target_label: instance |
| - action: replace |
| source_labels: |
| - __meta_kubernetes_pod_container_name |
| target_label: container_name |
| - replacement: /var/log/pods/*$1/*.log |
| separator: / |
| source_labels: |
| - __meta_kubernetes_pod_uid |
| - __meta_kubernetes_pod_container_name |
| target_label: __path__ |
| #@ for gerrit in data.values.gerritServers.kubernetes: |
| - job_name: #@ "kubernetes-pods-gerrit-{}".format(gerrit.namespace) |
| pipeline_stages: |
| - docker: {} |
| kubernetes_sd_configs: |
| - role: pod |
| relabel_configs: |
| - action: labeldrop |
| regex: '__meta_kubernetes_pod_label_pod_template_.*' |
| - source_labels: |
| - __meta_kubernetes_pod_label_name |
| target_label: __service__ |
| - source_labels: |
| - __meta_kubernetes_pod_node_name |
| target_label: __host__ |
| - action: labelmap |
| regex: __meta_kubernetes_pod_label_(.+) |
| - action: replace |
| replacement: $1 |
| separator: / |
| source_labels: |
| - __meta_kubernetes_namespace |
| - __meta_kubernetes_pod_label_app |
| - __service__ |
| target_label: job |
| - action: replace |
| source_labels: |
| - __meta_kubernetes_namespace |
| target_label: namespace |
| - action: keep |
| regex: #@ gerrit.namespace |
| source_labels: |
| - namespace |
| - source_labels: |
| - #@ "__meta_kubernetes_pod_label_{}".format(gerrit.label.name) |
| regex: #@ gerrit.label.value |
| action: keep |
| - action: replace |
| source_labels: |
| - release |
| target_label: chart_release |
| - action: replace |
| source_labels: |
| - __meta_kubernetes_pod_name |
| target_label: instance |
| - action: replace |
| source_labels: |
| - __meta_kubernetes_pod_container_name |
| target_label: container_name |
| - replacement: /var/log/pods/*$1/*.log |
| separator: / |
| source_labels: |
| - __meta_kubernetes_pod_uid |
| - __meta_kubernetes_pod_container_name |
| target_label: __path__ |
| #@ end |
| |
| # Custom scrape_configs together with the default ones in the configmap |
| extraScrapeConfigs: [] |
| |
| securityContext: |
| readOnlyRootFilesystem: true |
| runAsGroup: 0 |
| runAsUser: 0 |
| |
| serviceAccount: |
| create: true |
| name: promtail |
| |
| ## Tolerations for pod assignment |
| ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ |
| tolerations: |
| - key: node-role.kubernetes.io/master |
| operator: Exists |
| effect: NoSchedule |
| |
| # Extra volumes to scrape logs from |
| volumes: |
| - name: docker |
| hostPath: |
| path: /var/lib/docker/containers |
| - name: pods |
| hostPath: |
| path: /var/log/pods |
| |
| # Custom volumes together with the default ones |
| extraVolumes: [] |
| |
| volumeMounts: |
| - name: docker |
| mountPath: /var/lib/docker/containers |
| readOnly: true |
| - name: pods |
| mountPath: /var/log/pods |
| readOnly: true |
| |
| # Custom volumeMounts together with the default ones |
| extraVolumeMounts: [] |
| |
| # Add extra Commandline args while starting up promtail. |
| # more info : https://github.com/grafana/loki/pull/1530 |
| |
| extraCommandlineArgs: [] |
| # example: |
| # extraCommandlineArgs: |
| # - -client.external-labels=hostname=$(HOSTNAME) |
| |
| config: |
| client: |
| # Maximum wait period before sending batch |
| batchwait: 1s |
| # Maximum batch size to accrue before sending, unit is byte |
| batchsize: 102400 |
| |
| # Maximum time to wait for server to respond to a request |
| timeout: 10s |
| |
| backoff_config: |
| # Initial backoff time between retries |
| minbackoff: 100ms |
| # Maximum backoff time between retries |
| maxbackoff: 5s |
| # Maximum number of retries when sending batches, 0 means infinite retries |
| maxretries: 20 |
| |
| # The labels to add to any time series or alerts when communicating with loki |
| external_labels: {} |
| |
| server: |
| http_listen_port: 3101 |
| |
| positions: |
| filename: /run/promtail/positions.yaml |
| target_config: |
| # Period to resync directories being watched and files being tailed |
| sync_period: 10s |
| |
| serviceMonitor: |
| enabled: false |
| interval: "" |
| additionalLabels: {} |
| # scrapeTimeout: 10s |
| |
| # Extra env variables to pass to the promtail container |
| env: [] |
| |
| # enable and configure if using the syslog scrape config |
| syslogService: |
| enabled: false |
| type: ClusterIP |
| port: 1514 |
| ## Specify the nodePort value for the LoadBalancer and NodePort service types. |
| ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport |
| ## |
| # nodePort: |
| ## Provide any additional annotations which may be required. This can be used to |
| ## set the LoadBalancer service type to internal only. |
| ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer |
| ## |
| annotations: {} |
| labels: {} |
| ## Use loadBalancerIP to request a specific static IP, |
| ## otherwise leave blank |
| ## |
| loadBalancerIP: |
| # loadBalancerSourceRanges: [] |
| ## Set the externalTrafficPolicy in the Service to either Cluster or Local |
| # externalTrafficPolicy: Cluster |