Запечатанные секреты со списком 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 вместе с примером проекта, доступно здесь.