diff --git a/content/k3s/latest/en/helm/_index.md b/content/k3s/latest/en/helm/_index.md index 574c36d6c66..652972c8bf7 100644 --- a/content/k3s/latest/en/helm/_index.md +++ b/content/k3s/latest/en/helm/_index.md @@ -66,6 +66,20 @@ spec: Content placed in `/var/lib/rancher/k3s/server/static/` can be accessed anonymously via the Kubernetes APIServer from within the cluster. This URL can be templated using the special variable `%{KUBERNETES_API}%` in the `spec.chart` field. For example, the packaged Traefik component loads its chart from `https://%{KUBERNETES_API}%/static/charts/traefik-1.81.0.tgz`. +**Note:** The `name` field should follow the Helm chart naming conventions. Refer [here](https://helm.sh/docs/chart_best_practices/conventions/#chart-names) to learn more. + +>**Notice on File Naming Requirements:** `HelmChart` and `HelmChartConfig` manifest filenames should adhere to Kubernetes object [naming restrictions](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/). The Helm Controller uses filenames to create objects; therefore, the filename must also align with the restrictions. Any related errors can be observed in the RKE2-server logs. The example below is an error generated from using underscores: +``` +level=error msg="Failed to process config: failed to process +/var/lib/rancher/rke2/server/manifests/rke2_ingress_daemonset.yaml: +Addon.k3s.cattle.io \"rke2_ingress_daemonset\" is invalid: metadata.name: +Invalid value: \"rke2_ingress_daemonset\": a lowercase RFC 1123 subdomain +must consist of lower case alphanumeric characters, '-' or '.', and must +start and end with an alphanumeric character (e.g. 'example.com', regex +used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9] +([-a-z0-9]*[a-z0-9])?)*')" +``` + ### Customizing Packaged Components with HelmChartConfig To allow overriding values for packaged components that are deployed as HelmCharts (such as Traefik), K3s versions starting with v1.19.0+k3s1 support customizing deployments via a HelmChartConfig resources. The HelmChartConfig resource must match the name and namespace of its corresponding HelmChart, and supports providing additional `valuesContent`, which is passed to the `helm` command as an additional value file.