data vs stringDataПри создании Secret в Kubernetes секретные данные можно указать в двух разных полях:
-
data-
stringDataВ чём разница?
Если использовать поле
data, значения нужно заранее закодировать в Base64.Если же хочется указывать значения в манифесте обычным текстом, можно использовать
stringData.При создании Secret через
stringData Kubernetes автоматически преобразует эти значения и сохраняет их в поле data в виде Base64.То есть
stringData нужен в основном для удобства разработчика при создании и обновлении Secret. В самом объекте Secret данные в итоге всегда хранятся в поле data.Кроме того, в одном манифесте можно одновременно использовать и
stringData, и data.Если ключи дублируются, приоритет имеет
stringData.Например, если
username указан и в data, и в stringData, будет использовано значение из stringData, а значение из data будет проигнорировано.Если же ключи разные, в созданном Secret будут доступны все значения.
👉 DevOps Portal
