𝚔𝚟𝚊𝚙𝚜
Andor
я хочу взять уже готовый ямль
Andor
положить его в репо
Andor
заимпортить в жсоннет
Andor
поправить как хочется
Andor
и запустить
George
сделай наконец-то стикерами!!!! 😱
Andor
Andor
Andor
я ж не девопс какой-то
Andor
я хочу взять уже готовый манифест, не конвертить
Andor
конвертят пусть девопсы
Sergey
а чем в данном случае плох helm , там же можно при развёртывании указывать ENV ,
Andor
Andrey
Andor
в ksonnet тоже можно указать, вопрос не про это
Rainbow
@nightguide
Rainbow
Andor
@rossmohax @kvaps а вы вообще реджистри ксоннет юзаете?
Andrey
лучше nindent
G72K
я хочу взять уже готовый манифест, не конвертить
Ну фиг знает. Делать все эти танцы ks prototype use потом подправлять, потом обновлять зависимость, а прототип остался старым и проч - это норм, а один раз yjq запустить это сложно получается :)
Project Daemon
Andor
G72K
𝚔𝚟𝚊𝚙𝚜
Andor
Andor
у дураков мысли сходятся
G72K
G72K
А скобки зачем?
Andor
всё равно удобнее хранить в исходном виде, а не конвертить каждый раз
Andor
G72K
Удобнее само по себе , но сравнение то с переездом на ksonnet :)
Andor
я не хочу лишать возможности просто накопипастить рецептов из интернетов (а они там обычно в ямлях), положить в репозиторий, подключить их как есть и задеплоить
Andor
я и сам этим буду пользоваться
Andor
вот например этот кусок я бы проще заимпортил из внешнего ямля:
local oldPrometheusServiceMonitor = {
local ns = 'default',
apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor',
metadata: {
labels: {
'k8s-app': 'prometheus'
},
name: 'prometheus-a',
namespace: ns,
},
spec: {
endpoints: [
{
interval: '30s',
port: 'web'
}
],
jobLabel: 'app',
namespaceSelector: {
matchNames: [
ns,
]
},
selector: {
matchLabels: {
app: 'prometheus'
}
}
}
};
Andor
переписывать это 1-в-1 в жсон смысла примерно 0
G72K
Ну с ksonnet положить как есть не выйдет , надо плясать. Вот обновить как есть уже проще . Можно угореть и написать в .gitattribute filter и smudge комманды, получится что кладешь и читаешь ямл, а на гит сервер уходит джсон :)
Andor
а ручками лично мне комфортнее ямли писать, а не жсоны
Andor
Andor
и я имею в виду не ks import -f blabla.yaml
G72K
Есть но оно ж не просто с ямлом работает , надо создать ks приложение, в нем компонент из ямла , прописать параметры и проч
G72K
Andor
data+: parseYaml(importstr "blabla.yaml")
Andor
в ксоннет есть просто фича "прочитать строку как ямль в структуру"
Andor
в голом жсоннет нету
Andor
https://github.com/ksonnet/ksonnet/blob/master/lib/kubecfg.libsonnet#L31
G72K
вот например этот кусок я бы проще заимпортил из внешнего ямля:
local oldPrometheusServiceMonitor = {
local ns = 'default',
apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor',
metadata: {
labels: {
'k8s-app': 'prometheus'
},
name: 'prometheus-a',
namespace: ns,
},
spec: {
endpoints: [
{
interval: '30s',
port: 'web'
}
],
jobLabel: 'app',
namespaceSelector: {
matchNames: [
ns,
]
},
selector: {
matchLabels: {
app: 'prometheus'
}
}
}
};
Эта решается вообще ServiceMonitorFromSvc(name, svcObj) которой дают весь v1.Service как есть, оно само выдирает namespace и селектор, генерирует джоб лейбл и эндпоинты
𝚔𝚟𝚊𝚙𝚜
Andor
Andor
это старый сервис, он запускается по-старому
G72K
А надо что б был :)
Andor
кому?
Andor
eventually этот сервис будет спилен
Andor
но я это уже не застану
G72K
У меня " сервис дискавери" во время деплоя , т.е. скорее dependency resolution, для этого перед вызовом ksonnet я kubectl get все сервисы и ингресы из кластера , они потом доступны в customize, много пользы приносят и svcObj появляется :)
Andor
There are three supported registry protocols: github, fs, and Helm.
Andor
пойду короче из fs класть
Михаил
@kvaps
Михаил
Спасибо. Стикер был добавлен в набор, в течение часа этот набор обновится у всех пользователей.
Вы можете прислать ещё один стикер или команду /done.
Александр
Шо за набор?
Михаил
Александр
Спосибо
Andor
@SinTeZoiD шрифты говно
Михаил
Andor
ну вдруг ты не знал!
Михаил
Rainbow
@Andorka как ты по итогу заменил limit в контейнерах?
Andor
Andor
отлично, накопипастил мою поделку в base.libsonnet в ксоннет и оно просто заработало
Andor
хорошо что переделывать не надо :)
Rainbow
Я на фоне постоянных упоминаний jsonnet дополз познакомиться и тот кейс с mapWithIndex выглядит норм
Andor
я не помню как мне с его помощью обновить in-place
Andor
через super вроде?
Rainbow
config + {
containers: std.mapWithIndex(
(function(index, item) config.containers[index] + if index == 0 then { resources: {} } else {}),
config.containers
),
}
тестовый пример, я так игрался просто
https://gist.github.com/alexesDev/fecc1d971c1b9e0ec1e0e040a56f721a
Andor
ну оно вроде должно сработать конечно