{"id":24308080,"url":"https://github.com/bpineau/kube-deployments-notifier","last_synced_at":"2025-06-28T02:34:49.949Z","repository":{"id":52827347,"uuid":"113417802","full_name":"bpineau/kube-deployments-notifier","owner":"bpineau","description":"Kubernetes controller that notify a remote HTTP API on deployments changes","archived":false,"fork":false,"pushed_at":"2021-04-17T17:18:18.000Z","size":96,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-21T14:27:30.432Z","etag":null,"topics":["controller","golang","kubernetes","notifier"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bpineau.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}},"created_at":"2017-12-07T07:30:26.000Z","updated_at":"2024-06-21T14:27:30.433Z","dependencies_parsed_at":"2022-08-22T21:31:17.452Z","dependency_job_id":null,"html_url":"https://github.com/bpineau/kube-deployments-notifier","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bpineau%2Fkube-deployments-notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bpineau%2Fkube-deployments-notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bpineau%2Fkube-deployments-notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bpineau%2Fkube-deployments-notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bpineau","download_url":"https://codeload.github.com/bpineau/kube-deployments-notifier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234314435,"owners_count":18812696,"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":["controller","golang","kubernetes","notifier"],"created_at":"2025-01-17T04:47:21.884Z","updated_at":"2025-01-17T04:47:22.449Z","avatar_url":"https://github.com/bpineau.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kube-deployments-notifier\n\n[![Build Status](https://github.com/bpineau/kube-deployments-notifier/workflows/CI/badge.svg)](https://github.com/bpineau/kube-deployments-notifier/actions)\n[![Coverage Status](https://coveralls.io/repos/github/bpineau/kube-deployments-notifier/badge.svg?branch=master)](https://coveralls.io/github/bpineau/kube-deployments-notifier?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/bpineau/kube-deployments-notifier)](https://goreportcard.com/report/github.com/bpineau/kube-deployments-notifier)\n\nAn example Kubernetes controller that list and watch deployments, and send\nthem as json payload to a remote API endpoint.\n\n## Build\n\nAssuming you have go 1.14:\n\n```shell\nmake build\n```\n\n## Usage\n\nThe daemon may run either as a pod, or outside of the Kubernetes cluster.\nHe should find the Kubernetes api-server automatically (or you can use the\n\"-s\", \"-x\" or \"-k\" flags). You can pass parameters from cli args, env, config\nfiles, or both.\n\nExample:\n```\nkube-deployments-notifier \\\n  -l 'vendor=mycompany,app!=mmp-database' \\\n  -t Authorization -a \"Bearer vbnf3hjklp5iuytre\" \\\n  -e http://myapiserver:8042 \n```\n\nThe command line flags are (all optionals):\n```\nUsage:\n  kube-deployments-notifier [flags]\n\nFlags:\n  -s, --api-server string      kube api server url\n  -x, --context string         kube context\n  -c, --config string          configuration file (default \"/etc/kdn/kube-deployments-notifier.yaml\")\n  -d, --dry-run                dry-run mode\n  -e, --endpoint string        API endpoint\n  -l, --filter string          Label filter\n  -p, --healthcheck-port int   port for answering healthchecks\n  -h, --help                   help for kube-deployments-notifier\n  -k, --kube-config string     kube config path\n  -v, --log-level string       log level (default \"debug\")\n  -o, --log-output string      log output (default \"stderr\")\n  -r, --log-server string      log server (if using syslog)\n  -i, --resync-interval int    resync interval in seconds (0 to disable) (default 900)\n  -t, --token-header string    token header name\n  -a, --token-value string     token header value\n```\n\nUsing an (optional) configuration file:\n```yaml\ndry-run: false\nhealthcheck-port: 8080\napi-server: http://example.com:8080\nendpoint: https://my-api-endpoint/foo/bar\ntoken-header: Authorization\ntoken-value: \"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9\"\nfilter: \"vendor=mycompany,app!=mmp-database\"\nresync-interval: 900\n\nlog:\n  output: \"stdout\"\n  level: \"debug\"\n```\n\nThe environment variable consumed by kube-deployments-notifier are option names prefixed\nby ```KDN_``` and using underscore instead of dash. Except KUBECONFIG,\nused without a prefix (to match kubernetes conventions).\n\n## Docker image\n\nA ready to use, public docker image is available at [Docker Hub](https://hub.docker.com/r/bpineau/kube-deployments-notifier/), published at each release.\nYou can use it directly from your Kubernetes deployments, ie.\n\n```yaml\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: kube-deployments-notifier\n  namespace: kube-system\n  labels:\n    k8s-app: kube-deployments-notifier\nspec:\n  selector:\n    matchLabels:\n      k8s-app: kube-deployments-notifier\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        k8s-app: kube-deployments-notifier\n    spec:\n      serviceAccountName: kube-deployments-notifier\n      containers:\n        - name: kube-deployments-notifier\n          image: bpineau/kube-deployments-notifier:v0.6.0\n          args:\n            - --log-output=stdout\n            - --filter=vendor=mycompany,app!=mmp-database\n            - --endpoint=http://mycollector\n            - --healthcheck-port=8080\n          resources:\n            requests:\n              cpu: 0.1\n              memory: 50Mi\n            limits:\n              cpu: 0.2\n              memory: 100Mi\n          livenessProbe:\n            httpGet:\n              path: /health\n              port: 8080\n            timeoutSeconds: 5\n            initialDelaySeconds: 10\n\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: kube-deployments-notifier\n  namespace: kube-system\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: kube-deployments-notifier\n  namespace: kube-system\nrules:\n  - apiGroups:\n      - \"\"\n      - apps\n    resources:\n      - namespaces\n      - deployments\n    verbs:\n      - list\n      - get\n      - watch\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: kube-deployments-notifier\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: kube-deployments-notifier\nsubjects:\n  - kind: ServiceAccount\n    name: kube-deployments-notifier\n    namespace: kube-system\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbpineau%2Fkube-deployments-notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbpineau%2Fkube-deployments-notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbpineau%2Fkube-deployments-notifier/lists"}