exekias / beats-kubernetes-demo

Demo Beats features on Kubernetes
Apache License 2.0
10 stars 7 forks source link

KUBE-README.md please! #1

Open nrshrivatsan opened 6 years ago

nrshrivatsan commented 6 years ago

Hello friend! Great work!

Could you please kindly add README.md for Kubernetes folder?

mumoshu commented 6 years ago

@nrshrivatsan Hi! I'm not the maintainer of this project but am also interested in adding one.

What would you expect in the README?

Probably an example command to bring up all the stack into your k8s cluster like this?

Suppose we had a convenient script init.sh:

#!/usr/bin/env bash

set -e

secrets_tmpl=kubernetes/secrets.yml
git checkout -- $secrets_tmpl
for e in ELASTICSEARCH_{HOST,PORT} KIBANA_HOST ELASTIC_{USERNAME,PASSWORD} MYSQL_{ROOT_,}PASSWORD; do
  v=${!e}
  if [ -z $v ]; then
    echo "$e must be set" 1>&2
    exit 1
  fi
  cat $secrets_tmpl | (mv $secrets_tmpl{,.bak}; sed "s/$e: ...$/$e: $(echo $v | base64)/g;" > $secrets_tmpl)
done

git diff kubernetes/secrets.yml

kubectl create -f kubernetes/

Firstly you set required envvars:

export ELASTICSEARCH_HOST=FOO
export ELASTICSEARCH_PORT=BAR
export KIBANA_HOST=BAZ
export ELASTIC_USERNAME=foo
export ELASTIC_PASSWORD=bar
export MYSQL_ROOT_PASSWORD=baz
export MYSQL_PASSWORD=foo

And run the script:

$ ./init.sh
diff --git a/kubernetes/secrets.yml b/kubernetes/secrets.yml
index c578266..f039280 100644
--- a/kubernetes/secrets.yml
+++ b/kubernetes/secrets.yml
@@ -6,12 +6,12 @@ metadata:
   namespace: kube-system
 type: Opaque
 data:
-  ELASTICSEARCH_HOST: ...
-  ELASTICSEARCH_PORT: ...
-  KIBANA_HOST: ...
-  ELASTIC_USERNAME: ...
-  ELASTIC_PASSWORD: ...
-  MYSQL_ROOT_PASSWORD: ...
+  ELASTICSEARCH_HOST: Rk9PCg==
+  ELASTICSEARCH_PORT: QkFSCg==
+  KIBANA_HOST: QkFaCg==
+  ELASTIC_USERNAME: aG9nZQo=
+  ELASTIC_PASSWORD: ZnVnYQo=
+  MYSQL_ROOT_PASSWORD: Zm9vCg==
 ---
 apiVersion: v1
 kind: Secret
@@ -19,5 +19,5 @@ metadata:
   name: beats-demo
 type: Opaque
 data:
-  MYSQL_ROOT_PASSWORD: ...
-  MYSQL_PASSWORD: ...
+  MYSQL_ROOT_PASSWORD: Zm9vCg==
+  MYSQL_PASSWORD: YmFyCg==
configmap "apm-server-config" created
daemonset.extensions "apm-server" created
job.batch "apm-server-setup" created
clusterrolebinding.rbac.authorization.k8s.io "apm-server" created
clusterrole.rbac.authorization.k8s.io "apm-server" created
serviceaccount "apm-server" created
deployment.apps "beats-demo" created
job.batch "beats-demo-app-init" created
service "beats-demo" created
job.batch "filebeat-setup" created
deployment.extensions "kube-state-metrics" created
clusterrolebinding.rbac.authorization.k8s.io "kube-state-metrics" created
clusterrole.rbac.authorization.k8s.io "kube-state-metrics" created
serviceaccount "kube-state-metrics" created
service "kube-state-metrics" created
configmap "metricbeat-deployment-config" created
deployment.apps "metricbeat" created
job.batch "metricbeat-setup" created
service "mysql" created
persistentvolumeclaim "mysql-pv-claim" created
deployment.apps "mysql" created
configmap "packetbeat-config" created
daemonset.extensions "packetbeat" created
job.batch "packetbeat-setup" created
clusterrolebinding.rbac.authorization.k8s.io "packetbeat" created
clusterrole.rbac.authorization.k8s.io "packetbeat" created
serviceaccount "packetbeat" created
secret "elastic" created
secret "beats-demo" created
*snip*