Commit e8bd5fc
chore(helm-chart): add commonLabels property (#462)
*Issue #, if available:* None
*Description of changes:* Adds a (fairly standard) `commonLabels`
property to the Helm chart to allow users to define labels across all
created resources. One example use case is putting labels denoting team
ownership, which is often desirable to require at resource creation time
(this is my use case 😆 but I am sure I am not the only person who'd find
this valuable)
I've tested this with and without `commonLabels` set to a value, and the
output is as expected in both cases.
One notable consideration here - conventions vary amongst Helm charts
for whether it's appropriate for `commonLabels` to be included in Pod
templates within an owning resource like a DaemonSet, or whether
`commonLabels` should apply just top-level resources. IIRC several
Bitnami charts, for instance, do **not** include `commonLabels` in
nested Pod template labels.
Personally, I have only ever found this (not including it on pods) a
frustrating convention - chances are if you want a label to be on every
top-level resource, you probably _also_ want them on managed
sub-resources, too. From my experience, the semantics here vary with a
roughly ~50/50 split between charts, although I don't claim to have been
exposed to a large enough sample size to speak with much authority here.
Accordingly, I've chosen to include it on pods here, which is also the
simplest way to do it within the existing chart structure.
`helm template .` with `commonLabels: { }` (as in PR; truncated long
resources for brevity):
```yaml
---
# Source: secrets-store-csi-driver-provider-aws/templates/rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: release-name-secrets-store-csi-driver-provider-aws
namespace: default
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
---
# Source: secrets-store-csi-driver-provider-aws/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: release-name-secrets-store-csi-driver-provider-aws-cluster-role
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
...
---
# Source: secrets-store-csi-driver-provider-aws/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: release-name-secrets-store-csi-driver-provider-aws-cluster-role-binding
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
...
---
# Source: secrets-store-csi-driver-provider-aws/templates/daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
namespace: default
name: release-name-secrets-store-csi-driver-provider-aws
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
spec:
updateStrategy:
type: RollingUpdate
selector:
matchLabels:
app: secrets-store-csi-driver-provider-aws
template:
metadata:
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
spec:
...
```
`helm template .` with `commonLabels: { frogs: true }` (truncated long
resources for brevity):
```yaml
---
# Source: secrets-store-csi-driver-provider-aws/templates/rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: release-name-secrets-store-csi-driver-provider-aws
namespace: default
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
frogs: true
---
# Source: secrets-store-csi-driver-provider-aws/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: release-name-secrets-store-csi-driver-provider-aws-cluster-role
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
frogs: true
...
---
# Source: secrets-store-csi-driver-provider-aws/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: release-name-secrets-store-csi-driver-provider-aws-cluster-role-binding
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
frogs: true
...
---
# Source: secrets-store-csi-driver-provider-aws/templates/daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
namespace: default
name: release-name-secrets-store-csi-driver-provider-aws
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
frogs: true
spec:
updateStrategy:
type: RollingUpdate
selector:
matchLabels:
app: secrets-store-csi-driver-provider-aws
template:
metadata:
labels:
helm.sh/chart: secrets-store-csi-driver-provider-aws-1.0.1
app.kubernetes.io/name: secrets-store-csi-driver-provider-aws
app.kubernetes.io/instance: release-name
app.kubernetes.io/managed-by: Helm
app: secrets-store-csi-driver-provider-aws
frogs: true
spec:
...
```
By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice.
Co-authored-by: Simon Marty <[email protected]>
Co-authored-by: Angad <[email protected]>1 parent a61cefd commit e8bd5fc
File tree
2 files changed
+4
-0
lines changed- charts/secrets-store-csi-driver-provider-aws
- templates
2 files changed
+4
-0
lines changedLines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
44 | 47 | | |
45 | 48 | | |
46 | 49 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
0 commit comments