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.0 release for released version.
- Kubernetes >= 1.9
- Helm >= 2.8.0
See supported configurations for more details.
-
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
- with Helm 2:
-
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
- with Helm 2:
Please always check CHANGELOG.md and BREAKING_CHANGES.md before upgrading to a new chart version.
-
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.
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 |
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.
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.
Please check CONTRIBUTING.md before any contribution or for any questions about our development and testing process.