เบเบฒเบ™เบชเป‰เบฒเบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเปƒเบ™ Helm

เบเบฒเบ™เบชเป‰เบฒเบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเปƒเบ™ Helm

เบ—เบตเบกเบ‡เบฒเบ™ Kubernetes aaS เบˆเบฒเบ Mail.ru เปเบ›เป€เบ›เบฑเบ™เบšเบฑเบ™เบ—เบถเบเบชเบฑเป‰เบ™ เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฑเบš Helm เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบกเบทเปˆเบญเบญเบฑเบšเป€เบ”เบ”. เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบเบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบก - เบœเบนเป‰เบญเปเบฒเบ™เบงเบเบเบฒเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ‚เบญเบ‡ Intoware, เบšเปเบฅเบดเบชเบฑเบ”เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบŠเบฅเบนเบŠเบฑเปˆเบ™ SaaS.

เบšเบฑเบ™เบˆเบธเปเบกเปˆเบ™เป€เบขเบฑเบ™. เปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เป‰เบฒเบ™เบเบฒเบ™เบšเบฑเบ™เบˆเบธ (เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบญเบฒเบเบ—เบตเปˆเบˆเบฐเบเบญเบกเบฎเบฑเบšเบกเบฑเบ™), เปเบ•เปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบŠเบตเบ™เบตเป‰. เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบเบณเบฅเบฑเบ‡เบญเปˆเบฒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰, เป€เบˆเบปเป‰เบฒเบซเบงเบฑเบ‡เบงเปˆเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเบณเป€เบฅเบฑเบ”เปƒเบ™เบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฐเป€เบฅเบ‚เบญเบ‡ Docker, เบฎเบฑเบšเบฎเบนเป‰เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡ Kubernetes, เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบซเบผเบฒเบเบ”เป‰เบงเบ Helm.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบˆเบฐเปเบˆเป‰เบ‡เบเบงเปˆเบฒเบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™.

เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡?

เบ„เบงเบฒเบกเบฅเบฑเบš Kubernetes เปเบกเปˆเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ„เบนเปˆเบ„เบต / เบ„เปˆเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบชเบฒเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบญเบตเป€เบกเบง, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบงเบฒเบกเบฅเบฑเบš, เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เปเบเบเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™ codebase.

เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบญเบ‡เป‚เบกเบ”เบนเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบกเบ—เบปเปˆเบงเป„เบ›. เบšเปเปˆเบกเบตเปƒเบœเบขเบนเปˆเบ™เบญเบเบเบธเปˆเบกเบ„เบงเบ™เบฎเบนเป‰เบเบฐเปเบˆเบ™เบตเป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เปเบšเบšเปœเบถเปˆเบ‡เบ•เปเปˆเปœเบถเปˆเบ‡เบžเบฒเบเปƒเบ™เบเบธเปˆเบก.

เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฅเบฑเบš

เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเปƒเบ™ Helm, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡:

  • เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบฅเบฑเบšโ€‹เปƒเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹;
  • redefine เบกเบฑเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”;
  • เบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡เบกเบฑเบ™เบžเบฒเบเปƒเบ™ deployment/pod;
  • ...เบเบณเป„เบฅ!

เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

apiVersion: v1
kind: Secret
metadata:
  name: my-super-awesome-api-key
type: Opaque
stringData:
  apiKey: {{ .Values.MyApiKeySecret | quote }}

เบ„เบงเบฒเบกเบฅเบฑเบš Kubernetes เบ‡เปˆเบฒเบเป†เป‚เบ”เบเปƒเบŠเป‰เบ„เปˆเบฒเบˆเบฒเบ values.yml

เปเบ•เปˆเปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบฅเบฐเบšเบธเบ„เบงเบฒเบกเบฅเบฑเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เป„เบŸเบฅเปŒเบ„เปˆเบฒ.

เบกเบตเบซเบผเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฐเปเบˆเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡.

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เปเบšเบšเป‚เบกเบ”เบนเบ™เบ•เปเปˆเป‚เบกเบ”เบนเบ™เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบกเบฑเบ™เบšเปเปˆเบชเบปเบกเบ„เบงเบ™เบ—เบตเปˆเบˆเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เบงเบฒเบกเบฅเบฑเบšเบžเบฒเบเบ™เบญเบเบ‚เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบ›เบฒเบ–เบฐเบซเบ™เบฒเบชเบนเบ‡เบ—เบตเปˆ Helm เบกเบตเบเบปเบ™เป„เบเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบกเบฑเบ™เป‚เบ”เบเบเบปเบ‡.

Hooks

Hooks เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบฅเปˆเบ™เบฅเบฐเบซเบฑเบ”เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡. เบญเบฒเบ”เบˆเบฐเบกเบตเบงเบฝเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”, เบซเบผเบทเบšเบฒเบ‡เบ—เบตเบญเบฒเบ”เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปƒเบ”เป†.

เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบเบฐเปเบˆเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡, hooks เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเปˆเบญเบ™เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบก. เปเบ•เปˆเบกเบตเบเบฒเบ™เบˆเบฑเบšเป„เบ”เป‰: เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบกเบทเปˆเบญเบกเบตเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”. Hooks เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ—เบธเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบ—เบทเปˆเบญเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบขเบธเบ”เบเบฒเบ™เบญเปˆเบฒเบ™, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ hook เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบ”เบตเบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™.

