Skip to content

Commit d86707d

Browse files
committed
charts: add webhook to node-disk-manager
Signed-off-by: Vicente Cheng <[email protected]>
1 parent 41a1c4c commit d86707d

File tree

5 files changed

+117
-9
lines changed

5 files changed

+117
-9
lines changed

charts/harvester-node-disk-manager/templates/_helpers.tpl

+21
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,27 @@ app.kubernetes.io/name: {{ include "harvester-node-disk-manager.name" . }}
5050
app.kubernetes.io/instance: {{ .Release.Name }}
5151
{{- end }}
5252

53+
{{/*
54+
Webhook labels
55+
*/}}
56+
{{- define "harvester-node-disk-manager-webhook.labels" -}}
57+
helm.sh/chart: {{ include "harvester-node-disk-manager.chart" . }}
58+
{{ include "harvester-node-disk-manager-webhook.selectorLabels" . }}
59+
{{- if .Chart.AppVersion }}
60+
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
61+
{{- end }}
62+
app.kubernetes.io/managed-by: {{ .Release.Service }}
63+
app.kubernetes.io/component: webhook
64+
{{- end }}
65+
66+
{{/*
67+
Webhook Selector labels
68+
*/}}
69+
{{- define "harvester-node-disk-manager-webhook.selectorLabels" -}}
70+
app.kubernetes.io/name: {{ include "harvester-node-disk-manager.name" . }}-webhook
71+
app.kubernetes.io/instance: {{ .Release.Name }}
72+
{{- end }}
73+
5374
{{/*
5475
Create the name of the service account to use
5576
*/}}

charts/harvester-node-disk-manager/templates/daemonset.yaml

-4
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,6 @@ spec:
5050
- name: NDM_AUTO_PROVISION_FILTER
5151
value: {{ . | join "," | quote }}
5252
{{- end }}
53-
{{- with .Values.rescanInterval }}
54-
- name: NDM_RESCAN_INTERVAL
55-
value: {{ . | quote }}
56-
{{- end }}
5753
{{- with .Values.maxConcurrentOps }}
5854
- name: NDM_MAX_CONCURRENT_OPS
5955
value: {{ . | quote }}

charts/harvester-node-disk-manager/templates/rbac.yaml

+40
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,43 @@ subjects:
3535
- kind: ServiceAccount
3636
name: {{ include "harvester-node-disk-manager.name" . }}
3737
namespace: {{ .Release.Namespace }}
38+
---
39+
apiVersion: v1
40+
kind: ServiceAccount
41+
metadata:
42+
name: harvester-node-disk-manager-webhook
43+
namespace: {{ .Release.Namespace }}
44+
---
45+
apiVersion: rbac.authorization.k8s.io/v1
46+
kind: ClusterRole
47+
metadata:
48+
name: harvester-node-disk-manager-webhook
49+
rules:
50+
- apiGroups: [ "" ]
51+
resources: [ "secrets", "configmaps" ]
52+
verbs: [ "*" ]
53+
- apiGroups: [ "harvesterhci.io" ]
54+
resources: [ "blockdevices" ]
55+
verbs: [ "*" ]
56+
- apiGroups: [ "apiregistration.k8s.io" ]
57+
resources: [ "apiservices" ]
58+
verbs: [ "get", "watch", "list" ]
59+
- apiGroups: [ "apiextensions.k8s.io" ]
60+
resources: [ "customresourcedefinitions" ]
61+
verbs: [ "get", "watch", "list" ]
62+
- apiGroups: [ "admissionregistration.k8s.io" ]
63+
resources: [ "validatingwebhookconfigurations", "mutatingwebhookconfigurations" ]
64+
verbs: [ "*" ]
65+
---
66+
apiVersion: rbac.authorization.k8s.io/v1
67+
kind: ClusterRoleBinding
68+
metadata:
69+
name: harvester-node-disk-manager-webhook
70+
roleRef:
71+
apiGroup: rbac.authorization.k8s.io
72+
kind: ClusterRole
73+
name: harvester-node-disk-manager-webhook
74+
subjects:
75+
- kind: ServiceAccount
76+
name: harvester-node-disk-manager-webhook
77+
namespace: {{ .Release.Namespace }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
namespace: {{ .Release.Namespace }}
6+
labels:
7+
{{- include "harvester-node-disk-manager-webhook.labels" . | nindent 4 }}
8+
name: harvester-node-disk-manager-webhook
9+
spec:
10+
replicas: {{ .Values.webhook.replicas }}
11+
selector:
12+
matchLabels:
13+
{{- include "harvester-node-disk-manager-webhook.selectorLabels" . | nindent 6 }}
14+
template:
15+
metadata:
16+
labels:
17+
{{- include "harvester-node-disk-manager-webhook.labels" . | nindent 8 }}
18+
spec:
19+
serviceAccountName: harvester-node-disk-manager-webhook
20+
containers:
21+
- name: harvester-node-disk-manager-webhook
22+
image: "{{ .Values.webhook.image.repository }}:{{ .Values.webhook.image.tag | default .Chart.AppVersion }}"
23+
imagePullPolicy: {{ .Values.webhook.image.pullPolicy }}
24+
env:
25+
- name: NAMESPACE
26+
valueFrom:
27+
fieldRef:
28+
fieldPath: metadata.namespace
29+
command:
30+
- node-disk-manager-webhook
31+
---
32+
apiVersion: v1
33+
kind: Service
34+
metadata:
35+
name: harvester-node-disk-manager-webhook
36+
namespace: {{ .Release.Namespace }}
37+
spec:
38+
type: ClusterIP
39+
selector:
40+
{{- include "harvester-node-disk-manager-webhook.selectorLabels" . | nindent 4 }}
41+
ports:
42+
- name: https
43+
port: 443
44+
protocol: TCP
45+
targetPort: {{ .Values.webhook.httpsPort }}

charts/harvester-node-disk-manager/values.yaml

+11-5
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,19 @@
44

55
image:
66
repository: rancher/harvester-node-disk-manager
7-
pullPolicy: Always
7+
pullPolicy: IfNotPresent
88
# Overrides the image tag whose default is the chart appVersion.
99
tag: "master-head"
1010

11+
webhook:
12+
replicas: 1
13+
image:
14+
repository: rancher/harvester-node-disk-manager-webhook
15+
pullPolicy: IfNotPresent
16+
# Overrides the image tag whose default is the chart appVersion.
17+
tag: "master-head"
18+
httpsPort: 8443
19+
1120
imagePullSecrets: []
1221
nameOverride: ""
1322
fullnameOverride: ""
@@ -67,15 +76,12 @@ autoProvisionFilter: []
6776
# - /dev/sda?
6877
# - /dev/nvme0n1p1
6978

70-
# Specify the interval of device rescanning of the node (in seconds)
71-
rescanInterval:
72-
7379
# Sepcify how many concurrent ops we could execute at the same time
7480
maxConcurrentOps:
7581

7682
# Perform auto GPT partition generating if a disk can not be globally identified
7783
# Default to false.
7884
autoGPTGenerate:
7985

80-
# Enable debug logging, default to false
86+
# Enable debug logging
8187
debug: false

0 commit comments

Comments
 (0)