Запечатанные секреты со списком YAML

У меня есть список в yml - учетные данные. И якобы у каждого банка должен быть свой пароль, который необходимо зашифровать. Как правильно это указать? На данный момент я настроил его так, но это не работает.

Это config.yml

      infopoint:
  endpoint: https://test.test.com/ws/SSS/Somthing.pl
  system: TEST
  mock: false
  credentials:
    - bank: 1111
      user: LSSER
      existingSecret:
        name: infopoint-creds-s1-hb
    - bank: 2222
      user: TESSER
      existingSecret:
        name: infopoint-creds-s1
envFrom:       
 - secretRef:
     name: infopoint-creds-s1-hb
 - secretRef:
     name: infopoint-creds-s1

Вот как я создал оба секретных ключа на сервере.

      C:\Users\mks\IdeaProjects>kubectl.exe create secret generic infopoint-creds-s1-hb --from-literal=INFOPOINT_CREDENTIALS_PASSWORD=SOMEPASS -o yaml -n test-env --dry-run=client | kubeseal -o yaml --scope namespace-wide > infopoint-creds-s1-hb.yaml

C:\Users\mks\IdeaProjects>kubectl.exe create secret generic infopoint-creds-s1 --from-literal=INFOPOINT_CREDENTIALS_PASSWORD=SOMEPASS -o yaml -n test-env --dry-run=client | kubeseal -o yaml --scope namespace-wide > infopoint-creds-s1.yaml

Это моя конфигурация Spring.

      @Configuration
@ConfigurationProperties(prefix = "infopoint")
class InfopointAPIConfiguration {

    lateinit var endpoint: String

    var proxyServerName: String? = null

    var proxyPortNumber: String? = null

    lateinit var system: String

    lateinit var mock: String

    lateinit var credentials: List<Credentials>

    data class Credentials(
        var bank: String? = null,
        var user: String? = null,
        var password: String? = null
    )

    fun credentialsByBank(bank: Int): Credentials {
        return credentials.firstOrNull { it.bank == bank.toString() }
            ?: error("Could not load credential for bank $bank")
    }
}

1 ответ

Секреты Kubernetes можно использовать или настраивать в приложениях несколькими способами, например, с помощью карт конфигурации, запечатанных секретов и переменных среды. Поскольку вы были поражены частью запечатанных секретов, я даю ответ, связанный с тем же.

Сначала нам нужно создать запечатанный секрет в том же пространстве имен с тем же именем, чтобы другие пользователи в том же кластере не могли использовать ваш запечатанный секрет. Для получения дополнительной информации о запечатанных секретах ознакомьтесь с этим документом.

Теперь у нас есть созданный секрет, все, что нам нужно сделать, это использовать его в нашем приложении. На секрет, который мы создали, необходимо ссылаться в файле yaml. Подробное описание того, как настроить секреты в приложении Spring Boot вместе с примером проекта, доступно здесь.

Другие вопросы по тегам