Skip to content

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:

  1. Command-line arguments: Use --set key=value to override specific parameters^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md].
  2. YAML Files: Use -f values.yaml to 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