Skip to content

Commit f67fb2b

Browse files
cleanup[BREAKING]: Templatize labels across resources
1 parent ce0517c commit f67fb2b

11 files changed

+69
-54
lines changed

gremlin/templates/_helpers.tpl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,26 @@ Create chart name and version as used by the chart label.
3131
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
3232
{{- end -}}
3333

34+
{{/*
35+
Common labels
36+
*/}}
37+
{{- define "gremlin.labels" -}}
38+
helm.sh/chart: {{ include "gremlin.chart" . }}
39+
{{ include "gremlin.selectorLabels" . }}
40+
{{- if .Chart.AppVersion }}
41+
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
42+
{{- end }}
43+
app.kubernetes.io/managed-by: {{ .Release.Service }}
44+
{{- end }}
45+
46+
{{/*
47+
Selector labels
48+
*/}}
49+
{{- define "gremlin.selectorLabels" -}}
50+
app.kubernetes.io/name: {{ include "gremlin.name" . }}
51+
app.kubernetes.io/instance: {{ .Release.Name }}
52+
{{- end }}
53+
3454
{{/*
3555
Because we've evolved the recommended way to pass the secret name over time, we hide the following order of operations behind this computed value:
3656
In later versions of this chart, we will remove the use of the fallback value of `gremlin-team-cert`

gremlin/templates/apparmor-configmap.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ kind: ConfigMap
44
metadata:
55
name: {{ .Release.Name }}-apparmor-profile-content
66
namespace: {{ .Release.Namespace }}
7+
labels:
8+
{{- include "gremlin.labels" . | nindent 4 }}
79
data:
810
agent_apparmor.profile: |-
911
{{ .Files.Get "agent_apparmor.profile" | nindent 4 | trim }}

gremlin/templates/apparmor-loader.yaml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,19 @@ metadata:
66
# Namespace must match that of the ConfigMap.
77
namespace: {{ .Release.Namespace}}
88
labels:
9-
daemon: apparmor-loader
10-
helm.sh/chart: {{ include "gremlin.chart" . }}
11-
app.kubernetes.io/instance: {{ .Release.Name }}
12-
app.kubernetes.io/managed-by: {{ .Release.Service }}
13-
version: v1
9+
{{- include "gremlin.labels" . | nindent 4 }}
10+
app.kubernetes.io/component: apparmor-loader
1411
spec:
1512
selector:
1613
matchLabels:
17-
daemon: apparmor-loader
14+
{{- include "gremlin.selectorLabels" . | nindent 6 }}
15+
app.kubernetes.io/component: apparmor-loader
1816
template:
1917
metadata:
2018
name: apparmor-loader
2119
labels:
22-
daemon: apparmor-loader
23-
helm.sh/chart: {{ include "gremlin.chart" . }}
24-
app.kubernetes.io/instance: {{ .Release.Name }}
25-
app.kubernetes.io/managed-by: {{ .Release.Service }}
26-
version: v1
20+
{{- include "gremlin.labels" . | nindent 8 }}
21+
app.kubernetes.io/component: apparmor-loader
2722
{{- if .Values.gremlin.podSecurity.seccomp.enabled }}
2823
annotations:
2924
container.seccomp.security.alpha.kubernetes.io/{{ .Chart.Name }}: {{ .Values.gremlin.podSecurity.seccomp.profile }}

gremlin/templates/chao-deployment.yaml

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22
apiVersion: apps/v1
33
kind: Deployment
44
metadata:
5+
name: chao
6+
namespace: {{ .Release.Namespace }}
57
labels:
6-
app.kubernetes.io/instance: chao
7-
app.kubernetes.io/name: chao
8-
helm.sh/chart: {{ include "gremlin.chart" . }}
9-
app.kubernetes.io/version: "1"
8+
{{- include "gremlin.labels" . | nindent 4 }}
9+
app.kubernetes.io/component: chao
1010
{{- if .Values.chao.podLabels }}
1111
{{- toYaml .Values.chao.podLabels | nindent 4 }}
1212
{{- end }}
13-
name: chao
14-
namespace: {{ .Release.Namespace }}
1513
spec:
1614
replicas: 1
1715
{{- if .Values.chao.updateStrategy }}
@@ -20,16 +18,13 @@ spec:
2018
{{- end }}
2119
selector:
2220
matchLabels:
23-
app.kubernetes.io/instance: chao
24-
app.kubernetes.io/name: chao
25-
app.kubernetes.io/version: "1"
21+
{{ include "gremlin.selectorLabels" . | nindent 6 }}
22+
app.kubernetes.io/component: chao
2623
template:
2724
metadata:
2825
labels:
29-
app.kubernetes.io/instance: chao
30-
app.kubernetes.io/name: chao
31-
helm.sh/chart: {{ include "gremlin.chart" . }}
32-
app.kubernetes.io/version: "1"
26+
{{ include "gremlin.labels" . | nindent 8 }}
27+
app.kubernetes.io/component: chao
3328
{{- if .Values.chao.podLabels }}
3429
{{- toYaml .Values.chao.podLabels | nindent 8 }}
3530
{{- end }}

gremlin/templates/chao-service-account.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ kind: ServiceAccount
55
metadata:
66
name: chao
77
namespace: {{ .Release.Namespace }}
8+
labels:
9+
{{- include "gremlin.labels" . | nindent 4 }}
10+
app.kubernetes.io/component: chao
11+
{{- if .Values.chao.serviceAccount.labels }}
12+
{{- toYaml .Values.chao.serviceAccount.labels | nindent 4 }}
13+
{{- end }}
814
annotations:
915
{{- with .Values.chao.serviceAccount.annotations }}
1016
{{- toYaml . | nindent 4 }}
@@ -29,7 +35,7 @@ rules:
2935
verbs: ["get", "watch", "list"]
3036
- apiGroups: ["argoproj.io"]
3137
resources: ["rollouts"]
32-
verbs: ["get", "list", "watch"]
38+
verbs: ["get", "list", "watch"]
3339
---
3440
apiVersion: rbac.authorization.k8s.io/v1
3541
kind: ClusterRoleBinding

gremlin/templates/daemonset.yaml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,25 @@ metadata:
44
name: {{ include "gremlin.fullname" . }}
55
namespace: {{ .Release.Namespace }}
66
labels:
7-
app.kubernetes.io/name: {{ include "gremlin.name" . }}
8-
helm.sh/chart: {{ include "gremlin.chart" . }}
9-
app.kubernetes.io/instance: {{ .Release.Name }}
10-
app.kubernetes.io/managed-by: {{ .Release.Service }}
11-
version: v1
7+
{{- include "gremlin.labels" . | nindent 4 }}
8+
app.kubernetes.io/component: agent
129
{{- if .Values.gremlin.podLabels }}
1310
{{- toYaml .Values.gremlin.podLabels | nindent 4 }}
1411
{{- end }}
1512
spec:
1613
selector:
1714
matchLabels:
18-
app.kubernetes.io/name: {{ include "gremlin.name" . }}
15+
{{ include "gremlin.selectorLabels" . | nindent 6 }}
16+
app.kubernetes.io/component: agent
1917
{{- if .Values.gremlin.updateStrategy }}
2018
updateStrategy:
2119
{{- toYaml .Values.gremlin.updateStrategy | nindent 4 }}
2220
{{- end }}
2321
template:
2422
metadata:
2523
labels:
26-
app.kubernetes.io/name: {{ include "gremlin.name" . }}
27-
helm.sh/chart: {{ include "gremlin.chart" . }}
28-
app.kubernetes.io/instance: {{ .Release.Name }}
29-
app.kubernetes.io/managed-by: {{ .Release.Service }}
30-
version: v1
24+
{{ include "gremlin.labels" . | nindent 8 }}
25+
app.kubernetes.io/component: agent
3126
{{- if .Values.gremlin.podLabels }}
3227
{{- toYaml .Values.gremlin.podLabels | nindent 8 }}
3328
{{- end }}

gremlin/templates/gremlin-scc.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
kind: SecurityContextConstraints
44
apiVersion: security.openshift.io/v1
55
metadata:
6+
name: gremlin
7+
labels:
8+
{{- include "gremlin.labels" . | nindent 4 }}
69
annotations:
710
kubernetes.io/description: 'This SCC provides as many restrictions from the `restricted` SCC as possible while
811
allowing host mounts, any UID by a pod, and forces the process to run as the gremlin.process SELinux type. This is
912
intended to be used solely by Gremlin. WARNING: this SCC allows host file system access as root Grant with caution.'
10-
name: gremlin
1113
allowHostDirVolumePlugin: {{ .Values.gremlin.podSecurity.securityContextConstraints.allowHostDirVolumePlugin }}
1214
allowHostIPC: false
1315
allowHostNetwork: {{ .Values.gremlin.hostNetwork }}

gremlin/templates/gremlin-seccomp-configmap.yaml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@ metadata:
66
name: {{ template "gremlin.fullname" . }}-seccomp
77
namespace: {{ .Release.Namespace }}
88
labels:
9-
helm.sh/chart: {{ include "gremlin.chart" . }}
10-
app.kubernetes.io/name: {{ include "gremlin.fullname" . }}
11-
app.kubernetes.io/instance: {{ .Release.Name }}
12-
app.kubernetes.io/managed-by: {{ .Release.Service }}
13-
app.kubernetes.io/version: "1"
9+
{{- include "gremlin.labels" . | nindent 4 }}
1410
data:
1511
# The following profile extends Docker's default seccomp profile, adding `keyctl` and `pivot_root` to the list of
1612
# allowed syscalls.
@@ -840,4 +836,4 @@ data:
840836
}
841837
]
842838
}
843-
{{- end }}
839+
{{- end }}

gremlin/templates/gremlin-service-account.yaml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ kind: ServiceAccount
55
metadata:
66
name: gremlin
77
namespace: {{ .Release.Namespace }}
8+
labels:
9+
{{- include "gremlin.labels" . | nindent 4 }}
10+
app.kubernetes.io/component: agent
11+
{{- if .Values.chao.serviceAccount.labels }}
12+
{{- toYaml .Values.chao.serviceAccount.labels | nindent 4 }}
13+
{{- end }}
814
annotations:
915
{{- with .Values.gremlin.serviceAccount.annotations }}
1016
{{- toYaml . | nindent 4 }}
@@ -14,6 +20,8 @@ apiVersion: rbac.authorization.k8s.io/v1
1420
kind: ClusterRole
1521
metadata:
1622
name: gremlin-metadata-reader
23+
labels:
24+
{{- include "gremlin.labels" . | nindent 4 }}
1725
rules:
1826
- apiGroups: [""]
1927
resources:
@@ -32,6 +40,8 @@ apiVersion: rbac.authorization.k8s.io/v1
3240
kind: ClusterRoleBinding
3341
metadata:
3442
name: gremlin-metadata-reader
43+
labels:
44+
{{- include "gremlin.labels" . | nindent 4 }}
3545
subjects:
3646
- kind: ServiceAccount
3747
name: gremlin
@@ -78,7 +88,8 @@ kind: Role
7888
metadata:
7989
name: scc:gremlin
8090
labels:
81-
addonmanager.kubernetes.io/mode: EnsureExists
91+
{{- include "gremlin.labels" . | nindent 4 }}
92+
app.kubernetes.io/component: agent addonmanager.kubernetes.io/mode: EnsureExists
8293
rules:
8394
- apiGroups: ['security.openshift.io']
8495
resources: ['securitycontextconstraints']
@@ -91,6 +102,7 @@ kind: RoleBinding
91102
metadata:
92103
name: default:gremlin
93104
labels:
105+
{{- include "gremlin.labels" . | nindent 4 }}
94106
addonmanager.kubernetes.io/mode: EnsureExists
95107
roleRef:
96108
apiGroup: rbac.authorization.k8s.io

gremlin/templates/secret-ssl-cert-file.yaml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@ metadata:
66
name: ssl-cert-file
77
namespace: {{ .Release.Namespace }}
88
labels:
9-
app.kubernetes.io/name: {{ include "gremlin.name" . }}
10-
helm.sh/chart: {{ include "gremlin.chart" . }}
11-
app.kubernetes.io/instance: {{ .Release.Name }}
12-
app.kubernetes.io/managed-by: {{ .Release.Service }}
13-
version: v1
9+
{{- include "gremlin.labels" . | nindent 4 }}
1410
type: kubernetes.io/Opaque
1511
data:
1612
certfile.pem: {{ default .Values.ssl.certFile | toString | b64enc }}

0 commit comments

Comments
 (0)