Giter VIP home page Giter VIP logo

node-labeler-operator's Introduction

node-labeler-operator

kubernetes operator to auto label/taint/annotate node based on a CRD.

GitHub release Travis Go Report Card Docker Build Status

NOTE: This is an alpha-status project. We do regular tests on the code and functionality, but we can not assure a production-ready stability.

Requirements

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.

Usage

Installation

In order to create node-labeler-operator inside a Kubernetes cluster, the operator has to be deployed. It can be done with a deployment.

kubectl run node-labeler-operator --image=barpilot/node-labeler-operator --namespace=kube-system

Configuration

node-labeler-operator is using a CRD for its configuration. Here is a description of an object:

apiVersion: labeler.barpilot.io/v1alpha1
kind: Labeler
metadata:
  name: example
  labels:
    operator: node-labeler-operator
spec:
  nodeSelectorTerms:
  - matchExpressions:
    - key: kubernetes.io/hostname
      operator: In
      values:
      - minikube
    - key: beta.kubernetes.io/os
      operator: In
      values:
      - linux
  - matchExpressions:
    - key: another-node-label-key
      operator: Exists
  merge:
    labels:
      minikube: "true"
    annotations:
      node-labeler-operator: works
    taints:
    - key: dedicated
      value: foo
      effect: PreferNoSchedule

for more information about nodeSelectorTerms have a look at: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Cases

  • VM on private cloud provider.
    Nodes are removed on shutdown and so lose theirs attributes.

Features

  • Node selection
  • Adding attributes
    • Labels
    • Annotations
    • Taints
  • Removing attributes
  • Overwrite attributes

node-labeler-operator's People

Contributors

guilhem avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.