Ansible Script 추가
This commit is contained in:
22
ansible/01_old/roles/test/files/02-base/base/.helmignore
Normal file
22
ansible/01_old/roles/test/files/02-base/base/.helmignore
Normal file
@@ -0,0 +1,22 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
5
ansible/01_old/roles/test/files/02-base/base/Chart.yaml
Normal file
5
ansible/01_old/roles/test/files/02-base/base/Chart.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
name: base
|
||||
version: 0.1.0
|
||||
@@ -0,0 +1,22 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
@@ -0,0 +1,5 @@
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
name: analysis
|
||||
version: 0.1.0
|
||||
@@ -0,0 +1,87 @@
|
||||
#docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 -p 5672:5672 rabbitmq:3-management
|
||||
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: metric-analyzer-master
|
||||
namespace: imxc
|
||||
spec:
|
||||
# clusterIP: None # We need a headless service to allow the pods to discover each
|
||||
ports: # other during autodiscover phase for cluster creation.
|
||||
- name: http # A ClusterIP will prevent resolving dns requests for other pods
|
||||
protocol: TCP # under the same service.
|
||||
port: 15672
|
||||
targetPort: 15672
|
||||
# nodePort: 30001
|
||||
- name: amqp
|
||||
protocol: TCP
|
||||
port: 5672
|
||||
targetPort: 5672
|
||||
# nodePort: 30002
|
||||
selector:
|
||||
app: metric-analyzer-master
|
||||
# type: NodePort
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: metric-analyzer-master
|
||||
name: metric-analyzer-master
|
||||
namespace: imxc
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: metric-analyzer-master
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: metric-analyzer-master
|
||||
spec:
|
||||
containers:
|
||||
- image: {{ .Values.global.IMXC_IN_REGISTRY }}/metric_analyzer:{{ .Values.global.METRIC_ANALYZER_MASTER_VERSION }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: master
|
||||
# volumeMounts:
|
||||
# - mountPath: /etc/localtime
|
||||
# name: timezone-config
|
||||
env:
|
||||
- name: BROKER
|
||||
value: base-rabbitmq
|
||||
- name: IMXC_RABBITMQ_CLIENT_ID
|
||||
value: "user"
|
||||
- name: IMXC_RABBITMQ_CLIENT_PASSWORD
|
||||
value: "eorbahrhkswp"
|
||||
- name: POSTGRES_SERVER
|
||||
value: postgres
|
||||
- name: POSTGRES_USER
|
||||
value: admin
|
||||
- name: POSTGRES_PW
|
||||
value: eorbahrhkswp
|
||||
- name: POSTGRES_DB
|
||||
value: postgresdb
|
||||
- name: PROMETHEUS_URL
|
||||
value: http://base-cortex-nginx/prometheus
|
||||
- name: POSTGRES_PORT
|
||||
value: "5432"
|
||||
- name: ES_SERVER
|
||||
value: elasticsearch
|
||||
- name: ES_PORT
|
||||
value: "9200"
|
||||
- name: ES_ID
|
||||
value: "elastic"
|
||||
- name: ES_PWD
|
||||
value: "elastic"
|
||||
- name: LOG_LEVEL
|
||||
value: INFO
|
||||
- name: AI_TYPE
|
||||
value: BASELINE
|
||||
- name: BASELINE_SIZE
|
||||
value: "3"
|
||||
- name: CHECK_DAY
|
||||
value: "2"
|
||||
resources:
|
||||
requests:
|
||||
memory: "100Mi"
|
||||
@@ -0,0 +1,38 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: metric-analyzer-worker
|
||||
name: metric-analyzer-worker
|
||||
namespace: imxc
|
||||
spec:
|
||||
replicas: 10
|
||||
selector:
|
||||
matchLabels:
|
||||
app: metric-analyzer-worker
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: metric-analyzer-worker
|
||||
spec:
|
||||
containers:
|
||||
- image: {{ .Values.global.IMXC_IN_REGISTRY }}/metric_analyzer_worker:{{ .Values.global.METRIC_ANALYZER_WORKER_VERSION }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: worker
|
||||
# volumeMounts:
|
||||
# - mountPath: /etc/localtime
|
||||
# name: timezone-config
|
||||
env:
|
||||
- name: BROKER
|
||||
value: base-rabbitmq
|
||||
- name: IMXC_RABBITMQ_CLIENT_ID
|
||||
value: "user"
|
||||
- name: IMXC_RABBITMQ_CLIENT_PASSWORD
|
||||
value: "eorbahrhkswp"
|
||||
# volumes:
|
||||
# - hostPath:
|
||||
# path: /usr/share/zoneinfo/Asia/Seoul
|
||||
# name: timezone-config
|
||||
resources:
|
||||
requests:
|
||||
memory: "100Mi"
|
||||
@@ -0,0 +1,68 @@
|
||||
# Default values for analysis.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: 10.10.31.243:5000/cmoa3/nginx
|
||||
tag: stable
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a service account should be created
|
||||
create: true
|
||||
# The name of the service account to use.
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name:
|
||||
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
securityContext: {}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
hosts:
|
||||
- host: chart-example.local
|
||||
paths: []
|
||||
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
|
||||
resources: {}
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
@@ -0,0 +1,29 @@
|
||||
# Git
|
||||
.git/
|
||||
.gitignore
|
||||
.github/
|
||||
|
||||
# IDE
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
|
||||
# Cortex ignore
|
||||
docs/
|
||||
tools/
|
||||
ct.yaml
|
||||
ci/
|
||||
README.md.gotmpl
|
||||
.prettierignore
|
||||
CHANGELOG.md
|
||||
MAINTAINERS.md
|
||||
LICENSE
|
||||
Makefile
|
||||
renovate.json
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
dependencies:
|
||||
- name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
digest: sha256:a6b7c1239f9cabc85dd647798a6f92ae8a9486756ab1e87fc11af2180ab03ee4
|
||||
generated: "2021-12-25T19:21:57.666697218Z"
|
||||
@@ -0,0 +1,56 @@
|
||||
apiVersion: v2
|
||||
appVersion: v1.11.0
|
||||
dependencies:
|
||||
- alias: memcached
|
||||
condition: memcached.enabled
|
||||
name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- alias: memcached-index-read
|
||||
condition: memcached-index-read.enabled
|
||||
name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- alias: memcached-index-write
|
||||
condition: memcached-index-write.enabled
|
||||
name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- alias: memcached-frontend
|
||||
condition: memcached-frontend.enabled
|
||||
name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 5.15.12
|
||||
- alias: memcached-blocks-index
|
||||
name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
tags:
|
||||
- blocks-storage-memcached
|
||||
version: 5.15.12
|
||||
- alias: memcached-blocks
|
||||
name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
tags:
|
||||
- blocks-storage-memcached
|
||||
version: 5.15.12
|
||||
- alias: memcached-blocks-metadata
|
||||
name: memcached
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
tags:
|
||||
- blocks-storage-memcached
|
||||
version: 5.15.12
|
||||
description: Horizontally scalable, highly available, multi-tenant, long term Prometheus.
|
||||
home: https://cortexmetrics.io/
|
||||
icon: https://avatars2.githubusercontent.com/u/43045022?s=200&v=4
|
||||
kubeVersion: ^1.19.0-0
|
||||
maintainers:
|
||||
- email: thayward@infoblox.com
|
||||
name: Tom Hayward
|
||||
url: https://github.com/kd7lxl
|
||||
- email: Niclas.Schad@plusserver.com
|
||||
name: Niclas Schad
|
||||
url: https://github.com/ShuzZzle
|
||||
name: cortex
|
||||
sources:
|
||||
- https://github.com/cortexproject/cortex-helm-chart
|
||||
version: 1.2.0
|
||||
@@ -0,0 +1,754 @@
|
||||
<!-- README.md is a generated file. Make any changes in README.md.gotmpl or values.yaml. -->
|
||||
|
||||
# cortex
|
||||
|
||||
 
|
||||
|
||||
Horizontally scalable, highly available, multi-tenant, long term Prometheus.
|
||||
|
||||
**Homepage:** <https://cortexmetrics.io/>
|
||||
|
||||
## Maintainers
|
||||
|
||||
| Name | Email | Url |
|
||||
| ---- | ------ | --- |
|
||||
| Tom Hayward | thayward@infoblox.com | https://github.com/kd7lxl |
|
||||
| Niclas Schad | Niclas.Schad@plusserver.com | https://github.com/ShuzZzle |
|
||||
|
||||
## Documentation
|
||||
|
||||
Checkout our documentation for the cortex-helm-chart [here](https://cortexproject.github.io/cortex-helm-chart/)
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Key-Value store
|
||||
|
||||
Cortex requires a Key-Value (KV) store to store the ring. It can use traditional KV stores like [Consul](https://www.consul.io/) or [etcd](https://etcd.io/), but it can also build its own KV store on top of memberlist library using a gossip algorithm.
|
||||
|
||||
The recommended approach is to use the built-in memberlist as a KV store, where supported.
|
||||
|
||||
External KV stores can be installed alongside Cortex using their respective helm charts https://github.com/bitnami/charts/tree/master/bitnami/etcd and https://github.com/helm/charts/tree/master/stable/consul.
|
||||
|
||||
### Storage
|
||||
|
||||
Cortex requires a storage backend to store metrics and indexes.
|
||||
See [cortex documentation](https://cortexmetrics.io/docs/) for details on storage types and documentation
|
||||
|
||||
## Installation
|
||||
|
||||
[Helm](https://helm.sh) must be installed to use the charts.
|
||||
Please refer to Helm's [documentation](https://helm.sh/docs/) to get started.
|
||||
|
||||
Once Helm is set up properly, add the repo as follows:
|
||||
|
||||
```bash
|
||||
helm repo add cortex-helm https://cortexproject.github.io/cortex-helm-chart
|
||||
```
|
||||
|
||||
Cortex can now be installed with the following command:
|
||||
|
||||
```bash
|
||||
helm install cortex --namespace cortex cortex-helm/cortex
|
||||
```
|
||||
|
||||
If you have custom options or values you want to override:
|
||||
|
||||
```bash
|
||||
helm install cortex --namespace cortex -f my-cortex-values.yaml cortex-helm/cortex
|
||||
```
|
||||
|
||||
Specific versions of the chart can be installed using the `--version` option, with the default being the latest release.
|
||||
What versions are available for installation can be listed with the following command:
|
||||
|
||||
```bash
|
||||
helm search repo cortex-helm
|
||||
```
|
||||
|
||||
As part of this chart many different pods and services are installed which all
|
||||
have varying resource requirements. Please make sure that you have sufficient
|
||||
resources (CPU/memory) available in your cluster before installing Cortex Helm
|
||||
chart.
|
||||
|
||||
## Upgrades
|
||||
|
||||
To upgrade Cortex use the following command:
|
||||
|
||||
```bash
|
||||
helm upgrade cortex -f my-cortex-values.yaml cortex-helm/cortex
|
||||
```
|
||||
Note that it might be necessary to use `--reset-values` since some default values in the values.yaml might have changed or were removed.
|
||||
|
||||
Source code can be found [here](https://cortexmetrics.io/)
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `^1.19.0-0`
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://charts.bitnami.com/bitnami | memcached(memcached) | 5.15.12 |
|
||||
| https://charts.bitnami.com/bitnami | memcached-index-read(memcached) | 5.15.12 |
|
||||
| https://charts.bitnami.com/bitnami | memcached-index-write(memcached) | 5.15.12 |
|
||||
| https://charts.bitnami.com/bitnami | memcached-frontend(memcached) | 5.15.12 |
|
||||
| https://charts.bitnami.com/bitnami | memcached-blocks-index(memcached) | 5.15.12 |
|
||||
| https://charts.bitnami.com/bitnami | memcached-blocks(memcached) | 5.15.12 |
|
||||
| https://charts.bitnami.com/bitnami | memcached-blocks-metadata(memcached) | 5.15.12 |
|
||||
|
||||
## Values
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| alertmanager.​affinity | object | `{}` | |
|
||||
| alertmanager.​annotations | object | `{}` | |
|
||||
| alertmanager.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| alertmanager.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| alertmanager.​enabled | bool | `true` | |
|
||||
| alertmanager.​env | list | `[]` | Extra env variables to pass to the cortex container |
|
||||
| alertmanager.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log level (debug, info, warn, error) |
|
||||
| alertmanager.​extraContainers | list | `[]` | Additional containers to be added to the cortex pod. |
|
||||
| alertmanager.​extraPorts | list | `[]` | Additional ports to the cortex services. Useful to expose extra container ports. |
|
||||
| alertmanager.​extraVolumeMounts | list | `[]` | Extra volume mounts that will be added to the cortex container |
|
||||
| alertmanager.​extraVolumes | list | `[]` | Additional volumes to the cortex pod. |
|
||||
| alertmanager.​initContainers | list | `[]` | Init containers to be added to the cortex pod. |
|
||||
| alertmanager.​livenessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| alertmanager.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| alertmanager.​nodeSelector | object | `{}` | |
|
||||
| alertmanager.​persistentVolume.​accessModes | list | `["ReadWriteOnce"]` | Alertmanager data Persistent Volume access modes Must match those of existing PV or dynamic provisioner Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ |
|
||||
| alertmanager.​persistentVolume.​annotations | object | `{}` | Alertmanager data Persistent Volume Claim annotations |
|
||||
| alertmanager.​persistentVolume.​enabled | bool | `true` | If true and alertmanager.statefulSet.enabled is true, Alertmanager will create/use a Persistent Volume Claim If false, use emptyDir |
|
||||
| alertmanager.​persistentVolume.​size | string | `"2Gi"` | Alertmanager data Persistent Volume size |
|
||||
| alertmanager.​persistentVolume.​storageClass | string | `nil` | Alertmanager data Persistent Volume Storage Class If defined, storageClassName: <storageClass> 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. |
|
||||
| alertmanager.​persistentVolume.​subPath | string | `""` | Subdirectory of Alertmanager data Persistent Volume to mount Useful if the volume's root directory is not empty |
|
||||
| alertmanager.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| alertmanager.​podDisruptionBudget | object | `{"maxUnavailable":1}` | If not set then a PodDisruptionBudget will not be created |
|
||||
| alertmanager.​podLabels | object | `{}` | Pod Labels |
|
||||
| alertmanager.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| alertmanager.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| alertmanager.​replicas | int | `1` | |
|
||||
| alertmanager.​resources | object | `{}` | |
|
||||
| alertmanager.​securityContext | object | `{}` | |
|
||||
| alertmanager.​service.​annotations | object | `{}` | |
|
||||
| alertmanager.​service.​labels | object | `{}` | |
|
||||
| alertmanager.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| alertmanager.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| alertmanager.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| alertmanager.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| alertmanager.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| alertmanager.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| alertmanager.​sidecar | object | `{"containerSecurityContext":{"enabled":true,"readOnlyRootFilesystem":true},"defaultFolderName":null,"enableUniqueFilenames":false,"enabled":false,"folder":"/data","folderAnnotation":null,"image":{"repository":"quay.io/kiwigrid/k8s-sidecar","sha":"","tag":"1.10.7"},"imagePullPolicy":"IfNotPresent","label":"cortex_alertmanager","labelValue":null,"resources":{},"searchNamespace":null,"skipTlsVerify":false,"watchMethod":null}` | Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders |
|
||||
| alertmanager.​sidecar.​skipTlsVerify | bool | `false` | skipTlsVerify Set to true to skip tls verification for kube api calls |
|
||||
| alertmanager.​startupProbe.​failureThreshold | int | `10` | |
|
||||
| alertmanager.​startupProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| alertmanager.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| alertmanager.​statefulSet.​enabled | bool | `false` | If true, use a statefulset instead of a deployment for pod management. This is useful for using a persistent volume for storing silences between restarts. |
|
||||
| alertmanager.​statefulStrategy.​type | string | `"RollingUpdate"` | |
|
||||
| alertmanager.​strategy.​rollingUpdate.​maxSurge | int | `0` | |
|
||||
| alertmanager.​strategy.​rollingUpdate.​maxUnavailable | int | `1` | |
|
||||
| alertmanager.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| alertmanager.​terminationGracePeriodSeconds | int | `60` | |
|
||||
| alertmanager.​tolerations | list | `[]` | Tolerations for pod assignment ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ |
|
||||
| clusterDomain | string | `"cluster.local"` | Kubernetes cluster DNS domain |
|
||||
| compactor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​key | string | `"app.kubernetes.io/component"` | |
|
||||
| compactor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​operator | string | `"In"` | |
|
||||
| compactor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​values[0] | string | `"compactor"` | |
|
||||
| compactor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​topologyKey | string | `"kubernetes.io/hostname"` | |
|
||||
| compactor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​weight | int | `100` | |
|
||||
| compactor.​annotations | object | `{}` | |
|
||||
| compactor.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| compactor.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| compactor.​enabled | bool | `true` | |
|
||||
| compactor.​env | list | `[]` | |
|
||||
| compactor.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| compactor.​extraContainers | list | `[]` | |
|
||||
| compactor.​extraPorts | list | `[]` | |
|
||||
| compactor.​extraVolumeMounts | list | `[]` | |
|
||||
| compactor.​extraVolumes | list | `[]` | |
|
||||
| compactor.​initContainers | list | `[]` | |
|
||||
| compactor.​livenessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| compactor.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| compactor.​livenessProbe.​httpGet.​scheme | string | `"HTTP"` | |
|
||||
| compactor.​nodeSelector | object | `{}` | |
|
||||
| compactor.​persistentVolume.​accessModes | list | `["ReadWriteOnce"]` | compactor data Persistent Volume access modes Must match those of existing PV or dynamic provisioner Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ |
|
||||
| compactor.​persistentVolume.​annotations | object | `{}` | compactor data Persistent Volume Claim annotations |
|
||||
| compactor.​persistentVolume.​enabled | bool | `true` | If true compactor will create/use a Persistent Volume Claim If false, use emptyDir |
|
||||
| compactor.​persistentVolume.​size | string | `"2Gi"` | |
|
||||
| compactor.​persistentVolume.​storageClass | string | `nil` | compactor data Persistent Volume Storage Class If defined, storageClassName: <storageClass> 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. |
|
||||
| compactor.​persistentVolume.​subPath | string | `""` | Subdirectory of compactor data Persistent Volume to mount Useful if the volume's root directory is not empty |
|
||||
| compactor.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| compactor.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| compactor.​podLabels | object | `{}` | Pod Labels |
|
||||
| compactor.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| compactor.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| compactor.​replicas | int | `1` | |
|
||||
| compactor.​resources | object | `{}` | |
|
||||
| compactor.​securityContext | object | `{}` | |
|
||||
| compactor.​service.​annotations | object | `{}` | |
|
||||
| compactor.​service.​labels | object | `{}` | |
|
||||
| compactor.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| compactor.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| compactor.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| compactor.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| compactor.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| compactor.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| compactor.​startupProbe.​failureThreshold | int | `60` | |
|
||||
| compactor.​startupProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| compactor.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| compactor.​startupProbe.​httpGet.​scheme | string | `"HTTP"` | |
|
||||
| compactor.​startupProbe.​initialDelaySeconds | int | `120` | |
|
||||
| compactor.​startupProbe.​periodSeconds | int | `30` | |
|
||||
| compactor.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| compactor.​terminationGracePeriodSeconds | int | `240` | |
|
||||
| compactor.​tolerations | list | `[]` | |
|
||||
| config.​alertmanager.​enable_api | bool | `false` | Enable the experimental alertmanager config api. |
|
||||
| config.​alertmanager.​external_url | string | `"/api/prom/alertmanager"` | |
|
||||
| config.​alertmanager.​storage | object | `{}` | Type of backend to use to store alertmanager configs. Supported values are: "configdb", "gcs", "s3", "local". refer to: https://cortexmetrics.io/docs/configuration/configuration-file/#alertmanager_config |
|
||||
| config.​api.​prometheus_http_prefix | string | `"/prometheus"` | |
|
||||
| config.​api.​response_compression_enabled | bool | `true` | Use GZIP compression for API responses. Some endpoints serve large YAML or JSON blobs which can benefit from compression. |
|
||||
| config.​auth_enabled | bool | `false` | |
|
||||
| config.​blocks_storage.​bucket_store.​bucket_index.​enabled | bool | `true` | |
|
||||
| config.​blocks_storage.​bucket_store.​sync_dir | string | `"/data/tsdb-sync"` | |
|
||||
| config.​blocks_storage.​tsdb.​dir | string | `"/data/tsdb"` | |
|
||||
| config.​distributor.​pool.​health_check_ingesters | bool | `true` | |
|
||||
| config.​distributor.​shard_by_all_labels | bool | `true` | Distribute samples based on all labels, as opposed to solely by user and metric name. |
|
||||
| config.​frontend.​log_queries_longer_than | string | `"10s"` | |
|
||||
| config.​ingester.​lifecycler.​final_sleep | string | `"30s"` | Duration to sleep for before exiting, to ensure metrics are scraped. |
|
||||
| config.​ingester.​lifecycler.​join_after | string | `"10s"` | We don't want to join immediately, but wait a bit to see other ingesters and their tokens first. It can take a while to have the full picture when using gossip |
|
||||
| config.​ingester.​lifecycler.​num_tokens | int | `512` | |
|
||||
| config.​ingester.​lifecycler.​observe_period | string | `"10s"` | To avoid generating same tokens by multiple ingesters, they can "observe" the ring for a while, after putting their own tokens into it. This is only useful when using gossip, since multiple ingesters joining at the same time can have conflicting tokens if they don't see each other yet. |
|
||||
| config.​ingester.​lifecycler.​ring.​kvstore.​store | string | `"memberlist"` | |
|
||||
| config.​ingester.​lifecycler.​ring.​replication_factor | int | `3` | Ingester replication factor per default is 3 |
|
||||
| config.​ingester_client.​grpc_client_config.​max_recv_msg_size | int | `10485760` | |
|
||||
| config.​ingester_client.​grpc_client_config.​max_send_msg_size | int | `10485760` | |
|
||||
| config.​limits.​enforce_metric_name | bool | `true` | Enforce that every sample has a metric name |
|
||||
| config.​limits.​max_query_lookback | string | `"0s"` | |
|
||||
| config.​limits.​reject_old_samples | bool | `true` | |
|
||||
| config.​limits.​reject_old_samples_max_age | string | `"168h"` | |
|
||||
| config.​memberlist.​bind_port | int | `7946` | |
|
||||
| config.​memberlist.​join_members | list | `["{{ include \"cortex.fullname\" $ }}-memberlist"]` | the service name of the memberlist if using memberlist discovery |
|
||||
| config.​querier.​active_query_tracker_dir | string | `"/data/active-query-tracker"` | |
|
||||
| config.​querier.​query_ingesters_within | string | `"13h"` | Maximum lookback beyond which queries are not sent to ingester. 0 means all queries are sent to ingester. Ingesters by default have no data older than 12 hours, so we can safely set this 13 hours |
|
||||
| config.​querier.​query_store_after | string | `"12h"` | The time after which a metric should be queried from storage and not just ingesters. |
|
||||
| config.​querier.​store_gateway_addresses | string | automatic | Comma separated list of store-gateway addresses in DNS Service Discovery format. This option should is set automatically when using the blocks storage and the store-gateway sharding is disabled (when enabled, the store-gateway instances form a ring and addresses are picked from the ring). |
|
||||
| config.​query_range.​align_queries_with_step | bool | `true` | |
|
||||
| config.​query_range.​cache_results | bool | `true` | |
|
||||
| config.​query_range.​results_cache.​cache.​memcached.​expiration | string | `"1h"` | |
|
||||
| config.​query_range.​results_cache.​cache.​memcached_client.​timeout | string | `"1s"` | |
|
||||
| config.​query_range.​split_queries_by_interval | string | `"24h"` | |
|
||||
| config.​ruler.​enable_alertmanager_discovery | bool | `false` | |
|
||||
| config.​ruler.​enable_api | bool | `true` | Enable the experimental ruler config api. |
|
||||
| config.​ruler.​storage | object | `{}` | Method to use for backend rule storage (configdb, azure, gcs, s3, swift, local) refer to https://cortexmetrics.io/docs/configuration/configuration-file/#ruler_config |
|
||||
| config.​runtime_config.​file | string | `"/etc/cortex-runtime-config/runtime_config.yaml"` | |
|
||||
| config.​server.​grpc_listen_port | int | `9095` | |
|
||||
| config.​server.​grpc_server_max_concurrent_streams | int | `10000` | |
|
||||
| config.​server.​grpc_server_max_recv_msg_size | int | `10485760` | |
|
||||
| config.​server.​grpc_server_max_send_msg_size | int | `10485760` | |
|
||||
| config.​server.​http_listen_port | int | `8080` | |
|
||||
| config.​storage | object | `{"engine":"blocks","index_queries_cache_config":{"memcached":{"expiration":"1h"},"memcached_client":{"timeout":"1s"}}}` | See https://github.com/cortexproject/cortex/blob/master/docs/configuration/config-file-reference.md#storage_config |
|
||||
| config.​storage.​index_queries_cache_config.​memcached.​expiration | string | `"1h"` | How long keys stay in the memcache |
|
||||
| config.​storage.​index_queries_cache_config.​memcached_client.​timeout | string | `"1s"` | Maximum time to wait before giving up on memcached requests. |
|
||||
| config.​store_gateway | object | `{"sharding_enabled":false}` | https://cortexmetrics.io/docs/configuration/configuration-file/#store_gateway_config |
|
||||
| configs.​affinity | object | `{}` | |
|
||||
| configs.​annotations | object | `{}` | |
|
||||
| configs.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| configs.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| configs.​enabled | bool | `false` | |
|
||||
| configs.​env | list | `[]` | |
|
||||
| configs.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| configs.​extraContainers | list | `[]` | |
|
||||
| configs.​extraPorts | list | `[]` | |
|
||||
| configs.​extraVolumeMounts | list | `[]` | |
|
||||
| configs.​extraVolumes | list | `[]` | |
|
||||
| configs.​initContainers | list | `[]` | |
|
||||
| configs.​livenessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| configs.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| configs.​nodeSelector | object | `{}` | |
|
||||
| configs.​persistentVolume.​subPath | string | `nil` | |
|
||||
| configs.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| configs.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| configs.​podLabels | object | `{}` | Pod Labels |
|
||||
| configs.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| configs.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| configs.​replicas | int | `1` | |
|
||||
| configs.​resources | object | `{}` | |
|
||||
| configs.​securityContext | object | `{}` | |
|
||||
| configs.​service.​annotations | object | `{}` | |
|
||||
| configs.​service.​labels | object | `{}` | |
|
||||
| configs.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| configs.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| configs.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| configs.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| configs.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| configs.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| configs.​startupProbe.​failureThreshold | int | `10` | |
|
||||
| configs.​startupProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| configs.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| configs.​strategy.​rollingUpdate.​maxSurge | int | `0` | |
|
||||
| configs.​strategy.​rollingUpdate.​maxUnavailable | int | `1` | |
|
||||
| configs.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| configs.​terminationGracePeriodSeconds | int | `180` | |
|
||||
| configs.​tolerations | list | `[]` | |
|
||||
| configsdb_postgresql.​auth.​existing_secret.​key | string | `nil` | |
|
||||
| configsdb_postgresql.​auth.​existing_secret.​name | string | `nil` | |
|
||||
| configsdb_postgresql.​auth.​password | string | `nil` | |
|
||||
| configsdb_postgresql.​enabled | bool | `false` | |
|
||||
| configsdb_postgresql.​uri | string | `nil` | |
|
||||
| distributor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​key | string | `"app.kubernetes.io/component"` | |
|
||||
| distributor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​operator | string | `"In"` | |
|
||||
| distributor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​values[0] | string | `"distributor"` | |
|
||||
| distributor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​topologyKey | string | `"kubernetes.io/hostname"` | |
|
||||
| distributor.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​weight | int | `100` | |
|
||||
| distributor.​annotations | object | `{}` | |
|
||||
| distributor.​autoscaling.​behavior | object | `{}` | Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-configurable-scaling-behavior |
|
||||
| distributor.​autoscaling.​enabled | bool | `false` | Creates a HorizontalPodAutoscaler for the distributor pods. |
|
||||
| distributor.​autoscaling.​maxReplicas | int | `30` | |
|
||||
| distributor.​autoscaling.​minReplicas | int | `2` | |
|
||||
| distributor.​autoscaling.​targetCPUUtilizationPercentage | int | `80` | |
|
||||
| distributor.​autoscaling.​targetMemoryUtilizationPercentage | int | `0` | |
|
||||
| distributor.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| distributor.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| distributor.​env | list | `[]` | |
|
||||
| distributor.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| distributor.​extraContainers | list | `[]` | |
|
||||
| distributor.​extraPorts | list | `[]` | |
|
||||
| distributor.​extraVolumeMounts | list | `[]` | |
|
||||
| distributor.​extraVolumes | list | `[]` | |
|
||||
| distributor.​initContainers | list | `[]` | |
|
||||
| distributor.​lifecycle | object | `{}` | |
|
||||
| distributor.​livenessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| distributor.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| distributor.​nodeSelector | object | `{}` | |
|
||||
| distributor.​persistentVolume.​subPath | string | `nil` | |
|
||||
| distributor.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| distributor.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| distributor.​podLabels | object | `{}` | Pod Labels |
|
||||
| distributor.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| distributor.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| distributor.​replicas | int | `2` | |
|
||||
| distributor.​resources | object | `{}` | |
|
||||
| distributor.​securityContext | object | `{}` | |
|
||||
| distributor.​service.​annotations | object | `{}` | |
|
||||
| distributor.​service.​labels | object | `{}` | |
|
||||
| distributor.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| distributor.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| distributor.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| distributor.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| distributor.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| distributor.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| distributor.​startupProbe.​failureThreshold | int | `10` | |
|
||||
| distributor.​startupProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| distributor.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| distributor.​strategy.​rollingUpdate.​maxSurge | int | `0` | |
|
||||
| distributor.​strategy.​rollingUpdate.​maxUnavailable | int | `1` | |
|
||||
| distributor.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| distributor.​terminationGracePeriodSeconds | int | `60` | |
|
||||
| distributor.​tolerations | list | `[]` | |
|
||||
| externalConfigSecretName | string | `"secret-with-config.yaml"` | |
|
||||
| externalConfigVersion | string | `"0"` | |
|
||||
| image.​pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.​pullSecrets | list | `[]` | Optionally specify an array of imagePullSecrets. Secrets must be manually created in the namespace. ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ |
|
||||
| image.​repository | string | `"quay.io/cortexproject/cortex"` | |
|
||||
| image.​tag | string | `""` | Allows you to override the cortex version in this chart. Use at your own risk. |
|
||||
| ingester.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​key | string | `"app.kubernetes.io/component"` | |
|
||||
| ingester.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​operator | string | `"In"` | |
|
||||
| ingester.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​values[0] | string | `"ingester"` | |
|
||||
| ingester.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​topologyKey | string | `"kubernetes.io/hostname"` | |
|
||||
| ingester.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​weight | int | `100` | |
|
||||
| ingester.​annotations | object | `{}` | |
|
||||
| ingester.​autoscaling.​behavior.​scaleDown.​policies | list | `[{"periodSeconds":1800,"type":"Pods","value":1}]` | see https://cortexmetrics.io/docs/guides/ingesters-scaling-up-and-down/#scaling-down for scaledown details |
|
||||
| ingester.​autoscaling.​behavior.​scaleDown.​stabilizationWindowSeconds | int | `3600` | uses metrics from the past 1h to make scaleDown decisions |
|
||||
| ingester.​autoscaling.​behavior.​scaleUp.​policies | list | `[{"periodSeconds":1800,"type":"Pods","value":1}]` | This default scaleup policy allows adding 1 pod every 30 minutes. Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-configurable-scaling-behavior |
|
||||
| ingester.​autoscaling.​enabled | bool | `false` | |
|
||||
| ingester.​autoscaling.​maxReplicas | int | `30` | |
|
||||
| ingester.​autoscaling.​minReplicas | int | `3` | |
|
||||
| ingester.​autoscaling.​targetMemoryUtilizationPercentage | int | `80` | |
|
||||
| ingester.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| ingester.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| ingester.​env | list | `[]` | |
|
||||
| ingester.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| ingester.​extraContainers | list | `[]` | |
|
||||
| ingester.​extraPorts | list | `[]` | |
|
||||
| ingester.​extraVolumeMounts | list | `[]` | |
|
||||
| ingester.​extraVolumes | list | `[]` | |
|
||||
| ingester.​initContainers | list | `[]` | |
|
||||
| ingester.​lifecycle.​preStop | object | `{"httpGet":{"path":"/ingester/shutdown","port":"http-metrics"}}` | The /shutdown preStop hook is recommended as part of the ingester scaledown process, but can be removed to optimize rolling restarts in instances that will never be scaled down or when using chunks storage with WAL disabled. https://cortexmetrics.io/docs/guides/ingesters-scaling-up-and-down/#scaling-down |
|
||||
| ingester.​livenessProbe | object | `{}` | Startup/liveness probes for ingesters are not recommended. Ref: https://cortexmetrics.io/docs/guides/running-cortex-on-kubernetes/#take-extra-care-with-ingesters |
|
||||
| ingester.​nodeSelector | object | `{}` | |
|
||||
| ingester.​persistentVolume.​accessModes | list | `["ReadWriteOnce"]` | Ingester data Persistent Volume access modes Must match those of existing PV or dynamic provisioner Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ |
|
||||
| ingester.​persistentVolume.​annotations | object | `{}` | Ingester data Persistent Volume Claim annotations |
|
||||
| ingester.​persistentVolume.​enabled | bool | `true` | If true and ingester.statefulSet.enabled is true, Ingester will create/use a Persistent Volume Claim If false, use emptyDir |
|
||||
| ingester.​persistentVolume.​size | string | `"2Gi"` | Ingester data Persistent Volume size |
|
||||
| ingester.​persistentVolume.​storageClass | string | `nil` | Ingester data Persistent Volume Storage Class If defined, storageClassName: <storageClass> 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. |
|
||||
| ingester.​persistentVolume.​subPath | string | `""` | Subdirectory of Ingester data Persistent Volume to mount Useful if the volume's root directory is not empty |
|
||||
| ingester.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| ingester.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| ingester.​podLabels | object | `{}` | Pod Labels |
|
||||
| ingester.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| ingester.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| ingester.​replicas | int | `3` | |
|
||||
| ingester.​resources | object | `{}` | |
|
||||
| ingester.​securityContext | object | `{}` | |
|
||||
| ingester.​service.​annotations | object | `{}` | |
|
||||
| ingester.​service.​labels | object | `{}` | |
|
||||
| ingester.​serviceAccount.​name | string | `nil` | |
|
||||
| ingester.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| ingester.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| ingester.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| ingester.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| ingester.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| ingester.​startupProbe | object | `{}` | Startup/liveness probes for ingesters are not recommended. Ref: https://cortexmetrics.io/docs/guides/running-cortex-on-kubernetes/#take-extra-care-with-ingesters |
|
||||
| ingester.​statefulSet.​enabled | bool | `false` | If true, use a statefulset instead of a deployment for pod management. This is useful when using WAL |
|
||||
| ingester.​statefulSet.​podManagementPolicy | string | `"OrderedReady"` | ref: https://cortexmetrics.io/docs/guides/ingesters-scaling-up-and-down/#scaling-down and https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies for scaledown details |
|
||||
| ingester.​statefulStrategy.​type | string | `"RollingUpdate"` | |
|
||||
| ingester.​strategy.​rollingUpdate.​maxSurge | int | `0` | |
|
||||
| ingester.​strategy.​rollingUpdate.​maxUnavailable | int | `1` | |
|
||||
| ingester.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| ingester.​terminationGracePeriodSeconds | int | `240` | |
|
||||
| ingester.​tolerations | list | `[]` | |
|
||||
| ingress.​annotations | object | `{}` | |
|
||||
| ingress.​enabled | bool | `false` | |
|
||||
| ingress.​hosts[0].​host | string | `"chart-example.local"` | |
|
||||
| ingress.​hosts[0].​paths[0] | string | `"/"` | |
|
||||
| ingress.​ingressClass.​enabled | bool | `false` | |
|
||||
| ingress.​ingressClass.​name | string | `"nginx"` | |
|
||||
| ingress.​tls | list | `[]` | |
|
||||
| memcached | object | `{"architecture":"high-availability","enabled":false,"extraEnv":[{"name":"MEMCACHED_CACHE_SIZE","value":"1024"},{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"},{"name":"MEMCACHED_THREADS","value":"4"}],"metrics":{"enabled":true,"serviceMonitor":{"enabled":false}},"replicaCount":2,"resources":{}}` | chunk caching for legacy chunk storage engine |
|
||||
| memcached-blocks-index.​architecture | string | `"high-availability"` | |
|
||||
| memcached-blocks-index.​extraEnv[0] | object | `{"name":"MEMCACHED_CACHE_SIZE","value":"1024"}` | MEMCACHED_CACHE_SIZE is the amount of memory allocated to memcached for object storage |
|
||||
| memcached-blocks-index.​extraEnv[1] | object | `{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"}` | MEMCACHED_MAX_CONNECTIONS is the maximum number of simultaneous connections to the memcached service |
|
||||
| memcached-blocks-index.​extraEnv[2] | object | `{"name":"MEMCACHED_THREADS","value":"4"}` | MEMCACHED_THREADS is the number of threads to use when processing incoming requests. By default, memcached is configured to use 4 concurrent threads. The threading improves the performance of storing and retrieving data in the cache, using a locking system to prevent different threads overwriting or updating the same values. |
|
||||
| memcached-blocks-index.​metrics.​enabled | bool | `true` | |
|
||||
| memcached-blocks-index.​metrics.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| memcached-blocks-index.​replicaCount | int | `2` | |
|
||||
| memcached-blocks-index.​resources | object | `{}` | |
|
||||
| memcached-blocks-metadata.​architecture | string | `"high-availability"` | |
|
||||
| memcached-blocks-metadata.​extraEnv[0] | object | `{"name":"MEMCACHED_CACHE_SIZE","value":"1024"}` | MEMCACHED_CACHE_SIZE is the amount of memory allocated to memcached for object storage |
|
||||
| memcached-blocks-metadata.​extraEnv[1] | object | `{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"}` | MEMCACHED_MAX_CONNECTIONS is the maximum number of simultaneous connections to the memcached service |
|
||||
| memcached-blocks-metadata.​extraEnv[2] | object | `{"name":"MEMCACHED_THREADS","value":"4"}` | MEMCACHED_THREADS is the number of threads to use when processing incoming requests. By default, memcached is configured to use 4 concurrent threads. The threading improves the performance of storing and retrieving data in the cache, using a locking system to prevent different threads overwriting or updating the same values. |
|
||||
| memcached-blocks-metadata.​metrics.​enabled | bool | `true` | |
|
||||
| memcached-blocks-metadata.​metrics.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| memcached-blocks-metadata.​replicaCount | int | `2` | |
|
||||
| memcached-blocks-metadata.​resources | object | `{}` | |
|
||||
| memcached-blocks.​architecture | string | `"high-availability"` | |
|
||||
| memcached-blocks.​extraEnv[0] | object | `{"name":"MEMCACHED_CACHE_SIZE","value":"1024"}` | MEMCACHED_CACHE_SIZE is the amount of memory allocated to memcached for object storage |
|
||||
| memcached-blocks.​extraEnv[1] | object | `{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"}` | MEMCACHED_MAX_CONNECTIONS is the maximum number of simultaneous connections to the memcached service |
|
||||
| memcached-blocks.​extraEnv[2] | object | `{"name":"MEMCACHED_THREADS","value":"4"}` | MEMCACHED_THREADS is the number of threads to use when processing incoming requests. By default, memcached is configured to use 4 concurrent threads. The threading improves the performance of storing and retrieving data in the cache, using a locking system to prevent different threads overwriting or updating the same values. |
|
||||
| memcached-blocks.​metrics.​enabled | bool | `true` | |
|
||||
| memcached-blocks.​metrics.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| memcached-blocks.​replicaCount | int | `2` | |
|
||||
| memcached-blocks.​resources | object | `{}` | |
|
||||
| memcached-frontend.​architecture | string | `"high-availability"` | |
|
||||
| memcached-frontend.​enabled | bool | `false` | |
|
||||
| memcached-frontend.​extraEnv[0] | object | `{"name":"MEMCACHED_CACHE_SIZE","value":"1024"}` | MEMCACHED_CACHE_SIZE is the amount of memory allocated to memcached for object storage |
|
||||
| memcached-frontend.​extraEnv[1] | object | `{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"}` | MEMCACHED_MAX_CONNECTIONS is the maximum number of simultaneous connections to the memcached service |
|
||||
| memcached-frontend.​extraEnv[2] | object | `{"name":"MEMCACHED_THREADS","value":"4"}` | MEMCACHED_THREADS is the number of threads to use when processing incoming requests. By default, memcached is configured to use 4 concurrent threads. The threading improves the performance of storing and retrieving data in the cache, using a locking system to prevent different threads overwriting or updating the same values. |
|
||||
| memcached-frontend.​metrics.​enabled | bool | `true` | |
|
||||
| memcached-frontend.​metrics.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| memcached-frontend.​replicaCount | int | `2` | |
|
||||
| memcached-frontend.​resources | object | `{}` | |
|
||||
| memcached-index-read | object | `{"architecture":"high-availability","enabled":false,"extraEnv":[{"name":"MEMCACHED_CACHE_SIZE","value":"1024"},{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"},{"name":"MEMCACHED_THREADS","value":"4"}],"metrics":{"enabled":true,"serviceMonitor":{"enabled":false}},"replicaCount":2,"resources":{}}` | index read caching for legacy chunk storage engine |
|
||||
| memcached-index-read.​extraEnv[0] | object | `{"name":"MEMCACHED_CACHE_SIZE","value":"1024"}` | MEMCACHED_CACHE_SIZE is the amount of memory allocated to memcached for object storage |
|
||||
| memcached-index-read.​extraEnv[1] | object | `{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"}` | MEMCACHED_MAX_CONNECTIONS is the maximum number of simultaneous connections to the memcached service |
|
||||
| memcached-index-read.​extraEnv[2] | object | `{"name":"MEMCACHED_THREADS","value":"4"}` | MEMCACHED_THREADS is the number of threads to use when processing incoming requests. By default, memcached is configured to use 4 concurrent threads. The threading improves the performance of storing and retrieving data in the cache, using a locking system to prevent different threads overwriting or updating the same values. |
|
||||
| memcached-index-write | object | `{"architecture":"high-availability","enabled":false,"extraEnv":[{"name":"MEMCACHED_CACHE_SIZE","value":"1024"},{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"},{"name":"MEMCACHED_THREADS","value":"4"}],"metrics":{"enabled":true,"serviceMonitor":{"enabled":false}},"replicaCount":2,"resources":{}}` | index write caching for legacy chunk storage engine |
|
||||
| memcached-index-write.​extraEnv[0] | object | `{"name":"MEMCACHED_CACHE_SIZE","value":"1024"}` | MEMCACHED_CACHE_SIZE is the amount of memory allocated to memcached for object storage |
|
||||
| memcached-index-write.​extraEnv[1] | object | `{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"}` | MEMCACHED_MAX_CONNECTIONS is the maximum number of simultaneous connections to the memcached service |
|
||||
| memcached-index-write.​extraEnv[2] | object | `{"name":"MEMCACHED_THREADS","value":"4"}` | MEMCACHED_THREADS is the number of threads to use when processing incoming requests. By default, memcached is configured to use 4 concurrent threads. The threading improves the performance of storing and retrieving data in the cache, using a locking system to prevent different threads overwriting or updating the same values. |
|
||||
| memcached.​extraEnv[0] | object | `{"name":"MEMCACHED_CACHE_SIZE","value":"1024"}` | MEMCACHED_CACHE_SIZE is the amount of memory allocated to memcached for object storage |
|
||||
| memcached.​extraEnv[1] | object | `{"name":"MEMCACHED_MAX_CONNECTIONS","value":"1024"}` | MEMCACHED_MAX_CONNECTIONS is the maximum number of simultaneous connections to the memcached service |
|
||||
| memcached.​extraEnv[2] | object | `{"name":"MEMCACHED_THREADS","value":"4"}` | MEMCACHED_THREADS is the number of threads to use when processing incoming requests. By default, memcached is configured to use 4 concurrent threads. The threading improves the performance of storing and retrieving data in the cache, using a locking system to prevent different threads overwriting or updating the same values. |
|
||||
| nginx.​affinity | object | `{}` | |
|
||||
| nginx.​annotations | object | `{}` | |
|
||||
| nginx.​autoscaling.​behavior | object | `{}` | Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-configurable-scaling-behavior |
|
||||
| nginx.​autoscaling.​enabled | bool | `false` | Creates a HorizontalPodAutoscaler for the nginx pods. |
|
||||
| nginx.​autoscaling.​maxReplicas | int | `30` | |
|
||||
| nginx.​autoscaling.​minReplicas | int | `2` | |
|
||||
| nginx.​autoscaling.​targetCPUUtilizationPercentage | int | `80` | |
|
||||
| nginx.​autoscaling.​targetMemoryUtilizationPercentage | int | `0` | |
|
||||
| nginx.​config.​auth_orgs | list | `[]` | (optional) List of [auth tenants](https://cortexmetrics.io/docs/guides/auth/) to set in the nginx config |
|
||||
| nginx.​config.​basicAuthSecretName | string | `""` | (optional) Name of basic auth secret. In order to use this option, a secret with htpasswd formatted contents at the key ".htpasswd" must exist. For example: apiVersion: v1 kind: Secret metadata: name: my-secret namespace: <same as cortex installation> stringData: .htpasswd: | user1:$apr1$/woC1jnP$KAh0SsVn5qeSMjTtn0E9Q0 user2:$apr1$QdR8fNLT$vbCEEzDj7LyqCMyNpSoBh/ Please note that the use of basic auth will not identify organizations the way X-Scope-OrgID does. Thus, the use of basic auth alone will not prevent one tenant from viewing the metrics of another. To ensure tenants are scoped appropriately, explicitly set the `X-Scope-OrgID` header in the nginx config. Example setHeaders: X-Scope-OrgID: $remote_user |
|
||||
| nginx.​config.​client_max_body_size | string | `"1M"` | ref: http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size |
|
||||
| nginx.​config.​dnsResolver | string | `"coredns.kube-system.svc.cluster.local"` | |
|
||||
| nginx.​config.​httpSnippet | string | `""` | arbitrary snippet to inject in the http { } section of the nginx config |
|
||||
| nginx.​config.​mainSnippet | string | `""` | arbitrary snippet to inject in the top section of the nginx config |
|
||||
| nginx.​config.​serverSnippet | string | `""` | arbitrary snippet to inject in the server { } section of the nginx config |
|
||||
| nginx.​config.​setHeaders | object | `{}` | |
|
||||
| nginx.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| nginx.​containerSecurityContext.​readOnlyRootFilesystem | bool | `false` | |
|
||||
| nginx.​enabled | bool | `true` | |
|
||||
| nginx.​env | list | `[]` | |
|
||||
| nginx.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| nginx.​extraContainers | list | `[]` | |
|
||||
| nginx.​extraPorts | list | `[]` | |
|
||||
| nginx.​extraVolumeMounts | list | `[]` | |
|
||||
| nginx.​extraVolumes | list | `[]` | |
|
||||
| nginx.​http_listen_port | int | `80` | |
|
||||
| nginx.​image.​pullPolicy | string | `"IfNotPresent"` | |
|
||||
| nginx.​image.​repository | string | `"nginx"` | |
|
||||
| nginx.​image.​tag | float | `1.21` | |
|
||||
| nginx.​initContainers | list | `[]` | |
|
||||
| nginx.​livenessProbe.​httpGet.​path | string | `"/healthz"` | |
|
||||
| nginx.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| nginx.​nodeSelector | object | `{}` | |
|
||||
| nginx.​persistentVolume.​subPath | string | `nil` | |
|
||||
| nginx.​podAnnotations | object | `{}` | Pod Annotations |
|
||||
| nginx.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| nginx.​podLabels | object | `{}` | Pod Labels |
|
||||
| nginx.​readinessProbe.​httpGet.​path | string | `"/healthz"` | |
|
||||
| nginx.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| nginx.​replicas | int | `2` | |
|
||||
| nginx.​resources | object | `{}` | |
|
||||
| nginx.​securityContext | object | `{}` | |
|
||||
| nginx.​service.​annotations | object | `{}` | |
|
||||
| nginx.​service.​labels | object | `{}` | |
|
||||
| nginx.​service.​type | string | `"ClusterIP"` | |
|
||||
| nginx.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| nginx.​startupProbe.​failureThreshold | int | `10` | |
|
||||
| nginx.​startupProbe.​httpGet.​path | string | `"/healthz"` | |
|
||||
| nginx.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| nginx.​strategy.​rollingUpdate.​maxSurge | int | `0` | |
|
||||
| nginx.​strategy.​rollingUpdate.​maxUnavailable | int | `1` | |
|
||||
| nginx.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| nginx.​terminationGracePeriodSeconds | int | `10` | |
|
||||
| nginx.​tolerations | list | `[]` | |
|
||||
| querier.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​key | string | `"app.kubernetes.io/component"` | |
|
||||
| querier.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​operator | string | `"In"` | |
|
||||
| querier.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​values[0] | string | `"querier"` | |
|
||||
| querier.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​topologyKey | string | `"kubernetes.io/hostname"` | |
|
||||
| querier.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​weight | int | `100` | |
|
||||
| querier.​annotations | object | `{}` | |
|
||||
| querier.​autoscaling.​behavior | object | `{}` | Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-configurable-scaling-behavior |
|
||||
| querier.​autoscaling.​enabled | bool | `false` | Creates a HorizontalPodAutoscaler for the querier pods. |
|
||||
| querier.​autoscaling.​maxReplicas | int | `30` | |
|
||||
| querier.​autoscaling.​minReplicas | int | `2` | |
|
||||
| querier.​autoscaling.​targetCPUUtilizationPercentage | int | `80` | |
|
||||
| querier.​autoscaling.​targetMemoryUtilizationPercentage | int | `0` | |
|
||||
| querier.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| querier.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| querier.​env | list | `[]` | |
|
||||
| querier.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| querier.​extraContainers | list | `[]` | |
|
||||
| querier.​extraPorts | list | `[]` | |
|
||||
| querier.​extraVolumeMounts | list | `[]` | |
|
||||
| querier.​extraVolumes | list | `[]` | |
|
||||
| querier.​initContainers | list | `[]` | |
|
||||
| querier.​lifecycle | object | `{}` | |
|
||||
| querier.​livenessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| querier.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| querier.​nodeSelector | object | `{}` | |
|
||||
| querier.​persistentVolume.​subPath | string | `nil` | |
|
||||
| querier.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| querier.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| querier.​podLabels | object | `{}` | Pod Labels |
|
||||
| querier.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| querier.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| querier.​replicas | int | `2` | |
|
||||
| querier.​resources | object | `{}` | |
|
||||
| querier.​securityContext | object | `{}` | |
|
||||
| querier.​service.​annotations | object | `{}` | |
|
||||
| querier.​service.​labels | object | `{}` | |
|
||||
| querier.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| querier.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| querier.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| querier.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| querier.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| querier.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| querier.​startupProbe.​failureThreshold | int | `10` | |
|
||||
| querier.​startupProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| querier.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| querier.​strategy.​rollingUpdate.​maxSurge | int | `0` | |
|
||||
| querier.​strategy.​rollingUpdate.​maxUnavailable | int | `1` | |
|
||||
| querier.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| querier.​terminationGracePeriodSeconds | int | `180` | |
|
||||
| querier.​tolerations | list | `[]` | |
|
||||
| query_frontend.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​key | string | `"app.kubernetes.io/component"` | |
|
||||
| query_frontend.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​operator | string | `"In"` | |
|
||||
| query_frontend.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​values[0] | string | `"query-frontend"` | |
|
||||
| query_frontend.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​topologyKey | string | `"kubernetes.io/hostname"` | |
|
||||
| query_frontend.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​weight | int | `100` | |
|
||||
| query_frontend.​annotations | object | `{}` | |
|
||||
| query_frontend.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| query_frontend.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| query_frontend.​env | list | `[]` | |
|
||||
| query_frontend.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| query_frontend.​extraContainers | list | `[]` | |
|
||||
| query_frontend.​extraPorts | list | `[]` | |
|
||||
| query_frontend.​extraVolumeMounts | list | `[]` | |
|
||||
| query_frontend.​extraVolumes | list | `[]` | |
|
||||
| query_frontend.​initContainers | list | `[]` | |
|
||||
| query_frontend.​lifecycle | object | `{}` | |
|
||||
| query_frontend.​livenessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| query_frontend.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| query_frontend.​nodeSelector | object | `{}` | |
|
||||
| query_frontend.​persistentVolume.​subPath | string | `nil` | |
|
||||
| query_frontend.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| query_frontend.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| query_frontend.​podLabels | object | `{}` | Pod Labels |
|
||||
| query_frontend.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| query_frontend.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| query_frontend.​replicas | int | `2` | |
|
||||
| query_frontend.​resources | object | `{}` | |
|
||||
| query_frontend.​securityContext | object | `{}` | |
|
||||
| query_frontend.​service.​annotations | object | `{}` | |
|
||||
| query_frontend.​service.​labels | object | `{}` | |
|
||||
| query_frontend.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| query_frontend.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| query_frontend.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| query_frontend.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| query_frontend.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| query_frontend.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| query_frontend.​startupProbe.​failureThreshold | int | `10` | |
|
||||
| query_frontend.​startupProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| query_frontend.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| query_frontend.​strategy.​rollingUpdate.​maxSurge | int | `0` | |
|
||||
| query_frontend.​strategy.​rollingUpdate.​maxUnavailable | int | `1` | |
|
||||
| query_frontend.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| query_frontend.​terminationGracePeriodSeconds | int | `180` | |
|
||||
| query_frontend.​tolerations | list | `[]` | |
|
||||
| ruler.​affinity | object | `{}` | |
|
||||
| ruler.​annotations | object | `{}` | |
|
||||
| ruler.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| ruler.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| ruler.​directories | object | `{}` | allow configuring rules via configmap. ref: https://cortexproject.github.io/cortex-helm-chart/guides/configure_rules_via_configmap.html |
|
||||
| ruler.​enabled | bool | `true` | |
|
||||
| ruler.​env | list | `[]` | |
|
||||
| ruler.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| ruler.​extraContainers | list | `[]` | |
|
||||
| ruler.​extraPorts | list | `[]` | |
|
||||
| ruler.​extraVolumeMounts | list | `[]` | |
|
||||
| ruler.​extraVolumes | list | `[]` | |
|
||||
| ruler.​initContainers | list | `[]` | |
|
||||
| ruler.​livenessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| ruler.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| ruler.​nodeSelector | object | `{}` | |
|
||||
| ruler.​persistentVolume.​subPath | string | `nil` | |
|
||||
| ruler.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| ruler.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| ruler.​podLabels | object | `{}` | Pod Labels |
|
||||
| ruler.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| ruler.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| ruler.​replicas | int | `1` | |
|
||||
| ruler.​resources | object | `{}` | |
|
||||
| ruler.​securityContext | object | `{}` | |
|
||||
| ruler.​service.​annotations | object | `{}` | |
|
||||
| ruler.​service.​labels | object | `{}` | |
|
||||
| ruler.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| ruler.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| ruler.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| ruler.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| ruler.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| ruler.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| ruler.​sidecar | object | `{"containerSecurityContext":{"enabled":true,"readOnlyRootFilesystem":true},"defaultFolderName":null,"enableUniqueFilenames":false,"enabled":false,"folder":"/tmp/rules","folderAnnotation":null,"image":{"repository":"quay.io/kiwigrid/k8s-sidecar","sha":"","tag":"1.10.7"},"imagePullPolicy":"IfNotPresent","label":"cortex_rules","labelValue":null,"resources":{},"searchNamespace":null,"watchMethod":null}` | Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders |
|
||||
| ruler.​sidecar.​defaultFolderName | string | `nil` | The default folder name, it will create a subfolder under the `folder` and put rules in there instead |
|
||||
| ruler.​sidecar.​folder | string | `"/tmp/rules"` | folder in the pod that should hold the collected rules (unless `defaultFolderName` is set) |
|
||||
| ruler.​sidecar.​folderAnnotation | string | `nil` | If specified, the sidecar will look for annotation with this name to create folder and put graph here. You can use this parameter together with `provider.foldersFromFilesStructure`to annotate configmaps and create folder structure. |
|
||||
| ruler.​sidecar.​label | string | `"cortex_rules"` | label that the configmaps with rules are marked with |
|
||||
| ruler.​sidecar.​labelValue | string | `nil` | value of label that the configmaps with rules are set to |
|
||||
| ruler.​sidecar.​searchNamespace | string | `nil` | If specified, the sidecar will search for rules config-maps inside this namespace. Otherwise the namespace in which the sidecar is running will be used. It's also possible to specify ALL to search in all namespaces |
|
||||
| ruler.​startupProbe.​failureThreshold | int | `10` | |
|
||||
| ruler.​startupProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| ruler.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| ruler.​strategy.​rollingUpdate.​maxSurge | int | `0` | |
|
||||
| ruler.​strategy.​rollingUpdate.​maxUnavailable | int | `1` | |
|
||||
| ruler.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| ruler.​terminationGracePeriodSeconds | int | `180` | |
|
||||
| ruler.​tolerations | list | `[]` | |
|
||||
| runtimeconfigmap.​annotations | object | `{}` | |
|
||||
| runtimeconfigmap.​create | bool | `true` | If true, a configmap for the `runtime_config` will be created. If false, the configmap _must_ exist already on the cluster or pods will fail to create. |
|
||||
| runtimeconfigmap.​runtime_config | object | `{}` | https://cortexmetrics.io/docs/configuration/arguments/#runtime-configuration-file |
|
||||
| serviceAccount.​annotations | object | `{}` | |
|
||||
| serviceAccount.​automountServiceAccountToken | bool | `true` | |
|
||||
| serviceAccount.​create | bool | `true` | |
|
||||
| serviceAccount.​name | string | `nil` | |
|
||||
| store_gateway.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​key | string | `"app.kubernetes.io/component"` | |
|
||||
| store_gateway.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​operator | string | `"In"` | |
|
||||
| store_gateway.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​labelSelector.​matchExpressions[0].​values[0] | string | `"store-gateway"` | |
|
||||
| store_gateway.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​podAffinityTerm.​topologyKey | string | `"kubernetes.io/hostname"` | |
|
||||
| store_gateway.​affinity.​podAntiAffinity.​preferredDuringSchedulingIgnoredDuringExecution[0].​weight | int | `100` | |
|
||||
| store_gateway.​annotations | object | `{}` | |
|
||||
| store_gateway.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| store_gateway.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| store_gateway.​env | list | `[]` | |
|
||||
| store_gateway.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| store_gateway.​extraContainers | list | `[]` | |
|
||||
| store_gateway.​extraPorts | list | `[]` | |
|
||||
| store_gateway.​extraVolumeMounts | list | `[]` | |
|
||||
| store_gateway.​extraVolumes | list | `[]` | |
|
||||
| store_gateway.​initContainers | list | `[]` | |
|
||||
| store_gateway.​livenessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| store_gateway.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| store_gateway.​livenessProbe.​httpGet.​scheme | string | `"HTTP"` | |
|
||||
| store_gateway.​nodeSelector | object | `{}` | |
|
||||
| store_gateway.​persistentVolume.​accessModes | list | `["ReadWriteOnce"]` | Store-gateway data Persistent Volume access modes Must match those of existing PV or dynamic provisioner Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ |
|
||||
| store_gateway.​persistentVolume.​annotations | object | `{}` | Store-gateway data Persistent Volume Claim annotations |
|
||||
| store_gateway.​persistentVolume.​enabled | bool | `true` | If true Store-gateway will create/use a Persistent Volume Claim If false, use emptyDir |
|
||||
| store_gateway.​persistentVolume.​size | string | `"2Gi"` | Store-gateway data Persistent Volume size |
|
||||
| store_gateway.​persistentVolume.​storageClass | string | `nil` | Store-gateway data Persistent Volume Storage Class If defined, storageClassName: <storageClass> 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. |
|
||||
| store_gateway.​persistentVolume.​subPath | string | `""` | Subdirectory of Store-gateway data Persistent Volume to mount Useful if the volume's root directory is not empty |
|
||||
| store_gateway.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| store_gateway.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| store_gateway.​podLabels | object | `{}` | Pod Labels |
|
||||
| store_gateway.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| store_gateway.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| store_gateway.​replicas | int | `1` | |
|
||||
| store_gateway.​resources | object | `{}` | |
|
||||
| store_gateway.​securityContext | object | `{}` | |
|
||||
| store_gateway.​service.​annotations | object | `{}` | |
|
||||
| store_gateway.​service.​labels | object | `{}` | |
|
||||
| store_gateway.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| store_gateway.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| store_gateway.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| store_gateway.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| store_gateway.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| store_gateway.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| store_gateway.​startupProbe.​failureThreshold | int | `60` | |
|
||||
| store_gateway.​startupProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| store_gateway.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| store_gateway.​startupProbe.​httpGet.​scheme | string | `"HTTP"` | |
|
||||
| store_gateway.​startupProbe.​initialDelaySeconds | int | `120` | |
|
||||
| store_gateway.​startupProbe.​periodSeconds | int | `30` | |
|
||||
| store_gateway.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| store_gateway.​terminationGracePeriodSeconds | int | `240` | |
|
||||
| store_gateway.​tolerations | list | `[]` | |
|
||||
| table_manager.​affinity | object | `{}` | |
|
||||
| table_manager.​annotations | object | `{}` | |
|
||||
| table_manager.​containerSecurityContext.​enabled | bool | `true` | |
|
||||
| table_manager.​containerSecurityContext.​readOnlyRootFilesystem | bool | `true` | |
|
||||
| table_manager.​env | list | `[]` | |
|
||||
| table_manager.​extraArgs | object | `{}` | Additional Cortex container arguments, e.g. log.level (debug, info, warn, error) |
|
||||
| table_manager.​extraContainers | list | `[]` | |
|
||||
| table_manager.​extraPorts | list | `[]` | |
|
||||
| table_manager.​extraVolumeMounts | list | `[]` | |
|
||||
| table_manager.​extraVolumes | list | `[]` | |
|
||||
| table_manager.​initContainers | list | `[]` | |
|
||||
| table_manager.​livenessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| table_manager.​livenessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| table_manager.​nodeSelector | object | `{}` | |
|
||||
| table_manager.​persistentVolume.​subPath | string | `nil` | |
|
||||
| table_manager.​podAnnotations | object | `{"prometheus.io/port":"8080","prometheus.io/scrape":"true"}` | Pod Annotations |
|
||||
| table_manager.​podDisruptionBudget.​maxUnavailable | int | `1` | |
|
||||
| table_manager.​podLabels | object | `{}` | Pod Labels |
|
||||
| table_manager.​readinessProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| table_manager.​readinessProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| table_manager.​replicas | int | `1` | |
|
||||
| table_manager.​resources | object | `{}` | |
|
||||
| table_manager.​securityContext | object | `{}` | |
|
||||
| table_manager.​service.​annotations | object | `{}` | |
|
||||
| table_manager.​service.​labels | object | `{}` | |
|
||||
| table_manager.​serviceAccount.​name | string | `""` | "" disables the individual serviceAccount and uses the global serviceAccount for that component |
|
||||
| table_manager.​serviceMonitor.​additionalLabels | object | `{}` | |
|
||||
| table_manager.​serviceMonitor.​enabled | bool | `false` | |
|
||||
| table_manager.​serviceMonitor.​extraEndpointSpec | object | `{}` | Additional endpoint configuration https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint |
|
||||
| table_manager.​serviceMonitor.​metricRelabelings | list | `[]` | |
|
||||
| table_manager.​serviceMonitor.​relabelings | list | `[]` | |
|
||||
| table_manager.​startupProbe.​failureThreshold | int | `10` | |
|
||||
| table_manager.​startupProbe.​httpGet.​path | string | `"/ready"` | |
|
||||
| table_manager.​startupProbe.​httpGet.​port | string | `"http-metrics"` | |
|
||||
| table_manager.​strategy.​rollingUpdate.​maxSurge | int | `0` | |
|
||||
| table_manager.​strategy.​rollingUpdate.​maxUnavailable | int | `1` | |
|
||||
| table_manager.​strategy.​type | string | `"RollingUpdate"` | |
|
||||
| table_manager.​terminationGracePeriodSeconds | int | `180` | |
|
||||
| table_manager.​tolerations | list | `[]` | |
|
||||
| tags.​blocks-storage-memcached | bool | `false` | Set to true to enable block storage memcached caching |
|
||||
| useConfigMap | bool | `false` | |
|
||||
| useExternalConfig | bool | `false` | |
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{{- if eq .Values.config.storage.engine "chunks" }}
|
||||
Cortex chunks storage has been deprecated, and it's now in maintenance mode: all Cortex users are encouraged to migrate to the blocks storage.
|
||||
No new features will be added to the chunks storage.
|
||||
Unlike the official cortex default configuration this helm-chart does not run the chunk engine by default.
|
||||
{{- end }}
|
||||
|
||||
Verify the application is working by running these commands:
|
||||
kubectl --namespace {{ .Release.Namespace }} port-forward service/{{ include "cortex.querierFullname" . }} {{ .Values.config.server.http_listen_port }}
|
||||
curl http://127.0.0.1:{{ .Values.config.server.http_listen_port }}/services
|
||||
@@ -0,0 +1,155 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "cortex.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "cortex.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "cortex.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account
|
||||
*/}}
|
||||
{{- define "cortex.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ default (include "cortex.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the app name of cortex clients. Defaults to the same logic as "cortex.fullname", and default client expects "prometheus".
|
||||
*/}}
|
||||
{{- define "client.name" -}}
|
||||
{{- if .Values.client.name -}}
|
||||
{{- .Values.client.name -}}
|
||||
{{- else if .Values.client.fullnameOverride -}}
|
||||
{{- .Values.client.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default "prometheus" .Values.client.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "cortex.labels" -}}
|
||||
helm.sh/chart: {{ include "cortex.chart" . }}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "cortex.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "cortex.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create configuration parameters for memcached configuration
|
||||
*/}}
|
||||
{{- define "cortex.memcached" -}}
|
||||
{{- if and (eq .Values.config.storage.engine "blocks") (index .Values "tags" "blocks-storage-memcached") }}
|
||||
- "-blocks-storage.bucket-store.index-cache.backend=memcached"
|
||||
- "-blocks-storage.bucket-store.index-cache.memcached.addresses=dns+{{ .Release.Name }}-memcached-blocks-index.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:11211"
|
||||
- "-blocks-storage.bucket-store.chunks-cache.backend=memcached"
|
||||
- "-blocks-storage.bucket-store.chunks-cache.memcached.addresses=dns+{{ .Release.Name }}-memcached-blocks.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:11211"
|
||||
- "-blocks-storage.bucket-store.metadata-cache.backend=memcached"
|
||||
- "-blocks-storage.bucket-store.metadata-cache.memcached.addresses=dns+{{ .Release.Name }}-memcached-blocks-metadata.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:11211"
|
||||
{{- end -}}
|
||||
{{- if and (ne .Values.config.storage.engine "blocks") .Values.memcached.enabled }}
|
||||
- "-store.chunks-cache.memcached.addresses=dns+{{ .Release.Name }}-memcached.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:11211"
|
||||
{{- end -}}
|
||||
{{- if and (ne .Values.config.storage.engine "blocks") (index .Values "memcached-index-read" "enabled") }}
|
||||
- "-store.index-cache-read.memcached.addresses=dns+{{ .Release.Name }}-memcached-index-read.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:11211"
|
||||
{{- end -}}
|
||||
{{- if and (ne .Values.config.storage.engine "blocks") (index .Values "memcached-index-write" "enabled") }}
|
||||
- "-store.index-cache-write.memcached.addresses=dns+{{ .Release.Name }}-memcached-index-write.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:11211"
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create configuration for frontend memcached configuration
|
||||
*/}}
|
||||
{{- define "cortex.frontend-memcached" -}}
|
||||
{{- if index .Values "memcached-frontend" "enabled" }}
|
||||
- "-frontend.memcached.addresses=dns+{{ template "cortex.fullname" . }}-memcached-frontend.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:11211"
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Determine the policy api version
|
||||
*/}}
|
||||
{{- define "cortex.pdbVersion" -}}
|
||||
{{- if or (.Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget") (semverCompare ">=1.21" .Capabilities.KubeVersion.Version) -}}
|
||||
policy/v1
|
||||
{{- else -}}
|
||||
policy/v1beta1
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Get checksum of config secret or configMap
|
||||
*/}}
|
||||
{{- define "cortex.configChecksum" -}}
|
||||
{{- if .Values.useExternalConfig -}}
|
||||
{{- .Values.externalConfigVersion -}}
|
||||
{{- else if .Values.useConfigMap -}}
|
||||
{{- include (print $.Template.BasePath "/configmap.yaml") . | sha256sum -}}
|
||||
{{- else -}}
|
||||
{{- include (print $.Template.BasePath "/secret.yaml") . | sha256sum -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Get volume of config secret of configMap
|
||||
*/}}
|
||||
{{- define "cortex.configVolume" -}}
|
||||
- name: config
|
||||
{{- if .Values.useExternalConfig }}
|
||||
secret:
|
||||
secretName: {{ .Values.externalConfigSecretName }}
|
||||
{{- else if .Values.useConfigMap }}
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-config
|
||||
{{- else }}
|
||||
secret:
|
||||
secretName: {{ template "cortex.fullname" . }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: alertmanager
|
||||
namespace: imxc
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
name: alertmanager
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: alertmanager
|
||||
spec:
|
||||
containers:
|
||||
- name: alertmanager
|
||||
# image: quay.io/cortexproject/cortex:v1.9.0
|
||||
# image: registry.cloud.intermax:5000/library/cortex:v1.11.0
|
||||
image: {{ .Values.global.IMXC_IN_REGISTRY }}/cortex:v1.11.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- -target=alertmanager
|
||||
# - -log.level=debug
|
||||
- -server.http-listen-port=80
|
||||
- -alertmanager.configs.url=http://{{ template "cortex.fullname" . }}-configs:8080
|
||||
- -alertmanager.web.external-url=/alertmanager
|
||||
ports:
|
||||
- containerPort: 80
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: alertmanager
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
selector:
|
||||
name: alertmanager
|
||||
@@ -0,0 +1,12 @@
|
||||
{{- if or .Values.ruler.sidecar.enabled .Values.alertmanager.sidecar.enabled }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ template "cortex.fullname" . }}-clusterrole
|
||||
labels:
|
||||
{{- include "cortex.labels" . | nindent 4 }}
|
||||
rules:
|
||||
- apiGroups: [""] # "" indicates the core API group
|
||||
resources: ["configmaps", "secrets"]
|
||||
verbs: ["get", "watch", "list"]
|
||||
{{- end }}
|
||||
@@ -0,0 +1,16 @@
|
||||
{{- if or .Values.ruler.sidecar.enabled .Values.alertmanager.sidecar.enabled }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ template "cortex.fullname" . }}-clusterrolebinding
|
||||
labels:
|
||||
{{- include "cortex.labels" . | nindent 4 }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: {{ template "cortex.fullname" . }}-clusterrole
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ template "cortex.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
{{/*
|
||||
compactor fullname
|
||||
*/}}
|
||||
{{- define "cortex.compactorFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-compactor
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
compactor common labels
|
||||
*/}}
|
||||
{{- define "cortex.compactorLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: compactor
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
compactor selector labels
|
||||
*/}}
|
||||
{{- define "cortex.compactorSelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: compactor
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (gt (int .Values.compactor.replicas) 1) (.Values.compactor.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.compactorFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.compactorLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.compactorSelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.compactor.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.compactor.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "cortex.compactorFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.compactorLabels" . | nindent 4 }}
|
||||
{{- if .Values.compactor.serviceMonitor.additionalLabels }}
|
||||
{{ toYaml .Values.compactor.serviceMonitor.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.compactor.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.compactor.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.compactorSelectorLabels" . | nindent 6 }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
{{- if .Values.compactor.serviceMonitor.interval }}
|
||||
interval: {{ .Values.compactor.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.compactor.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.compactor.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- if .Values.compactor.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml .Values.compactor.serviceMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.compactor.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml .Values.compactor.serviceMonitor.metricRelabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.compactor.serviceMonitor.extraEndpointSpec }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,141 @@
|
||||
{{- if eq .Values.config.storage.engine "blocks" -}}
|
||||
{{- if .Values.compactor.enabled -}}
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: {{ include "cortex.compactorFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.compactorLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
annotations:
|
||||
{{- toYaml .Values.compactor.annotations | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.compactor.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.compactorSelectorLabels" . | nindent 6 }}
|
||||
updateStrategy:
|
||||
{{- toYaml .Values.compactor.strategy | nindent 4 }}
|
||||
serviceName: {{ template "cortex.fullname" . }}-compactor
|
||||
{{- if .Values.compactor.persistentVolume.enabled }}
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: storage
|
||||
{{- if .Values.compactor.persistentVolume.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.compactor.persistentVolume.annotations | nindent 10 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.compactor.persistentVolume.storageClass }}
|
||||
{{- if (eq "-" .Values.compactor.persistentVolume.storageClass) }}
|
||||
storageClassName: ""
|
||||
{{- else }}
|
||||
storageClassName: "{{ .Values.compactor.persistentVolume.storageClass }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
accessModes:
|
||||
{{ toYaml .Values.compactor.persistentVolume.accessModes | nindent 10 }}
|
||||
resources:
|
||||
requests:
|
||||
storage: "{{ .Values.compactor.persistentVolume.size }}"
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.compactorLabels" . | nindent 8 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
{{- with .Values.compactor.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.compactor.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.compactor.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.compactor.priorityClassName }}
|
||||
priorityClassName: {{ .Values.compactor.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.compactor.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.compactor.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.compactor.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.compactor.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.compactor.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.compactor.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.compactor.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
{{- if not .Values.compactor.persistentVolume.enabled }}
|
||||
- name: storage
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.compactor.extraVolumes }}
|
||||
{{- toYaml .Values.compactor.extraVolumes | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
{{- if .Values.compactor.extraContainers }}
|
||||
{{ toYaml .Values.compactor.extraContainers | nindent 8 }}
|
||||
{{- end }}
|
||||
- name: compactor
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=compactor"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
{{- include "cortex.memcached" . | nindent 12}}
|
||||
{{- range $key, $value := .Values.compactor.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.compactor.extraVolumeMounts }}
|
||||
{{- toYaml .Values.compactor.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
- name: storage
|
||||
mountPath: "/data"
|
||||
{{- if .Values.compactor.persistentVolume.subPath }}
|
||||
subPath: {{ .Values.compactor.persistentVolume.subPath }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
- name: gossip
|
||||
containerPort: {{ .Values.config.memberlist.bind_port }}
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
{{- toYaml .Values.compactor.startupProbe | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.compactor.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.compactor.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.compactor.resources | nindent 12 }}
|
||||
{{- if .Values.compactor.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.compactor.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.compactor.env }}
|
||||
env:
|
||||
{{- toYaml .Values.compactor.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,25 @@
|
||||
{{- if eq .Values.config.storage.engine "blocks" -}}
|
||||
{{- if .Values.compactor.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.compactorFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.compactorLabels" . | nindent 4 }}
|
||||
{{- with .Values.compactor.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.compactor.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.compactorSelectorLabels" . | nindent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,12 @@
|
||||
{{- if (and (not .Values.useExternalConfig) (.Values.useConfigMap)) }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "cortex.fullname" . }}-config
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.labels" . | nindent 4 }}
|
||||
data:
|
||||
cortex.yaml: |
|
||||
{{- tpl (toYaml .Values.config) . | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
{{/*
|
||||
configs fullname
|
||||
*/}}
|
||||
{{- define "cortex.configsFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-configs
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
configs common labels
|
||||
*/}}
|
||||
{{- define "cortex.configsLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: configs
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
configs selector labels
|
||||
*/}}
|
||||
{{- define "cortex.configsSelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: configs
|
||||
{{- end }}
|
||||
@@ -0,0 +1,124 @@
|
||||
{{- if .Values.configs.enabled -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "cortex.configsFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.configsLabels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml .Values.configs.annotations | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.configs.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.configsSelectorLabels" . | nindent 6 }}
|
||||
strategy:
|
||||
{{- toYaml .Values.configs.strategy | nindent 4 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.configsLabels" . | nindent 8 }}
|
||||
{{- with .Values.configs.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.configs.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.configs.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.configs.priorityClassName }}
|
||||
priorityClassName: {{ .Values.configs.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.configs.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.configs.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.configs.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: configs
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=configs"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
{{- if .Values.configsdb_postgresql.enabled }}
|
||||
- "-configs.database.uri={{ .Values.configsdb_postgresql.uri }}"
|
||||
- "-configs.database.password-file=/etc/postgresql/password"
|
||||
- "-configs.database.migrations-dir=/migrations"
|
||||
{{- else }}
|
||||
- "-configs.database.uri=memory://"
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.configs.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
subPath: {{ .Values.configs.persistentVolume.subPath }}
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
{{- if .Values.configsdb_postgresql.enabled }}
|
||||
- name: postgres-password
|
||||
mountPath: /etc/postgresql
|
||||
{{- end }}
|
||||
{{- if .Values.configs.extraVolumeMounts }}
|
||||
{{- toYaml .Values.configs.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
- name: gossip
|
||||
containerPort: {{ .Values.config.memberlist.bind_port }}
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
{{- toYaml .Values.configs.startupProbe | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.configs.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.configs.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.configs.resources | nindent 12 }}
|
||||
{{- if .Values.configs.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.configs.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.configs.env }}
|
||||
env:
|
||||
{{- toYaml .Values.configs.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.configs.extraContainers }}
|
||||
{{- toYaml .Values.configs.extraContainers | nindent 8}}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.configs.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.configs.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.configs.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.configs.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
{{- if .Values.configsdb_postgresql.enabled }}
|
||||
- name: postgres-password
|
||||
secret:
|
||||
secretName: {{ if .Values.configsdb_postgresql.auth.existing_secret.name }}{{ .Values.configsdb_postgresql.auth.existing_secret.name }}{{ else }}{{ template "cortex.fullname" . }}-postgresql{{ end }}
|
||||
items:
|
||||
- key: {{ if .Values.configsdb_postgresql.auth.existing_secret.name }}{{ .Values.configsdb_postgresql.auth.existing_secret.key }}{{ else }}postgresql-password{{ end }}
|
||||
path: password
|
||||
{{- end }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
{{- if .Values.configs.extraVolumes }}
|
||||
{{- toYaml .Values.configs.extraVolumes | nindent 8}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (gt (int .Values.configs.replicas) 1) (.Values.configs.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.configsFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.configsLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.configsSelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.configs.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.configs.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "cortex.configsFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.configsLabels" . | nindent 4 }}
|
||||
{{- if .Values.configs.serviceMonitor.additionalLabels }}
|
||||
{{ toYaml .Values.configs.serviceMonitor.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.configs.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.configs.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.configsSelectorLabels" . | nindent 6 }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
{{- if .Values.configs.serviceMonitor.interval }}
|
||||
interval: {{ .Values.configs.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.configs.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.configs.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- if .Values.configs.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml .Values.configs.serviceMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.configs.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml .Values.configs.serviceMonitor.metricRelabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.configs.serviceMonitor.extraEndpointSpec }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
{{- if .Values.configs.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.configsFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.configsLabels" . | nindent 4 }}
|
||||
{{- with .Values.configs.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.configs.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.configsSelectorLabels" . | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,68 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: ingester-pv-0
|
||||
spec:
|
||||
capacity:
|
||||
storage: 2Gi
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: {{ .Values.global.DEFAULT_STORAGE_CLASS }}
|
||||
local:
|
||||
path: {{ .Values.global.IMXC_INGESTER_PV_PATH1 }}
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: {{ .Values.global.affinity_key }}
|
||||
operator: In
|
||||
values:
|
||||
- {{ .Values.global.affinity_value1 }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: ingester-pv-1
|
||||
spec:
|
||||
capacity:
|
||||
storage: 2Gi
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: {{ .Values.global.DEFAULT_STORAGE_CLASS }}
|
||||
local:
|
||||
path: {{ .Values.global.IMXC_INGESTER_PV_PATH2 }}
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: {{ .Values.global.affinity_key }}
|
||||
operator: In
|
||||
values:
|
||||
- {{ .Values.global.affinity_value2 }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: ingester-pv-2
|
||||
spec:
|
||||
capacity:
|
||||
storage: 2Gi
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: {{ .Values.global.DEFAULT_STORAGE_CLASS }}
|
||||
local:
|
||||
path: {{ .Values.global.IMXC_INGESTER_PV_PATH3 }}
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: {{ .Values.global.affinity_key }}
|
||||
operator: In
|
||||
values:
|
||||
- {{ .Values.global.affinity_value3 }}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
{{/*
|
||||
distributor fullname
|
||||
*/}}
|
||||
{{- define "cortex.distributorFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-distributor
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
distributor common labels
|
||||
*/}}
|
||||
{{- define "cortex.distributorLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: distributor
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
distributor selector labels
|
||||
*/}}
|
||||
{{- define "cortex.distributorSelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: distributor
|
||||
{{- end }}
|
||||
@@ -0,0 +1,121 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "cortex.distributorFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.distributorLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
annotations:
|
||||
{{- toYaml .Values.distributor.annotations | nindent 4 }}
|
||||
spec:
|
||||
{{- if not .Values.distributor.autoscaling.enabled }}
|
||||
replicas: {{ .Values.distributor.replicas }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.distributorSelectorLabels" . | nindent 6 }}
|
||||
strategy:
|
||||
{{- toYaml .Values.distributor.strategy | nindent 4 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.distributorLabels" . | nindent 8 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
{{- with .Values.distributor.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.distributor.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.distributor.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.distributor.priorityClassName }}
|
||||
priorityClassName: {{ .Values.distributor.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.distributor.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.distributor.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.distributor.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: distributor
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=distributor"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
{{- range $key, $value := .Values.distributor.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.distributor.extraVolumeMounts }}
|
||||
{{- toYaml .Values.distributor.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
- name: storage
|
||||
mountPath: "/data"
|
||||
subPath: {{ .Values.distributor.persistentVolume.subPath }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
- name: gossip
|
||||
containerPort: {{ .Values.config.memberlist.bind_port }}
|
||||
protocol: TCP
|
||||
- name: grpc
|
||||
containerPort: {{ .Values.config.server.grpc_listen_port }}
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
{{- toYaml .Values.distributor.startupProbe | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.distributor.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.distributor.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.distributor.resources | nindent 12 }}
|
||||
{{- if .Values.distributor.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.distributor.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.distributor.env }}
|
||||
env:
|
||||
{{- toYaml .Values.distributor.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.distributor.lifecycle }}
|
||||
lifecycle:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
{{- if .Values.distributor.extraContainers }}
|
||||
{{- toYaml .Values.distributor.extraContainers | nindent 8}}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.distributor.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.distributor.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.distributor.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.distributor.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
- name: storage
|
||||
emptyDir: {}
|
||||
{{- if .Values.distributor.extraVolumes }}
|
||||
{{- toYaml .Values.distributor.extraVolumes | nindent 8}}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,39 @@
|
||||
{{- with .Values.distributor.autoscaling -}}
|
||||
{{- if .enabled }}
|
||||
apiVersion: autoscaling/v2beta2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "cortex.distributorFullname" $ }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.distributorLabels" $ | nindent 4 }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: {{ include "cortex.distributorFullname" $ }}
|
||||
minReplicas: {{ .minReplicas }}
|
||||
maxReplicas: {{ .maxReplicas }}
|
||||
metrics:
|
||||
{{- with .targetMemoryUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .targetCPUUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .behavior }}
|
||||
behavior:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (gt (int .Values.distributor.replicas) 1) (.Values.distributor.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.distributorFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.distributorLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.distributorSelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.distributor.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.distributor.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "cortex.distributorFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.distributorLabels" . | nindent 4 }}
|
||||
{{- if .Values.distributor.serviceMonitor.additionalLabels }}
|
||||
{{ toYaml .Values.distributor.serviceMonitor.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.distributor.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.distributor.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.distributorSelectorLabels" . | nindent 6 }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
{{- if .Values.distributor.serviceMonitor.interval }}
|
||||
interval: {{ .Values.distributor.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.distributor.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.distributor.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- if .Values.distributor.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml .Values.distributor.serviceMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.distributor.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml .Values.distributor.serviceMonitor.metricRelabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.distributor.serviceMonitor.extraEndpointSpec }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.distributorFullname" . }}-headless
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.distributorLabels" . | nindent 4 }}
|
||||
{{- with .Values.distributor.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.distributor.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
clusterIP: None
|
||||
publishNotReadyAddresses: true
|
||||
ports:
|
||||
- port: {{ .Values.config.server.grpc_listen_port }}
|
||||
protocol: TCP
|
||||
name: grpc
|
||||
targetPort: grpc
|
||||
selector:
|
||||
{{- include "cortex.distributorSelectorLabels" . | nindent 4 }}
|
||||
@@ -0,0 +1,21 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.distributorFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.distributorLabels" . | nindent 4 }}
|
||||
{{- with .Values.distributor.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.distributor.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.distributorSelectorLabels" . | nindent 4 }}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
{{/*
|
||||
ingester fullname
|
||||
*/}}
|
||||
{{- define "cortex.ingesterFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-ingester
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
ingester common labels
|
||||
*/}}
|
||||
{{- define "cortex.ingesterLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: ingester
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
ingester selector labels
|
||||
*/}}
|
||||
{{- define "cortex.ingesterSelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: ingester
|
||||
{{- end }}
|
||||
@@ -0,0 +1,130 @@
|
||||
{{- if not .Values.ingester.statefulSet.enabled -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "cortex.ingesterFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.ingesterLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
annotations:
|
||||
{{- toYaml .Values.ingester.annotations | nindent 4 }}
|
||||
spec:
|
||||
{{- if not .Values.ingester.autoscaling.enabled }}
|
||||
replicas: {{ .Values.ingester.replicas }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.ingesterSelectorLabels" . | nindent 6 }}
|
||||
strategy:
|
||||
{{- toYaml .Values.ingester.strategy | nindent 4 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.ingesterLabels" . | nindent 8 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
{{- with .Values.ingester.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.ingester.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.ingester.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.ingester.priorityClassName }}
|
||||
priorityClassName: {{ .Values.ingester.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.ingester.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.ingester.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: ingester
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=ingester"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
{{- include "cortex.memcached" . | nindent 12}}
|
||||
{{- range $key, $value := .Values.ingester.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.ingester.extraVolumeMounts }}
|
||||
{{- toYaml .Values.ingester.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
- name: storage
|
||||
mountPath: "/data"
|
||||
{{- with .Values.ingester.persistentVolume.subPath }}
|
||||
subPath: {{ . }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
- name: grpc
|
||||
containerPort: {{ .Values.config.server.grpc_listen_port }}
|
||||
protocol: TCP
|
||||
- name: gossip
|
||||
containerPort: {{ .Values.config.memberlist.bind_port }}
|
||||
protocol: TCP
|
||||
{{- if .Values.ingester.startupProbe }}
|
||||
startupProbe:
|
||||
{{- toYaml .Values.ingester.startupProbe | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.livenessProbe }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.ingester.livenessProbe | nindent 12 }}
|
||||
{{- end }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.ingester.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.ingester.resources | nindent 12 }}
|
||||
{{- if .Values.ingester.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.ingester.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
env:
|
||||
{{- if .Values.ingester.env }}
|
||||
{{ toYaml .Values.ingester.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.ingester.lifecycle }}
|
||||
lifecycle:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
{{- with .Values.ingester.extraContainers }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.ingester.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.ingester.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.ingester.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.ingester.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
- name: storage
|
||||
emptyDir: {}
|
||||
{{- if .Values.ingester.extraVolumes }}
|
||||
{{- toYaml .Values.ingester.extraVolumes | nindent 8}}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,29 @@
|
||||
{{- with .Values.ingester.autoscaling -}}
|
||||
{{- if .enabled }}
|
||||
apiVersion: autoscaling/v2beta2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "cortex.ingesterFullname" $ }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.ingesterLabels" $ | nindent 4 }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: {{ if $.Values.ingester.statefulSet.enabled }}StatefulSet{{ else }}Deployment{{ end }}
|
||||
name: {{ include "cortex.ingesterFullname" $ }}
|
||||
minReplicas: {{ .minReplicas }}
|
||||
maxReplicas: {{ .maxReplicas }}
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ .targetMemoryUtilizationPercentage }}
|
||||
{{- with .behavior }}
|
||||
behavior:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (gt (int .Values.ingester.replicas) 1) (.Values.ingester.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.ingesterFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.ingesterLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.ingesterSelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.ingester.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.ingester.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "cortex.ingesterFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.ingesterLabels" . | nindent 4 }}
|
||||
{{- if .Values.ingester.serviceMonitor.additionalLabels }}
|
||||
{{ toYaml .Values.ingester.serviceMonitor.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.ingester.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.ingesterSelectorLabels" . | nindent 6 }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
{{- if .Values.ingester.serviceMonitor.interval }}
|
||||
interval: {{ .Values.ingester.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.ingester.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml .Values.ingester.serviceMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml .Values.ingester.serviceMonitor.metricRelabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.ingester.serviceMonitor.extraEndpointSpec }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,153 @@
|
||||
{{- if .Values.ingester.statefulSet.enabled -}}
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: {{ include "cortex.ingesterFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.ingesterLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
annotations:
|
||||
{{- toYaml .Values.ingester.annotations | nindent 4 }}
|
||||
spec:
|
||||
{{- if not .Values.ingester.autoscaling.enabled }}
|
||||
replicas: {{ .Values.ingester.replicas }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.ingesterSelectorLabels" . | nindent 6 }}
|
||||
updateStrategy:
|
||||
{{- toYaml .Values.ingester.statefulStrategy | nindent 4 }}
|
||||
podManagementPolicy: "{{ .Values.ingester.statefulSet.podManagementPolicy }}"
|
||||
serviceName: {{ template "cortex.fullname" . }}-ingester-headless
|
||||
{{- if .Values.ingester.persistentVolume.enabled }}
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: storage
|
||||
{{- if .Values.ingester.persistentVolume.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.ingester.persistentVolume.annotations | nindent 10 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingester.persistentVolume.storageClass }}
|
||||
{{- if (eq "-" .Values.ingester.persistentVolume.storageClass) }}
|
||||
storageClassName: ""
|
||||
{{- else }}
|
||||
storageClassName: "{{ .Values.ingester.persistentVolume.storageClass }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
accessModes:
|
||||
{{ toYaml .Values.ingester.persistentVolume.accessModes | nindent 10 }}
|
||||
resources:
|
||||
requests:
|
||||
storage: "{{ .Values.ingester.persistentVolume.size }}"
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.ingesterLabels" . | nindent 8 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
{{- with .Values.ingester.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.ingester.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.ingester.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.ingester.priorityClassName }}
|
||||
priorityClassName: {{ .Values.ingester.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.ingester.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.ingester.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.ingester.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.ingester.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.ingester.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.ingester.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
{{- if not .Values.ingester.persistentVolume.enabled }}
|
||||
- name: storage
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.extraVolumes }}
|
||||
{{- toYaml .Values.ingester.extraVolumes | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
{{- if .Values.ingester.extraContainers }}
|
||||
{{- toYaml .Values.ingester.extraContainers | nindent 8 }}
|
||||
{{- end }}
|
||||
- name: ingester
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=ingester"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
{{- include "cortex.memcached" . | nindent 12}}
|
||||
{{- range $key, $value := .Values.ingester.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.ingester.extraVolumeMounts }}
|
||||
{{- toYaml .Values.ingester.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
- name: storage
|
||||
mountPath: "/data"
|
||||
{{- with .Values.ingester.persistentVolume.subPath }}
|
||||
subPath: {{ . }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
- name: grpc
|
||||
containerPort: {{ .Values.config.server.grpc_listen_port }}
|
||||
protocol: TCP
|
||||
- name: gossip
|
||||
containerPort: {{ .Values.config.memberlist.bind_port }}
|
||||
protocol: TCP
|
||||
{{- if .Values.ingester.startupProbe }}
|
||||
startupProbe:
|
||||
{{- toYaml .Values.ingester.startupProbe | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.livenessProbe }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.ingester.livenessProbe | nindent 12 }}
|
||||
{{- end }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.ingester.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.ingester.resources | nindent 12 }}
|
||||
{{- if .Values.ingester.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.ingester.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingester.env }}
|
||||
env:
|
||||
{{- toYaml .Values.ingester.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.ingester.lifecycle }}
|
||||
lifecycle:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,22 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.ingesterFullname" . }}-headless
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.ingesterLabels" . | nindent 4 }}
|
||||
{{- with .Values.ingester.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.ingester.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
clusterIP: None
|
||||
ports:
|
||||
- port: {{ .Values.config.server.grpc_listen_port }}
|
||||
protocol: TCP
|
||||
name: grpc
|
||||
targetPort: grpc
|
||||
selector:
|
||||
{{- include "cortex.ingesterSelectorLabels" . | nindent 4 }}
|
||||
@@ -0,0 +1,21 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.ingesterFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.ingesterLabels" . | nindent 4 }}
|
||||
{{- with .Values.ingester.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.ingester.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.ingesterSelectorLabels" . | nindent 4 }}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
{{/*
|
||||
nginx fullname
|
||||
*/}}
|
||||
{{- define "cortex.nginxFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-nginx
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
nginx common labels
|
||||
*/}}
|
||||
{{- define "cortex.nginxLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: nginx
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
nginx selector labels
|
||||
*/}}
|
||||
{{- define "cortex.nginxSelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: nginx
|
||||
{{- end }}
|
||||
@@ -0,0 +1,140 @@
|
||||
{{- if .Values.nginx.enabled }}
|
||||
{{- $rootDomain := printf "%s.svc.%s:%d" .Release.Namespace .Values.clusterDomain (.Values.config.server.http_listen_port | int) }}
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ include "cortex.nginxFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.nginxLabels" . | nindent 4 }}
|
||||
data:
|
||||
nginx.conf: |-
|
||||
worker_processes 5; ## Default: 1
|
||||
error_log /dev/stderr;
|
||||
pid /tmp/nginx.pid;
|
||||
worker_rlimit_nofile 8192;
|
||||
|
||||
events {
|
||||
worker_connections 4096; ## Default: 1024
|
||||
}
|
||||
|
||||
{{- with .Values.nginx.config.mainSnippet }}
|
||||
{{ tpl . $ | nindent 4 }}
|
||||
{{- end }}
|
||||
|
||||
http {
|
||||
default_type application/octet-stream;
|
||||
client_max_body_size {{.Values.nginx.config.client_max_body_size}};
|
||||
log_format main '$remote_addr - $remote_user [$time_local] $status '
|
||||
'"$request" $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for" $http_x_scope_orgid';
|
||||
access_log /dev/stderr main;
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
resolver {{ default (printf "coredns.kube-system.svc.%s" .Values.clusterDomain ) .Values.nginx.config.dnsResolver }};
|
||||
|
||||
{{- with .Values.nginx.config.httpSnippet }}
|
||||
{{ tpl . $ | nindent 6 }}
|
||||
{{- end }}
|
||||
|
||||
server { # simple reverse-proxy
|
||||
listen {{ .Values.nginx.http_listen_port }};
|
||||
proxy_connect_timeout 300s;
|
||||
proxy_send_timeout 300s;
|
||||
proxy_read_timeout 300s;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header X-Scope-OrgID 0;
|
||||
|
||||
{{- range $key, $value := .Values.nginx.config.setHeaders }}
|
||||
proxy_set_header {{ $key }} {{ $value }};
|
||||
{{- end }}
|
||||
|
||||
{{ if .Values.nginx.config.basicAuthSecretName -}}
|
||||
auth_basic "Restricted Content";
|
||||
auth_basic_user_file /etc/apache2/.htpasswd;
|
||||
{{- end }}
|
||||
|
||||
{{- with .Values.nginx.config.serverSnippet }}
|
||||
{{ tpl . $ | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
location = /healthz {
|
||||
# auth_basic off is not set here, even when a basic auth directive is
|
||||
# included in the server block, as Nginx's NGX_HTTP_REWRITE_PHASE
|
||||
# (point when this return statement is evaluated) comes before the
|
||||
# NGX_HTTP_ACCESS_PHASE (point when basic auth is evaluated). Thus,
|
||||
# this return statement returns a response before basic auth is
|
||||
# evaluated.
|
||||
return 200 'alive';
|
||||
}
|
||||
|
||||
# Distributor Config
|
||||
location = /ring {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-distributor.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
location = /all_user_stats {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-distributor.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
location = /api/prom/push {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-distributor.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
## New Remote write API. Ref: https://cortexmetrics.io/docs/api/#remote-write
|
||||
location = /api/v1/push {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-distributor.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
# Alertmanager Config
|
||||
location ~ /api/prom/alertmanager/.* {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-alertmanager.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
location ~ /api/v1/alerts {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-alertmanager.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
location ~ /multitenant_alertmanager/status {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-alertmanager.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
# Ruler Config
|
||||
location ~ /api/v1/rules {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-ruler.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
location ~ /ruler/ring {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-ruler.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
# Config Config
|
||||
location ~ /api/prom/configs/.* {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-configs.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
# Query Config
|
||||
location ~ /api/prom/.* {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-query-frontend.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
## New Query frontend APIs as per https://cortexmetrics.io/docs/api/#querier--query-frontend
|
||||
location ~ ^{{.Values.config.api.prometheus_http_prefix}}/api/v1/(read|metadata|labels|series|query_range|query) {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-query-frontend.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
|
||||
location ~ {{.Values.config.api.prometheus_http_prefix}}/api/v1/label/.* {
|
||||
proxy_pass http://{{ template "cortex.fullname" . }}-query-frontend.{{ $rootDomain }}$request_uri;
|
||||
}
|
||||
{{- if and (.Values.config.auth_enabled) (.Values.nginx.config.auth_orgs) }}
|
||||
# Auth orgs
|
||||
{{- range $org := compact .Values.nginx.config.auth_orgs | uniq }}
|
||||
location = /api/v1/push/{{ $org }} {
|
||||
proxy_set_header X-Scope-OrgID {{ $org }};
|
||||
proxy_pass http://{{ template "cortex.fullname" $ }}-distributor.{{ $rootDomain }}/api/v1/push;
|
||||
}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
}
|
||||
}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,111 @@
|
||||
{{- if .Values.nginx.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "cortex.nginxFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.nginxLabels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml .Values.nginx.annotations | nindent 4 }}
|
||||
spec:
|
||||
{{- if not .Values.nginx.autoscaling.enabled }}
|
||||
replicas: {{ .Values.nginx.replicas }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.nginxSelectorLabels" . | nindent 6 }}
|
||||
strategy:
|
||||
{{- toYaml .Values.nginx.strategy | nindent 4 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.nginxLabels" . | nindent 8 }}
|
||||
{{- with .Values.nginx.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include (print $.Template.BasePath "/nginx/nginx-config.yaml") . | sha256sum }}
|
||||
{{- with .Values.nginx.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.nginx.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.nginx.priorityClassName }}
|
||||
priorityClassName: {{ .Values.nginx.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.nginx.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.nginx.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: nginx
|
||||
image: "{{ .Values.nginx.image.repository }}:{{ .Values.nginx.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.nginx.image.pullPolicy }}
|
||||
{{- if .Values.nginx.extraArgs }}
|
||||
args:
|
||||
{{- range $key, $value := .Values.nginx.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.nginx.extraVolumeMounts }}
|
||||
{{- toYaml .Values.nginx.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /etc/nginx
|
||||
{{- if .Values.nginx.config.basicAuthSecretName }}
|
||||
- name: htpasswd
|
||||
mountPath: /etc/apache2
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.nginx.http_listen_port }}
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
{{- toYaml .Values.nginx.startupProbe | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.nginx.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.nginx.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.nginx.resources | nindent 12 }}
|
||||
{{- if .Values.nginx.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.nginx.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.env }}
|
||||
env:
|
||||
{{- toYaml .Values.nginx.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.extraContainers }}
|
||||
{{ toYaml .Values.nginx.extraContainers | indent 8}}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.nginx.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.nginx.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.nginx.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.nginx.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-nginx
|
||||
{{- if .Values.nginx.config.basicAuthSecretName }}
|
||||
- name: htpasswd
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: {{ .Values.nginx.config.basicAuthSecretName }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.extraVolumes }}
|
||||
{{- toYaml .Values.nginx.extraVolumes | nindent 8}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,39 @@
|
||||
{{- if and .Values.nginx.enabled .Values.nginx.autoscaling.enabled }}
|
||||
{{- with .Values.nginx.autoscaling -}}
|
||||
apiVersion: autoscaling/v2beta2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "cortex.nginxFullname" $ }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.nginxLabels" $ | nindent 4 }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: {{ include "cortex.nginxFullname" $ }}
|
||||
minReplicas: {{ .minReplicas }}
|
||||
maxReplicas: {{ .maxReplicas }}
|
||||
metrics:
|
||||
{{- with .targetMemoryUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .targetCPUUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .behavior }}
|
||||
behavior:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,40 @@
|
||||
{{- if and .Values.ingress.enabled .Values.nginx.enabled -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ include "cortex.nginxFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.nginxLabels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml .Values.ingress.annotations | nindent 4 }}
|
||||
spec:
|
||||
{{- if .Values.ingress.ingressClass.enabled }}
|
||||
ingressClassName: {{ .Values.ingress.ingressClass.name }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ .host | quote }}
|
||||
http:
|
||||
paths:
|
||||
{{- range .paths }}
|
||||
- path: {{ . }}
|
||||
pathType: "Prefix"
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "cortex.nginxFullname" $ }}
|
||||
port:
|
||||
number: {{ $.Values.nginx.http_listen_port }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (.Values.nginx.enabled) (gt (int .Values.nginx.replicas) 1) (.Values.nginx.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.nginxFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.nginxLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.nginxSelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.nginx.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
{{- if .Values.nginx.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.nginxFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.nginxLabels" . | nindent 4 }}
|
||||
{{- with .Values.nginx.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.nginx.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.nginx.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.nginx.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.nginxSelectorLabels" . | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,96 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: 'true'
|
||||
labels:
|
||||
app: node-exporter
|
||||
name: node-exporter
|
||||
name: node-exporter
|
||||
namespace: imxc
|
||||
spec:
|
||||
clusterIP: None
|
||||
ports:
|
||||
- name: scrape
|
||||
port: 9100
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: node-exporter
|
||||
type: ClusterIP
|
||||
---
|
||||
{{- if semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion }}
|
||||
apiVersion: apps/v1
|
||||
{{- else }}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: node-exporter
|
||||
namespace: imxc
|
||||
spec:
|
||||
{{- if semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: node-exporter
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: node-exporter
|
||||
name: node-exporter
|
||||
spec:
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
operator: Exists
|
||||
- effect: NoExecute
|
||||
operator: Exists
|
||||
containers:
|
||||
- image: {{ .Values.global.IMXC_IN_REGISTRY }}/node-exporter
|
||||
name: node-exporter
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 180Mi
|
||||
requests:
|
||||
cpu: 102m
|
||||
memory: 180Mi
|
||||
ports:
|
||||
- containerPort: 9100
|
||||
hostPort: 9100
|
||||
name: scrape
|
||||
args:
|
||||
- --path.procfs=/host/proc
|
||||
- --path.sysfs=/host/sys
|
||||
- --path.rootfs=/host/root
|
||||
- --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|run|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/)
|
||||
- --collector.tcpstat
|
||||
# --log.level=debug
|
||||
env:
|
||||
- name: GOMAXPROCS
|
||||
value: "1"
|
||||
volumeMounts:
|
||||
- mountPath: /host/proc
|
||||
name: proc
|
||||
readOnly: false
|
||||
- mountPath: /host/sys
|
||||
name: sys
|
||||
readOnly: false
|
||||
- mountPath: /host/root
|
||||
mountPropagation: HostToContainer
|
||||
name: root
|
||||
readOnly: true
|
||||
hostNetwork: true
|
||||
hostPID: true
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65534
|
||||
volumes:
|
||||
- hostPath:
|
||||
path: /proc
|
||||
name: proc
|
||||
- hostPath:
|
||||
path: /sys
|
||||
name: sys
|
||||
- hostPath:
|
||||
path: /
|
||||
name: root
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
{{/*
|
||||
querier fullname
|
||||
*/}}
|
||||
{{- define "cortex.querierFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-querier
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
querier common labels
|
||||
*/}}
|
||||
{{- define "cortex.querierLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: querier
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
querier selector labels
|
||||
*/}}
|
||||
{{- define "cortex.querierSelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: querier
|
||||
{{- end }}
|
||||
@@ -0,0 +1,115 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "cortex.querierFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.querierLabels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml .Values.querier.annotations | nindent 4 }}
|
||||
spec:
|
||||
{{- if not .Values.querier.autoscaling.enabled }}
|
||||
replicas: {{ .Values.querier.replicas }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.querierSelectorLabels" . | nindent 6 }}
|
||||
strategy:
|
||||
{{- toYaml .Values.querier.strategy | nindent 4 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.querierLabels" . | nindent 8 }}
|
||||
{{- with .Values.querier.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.querier.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.querier.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.querier.priorityClassName }}
|
||||
priorityClassName: {{ .Values.querier.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.querier.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.querier.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.querier.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: querier
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=querier"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
- "-querier.frontend-address={{ template "cortex.fullname" . }}-query-frontend-headless.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ .Values.config.server.grpc_listen_port }}"
|
||||
{{- include "cortex.memcached" . | nindent 12}}
|
||||
{{- range $key, $value := .Values.querier.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.querier.extraVolumeMounts }}
|
||||
{{- toYaml .Values.querier.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
- name: storage
|
||||
mountPath: "/data"
|
||||
subPath: {{ .Values.querier.persistentVolume.subPath }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
{{- toYaml .Values.querier.startupProbe | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.querier.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.querier.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.querier.resources | nindent 12 }}
|
||||
{{- if .Values.querier.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.querier.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
env:
|
||||
{{- if .Values.querier.env }}
|
||||
{{- toYaml .Values.querier.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.querier.lifecycle }}
|
||||
lifecycle:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
{{- if .Values.querier.extraContainers }}
|
||||
{{- toYaml .Values.querier.extraContainers | nindent 8}}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.querier.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.querier.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.querier.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.querier.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
- name: storage
|
||||
emptyDir: {}
|
||||
{{- if .Values.querier.extraVolumes }}
|
||||
{{- toYaml .Values.querier.extraVolumes | nindent 8}}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,39 @@
|
||||
{{- with .Values.querier.autoscaling -}}
|
||||
{{- if .enabled }}
|
||||
apiVersion: autoscaling/v2beta2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "cortex.querierFullname" $ }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.querierLabels" $ | nindent 4 }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: {{ include "cortex.querierFullname" $ }}
|
||||
minReplicas: {{ .minReplicas }}
|
||||
maxReplicas: {{ .maxReplicas }}
|
||||
metrics:
|
||||
{{- with .targetMemoryUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .targetCPUUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .behavior }}
|
||||
behavior:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (gt (int .Values.querier.replicas) 1) (.Values.querier.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.querierFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.querierLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.querierSelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.querier.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.querier.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "cortex.querierFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.querierLabels" . | nindent 4 }}
|
||||
{{- if .Values.querier.serviceMonitor.additionalLabels }}
|
||||
{{ toYaml .Values.querier.serviceMonitor.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.querier.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.querier.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.querierSelectorLabels" . | nindent 6 }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
{{- if .Values.querier.serviceMonitor.interval }}
|
||||
interval: {{ .Values.querier.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.querier.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.querier.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- if .Values.querier.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml .Values.querier.serviceMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.querier.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml .Values.querier.serviceMonitor.metricRelabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.querier.serviceMonitor.extraEndpointSpec }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,21 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.querierFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.querierLabels" . | nindent 4 }}
|
||||
{{- with .Values.querier.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.querier.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.querierSelectorLabels" . | nindent 4 }}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
{{/*
|
||||
query-frontend fullname
|
||||
*/}}
|
||||
{{- define "cortex.queryFrontendFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-query-frontend
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
query-frontend common labels
|
||||
*/}}
|
||||
{{- define "cortex.queryFrontendLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: query-frontend
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
query-frontend selector labels
|
||||
*/}}
|
||||
{{- define "cortex.queryFrontendSelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: query-frontend
|
||||
{{- end }}
|
||||
@@ -0,0 +1,107 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "cortex.queryFrontendFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.queryFrontendLabels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml .Values.query_frontend.annotations | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.query_frontend.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.queryFrontendSelectorLabels" . | nindent 6 }}
|
||||
strategy:
|
||||
{{- toYaml .Values.query_frontend.strategy | nindent 4 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.queryFrontendLabels" . | nindent 8 }}
|
||||
{{- with .Values.query_frontend.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.query_frontend.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.query_frontend.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.query_frontend.priorityClassName }}
|
||||
priorityClassName: {{ .Values.query_frontend.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.query_frontend.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.query_frontend.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.query_frontend.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: query-frontend
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=query-frontend"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
{{- include "cortex.frontend-memcached" . | nindent 12 }}
|
||||
{{- range $key, $value := .Values.query_frontend.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.query_frontend.extraVolumeMounts }}
|
||||
{{- toYaml .Values.query_frontend.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
- name: grpc
|
||||
containerPort: {{ .Values.config.server.grpc_listen_port }}
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
{{- toYaml .Values.query_frontend.startupProbe | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.query_frontend.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.query_frontend.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.query_frontend.resources | nindent 12 }}
|
||||
{{- if .Values.query_frontend.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.query_frontend.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.query_frontend.env }}
|
||||
env:
|
||||
{{- toYaml .Values.query_frontend.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.query_frontend.lifecycle }}
|
||||
lifecycle:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.query_frontend.extraContainers }}
|
||||
{{- toYaml .Values.query_frontend.extraContainers | nindent 8}}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.query_frontend.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.query_frontend.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.query_frontend.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.query_frontend.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
{{- if .Values.query_frontend.extraVolumes }}
|
||||
{{- toYaml .Values.query_frontend.extraVolumes | nindent 8}}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.query_frontend.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "cortex.queryFrontendFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.queryFrontendLabels" . | nindent 4 }}
|
||||
{{- if .Values.query_frontend.serviceMonitor.additionalLabels }}
|
||||
{{ toYaml .Values.query_frontend.serviceMonitor.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.query_frontend.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.query_frontend.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.queryFrontendSelectorLabels" . | nindent 6 }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
{{- if .Values.query_frontend.serviceMonitor.interval }}
|
||||
interval: {{ .Values.query_frontend.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.query_frontend.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.query_frontend.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- if .Values.query_frontend.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml .Values.query_frontend.serviceMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.query_frontend.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml .Values.query_frontend.serviceMonitor.metricRelabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.query_frontend.serviceMonitor.extraEndpointSpec }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.queryFrontendFullname" . }}-headless
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.queryFrontendLabels" . | nindent 4 }}
|
||||
{{- with .Values.query_frontend.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.query_frontend.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
clusterIP: None
|
||||
publishNotReadyAddresses: true
|
||||
ports:
|
||||
- port: {{ .Values.config.server.grpc_listen_port }}
|
||||
protocol: TCP
|
||||
name: grpc
|
||||
targetPort: grpc
|
||||
selector:
|
||||
{{- include "cortex.queryFrontendSelectorLabels" . | nindent 4 }}
|
||||
@@ -0,0 +1,21 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.queryFrontendFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.queryFrontendLabels" . | nindent 4 }}
|
||||
{{- with .Values.query_frontend.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.query_frontend.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.queryFrontendSelectorLabels" . | nindent 4 }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (gt (int .Values.query_frontend.replicas) 1) (.Values.query_frontend.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.queryFrontendFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.queryFrontendLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.queryFrontendSelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.query_frontend.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,30 @@
|
||||
|
||||
{{/*
|
||||
ruler fullname
|
||||
*/}}
|
||||
{{- define "cortex.rulerFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-ruler
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
ruler common labels
|
||||
*/}}
|
||||
{{- define "cortex.rulerLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: ruler
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
ruler selector labels
|
||||
*/}}
|
||||
{{- define "cortex.rulerSelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: ruler
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
format rules dir
|
||||
*/}}
|
||||
{{- define "cortex.rulerRulesDirName" -}}
|
||||
rules-{{ . | replace "_" "-" | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if .Values.ruler.enabled }}
|
||||
{{- range $dir, $files := .Values.ruler.directories }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "cortex.rulerFullname" $ }}-{{ include "cortex.rulerRulesDirName" $dir }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.rulerLabels" $ | nindent 4 }}
|
||||
data:
|
||||
{{- toYaml $files | nindent 2}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,191 @@
|
||||
{{- if .Values.ruler.enabled -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "cortex.rulerFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.rulerLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
annotations:
|
||||
{{- toYaml .Values.ruler.annotations | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.ruler.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.rulerSelectorLabels" . | nindent 6 }}
|
||||
strategy:
|
||||
{{- toYaml .Values.ruler.strategy | nindent 4 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.rulerLabels" . | nindent 8 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
{{- with .Values.ruler.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.ruler.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.ruler.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.ruler.priorityClassName }}
|
||||
priorityClassName: {{ .Values.ruler.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.ruler.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.ruler.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
{{- if .Values.ruler.sidecar.enabled }}
|
||||
- name: {{ template "cortex.name" . }}-sc-rules
|
||||
{{- if .Values.ruler.sidecar.image.sha }}
|
||||
image: "{{ .Values.ruler.sidecar.image.repository }}:{{ .Values.ruler.sidecar.image.tag }}@sha256:{{ .Values.ruler.sidecar.image.sha }}"
|
||||
{{- else }}
|
||||
image: "{{ .Values.ruler.sidecar.image.repository }}:{{ .Values.ruler.sidecar.image.tag }}"
|
||||
{{- end }}
|
||||
imagePullPolicy: {{ .Values.ruler.sidecar.imagePullPolicy }}
|
||||
env:
|
||||
{{- if .Values.ruler.sidecar.watchMethod }}
|
||||
- name: METHOD
|
||||
value: {{ .Values.ruler.sidecar.watchMethod }}
|
||||
{{ end }}
|
||||
- name: LABEL
|
||||
value: "{{ .Values.ruler.sidecar.label }}"
|
||||
{{- if .Values.ruler.sidecar.labelValue }}
|
||||
- name: LABEL_VALUE
|
||||
value: {{ quote .Values.ruler.sidecar.labelValue }}
|
||||
{{- end }}
|
||||
- name: FOLDER
|
||||
value: "{{ .Values.ruler.sidecar.folder }}{{- with .Values.ruler.sidecar.defaultFolderName }}/{{ . }}{{- end }}"
|
||||
- name: RESOURCE
|
||||
value: "both"
|
||||
{{- if .Values.ruler.sidecar.enableUniqueFilenames }}
|
||||
- name: UNIQUE_FILENAMES
|
||||
value: "{{ .Values.ruler.sidecar.enableUniqueFilenames }}"
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.sidecar.searchNamespace }}
|
||||
- name: NAMESPACE
|
||||
value: "{{ .Values.ruler.sidecar.searchNamespace }}"
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.sidecar.skipTlsVerify }}
|
||||
- name: SKIP_TLS_VERIFY
|
||||
value: "{{ .Values.ruler.sidecar.skipTlsVerify }}"
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.sidecar.folderAnnotation }}
|
||||
- name: FOLDER_ANNOTATION
|
||||
value: "{{ .Values.ruler.sidecar.folderAnnotation }}"
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.ruler.sidecar.resources | nindent 12 }}
|
||||
{{- if .Values.ruler.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.ruler.sidecar.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: sc-rules-volume
|
||||
mountPath: {{ .Values.ruler.sidecar.folder | quote }}
|
||||
{{- end }}
|
||||
- name: rules
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=ruler"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
{{- if .Values.configs.enabled }}
|
||||
- "-ruler.configs.url=http://{{ template "cortex.configsFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ .Values.config.server.http_listen_port }}"
|
||||
{{- end }}
|
||||
{{- if not .Values.config.ruler.alertmanager_url }}
|
||||
{{- if .Values.config.ruler.enable_alertmanager_discovery }}
|
||||
- "-ruler.alertmanager-url=http://_http-metrics._tcp.{{ template "cortex.name" . }}-alertmanager-headless.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}/api/prom/alertmanager/"
|
||||
{{- else }}
|
||||
- "-ruler.alertmanager-url=http://{{ template "cortex.alertmanagerFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ .Values.config.server.http_listen_port }}/api/prom/alertmanager/"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "cortex.memcached" . | nindent 12}}
|
||||
{{- range $key, $value := .Values.ruler.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.ruler.extraVolumeMounts }}
|
||||
{{- toYaml .Values.ruler.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.sidecar.enabled }}
|
||||
- name: sc-rules-volume
|
||||
mountPath: {{ .Values.ruler.sidecar.folder | quote }}
|
||||
{{ end }}
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
- name: storage
|
||||
mountPath: /data
|
||||
subPath: {{ .Values.ruler.persistentVolume.subPath }}
|
||||
- name: tmp
|
||||
mountPath: /rules
|
||||
{{- range $dir, $_ := .Values.ruler.directories }}
|
||||
- name: {{ include "cortex.rulerRulesDirName" $dir }}
|
||||
mountPath: /etc/cortex/rules/{{ $dir }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
- name: gossip
|
||||
containerPort: {{ .Values.config.memberlist.bind_port }}
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
{{- toYaml .Values.ruler.startupProbe | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.ruler.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.ruler.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.ruler.resources | nindent 12 }}
|
||||
{{- if .Values.ruler.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.ruler.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.env }}
|
||||
env:
|
||||
{{- toYaml .Values.ruler.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.extraContainers }}
|
||||
{{- toYaml .Values.ruler.extraContainers | nindent 8}}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.ruler.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.ruler.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.ruler.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.ruler.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
- name: tmp
|
||||
emptyDir: {}
|
||||
{{- range $dir, $_ := .Values.ruler.directories }}
|
||||
- name: {{ include "cortex.rulerRulesDirName" $dir }}
|
||||
configMap:
|
||||
name: {{ include "cortex.rulerFullname" $ }}-{{ include "cortex.rulerRulesDirName" $dir }}
|
||||
{{- end }}
|
||||
- name: storage
|
||||
emptyDir: {}
|
||||
{{- if .Values.ruler.sidecar.enabled }}
|
||||
- name: sc-rules-volume
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.extraVolumes }}
|
||||
{{- toYaml .Values.ruler.extraVolumes | nindent 8}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (gt (int .Values.ruler.replicas) 1) (.Values.ruler.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.rulerFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.rulerLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.rulerSelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.ruler.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.ruler.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "cortex.rulerFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.rulerLabels" . | nindent 4 }}
|
||||
{{- if .Values.ruler.serviceMonitor.additionalLabels }}
|
||||
{{ toYaml .Values.ruler.serviceMonitor.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.ruler.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.rulerSelectorLabels" . | nindent 6 }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
{{- if .Values.ruler.serviceMonitor.interval }}
|
||||
interval: {{ .Values.ruler.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.ruler.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml .Values.ruler.serviceMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ruler.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml .Values.ruler.serviceMonitor.metricRelabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.ruler.serviceMonitor.extraEndpointSpec }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
{{- if .Values.ruler.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.rulerFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.rulerLabels" . | nindent 4 }}
|
||||
{{- with .Values.ruler.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.ruler.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.rulerSelectorLabels" . | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,18 @@
|
||||
{{- with .Values.runtimeconfigmap }}
|
||||
{{- if .create }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "cortex.fullname" $ }}-runtime-config
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.labels" $ | nindent 4 }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
data:
|
||||
runtime_config.yaml: |
|
||||
{{- tpl (toYaml .runtime_config) $ | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,11 @@
|
||||
{{- if and .Values.configsdb_postgresql.enabled .Values.configsdb_postgresql.auth.password -}}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "cortex.fullname" . }}-postgresql
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.labels" . | nindent 4 }}
|
||||
data:
|
||||
postgresql-password: {{ .Values.configsdb_postgresql.auth.password | b64enc}}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,11 @@
|
||||
{{- if (and (not .Values.useExternalConfig) (not .Values.useConfigMap)) }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "cortex.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.labels" . | nindent 4 }}
|
||||
data:
|
||||
cortex.yaml: {{ tpl (toYaml .Values.config) . | b64enc }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,12 @@
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ template "cortex.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml .Values.serviceAccount.annotations | nindent 4 }}
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
{{/*
|
||||
store-gateway fullname
|
||||
*/}}
|
||||
{{- define "cortex.storeGatewayFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-store-gateway
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
store-gateway common labels
|
||||
*/}}
|
||||
{{- define "cortex.storeGatewayLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: store-gateway
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
store-gateway selector labels
|
||||
*/}}
|
||||
{{- define "cortex.storeGatewaySelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: store-gateway
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (gt (int .Values.store_gateway.replicas) 1) (.Values.store_gateway.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.storeGatewayFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.storeGatewayLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.storeGatewaySelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.store_gateway.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.store_gateway.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "cortex.storeGatewayFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.storeGatewayLabels" . | nindent 4 }}
|
||||
{{- if .Values.store_gateway.serviceMonitor.additionalLabels }}
|
||||
{{ toYaml .Values.store_gateway.serviceMonitor.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.store_gateway.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.store_gateway.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.storeGatewaySelectorLabels" . | nindent 6 }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
{{- if .Values.store_gateway.serviceMonitor.interval }}
|
||||
interval: {{ .Values.store_gateway.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.store_gateway.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.store_gateway.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- if .Values.store_gateway.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml .Values.store_gateway.serviceMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.store_gateway.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml .Values.store_gateway.serviceMonitor.metricRelabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.store_gateway.serviceMonitor.extraEndpointSpec }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,142 @@
|
||||
{{- if eq .Values.config.storage.engine "blocks" -}}
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: {{ include "cortex.storeGatewayFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.storeGatewayLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
annotations:
|
||||
{{- toYaml .Values.store_gateway.annotations | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.store_gateway.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.storeGatewaySelectorLabels" . | nindent 6 }}
|
||||
updateStrategy:
|
||||
{{- toYaml .Values.store_gateway.strategy | nindent 4 }}
|
||||
serviceName: {{ template "cortex.fullname" . }}-store-gateway-headless
|
||||
{{- if .Values.store_gateway.persistentVolume.enabled }}
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: storage
|
||||
{{- if .Values.store_gateway.persistentVolume.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.store_gateway.persistentVolume.annotations | nindent 10 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.store_gateway.persistentVolume.storageClass }}
|
||||
{{- if (eq "-" .Values.store_gateway.persistentVolume.storageClass) }}
|
||||
storageClassName: ""
|
||||
{{- else }}
|
||||
storageClassName: "{{ .Values.store_gateway.persistentVolume.storageClass }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
accessModes:
|
||||
{{- toYaml .Values.store_gateway.persistentVolume.accessModes | nindent 10 }}
|
||||
resources:
|
||||
requests:
|
||||
storage: "{{ .Values.store_gateway.persistentVolume.size }}"
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.storeGatewayLabels" . | nindent 8 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
{{- with .Values.store_gateway.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.store_gateway.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.store_gateway.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.store_gateway.priorityClassName }}
|
||||
priorityClassName: {{ .Values.store_gateway.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.store_gateway.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.store_gateway.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.store_gateway.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.store_gateway.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.store_gateway.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.store_gateway.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.store_gateway.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
{{- if not .Values.store_gateway.persistentVolume.enabled }}
|
||||
- name: storage
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.store_gateway.extraVolumes }}
|
||||
{{- toYaml .Values.store_gateway.extraVolumes | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
{{- if .Values.store_gateway.extraContainers }}
|
||||
{{ toYaml .Values.store_gateway.extraContainers | nindent 8 }}
|
||||
{{- end }}
|
||||
- name: store-gateway
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=store-gateway"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
{{- include "cortex.memcached" . | nindent 12}}
|
||||
{{- range $key, $value := .Values.store_gateway.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.store_gateway.extraVolumeMounts }}
|
||||
{{- toYaml .Values.store_gateway.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
- name: storage
|
||||
mountPath: "/data"
|
||||
{{- if .Values.store_gateway.persistentVolume.subPath }}
|
||||
subPath: {{ .Values.store_gateway.persistentVolume.subPath }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
- name: grpc
|
||||
containerPort: {{ .Values.config.server.grpc_listen_port }}
|
||||
protocol: TCP
|
||||
- name: gossip
|
||||
containerPort: {{ .Values.config.memberlist.bind_port }}
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
{{- toYaml .Values.store_gateway.startupProbe | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.store_gateway.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.store_gateway.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.store_gateway.resources | nindent 12 }}
|
||||
{{- if .Values.store_gateway.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.store_gateway.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.store_gateway.env }}
|
||||
env:
|
||||
{{- toYaml .Values.store_gateway.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,24 @@
|
||||
{{- if eq .Values.config.storage.engine "blocks" -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.storeGatewayFullname" . }}-headless
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.storeGatewayLabels" . | nindent 4 }}
|
||||
{{- with .Values.store_gateway.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.store_gateway.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
clusterIP: None
|
||||
ports:
|
||||
- port: {{ .Values.config.server.grpc_listen_port }}
|
||||
protocol: TCP
|
||||
name: grpc
|
||||
targetPort: grpc
|
||||
selector:
|
||||
{{- include "cortex.storeGatewaySelectorLabels" . | nindent 4 }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,23 @@
|
||||
{{- if eq .Values.config.storage.engine "blocks" -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.storeGatewayFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.storeGatewayLabels" . | nindent 4 }}
|
||||
{{- with .Values.store_gateway.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.store_gateway.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.storeGatewaySelectorLabels" . | nindent 4 }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,18 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.fullname" . }}-memberlist
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
clusterIP: None
|
||||
ports:
|
||||
- port: {{ .Values.config.memberlist.bind_port }}
|
||||
protocol: TCP
|
||||
name: gossip
|
||||
targetPort: gossip
|
||||
selector:
|
||||
{{- include "cortex.selectorLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/part-of: memberlist
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
{{/*
|
||||
table-manager fullname
|
||||
*/}}
|
||||
{{- define "cortex.tableManagerFullname" -}}
|
||||
{{ include "cortex.fullname" . }}-table-manager
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
table-manager common labels
|
||||
*/}}
|
||||
{{- define "cortex.tableManagerLabels" -}}
|
||||
{{ include "cortex.labels" . }}
|
||||
app.kubernetes.io/component: table-manager
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
table-manager selector labels
|
||||
*/}}
|
||||
{{- define "cortex.tableManagerSelectorLabels" -}}
|
||||
{{ include "cortex.selectorLabels" . }}
|
||||
app.kubernetes.io/component: table-manager
|
||||
{{- end }}
|
||||
@@ -0,0 +1,106 @@
|
||||
{{- if ne .Values.config.storage.engine "blocks" -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "cortex.tableManagerFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.tableManagerLabels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml .Values.table_manager.annotations | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.table_manager.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.tableManagerSelectorLabels" . | nindent 6 }}
|
||||
strategy:
|
||||
{{- toYaml .Values.table_manager.strategy | nindent 4 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "cortex.tableManagerLabels" . | nindent 8 }}
|
||||
{{- with .Values.table_manager.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include "cortex.configChecksum" . }}
|
||||
{{- with .Values.table_manager.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ .Values.table_manager.serviceAccount.name | default (include "cortex.serviceAccountName" . ) }}
|
||||
{{- if .Values.table_manager.priorityClassName }}
|
||||
priorityClassName: {{ .Values.table_manager.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if .Values.table_manager.securityContext.enabled }}
|
||||
securityContext: {{- omit .Values.table_manager.securityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.table_manager.initContainers | nindent 8 }}
|
||||
{{- if .Values.image.pullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.image.pullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: table-manager
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- "-target=table-manager"
|
||||
- "-config.file=/etc/cortex/cortex.yaml"
|
||||
{{- range $key, $value := .Values.table_manager.extraArgs }}
|
||||
- "-{{ $key }}={{ $value }}"
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.table_manager.extraVolumeMounts }}
|
||||
{{- toYaml .Values.table_manager.extraVolumeMounts | nindent 12}}
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /etc/cortex
|
||||
- name: runtime-config
|
||||
mountPath: /etc/cortex-runtime-config
|
||||
- name: storage
|
||||
mountPath: "/data"
|
||||
subPath: {{ .Values.table_manager.persistentVolume.subPath }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
containerPort: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
{{- toYaml .Values.table_manager.startupProbe | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.table_manager.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.table_manager.readinessProbe | nindent 12 }}
|
||||
resources:
|
||||
{{- toYaml .Values.table_manager.resources | nindent 12 }}
|
||||
{{- if .Values.table_manager.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.table_manager.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.table_manager.env }}
|
||||
env:
|
||||
{{- toYaml .Values.table_manager.env | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.table_manager.extraContainers }}
|
||||
{{- toYaml .Values.table_manager.extraContainers | nindent 8}}
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.table_manager.nodeSelector | nindent 8 }}
|
||||
affinity:
|
||||
{{- toYaml .Values.table_manager.affinity | nindent 8 }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.table_manager.tolerations | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.table_manager.terminationGracePeriodSeconds }}
|
||||
volumes:
|
||||
{{- include "cortex.configVolume" . | nindent 8 }}
|
||||
- name: runtime-config
|
||||
configMap:
|
||||
name: {{ template "cortex.fullname" . }}-runtime-config
|
||||
- name: storage
|
||||
emptyDir: {}
|
||||
{{- if .Values.table_manager.extraVolumes }}
|
||||
{{- toYaml .Values.table_manager.extraVolumes | nindent 8}}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (gt (int .Values.table_manager.replicas) 1) (.Values.table_manager.podDisruptionBudget) }}
|
||||
apiVersion: {{ include "cortex.pdbVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "cortex.tableManagerFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.tableManagerLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.tableManagerSelectorLabels" . | nindent 6 }}
|
||||
{{- toYaml .Values.table_manager.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if .Values.table_manager.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "cortex.tableManagerFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.tableManagerLabels" . | nindent 4 }}
|
||||
{{- if .Values.table_manager.serviceMonitor.additionalLabels }}
|
||||
{{ toYaml .Values.table_manager.serviceMonitor.additionalLabels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.table_manager.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.table_manager.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "cortex.tableManagerSelectorLabels" . | nindent 6 }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace | quote }}
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
{{- if .Values.table_manager.serviceMonitor.interval }}
|
||||
interval: {{ .Values.table_manager.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.table_manager.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.table_manager.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- if .Values.table_manager.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml .Values.table_manager.serviceMonitor.relabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.table_manager.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml .Values.table_manager.serviceMonitor.metricRelabelings | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.table_manager.serviceMonitor.extraEndpointSpec }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
{{- if ne .Values.config.storage.engine "blocks" -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "cortex.tableManagerFullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "cortex.tableManagerLabels" . | nindent 4 }}
|
||||
{{- with .Values.table_manager.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml .Values.table_manager.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: {{ .Values.config.server.http_listen_port }}
|
||||
protocol: TCP
|
||||
name: http-metrics
|
||||
targetPort: http-metrics
|
||||
selector:
|
||||
{{- include "cortex.tableManagerSelectorLabels" . | nindent 4 }}
|
||||
{{- end -}}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
tests/
|
||||
.pytest_cache/
|
||||
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
appVersion: 7.6.0
|
||||
description: Official Elastic helm chart for Elasticsearch
|
||||
home: https://github.com/elastic/helm-charts
|
||||
icon: https://helm.elastic.co/icons/elasticsearch.png
|
||||
maintainers:
|
||||
- email: helm-charts@elastic.co
|
||||
name: Elastic
|
||||
name: elasticsearch
|
||||
sources:
|
||||
- https://github.com/elastic/elasticsearch
|
||||
version: 7.6.0
|
||||
@@ -0,0 +1,14 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
namespace: imxc
|
||||
name: elasticsearch-headless
|
||||
labels:
|
||||
app: elasticsearch
|
||||
spec:
|
||||
clusterIP: None
|
||||
selector:
|
||||
app: elasticsearch
|
||||
ports:
|
||||
- name: transport
|
||||
port: 9300
|
||||
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
namespace: imxc
|
||||
name: elasticsearch
|
||||
labels:
|
||||
app: elasticsearch
|
||||
spec:
|
||||
selector:
|
||||
app: elasticsearch
|
||||
ports:
|
||||
- name: http
|
||||
port: 9200
|
||||
targetPort: 9200
|
||||
# nodePort: 30200
|
||||
# type: NodePort
|
||||
type: ClusterIP
|
||||
@@ -0,0 +1,41 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
namespace: imxc
|
||||
name: elasticsearch-config
|
||||
labels:
|
||||
app: elasticsearch
|
||||
data:
|
||||
# discovery.seed_hosts: ["elasticsearch-0.elasticsearch", "elasticsearch-1.elasticsearch", "elasticsearch-2.elasticsearch"]
|
||||
# cluster.initial_master_nodes: ["elasticsearch-0","elasticsearch-1", "elasticsearch-2"]
|
||||
# ES_JAVA_OPTS: -Xms8g -Xmx8g
|
||||
elasticsearch.yml: |
|
||||
cluster.name: imxc-elasticsearch-cluster
|
||||
network.host: ${POD_NAME}
|
||||
discovery.seed_hosts: ["elasticsearch-0.elasticsearch", "elasticsearch-1.elasticsearch"]
|
||||
cluster.initial_master_nodes: ["elasticsearch-0","elasticsearch-1"]
|
||||
xpack.ml.enabled: false
|
||||
xpack.security.enabled: true
|
||||
xpack.security.transport.ssl.enabled: true
|
||||
xpack.security.transport.ssl.verification_mode: certificate
|
||||
xpack.security.transport.ssl.client_authentication: required
|
||||
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
|
||||
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
|
||||
xpack.security.transport.filter.enabled: true
|
||||
xpack.security.transport.filter.allow: _all
|
||||
xpack.security.http.ssl.enabled: true
|
||||
xpack.security.http.ssl.keystore.path: http.p12
|
||||
node.ml: false
|
||||
cluster.routing.rebalance.enable: "all"
|
||||
cluster.routing.allocation.allow_rebalance: "indices_all_active"
|
||||
cluster.routing.allocation.cluster_concurrent_rebalance: 2
|
||||
cluster.routing.allocation.balance.shard: 0.3
|
||||
cluster.routing.allocation.balance.index: 0.7
|
||||
cluster.routing.allocation.balance.threshold: 1
|
||||
cluster.routing.allocation.disk.threshold_enabled: true
|
||||
cluster.routing.allocation.disk.watermark.low: "85%"
|
||||
cluster.routing.allocation.disk.watermark.high: "90%"
|
||||
cluster.routing.allocation.disk.watermark.flood_stage: "95%"
|
||||
thread_pool.write.queue_size: 1000
|
||||
thread_pool.write.size: 2
|
||||
ES_JAVA_OPTS: -Xms8g -Xmx8g
|
||||
@@ -0,0 +1,74 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: data-elasticsearch-cluster-0
|
||||
labels:
|
||||
type: local
|
||||
app: elasticsearch
|
||||
spec:
|
||||
capacity:
|
||||
storage: 30Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
hostPath:
|
||||
path: {{ .Values.global.ELASTICSEARCH_PATH1 }}
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: elasticsearch-storage
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: {{ .Values.global.affinity_key }}
|
||||
operator: In
|
||||
values:
|
||||
- {{ .Values.global.affinity_value1 }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: data-elasticsearch-cluster-1
|
||||
labels:
|
||||
type: local
|
||||
app: elasticsearch
|
||||
spec:
|
||||
capacity:
|
||||
storage: 30Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
hostPath:
|
||||
path: {{ .Values.global.ELASTICSEARCH_PATH2 }}
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: elasticsearch-storage
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: {{ .Values.global.affinity_key }}
|
||||
operator: In
|
||||
values:
|
||||
- {{ .Values.global.affinity_value2 }}
|
||||
---
|
||||
#apiVersion: v1
|
||||
#kind: PersistentVolume
|
||||
#metadata:
|
||||
# name: data-elasticsearch-cluster-2
|
||||
# labels:
|
||||
# type: local
|
||||
# app: elasticsearch
|
||||
#spec:
|
||||
# capacity:
|
||||
# storage: 30Gi
|
||||
# accessModes:
|
||||
# - ReadWriteOnce
|
||||
# hostPath:
|
||||
# path: {{ .Values.global.ELASTICSEARCH_PATH3 }}
|
||||
# persistentVolumeReclaimPolicy: Retain
|
||||
# storageClassName: elasticsearch-storage
|
||||
# nodeAffinity:
|
||||
# required:
|
||||
# nodeSelectorTerms:
|
||||
# - matchExpressions:
|
||||
# - key: kubernetes.io/hostname
|
||||
# operator: In
|
||||
# values:
|
||||
# - {{ .Values.global.ELASTICSEARCH_HOST3 }}
|
||||
@@ -0,0 +1,53 @@
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
namespace: imxc
|
||||
name: elasticsearch-data-elasticsearch-0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
volumeMode: Filesystem
|
||||
resources:
|
||||
requests:
|
||||
storage: 30Gi
|
||||
storageClassName: elasticsearch-storage
|
||||
selector:
|
||||
matchLabels:
|
||||
type: local
|
||||
app: elasticsearch
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
namespace: imxc
|
||||
name: elasticsearch-data-elasticsearch-1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
volumeMode: Filesystem
|
||||
resources:
|
||||
requests:
|
||||
storage: 30Gi
|
||||
storageClassName: elasticsearch-storage
|
||||
selector:
|
||||
matchLabels:
|
||||
type: local
|
||||
app: elasticsearch
|
||||
---
|
||||
#kind: PersistentVolumeClaim
|
||||
#apiVersion: v1
|
||||
#metadata:
|
||||
# namespace: imxc
|
||||
# name: elasticsearch-data-elasticsearch-2
|
||||
#spec:
|
||||
# accessModes:
|
||||
# - ReadWriteOnce
|
||||
# volumeMode: Filesystem
|
||||
# resources:
|
||||
# requests:
|
||||
# storage: 30Gi
|
||||
# storageClassName: elasticsearch-storage
|
||||
# selector:
|
||||
# matchLabels:
|
||||
# type: local
|
||||
# app: elasticsearch
|
||||
@@ -0,0 +1,146 @@
|
||||
{{- if semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion }}
|
||||
apiVersion: apps/v1
|
||||
{{- else }}
|
||||
apiVersion: apps/v1beta1
|
||||
{{- end }}
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
namespace: imxc
|
||||
name: elasticsearch
|
||||
spec:
|
||||
{{- if semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: elasticsearch
|
||||
{{- end }}
|
||||
serviceName: elasticsearch
|
||||
replicas: 2 #3
|
||||
updateStrategy:
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: elasticsearch
|
||||
spec:
|
||||
securityContext:
|
||||
fsGroup: 1000
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
- labelSelector:
|
||||
matchExpressions:
|
||||
- key: "app"
|
||||
operator: In
|
||||
values:
|
||||
- elasticsearch
|
||||
topologyKey: "kubernetes.io/hostname"
|
||||
nodeAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
preference:
|
||||
matchExpressions:
|
||||
- key: elastic-node
|
||||
operator: In
|
||||
values:
|
||||
- "true"
|
||||
initContainers:
|
||||
- name: init-sysctl
|
||||
image: {{ .Values.global.IMXC_IN_REGISTRY }}/busybox:latest
|
||||
imagePullPolicy: IfNotPresent
|
||||
securityContext:
|
||||
privileged: true
|
||||
#command: ["sysctl", "-w", "vm.max_map_count=262144"]
|
||||
command: ["/bin/sh", "-c"]
|
||||
args: ["sysctl -w vm.max_map_count=262144; chown -R 1000:1000 /usr/share/elasticsearch/data"]
|
||||
volumeMounts:
|
||||
- name: elasticsearch-data
|
||||
mountPath: /usr/share/elasticsearch/data
|
||||
containers:
|
||||
- name: elasticsearch
|
||||
resources:
|
||||
requests:
|
||||
cpu: 1000m
|
||||
memory: 16000Mi #32000Mi
|
||||
limits:
|
||||
cpu: 2000m
|
||||
memory: 16000Mi #32000Mi
|
||||
securityContext:
|
||||
privileged: true
|
||||
runAsUser: 1000
|
||||
capabilities:
|
||||
add:
|
||||
- IPC_LOCK
|
||||
- SYS_RESOURCE
|
||||
image: {{ .Values.global.IMXC_IN_REGISTRY }}/elasticsearch:{{ .Values.global.ELASTICSEARCH_VERSION }}
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: ES_JAVA_OPTS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: elasticsearch-config
|
||||
key: ES_JAVA_OPTS
|
||||
# log4j patch
|
||||
- name: LOG4J_FORMAT_MSG_NO_LOOKUPS
|
||||
value: "true"
|
||||
- name: ELASTIC_USERNAME
|
||||
value: {{ .Values.global.CMOA_ES_ID }}
|
||||
- name: ELASTIC_PASSWORD
|
||||
value: {{ .Values.global.CMOA_ES_PW }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
scheme: HTTPS
|
||||
path: /_cluster/health?local=true
|
||||
port: 9200
|
||||
httpHeaders:
|
||||
- name: Authorization
|
||||
# encode base64 by elastic:elastic
|
||||
value: Basic ZWxhc3RpYzplbGFzdGlj
|
||||
initialDelaySeconds: 5
|
||||
ports:
|
||||
- containerPort: 9200
|
||||
name: es-http
|
||||
- containerPort: 9300
|
||||
name: es-transport
|
||||
volumeMounts:
|
||||
- name: elasticsearch-data
|
||||
mountPath: /usr/share/elasticsearch/data
|
||||
- name: elasticsearch-config
|
||||
mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
|
||||
subPath: elasticsearch.yml
|
||||
- name: es-cert-certificate
|
||||
mountPath: /usr/share/elasticsearch/config/elastic-certificates.p12
|
||||
subPath: elastic-certificates.p12
|
||||
- name: es-cert-ca
|
||||
mountPath: /usr/share/elasticsearch/config/elastic-stack-ca.p12
|
||||
subPath: elastic-stack-ca.p12
|
||||
- name: es-cert-http
|
||||
mountPath: /usr/share/elasticsearch/config/http.p12
|
||||
subPath: http.p12
|
||||
volumes:
|
||||
- name: elasticsearch-config
|
||||
configMap:
|
||||
name: elasticsearch-config
|
||||
items:
|
||||
- key: elasticsearch.yml
|
||||
path: elasticsearch.yml
|
||||
- name: es-cert-certificate
|
||||
secret:
|
||||
secretName: es-cert
|
||||
- name: es-cert-ca
|
||||
secret:
|
||||
secretName: es-cert
|
||||
- name: es-cert-http
|
||||
secret:
|
||||
secretName: es-cert
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: elasticsearch-data
|
||||
spec:
|
||||
accessModes: [ "ReadWriteOnce" ]
|
||||
storageClassName: elasticsearch-storage
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -0,0 +1,10 @@
|
||||
apiVersion: v1
|
||||
data:
|
||||
elastic-certificates.p12: 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
|
||||
elastic-stack-ca.p12: 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
|
||||
http.p12: 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
|
||||
kind: Secret
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: es-cert
|
||||
namespace: imxc
|
||||
@@ -0,0 +1,8 @@
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: local-storage
|
||||
provisioner: kubernetes.io/no-provisioner
|
||||
reclaimPolicy: Delete
|
||||
volumeBindingMode: WaitForFirstConsumer
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
# Default values for sample.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: 10.10.31.243:5000/cmoa3/nginx
|
||||
tag: stable
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a service account should be created
|
||||
create: true
|
||||
# The name of the service account to use.
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name:
|
||||
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
securityContext: {}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
hosts:
|
||||
- host: chart-example.local
|
||||
paths: []
|
||||
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
|
||||
resources: {}
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
@@ -0,0 +1,22 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
@@ -0,0 +1,5 @@
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
name: kafka-manager
|
||||
version: 0.1.0
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user