Skip to content

Latest commit

 

History

History
181 lines (137 loc) · 14.7 KB

README.md

File metadata and controls

181 lines (137 loc) · 14.7 KB

APM Server Helm Chart

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

Warning: This functionality is in alpha and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Alpha features are not subject to the support SLA of official GA features (see supported configurations for more details).

Warning: This branch is used for development, please use 7.9.2 release for released version.

Requirements

  • Kubernetes >= 1.9
  • Helm >= 2.8.0

See supported configurations for more details.

Installing

Install released version using Helm repository

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

  • Install it:

    • with Helm 2: helm install --name apm-server elastic/apm-server
    • with Helm 3 (beta): helm install apm-server elastic/apm-server

Install development version using master branch

  • Clone the git repo: git clone [email protected]:elastic/helm-charts.git

  • Install it:

    • with Helm 2: helm install --name apm-server ./helm-charts/apm-server --set imageTag=8.0.0-SNAPSHOT
    • with Helm 3 (beta): helm install apm-server ./helm-charts/apm-server --set imageTag=8.0.0-SNAPSHOT

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 a number of examples configurations which 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 enabled: false
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 []
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 ""
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.0.0-SNAPSHOT
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.

How to install OSS version of APM Server?

Deploying OSS version of Elasticsearch can be done by setting image value to APM Server OSS Docker image

An example of APM Server deployment using OSS version can be found in examples/oss.

Contributing

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