{"id":13524337,"url":"https://github.com/robusta-dev/kubewatch","last_synced_at":"2025-04-01T02:31:11.579Z","repository":{"id":37631095,"uuid":"349570980","full_name":"robusta-dev/kubewatch","owner":"robusta-dev","description":"Watch k8s events and trigger Handlers","archived":false,"fork":false,"pushed_at":"2025-03-24T10:33:37.000Z","size":34242,"stargazers_count":683,"open_issues_count":27,"forks_count":95,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-25T05:06:44.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"vmware-archive/kubewatch","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robusta-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-19T22:32:15.000Z","updated_at":"2025-03-25T01:45:19.000Z","dependencies_parsed_at":"2024-04-30T08:43:14.981Z","dependency_job_id":"53ce4f88-9813-4f6c-97dc-f030e5702228","html_url":"https://github.com/robusta-dev/kubewatch","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robusta-dev%2Fkubewatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robusta-dev%2Fkubewatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robusta-dev%2Fkubewatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robusta-dev%2Fkubewatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robusta-dev","download_url":"https://codeload.github.com/robusta-dev/kubewatch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246572265,"owners_count":20798930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:01:09.094Z","updated_at":"2025-04-01T02:31:11.572Z","avatar_url":"https://github.com/robusta-dev.png","language":"Go","funding_links":[],"categories":["Go","Tools and Libraries","K8S-Tools"],"sub_categories":["Monitoring, Alerts, and Visualization"],"readme":"\u003cdiv align=\"center\"\u003e\n\n**This is the official Kubewatch project, [originally by Bitnami](https://github.com/bitnami-labs/kubewatch/), now maintained by [Robusta.dev](https://home.robusta.dev/).**\n\n**Feel free to open issues, raise PRs or talk with us on [Slack](https://bit.ly/robusta-slack)!**\n\n**kubewatch** is a Kubernetes watcher that publishes notification to available collaboration hubs/notification channels. Run it in your k8s cluster, and you will get event notifications through webhooks.\n\n[See the blog post on KubeWatch 2.0 to learn more about how KubeWatch is used.](https://home.robusta.dev/blog/kubewatch-2-0-released)\n\n\u003cimg src=\"./docs/kubewatch-logo.jpeg\"\u003e\n\n[![GoDoc](https://godoc.org/github.com/bitnami-labs/kubewatch?status.svg)](https://godoc.org/github.com/bitnami-labs/kubewatch) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/bitnami-labs/kubewatch/blob/master/LICENSE)\n[![slack robusta](https://img.shields.io/badge/Slack-Join-4A154B?style=flat-square\u0026logo=slack\u0026logoColor=white)](https://bit.ly/robusta-slack)\n\n\u003c/div\u003e\n\n# Fine-Grained Resource Tracking\n\nKubeWatch tracks all changes to Kubernetes resources of given types.\n\nIf you need fine-grained filtering of which changes are forwarded, you can use KubeWatch in conjunction with Robusta.\n\nFor more details, refer to the [Robusta docs on change-tracking](https://docs.robusta.dev/master/playbook-reference/kubernetes-examples/index.html). \n\nA diagram showing the two options is shown below. The flow that only uses KubeWatch is purple and the flow that adds Robusta is green.\n\n![image](https://github.com/user-attachments/assets/b271e635-70d6-4bc8-9f61-4c8ae4771be4)\n\n# Latest image\n\n```\nrobustadev/kubewatch:v2.9.0\n```\n\n# Usage\n```\n$ kubewatch -h\n\nKubewatch: A watcher for Kubernetes\n\nkubewatch is a Kubernetes watcher that publishes notifications\nto Slack/hipchat/mattermost/flock channels. It watches the cluster\nfor resource changes and notifies them through webhooks.\n\nsupported webhooks:\n - slack\n - slackwebhook\n - msteams\n - hipchat\n - mattermost\n - flock\n - webhook\n - cloudevent\n - smtp\n\nUsage:\n  kubewatch [flags]\n  kubewatch [command]\n\nAvailable Commands:\n  config      modify kubewatch configuration\n  resource    manage resources to be watched\n  version     print version\n\nFlags:\n  -h, --help   help for kubewatch\n\nUse \"kubewatch [command] --help\" for more information about a command.\n\n```\n\n# Install\n\n### Cluster Installation\n#### Using helm:\n\nWhen you have helm installed in your cluster, use the following setup:\n\n```console\nhelm repo add robusta https://robusta-charts.storage.googleapis.com \u0026\u0026 helm repo update\nhelm install kubewatch robusta/kubewatch --set='rbac.create=true,slack.channel=#YOUR_CHANNEL,slack.token=xoxb-YOUR_TOKEN,resourcesToWatch.pod=true,resourcesToWatch.daemonset=true'\n```\n\nYou may also provide a values file instead:\n\n```yaml\nrbac:\n  create: true\n  customRoles:\n    - apiGroups: [\"monitoring.coreos.com\"]\n      resources: [\"prometheusrules\"]\n      verbs: [\"get\", \"list\", \"watch\"]\nresourcesToWatch:\n  deployment: false\n  replicationcontroller: false\n  replicaset: false\n  daemonset: false\n  services: true\n  pod: true\n  job: false\n  node: false\n  clusterrole: true\n  clusterrolebinding: true\n  serviceaccount: true\n  persistentvolume: false\n  namespace: false\n  secret: false\n  configmap: false\n  ingress: false\n  coreevent: false\n  event: true\ncustomresources:\n  - group: monitoring.coreos.com\n    version: v1\n    resource: prometheusrules\nslack:\n  channel: '#YOUR_CHANNEL'\n  token: 'xoxb-YOUR_TOKEN'\n```\n\nAnd use that:\n\n```console\n$ helm upgrade --install kubewatch robusta/kubewatch --values=values-file.yml\n```\n\n#### Using kubectl:\n\nIn order to run kubewatch in a Kubernetes cluster quickly, the easiest way is for you to create a [ConfigMap](https://github.com/robusta-dev/kubewatch/blob/master/kubewatch-configmap.yaml) to hold kubewatch configuration.\n\nAn example is provided at [`kubewatch-configmap.yaml`](https://github.com/robusta-dev/kubewatch/blob/master/kubewatch-configmap.yaml), do not forget to update your own slack channel and token parameters. Alternatively, you could use secrets.\n\nCreate k8s configmap:\n\n```console\n$ kubectl create -f kubewatch-configmap.yaml\n```\n\nCreate the [Pod](https://github.com/robusta-dev/kubewatch/blob/master/kubewatch.yaml) directly, or create your own deployment:\n\n```console\n$ kubectl create -f kubewatch.yaml\n```\n\nA `kubewatch` container will be created along with `kubectl` sidecar container in order to reach the API server.\n\nOnce the Pod is running, you will start seeing Kubernetes events in your configured Slack channel. Here is a screenshot:\n\n![slack](./docs/slack.png)\n\nTo modify what notifications you get, update the `kubewatch` ConfigMap and turn on and off (true/false) resources or configure any resource of your choosing with customresources (CRDs):\n\n```\nresource:\n  deployment: false\n  replicationcontroller: false\n  replicaset: false\n  daemonset: false\n  services: true\n  pod: true\n  job: false\n  node: false\n  clusterrole: false\n  clusterrolebinding: false\n  serviceaccount: false\n  persistentvolume: false\n  namespace: false\n  secret: false\n  configmap: false\n  ingress: false\n  coreevent: false\n  event: true\ncustomresources:\n  - group: monitoring.coreos.com\n    version: v1\n    resource: prometheusrules\n```\n\n#### Working with RBAC\n\nKubernetes Engine clusters running versions 1.6 or higher introduced Role-Based Access Control (RBAC). We can create `ServiceAccount` for it to work with RBAC.\n\n```console\n$ kubectl create -f kubewatch-service-account.yaml\n```\n\nIf you do not have permission to create it, you need to become an admin first. For example, in GKE you would run:\n\n```\n$ kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=REPLACE_EMAIL_HERE\n```\n\nEdit `kubewatch.yaml`, and create a new field under `spec` with `serviceAccountName: kubewatch`, you can achieve this by running:\n\n```console\n$ sed -i '/spec:/a\\ \\ serviceAccountName: kubewatch' kubewatch.yaml\n```\n\nThen just create `pod` as usual with:\n\n```console\n$ kubectl create -f kubewatch.yaml\n```\n\n#### Working with CRDs\n`kubewatch` can be configured to monitor Kubernetes Custom Resource Definitions (CRDs), allowing you to receive notifications when changes occur.\nTo configure kubewatch to watch custom resources, you need to define the `customresources` section either in your values file or by using the `--set` flag with Helm commands. \n\nInclude the custom resource configuration in your values file:\n\n```yaml\ncustomresources:\n  - group: monitoring.coreos.com\n    version: v1\n    resource: prometheusrules\n```\n\nThen deploy or upgrade `kubwatch` with `helm upgrade` or `helm install`\n\n\nAlternatively, you can pass this configuration directly using the `--set` flag:\n\n```console\nhelm install kubewatch robusta/kubewatch --set='rbac.create=true,slack.channel=#YOUR_CHANNEL,slack.token=xoxb-YOUR_TOKEN,resourcesToWatch.pod=true,resourcesToWatch.daemonset=true,customresources[0].group=monitoring.coreos.com,customresources[0].version=v1,customresources[0].resource=prometheusrules'\n```\n#### Custom RBAC roles\nAfter defining custom resources, make sure that kubewatch has the necessary RBAC permissions to access the custom resources you've configured. Without the appropriate permissions, `kubewatch` will not be able to monitor your custom resources, and you won't receive notifications for changes.\n\nTo grant these permissions, you can define custom RBAC roles using `customRoles` within the `rbac` section of your values file or by using the `--set` flag with Helm commands. This allows you to specify exactly which API groups, resources, and actions kubewatch should have access to.\n\nHere’s how you can configure the necessary permissions to monitor your resources:\n```yaml\nrbac:\n  create: true \n  customRoles:\n    - apiGroups: [\"monitoring.coreos.com\"]\n      resources: [\"prometheusrules\"]\n      verbs: [\"get\", \"list\", \"watch\"]\n```\n\nThen deploy or upgrade `kubwatch` with `helm upgrade` or `helm install`\n\n\nAlternatively, you can pass this configuration directly using the `--set` flag:\n\n```console\nhelm install kubewatch robusta/kubewatch --set='rbac.create=true,slack.channel=#YOUR_CHANNEL,slack.token=xoxb-YOUR_TOKEN,customRoles[0].apiGroups={monitoring.coreos.com},customRoles[0].resources={prometheusrules},customRoles[0].verbs={get,list,watch}'\n```\n\n#### Metrics\n`kubewatch` runs a Prometheus metrics endpoint at `/metrics` on port `2112` by default. This endpoint can be used to monitor health and the performance of `kubewatch`. \n\nThe `kubewatch_events_total` metric can help track the total number of Kubernetes events, categorized by resource type (e.g., `Pods`, `Deployments`) and event type (e.g., `Create`, `Delete`).\n\nYou can change the default port (`2112`) on which the metrics server listens by setting the `LISTEN_ADDRESS` environment variable. \nFormat is `host:port`. `:5454` means any host, and port `5454`\n\n\n```yaml\nextraEnvVars:\n  - name: LISTEN_ADDRESS\n    value: \":5454\"\n```\n\n### Local Installation\n#### Using go package installer:\n\n```console\n# Download and install kubewatch\n$ go get -u github.com/robusta-dev/kubewatch\n\n# Configure the notification channel\n$ kubewatch config add slack --channel \u003cslack_channel\u003e --token \u003cslack_token\u003e\n\n# Add resources to be watched\n$ kubewatch resource add --po --svc\nINFO[0000] resource svc configured\nINFO[0000] resource po configured\n\n# start kubewatch server\n$ kubewatch\nINFO[0000] Starting kubewatch controller                 pkg=kubewatch-service\nINFO[0000] Starting kubewatch controller                 pkg=kubewatch-pod\nINFO[0000] Processing add to service: default/kubernetes  pkg=kubewatch-service\nINFO[0000] Processing add to service: kube-system/tiller-deploy  pkg=kubewatch-service\nINFO[0000] Processing add to pod: kube-system/tiller-deploy-69ffbf64bc-h8zxm  pkg=kubewatch-pod\nINFO[0000] Kubewatch controller synced and ready         pkg=kubewatch-service\nINFO[0000] Kubewatch controller synced and ready         pkg=kubewatch-pod\n\n```\n#### Using Docker:\n\nTo Run Kubewatch Container interactively, place the config file in `$HOME/.kubewatch.yaml` location and use the following command.\n\n```\ndocker run --rm -it --network host -v $HOME/.kubewatch.yaml:/root/.kubewatch.yaml -v $HOME/.kube/config:/opt/bitnami/kubewatch/.kube/config --name \u003ccontainer-name\u003e robustadev/kubewatch\n```\n\nExample:\n\n```\n$ docker run --rm -it --network host -v $HOME/.kubewatch.yaml:/root/.kubewatch.yaml -v $HOME/.kube/config:/opt/bitnami/kubewatch/.kube/config --name kubewatch-app robustadev/kubewatch\n\n==\u003e Writing config file...\nINFO[0000] Starting kubewatch controller                 pkg=kubewatch-service\nINFO[0000] Starting kubewatch controller                 pkg=kubewatch-pod\nINFO[0000] Starting kubewatch controller                 pkg=kubewatch-deployment\nINFO[0000] Starting kubewatch controller                 pkg=kubewatch-namespace\nINFO[0000] Processing add to namespace: kube-node-lease  pkg=kubewatch-namespace\nINFO[0000] Processing add to namespace: kube-public      pkg=kubewatch-namespace\nINFO[0000] Processing add to namespace: kube-system      pkg=kubewatch-namespace\nINFO[0000] Processing add to namespace: default          pkg=kubewatch-namespace\n....\n```\n\nTo Demonise Kubewatch container use\n\n```\n$ docker run --rm -d --network host -v $HOME/.kubewatch.yaml:/root/.kubewatch.yaml -v $HOME/.kube/config:/opt/bitnami/kubewatch/.kube/config --name kubewatch-app robustadev/kubewatch\n```\n\n# Configure\n\nKubewatch supports `config` command for configuration. Config file will be saved at `$HOME/.kubewatch.yaml`\n\n```\n$ kubewatch config -h\n\nconfig command allows admin setup his own configuration for running kubewatch\n\nUsage:\n  kubewatch config [flags]\n  kubewatch config [command]\n\nAvailable Commands:\n  add         add webhook config to .kubewatch.yaml\n  test        test handler config present in .kubewatch.yaml\n  view        view .kubewatch.yaml\n\nFlags:\n  -h, --help   help for config\n\nUse \"kubewatch config [command] --help\" for more information about a command.\n```\n### Example:\n\n### slack:\n\n- Create a [slack Bot](https://my.slack.com/services/new/bot)\n\n- Edit the Bot to customize its name, icon and retrieve the API token (it starts with `xoxb-`).\n\n- Invite the Bot into your channel by typing: `/invite @name_of_your_bot` in the Slack message area.\n\n- Add Api token to kubewatch config using the following steps\n\n  ```console\n  $ kubewatch config add slack --channel \u003cslack_channel\u003e --token \u003cslack_token\u003e\n  ```\n  You have an altenative choice to set your SLACK token, channel via environment variables:\n\n  ```console\n  $ export KW_SLACK_TOKEN='XXXXXXXXXXXXXXXX'\n  $ export KW_SLACK_CHANNEL='#channel_name'\n  ```\n\n### slackwebhookurl:\n\n- Create a [slack app](https://api.slack.com/apps/new)\n\n- Enable [Incoming Webhooks](https://api.slack.com/messaging/webhooks#enable_webhooks). (On \"Settings\" page.)\n\n- Create an incoming webhook URL (Add New Webhook to Workspace on \"Settings\" page.)\n\n- Pick a channel that the app will post to, and then click to Authorize your app. You will get back your webhook URL.  \n  The Slack Webhook URL will look like: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX\n\n- Add slack webhook url to kubewatch config using the following steps\n\n  ```console\n  $ kubewatch config add slackwebhookurl --username \u003cslack_username\u003e --emoji \u003cslack_emoji\u003e --channel \u003cslack_channel\u003e --slackwebhookurl \u003cslack_webhook_url\u003e\n  ```\n  Or, you have an altenative choice to set your SLACK channel, username, emoji and webhook URL via environment variables:\n\n  ```console\n  $ export KW_SLACK_CHANNEL=slack_channel\n  $ export KW_SLACK_USERNAME=slack_username\n  $ export KW_SLACK_EMOJI=slack_emoji\n  $ export KW_SLACK_WEBHOOK_URL=slack_webhook_url\n  ```\n  \n - Example apply done in a bash script:  \n  \n ```console\n $ cat kubewatch-configmap-slackwebhook.yaml | sed \"s|\u003cslackchannel\u003e|\"\\\"$SlackChannel\"\\\"|g;s|\u003cslackusername\u003e|\"\\\"$SlackUsesrName\"\\\"|g;s|\u003cslackemoji\u003e|\"\\\"$SlackEmoji\"\\\"|g;s|\u003cSlackWebhookUrl\u003e|\"\\\"$WebhookUrl\"\\\"|g\" | kubectl create -f -\n ```\n \n - An example kubewatch-configmap-slackwebhook.yaml YAML File:  \n  \n ```yaml\n apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: kubewatch\ndata:\n  .kubewatch.yaml: |\n    namespace: \"\"\n    handler:\n      slackwebhook:\n        enabled: true\n        channel: \u003cslackchannel\u003e\n        username: \u003cslackusername\u003e\n        emoji: \u003cslackemoji\u003e\n        slackwebhookurl: \u003cSlackWebhookUrl\u003e\n    resource:\n      clusterrole: false\n      configmap: false\n      daemonset: false\n      deployment: true\n      ingress: false\n      job: false\n      namespace: false\n      node: false\n      persistentvolume: false\n      pod: true\n      replicaset: false\n      replicationcontroller: false\n      secret: false\n      serviceaccount: false\n      services: true\n      event: true\n      coreevent: false\n    ```\n\n### flock:\n\n- Create a [flock bot](https://docs.flock.com/display/flockos/Bots).\n\n- Add flock webhook url to config using the following command.\n  ```console\n  $ kubewatch config add flock --url \u003cflock_webhook_url\u003e\n  ```\n  You have an altenative choice to set your FLOCK URL\n\n  ```console\n  $ export KW_FLOCK_URL='https://api.flock.com/hooks/sendMessage/XXXXXXXX'\n  ```\n\n## Testing Config\n\nTo test the handler config by send test messages use the following command.\n```\n$ kubewatch config test -h\n\nTests handler configs present in .kubewatch.yaml by sending test messages\n\nUsage:\n  kubewatch config test [flags]\n\nFlags:\n  -h, --help   help for test\n```\n\n#### Example:\n\n```\n$ kubewatch config test\n\nTesting Handler configs from .kubewatch.yaml\n2019/06/03 12:29:23 Message successfully sent to channel ABCD at 1559545162.000100\n```\n\n## Viewing config\nTo view the entire config file `$HOME/.kubewatch.yaml` use the following command.\n```\n$ kubewatch config view\nContents of .kubewatch.yaml\n\nhandler:\n  slack:\n    token: xoxb-xxxxx-yyyy-zzz\n    channel: kube-watch\n  hipchat:\n    token: \"\"\n    room: \"\"\n    url: \"\"\n  mattermost:\n    channel: \"\"\n    url: \"\"\n    username: \"\"\n  flock:\n    url: \"\"\n  webhook:\n    url: \"\"\n  cloudevent:\n    url: \"\"\nresource:\n  deployment: false\n  replicationcontroller: false\n  replicaset: false\n  daemonset: false\n  services: false\n  pod: true\n  job: false\n  node: false\n  clusterrole: false\n  clusterrolebinding: false\n  serviceaccount: false\n  persistentvolume: false\n  namespace: false\n  secret: false\n  configmap: false\n  ingress: false\n  event: true\n  coreevent: false\nnamespace: \"\"\n\n```\n\n\n## Resources\n\nTo manage the resources being watched, use the following command, changes will be saved to `$HOME/.kubewatch.yaml`.\n\n```\n$ kubewatch resource -h\n\nmanage resources to be watched\n\nUsage:\n  kubewatch resource [flags]\n  kubewatch resource [command]\n\nAvailable Commands:\n  add         adds specific resources to be watched\n  remove      remove specific resources being watched\n\nFlags:\n      \n      --clusterrolebinding      watch for cluster role bindings\n      --clusterrole             watch for cluster roles\n      --cm                      watch for plain configmaps\n      --deploy                  watch for deployments\n      --ds                      watch for daemonsets\n  -h, --help                    help for resource\n      --ing                     watch for ingresses\n      --job                     watch for jobs\n      --node                    watch for Nodes\n      --ns                      watch for namespaces\n      --po                      watch for pods\n      --pv                      watch for persistent volumes\n      --rc                      watch for replication controllers\n      --rs                      watch for replicasets\n      --sa                      watch for service accounts\n      --secret                  watch for plain secrets\n      --svc                     watch for services\n      --coreevent               watch for events from the kubernetes core api. (Old events api, replaced in kubernetes 1.19)\n\nUse \"kubewatch resource [command] --help\" for more information about a command.\n\n```\n\n### Add/Remove resource:\n```\n$ kubewatch resource add -h\n\nadds specific resources to be watched\n\nUsage:\n  kubewatch resource add [flags]\n\nFlags:\n  -h, --help   help for add\n\nGlobal Flags:\n      --clusterrole             watch for cluster roles\n      --clusterrolebinding      watch for cluster role bindings\n      --cm                      watch for plain configmaps\n      --deploy                  watch for deployments\n      --ds                      watch for daemonsets\n      --ing                     watch for ingresses\n      --job                     watch for jobs\n      --node                    watch for Nodes\n      --ns                      watch for namespaces\n      --po                      watch for pods\n      --pv                      watch for persistent volumes\n      --rc                      watch for replication controllers\n      --rs                      watch for replicasets\n      --sa                      watch for service accounts\n      --secret                  watch for plain secrets\n      --svc                     watch for services\n      --coreevent               watch for events from the kubernetes core api. (Old events api, replaced in kubernetes 1.19)\n\n```\n\n### Example:\n\n```console\n# rc, po and svc will be watched\n$ kubewatch resource add --rc --po --svc\n\n# rc, po and svc will be stopped from being watched\n$ kubewatch resource remove --rc --po --svc\n```\n\n### Changing log level\n\nIn case you want to change the default log level, add an environment variable named `LOG_LEVEL` with value from `trace/debug/info/warning/error` \n\n```yaml\nenv:\n- name: LOG_LEVEL\n  value: debug\n```\n\n### Changing log format\n\nIn case you want to change the log format to `json`, add an environment variable named `LOG_FORMATTER` with value `json`\n\n```yaml\nenv:\n- name: LOG_FORMATTER\n  value: json\n```\n\n# Build\n\n### Using go\n\nClone the repository anywhere:\n```console\n$ git clone https://github.com/bitnami-labs/kubewatch.git\n$ cd kubewatch\n$ go build\n```\nor\n\nYou can also use the Makefile directly:\n\n```console\n$ make build\n```\n\n#### Prerequisites\n\n- You need to have [Go](http://golang.org) (v1.5 or later)  installed. Make sure to set `$GOPATH`\n\n\n### Using Docker\n\n```console\n$ make docker-image\n$ docker images\nREPOSITORY          TAG                 IMAGE ID            CREATED              SIZE\nkubewatch           latest              919896d3cd90        3 minutes ago       27.9MB\n```\n#### Prerequisites\n\n- you need to have [docker](https://docs.docker.com/) installed.\n\n# Contribution\n\nRefer to the [contribution guidelines](docs/CONTRIBUTION.md) to get started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobusta-dev%2Fkubewatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobusta-dev%2Fkubewatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobusta-dev%2Fkubewatch/lists"}