Skip to content

Create render for SecretProviderClass #177

@tonirvega

Description

@tonirvega

Motivation

I had to code a SecretProviderClass in order to use the AWS Parameter Store. So It would be nice to have a render that simplifies that task.

Content

SecretProviderClass


apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
  name: {{ .Release.Name }}-spc-ssm
spec:
  provider: aws
  secretObjects:
    - secretName: {{ .Release.Name }}-scm
      type: Opaque
      data:
      {{ range $key,$value := .Values.secretsData }}
        - objectName: {{ $value | replace "."  "_" }}
          key: {{ $key }}
      {{ end }}                 
  parameters:
    objects: |
    {{ range $value := .Values.secretsData }}
      - objectName: {{ $value | quote }}
        objectType: "ssmparameter"
        region: "eu-west-1"
        objectAlias: {{  $value | quote | replace "."  "_" }}
    {{ end }}

Values

secretsData:
   mongo_uri: consumidoriot.pro.mongo_uri 
   rabbit_password: consumidoriot.pro.rabbit_password
   mail_password: consumidoriot.pro.mail_password

Output

# Source: consumidor/templates/secretprovider.yaml
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
  name: RELEASE-NAME-spc-ssm
spec:
  provider: aws
  secretObjects:
    - secretName: RELEASE-NAME-scm
      type: Opaque
      data:
      
        - objectName: consumidoriot_pro_mail_password
          key: mail_password
      
        - objectName: consumidoriot_pro_mongo_uri
          key: mongo_uri
      
        - objectName: consumidoriot_pro_rabbit_password
          key: rabbit_password
                       
  parameters:
    objects: |
    
      - objectName: "consumidoriot.pro.mail_password"
        objectType: "ssmparameter"
        region: "eu-west-1"
        objectAlias: "consumidoriot_pro_mail_password"
    
      - objectName: "consumidoriot.pro.mongo_uri"
        objectType: "ssmparameter"
        region: "eu-west-1"
        objectAlias: "consumidoriot_pro_mongo_uri"
    
      - objectName: "consumidoriot.pro.rabbit_password"
        objectType: "ssmparameter"
        region: "eu-west-1"
        objectAlias: "consumidoriot_pro_rabbit_password"

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions