From 46335b2b6e789f9d68388b55696de873af96c4dd Mon Sep 17 00:00:00 2001
From: Laszlo Rafael <rlacko99@gmail.com>
Date: Sun, 21 Aug 2022 18:16:41 +0200
Subject: [PATCH] Add priority classes chart

---
 infra/priority-classes/Chart.yaml             |  10 +++
 .../templates/00-priorityclass.yaml           |  14 ++++
 infra/priority-classes/templates/_helpers.tpl |  62 ++++++++++++++++++
 infra/priority-classes/upgrade.sh             |   2 +
 infra/priority-classes/values.yaml            |  13 ++++
 infra/priority-classes/values.yaml.secret     | Bin 0 -> 22 bytes
 6 files changed, 101 insertions(+)
 create mode 100644 infra/priority-classes/Chart.yaml
 create mode 100644 infra/priority-classes/templates/00-priorityclass.yaml
 create mode 100644 infra/priority-classes/templates/_helpers.tpl
 create mode 100755 infra/priority-classes/upgrade.sh
 create mode 100644 infra/priority-classes/values.yaml
 create mode 100644 infra/priority-classes/values.yaml.secret

diff --git a/infra/priority-classes/Chart.yaml b/infra/priority-classes/Chart.yaml
new file mode 100644
index 0000000..a1448aa
--- /dev/null
+++ b/infra/priority-classes/Chart.yaml
@@ -0,0 +1,10 @@
+apiVersion: v1
+name: priority-classes
+version: 1.0.0
+appVersion: 1.0.0
+description: Kubernetes additional priority classes
+keywords:
+  - k8s
+  - priorityClass
+
+# https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
diff --git a/infra/priority-classes/templates/00-priorityclass.yaml b/infra/priority-classes/templates/00-priorityclass.yaml
new file mode 100644
index 0000000..a4b3b8b
--- /dev/null
+++ b/infra/priority-classes/templates/00-priorityclass.yaml
@@ -0,0 +1,14 @@
+{{ $Dot := . }}
+{{- range .Values.priorityClasses }}
+apiVersion: scheduling.k8s.io/v1
+kind: PriorityClass
+metadata:
+  name: {{ .name }}
+  labels: 
+    {{- include "priority-classes.labels" $Dot | nindent 4 }}
+value: {{ .value }}
+globalDefault: {{ .globalDefault | default false }}
+description: {{ .description | quote }}
+
+---
+{{- end }}
diff --git a/infra/priority-classes/templates/_helpers.tpl b/infra/priority-classes/templates/_helpers.tpl
new file mode 100644
index 0000000..8394834
--- /dev/null
+++ b/infra/priority-classes/templates/_helpers.tpl
@@ -0,0 +1,62 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "priority-classes.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 "priority-classes.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 }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "priority-classes.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "priority-classes.labels" -}}
+helm.sh/chart: {{ include "priority-classes.chart" . }}
+{{ include "priority-classes.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "priority-classes.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "priority-classes.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "priority-classes.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "priority-classes.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/infra/priority-classes/upgrade.sh b/infra/priority-classes/upgrade.sh
new file mode 100755
index 0000000..ee03a6b
--- /dev/null
+++ b/infra/priority-classes/upgrade.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+../helm-upgrade.sh priority-classes kube-system
diff --git a/infra/priority-classes/values.yaml b/infra/priority-classes/values.yaml
new file mode 100644
index 0000000..8403a97
--- /dev/null
+++ b/infra/priority-classes/values.yaml
@@ -0,0 +1,13 @@
+priorityClasses:
+  - name: infra-critical
+    value: "1000000"
+    globalDefault: false
+    description: "This priority class should be used for critical infra components."
+  - name: infra-monitoring
+    value: "950000"
+    globalDefault: false
+    description: "This priority class should be used for infra monitoring components."
+  - name: infra-addon
+    value: "900000"
+    globalDefault: false
+    description: "This priority class should be used for infra addon components."
diff --git a/infra/priority-classes/values.yaml.secret b/infra/priority-classes/values.yaml.secret
new file mode 100644
index 0000000000000000000000000000000000000000..b5826d5462871e76bc1bb2238991fd6eec4ea9ac
GIT binary patch
literal 22
dcmZQ@_Y83kiVO&0;N89~dtcD3u!#u@?f_2o2c!T1

literal 0
HcmV?d00001

-- 
GitLab