-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathvalues.yaml
410 lines (352 loc) · 12.3 KB
/
values.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
# Default values for refinery.
# The Refinery configuration.
# This section allows setting all Refinery configuration options.
# Configuration values set here by default have been set based on the requirements of the chart and Kubernetes.
# See https://docs.honeycomb.io/manage-data-volume/refinery/configuration/ for full details on all fields that may be configured.
#
# Supports templating. To escape existing instances of {{ }}, use {{` <original content> `}}.
# For example, {{ REDACTED_EMAIL }} becomes {{` {{ REDACTED_EMAIL }} `}}.
config:
General:
ConfigurationVersion: 2
MinRefineryVersion: v2.0
PeerManagement:
Type: redis
# IdentifierInterfaceName specifies a network interface to use when finding a local hostname.
# Due to the nature of DNS in Kubernetes, it is recommended to set this value to the 'eth0' interface name.
# When configured the pod's IP will be used in the peer list
IdentifierInterfaceName: eth0
RedisPeerManagement:
# Host is the host and port of the Redis instance to use for peer cluster membership management.
Host: '{{include "refinery.redis.fullname" .}}:6379'
Collection:
ShutdownDelay: '{{ sub .Values.terminationGracePeriodSeconds 5 }}s'
# AvailableMemory is the amount of system memory available to the Refinery process.
AvailableMemory: '{{ .Values.resources.limits.memory }}'
MaxMemoryPercentage: 75
GRPCServerParameters:
Enabled: true
ListenAddr: 0.0.0.0:4317
PrometheusMetrics:
# Enabled controls whether to expose Refinery metrics over the `PrometheusListenAddr` port.
Enabled: true
# ListenAddr is the IP and port the Prometheus Metrics server will run on.
# Currently this helm chart expects port 9090 to be used for Refinery Prometheus metrics.
ListenAddr: 0.0.0.0:9090
RefineryTelemetry:
AddRuleReasonToTrace: true
Debugging:
AdditionalErrorFields:
- trace.span_id
# Refinery rules.
# This section allows configuring Refinery rules.
# The default value is the bare minimum Refinery requires in order to run.
# It is highly recommend to set your own rules.
# When using the operators `>`, `>=` or `!=`, indicate that they are strings by enclosing them in single quotes, like ('>=').
# See https://docs.honeycomb.io/manage-data-volume/refinery/sampling-methods/ for how to configure Refinery rules.
rules:
RulesVersion: 2
Samplers: {}
# The default sampler is used when no other sampler matches.
# It is required to have a default sampler.
# If you do not supply a default sampler the helm chart will inject
# the DeterministicSampler shown below.
# __default__:
# DeterministicSampler:
# SampleRate: 1
# RulesConfigMapName is used to override the default ConfigMap that defines the rules yaml.
# When blank, refinery is configured using the a ConfigMap based on the rules below.
# When set, refinery is configured using the rules defined in the provided ConfigMap. The ConfigMap must use rules.yaml as the key but the value can be templated.
RulesConfigMapName: ""
# LiveReload - If disabled, triggers a rolling restart of the cluster whenever
# the Rules configmap changes
LiveReload: true
configMap:
labels: {}
# my-label: some value
annotations: {}
# my-annotation: some value
rulesConfigMap:
labels: {}
# my-label: some value
annotations: {}
# my-annotation: some value
## Scaling Refinery ##
#
# Since Refinery is a stateful service we recommend provisioning refinery
# for your anticipated peak load and using Stress Relief to minimize impact
# from changes in cluster membership.
#
# Use replicaCount and resource limits to set the size of your Refinery cluster
# per your anticipated peak load.
# replicaCount is ignored if autoscaling is enabled
replicaCount: 3
resources:
limits:
cpu: 2000m
# This value is used by default for config.Collection.AvailableMemory
memory: 2Gi
requests:
cpu: 500m
memory: 500Mi
# liveness probe configuration
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
livenessProbe:
initialDelaySeconds: 5
periodSeconds: 3
timeoutSeconds: 1
failureThreshold: 3
# readiness probe configuration
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
readinessProbe:
initialDelaySeconds: 5
periodSeconds: 1
timeoutSeconds: 1
failureThreshold: 1
image:
repository: honeycombio/refinery
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
# Use this field to pass in extra arguments to the refinery command
# such as --no-validate. The chart already applies
# -c and -r so those should not be included.
extraCommandArgs: []
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
# Use to pass in additional environment variables into Refinery
# Refinery supports environment variables for some configuration options such as:
# - Honeycomb API Key used by Logger and Metrics: REFINERY_HONEYCOMB_API_KEY
# - gRPC listen address: REFINERY_GRPC_LISTEN_ADDRESS
# - Redis Host: REFINERY_REDIS_HOST
# - Redis Username: REFINERY_REDIS_USERNAME
# - Redis Password: REFINERY_REDIS_PASSWORD
environment: []
# - name: REFINERY_HONEYCOMB_API_KEY
# valueFrom:
# secretKeyRef:
# name: honeycomb
# key: api-key
# Configure container lifecycle hooks.
lifecycle: {}
# Use to map additional volumes into the Refinery pods
# Useful for volume-based secrets
extraVolumeMounts: []
# - name: honeycomb-secrets
# mountPath: "/mnt/secrets-store"
# readOnly: true
# Use to map additional volumes into the Refinery pods
extraVolumes: []
# - name: honeycomb-secrets
# csi:
# driver: secrets-store.csi.k8s.io
# readOnly: true
# volumeAttributes:
# secretProviderClass: "honeycomb-secrets"
# Common labels applied to all resources (except Redis resources).
commonLabels: {}
# my-label: some value
# Redis configuration
redis:
# To install a simple single pod Redis deployment set this to true.
# If false, you must specify a value for existingHost
# For production, it is recommended to set this to false and provide
# a highly available Redis configuration using redis.existingHost
enabled: true
# If redis.enabled is true, this the image that will be used to create
# the Redis deployment
image:
repository: redis
tag: 7.2
pullPolicy: IfNotPresent
resources: {}
# limits:
# cpu: 500m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 50Mi
# Configure container lifecycle hooks.
lifecycle: {}
# Node selector specific to installed Redis configuration. Requires redis.enabled to be true
nodeSelector: {}
# Tolerations specific to installed Redis configuration. Requires redis.enabled to be true
tolerations: []
# Affinity specific to installed Redis configuration. Requires redis.enabled to be true
affinity: {}
topologySpreadConstraints: []
annotations: {}
podAnnotations: {}
podLabels: {}
# Common labels applied to all Redis resources
commonLabels: {}
# my-label: some value
# Redis service configuration
service:
labels: {}
annotations: {}
serviceAccount:
# Specifies whether a service account should be created
create: true
labels: {}
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podLabels: {}
podAnnotations: {}
deploymentLabels: {}
deploymentAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
grpcPort: 4317
labels: {}
annotations: {}
# Set cluster IP to "None" to create a headless service.
# this can help with client side load balancing of gRPC connections.
# clusterIP: None
ingress:
enabled: false
labels: {}
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: refinery.local
path: /
tls: []
# - secretName: refinery-tls
# hosts:
# - refinery.local
grpcIngress:
enabled: false
labels: {}
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: refinery.local
path: /
tls: []
# - secretName: refinery-tls
# hosts:
# - refinery.local
# Setup autoscaling for refinery
# When autoscaling events occur, trace sharding will be recomputed. This will result in traces with missing spans being
# sent to Honeycomb, for a small period of time (approximately config.Traces.TraceTimeout * 2).
# Because of this, scaleDown is disabled by default to avoid unnecessary broken traces should traffic go up and down rapidly.
autoscaling:
enabled: false
minReplicas: 3
maxReplicas: 10
targetCPUUtilizationPercentage: 75
# targetMemoryUtilizationPercentage: 80
behavior:
scaleDown:
selectPolicy: Disabled
labels: {}
# my-label: some value
annotations: {}
# my-annotation: some value
rollout:
rollingUpdate: {}
# For a slower rollout, additional parameters can be set:
# rollingUpdate:
# maxUnavailable: 1
# maxSurge: 1
strategy: RollingUpdate
nodeSelector: {}
tolerations: []
topologySpreadConstraints: []
affinity: {}
terminationGracePeriodSeconds: 35
# PodDisruptionBudget:
#
# Limit the number of concurrent disruptions that your application experiences, allowing for higher availability while
# permitting the cluster administrator to manage the clusters nodes.
#
# See `kubectl explain poddisruptionbudget.spec` for more
# ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
podDisruptionBudget:
enabled: false
labels: {}
annotations: {}
# An eviction is allowed if at least "minAvailable" pods selected by
# "selector" will still be available after the eviction, i.e. even in the
# absence of the evicted pod. So for example you can prevent all voluntary
# evictions by specifying "100%".
# minAvailable:
# An eviction is allowed if at most "maxUnavailable" pods selected by
# "selector" are unavailable after the eviction, i.e. even in absence of the
# evicted pod. For example, one can prevent all voluntary evictions by
# specifying 0. This is a mutually exclusive setting with "minAvailable".
maxUnavailable: 1
# If you need to create a secret provider, such as for using AWS SSM, you can do so here.
# secretProvider functionality requires the Secret Store CSI Driver:
# https://secrets-store-csi-driver.sigs.k8s.io/
#
# secretProvider:
# create: true
# spec:
# provider: aws
# secretObjects:
# - secretName: refinery
# type: Opaque
# data:
# - key: yourenvironment.refinery_honeycomb_api_key
# objectName: youenvironment.refinery_honeycomb_api_key
# parameters:
# objects: |
# - objectName: yourenvironment.refinery_honeycomb_api_key
# objectType: "ssmparameter"
# name: "refinery"
secretProvider:
create: false
name: refinery
# Labels to add to the secret provider
labels: {}
# Annotations to add to the secret provider
annotations: {}
spec: {}
# When enabled, adds the -d flag to Refinery's arguments which enables the debug service.
debug:
enabled: false
# The port on which Refinery exposes the debug service.
# Only used if debug is enabled.
# This value will be used to set config.DebugServiceAddr if it is not already set.
port: 6060
# This feature is EXPERIMENTAL and subject to breaking changes
#
# When enabled, the chart will use a post-install job to create a honeycomb marker
# in the specified dataset to mark the install of the chart.
deployMarker:
enabled: false
image:
repository: honeycombio/honeymarker
pullPolicy: IfNotPresent
# Overrides the image tag whose default is latest
tag: "latest"
honeycombAPI: ""
honeycombDataset: ""
# make sure to set REFINERY_HONEYCOMB_DEPLOY_MARKER_API_KEY for sending markers to honeycomb
# For now we require an env var name `REFINERY_HONEYCOMB_DEPLOY_MARKER_API_KEY` to contain the api key
environment: {}
# - name: REFINERY_HONEYCOMB_DEPLOY_MARKER_API_KEY
# valueFrom:
# secretKeyRef:
# name: honeycombmarker
# key: api-key
volumes: []
volumeMounts: []