Я перенёс kube-scheduler в формулу электронной таблицы, и он прошёл юнит-тесты
<img src="https://habrastorage.org/getpro/habr/upload_files/0dc/d54/94d/0dcd5494d367b1d62fdb0af22647653e.png" /><p>Привет, Хабр! Была одна вещь, которая давно (примерно 3 дня) не давала мне покоя в Sheeternetes. Весь смысл проекта — «таблица и есть кластер»: Deployments, Nodes, Pods живут во вкладках, таблица — источник истины. Вот только в первых версиях мы покривили душой и шли против истины. Планировщик — та самая часть, что решает, какой под на какую ноду поедет, — был Python-функцией, которая читала таблицу снаружи. То есть таблица хранила состояние, а думал Python.</p><p>Это жульничество, и оно меня грызло (на самом деле нет, это клод так придумал). Поэтому я решил убрать последний внешний мозг: переписать планировщик как формулу таблицы. Без Python, без Apps Script, без bash. Одна <code>=LET(…)</code> на под, которая читает вкладку Nodes и решает, куда его поставить, — пользуясь только тем, что встроено в Google Sheets.</p><p>И оно работает. Воспроизводит bin-packing, capacity, spread, sticky placement, cordon, affinity и taints — и выдаёт ровно ту же раскладку, что и настоящий Python-планировщик, на всех девяти его юнит-тестах.</p> <a href="https://habr.com/ru/articles/1079726/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1079726#habracut">Читать далее</a>
