Как мы спроектировали расширения для клиента Kubernetes: песочница, WebAssembly и подписанный каталог

habrahabr.ru · world
Full story

Sextant is a desktop Kubernetes client built with Rust and Tauri 2, positioned as a Lens replacement without accounts or telemetry. It includes a built-in MCP server for AI agents. Starting with version 0.28, it offers an extension catalog, whose first entry is an extension for Rook Ceph. Because extensions are third-party code running inside a program that holds kubeconfig and tokens for all clusters, the article outlines six architectural decisions to make such code safe.

Sextant — десктопный клиент Kubernetes на Rust и Tauri 2, замена Lens без аккаунта и телеметрии, со встроенным MCP-сервером для AI-агентов. С версии 0.28 у него есть каталог расширений, и первым в нём стало расширение для Rook Ceph. Расширение — это чужой код внутри программы, у которой есть kubeconfig и токены от всех ваших кластеров. В статье — шесть архитектурных решений, которые делают такой код безопасным: изоляция интерфейса, проверка прав в Rust, вклады как данные, бэкенд на WebAssembly, декларации вместо фонового кода и каталог с подписями. Для каждого — какие варианты мы рассматривали, почему выбрали именно так и чем за это платим. В конце — как платформа выдержала первое настоящее расширение, для Rook Ceph. Sextant бесплатный и таким останется. Весь его код сгенерирован Claude Code: человек ставит задачи, принимает архитектурные решения и делает ревью, а каждое изменение проходит больше 6500 тестов на Linux, macOS и Windows. Читать далее

Read full article → Compare