diff --git a/filebeat/README.md b/filebeat/README.md
index 78e5a1921..028cddec5 100644
--- a/filebeat/README.md
+++ b/filebeat/README.md
@@ -38,27 +38,28 @@ helm install --name filebeat elastic/filebeat --version 7.0.0-alpha1 --set image
## Configuration
-| Parameter | Description | Default |
-| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
-| `filebeatConfig` | Allows you to add any config files in `/usr/share/filebeat` such as `filebeat.yml`. See [values.yaml](./values.yaml) for an example of the formatting. | `{}` |
-| `extraEnvs` | Extra [environment variables](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#using-environment-variables-inside-of-your-config) which will be appended to the `env:` definition for the container | `[]` |
-| `extraVolumeMounts` | Any extra volumes mounts to define for the Filebeat container | `[]` |
-| `extraVolumes` | Any extra volumes to define for the pod | `[]` |
-| `hostPathRoot` | Fully-qualified [hostPath](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) that will be used to persist Filebeat registry data | `/var/lib` |
-| `image` | The Filebeat docker image | `docker.elastic.co/beats/filebeat` |
-| `imageTag` | The Filebeat docker image tag | `7.0.0` |
-| `imagePullPolicy` | The Kubernetes [imagePullPolicy](https://kubernetes.io/docs/concepts/containers/images/#updating-images) value | `IfNotPresent` |
-| `imagePullSecrets` | Configuration for [imagePullSecrets](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-pod-that-uses-your-secret) so that you can use a private registry for your image | `[]` |
-| `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` |
-| `podAnnotations` | Configurable [annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) applied to all Filebeat pods | `{}` |
-| `podSecurityContext` | Configurable [podSecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) for Filebeat pod execution environment | `fsGroup: 1000`
`runAsUser: 0`
`privileged: false` |
-| `livenessProbe` | Parameters to pass to [liveness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) checks for values such as timeouts and thresholds. | `failureThreshold: 3`
`initialDelaySeconds: 10`
`periodSeconds: 10`
`successThreshold: 3`
`timeoutSeconds: 5` |
-| `resources` | Allows you to set the [resources](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/) for the `DaemonSet` | `requests.cpu: 100m`
`requests.memory: 100Mi`
`limits.cpu: 1000m`
`limits.memory: 200Mi` |
-| `serviceAccount` | The [serviceAccount](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) that Filebeat will use during execution | `filebeat` |
-| `secretMounts` | Allows you easily mount a secret as a file inside the `DaemonSet`. Useful for mounting certificates and other secrets. See [values.yaml](./values.yaml) for an example | `[]` |
-| `terminationGracePeriod` | Termination period (in seconds) to wait before killing Filebeat pod process on pod shutdown | `30` |
-| `tolerations` | Configurable [tolerations](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) | `[]` |
-| `updateStrategy` | The [updateStrategy](https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets) for the `DaemonSet`. By default Kubernetes will kill and recreate pods on updates. Setting this to `OnDelete` will require that pods be deleted manually. | `RollingUpdate` |
+| Parameter | Description | Default |
+| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
+| `filebeatConfig` | Allows you to add any config files in `/usr/share/filebeat` such as `filebeat.yml`. See [values.yaml](./values.yaml) for an example of the formatting. | `{}` |
+| `extraEnvs` | Extra [environment variables](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#using-environment-variables-inside-of-your-config) which will be appended to the `env:` definition for the container | `[]` |
+| `extraVolumeMounts` | Any extra volumes mounts to define for the Filebeat container | `[]` |
+| `extraVolumes` | Any extra volumes to define for the pod | `[]` |
+| `hostPathRoot` | Fully-qualified [hostPath](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) that will be used to persist Filebeat registry data | `/var/lib` |
+| `image` | The Filebeat docker image | `docker.elastic.co/beats/filebeat` |
+| `imageTag` | The Filebeat docker image tag | `7.0.0` |
+| `imagePullPolicy` | The Kubernetes [imagePullPolicy](https://kubernetes.io/docs/concepts/containers/images/#updating-images) value | `IfNotPresent` |
+| `imagePullSecrets` | Configuration for [imagePullSecrets](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-pod-that-uses-your-secret) so that you can use a private registry for your image | `[]` |
+| `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` |
+| `podAnnotations` | Configurable [annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) applied to all Filebeat pods | `{}` |
+| `podSecurityContext` | Configurable [podSecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) for Filebeat pod execution environment | `fsGroup: 1000`
`runAsUser: 0`
`privileged: false` |
+| `livenessProbe` | Parameters to pass to [liveness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) checks for values such as timeouts and thresholds. | `failureThreshold: 3`
`initialDelaySeconds: 10`
`periodSeconds: 10`
`successThreshold: 3`
`timeoutSeconds: 5` |
+| `readinessProbe` | Parameters to pass to [readiness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) checks for values such as timeouts and thresholds. | `failureThreshold: 3`
`initialDelaySeconds: 10`
`periodSeconds: 10`
`successThreshold: 3`
`timeoutSeconds: 5` |
+| `resources` | Allows you to set the [resources](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/) for the `DaemonSet` | `requests.cpu: 100m`
`requests.memory: 100Mi`
`limits.cpu: 1000m`
`limits.memory: 200Mi` |
+| `serviceAccount` | The [serviceAccount](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) that Filebeat will use during execution | `filebeat` |
+| `secretMounts` | Allows you easily mount a secret as a file inside the `DaemonSet`. Useful for mounting certificates and other secrets. See [values.yaml](./values.yaml) for an example | `[]` |
+| `terminationGracePeriod` | Termination period (in seconds) to wait before killing Filebeat pod process on pod shutdown | `30` |
+| `tolerations` | Configurable [tolerations](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) | `[]` |
+| `updateStrategy` | The [updateStrategy](https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets) for the `DaemonSet`. By default Kubernetes will kill and recreate pods on updates. Setting this to `OnDelete` will require that pods be deleted manually. | `RollingUpdate` |
## Examples
diff --git a/filebeat/examples/default/test/goss.yaml b/filebeat/examples/default/test/goss.yaml
index e72f8a5c1..78576c9b3 100644
--- a/filebeat/examples/default/test/goss.yaml
+++ b/filebeat/examples/default/test/goss.yaml
@@ -7,6 +7,16 @@ port:
mount:
/usr/share/filebeat/data:
exists: true
+ /run/docker.sock:
+ exists: true
+ /var/lib/docker/containers:
+ exists: true
+ opts:
+ - ro
+ /usr/share/filebeat/filebeat.yml:
+ exists: true
+ opts:
+ - ro
user:
filebeat:
@@ -20,3 +30,18 @@ http:
timeout: 2000
body:
- 'filebeat-7.0.0'
+
+file:
+ /usr/share/filebeat/filebeat.yml:
+ exists: true
+ contains:
+ - 'add_kubernetes_metadata'
+ - 'output.elasticsearch'
+ - 'elasticsearch-master:9200'
+
+command:
+ cd /usr/share/filebeat && filebeat test output:
+ exit-status: 0
+ stdout:
+ - 'elasticsearch: http://elasticsearch-master:9200'
+ - 'version: 7.0.1'
diff --git a/filebeat/tests/filebeat_test.py b/filebeat/tests/filebeat_test.py
index 889f6587e..0aaa39f78 100644
--- a/filebeat/tests/filebeat_test.py
+++ b/filebeat/tests/filebeat_test.py
@@ -5,7 +5,7 @@
import yaml
project = 'filebeat'
-name = 'RELEASE-NAME-' + project
+name = 'release-name-' + project
def test_defaults():
@@ -19,12 +19,13 @@ def test_defaults():
c = r['daemonset'][name]['spec']['template']['spec']['containers'][0]
assert c['name'] == project
assert c['image'].startswith('docker.elastic.co/beats/' + project + ':')
- assert c['ports'][0]['containerPort'] == 5066 # internal filebeat monitoring REST API
assert c['env'][0]['name'] == 'POD_NAMESPACE'
assert c['env'][0]['valueFrom']['fieldRef']['fieldPath'] == 'metadata.namespace'
- assert c['livenessProbe']['httpGet']['port'] == 'monitor'
+ assert 'curl --fail 127.0.0.1:5066' in c['livenessProbe']['exec']['command'][-1]
+
+ assert 'filebeat test output' in c['readinessProbe']['exec']['command'][-1]
# Empty customizable defaults
assert 'imagePullSecrets' not in r['daemonset'][name]['spec']['template']['spec']
@@ -115,7 +116,7 @@ def test_adding_in_filebeat_config():
hello = world
'''
r = helm_template(config)
- c = r['configmap'][project + '-config']['data']
+ c = r['configmap'][name + '-config']['data']
assert 'filebeat.yml' in c
assert 'other-config.yml' in c
@@ -127,7 +128,7 @@ def test_adding_in_filebeat_config():
d = r['daemonset'][name]['spec']['template']['spec']
- assert {'configMap': {'name': project + '-config', 'defaultMode': 0600}, 'name': project + '-config'} in d['volumes']
+ assert {'configMap': {'name': name + '-config', 'defaultMode': 0600}, 'name': project + '-config'} in d['volumes']
assert {'mountPath': '/usr/share/filebeat/filebeat.yml', 'name': project + '-config', 'subPath': 'filebeat.yml', 'readOnly': True} in d['containers'][0]['volumeMounts']
assert {'mountPath': '/usr/share/filebeat/other-config.yml', 'name': project + '-config', 'subPath': 'other-config.yml', 'readOnly': True} in d['containers'][0]['volumeMounts']