Для того что бы подставить индивидуальный конфиг поду statefulSet-а, можно воспользоваться initContainer и скриптом. В скрипте, в зависимости от имени пода, подготовить необходимый файл конфигурации.
Простейший пример показан в файле 01-op-cm.yaml. В нём описаны два файла index.html, которые должны подставляться в файловую систему пода. В зависимости от имени пода, будет использоваться свой вариант файла.
В statefulSet используются два контейнера.
initContainer на основе образа busybox.
Основной контейнер приложения.
К обоим контейнерам подключается файловая системе типа hostPath. Задача initContainer-а поместить в эту фс необходимые конфигурационные файлы. Исходные файлы, находятся в configMap, подключённом к initContainer.
Для подстановки нужного файла в конкретный под, отвечает скрипт conf.sh. В котором, в зависимости от имени контейнера, в целевую директорию копируется определённый файл. Скрипт conf.sh запускается в initContainer statefulSet-а.
Пример использования vmagent.
В этом примере (файлы 03-prometheus-config.yaml, 04-vmagent.yaml и 05-ingress.yaml) всё то же самое. Но есть проблема с ingress.
Что бы все работало корректно, необходимо что бы vmagent в каждом поде запускался с отличным параметром -http.pathPrefix. Что бы vmagent выдавал ответ с нужны путём в URL.
К сожалению я не знаю способа, как подставить необходимые парамеры в аргументы командной строки отличные для каждого пода.
Опять же, к сожалению, vmagent не умеет конфигурироваться через переменные среды окружения. Но это вопрос к программистам не следующим рекомендации по конфигурации микросервисов. А именно: Приложение двенадцати факторов хранит конфигурацию в переменных окружения.