-
Notifications
You must be signed in to change notification settings - Fork 5k
Add agent fleet enrolment k8s manifest #26566
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
67f8962
4d526ec
fefeb93
08e9149
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,209 @@ | ||
| apiVersion: apps/v1 | ||
| kind: DaemonSet | ||
| metadata: | ||
| name: elastic-agent | ||
| namespace: kube-system | ||
| labels: | ||
| app: elastic-agent | ||
| spec: | ||
| selector: | ||
| matchLabels: | ||
| app: elastic-agent | ||
| template: | ||
| metadata: | ||
| labels: | ||
| app: elastic-agent | ||
| spec: | ||
| tolerations: | ||
| - key: node-role.kubernetes.io/master | ||
| effect: NoSchedule | ||
| serviceAccountName: elastic-agent | ||
| hostNetwork: true | ||
| dnsPolicy: ClusterFirstWithHostNet | ||
| containers: | ||
| - name: elastic-agent | ||
| image: docker.elastic.co/beats/elastic-agent:8.0.0 | ||
| env: | ||
| - name: FLEET_ENROLL | ||
| value: "1" | ||
| # Set to true in case of insecure or unverified HTTP | ||
| - name: FLEET_INSECURE | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm worried about this,
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If the fleet server is deployed in elastic cloud or in a cloud with trusted CA then FLEET_INSECURE can be false which is default value.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for clarifying, I think we are ok for now and we can iterate on it later if we see requests for that. |
||
| value: false | ||
| # The ip:port pair of fleet server | ||
| - name: FLEET_URL | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we add a description in a comment about this var and maybe a sample value (in the comment)? I expect users having difficulties in recognising what value they should put here.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Description added. The weird part on the url is that the port is not implied by the protocol and it must be added in the end. |
||
| value: "https://fleet-server:8220" | ||
| - name: KIBANA_HOST | ||
| value: "http://kibana:5601" | ||
| - name: KIBANA_FLEET_USERNAME | ||
| value: "elastic" | ||
| - name: KIBANA_FLEET_PASSWORD | ||
| value: "" | ||
| - name: NODE_NAME | ||
| valueFrom: | ||
| fieldRef: | ||
| fieldPath: spec.nodeName | ||
| - name: POD_NAME | ||
| valueFrom: | ||
| fieldRef: | ||
| fieldPath: metadata.name | ||
| securityContext: | ||
| runAsUser: 0 | ||
| resources: | ||
| limits: | ||
| memory: 200Mi | ||
| requests: | ||
| cpu: 100m | ||
| memory: 100Mi | ||
| volumeMounts: | ||
| - name: proc | ||
| mountPath: /hostfs/proc | ||
| readOnly: true | ||
| - name: cgroup | ||
| mountPath: /hostfs/sys/fs/cgroup | ||
| readOnly: true | ||
| - name: varlibdockercontainers | ||
| mountPath: /var/lib/docker/containers | ||
| readOnly: true | ||
| - name: varlog | ||
| mountPath: /var/log | ||
| readOnly: true | ||
| volumes: | ||
| - name: proc | ||
| hostPath: | ||
| path: /proc | ||
| - name: cgroup | ||
| hostPath: | ||
| path: /sys/fs/cgroup | ||
| - name: varlibdockercontainers | ||
| hostPath: | ||
| path: /var/lib/docker/containers | ||
| - name: varlog | ||
| hostPath: | ||
| path: /var/log | ||
| --- | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: ClusterRoleBinding | ||
| metadata: | ||
| name: elastic-agent | ||
| subjects: | ||
| - kind: ServiceAccount | ||
| name: elastic-agent | ||
| namespace: kube-system | ||
| roleRef: | ||
| kind: ClusterRole | ||
| name: elastic-agent | ||
| apiGroup: rbac.authorization.k8s.io | ||
| --- | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: RoleBinding | ||
| metadata: | ||
| namespace: kube-system | ||
| name: elastic-agent | ||
| subjects: | ||
| - kind: ServiceAccount | ||
| name: elastic-agent | ||
| namespace: kube-system | ||
| roleRef: | ||
| kind: Role | ||
| name: elastic-agent | ||
| apiGroup: rbac.authorization.k8s.io | ||
| --- | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: RoleBinding | ||
| metadata: | ||
| name: elastic-agent-kubeadm-config | ||
| namespace: kube-system | ||
| subjects: | ||
| - kind: ServiceAccount | ||
| name: elastic-agent | ||
| namespace: kube-system | ||
| roleRef: | ||
| kind: Role | ||
| name: elastic-agent-kubeadm-config | ||
| apiGroup: rbac.authorization.k8s.io | ||
| --- | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: ClusterRole | ||
| metadata: | ||
| name: elastic-agent | ||
| labels: | ||
| k8s-app: elastic-agent | ||
| rules: | ||
| - apiGroups: [""] | ||
| resources: | ||
| - nodes | ||
| - namespaces | ||
| - events | ||
| - pods | ||
| - services | ||
| - configmaps | ||
| verbs: ["get", "list", "watch"] | ||
| # Enable this rule only if planing to use kubernetes_secrets provider | ||
| #- apiGroups: [""] | ||
| # resources: | ||
| # - secrets | ||
| # verbs: ["get"] | ||
| - apiGroups: ["extensions"] | ||
|
ChrsMark marked this conversation as resolved.
|
||
| resources: | ||
| - replicasets | ||
| verbs: ["get", "list", "watch"] | ||
| - apiGroups: ["apps"] | ||
| resources: | ||
| - statefulsets | ||
| - deployments | ||
| - replicasets | ||
| verbs: ["get", "list", "watch"] | ||
| - apiGroups: | ||
| - "" | ||
| resources: | ||
| - nodes/stats | ||
| verbs: | ||
| - get | ||
| - apiGroups: [ "batch" ] | ||
| resources: | ||
| - jobs | ||
| verbs: [ "get", "list", "watch" ] | ||
| # required for apiserver | ||
| - nonResourceURLs: | ||
| - "/metrics" | ||
| verbs: | ||
| - get | ||
| --- | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: Role | ||
| metadata: | ||
| name: elastic-agent | ||
| # should be the namespace where elastic-agent is running | ||
| namespace: kube-system | ||
| labels: | ||
| k8s-app: elastic-agent | ||
| rules: | ||
| - apiGroups: | ||
| - coordination.k8s.io | ||
| resources: | ||
| - leases | ||
| verbs: ["get", "create", "update"] | ||
| --- | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: Role | ||
| metadata: | ||
| name: elastic-agent-kubeadm-config | ||
| namespace: kube-system | ||
| labels: | ||
| k8s-app: elastic-agent | ||
| rules: | ||
| - apiGroups: [""] | ||
| resources: | ||
| - configmaps | ||
| resourceNames: | ||
| - kubeadm-config | ||
| verbs: ["get"] | ||
| --- | ||
| apiVersion: v1 | ||
| kind: ServiceAccount | ||
| metadata: | ||
| name: elastic-agent | ||
| namespace: kube-system | ||
| labels: | ||
| k8s-app: elastic-agent | ||
| --- | ||
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
| @@ -0,0 +1,82 @@ | ||||
| apiVersion: apps/v1 | ||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||||
| kind: DaemonSet | ||||
| metadata: | ||||
| name: elastic-agent | ||||
| namespace: kube-system | ||||
| labels: | ||||
| app: elastic-agent | ||||
| spec: | ||||
| selector: | ||||
| matchLabels: | ||||
| app: elastic-agent | ||||
| template: | ||||
| metadata: | ||||
| labels: | ||||
| app: elastic-agent | ||||
| spec: | ||||
| tolerations: | ||||
| - key: node-role.kubernetes.io/master | ||||
| effect: NoSchedule | ||||
| serviceAccountName: elastic-agent | ||||
| hostNetwork: true | ||||
| dnsPolicy: ClusterFirstWithHostNet | ||||
| containers: | ||||
| - name: elastic-agent | ||||
| image: docker.elastic.co/beats/elastic-agent:8.0.0 | ||||
| env: | ||||
| - name: FLEET_ENROLL | ||||
| value: "1" | ||||
| # Set to true in case of insecure or unverified HTTP | ||||
| - name: FLEET_INSECURE | ||||
| value: false | ||||
| # The ip:port pair of fleet server | ||||
| - name: FLEET_URL | ||||
| value: "https://fleet-server:8220" | ||||
| - name: KIBANA_HOST | ||||
| value: "http://kibana:5601" | ||||
| - name: KIBANA_FLEET_USERNAME | ||||
| value: "elastic" | ||||
| - name: KIBANA_FLEET_PASSWORD | ||||
| value: "" | ||||
| - name: NODE_NAME | ||||
| valueFrom: | ||||
| fieldRef: | ||||
| fieldPath: spec.nodeName | ||||
| - name: POD_NAME | ||||
| valueFrom: | ||||
| fieldRef: | ||||
| fieldPath: metadata.name | ||||
| securityContext: | ||||
| runAsUser: 0 | ||||
| resources: | ||||
| limits: | ||||
| memory: 200Mi | ||||
| requests: | ||||
| cpu: 100m | ||||
| memory: 100Mi | ||||
| volumeMounts: | ||||
| - name: proc | ||||
| mountPath: /hostfs/proc | ||||
| readOnly: true | ||||
| - name: cgroup | ||||
| mountPath: /hostfs/sys/fs/cgroup | ||||
| readOnly: true | ||||
| - name: varlibdockercontainers | ||||
| mountPath: /var/lib/docker/containers | ||||
| readOnly: true | ||||
| - name: varlog | ||||
| mountPath: /var/log | ||||
| readOnly: true | ||||
| volumes: | ||||
| - name: proc | ||||
| hostPath: | ||||
| path: /proc | ||||
| - name: cgroup | ||||
| hostPath: | ||||
| path: /sys/fs/cgroup | ||||
| - name: varlibdockercontainers | ||||
| hostPath: | ||||
| path: /var/lib/docker/containers | ||||
| - name: varlog | ||||
| hostPath: | ||||
| path: /var/log | ||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: ClusterRoleBinding | ||
| metadata: | ||
| name: elastic-agent | ||
| subjects: | ||
| - kind: ServiceAccount | ||
| name: elastic-agent | ||
| namespace: kube-system | ||
| roleRef: | ||
| kind: ClusterRole | ||
| name: elastic-agent | ||
| apiGroup: rbac.authorization.k8s.io | ||
| --- | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: RoleBinding | ||
| metadata: | ||
| namespace: kube-system | ||
| name: elastic-agent | ||
| subjects: | ||
| - kind: ServiceAccount | ||
| name: elastic-agent | ||
| namespace: kube-system | ||
| roleRef: | ||
| kind: Role | ||
| name: elastic-agent | ||
| apiGroup: rbac.authorization.k8s.io | ||
| --- | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: RoleBinding | ||
| metadata: | ||
| name: elastic-agent-kubeadm-config | ||
| namespace: kube-system | ||
| subjects: | ||
| - kind: ServiceAccount | ||
| name: elastic-agent | ||
| namespace: kube-system | ||
| roleRef: | ||
| kind: Role | ||
| name: elastic-agent-kubeadm-config | ||
| apiGroup: rbac.authorization.k8s.io |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ruflin do you think naming is ok here? Should we call it just
elastic-agentmaybe? Orelastic-agent-fleet?elastic-agent-managedis fine for me too.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No strong preference.
managedlooks fine as we have alsostandalone.