├── .github └── workflows │ ├── lint-helm.yaml │ └── release-chart.yaml ├── README.md └── charts └── nsq ├── Chart.yaml ├── LICENSE ├── templates ├── _helpers.tpl ├── ingress.yaml ├── metrics-service.yaml ├── nsqadmin-deployment.yaml ├── nsqadmin-service.yaml ├── nsqd-service.yaml ├── nsqd-statefulset.yaml ├── nsqlookupd-service.yaml ├── nsqlookupd-statefulset.yaml └── servicemonitor.yaml └── values.yaml /.github/workflows/lint-helm.yaml: -------------------------------------------------------------------------------- 1 | name: Lint Helm Charts 2 | on: 3 | pull_request: 4 | branches: 5 | - master 6 | pull_request_review: 7 | types: [submitted, edited] 8 | release: 9 | types: 10 | - published 11 | - created 12 | - edited 13 | jobs: 14 | lint-helm: 15 | runs-on: ubuntu-20.04 16 | steps: 17 | - uses: actions/checkout@v2 18 | - name: Setup Helm 19 | uses: azure/setup-helm@v1 20 | with: 21 | version: "3.5.4" 22 | - name: Lint nsq 23 | run: helm lint ./charts/nsq 24 | -------------------------------------------------------------------------------- /.github/workflows/release-chart.yaml: -------------------------------------------------------------------------------- 1 | name: release-chart 2 | on: 3 | push: 4 | branches: 5 | - master 6 | jobs: 7 | release: 8 | runs-on: ubuntu-20.04 9 | steps: 10 | - name: Checkout 11 | uses: actions/checkout@v2 12 | with: 13 | fetch-depth: 0 14 | 15 | - name: Configure Git 16 | run: | 17 | git config user.name "$GITHUB_ACTOR" 18 | git config user.email "$GITHUB_ACTOR@users.noreply.github.com" 19 | 20 | - name: Install Helm 21 | uses: azure/setup-helm@v3 22 | 23 | - name: Publish Helm charts 24 | uses: helm/chart-releaser-action@v1.6.0 25 | env: 26 | CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NSQ 2 | 3 | NSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day. 4 | 5 | ## TL;DR 6 | 7 | ```sh 8 | helm repo add nsqio https://nsqio.github.io/helm-chart 9 | helm install my-release nsqio/nsq 10 | ``` 11 | 12 | ## Values 13 | 14 | The following table lists the configurable parameters of the nsq chart and their default values. 15 | 16 | ### common 17 | 18 | | Value | Description | Default | 19 | |------------------|--------------------------------------------------|------------------------| 20 | | fullnameOverride | String to partially override nsq.fullname | `Chart name` | 21 | | image.repository | NSQ image repository | `nsqio/nsq` | 22 | | image.tag | NSQ image tag | `v{.Chart.AppVersion}` | 23 | | image.pullPolicy | Image pull policy | `IfNotPresent` | 24 | | imagePullSecrets | Specify docker-registry secret names as an array | `[]` | 25 | 26 | ### nsqlookupd 27 | 28 | | Value | Description | Default | 29 | |--------------------------------|--------------------------------------------------------------------------------------|----------------------------| 30 | | nsqlookupd.enabled | Enable the nsqlookupd | `true` | 31 | | nsqlookupd.fullnameOverride | String to partially override nsq.nsqlookupd.fullname | `.Release.Name-nsqlookupd` | 32 | | nsqlookupd.replicaCount | Number of nsqlookupd replicas | `3` | 33 | | nsqlookupd.priorityClassName | The name of the kube priority class used. Defaults to global default. | `nil` | 34 | | nsqlookupd.extraArgs | Extra arguments to provide to the `nsqlookupd` command | `[]` | 35 | | nsqlookupd.podManagementPolicy | The pod management policy of the StatefulSet | `Parallel` | 36 | | nsqlookupd.podAnnotations | The annotations to attach to the nsqlookupd pods | `{}` | 37 | | nsqlookupd.podSecurityContext | The security context to attach to the nsqlookupd pods | `{}` | 38 | | nsqlookupd.resources | The resources to allocate to the nsqlookupd pods | `{}` | 39 | | nsqlookupd.serviceAccountName | The name of the service account used. Defaults to namespace default service account. | `nil` | 40 | | nsqlookupd.nodeSelector | The tags that will be used to select the node on which the pods should be scheduled | `{}` | 41 | | nsqlookupd.tolerations | Tolerations for pod assignment | `[]` | 42 | | nsqlookupd.affinity | Affinity for pod assignment | `[]` | 43 | 44 | ### nsqadmin 45 | 46 | | Value | Description | Default | 47 | |-----------------------------------|--------------------------------------------------------------------------------------|--------------------------| 48 | | nsqadmin.enabled | Enable the nsqadmin | `true` | 49 | | nsqadmin.fullnameOverride | String to partially override nsq.nsqadmin.fullname | `.Release.Name-nsqadmin` | 50 | | nsqadmin.replicaCount | Number of nsqadmin replicas | `1` | 51 | | nsqadmin.priorityClassName | The name of the kube priority class used. Defaults to global default. | `nil` | 52 | | nsqadmin.extraArgs | Extra arguments to provide to the `nsqadmin` command | `[]` | 53 | | nsqadmin.service.type | The nsqadmin service type | `ClusterIP` | 54 | | nsqadmin.service.port | The nsqadmin service port | `4171` | 55 | | nsqadmin.service.nodePort | The nsqadmin service node port | `nil` | 56 | | nsqadmin.ingress.enabled | Enable the nsqadmin ingress | `false` | 57 | | nsqadmin.ingress.host | Host of the nsqadmin ingress | `nil` | 58 | | nsqadmin.ingress.ingressClassName | Set the ingerssClassName on the ingress record for k8s 1.18+ | `` | 59 | | nsqadmin.ingress.annotations | The annotations to attach to the ingress | `{}` | 60 | | nsqadmin.ingress.tls | TLS configurations for the hostname | `[]` | 61 | | nsqadmin.podAnnotations | The annotations to attach to the nsqadmin pods | `{}` | 62 | | nsqadmin.podSecurityContext | The security context to attach to the nsqadmin pods | `{}` | 63 | | nsqadmin.resources | The resources to allocate to the nsqadmin pods | `{}` | 64 | | nsqadmin.serviceAccountName | The name of the service account used. Defaults to namespace default service account. | `nil` | 65 | | nsqadmin.nodeSelector | The tags that will be used to select the node on which the pods should be scheduled | `{}` | 66 | | nsqadmin.tolerations | Tolerations for pod assignment | `[]` | 67 | | nsqadmin.affinity | Affinity for pod assignment | `[]` | 68 | 69 | ### nsqd 70 | 71 | | Value | Description | Default | 72 | |-------------------------|--------------------------------------------------------------------------------------|----------------------| 73 | | nsqd.enabled | Enable the nsqd | `true` | 74 | | nsqd.fullnameOverride | String to partially override nsq.nsqd.fullname | `.Release.Name-nsqd` | 75 | | nsqd.replicaCount | Number of nsqd replicas | `3` | 76 | | nsqd.priorityClassName | The name of the kube priority class used. Defaults to global default. | `nil` | 77 | | nsqd.extraArgs | Extra arguments to provide to the `nsqd` command | `[]` | 78 | | nsqd.service.type | The nsqd service type | `ClusterIP` | 79 | | nsqd.service.annotations| Provide any additional annotations that may be required | `{}` | 80 | | nsqd.podAnnotations | The annotations to attach to the nsqd pods | `{}` | 81 | | nsqd.podSecurityContext | The security context to attach to the nsqd pods | `{}` | 82 | | nsqd.resources | The resources to allocate to the nsqd pods | `{}` | 83 | | nsqd.serviceAccountName | The name of the service account used. Defaults to namespace default service account. | `nil` | 84 | | nsqd.nodeSelector | The tags that will be used to select the node on which the pods should be scheduled | `{}` | 85 | | nsqd.tolerations | Tolerations for pod assignment | `[]` | 86 | | nsqd.affinity | Affinity for pod assignment | `[]` | 87 | 88 | ### Metrics parameters 89 | 90 | | Name | Description | Value | 91 | | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------- | 92 | | `metrics.enabled` | Enable using a sidecar Prometheus exporter | `false` | 93 | | `metrics.image.registry` | Nsq(®) Prometheus exporter image registry | `docker.io` | 94 | | `metrics.image.repository` | Nsq(®) Prometheus exporter image repository | `lovoo/nsq_exporter` | 95 | | `metrics.image.tag` | Nsq(®) Prometheus exporter image tag (immutable tags are recommended) | `2.0.2` | 96 | | `metrics.image.pullPolicy` | Nsq(®) Prometheus exporter image pull policy | `IfNotPresent` | 97 | | `metrics.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | 98 | | `metrics.args` | Override default container args (useful when using custom images) | `[]` | 99 | | `metrics.resources.limits` | The resources limits for Prometheus exporter containers | `{}` | 100 | | `metrics.resources.requests` | The requested resources for Prometheus exporter containers | `{}` | 101 | | `metrics.containerPort` | Port of the Prometheus metrics container | `9216` | 102 | | `metrics.service.annotations` | Annotations for Prometheus Exporter pods. Evaluated as a template. | `{}` | 103 | | `metrics.service.type` | Type of the Prometheus metrics service | `ClusterIP` | 104 | | `metrics.service.ports.metrics` | Port of the Prometheus metrics service | `9216` | 105 | | `metrics.service.extraPorts` | Extra ports to expose (normally used with the `sidecar` value) | `[]` | 106 | | `metrics.livenessProbe.enabled` | Enable livenessProbe | `true` | 107 | | `metrics.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `15` | 108 | | `metrics.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `5` | 109 | | `metrics.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` | 110 | | `metrics.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` | 111 | | `metrics.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` | 112 | | `metrics.readinessProbe.enabled` | Enable readinessProbe | `true` | 113 | | `metrics.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` | 114 | | `metrics.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `5` | 115 | | `metrics.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` | 116 | | `metrics.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` | 117 | | `metrics.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` | 118 | | `metrics.startupProbe.enabled` | Enable startupProbe | `false` | 119 | | `metrics.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `5` | 120 | | `metrics.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` | 121 | | `metrics.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` | 122 | | `metrics.startupProbe.failureThreshold` | Failure threshold for startupProbe | `30` | 123 | | `metrics.startupProbe.successThreshold` | Success threshold for startupProbe | `1` | 124 | | `metrics.serviceMonitor.enabled` | Create ServiceMonitor Resource for scraping metrics using Prometheus Operator | `false` | 125 | | `metrics.serviceMonitor.namespace` | Namespace which Prometheus is running in | `""` | 126 | | `metrics.serviceMonitor.interval` | Interval at which metrics should be scraped | `30s` | 127 | | `metrics.serviceMonitor.scrapeTimeout` | Specify the timeout after which the scrape is ended | `""` | 128 | | `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping. | `[]` | 129 | | `metrics.serviceMonitor.metricRelabelings` | MetricsRelabelConfigs to apply to samples before ingestion. | `[]` | 130 | | `metrics.serviceMonitor.labels` | Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with | `{}` | 131 | | `metrics.serviceMonitor.selector` | Prometheus instance selector labels | `{}` | 132 | | `metrics.serviceMonitor.honorLabels` | Specify honorLabels parameter to add the scrape endpoint | `false` | 133 | | `metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` | 134 | -------------------------------------------------------------------------------- /charts/nsq/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: nsq 3 | description: A realtime distributed messaging platform 4 | type: application 5 | version: 0.0.11 6 | appVersion: 1.2.1 7 | home: https://github.com/nsqio/helm-chart/tree/master/charts/nsq 8 | icon: https://nsq.io/static/img/nsq_blue.png 9 | keywords: 10 | - nsq 11 | - nsqd 12 | - nsqlookupd 13 | - nsqadmin 14 | maintainers: 15 | - email: benhu@beeinventor.com 16 | name: BeeInventor 17 | sources: 18 | - https://github.com/nsqio/helm-chart/tree/master/charts/nsq 19 | - https://nsq.io/ 20 | -------------------------------------------------------------------------------- /charts/nsq/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2021-NOW BeeInventor 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /charts/nsq/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | nsq fullname 3 | */}} 4 | {{- define "nsq.fullname" -}} 5 | {{- default .Chart.Name .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} 6 | {{- end }} 7 | 8 | {{/* 9 | Chart name 10 | */}} 11 | {{- define "nsq.chart" -}} 12 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 13 | {{- end }} 14 | 15 | {{/* 16 | nsqlookupd fullname 17 | */}} 18 | {{- define "nsq.nsqlookupd.fullname" -}} 19 | {{- if .Values.nsqlookupd.fullnameOverride -}} 20 | {{- .Values.nsqlookupd.fullnameOverride | trunc 63 | trimSuffix "-" -}} 21 | {{- else -}} 22 | {{- printf "%s-%s" .Release.Name "nsqlookupd" -}} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | nsqadmin fullname 28 | */}} 29 | {{- define "nsq.nsqadmin.fullname" -}} 30 | {{- if .Values.nsqadmin.fullnameOverride -}} 31 | {{- .Values.nsqadmin.fullnameOverride | trunc 63 | trimSuffix "-" -}} 32 | {{- else -}} 33 | {{- printf "%s-%s" .Release.Name "nsqadmin" -}} 34 | {{- end }} 35 | {{- end }} 36 | 37 | {{/* 38 | nsqd fullname 39 | */}} 40 | {{- define "nsq.nsqd.fullname" -}} 41 | {{- if .Values.nsqd.fullnameOverride -}} 42 | {{- .Values.nsqd.fullnameOverride | trunc 63 | trimSuffix "-" -}} 43 | {{- else -}} 44 | {{- printf "%s-%s" .Release.Name "nsqd" -}} 45 | {{- end }} 46 | {{- end }} 47 | 48 | {{/* 49 | Common labels 50 | */}} 51 | {{- define "nsq.commonLabels" -}} 52 | helm.sh/chart: {{ include "nsq.chart" . }} 53 | helm.sh/release: {{ .Release.Name }} 54 | app.kubernetes.io/name: {{ include "nsq.fullname" . }} 55 | app.kubernetes.io/instance: {{ .Release.Name }} 56 | app.kubernetes.io/managed-by: {{ .Release.Service }} 57 | {{- end }} 58 | 59 | {{/* 60 | nsqlookupd selector labels 61 | */}} 62 | {{- define "nsq.nsqlookupd.selectorLabels" -}} 63 | app.kubernetes.io/component: nsqlookupd 64 | app.kubernetes.io/instance: {{ .Release.Name }} 65 | {{- end }} 66 | 67 | {{/* 68 | nsqadmin selector labels 69 | */}} 70 | {{- define "nsq.nsqadmin.selectorLabels" -}} 71 | app.kubernetes.io/component: nsqadmin 72 | app.kubernetes.io/instance: {{ .Release.Name }} 73 | {{- end }} 74 | 75 | {{/* 76 | nsqd selector labels 77 | */}} 78 | {{- define "nsq.nsqd.selectorLabels" -}} 79 | app.kubernetes.io/component: nsqd 80 | app.kubernetes.io/instance: {{ .Release.Name }} 81 | {{- end }} 82 | 83 | {{/* 84 | Return the proper Docker Image Registry Secret Names 85 | */}} 86 | {{- define "nsq.imagePullSecrets" -}} 87 | {{- $pullSecrets := list }} 88 | 89 | {{- range .Values.imagePullSecrets -}} 90 | {{- $pullSecrets = append $pullSecrets .name -}} 91 | {{- end -}} 92 | 93 | {{- range .Values.metrics.image.pullSecrets -}} 94 | {{- $pullSecrets = append $pullSecrets .name -}} 95 | {{- end -}} 96 | {{- if (not (empty $pullSecrets)) }} 97 | imagePullSecrets: 98 | {{- range $pullSecrets }} 99 | - name: {{ . }} 100 | {{- end }} 101 | {{- end }} 102 | {{- end -}} 103 | 104 | {{- define "nsq.serviceMonitor.namespace" -}} 105 | {{- if .Values.metrics.serviceMonitor.namespace -}} 106 | {{- print .Values.metrics.serviceMonitor.namespace -}} 107 | {{- else -}} 108 | {{- print .Release.Namespace -}} 109 | {{- end }} 110 | {{- end -}} 111 | 112 | {{/* 113 | Renders a value that contains template. 114 | Usage: 115 | {{ include "nsq.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $) }} 116 | */}} 117 | {{- define "nsq.tplvalues.render" -}} 118 | {{- if typeIs "string" .value }} 119 | {{- tpl .value .context }} 120 | {{- else }} 121 | {{- tpl (.value | toYaml) .context }} 122 | {{- end }} 123 | {{- end -}} -------------------------------------------------------------------------------- /charts/nsq/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.nsqadmin.ingress.enabled -}} 2 | {{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion }} 3 | apiVersion: extensions/v1beta1 4 | {{- else if semverCompare "<1.19-0" .Capabilities.KubeVersion.GitVersion }} 5 | apiVersion: networking.k8s.io/v1beta1 6 | {{- else }} 7 | apiVersion: networking.k8s.io/v1 8 | {{- end }} 9 | kind: Ingress 10 | metadata: 11 | name: {{ include "nsq.nsqadmin.fullname" . }} 12 | labels: 13 | {{- include "nsq.commonLabels" . | nindent 4 }} 14 | {{- with .Values.nsqadmin.ingress.annotations }} 15 | annotations: 16 | {{- toYaml . | nindent 4 }} 17 | {{- end }} 18 | spec: 19 | {{- if .Values.nsqadmin.ingress.ingressClassName }} 20 | ingressClassName: {{ .Values.nsqadmin.ingress.ingressClassName | quote }} 21 | {{- end }} 22 | {{- if .Values.nsqadmin.ingress.tls }} 23 | tls: 24 | {{- range .Values.nsqadmin.ingress.tls }} 25 | - hosts: 26 | {{- range .hosts }} 27 | - {{ . | quote }} 28 | {{- end }} 29 | secretName: {{ .secretName }} 30 | {{- end }} 31 | {{- end }} 32 | rules: 33 | - http: 34 | paths: 35 | {{- if semverCompare "<1.19-0" .Capabilities.KubeVersion.GitVersion }} 36 | - path: / 37 | backend: 38 | serviceName: {{ include "nsq.nsqadmin.fullname" . }} 39 | servicePort: {{ .Values.nsqadmin.service.port }} 40 | {{- else }} 41 | - path: / 42 | pathType: Prefix 43 | backend: 44 | service: 45 | name: {{ include "nsq.nsqadmin.fullname" . }} 46 | port: 47 | number: {{ .Values.nsqadmin.service.port }} 48 | {{- end }} 49 | {{- if .Values.nsqadmin.ingress.host }} 50 | host: {{ .Values.nsqadmin.ingress.host | quote }} 51 | {{- end }} 52 | {{- end }} 53 | -------------------------------------------------------------------------------- /charts/nsq/templates/metrics-service.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.metrics.enabled }} 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: {{ printf "%s-metrics" (include "nsq.fullname" .) }} 6 | labels: 7 | app.kubernetes.io/component: metrics 8 | {{- if .Values.commonLabels }} 9 | {{- include "nsq.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.metrics.service.annotations }} 12 | annotations: 13 | {{- include "nsq.tplvalues.render" (dict "value" .Values.metrics.service.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | spec: 16 | type: {{ .Values.metrics.service.type }} 17 | ports: 18 | - port: {{ .Values.metrics.service.ports.metrics }} 19 | targetPort: metrics 20 | protocol: TCP 21 | name: http-metrics 22 | {{- if .Values.metrics.service.extraPorts }} 23 | {{- include "nsq.tplvalues.render" (dict "value" .Values.metrics.service.extraPorts "context" $) | nindent 4 }} 24 | {{- end }} 25 | selector: 26 | {{- include "nsq.nsqd.selectorLabels" . | nindent 4 }} 27 | {{- end }} 28 | -------------------------------------------------------------------------------- /charts/nsq/templates/nsqadmin-deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.nsqadmin.enabled -}} 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ include "nsq.nsqadmin.fullname" . }} 6 | labels: 7 | {{- include "nsq.commonLabels" . | nindent 4 }} 8 | spec: 9 | replicas: {{ .Values.nsqadmin.replicaCount }} 10 | selector: 11 | matchLabels: 12 | {{- include "nsq.nsqadmin.selectorLabels" . | nindent 6 }} 13 | template: 14 | metadata: 15 | {{- with .Values.nsqadmin.podAnnotations }} 16 | annotations: 17 | {{- toYaml . | nindent 8 }} 18 | {{- end }} 19 | labels: 20 | {{- include "nsq.nsqadmin.selectorLabels" . | nindent 8 }} 21 | spec: 22 | {{- with .Values.imagePullSecrets }} 23 | imagePullSecrets: 24 | {{- toYaml . | nindent 8 }} 25 | {{- end }} 26 | securityContext: 27 | {{- toYaml .Values.nsqadmin.podSecurityContext | nindent 8 }} 28 | priorityClassName: {{ .Values.nsqadmin.priorityClassName }} 29 | containers: 30 | - name: {{ include "nsq.nsqadmin.fullname" . }} 31 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (printf "v%s" .Chart.AppVersion) }}" 32 | imagePullPolicy: {{ .Values.image.pullPolicy }} 33 | command: 34 | - /nsqadmin 35 | args: 36 | - --base-path={{ .Values.nsqadmin.basePath }} 37 | {{ $lookupdFullName := include "nsq.nsqlookupd.fullname" . -}} 38 | {{ range $i, $e := until (atoi (printf "%d" (int64 .Values.nsqlookupd.replicaCount))) -}} 39 | - --lookupd-http-address={{ $lookupdFullName }}-{{ $i }}.{{ $lookupdFullName }}:4161 40 | {{ end -}} 41 | {{- range .Values.nsqadmin.extraArgs }} 42 | - {{ . }} 43 | {{- end }} 44 | terminationMessagePolicy: FallbackToLogsOnError 45 | ports: 46 | - containerPort: 4171 47 | name: http 48 | livenessProbe: 49 | httpGet: 50 | path: {{ .Values.nsqadmin.basePath }} 51 | port: http 52 | readinessProbe: 53 | httpGet: 54 | path: {{ .Values.nsqadmin.basePath }} 55 | port: http 56 | resources: 57 | {{- toYaml .Values.nsqadmin.resources | nindent 12 }} 58 | serviceAccountName: {{ .Values.nsqadmin.serviceAccountName }} 59 | {{- with .Values.nsqadmin.nodeSelector }} 60 | nodeSelector: 61 | {{- toYaml . | nindent 8 }} 62 | {{- end }} 63 | {{- with .Values.nsqadmin.affinity }} 64 | affinity: 65 | {{- toYaml . | nindent 8 }} 66 | {{- end }} 67 | {{- with .Values.nsqadmin.tolerations }} 68 | tolerations: 69 | {{- toYaml . | nindent 8 }} 70 | {{- end }} 71 | {{- end }} 72 | -------------------------------------------------------------------------------- /charts/nsq/templates/nsqadmin-service.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.nsqadmin.enabled -}} 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: {{ include "nsq.nsqadmin.fullname" . }} 6 | labels: 7 | {{- include "nsq.commonLabels" . | nindent 4 }} 8 | {{- with .Values.nsqadmin.service.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | spec: 13 | type: {{ .Values.nsqadmin.service.type }} 14 | ports: 15 | - port: {{ .Values.nsqadmin.service.port }} 16 | targetPort: http 17 | {{- if eq "NodePort" .Values.nsqadmin.service.type }} 18 | nodePort: {{ .Values.nsqadmin.service.nodePort }} 19 | {{- end }} 20 | selector: 21 | {{- include "nsq.nsqadmin.selectorLabels" . | nindent 4 }} 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/nsq/templates/nsqd-service.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.nsqd.enabled (ne "headless" .Values.nsqd.service.type) -}} 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: {{ include "nsq.nsqd.fullname" . }} 6 | labels: 7 | {{- include "nsq.commonLabels" . | nindent 4 }} 8 | {{- with .Values.nsqd.service.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | spec: 13 | type: {{ .Values.nsqd.service.type }} 14 | ports: 15 | - name: http 16 | port: 4151 17 | protocol: TCP 18 | targetPort: http 19 | - name: tcp 20 | port: 4150 21 | protocol: TCP 22 | targetPort: tcp 23 | selector: 24 | {{- include "nsq.nsqd.selectorLabels" . | nindent 4 }} 25 | {{- end }} 26 | -------------------------------------------------------------------------------- /charts/nsq/templates/nsqd-statefulset.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.nsqd.enabled -}} 2 | apiVersion: apps/v1 3 | kind: StatefulSet 4 | metadata: 5 | name: {{ include "nsq.nsqd.fullname" . }} 6 | labels: 7 | {{- include "nsq.commonLabels" . | nindent 4 }} 8 | spec: 9 | replicas: {{ .Values.nsqd.replicaCount }} 10 | podManagementPolicy: {{ .Values.nsqd.podManagementPolicy }} 11 | serviceName: "{{ include "nsq.nsqd.fullname" . }}-headless" 12 | selector: 13 | matchLabels: 14 | {{- include "nsq.nsqd.selectorLabels" . | nindent 6 }} 15 | template: 16 | metadata: 17 | {{- with .Values.nsqd.podAnnotations }} 18 | annotations: 19 | {{- toYaml . | nindent 8 }} 20 | {{- end }} 21 | labels: 22 | {{- include "nsq.nsqd.selectorLabels" . | nindent 8 }} 23 | spec: 24 | {{- include "nsq.imagePullSecrets" . | nindent 6 }} 25 | securityContext: 26 | {{- toYaml .Values.nsqd.podSecurityContext | nindent 8 }} 27 | priorityClassName: {{ .Values.nsqd.priorityClassName }} 28 | containers: 29 | - name: {{ include "nsq.nsqd.fullname" . }} 30 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (printf "v%s" .Chart.AppVersion) }}" 31 | imagePullPolicy: {{ .Values.image.pullPolicy }} 32 | env: 33 | - name: POD_IP 34 | valueFrom: 35 | fieldRef: 36 | fieldPath: status.podIP 37 | command: 38 | - /nsqd 39 | args: 40 | - --broadcast-address=$(POD_IP) 41 | {{ $lookupdFullName := include "nsq.nsqlookupd.fullname" . -}} 42 | {{ range $i, $e := until (atoi (printf "%d" (int64 .Values.nsqlookupd.replicaCount))) -}} 43 | - --lookupd-tcp-address={{ $lookupdFullName }}-{{ $i }}.{{ $lookupdFullName }}:4160 44 | {{ end -}} 45 | - -data-path=/data 46 | {{- range .Values.nsqd.extraArgs }} 47 | - {{ . }} 48 | {{- end }} 49 | terminationMessagePolicy: FallbackToLogsOnError 50 | ports: 51 | - containerPort: 4150 52 | name: tcp 53 | - containerPort: 4151 54 | name: http 55 | readinessProbe: 56 | httpGet: 57 | path: /ping 58 | port: http 59 | initialDelaySeconds: 10 60 | timeoutSeconds: 5 61 | livenessProbe: 62 | httpGet: 63 | path: /ping 64 | port: http 65 | initialDelaySeconds: 10 66 | timeoutSeconds: 5 67 | resources: 68 | {{- toYaml .Values.nsqd.resources | nindent 12 }} 69 | volumeMounts: 70 | - name: data 71 | mountPath: /data 72 | {{- if .Values.metrics.enabled }} 73 | - name: metrics 74 | image: "{{ .Values.metrics.image.registry }}/{{ .Values.metrics.image.repository }}:{{ .Values.metrics.image.tag }}" 75 | imagePullPolicy: {{ .Values.metrics.image.pullPolicy | quote }} 76 | {{- if .Values.metrics.args }} 77 | args: {{- include "nsq.tplvalues.render" (dict "value" .Values.metrics.args "context" $) | nindent 12 }} 78 | {{- else }} 79 | args: 80 | - -web.listen=:{{ .Values.metrics.containerPort }} 81 | - -web.path=/metrics 82 | - -nsqd.addr=http://localhost:4151/stats 83 | - -collect=stats.topics,stats.channels,stats.clients 84 | {{- end }} 85 | ports: 86 | - name: metrics 87 | containerPort: {{ .Values.metrics.containerPort }} 88 | {{- if .Values.metrics.livenessProbe.enabled }} 89 | livenessProbe: {{- include "nsq.tplvalues.render" (dict "value" (omit .Values.metrics.livenessProbe "enabled") "context" $) | nindent 10 }} 90 | httpGet: 91 | path: / 92 | port: metrics 93 | {{- end }} 94 | {{- if .Values.metrics.readinessProbe.enabled }} 95 | readinessProbe: {{- include "nsq.tplvalues.render" (dict "value" (omit .Values.metrics.readinessProbe "enabled") "context" $) | nindent 10 }} 96 | httpGet: 97 | path: / 98 | port: metrics 99 | {{- end }} 100 | {{- if .Values.metrics.startupProbe.enabled }} 101 | startupProbe: {{- include "nsq.tplvalues.render" (dict "value" (omit .Values.metrics.startupProbe "enabled") "context" $) | nindent 10 }} 102 | tcpSocket: 103 | port: metrics 104 | {{- end }} 105 | {{- if .Values.metrics.resources }} 106 | resources: {{- toYaml .Values.metrics.resources | nindent 10 }} 107 | {{- end }} 108 | {{- end }} 109 | serviceAccountName: {{ .Values.nsqd.serviceAccountName }} 110 | {{- with .Values.nsqd.nodeSelector }} 111 | nodeSelector: 112 | {{- toYaml . | nindent 8 }} 113 | {{- end }} 114 | {{- with .Values.nsqd.affinity }} 115 | affinity: 116 | {{- toYaml . | nindent 8 }} 117 | {{- end }} 118 | {{- with .Values.nsqd.tolerations }} 119 | tolerations: 120 | {{- toYaml . | nindent 8 }} 121 | {{- end }} 122 | terminationGracePeriodSeconds: 5 123 | volumes: 124 | {{- if not .Values.nsqd.persistence.enabled }} 125 | - name: "data" 126 | emptyDir: {} 127 | {{- end }} 128 | {{- if and .Values.nsqd.persistence.enabled }} 129 | volumeClaimTemplates: 130 | - metadata: 131 | name: data 132 | spec: 133 | accessModes: [ "ReadWriteOnce" ] 134 | resources: 135 | requests: 136 | storage: {{ .Values.nsqd.persistence.size | quote }} 137 | {{- if .Values.nsqd.persistence.storageClass }} 138 | {{- if (ne "-" .Values.nsqd.persistence.storageClass) }} 139 | storageClassName: "{{ .Values.nsqd.persistence.storageClass }}" 140 | {{- end }} 141 | {{- end }} 142 | {{- end }} 143 | {{- end }} 144 | -------------------------------------------------------------------------------- /charts/nsq/templates/nsqlookupd-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "nsq.nsqlookupd.fullname" . }} 5 | labels: 6 | {{- include "nsq.commonLabels" . | nindent 4 }} 7 | spec: 8 | clusterIP: None 9 | ports: 10 | - port: 4160 11 | name: tcp 12 | targetPort: 4160 13 | - port: 4161 14 | name: http 15 | targetPort: 4161 16 | selector: 17 | {{- include "nsq.nsqlookupd.selectorLabels" . | nindent 4 }} 18 | -------------------------------------------------------------------------------- /charts/nsq/templates/nsqlookupd-statefulset.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.nsqlookupd.enabled -}} 2 | apiVersion: apps/v1 3 | kind: StatefulSet 4 | metadata: 5 | name: {{ include "nsq.nsqlookupd.fullname" . }} 6 | labels: 7 | {{- include "nsq.commonLabels" . | nindent 4 }} 8 | spec: 9 | replicas: {{ .Values.nsqlookupd.replicaCount }} 10 | podManagementPolicy: {{ .Values.nsqlookupd.podManagementPolicy }} 11 | serviceName: {{ include "nsq.nsqlookupd.fullname" . }} 12 | selector: 13 | matchLabels: 14 | {{- include "nsq.nsqlookupd.selectorLabels" . | nindent 6 }} 15 | template: 16 | metadata: 17 | {{- with .Values.nsqlookupd.podAnnotations }} 18 | annotations: 19 | {{- toYaml . | nindent 8 }} 20 | {{- end }} 21 | labels: 22 | {{- include "nsq.nsqlookupd.selectorLabels" . | nindent 8 }} 23 | spec: 24 | {{- with .Values.imagePullSecrets }} 25 | imagePullSecrets: 26 | {{- toYaml . | nindent 8 }} 27 | {{- end }} 28 | securityContext: 29 | {{- toYaml .Values.nsqlookupd.podSecurityContext | nindent 8 }} 30 | priorityClassName: {{ .Values.nsqlookupd.priorityClassName }} 31 | containers: 32 | - name: {{ include "nsq.nsqlookupd.fullname" . }} 33 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (printf "v%s" .Chart.AppVersion) }}" 34 | imagePullPolicy: {{ .Values.image.pullPolicy }} 35 | env: 36 | - name: POD_IP 37 | valueFrom: 38 | fieldRef: 39 | fieldPath: status.podIP 40 | command: 41 | - /nsqlookupd 42 | args: 43 | - --broadcast-address=$(POD_IP) 44 | {{- range .Values.nsqlookupd.extraArgs }} 45 | - {{ . }} 46 | {{- end }} 47 | terminationMessagePolicy: FallbackToLogsOnError 48 | ports: 49 | - containerPort: 4160 50 | name: tcp 51 | - containerPort: 4161 52 | name: http 53 | readinessProbe: 54 | httpGet: 55 | path: /ping 56 | port: http 57 | scheme: HTTP 58 | initialDelaySeconds: 10 59 | timeoutSeconds: 5 60 | livenessProbe: 61 | httpGet: 62 | path: /ping 63 | port: http 64 | scheme: HTTP 65 | initialDelaySeconds: 10 66 | timeoutSeconds: 5 67 | resources: 68 | {{- toYaml .Values.nsqlookupd.resources | nindent 12 }} 69 | serviceAccountName: {{ .Values.nsqlookupd.serviceAccountName }} 70 | {{- with .Values.nsqlookupd.nodeSelector }} 71 | nodeSelector: 72 | {{- toYaml . | nindent 8 }} 73 | {{- end }} 74 | {{- with .Values.nsqlookupd.affinity }} 75 | affinity: 76 | {{- toYaml . | nindent 8 }} 77 | {{- end }} 78 | {{- with .Values.nsqlookupd.tolerations }} 79 | tolerations: 80 | {{- toYaml . | nindent 8 }} 81 | {{- end }} 82 | {{- end }} 83 | -------------------------------------------------------------------------------- /charts/nsq/templates/servicemonitor.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }} 2 | apiVersion: monitoring.coreos.com/v1 3 | kind: ServiceMonitor 4 | metadata: 5 | name: {{ include "nsq.fullname" . }} 6 | namespace: {{ include "nsq.serviceMonitor.namespace" . }} 7 | labels: 8 | {{- if .Values.metrics.serviceMonitor.labels }} 9 | {{- include "nsq.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.labels "context" $) | nindent 4 }} 10 | {{- end }} 11 | app.kubernetes.io/component: metrics 12 | spec: 13 | {{- if .Values.metrics.serviceMonitor.jobLabel }} 14 | jobLabel: {{ .Values.metrics.serviceMonitor.jobLabel }} 15 | {{- end }} 16 | selector: 17 | matchLabels: 18 | {{- if .Values.metrics.serviceMonitor.selector }} 19 | {{- include "nsq.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.selector "context" $) | nindent 6 }} 20 | {{- end }} 21 | app.kubernetes.io/component: metrics 22 | endpoints: 23 | - port: http-metrics 24 | {{- if .Values.metrics.serviceMonitor.interval }} 25 | interval: {{ .Values.metrics.serviceMonitor.interval }} 26 | {{- end }} 27 | {{- if .Values.metrics.serviceMonitor.scrapeTimeout }} 28 | scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }} 29 | {{- end }} 30 | {{- if .Values.metrics.serviceMonitor.relabelings }} 31 | relabelings: {{- include "nsq.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.relabelings "context" $) | nindent 8 }} 32 | {{- end }} 33 | {{- if .Values.metrics.serviceMonitor.metricRelabelings }} 34 | metricRelabelings: {{- include "nsq.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.metricRelabelings "context" $) | nindent 8 }} 35 | {{- end }} 36 | {{- if .Values.metrics.serviceMonitor.honorLabels }} 37 | honorLabels: {{ .Values.metrics.serviceMonitor.honorLabels }} 38 | {{- end }} 39 | namespaceSelector: 40 | matchNames: 41 | - "{{ .Release.Namespace }}" 42 | {{- end }} 43 | -------------------------------------------------------------------------------- /charts/nsq/values.yaml: -------------------------------------------------------------------------------- 1 | # Default is chart name 2 | fullnameOverride: 3 | 4 | image: 5 | repository: nsqio/nsq 6 | pullPolicy: IfNotPresent 7 | # Overrides the image tag whose default is the chart appVersion. 8 | tag: 9 | 10 | imagePullSecrets: [] 11 | 12 | nsqlookupd: 13 | enabled: true 14 | 15 | fullnameOverride: 16 | 17 | replicaCount: 3 18 | 19 | priorityClassName: 20 | 21 | extraArgs: [] 22 | 23 | podManagementPolicy: Parallel 24 | 25 | podAnnotations: {} 26 | 27 | podSecurityContext: 28 | {} 29 | # fsGroup: 2000 30 | 31 | resources: 32 | {} 33 | # limits: 34 | # cpu: 100m 35 | # memory: 128Mi 36 | # requests: 37 | # cpu: 100m 38 | # memory: 128Mi 39 | 40 | serviceAccountName: 41 | 42 | nodeSelector: {} 43 | 44 | tolerations: [] 45 | 46 | affinity: {} 47 | 48 | nsqadmin: 49 | enabled: true 50 | 51 | fullnameOverride: 52 | 53 | replicaCount: 1 54 | 55 | priorityClassName: 56 | 57 | basePath: / 58 | 59 | extraArgs: [] 60 | 61 | service: 62 | type: ClusterIP 63 | annotations: 64 | port: 4171 65 | nodePort: 66 | 67 | ingress: 68 | enabled: false 69 | ## @param nsqadmin.ingress.ingressClassName Set the ingerssClassName on the ingress record for k8s 1.18+ 70 | ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster . 71 | ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/ 72 | ## 73 | ingressClassName: "" 74 | host: 75 | annotations: 76 | {} 77 | # kubernetes.io/ingress.class: nginx 78 | # kubernetes.io/tls-acme: "true" 79 | tls: [] 80 | # - secretName: chart-example-tls 81 | # hosts: 82 | # - chart-example.local 83 | 84 | podAnnotations: {} 85 | 86 | podSecurityContext: 87 | {} 88 | # fsGroup: 2000 89 | 90 | resources: 91 | {} 92 | # limits: 93 | # cpu: 100m 94 | # memory: 128Mi 95 | # requests: 96 | # cpu: 100m 97 | # memory: 128Mi 98 | 99 | serviceAccountName: 100 | 101 | nodeSelector: {} 102 | 103 | tolerations: [] 104 | 105 | affinity: {} 106 | 107 | nsqd: 108 | enabled: true 109 | 110 | fullnameOverride: 111 | 112 | replicaCount: 3 113 | 114 | priorityClassName: 115 | 116 | extraArgs: [] 117 | 118 | podManagementPolicy: Parallel 119 | 120 | podAnnotations: {} 121 | 122 | podSecurityContext: 123 | {} 124 | # fsGroup: 2000 125 | 126 | serviceAccountName: 127 | 128 | resources: 129 | {} 130 | # limits: 131 | # cpu: 100m 132 | # memory: 128Mi 133 | # requests: 134 | # cpu: 100m 135 | # memory: 128Mi 136 | 137 | nodeSelector: {} 138 | 139 | tolerations: [] 140 | 141 | affinity: {} 142 | 143 | service: 144 | type: ClusterIP 145 | annotations: 146 | 147 | persistence: 148 | enabled: true 149 | size: 1Gi 150 | storageClass: "-" 151 | accessModes: 152 | - ReadWriteOnce 153 | 154 | ## Prometheus Exporters / Metrics 155 | ## 156 | metrics: 157 | enabled: false 158 | 159 | image: 160 | registry: docker.io 161 | repository: lovoo/nsq_exporter 162 | tag: 2.0.2 163 | pullPolicy: IfNotPresent 164 | pullSecrets: [] 165 | 166 | args: [] 167 | 168 | resources: 169 | limits: {} 170 | # cpu: 100m 171 | # memory: 128Mi 172 | requests: {} 173 | # cpu: 20m 174 | # memory: 16Mi 175 | 176 | containerPort: 9117 177 | 178 | service: 179 | annotations: 180 | # Prometheus does not connect to this service directly, 181 | # instead it uses this port to connect to each target 182 | # of the service (each nsqd). 183 | # TODO: remove service and annotate pods instead? 184 | prometheus.io/scrape: "true" 185 | prometheus.io/port: "{{ .Values.metrics.containerPort }}" 186 | prometheus.io/path: "/metrics" 187 | type: ClusterIP 188 | ports: 189 | metrics: 9117 190 | extraPorts: [] 191 | 192 | livenessProbe: 193 | enabled: true 194 | initialDelaySeconds: 15 195 | periodSeconds: 5 196 | timeoutSeconds: 5 197 | failureThreshold: 3 198 | successThreshold: 1 199 | 200 | readinessProbe: 201 | enabled: true 202 | initialDelaySeconds: 5 203 | periodSeconds: 5 204 | timeoutSeconds: 1 205 | failureThreshold: 3 206 | successThreshold: 1 207 | 208 | startupProbe: 209 | enabled: false 210 | initialDelaySeconds: 5 211 | periodSeconds: 10 212 | timeoutSeconds: 5 213 | successThreshold: 1 214 | failureThreshold: 30 215 | 216 | ## Prometheus Service Monitor 217 | ## ref: https://github.com/coreos/prometheus-operator 218 | ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md 219 | ## 220 | serviceMonitor: 221 | ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using Prometheus Operator 222 | ## 223 | enabled: false 224 | ## @param metrics.serviceMonitor.namespace Namespace which Prometheus is running in 225 | ## 226 | namespace: "" 227 | ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped 228 | ## 229 | interval: 30s 230 | ## @param metrics.serviceMonitor.scrapeTimeout Specify the timeout after which the scrape is ended 231 | ## e.g: 232 | ## scrapeTimeout: 30s 233 | ## 234 | scrapeTimeout: "" 235 | ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping. 236 | ## 237 | relabelings: [] 238 | ## @param metrics.serviceMonitor.metricRelabelings MetricsRelabelConfigs to apply to samples before ingestion. 239 | ## 240 | metricRelabelings: [] 241 | ## @param metrics.serviceMonitor.labels Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with 242 | ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec 243 | ## 244 | labels: {} 245 | ## @param metrics.serviceMonitor.selector Prometheus instance selector labels 246 | ## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration 247 | ## 248 | selector: {} 249 | ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint 250 | ## 251 | honorLabels: false 252 | ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus. 253 | ## 254 | jobLabel: "" 255 | --------------------------------------------------------------------------------