| Author | Gyubong Lee (gbl@lablup.com) |
|---|---|
| Status | Draft |
| Created | 2025-01-21 |
| Created-Version | 26.2.0 |
| Target-Version | 26.2.0 |
| Implemented-Version |
This document defines the implementation plan for KernelV2GQL types as part of the Strawberry GraphQL migration (BEP-1010). It specifies:
- Types to Include - Types that will be implemented
- Types to Skip - Types replaced by other designs
- Types to Defer - Types requiring Node connections (implement later)
| Document | Description |
|---|---|
| types-to-include.md | Detailed specifications of types to implement |
| types-to-skip.md | Types replaced by other designs |
| types-to-defer.md | Types requiring Node connections |
KernelOrderField- Ordering field enum
KernelStatusFilterGQL- Status filter inputKernelFilterGQL- Main filter inputKernelOrderByGQL- Ordering input
KernelSessionInfoGQL- Session infoKernelClusterInfoGQL- Cluster configKernelUserInfoGQL- User/permission infoResourceAllocationGQL- Resource allocation (requested/used)KernelResourceInfoGQL- Resource infoKernelNetworkInfoGQL- Network configKernelLifecycleInfoGQL- Lifecycle info (partial - see skipped)
Note:
image_idandstartup_commandare inlined directly onKernelV2GQL(single-element types removed)
KernelV2GQL- Main kernel node typeKernelEdgeGQL- Edge typeKernelConnectionV2GQL- Connection type
ResourceOptsEntryGQL,ResourceOptsGQL,ResourceOptsEntryInput,ResourceOptsInput- Resource options (already exist)ServicePortEntryGQL,ServicePortsGQL- Service ports
| Type | Reason |
|---|---|
SchedulerPredicateGQL |
Replaced by new scheduler design |
SchedulerInfoGQL |
Replaced by new scheduler design |
KernelStatusHistoryEntryGQL |
Replaced by new status tracking design |
KernelStatusHistoryGQL |
Replaced by new status tracking design |
For each deferred Node type, we include the ID field now and defer only the Node connection.
Node references are placed directly on KernelV2GQL:
| Node Field | Type |
|---|---|
image_node |
ImageNode | None |
session_node |
SessionNode | None |
user_node |
UserNode | None |
keypair_node |
KeypairNode | None |
domain_node |
DomainNode | None |
project_node |
GroupNode | None |
agent_node |
AgentNode | None |
resource_group_node |
ResourceGroupNode | None |
vfolder_nodes |
VFolderConnection |
- Implement all types listed in "Types to Include"
- Skip all types listed in "Types to Skip"
- Include ID fields for deferred Node types:
KernelUserInfoGQL: includeuser_id,access_key,domain_name,group_idKernelSessionInfoGQL: includesession_id,creation_idKernelResourceInfoGQL: includeagent_id,resource_group_name
- Update
KernelLifecycleInfoGQLto removestatus_history,status_info,status_data,status_changedfields - Update
from_kernel_info()method to match new type structure
- ImageNode PR: Implement
image_node: ImageNodeonKernelV2GQL - SessionNode PR: Implement
session_node: SessionNodeonKernelV2GQL - UserNode PR: Implement
user_node: UserNodeonKernelV2GQL - KeypairNode PR: Implement
keypair_node: KeypairNodeonKernelV2GQL - DomainNode PR: Implement
domain_node: DomainNodeonKernelV2GQL - GroupNode PR: Implement
project_node: GroupNodeonKernelV2GQL - AgentNode PR: Implement
agent_node: AgentNodeonKernelV2GQL - ResourceGroupNode PR: Implement
resource_group_node: ResourceGroupNodeonKernelV2GQL - VFolderNode PR: Implement
vfolder_nodes: VFolderConnectiononKernelV2GQL