เปเบ•เปˆเบ–เป‰เบฒเบ„เบงเบฒเบกเบฅเบฑเบšเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ (เบšเบฒเบ‡เบ—เบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆเบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡), เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบญเบฑเบšเบญเบฒเบเบ—เบตเปˆเบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡ hook เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเปˆเบญเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเบ„เบฑเป‰เบ‡เบ”เบฝเบง.

เบŸเบฑเบ‡เบŠเบฑเบ™

เบŸเบฑเบ‡เบŠเบฑเบ™ Helm เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบญเบปเบ‡เบ›เบฐเบเบญเบš scripting เบ•เปˆเบฒเบ‡เป†เปƒเบชเปˆเบชเบฐเบ„เบฃเบดเบšเบ—เบตเปˆเปƒเบŠเป‰เป„เบ”เป‰.

apiVersion: v1
kind: Secret
metadata:
  name: my-super-awesome-api-key
type: Opaque
stringData:
  apiKey: {{ uuidv4 | quote }} #Generate a new UUID and quote it

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบฑเบš apiKey เบˆเบฐเป€เบ›เบฑเบ™ UUID เปƒเบซเบกเปˆเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡.

Helm เบ›เบฐเบเบญเบšเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เปเบ—เป‰เป†เบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เปเบกเปˆเปเบšเบš GO เบ—เบตเปˆเบซเบ™เป‰เบฒเบญเบฑเบ”เบชเบฐเบˆเบฑเบ™เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡ Sprig เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡.

เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒ

เป€เบžเบตเปˆเบกเปƒเบ™ Helm 3.1 เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒ, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปเบฅเบฐ:

  • เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบกเบตเบขเบนเปˆเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™;
  • เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเป€เบžเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡.

เป‚เบ”เบเปƒเบŠเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบฑเบ‡เบชเบญเบ‡เบขเปˆเบฒเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ„เบฑเป‰เบ‡เบ”เบฝเบงเป„เบ”เป‰!

# 1. ะ—ะฐะฟั€ะพัะธั‚ัŒ ััƒั‰ะตัั‚ะฒะพะฒะฐะฝะธะต ัะตะบั€ะตั‚ะฐ ะธ ะฒะตั€ะฝัƒั‚ัŒ ะฒ ะฟะตั€ะตะผะตะฝะฝะพะน $secret
{{- $secret := (lookup "v1" "Secret" .Release.Namespace "some-awesome-secret" -}}
apiVersion: v1
kind: Secret
metadata:
  name: some-awesome-secret
type: Opaque

# 2. ะ•ัะปะธ ัะตะบั€ะตั‚ ััƒั‰ะตัั‚ะฒัƒะตั‚, ะฒะทัั‚ัŒ ะตะณะพ ะทะฝะฐั‡ะตะฝะธะต ะบะฐะบ apiKey (ัะตะบั€ะตั‚ ะธัะฟะพะปัŒะทัƒะตั‚ ะบะพะดะธั€ะพะฒะฐะฝะธะต Base64, ั‚ะฐะบ ั‡ั‚ะพ ะธัะฟะพะปัŒะทัƒะนั‚ะต ะบะปัŽั‡ "data")
{{ if $secret -}}
data:
  apiKey: {{ $secret.data.apiKey }}

# 3. ะ•ัะปะธ ัะตะบั€ะตั‚ ะฝะต ััƒั‰ะตัั‚ะฒัƒะตั‚ โ€” ัะพะทะดะฐั‚ัŒ ะตะณะพ (ะฒ ัั‚ะพั‚ ั€ะฐะท ะธัะฟะพะปัŒะทัƒะนั‚ะต "stringData", ั‚ะฐะบ ะบะฐะบ ะฑัƒะดะตั‚ ะพะฑั‹ั‡ะฝะพะต ะทะฝะฐั‡ะตะฝะธะต)!
{{ else -}}
stringData:
  apiKey: {{ uuidv4 | quote }}
{{ end }}

เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบญเบฑเบšเป€เบ”เบ”เปƒเปเปˆเบ–เบทเบเบ™เบณเปƒเบŠเป‰เบเบฑเบšเป€เบŠเบตเบšเป€เบงเบต, Helm เบˆเบฐเบชเป‰เบฒเบ‡เบ„เปˆเบฒเบฅเบฑเบšเปƒเปเปˆ (เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบฅเบฑเบšเป€เบ—เบทเปˆเบญ) เบซเบผเบทเบ™เบณเปƒเบŠเป‰เบ„เปˆเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบ„เบทเบ™เปƒเปเปˆ.

เป‚เบŠเบเบ”เบต!

เบกเบตเบซเบเบฑเบ‡เบญเบตเบเปเบ”เปˆเบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบปเบงเบ‚เปเป‰:

  1. เบชเบฒเบกเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™ Kubernetes เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.
  2. Kubernetes เปƒเบ™เบˆเบดเบ”เปƒเบˆเบ‚เบญเบ‡เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบฅเบดเบ‚เบฐเบชเบดเบ”เบเบฑเบšเปเบกเปˆเปเบšเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.
  3. เบŠเปˆเบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบกเบฒเบ™ Kubernetes เปƒเบ™ Telegram.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™