3e6b9ae7ac
Co-authored-by: joshmeranda <joshua.meranda@gmail.com> |
||
---|---|---|
.. | ||
files | ||
templates | ||
Chart.yaml | ||
README.md | ||
values.yaml |
README.md
rancher-monitoring-crd
A Rancher chart that installs the CRDs used by rancher-monitoring.
How does this chart work?
This chart marshalls all of the CRD files placed in the crd-manifest
directory into a ConfigMap that is installed onto a cluster alongside relevant RBAC (ServiceAccount, ClusterRoleBinding, ClusterRole, and PodSecurityPolicy).
Once the relevant dependent resourcees are installed / upgraded / rolled back, this chart executes a post-install / post-upgrade / post-rollback Job that:
- Patches any existing versions of the CRDs contained within the
crd-manifest
on the cluster to setspec.preserveUnknownFields=false
; this step is required since, based on Kubernetes docs and a known workaround, such CRDs cannot be upgraded normally fromapiextensions.k8s.io/v1beta1
toapiextensions.k8s.io/v1
. - Runs a
kubectl apply
on the CRDs that are contained within the crd-manifest ConfigMap to upgrade CRDs in the cluster
On an uninstall, this chart executes a separate post-delete Job that:
- Patches any existing versions of the CRDs contained within
crd-manifest
on the cluster to setmetadata.finalizers=[]
- Runs a
kubectl delete
on the CRDs that are contained within the crd-manifest ConfigMap to clean up the CRDs from the cluster
Note: If the relevant CRDs already existed in the cluster at the time of install, this chart will absorb ownership of the lifecycle of those CRDs; therefore, on a helm uninstall
, those CRDs will also be removed from the cluster alongside this chart.
Why can't we just place the CRDs in the templates/ directory of the main chart?
In Helm today, you cannot declare a CRD and declare a resource of that CRD's kind in templates/ without encountering a failure on render.
[Helm 3] Why can't we just place the CRDs in the crds/ directory of the main chart?
The Helm 3 crds/
directory only supports the installation of CRDs, but does not support the upgrade and removal of CRDs, unlike what this chart facilitiates.