Skip to content

ayetkin/valse-kubernetes-exporter

Repository files navigation

valse

What is the Valse?

Valse is an kubernetes exporter application that discovers resources such as version, namespaces, node, pod, deployment, daemonset, statefulset, service and jobs on kubernetes and feeds a mongodb.

Use Cases

For envoy middleware load balancers used in Hepsiburada, it has been started to be written to dynamically add kubernetes worker node ip informations to envoy upstreams. Afterwards, with the discovery of other kubernetes resources, we added another page to our central healthcheck screens where we can see more than 160 kubernetes clusters from the top.

Configmap

Cluster:  
  # Kubernetes cluster name
  Name: "devops-k8s-av"
  # Kubernetes cluster environment
  Env: "production"
  # Kubernetes cluster region
  Region: "europe"

# Interval the Kubernetes resource discovery will be made
ScheduledTaskIntervalSeconds: 10   

# Exclude some namespaces from Kubernetes resource discovery
ExcludedNamespaces: ""

# If project run locally and want to use default kubeconfig set this value false.
# If app will run in kubernetes cluster, this value must be true.
Client:
  InClusterConfig: true

# Provide mongodb for writing discovered kubernetes resources. Mongodb could be single node or cluster.
Mongodb:
  Hosts: [ "", "", "" ]
  Username: 
  Password: 
  Port: 
  Database: ""
  ReplicaSet: ""
  TimeoutSeconds: 10

Building

For the production build just build the docker image.

$ docker build -t valse:0.1.0 -f Dockerfile . 

Building Helm package

$ helm package chart/valse --version 0.1.0 --app-version 0.1.0

Deployment

First of all, the configmap must be edited! Provide mongodb for writing discovered kubernetes resources.

$ vim ./k8s/configmap.yaml

It can be deployed with the helm chart or deployment manifests.

$ kubectl apply -f .k8s/.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published