DirectorySecurity AdvisoriesPricing
Sign in
Directory
prometheus-pushgateway logoHELM

prometheus-pushgateway

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart versions
Default values
Chart metadata
Images

Tag:
Compare:

1
# Default values for prometheus-pushgateway.
2
# This is a YAML-formatted file.
3
# Declare variables to be passed into your templates.
4
5
global:
6
imageRegistry: ""
7
imagePullSecrets: []
8
# Provide a name in place of prometheus-pushgateway for `app:` labels
9
nameOverride: ""
10
# Provide a name to substitute for the full names of resources
11
fullnameOverride: ""
12
# Provide a namespace to substitute for the namespace on resources
13
namespaceOverride: ""
14
image:
15
registry: ""
16
repository: cgr.dev/chainguard-private/prometheus-pushgateway
17
# if not set appVersion field from Chart.yaml is used
18
tag: 1.11.3-r9@sha256:3f3b810ef8a51ad33fde790a2b31eaef1f2d9e75753f7a011a6f2e4232cff400
19
pullPolicy: IfNotPresent
20
# Optional pod imagePullSecrets
21
imagePullSecrets: []
22
service:
23
type: ClusterIP
24
port: 9091
25
targetPort: 9091
26
# nodePort: 32100
27
portName: http
28
# Optional - Can be used for headless if value is "None"
29
clusterIP: ""
30
ipDualStack:
31
enabled: false
32
ipFamilies: ["IPv6", "IPv4"]
33
ipFamilyPolicy: "PreferDualStack"
34
loadBalancerIP: ""
35
loadBalancerSourceRanges: []
36
# Whether to automatically mount a service account token into the pod
37
automountServiceAccountToken: true
38
# Optional deployment annotations
39
deploymentAnnotations: {}
40
# Optional pod annotations
41
podAnnotations: {}
42
# Optional pod labels
43
podLabels: {}
44
# Optional service annotations
45
serviceAnnotations: {}
46
# Optional service labels
47
serviceLabels: {}
48
# Optional serviceAccount labels
49
serviceAccountLabels: {}
50
# Optional persistentVolume labels
51
persistentVolumeLabels: {}
52
# Optional additional environment variables
53
extraVars: []
54
## Additional pushgateway container arguments
55
##
56
## example:
57
## extraArgs:
58
## - --persistence.file=/data/pushgateway.data
59
## - --persistence.interval=5m
60
extraArgs: []
61
## Additional InitContainers to initialize the pod
62
##
63
extraInitContainers: []
64
# Optional additional containers (sidecar)
65
extraContainers: []
66
# - name: oAuth2-proxy
67
# args:
68
# - -https-address=:9092
69
# - -upstream=http://localhost:9091
70
# - -skip-auth-regex=^/metrics
71
# - -openshift-delegate-urls={"/":{"group":"monitoring.coreos.com","resource":"prometheuses","verb":"get"}}
72
# image: openshift/oauth-proxy:v1.1.0
73
# ports:
74
# - containerPort: 9092
75
# name: proxy
76
# resources:
77
# limits:
78
# memory: 16Mi
79
# requests:
80
# memory: 4Mi
81
# cpu: 20m
82
# volumeMounts:
83
# - mountPath: /etc/prometheus/secrets/pushgateway-tls
84
# name: secret-pushgateway-tls
85
86
resources: {}
87
# We usually recommend not to specify default resources and to leave this as a conscious
88
# choice for the user. This also increases chances charts run on environments with little
89
# resources, such as Minikube. If you do want to specify resources, uncomment the following
90
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
91
# limits:
92
# cpu: 200m
93
# memory: 50Mi
94
# requests:
95
# cpu: 100m
96
# memory: 30Mi
97
98
# -- Sets web configuration
99
# To enable basic authentication, provide basicAuthUsers as a map
100
# If serviceMonitor.enabled is set, a secret with these credentials will be created
101
# and configured in serviceMonitor. serviceMonitor.basicAuth overrides this secret.
102
webConfiguration: {}
103
# basicAuthUsers:
104
# username: password
105
#
106
# Alternatively, reference an existing Secret that already holds the web
107
# configuration (e.g. managed by Sealed Secrets, Vault, ...) so that no
108
# credentials are kept in plaintext here. The Secret must contain a key named
109
# web-config.yaml, the file name Pushgateway expects. When existingSecret is
110
# set the chart-managed web-config Secret is not rendered, and the liveness and
111
# readiness probes switch to a tcpSocket check, because the chart cannot read
112
# the credentials to authenticate HTTP probes.
113
# existingSecret:
114
# name: pushgateway-web-config
115
116
liveness:
117
enabled: true
118
probe:
119
httpGet:
120
path: /-/healthy
121
port: 9091
122
scheme: HTTP
123
initialDelaySeconds: 10
124
timeoutSeconds: 10
125
readiness:
126
enabled: true
127
probe:
128
httpGet:
129
path: /-/ready
130
port: 9091
131
scheme: HTTP
132
initialDelaySeconds: 10
133
timeoutSeconds: 10
134
serviceAccount:
135
# Specifies whether a ServiceAccount should be created
136
create: true
137
# The name of the ServiceAccount to use.
138
# If not set and create is true, a name is generated using the fullname template
139
name:
140
## Configure ingress resource that allow you to access the
141
## pushgateway installation. Set up the URL
142
## ref: http://kubernetes.io/docs/user-guide/ingress/
143
##
144
ingress:
145
## Enable Ingress.
146
##
147
enabled: false
148
# AWS ALB requires path of /*
149
className: ""
150
path: /
151
pathType: ImplementationSpecific
152
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
153
extraPaths: []
154
# - path: /*
155
# backend:
156
# serviceName: ssl-redirect
157
# servicePort: use-annotation
158
## Annotations.
159
##
160
# annotations:
161
# kubernetes.io/ingress.class: nginx
162
# kubernetes.io/tls-acme: 'true'
163
164
## Hostnames.
165
## Must be provided if Ingress is enabled.
166
##
167
# hosts:
168
# - pushgateway.domain.com
169
170
## TLS configuration.
171
## Secrets must be manually created in the namespace.
172
##
173
# tls:
174
# - secretName: pushgateway-tls
175
# hosts:
176
# - pushgateway.domain.com
177
178
## route (map) allows configuration of HTTPRoute resources
179
## Requires Gateway API resources and suitable controller installed within the cluster
180
## Ref. https://gateway-api.sigs.k8s.io/guides/http-routing/
181
route:
182
main:
183
## Enable this route
184
enabled: false
185
## ApiVersion set by default to "gateway.networking.k8s.io/v1"
186
apiVersion: ""
187
## kind set by default to HTTPRoute
188
kind: ""
189
## Optional name for the default rule in the rendered HTTPRoute.
190
name: ""
191
## Annotations to attach to the HTTPRoute resource
192
annotations: {}
193
## Labels to attach to the HTTPRoute resource
194
labels: {}
195
## ParentRefs refers to resources this HTTPRoute is to be attached to (Gateways)
196
parentRefs: []
197
# - name: contour
198
# sectionName: http
199
200
## Hostnames (templated) defines a set of hostnames that should match against the HTTP Host
201
## header to select a HTTPRoute used to process the request
202
hostnames: []
203
# - my.example.com
204
205
## additionalRules (templated) allows adding custom rules to the route
206
additionalRules: []
207
## Filters define the filters that are applied to requests that match
208
## this rule
209
filters: []
210
## Matches define conditions used for matching the rule against incoming
211
## HTTP requests
212
matches:
213
- path:
214
type: PathPrefix
215
value: /
216
## SessionPersistence defines and configures session persistence for the rule,
217
## e.g. to keep a client on the same replica
218
## Ref. https://gateway-api.sigs.k8s.io/geps/gep-1619/
219
sessionPersistence: {}
220
# sessionName: pushgateway-session
221
# type: Cookie
222
# absoluteTimeout: 24h
223
# cookieConfig:
224
# lifetimeType: Permanent
225
226
## httpsRedirect adds a filter for redirecting to https (HTTP 301 Moved Permanently).
227
## To redirect HTTP traffic to HTTPS, you need to have a Gateway with both HTTP and HTTPS listeners.
228
## Matches, filters and session persistence do not take effect if enabled.
229
## Ref. https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/
230
httpsRedirect: false
231
tolerations: []
232
# - effect: NoSchedule
233
# operator: Exists
234
235
## Node labels for pushgateway pod assignment
236
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
237
##
238
nodeSelector: {}
239
replicaCount: 1
240
hostAliases: []
241
# - ip: "127.0.0.1"
242
# hostnames:
243
# - "foo.local"
244
# - "bar.local"
245
# - ip: "10.1.2.3"
246
# hostnames:
247
# - "foo.remote"
248
# - "bar.remote"
249
250
## When running more than one replica alongside with persistence, different volumes are needed
251
## per replica, since sharing a `persistence.file` across replicas does not keep metrics synced.
252
## For this purpose, you can enable the `runAsStatefulSet` to deploy the pushgateway as a
253
## StatefulSet instead of as a Deployment.
254
runAsStatefulSet: false
255
## Security context to be added to push-gateway pods
256
##
257
securityContext:
258
fsGroup: 65534
259
runAsUser: 65534
260
runAsNonRoot: true
261
## Security context to be added to push-gateway containers
262
## Having a separate variable as securityContext differs for pods and containers.
263
containerSecurityContext: {}
264
# allowPrivilegeEscalation: false
265
# readOnlyRootFilesystem: true
266
# runAsUser: 65534
267
# runAsNonRoot: true
268
269
## Affinity for pod assignment
270
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
271
affinity: {}
272
## Pod anti-affinity can prevent the scheduler from placing pushgateway replicas on the same node.
273
## The value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
274
## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
275
## The default value "" will disable pod anti-affinity so that no anti-affinity rules will be configured (unless set in `affinity`).
276
##
277
podAntiAffinity: ""
278
## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
279
## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
280
##
281
podAntiAffinityTopologyKey: kubernetes.io/hostname
282
## Topology spread constraints for pods
283
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
284
topologySpreadConstraints: []
285
# Enable this if you're using https://github.com/coreos/prometheus-operator
286
serviceMonitor:
287
enabled: false
288
namespace: monitoring
289
# telemetryPath: HTTP resource path from which to fetch metrics.
290
# Telemetry path, default /metrics, has to be prefixed accordingly if pushgateway sets a route prefix at start-up.
291
#
292
telemetryPath: "/metrics"
293
# Fallback to the prometheus default unless specified
294
interval: ""
295
## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
296
scheme: ""
297
## Basic authentication
298
basicAuth: {}
299
## Bearer token file
300
bearerTokenFile: ""
301
## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
302
## Of type: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#tlsconfig
303
tlsConfig: {}
304
# bearerTokenFile:
305
# Fallback to the prometheus default unless specified
306
scrapeTimeout: ""
307
## Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with
308
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
309
additionalLabels: {}
310
# Retain the job and instance labels of the metrics pushed to the Pushgateway
311
# [Scraping Pushgateway](https://github.com/prometheus/pushgateway#configure-the-pushgateway-as-a-target-to-scrape)
312
honorLabels: true
313
## Metric relabel configs to apply to samples before ingestion.
314
## [Metric Relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs)
315
metricRelabelings: []
316
# - action: keep
317
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
318
# sourceLabels: [__name__]
319
320
## Relabel configs to apply to samples before ingestion.
321
## [Relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config)
322
relabelings: []
323
# - sourceLabels: [__meta_kubernetes_pod_node_name]
324
# separator: ;
325
# regex: ^(.*)$
326
# targetLabel: nodename
327
# replacement: $1
328
# action: replace
329
# The values to set in the PodDisruptionBudget spec (minAvailable/maxUnavailable)
330
# If not set then a PodDisruptionBudget will not be created
331
podDisruptionBudget: {}
332
priorityClassName:
333
# Deployment Strategy type
334
strategy:
335
type: Recreate
336
persistentVolume:
337
## If true, pushgateway will create/use a Persistent Volume Claim
338
## If false, use emptyDir
339
##
340
enabled: false
341
## pushgateway data Persistent Volume access modes
342
## Must match those of existing PV or dynamic provisioner
343
## Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
344
##
345
accessModes:
346
- ReadWriteOnce
347
## pushgateway data Persistent Volume Claim annotations
348
##
349
annotations: {}
350
## pushgateway data Persistent Volume existing claim name
351
## Requires pushgateway.persistentVolume.enabled: true
352
## If defined, PVC must be created manually before volume will be bound
353
existingClaim: ""
354
## pushgateway data Persistent Volume mount root path
355
##
356
mountPath: /data
357
## pushgateway data Persistent Volume size
358
##
359
size: 2Gi
360
## pushgateway data Persistent Volume Storage Class
361
## If defined, storageClassName: <storageClass>
362
## If set to "-", storageClassName: "", which disables dynamic provisioning
363
## If undefined (the default) or set to null, no storageClassName spec is
364
## set, choosing the default provisioner. (gp2 on AWS, standard on
365
## GKE, AWS & OpenStack)
366
##
367
# storageClass: "-"
368
369
## Subdirectory of pushgateway data Persistent Volume to mount
370
## Useful if the volume's root directory is not empty
371
##
372
subPath: ""
373
## pushgateway data EmptyDir configuration,
374
## used when pushgateway.persistentVolume.enabled: false
375
##
376
emptyDir: {}
377
extraVolumes: []
378
# - name: extra
379
# emptyDir: {}
380
extraVolumeMounts: []
381
# - name: extra
382
# mountPath: /usr/share/extras
383
# readOnly: true
384
385
# Configuration for clusters with restrictive network policies in place:
386
# - allowAll allows access to the PushGateway from any namespace
387
# - customSelector is a list of pod/namespaceSelectors to allow access from
388
# These options are mutually exclusive and the latter will take precedence.
389
networkPolicy: {}
390
# allowAll: true
391
# customSelectors:
392
# - namespaceSelector:
393
# matchLabels:
394
# type: admin
395
# - podSelector:
396
# matchLabels:
397
# app: myapp
398
399
# Array of extra K8s objects to deploy (evaluated as a template)
400
# The value can hold an array of strings as well as objects
401
extraManifests: []
402
# Lifecycle hooks configuration
403
lifecycle: {}
404
# preStop:
405
# exec:
406
# command: ["/bin/sh", "-c", "sleep 30"]
407

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.