Skip to content

Commit 5b29432

Browse files
committed
Add agent's direcotry in k8s manifest generator (#24987)
(cherry picked from commit 8398f8b)
1 parent 71e2fe9 commit 5b29432

4 files changed

Lines changed: 125 additions & 107 deletions

File tree

deploy/kubernetes/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ALL=filebeat metricbeat auditbeat heartbeat
1+
ALL=filebeat metricbeat auditbeat heartbeat elastic-agent-standalone elastic-agent
22
BEAT_VERSION=$(shell head -n 1 ../../libbeat/docs/version.asciidoc | cut -c 17- )
33

44
.PHONY: all $(ALL)

deploy/kubernetes/elastic-agent-kubernetes.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
---
21
apiVersion: apps/v1
32
kind: DaemonSet
43
metadata:

deploy/kubernetes/elastic-agent-standalone-kubernetes.yml renamed to deploy/kubernetes/elastic-agent-standalone-kubernetes.yaml

Lines changed: 112 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,3 @@
1-
apiVersion: apps/v1
2-
kind: DaemonSet
3-
metadata:
4-
name: elastic-agent
5-
namespace: kube-system
6-
labels:
7-
app: elastic-agent
8-
spec:
9-
selector:
10-
matchLabels:
11-
app: elastic-agent
12-
template:
13-
metadata:
14-
labels:
15-
app: elastic-agent
16-
spec:
17-
tolerations:
18-
- key: node-role.kubernetes.io/master
19-
effect: NoSchedule
20-
serviceAccountName: elastic-agent
21-
hostNetwork: true
22-
dnsPolicy: ClusterFirstWithHostNet
23-
containers:
24-
- name: elastic-agent
25-
image: docker.elastic.co/beats/elastic-agent:8.0.0
26-
args: ["-c", "/etc/agent.yml", "-e"]
27-
env:
28-
- name: ES_USERNAME
29-
value: "elastic"
30-
- name: ES_PASSWORD
31-
value: ""
32-
- name: ES_HOST
33-
value: ""
34-
- name: NODE_NAME
35-
valueFrom:
36-
fieldRef:
37-
fieldPath: spec.nodeName
38-
- name: POD_NAME
39-
valueFrom:
40-
fieldRef:
41-
fieldPath: metadata.name
42-
securityContext:
43-
runAsUser: 0
44-
resources:
45-
limits:
46-
memory: 200Mi
47-
requests:
48-
cpu: 100m
49-
memory: 100Mi
50-
volumeMounts:
51-
- name: datastreams
52-
mountPath: /etc/agent.yml
53-
readOnly: true
54-
subPath: agent.yml
55-
- name: proc
56-
mountPath: /hostfs/proc
57-
readOnly: true
58-
- name: cgroup
59-
mountPath: /hostfs/sys/fs/cgroup
60-
readOnly: true
61-
- name: varlibdockercontainers
62-
mountPath: /var/lib/docker/containers
63-
readOnly: true
64-
- name: varlog
65-
mountPath: /var/log
66-
readOnly: true
67-
volumes:
68-
- name: datastreams
69-
configMap:
70-
defaultMode: 0640
71-
name: agent-node-datastreams
72-
- name: proc
73-
hostPath:
74-
path: /proc
75-
- name: cgroup
76-
hostPath:
77-
path: /sys/fs/cgroup
78-
- name: varlibdockercontainers
79-
hostPath:
80-
path: /var/lib/docker/containers
81-
- name: varlog
82-
hostPath:
83-
path: /var/log
84-
---
851
apiVersion: v1
862
kind: ConfigMap
873
metadata:
@@ -382,7 +298,7 @@ data:
382298
# condition: ${kubernetes.pod.labels.app} == 'redis'
383299
---
384300
apiVersion: apps/v1
385-
kind: Deployment
301+
kind: DaemonSet
386302
metadata:
387303
name: elastic-agent
388304
namespace: kube-system
@@ -397,11 +313,19 @@ spec:
397313
labels:
398314
app: elastic-agent
399315
spec:
316+
tolerations:
317+
- key: node-role.kubernetes.io/master
318+
effect: NoSchedule
400319
serviceAccountName: elastic-agent
320+
hostNetwork: true
321+
dnsPolicy: ClusterFirstWithHostNet
401322
containers:
402323
- name: elastic-agent
403-
image: docker.elastic.co/beats/elastic-agent:8.0.0
404-
args: ["-c", "/etc/agent.yml", "-e"]
324+
image: docker.elastic.co/beats/elastic-agent:7.11.0
325+
args: [
326+
"-c", "/etc/agent.yml",
327+
"-e",
328+
]
405329
env:
406330
- name: ES_USERNAME
407331
value: "elastic"
@@ -413,11 +337,10 @@ spec:
413337
valueFrom:
414338
fieldRef:
415339
fieldPath: spec.nodeName
416-
# this is needed because we cannot use hostNetwork
417-
- name: HOSTNAME
340+
- name: POD_NAME
418341
valueFrom:
419342
fieldRef:
420-
fieldPath: spec.nodeName
343+
fieldPath: metadata.name
421344
securityContext:
422345
runAsUser: 0
423346
resources:
@@ -431,11 +354,35 @@ spec:
431354
mountPath: /etc/agent.yml
432355
readOnly: true
433356
subPath: agent.yml
357+
- name: proc
358+
mountPath: /hostfs/proc
359+
readOnly: true
360+
- name: cgroup
361+
mountPath: /hostfs/sys/fs/cgroup
362+
readOnly: true
363+
- name: varlibdockercontainers
364+
mountPath: /var/lib/docker/containers
365+
readOnly: true
366+
- name: varlog
367+
mountPath: /var/log
368+
readOnly: true
434369
volumes:
435370
- name: datastreams
436371
configMap:
437372
defaultMode: 0640
438-
name: agent-deployment-datastreams
373+
name: agent-node-datastreams
374+
- name: proc
375+
hostPath:
376+
path: /proc
377+
- name: cgroup
378+
hostPath:
379+
path: /sys/fs/cgroup
380+
- name: varlibdockercontainers
381+
hostPath:
382+
path: /var/lib/docker/containers
383+
- name: varlog
384+
hostPath:
385+
path: /var/log
439386
---
440387
apiVersion: v1
441388
kind: ConfigMap
@@ -599,6 +546,65 @@ data:
599546
- 'kube-state-metrics:8080'
600547
period: 10s
601548
---
549+
apiVersion: apps/v1
550+
kind: Deployment
551+
metadata:
552+
name: elastic-agent
553+
namespace: kube-system
554+
labels:
555+
app: elastic-agent
556+
spec:
557+
selector:
558+
matchLabels:
559+
app: elastic-agent
560+
template:
561+
metadata:
562+
labels:
563+
app: elastic-agent
564+
spec:
565+
serviceAccountName: elastic-agent
566+
containers:
567+
- name: elastic-agent
568+
image: docker.elastic.co/beats/elastic-agent:7.11.0
569+
args: [
570+
"-c", "/etc/agent.yml",
571+
"-e",
572+
]
573+
env:
574+
- name: ES_USERNAME
575+
value: "elastic"
576+
- name: ES_PASSWORD
577+
value: ""
578+
- name: ES_HOST
579+
value: ""
580+
- name: NODE_NAME
581+
valueFrom:
582+
fieldRef:
583+
fieldPath: spec.nodeName
584+
# this is needed because we cannot use hostNetwork
585+
- name: HOSTNAME
586+
valueFrom:
587+
fieldRef:
588+
fieldPath: spec.nodeName
589+
securityContext:
590+
runAsUser: 0
591+
resources:
592+
limits:
593+
memory: 200Mi
594+
requests:
595+
cpu: 100m
596+
memory: 100Mi
597+
volumeMounts:
598+
- name: datastreams
599+
mountPath: /etc/agent.yml
600+
readOnly: true
601+
subPath: agent.yml
602+
volumes:
603+
- name: datastreams
604+
configMap:
605+
defaultMode: 0640
606+
name: agent-deployment-datastreams
607+
---
602608
apiVersion: rbac.authorization.k8s.io/v1
603609
kind: ClusterRoleBinding
604610
metadata:
@@ -613,6 +619,20 @@ roleRef:
613619
apiGroup: rbac.authorization.k8s.io
614620
---
615621
apiVersion: rbac.authorization.k8s.io/v1
622+
kind: RoleBinding
623+
metadata:
624+
namespace: kube-system
625+
name: elastic-agent
626+
subjects:
627+
- kind: ServiceAccount
628+
name: elastic-agent
629+
namespace: kube-system
630+
roleRef:
631+
kind: Role
632+
name: elastic-agent
633+
apiGroup: rbac.authorization.k8s.io
634+
---
635+
apiVersion: rbac.authorization.k8s.io/v1
616636
kind: ClusterRole
617637
metadata:
618638
name: elastic-agent
@@ -654,20 +674,6 @@ rules:
654674
- get
655675
---
656676
apiVersion: rbac.authorization.k8s.io/v1
657-
kind: RoleBinding
658-
metadata:
659-
namespace: kube-system
660-
name: elastic-agent
661-
subjects:
662-
- kind: ServiceAccount
663-
name: elastic-agent
664-
namespace: kube-system
665-
roleRef:
666-
kind: Role
667-
name: elastic-agent
668-
apiGroup: rbac.authorization.k8s.io
669-
---
670-
apiVersion: rbac.authorization.k8s.io/v1
671677
kind: Role
672678
metadata:
673679
name: elastic-agent
@@ -688,3 +694,4 @@ metadata:
688694
namespace: kube-system
689695
labels:
690696
k8s-app: elastic-agent
697+
---

deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-daemonset.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ spec:
6161
- name: cgroup
6262
mountPath: /hostfs/sys/fs/cgroup
6363
readOnly: true
64+
- name: varlibdockercontainers
65+
mountPath: /var/lib/docker/containers
66+
readOnly: true
67+
- name: varlog
68+
mountPath: /var/log
69+
readOnly: true
6470
volumes:
6571
- name: datastreams
6672
configMap:
@@ -72,3 +78,9 @@ spec:
7278
- name: cgroup
7379
hostPath:
7480
path: /sys/fs/cgroup
81+
- name: varlibdockercontainers
82+
hostPath:
83+
path: /var/lib/docker/containers
84+
- name: varlog
85+
hostPath:
86+
path: /var/log

0 commit comments

Comments
 (0)