Custom resources

What is CRD and custom resources

Custom resources extend the Kubernetes object model beyond built-in types such as Pod, Service, and Deployment. Types are defined with CRD (CustomResourceDefinition).

Most GUI operations (creating clusters, changing node configuration, installing services, assigning rights) create or update resources; operators reconcile cluster state to match them.


Custom resources in GUI

In the Administration → Custom Resources section, you can view and manage custom resources (CR) Kubernetes at the cluster and namespace level.

Where in the cluster: select cluster → Administration → Custom Resources. Where in the cluster namespace: select namespace → Administration → Custom resources.

The Custom Resources page lists CRDs grouped by API group — core Kubernetes and cluster-defined. For example: operator.victoriametrics.com, ops.shturval.tech. A switch hides CRDs with no custom resource instances. Each row shows how many instances exist. In a namespace, the page shows namespace-scoped instance counts per CRD.

CRD “Custom Resources” page

Custom resources

By clicking on the name of a CRD, you can go to a page with a list of custom resources for this CRD. Objects can be viewed, edited (Manifest tab) and deleted according to access rights. To add a custom resource, including in namespace, use Import manifests.

Custom Resources Instances Page

Custom resources

To remove a custom resource from a cluster or namespace, use delete from the list of objects or from the custom resource viewing page. On the resource view page, you can also edit or copy its manifest; After the change, check.


Custom platform resources

Below are specific custom resources in API groups *.shturval.tech, which are used in clusters of the “Shturval” platform.

API group auth.shturval.tech

In the management cluster.

ResourcePurposeGUI locationDocumentation
AuthOidcClientClients of the platform’s internal authentication service (backend, frontend, Argo CD, Grafana, etc.) using OIDCWhen switching via SSO to an external serviceCustom IAM Resources
UserLocal users stored in the platformAccess control → usersLocal Administrator Password Management
Kubectl example for auth.shturval.tech
kubectl get authoidcclient -A

API group node.shturval.tech

In the management cluster and client cluster.

ResourcePurposeGUI locationDocumentation
NodeConfigItemObject for applying node configuration: NTP, sysctl, packages, registries, systemd units, etc.; applied by node selectorAdministration → Node Configuration (list and NCI cards)Node Configuration (NCI), NCI Object (NodeConfigItem)
NodeConfigSummary of actual node-specific configuration collected from all applicable NCIs, with application statusAdministration → Node Management → node view page → Node Configuration tabNodeConfig (NC)
Kubectl example for node.shturval.tech
kubectl get nodeconfigitem

API group cluster.shturval.tech

In the management cluster.

ResourcePurposeGUI locationDocumentation
ClusterConfigActual cluster configuration: API parameters, networks, set of services, links to profiles, etc.Cluster dashboardAPI for cluster management
ClusterInfoSummary information about the cluster for dashboards: status, versions, number of nodesCluster dashboardCluster graphs and dashboards
ClusterProfileConfiguration profile with which the client cluster will be deployedPlatform → Cluster Profiles → Client Cluster Configuration Profiles pageCluster Profiles
Kubectl example for cluster.shturval.tech
kubectl get clusterprofile -A

Reference: Cluster API and infrastructure provider resources (cluster.x-k8s.io, bootstrap.cluster.x-k8s.io, controlplane.cluster.x-k8s.io, infrastructure.cluster.x-k8s.io) associated with the node life cycle are tabulated on the Creating nodes when deploying a client cluster page.

API group ops.shturval.tech

In the management cluster and client cluster.

ResourcePurposeGUI locationDocumentation
ShturvalRepoConfigHelm repositories configuration: URL, protocol, credentials, TLSServices and repositories → Repositories pageHow to connect your repository
ShturvalServiceConfigConfiguration of Helm charts (system services) (SSC): version, control mode, basic customvaluesServices and repositories → Installed services → Manage button → Service tab on the service view pageOverview of working with services, System services of the Shturval repository
ShturvalServicePatchPatch for customvalues system service, overlaid on top of the base SSC; allows you to safely customize servicesApplied ShturvalServicePatch tab on the service pageHow to manage CustomValues ​​services
Kubectl example for ops.shturval.tech
kubectl get shturvalserviceconfig -A

API group update.shturval.tech

In the management cluster and client cluster.

ResourcePurposeGUI locationDocumentation
ShturvalUpdateResource for manually running a cluster update and tracking update statusCluster dashboard → Manage → Cluster Update windowUpdate Kubernetes
ShturvalUpdateChannelSpecifying the update channel (only the stable channel stable is available in the platform)Cluster dashboard → Manage → Cluster Update windowUpdate Kubernetes, Update mirror in closed loop
ShturvalUpdateScheduleSchedule for automatic (delayed) cluster updateCluster dashboard → Manage → Cluster update window → Configuring deferred updateUpdate Kubernetes
Kubectl example for update.shturval.tech (ShturvalUpdateSchedule)```bash kubectl get shturvalupdateschedule -n shturval-update-system ```

API group permissions.shturval.tech

In the management cluster.

ResourcePurposeGUI locationDocumentation
GroupRoleAn object to associate a permission set with a user group; determines which Permissions apply to the group and at what level (platform, tenant, cluster, namespace)Access Control/Role Management→ Groups and assigning rights to groupsCustom resources for managing access rights, How access rights are assigned
UserRoleObject to associate a permission set with a specific userAccess Control/Role Management → Users and assigning rights to usersCustom resources for managing access rights, How access rights are assigned
ScopeA set of permission enforcement objects (for example, a platform, a specific tenant, a cluster, or a namespace)The internal essence of the access control system; displayed through the access tree and rights assignment pagesPermission settings
PermissionSet of permissionsAccess Control → Access ManagerSetting permissions, Custom resources for managing access rights
TenantLogical combination of entire clusters or namespaces of one or more clusters for access controlTenants tabTenant concept
Kubectl example for permissions.shturval.tech
kubectl get userrole -n shturval-backend

When to use GUI and when to use manifests

  • GUI is convenient for typical operations: creating a cluster, setting up services, assigning rights, changing node configurations.
  • Custom resource manifests (kubectl, YAML import) are useful when:
    • you want to version changes and apply them via GitOps;
    • requires access to the full set of resource fields, not all of which are in the GUI.

Instructions for importing YAML manifests through the interface: Import manifests.

For all of the listed resources, it is recommended to focus on the specialized sections of the documentation (links in the tables above) - they contain YAML examples, restrictions and typical usage scenarios.