К8с секретная композиция - PullRequest
       6

К8с секретная композиция

0 голосов
/ 14 ноября 2018

Я использую helm / k8s для развертывания стороннего ( prisma ) контейнера. Контейнер ожидает переменную окружения в форме yaml, похожую на

port: 4466                           
managementApiSecret: $PRISMA_SECRET
databases:                           
  default:                           
    connector: postgres              
    host: postgresql                 
    port: 5432                       
    user: postgres                   
    password: $PG_SECRET             
    migrations: true                 

У меня есть доступ к паролю postgres и управлению ApiSecret в качестве значений в отдельном секрете. Я пытаюсь создать модуль, который извлекает два секрета и использует их для создания переменной среды. Моя в настоящее время попытка решения выглядит следующим образом.

containers:                                    
  - name: prisma                               
    image: 'prismagraphql/prisma:1.14'         
    ports:                                     
      - name: prisma-4466                      
        containerPort: 4466                    
    env:                                       
      - name: PG_SECRET                        
        valueFrom:                             
          secretKeyRef:                        
            name: postgresql                   
            key: postgres-password             
      - name: PRISMA_CONFIG                    
        value: |                               
          port: 4466                           
          managementApiSecret: $PRISMA_SECRET
          databases:                           
            default:                           
              connector: postgres              
              host: postgresql                 
              port: 5432                       
              user: postgres                   
              password: $PG_SECRET             
              migrations: true    

Это не похоже на работу (потому что секрет оценивается во время применения kubectl?). Есть ли альтернативный способ создания переменных env с секретной информацией?

1 Ответ

0 голосов
/ 14 ноября 2018

Из документа envvar: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.12/#envvar-v1-core

Ссылки на переменные $ (VAR_NAME) раскрываются с использованием ранее определенных переменных среды в контейнере и любых переменных среды службы.

Ваш второй envvar может использовать значение более раннего envvar как $(PG_SECRET)

...