{"id":13820158,"url":"https://github.com/barpilot/node-labeler-operator","last_synced_at":"2026-01-17T22:44:08.714Z","repository":{"id":132718730,"uuid":"129922705","full_name":"barpilot/node-labeler-operator","owner":"barpilot","description":"kubernetes operator to auto label/taint/annotate node based on CRD","archived":false,"fork":false,"pushed_at":"2019-07-05T10:27:22.000Z","size":4909,"stargazers_count":13,"open_issues_count":3,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-10T09:20:04.434Z","etag":null,"topics":["annotations","crd","kubernetes","kubernetes-operator","labels","operator","taint"],"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/barpilot.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}},"created_at":"2018-04-17T15:06:46.000Z","updated_at":"2025-02-17T17:03:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"19d18443-4c42-4a57-aa4a-96208636839d","html_url":"https://github.com/barpilot/node-labeler-operator","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barpilot%2Fnode-labeler-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barpilot%2Fnode-labeler-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barpilot%2Fnode-labeler-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barpilot%2Fnode-labeler-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barpilot","download_url":"https://codeload.github.com/barpilot/node-labeler-operator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254488605,"owners_count":22079457,"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":["annotations","crd","kubernetes","kubernetes-operator","labels","operator","taint"],"created_at":"2024-08-04T08:00:58.980Z","updated_at":"2026-01-17T22:44:08.701Z","avatar_url":"https://github.com/barpilot.png","language":"Go","readme":"# node-labeler-operator\nkubernetes operator to auto label/taint/annotate node based on a CRD.\n\n[![GitHub release](https://img.shields.io/github/release/barpilot/node-labeler-operator.svg)](https://github.com/barpilot/node-labeler-operator/releases)\n[![Travis](https://img.shields.io/travis/barpilot/node-labeler-operator.svg)](https://travis-ci.org/barpilot/node-labeler-operator)\n[![Go Report Card](https://goreportcard.com/badge/github.com/barpilot/node-labeler-operator)](https://goreportcard.com/report/github.com/barpilot/node-labeler-operator)\n[![Docker Build Status](https://img.shields.io/docker/build/barpilot/node-labeler-operator.svg)](https://hub.docker.com/r/barpilot/node-labeler-operator/)\n\nNOTE: This is an alpha-status project. We do regular tests on the code and functionality, but we can not assure a production-ready stability.\n\n## Requirements\n\n_node-labeler-operator_ is meant to be run on Kubernetes 1.8+. All dependecies have been vendored, so there's no need to any additional download.\n\n## Usage\n\n### Installation\n\nIn order to create _node-labeler-operator_ inside a Kubernetes cluster, the operator has to be deployed. It can be done with a deployment.\n```\nkubectl run node-labeler-operator --image=barpilot/node-labeler-operator --namespace=kube-system\n```\n\n### Configuration\n\n_node-labeler-operator_ is using a [CRD](https://kubernetes.io/docs/concepts/api-extension/custom-resources/) for its configuration.\nHere is a description of an object:\n```yaml\napiVersion: labeler.barpilot.io/v1alpha1\nkind: Labeler\nmetadata:\n  name: example\n  labels:\n    operator: node-labeler-operator\nspec:\n  nodeSelectorTerms:\n  - matchExpressions:\n    - key: kubernetes.io/hostname\n      operator: In\n      values:\n      - minikube\n    - key: beta.kubernetes.io/os\n      operator: In\n      values:\n      - linux\n  - matchExpressions:\n    - key: another-node-label-key\n      operator: Exists\n  merge:\n    labels:\n      minikube: \"true\"\n    annotations:\n      node-labeler-operator: works\n    taints:\n    - key: dedicated\n      value: foo\n      effect: PreferNoSchedule\n```\nfor more information about `nodeSelectorTerms` have a look at: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\n\n### Cases\n\n- VM on private cloud provider.  \nNodes are removed on shutdown and so lose theirs attributes.\n\n## Features\n- [x] Node selection\n- [x] Adding attributes\n  - [x] Labels\n  - [x] Annotations\n  - [x] Taints\n- [ ] Removing attributes\n- [ ] Overwrite attributes\n","funding_links":[],"categories":["kubernetes"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarpilot%2Fnode-labeler-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarpilot%2Fnode-labeler-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarpilot%2Fnode-labeler-operator/lists"}