53 lines
1.3 KiB
Bash
53 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
release_name="longhorn"
|
|
release_namespace="longhorn-system"
|
|
selector="app.kubernetes.io/instance=${release_name}"
|
|
|
|
annotate_and_label() {
|
|
local scope="$1"
|
|
local kind="$2"
|
|
if [ "${scope}" = "namespaced" ]; then
|
|
kubectl -n "${release_namespace}" annotate "${kind}" -l "${selector}" \
|
|
meta.helm.sh/release-name="${release_name}" \
|
|
meta.helm.sh/release-namespace="${release_namespace}" \
|
|
--overwrite >/dev/null 2>&1 || true
|
|
kubectl -n "${release_namespace}" label "${kind}" -l "${selector}" \
|
|
app.kubernetes.io/managed-by=Helm --overwrite >/dev/null 2>&1 || true
|
|
else
|
|
kubectl annotate "${kind}" -l "${selector}" \
|
|
meta.helm.sh/release-name="${release_name}" \
|
|
meta.helm.sh/release-namespace="${release_namespace}" \
|
|
--overwrite >/dev/null 2>&1 || true
|
|
kubectl label "${kind}" -l "${selector}" \
|
|
app.kubernetes.io/managed-by=Helm --overwrite >/dev/null 2>&1 || true
|
|
fi
|
|
}
|
|
|
|
namespaced_kinds=(
|
|
configmap
|
|
service
|
|
serviceaccount
|
|
deployment
|
|
daemonset
|
|
job
|
|
role
|
|
rolebinding
|
|
)
|
|
|
|
cluster_kinds=(
|
|
clusterrole
|
|
clusterrolebinding
|
|
customresourcedefinition
|
|
priorityclass
|
|
)
|
|
|
|
for kind in "${namespaced_kinds[@]}"; do
|
|
annotate_and_label "namespaced" "${kind}"
|
|
done
|
|
|
|
for kind in "${cluster_kinds[@]}"; do
|
|
annotate_and_label "cluster" "${kind}"
|
|
done
|