apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: {{ .k8s.name }}
  region: {{ .region.region }}
  version: '{{ .k8s.version }}'
{{- $tags := index .k8s "tags" }}
{{- if and ($tags) (gt (len $tags) 0) }}
  tags:
{{ toYAML .k8s.tags | indent 4 }}
{{- end }}

managedNodeGroups:
{{ index .k8s "node-groups" | toYAML | indent 2 }}

iam:
  withOIDC: true
{{- $adminRoles := index .k8s "admin-roles" }}
{{- if and ($adminRoles) (gt (len ($adminRoles) ) 0) }}

iamIdentityMappings:
{{- range $adminRoles }}
{{- if strings.HasPrefix "arn:aws:iam::" . }}
  - arn: {{ . }}
    groups:
      - system:masters
    username: {{ . | path.Base }}
{{- else }}
  - arn: arn:aws:iam::{{ $.region.accountId }}:role/{{ . }}
    groups:
      - system:masters
    username: {{ . }}
{{- end }}
{{- end }}
{{- end }}

vpc:
{{ toYAML .k8s.vpc | indent 2 }}

{{- $availabilityZones := index .k8s "availabilityZones" | default "" | strings.Trim " " }}
{{- if $availabilityZones }}
availabilityZones:
{{- range (strings.Split "," $availabilityZones) }}
  - {{ . | strings.Trim " " }}
{{- end }}
{{- end }}

addons:
{{- $addons := index .k8s "addons" }}
{{- if and ($addons) (gt (len $addons) 0 ) }}
{{ toYAML $addons | indent 2}}
{{- else }}
- name: vpc-cni
  version: latest
  attachPolicyARNs:
    - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
- name: coredns
  version: latest
- name: kube-proxy
  version: latest
- name: aws-ebs-csi-driver
  version: latest
  wellKnownPolicies:
    ebsCSIController: true
{{- end }}