Skip to content

Introduction

The charts make heavy use of Values yaml files to pass configuration details to the Helm Charts. As defined by Helm Values Files, values are provided to the chart using the following mechanisms:

  • values.yaml file in the chart
  • Value files passed to Helm during install/upgrade with the -f flag
  • Individual parameters pass with the --set flag

The list above is in order of specificity: values.yaml in the chart can be overridden with -f supplied files, which can in turn be overridden with the --set parameter.

The example below shows how values from the chart, user supplied myconfig.yaml and --set parameters are merged with each other to form a merged values.

Example Values

Chart Values

To see the values supplied by the chart, simply use the helm show values command to print them. This provides both the data as well as context sensitive comments to each section.

helm show values pingidentity/ping-devops
############################################################
# Ping Identity DevOps values.yaml
############################################################
# ...

You can also see all the available values via this values.yaml link

The default values are broken up into 2 major sections:

  • global - Represents the base set of values that will be provided to each product section unless it's overridden in that section.
  • product - For every image/product, the values will merged with the global settings, and take precedence.

Warning

Values can only be modified when merged. They cannot be deleted. Also, if a value is set to the boolean true, and merged with a boolean of false, it will always be true.

global Section

The global: section of the values contains configuration that is available to each products section. If a value is set in globals, that will be available to every product. This is very powerful, as you can turn on the ingress for every product by simply setting:

global:
  ingress:
    enabled: true

This would in essence set ingress.enabled=true for every product:

pingaccess:
  ingress:
    enabled: true

pingdirectory:
  ingress:
    enable: true
and so on.

It is much easier to set something in the global: section, rather than repeat it for each product. To enable the ingress for only a few specific products, leave the default of global.ingress.enabled=false and set that value for those product sections.

Product Sections

Just like the global: values, each product can have the same values as well as many more that are specific to that product/image. In the following example, persistent volume configuration is provided for PingDirectory:

pingdirectory:
  persistentvolume:
    enabled: true
    volumes:
      - name: out-dir
        mountPath: /opt/out
        storage: 8Gi
        storageClassName: