Helm chart configuration¶
Helm chart configuration refers to the process of customizing application deployments by defining specific parameters. These parameters are structured as key-value pairs and allow users to override default settings defined in the chart's values.yaml file^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md].
Configuration can be supplied in several ways, most commonly using the --set argument during installation or by providing a custom YAML file^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md].
Common Configuration Areas¶
While specific parameters vary by application, Helm charts generally categorize configuration into several standard areas:
Image and Container Settings¶
These settings control the container image used by the deployment.
* Image: Defines the repository, tag, and pull policy (e.g., IfNotPresent)[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md][400-devops-06-kubernetes-devops-helm-terraform-helm-helm-charts-metrics-server-readme.md].
* Resources: Sets CPU and memory requests/limits for the pod[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md][400-devops-06-kubernetes-devops-helm-terraform-helm-helm-charts-metrics-server-readme.md].
Kubernetes Resources¶
These parameters define the behavior of the Kubernetes objects created by the chart.
* ReplicaCount: Specifies the number of pods to run[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md][400-devops-06-kubernetes-devops-helm-terraform-helm-helm-charts-metrics-server-readme.md].
* Node Selector/Affinity/Tolerations: Controls scheduling and Pod placement on specific nodes[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md][400-devops-06-kubernetes-devops-helm-terraform-helm-helm-charts-metrics-server-readme.md].
* Pod Disruption Budget: Configures minAvailable or maxUnavailable to ensure availability during voluntary disruptions[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md][400-devops-06-kubernetes-devops-helm-terraform-helm-helm-charts-metrics-server-readme.md].
* Probes: Configures liveness and readiness probes (e.g., initial delay, timeout, HTTP paths)[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md][400-devops__06-Kubernetes__devops-helm__helm-jenkins__VALUES_SUMMARY.md].
Networking and Services¶
These parameters manage how the application is exposed within the cluster or externally.
* Service: Defines the service type (e.g., ClusterIP, LoadBalancer), port, and annotations[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md][400-devops__06-Kubernetes__devops-helm__helm-jenkins__VALUES_SUMMARY.md].
* Ingress: Enables and configures Ingress rules, including hostnames, paths, and TLS settings[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md][400-devops__06-Kubernetes__devops-helm__helm-jenkins__VALUES_SUMMARY.md].
Security and Access Control¶
Security configurations manage permissions and identities.
* RBAC: Enables or disables Role-Based Access Control creation[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-charts-metrics-server-readme.md][400-devops__06-Kubernetes__devops-helm__helm-jenkins__VALUES_SUMMARY.md].
* ServiceAccount: Controls the creation of the service account and its name[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-charts-metrics-server-readme.md][400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md].
* Security Context: Defines pod-level security settings (e.g., runAsUser, fsGroup) and container-specific settings (e.g., readOnlyRootFilesystem)[400-devops__06-Kubernetes__devops-helm__helm-jenkins__VALUES_SUMMARY.md][400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md].
Persistence¶
These settings manage data storage for stateful applications. * Persistence: Enables the use of a Persistent Volume Claim (PVC) and specifies size, storage class, and access mode^[400-devops__06-Kubernetes__devops-helm__helm-jenkins__VALUES_SUMMARY.md].
Application-Specific Configuration¶
Beyond generic Kubernetes settings, charts expose parameters specific to the application's logic.
- Dashboards: The Kubernetes Dashboard chart, for instance, allows enabling the Metrics scraper via
metricsScraper.enabled^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]. - Jenkins: The Jenkins chart offers extensive configuration for [[Jenkins Configuration as Code (JCasC)]], allowing users to define security realms, authorization strategies, and initialization scripts via
controller.JCasC.configScripts^[400-devops__06-Kubernetes__devops-helm__helm-jenkins__VALUES_SUMMARY.md].
Methods of Application¶
Configuration can be applied during installation or upgrade using the following methods:
- Command-line arguments: Use
--set key=valueto override specific parameters^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]. - YAML Files: Use
-f values.yamlto supply a file containing multiple overrides^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md].
Sources¶
- 400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md
- 400-devops-06-kubernetes-devops-helm-terraform-helm-helm-charts-metrics-server-readme.md
- 400-devops__06-Kubernetes__devops-helm__helm-jenkins__VALUES_SUMMARY.md