Кастомные ресурсы
Что такое CRD и кастомные ресурсы
В Kubernetes кастомные ресурсы (Custom Resources) позволяют расширять модель объектов за счёт своих типов: поверх базовых Pod, Service, Deployment и др. можно добавлять собственные сущности с нужными полями. Такие типы ресурсов задаются через CRD.
CRD (Custom Resource Definition) — специальный ресурс, который позволяет создавать новые типы ресурсов для расширения функционала.
Почти все операции в GUI (создание кластера, изменение конфигурации узлов, установка сервисов, назначение прав) сводятся к созданию или изменению ресурсов, а операторы приводят фактическое состояние кластера к описанному в ресурсах.
Кастомные ресурсы в GUI
В разделе Администрирование → Кастомные ресурсы доступен просмотр и управление кастомными ресурсами (CR) Kubernetes на уровне кластера и неймспейса.
Где в кластере: выберите кластер → Администрирование → Кастомные ресурсы. Где в неймспейсе кластера: выберите неймспейс → Администрирование → Кастомные ресурсы.
Страница Кастомные ресурсы отображает список сгруппированный по API группам всех CRD: кубовых и созданных в кластере. Например, API группы: operator.victoriametrics.com, ops.shturval.tech. Есть переключатель, позволяющий скрыть CRD, в которых нет кастомных ресурсов (Custom Resource). Для удобства отображено количество созданных кастомных ресурсов каждого CRD. В неймспейсе на этой странице отображается количество кастомных ресурсов скоупа неймспейса для каждого CRD.
Страница CRD «Кастомные ресурсы»

По нажатию на название CRD можно перейти на страницу со списком кастомных ресурсов этой CRD. Объекты можно просматривать, редактировать (вкладка «Манифест») и удалять в соответствии с правами доступа. Для добавления кастомного ресурса, в том числе в неймспейсе, используйте Импорт манифестов.
Страница экземпляров «Кастомныe ресурсы»

