Skip to content
This repository has been archived by the owner on May 16, 2023. It is now read-only.

Latest commit

 

History

History
183 lines (144 loc) · 15.6 KB

README.md

File metadata and controls

183 lines (144 loc) · 15.6 KB

APM Server Helm Chart

Build Status Artifact HUB

This Helm chart is a lightweight way to configure and run our official APM Server Docker image.

Warning When it comes to running the Elastic on Kubernetes infrastructure, we recommend Elastic Cloud on Kubernetes (ECK) as the best way to run and manage the Elastic Stack.

ECK offers many operational benefits for both our basic-tier and our enterprise-tier customers, such as spinning up cluster nodes that were lost on failed infrastructure, seamless upgrades, rolling cluster changes, and much much more.

With the release of the Elastic Stack Helm charts for Elastic version 8.5.1, we are handing over the ongoing maintenance of our Elastic Stack Helm charts to the community and contributors. This repository will finally be archived after 6 months time. Elastic Stacks deployed on Kubernetes through Helm charts will still be fully supported under EOL limitations.

Since we want to provide an even better experience for our customers by running the Elastic Stack on Kubernetes, we will continue maintaining the Helm charts applicable to ECK Custom Resources. These charts can be found in the ECK repository.

Helm charts will currently be maintained for ECK Enterprise-tier customers, however, we encourage the community to engage with the existing Helm charts for the Elastic Stack and continue supporting their ongoing maintenance.

See #1731 for more details.

Requirements

See supported configurations for more details.

Installing

Install a released version using the Helm repository

  • Add the Elastic Helm charts repo: helm repo add elastic https://helm.elastic.co

  • Install it helm install apm-server elastic/apm-server

Install a development version using the main branch

  • Clone the git repo: git clone git@github.com:elastic/helm-charts.git

  • Install it: helm install apm-server ./helm-charts/apm-server --set imageTag=8.5.1

Upgrading

Please always check CHANGELOG.md and BREAKING_CHANGES.md before upgrading to a new chart version.

Usage notes

  • The default APM Server configuration file for this chart is configured to use an Elasticsearch endpoint as configured by the rest of these Helm charts. This can easily be overridden in the config value apmConfig.apm-server.yml.

  • Automated testing of this chart is currently only run against GKE (Google Kubernetes Engine).

  • This repo includes several examples of configurations that can be used as a reference. They are also used in the automated testing of this chart.

Configuration

Parameter Description Default
affinity Configurable affinity {}
apmConfig Allows you to add any config files in /usr/share/apm-server/config such as apm-server.yml see values.yaml
autoscaling Enable the horizontal pod autoscaler see values.yaml
envFrom Templatable string to be passed to the environment from variables which will be appended to the envFrom: definition for the container []
extraContainers Templatable string of additional containers to be passed to the tpl function ""
extraEnvs Extra environment variables which will be appended to the env: definition for the container see values.yaml
extraInitContainers Templatable string of additional containers to be passed to the tpl function ""
extraVolumeMounts List of additional volumeMounts []
extraVolumes List of additional volumes []
fullnameOverride Overrides the full name of the resources. If not set the name will default to .Release.Name - .Values.nameOverride or .Chart.Name ""
hostAliases Configurable hostAliases []
imagePullPolicy The Kubernetes imagePullPolicy value IfNotPresent
imagePullSecrets Configuration for imagePullSecrets so that you can use a private registry for your image []
imageTag The APM Server Docker image tag 8.5.1
image The APM Server Docker image docker.elastic.co/apm/apm-server
ingress Configurable ingress to expose the APM Server service see values.yaml
labels Configurable labels applied to all APM server pods {}
lifecycle Configurable lifecycle hooks false
livenessProbe Parameters to pass to liveness probe checks for values such as timeouts and thresholds see values.yaml
managedServiceAccount Whether the serviceAccount should be managed by this Helm chart. Set this to false in order to manage your own service account and related roles true
nameOverride Overrides the chart name for resources. If not set the name will default to .Chart.Name ""
nodeSelector Configurable nodeSelector {}
podAnnotations Configurable annotations applied to all APM Server pods {}
podSecurityContext Configurable podSecurityContext for APM Server pod execution environment see values.yaml
priorityClassName The name of the PriorityClass. No default is supplied as the PriorityClass must be created first ""
readinessProbe Parameters to pass to readiness probe checks for values such as timeouts and thresholds see values.yaml
replicas Number of APM servers to run 1
resources Allows you to set the resources for the Deployment see values.yaml
secretMounts Allows you easily mount a secret as a file inside the Deployment. Useful for mounting certificates and other secrets. See values.yaml for an example []
serviceAccount Custom serviceAccount that APM Server will use during execution. By default will use the serviceAccount created by this chart ""
serviceAccountAnnotations Annotations to be added to the ServiceAccount that is created by this chart. {}
service Configurable service to expose the APM Server service. See values.yaml for an example see values.yaml
terminationGracePeriod Termination period (in seconds) to wait before killing APM Server pod process on pod shutdown 30
tolerations Configurable tolerations []
updateStrategy Allows you to change the default updateStrategy for the deployment see values.yaml

FAQ

How to use APM Server with Elasticsearch with security (authentication and TLS) enabled?

This Helm chart can use existing Kubernetes secrets to setup credentials or certificates for examples. These secrets should be created outside of this chart and accessed using environment variables and volumes.

An example can be found in examples/security.

Contributing

Please check CONTRIBUTING.md before any contribution or for any questions about our development and testing process.