Rainbow
jenkins у тебя есть сейчас?
Andrey
Rainbow
Andrey
Rainbow
teamcity используй
Rainbow
manual ci step есть везде
Andor
да какая разница
Andor
что там CD что там
Andor
в его рандеке?
Andrey
teamcity используй
Ребят я на самом деле с вам завидую, потому что судя по доводам вы с людьми уровня ДС/Бухгалтерии и тп не сталкивались.
Andor
тут не подскажу
Andor
Andrey
где связь?
связь в сложности подбора инструмента. Необходимость кнопки "сделать все хорошо". Минимум консолей/команд и вариантов выстреллить в ногу
Andor
ну сделай, кто тебе мешает
Andrey
Andor
у тебя правда с логикой беда, тебе говорили делать kubectl run job, а ты подумал что это руками пользователям запускать, а не в каком-нибудь твоём рандеке
Rainbow
рандек ДС/Бухгалтерия осволи, а teamcity не освоят?
Andor
Rainbow
k8s cronjob эт просто
Rainbow
(я 5 лет развиваю софт одной компании, где it это 4 человека из 150)
Andor
на вопрос тебе уже всё равно ответили
Andrey
ну да, эт верно.
Andrey
Я тут еще потестил kubectl run на предмет резулткода и похоже так просто оно не заведется
Vadim
ну да, можно стартануть, потом найти его имя и читать логи + exit code. Итого 2 или 3 команды
Vadim
еще пара трюков и у вас будет свой CI в кубе на чистом шелле, можно сразу стартап организовывать
Andor
можно даже назвать как-нибудь
Andor
что-нибудь связанное с коровами и быками
Andor
загон? не
Andor
ранчер, во
Andor
идеально
Andor
"портянки"?
Rainbow
infrastructure as code
отстояная практика, ну да
Andor
Andrey
"портянки"?
один единственный Rundek с зеленой кнопкой vs git + jenkins + ELK + сопутствующие проблемы обучения сотрудников
Andor
а у тебя рандек сам всё делает или его всё-таки надо настраивать?
Rainbow
Andrey
Vadim
Andor
Vadim
родина дала вам стейтфулсет, нетворкполисис, а народу просто нужен шедулер докер контейнеров
Rainbow
Andrey
Evgeny
Add an annotation for the cri-socket to the current node, for example to use docker:
kubectl annotate node <nodename> kubeadm.alpha.kubernetes.io/cri-socket=/var/run/dockershim.sock
при попытке обновления кластера просит эту аннотацию, зачем она на мастере?
Andor
Vadim
тогда подождем когда выяснится что нод на всех не хватит и поды отчего-то в Pending зависли, и как тут в этом рандеке сделать rate limit или мониторить эту хрень, ёпт, наверное нужен прометей, да и логи контролплейна неплохо бы хранить где-то, ну и наверное логи подов тоже, хммм, падажжи, мы кажется это обсуждали
Andor
ну по сути кинуть ему команду, ноду и расписание если нужно.
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args: [ /bin/sh, -c, date; echo Hello from the Kubernetes cluster ]
restartPolicy: OnFailure
Andor
даже ноду не надо кидать
Andrey
Andor
kubectl run hello --schedule="*/1 * * * *" --restart=OnFailure --image=busybox -- /bin/sh -c "date; echo Hello from the Kubernetes cluster" вот так можно ещё, говорят
Rainbow
из cd/ci, там же где твой проект
Andor
Andrey
а как хочешь?
я вообще не хочу, но ДС нужно запускать кнопкой. От твоей команды выше, у меня бы пол отдела ДС уже в обмороке были.
Andor
блядь кто тебе мешает запускать команду при нажатии кнопки?
Rainbow
а как хочешь?
while true; do kubectl run hello--restart=OnFailure --image=busybox -- /bin/sh -c "date; echo Hello from the Kubernetes cluster"; sleep 60; done
же
Andor
это сложно в твоём рандеке сделать что ли?
Andor
если джоба запускатеся консольной командой - значит её можно сунуть в запускалку команд, в твоём случае - в твой сраный рандек
Andor
сложная концепция что ли бля
Andor
испанский стыд во всей красе
Andrey
Так я блять с этим вопросом и пришел!
Andrey
я хочу просто перевести джобы внутрь кластера.
Просто поменять команды локального запуска на запуск подов в кубере.
Andor
ну так меняй
Andor
тебе уже насовали разной сложности советов как это сделать
Andrey
НО! мне важен stdout + return code чтобы дальше работала логика которая уже есть и достаточно внушительна
Andrey
Вы мне начинаете совать git jenkins и всю эту херню
Andor
Andrey
Maxim
Rainbow
jenkins тебе никто не совал. Это умеет любая ci|cd современная, я вообще на примере gitlab говорил.
Maxim
Maxim
Но не пойму тогда на что это повлияло