Diving into Kubernetes MutatingAdmissionWebhook
Во время командировки в офис в Bay Area начала происходить какая-то неразбериха: хотя я работаю на одном проекте, но знаю второй - мне дали еще третий на пару дней, посмотреть что и как.
На этом проекте была задача, достаточно не плохая - проект в GCP, и они используют Cloud SQL. Во многих helm чартах есть cloudsql sidecar, через который остальные контейнеры в поде ходят в базу данных.
Так вот, копипаста была во многих местах, быстрый вариант с kustomize или темплейтированием они не захотели, а захотели делать как крутые операторы: аннотациями.
Примерно так:
1) В деплойменте создается под
2) На поде висит аннотация "cloudsql-sidecar: true"
3) Kubernetes инджектит сайдкар в этот под
Я начал читать как это сделано у istio/linkerd/etc, и для этой задачи есть выделенный примитив: MutatingAdmissionWebhook.
Из существующих реализаций адекватной выглядит только эта:
https://github.com/tumblr/k8s-sidecar-injector
А для того, чтобы понять как оно работает, лучше почитать много теории:
https://medium.com/ibm-cloud/diving-into-kubernetes-mutatingadmissionwebhook-6ef3c5695f74
В результате все завелось, все довольны, все счастливы. Estimates - день на POC, день на интеграцию, и через какое-то время день на ривью.
Post #153
7.5K