Чтобы удалить кастомный ресурс из кластера или неймспейса, используйте удаление из списка объектов или со страницы просмотра кастомного ресурса. На странице просмотра ресурса также можно изменить или скопировать его манифест; после изменения выполните проверку.
Кастомные ресурсы платформы
Ниже приведены специфические кастомные ресурсы в API‑группах *.shturval.tech, которые используются в кластерах платформы “Штурвал”.
API‑группа auth.shturval.tech
В кластере управления.
| Ресурс | Назначение | Где используется в GUI | Документация |
|---|---|---|---|
| AuthOidcClient | Клиенты внутреннего сервиса аутентификации платформы (backend, frontend, ArgoCD, Grafana и др.), использующие OIDC | При переходе по SSO во внешний сервис | Кастомные ресурсы IAM |
| User | Локальные пользователи, хранящиеся в платформе | Управление доступом → пользователи | Управление паролем локального администратора |
Пример kubectl для auth.shturval.tech
kubectl get authoidcclient -A
API‑группа node.shturval.tech
В кластере управления и клиентском кластере.
| Ресурс | Назначение | Где используется в GUI | Документация |
|---|---|---|---|
| NodeConfigItem | Объект для применения конфигурации узлов: NTP, sysctl, пакеты, реестры, systemd‑юниты и др.; применяется по селектору узлов | Администрирование → Конфигурация узлов (список и карточки NCI) | Конфигурация узлов (NCI), Объект NCI (NodeConfigItem) |
| NodeConfig | Сводная фактическая конфигурация конкретного узла, собранная из всех применимых NCI, со статусом применения | Администрирование → Управление узлами → страница просмотра узла → вкладка Конфигурация узлов | NodeConfig (NC) |
Пример kubectl для node.shturval.tech
kubectl get nodeconfigitem
API‑группа cluster.shturval.tech
В кластере управления.
| Ресурс | Назначение | Где используется в GUI | Документация |
|---|---|---|---|
| ClusterConfig | Фактическая конфигурация кластера: параметры API, сети, набор сервисов, ссылки на профили и др. | Дашборд кластера | API для управления кластерами |
| ClusterInfo | Сводная информация о кластере для дашбордов: статус, версии, количество узлов | Дашборд кластера | Графики и дашборды кластера |
| ClusterProfile | Профиль конфигурации, с которым будет развёрнут клиентский кластер | Платформа → Профили кластеров → страница Профили конфигурации клиентских кластеров | Профили кластеров |
Пример kubectl для cluster.shturval.tech
kubectl get clusterprofile -A
Справочно: Cluster API и ресурсы инфраструктурных провайдеров (cluster.x-k8s.io, bootstrap.cluster.x-k8s.io, controlplane.cluster.x-k8s.io, infrastructure.cluster.x-k8s.io), связанные с жизненным циклом узлов, сведены в таблицы на странице Создание узлов при развертывании клиентского кластера.
API‑группа ops.shturval.tech
В кластере управления и клиентском кластере.
| Ресурс | Назначение | Где используется в GUI | Документация |
|---|---|---|---|
| ShturvalRepoConfig | Конфигурация Helm‑репозиториев: URL, протокол, учётные данные, TLS | Сервисы и репозитории → страница Репозитории | Как подключить свой репозиторий |
| ShturvalServiceConfig | Конфигурация Helm‑чартов (системных сервисов) (SSC): версия, режим управления, базовые customvalues | Сервисы и репозитории → Установленные сервисы → кнопка Управлять → вкладка Сервис на странице просмотра сервиса | Обзор работы с сервисами, Системные сервисы репозитория Shturval |
| ShturvalServicePatch | Патч для customvalues системного сервиса, накладываемый поверх базового SSC; позволяет безопасно кастомизировать сервисы |
Вкладка Примененные ShturvalServicePatch на странице сервиса | Как управлять CustomValues сервисов |
Пример kubectl для ops.shturval.tech
kubectl get shturvalserviceconfig -A
API‑группа update.shturval.tech
В кластере управления и клиентском кластере.
| Ресурс | Назначение | Где используется в GUI | Документация |
|---|---|---|---|
| ShturvalUpdate | Ресурс для ручного запуска обновления кластера и отслеживания статуса обновления | Дашборд кластера → Управлять → окно Обновление кластера | Обновление Kubernetes |
| ShturvalUpdateChannel | Указание канала обновления (в платформе доступен только стабильный канал stable) |
Дашборд кластера → Управлять → окно Обновление кластера | Обновление Kubernetes, Обновление зеркала в закрытом контуре |
| ShturvalUpdateSchedule | Расписание для автоматического (отложенного) обновления кластера | Дашборд кластера → Управлять → окно Обновление кластера → Настройка отложенного обновления | Обновление Kubernetes |
Пример kubectl для update.shturval.tech (ShturvalUpdateSchedule)
kubectl get shturvalupdateschedule -n shturval-update-system
API‑группа permissions.shturval.tech
В кластере управления.
| Ресурс | Назначение | Где используется в GUI | Документация |
|---|---|---|---|
| GroupRole | Объект связывания набора разрешений с группой пользователей; определяет, какие Permissions применяются к группе и на каком уровне (платформа, тенант, кластер, неймспейс) | Управление доступом/Управление ролями→ Группы и назначение прав группам | Кастомные ресурсы для управления правами доступа, Как происходит назначение прав доступа |
| UserRole | Объект связывания набора разрешений с конкретным пользователем | Управление доступом/Управление ролями → Пользователи и назначение прав пользователям | Кастомные ресурсы для управления правами доступа, Как происходит назначение прав доступа |
| Scope | Набор объектов применения разрешений (например, платформа, конкретный тенант, кластер или неймспейс) | Внутренняя сущность системы управления доступом; отображается через дерево доступов и страницы назначения прав | Настройка разрешений |
| Permission | Набор разрешений (permissions) | Управление доступом → Менеджер доступов | Настройка разрешений, Кастомные ресурсы для управления правами доступа |
| Tenant | Логическое объединение кластеров целиком либо неймспейсов одного или нескольких кластеров для разграничения доступа | Вкладка Тенанты | Концепция тенантов |
Пример kubectl для permissions.shturval.tech
kubectl get userrole -n shturval-backend
Когда использовать GUI, а когда — манифесты
- GUI удобен для типовых операций: создание кластера, настройка сервисов, назначение прав, изменение конфигурации узлов.
- Манифесты кастомных ресурсов (
kubectl, импорт YAML) удобны, когда:- вы хотите версионировать изменения и применять их через GitOps;
- требуется доступ к полному набору полей ресурса, не всех из которых есть в GUI.
Инструкция по импорту YAML‑манифестов через интерфейс: Импорт манифестов.
Для всех перечисленных ресурсов рекомендуется ориентироваться на профильные разделы документации (ссылки в таблицах выше) — они содержат примеры YAML, ограничения и типовые сценарии использования.