-
Notifications
You must be signed in to change notification settings - Fork 217
/
Copy pathvalues.yaml
340 lines (301 loc) · 12.1 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
# IMPORTANT: Specify your New Relic API key here.
# licenseKey:
#
# Optionally, specify a cluster name and log records can
# be filtered by cluster.
# Cluster name is required to be set in order to create relationship with Daemonset entity in NR platform.
#
# cluster:
# or Specify secret which contains New Relic API key
# customSecretName: secret_name
# customSecretLicenseKey: secret_key
#
# The previous values can also be set as global so that they
# can be shared by other newrelic product's charts
#
# global:
# licenseKey:
# cluster:
# customSecretName:
# customSecretLicenseKey:
#
# IMPORTANT: if you use a kubernetes secret to specify the license,
# you have to manually provide the correct endpoint depending on
# whether your account is for the EU region or not.
#
# endpoint: https://log-api.newrelic.com/log/v1
# metricsEndpoint: metric-api.newrelic.com
fluentBit:
logLevel: "info"
path: "/var/log/containers/*.log"
linuxMountPath: /var
windowsPath: "C:\\var\\log\\containers\\*.log"
db: "/var/log/flb_kube.db"
windowsDb: "C:\\var\\log\\flb_kube.db"
criEnabled: true
k8sBufferSize: "32k"
k8sLoggingExclude: "false"
retryLimit: 5
# Configuration for sending custom metrics of New relic Fluent Bit output plugin.
# Note: Fluent Bit's internal metrics are sent automatically and are not affected by this setting from newrelic-logging chart version 1.24.0.
# For more information on Fluent Bit monitoring, visit:
# https://docs.fluentbit.io/manual/administration/monitoring
sendMetrics: false
extraEnv: []
# extraEnv:
# - name: HTTPS_PROXY
# value: http://example.com:3128
# - name: METADATA_NAME
# valueFrom:
# fieldRef:
# fieldPath: metadata.name
# Indicates how fluent-bit database is persisted
persistence:
# Define the persistent mode for fluent-bit db, allowed options are `hostPath` (default), `none`, `persistentVolume`.
# - `hostPath` will use hostPath to store the db file on the node disk.
# - `none` will disable the fluent-bit db file, this could cause log duplication or data loss in case fluent-bit gets restarted.
# - `persistentVolume` will use a ReadWriteMany persistent volume to store the db file. This will override `fluentBit.db` path and use `/db/${NODE_NAME}-fb.db` file instead.
mode: "hostPath"
# In case persistence.mode is set to persistentVolume this will be needed
persistentVolume:
# The storage class should allow ReadWriteMany mode
storageClass:
# Volume and claim size.
size: 10Gi
# If dynamicProvisioning is enabled the chart will create only the PersistentVolumeClaim
dynamicProvisioning: true
# If an existingVolume is provided, we'll use it instead creating a new one
existingVolume:
# If an existingVolumeClaim is provided, we'll use it instead creating a new one
existingVolumeClaim:
# In case you need to add annotations to the created volume or claim
annotations:
volume: {}
claim: {}
# In case you need to specify any other option to your volume or claim
extra:
volume:
# nfs:
# path: /tmp/
# server: 1.1.1.1
claim: {}
# New Relic default configuration for fluent-bit.conf (service, inputs, filters, outputs)
# and parsers.conf (parsers). The configuration below is not configured for lowDataMode and will
# send all attributes. If custom configuration is required, update these variables.
config:
# Note that Prometheus metric collection needs the HTTP server to be online at port 2020 (see fluentBit.config.metricInstrumentation)
service: |
[SERVICE]
Flush 1
Log_Level ${LOG_LEVEL}
Daemon off
Parsers_File parsers.conf
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port 2020
inputs: |
[INPUT]
Name tail
Alias pod-logs-tailer
Tag kube.*
Path ${PATH}
multiline.parser ${LOG_PARSER}
DB ${FB_DB}
Mem_Buf_Limit 7MB
Skip_Long_Lines On
Refresh_Interval 10
# extraInputs: |
# [INPUT]
# Name dummy
# Tag dummy.log
filters: |
[FILTER]
Name kubernetes
Alias kubernetes-enricher
Match kube.*
# We need the full DNS suffix as Windows only supports resolving names with this suffix
# See: https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#dns-limitations
Kube_URL https://kubernetes.default.svc.cluster.local:443
Buffer_Size ${K8S_BUFFER_SIZE}
K8S-Logging.Exclude ${K8S_LOGGING_EXCLUDE}
[FILTER]
Name record_modifier
Alias node-attributes-enricher
Match *
Record cluster_name "${CLUSTER_NAME}"
# extraFilters: |
# [FILTER]
# Name grep
# Match *
# Exclude log lvl=debug*
lowDataModeFilters: |
[FILTER]
Name kubernetes
Match kube.*
Alias kubernetes-enricher
# We need the full DNS suffix as Windows only supports resolving names with this suffix
# See: https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#dns-limitations
Kube_URL https://kubernetes.default.svc.cluster.local:443
Buffer_Size ${K8S_BUFFER_SIZE}
K8S-Logging.Exclude ${K8S_LOGGING_EXCLUDE}
Labels Off
Annotations Off
[FILTER]
Name nest
Match *
Alias kubernetes-attribute-lifter
Operation lift
Nested_under kubernetes
[FILTER]
Name record_modifier
Match *
Alias node-attributes-enricher-filter
Record cluster_name "${CLUSTER_NAME}"
Allowlist_key container_name
Allowlist_key namespace_name
Allowlist_key pod_name
Allowlist_key stream
Allowlist_key message
Allowlist_key log
outputs: |
[OUTPUT]
Name newrelic
Match *
Alias newrelic-logs-forwarder
licenseKey ${LICENSE_KEY}
endpoint ${ENDPOINT}
lowDataMode ${LOW_DATA_MODE}
sendMetrics ${SEND_OUTPUT_PLUGIN_METRICS}
Retry_Limit ${RETRY_LIMIT}
# extraOutputs: |
# [OUTPUT]
# Name null
# Match *
# parsers: |
# [PARSER]
# Name my_custom_parser
# Format json
# Time_Key time
# Time_Format %Y-%m-%dT%H:%M:%S.%L
# Time_Keep On
image:
repository: newrelic/newrelic-fluentbit-output
# registry: my_registry
tag: ""
pullPolicy: IfNotPresent
## See https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
pullSecrets: []
# - name: regsecret
# By default, the Linux DaemonSet will always be deployed, while the Windows DaemonSet(s) won't.
enableLinux: true
enableWindows: false
# For every entry in this Windows OS list, we will create an independent DaemonSet which will get deployed
# on Windows nodes running each specific Windows version and build number. Note that
# Windows containers can only be executed on hosts running the exact same Windows version and build number,
# because Kubernetes only supports process isolation and not Hyper-V isolation (as of September 2021)
windowsOsList:
# We aim to support (limited to LTSC2019/LTSC2022 using GitHub actions, see https://github.com/actions/runner-images/tree/main/images/win):
# https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#windows-os-version-support
- version: ltsc2019
imageTagSuffix: windows-ltsc-2019
buildNumber: 10.0.17763
- version: ltsc2022
imageTagSuffix: windows-ltsc-2022
buildNumber: 10.0.20348
# Default set of resources assigned to the DaemonSet pods
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 250m
memory: 64Mi
rbac:
# Specifies whether RBAC resources should be created
create: true
pspEnabled: false
serviceAccount:
# Specifies whether a ServiceAccount should be created
create:
# The name of the ServiceAccount to use.
# If not set and create is true, a name is generated using the fullname template
name:
# Specify any annotations to add to the ServiceAccount
annotations: {}
# Optionally configure ports to expose metrics on /api/v1/metrics/prometheus
# See - https://docs.fluentbit.io/manual/administration/monitoring
exposedPorts: []
# - containerPort: 2020
# hostPort: 2020
# name: metrics
# protocol: TCP
# If you wish to provide additional labels to apply to the pod(s), specify
# them here
# podLabels:
# Pod scheduling priority
# Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
# priorityClassName: high-priority
# Node affinity rules
# Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
#
# IMPORTANT #
# ######### #
# When .Values.global.fargate == true, the chart will automatically add the required affinity rules to exclude
# the DaemonSet from Fargate nodes. There is no need to manually touch this property achieve this.
# This automatic exclusion will, however, not take place if this value is overridden: Setting this to a
# non-empty value WHEN deploying in EKS Fargate (global.fargate == true) requires the user to manually
# include in their custom ruleset an exclusion for nodes with "eks.amazonaws.com/compute-type: fargate", as
# the New Relic DaemonSet MUST NOT be deployed on fargate nodes, as the operator takes care of injecting it
# as a sidecar instead.
# Please refer to the daemonset.yaml template for more details on how to achieve this.
nodeAffinity: {}
# Node labels for pod assignment
# Ref: https://kubernetes.io/docs/user-guide/node-selection/
# Note that the Linux DaemonSet already contains a node selector label based on their OS (kubernetes.io/os: linux).
nodeSelector: {}
# Note that the Windows DaemonSet already contains a node selector label based on their OS (kubernetes.io/os: windows).
# and build number (node.kubernetes.io/windows-build: {{ .buildNumber }}, to ensure that each version of the DaemonSet
# gets deployed only on those Windows nodes running the exact same Windows version and build number. Note that
# Windows containers can only be executed on hosts running the exact same Windows version and build number.
windowsNodeSelector: {}
# These are default tolerations to be able to run the New Relic Kubernetes integration.
tolerations:
- operator: "Exists"
effect: "NoSchedule"
- operator: "Exists"
effect: "NoExecute"
updateStrategy: RollingUpdate
# Sends data to staging, can be set as a global.
# global.nrStaging
nrStaging: false
daemonSet:
# Annotations to add to the DaemonSet.
annotations: {}
# Annotations to add to the resulting Pods of the DaemonSet.
podAnnotations: {}
# If host network should be enabled for fluentbit pods.
# There are some inputs like UDP which will require this setting to be true as they need to bind to the host network.
hostNetwork:
# When low data mode is enabled only minimal attributes are added to the logs. Kubernetes labels and
# annotations are not included. The plugin.type, plugin.version and plugin.source attributes are minified
# into the plugin.source attribute.
# Can be set as a global: global.lowDataMode
# lowDataMode: false
extraVolumes: []
# - name: systemdlog
# hostPath:
# path: /run/log/journal
extraVolumeMounts: []
# - name: systemdlog
# mountPath: /run/log/journal
initContainers:
# - name: init
# image: busybox
# command: ["sh", "-c", 'echo "hello world"']
windows:
initContainers:
# - name: init
# image: ...
# command: [...]
# -- Sets pod dnsConfig. Can also be configured with `global.dnsConfig`
dnsConfig: {}