Helm Tutorials: Global Values in Helm Chart

In Helm, you can define global values that are accessible across all templates within a chart. Global values are useful for defining configuration settings or variables that are common to multiple templates or can be shared across different parts of your chart.

To define global values in a Helm chart, follow these steps:

Step 1: Create or Modify the values.yaml File

In your chart’s root directory, open or create the values.yaml file. This file is where you can define your chart’s default values and override them during installation or upgrade.

Step 2: Define Global Values

Inside the values.yaml file, add a section for your global values. For example:

global:
  app:
    name: my-app
    version: 1.0.0
  environment: production

In this example, we have defined two global values: app and environment. The app value is a nested object with two properties, name and version, while environment is a simple string value.

Step 3: Accessing Global Values in Templates

To access the global values in your chart’s templates, you can use the .Values.global object. For example, to access the app.name global value in a template, you can use {{ .Values.global.app.name }}.

Here’s an example of how you can use a global value in a template:


apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.global.app.name }}-service
spec:
  selector:
    app: {{ .Values.global.app.name }}
  ports:
    - name: http
      port: 80
      targetPort: 8080
  type: LoadBalancer

In this example, we are using the global value app.name to dynamically generate the service name.

Step 4: Installing or Upgrading the Chart

When installing or upgrading the chart, you can override the global values by providing a custom values.yaml file or passing individual values using the --set flag.

For example, to override the global environment value during installation, you can use the following command:

helm install my-chart ./my-chart –set global.environment=staging

This will set the environment value to “staging” instead of the default “production”.

That’s it! You now know how to define and use global values in a Helm chart.

Rajesh Kumar
Follow me
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x