From 898801062e255d15bdbe82b0466dd97c1b63f665 Mon Sep 17 00:00:00 2001 From: Brandon Morelli Date: Fri, 28 May 2021 14:10:44 -0700 Subject: [PATCH] Document Agent/Fleet Server environment variables (#671) Co-authored-by: DeDe Morton Co-authored-by: Chris Mark --- .../configuration/env/container-envs.asciidoc | 155 +++++ .../configuration/env/shared-env.asciidoc | 543 ++++++++++++++++++ elastic-agent/elastic-agent.asciidoc | 2 + .../running-on-kubernetes-standalone.asciidoc | 41 +- elastic-agent/running-on-kubernetes.asciidoc | 32 +- 5 files changed, 760 insertions(+), 13 deletions(-) create mode 100644 elastic-agent/configuration/env/container-envs.asciidoc create mode 100644 elastic-agent/configuration/env/shared-env.asciidoc diff --git a/elastic-agent/configuration/env/container-envs.asciidoc b/elastic-agent/configuration/env/container-envs.asciidoc new file mode 100644 index 0000000000..cf6c581b5c --- /dev/null +++ b/elastic-agent/configuration/env/container-envs.asciidoc @@ -0,0 +1,155 @@ +[[agent-environment-variables]] += {agent} environment variables + +++++ +Environment variables +++++ + +Use environment variables to configure {agent} when running in a containerized environment. +Variables on this page are grouped by action type: + +* <> +* <> prepare the {fleet} plugin in {kib} +* <> bootstrap {fleet-server} on an {agent} +* <> enroll an {agent} + +[discrete] +[[env-common-vars]] +== Common variables + +// forces a unique ID so that settings can be included multiple times on the same page +:type: common + +To limit the number of environment variables that need to be set, +the following common variables are available. +These variables can be used across all {agent} actions, +but have a lower precedence than action-specific environment variables. + +These common variables are useful, for example, when using the same {es} and {kib} credentials +to prepare the {fleet} plugin in {kib}, configure {fleet-server}, and enroll an {agent}. + +[cols="2*> for all available options. + +**** +==== + [discrete] -=== Running {agent} on master nodes +=== Run {agent} on master nodes -Kubernetes master nodes use https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/[taints] +Kubernetes master nodes can use https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/[taints] to limit the workloads that can run on them. The manifest for standalone {agent} defines -tolerations to run on master nodes, which collects metrics from the control plane -components of Kuberentes (scheduler, controller manager). -To disable {agent} from running on master nodes remove the following part of the Daemonset spec: +tolerations to run on master nodes. Agents running on master nodes collect metrics from the control plane +components (scheduler, controller manager) of Kuberentes. +To disable {agent} from running on master nodes, remove the following part of the Daemonset spec: [source,yaml] ------------------------------------------------ @@ -136,5 +159,5 @@ the following configuration should be added as an extra input in the Daemonset m condition: ${kubernetes.pod.labels.app} == 'redis' ------------------------------------------------ -Users can find more information about how to shape their dynamic inputs -for autodiscover at <> docs. +See <> for more information +about shaping dynamic inputs for autodiscovery. diff --git a/elastic-agent/running-on-kubernetes.asciidoc b/elastic-agent/running-on-kubernetes.asciidoc index fe80e44349..f3cd2e4267 100644 --- a/elastic-agent/running-on-kubernetes.asciidoc +++ b/elastic-agent/running-on-kubernetes.asciidoc @@ -43,7 +43,7 @@ curl -L -O https://raw.githubusercontent.com/elastic/beats/{branch}/deploy/kuber == Settings By default, {agent} is enrolled to an existing Kibana deployment, -if present using the specified credentials. FLEET_ENROLLMENT_TOKEN parameter is used to connect Agent to the +if present using the specified credentials. The `FLEET_ENROLLMENT_TOKEN` parameter is used to connect Agent to the corresponding {agent} policy. It is suggested to connect Daemonset Agents to a node scope configuration and Deployment Agent to a cluster scope configuration. Then Kubernetes package will be deployed enabling cluster scope datasets using cluster scope configuration while node scope datasets will be enabled under node scope configuration. @@ -63,11 +63,35 @@ change the following parameters in the manifest file: value: "changeme" ------------------------------------------------ +// Begin collapsed section +[%collapsible] +.Configuration details +==== +**** + +[cols="2*> for all available options. + +**** +==== + [discrete] -=== Running {agent} on master nodes +=== Run {agent} on master nodes Kubernetes master nodes can use https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/[taints] -to limit the workloads that can run on them. To run {agent} on master nodes you may need to +to limit the workloads that can run on them. To run {agent} on master nodes, you may need to update the Daemonset spec to include proper tolerations: [source,yaml] @@ -106,4 +130,4 @@ agent-ingest-management-clusterscope-574dbfc48f-sfrdt 1/1 Running 3 agent-ingest-management-nodescope-jt9zj 1/1 Running 3 8d ------------------------------------------------ -Agents should be enrolled to Fleet and user should be able to deploy Kubernetes package accordingly. +{agent}s should be enrolled to Fleet and user should be able to deploy Kubernetes package accordingly.