Add node-labeler helm chart

Change-Id: I286c283272a86eff81b479a9dad29eb2d958fecc
This commit is contained in:
okozachenko 2020-07-18 00:31:46 +03:00
parent 22efae206b
commit 22612302cf
8 changed files with 139 additions and 0 deletions

11
node-labeler/Chart.yaml Executable file
View File

@ -0,0 +1,11 @@
---
apiVersion: v1
name: node-labeler
version: 0.5.3
description: Node labeler for Kubernetes
home: https://github.com/vexxhost/node-labeler
maintainers:
- name: Mohammed Naser
email: mnaser@vexxhost.com
url: https://github.com/mnaser
appVersion: v0.1.1

View File

@ -0,0 +1,41 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "node-labeler.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "node-labeler.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Generate basic labels
*/}}
{{- define "node-labeler.labels" }}
app.kubernetes.io/name: {{ include "node-labeler.fullname" . }}
app.kubernetes.io/instance: {{ include "node-labeler.chart" . }}
app.kubernetes.io/version: {{ .Chart.Version }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "node-labeler.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}

View File

@ -0,0 +1,15 @@
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: {{ include "node-labeler.fullname" . }}
labels:
{{ include "node-labeler.labels" . | indent 4 }}
rules:
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- patch

View File

@ -0,0 +1,15 @@
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: {{ include "node-labeler.fullname" . }}
labels:
{{ include "node-labeler.labels" . | indent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ include "node-labeler.fullname" . }}
subjects:
- kind: ServiceAccount
name: {{ include "node-labeler.fullname" . }}
namespace: {{ .Release.Namespace }}

View File

@ -0,0 +1,41 @@
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: {{ include "node-labeler.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{ include "node-labeler.labels" . | indent 4 }}
spec:
selector:
matchLabels:
{{ include "node-labeler.labels" . | indent 6 }}
template:
metadata:
labels:
{{ include "node-labeler.labels" . | indent 8 }}
spec:
tolerations:
- operator: Exists
effect: NoSchedule
serviceAccountName: {{ include "node-labeler.fullname" . }}
containers:
- name: node-labeler
image: vexxhost/node-labeler:latest
resources:
requests:
cpu: "100m"
memory: "50Mi"
limits:
cpu: "100m"
memory: "50Mi"
env:
- name: NODE
valueFrom:
fieldRef:
fieldPath: spec.nodeName
nodeSelector:
kubernetes.io/arch: amd64
updateStrategy:
rollingUpdate:
maxUnavailable: 10%

View File

@ -0,0 +1,8 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "node-labeler.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{ include "node-labeler.labels" . | indent 4 }}

1
node-labeler/values.yaml Executable file
View File

@ -0,0 +1 @@
---

7
zuul.d/project.yaml Normal file
View File

@ -0,0 +1,7 @@
- project:
check:
jobs:
- chart-testing-lint
gate:
jobs:
- chart-testing-lint