How to loop through a complex nested map in Helm Charts

2/16/2022

I am trying to associate users in a aws-auth config map using Helm. I'd like to loop through a nested map in our values file. My attempt to do this is as follows:

  mapUsers: |
  {{- range $username := .Values.users }}
    - groups:
      - system:masters
      userarn: {{ $username.adminArn }}
      username: {{ $username }}
  {{- end }}

And the values file is as follows:

users:
  username: user.name
    userArn: user/Arn
    adminArn: user/AdminArn

I'm not certain if this will solve my problem and would like some feedback.

-- TravelingLex
amazon-web-services
kubernetes
kubernetes-helm

1 Answer

2/17/2022

After taking feedback from @Andrew, I was able to get this to work by first changing the structure of my values file to:

users:
  testuser:
    username: test.user
    userArn: testuser/arn
    adminArn: testuser/adminArn

I then was able to update my loop to:

  {{- range $k := .Values.users }}
    - groups:
      - system:masters
      userarn: {{ .adminArn }}
      username: {{ .username }}
  {{- end }}
-- TravelingLex
Source: StackOverflow