K8s Graph Dependency API for Automatic Resource Reconciliation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Kubernetes (K8s) reconciliation systems lack the ability to automatically manage sets of resource(objects) with dependencies, making it difficult to maintain the desired state of complex applications or multiple applications where dependencies exist between resources or objects.
Innovation Solution
A Graph Dependency Application Programming Interface (API) is introduced to enable developers to define a dependency graph between K8s resource/objects, allowing for automatic reconciliation by monitoring changes in metadata, specification, or status fields and modifying the versioning levels to trigger necessary changes and reconcile the set of resource/objects.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Extent of automation
If K8s reconciliation is applied to individual resources/objects, then the desired state of individual resources can be maintained, but automatic reconciliation of sets of resources with dependencies is not possible
Solution Approach 1:
The system segments the set of resources into individual resource objects, each with its own versioning level and dependency relationships. By breaking down the complex set into manageable individual units with defined versioning, the system can apply automated reconciliation to each segment while maintaining awareness of their interdependencies through the versioning hierarchy.
2Reliability
If versioning levels are monitored and modified to trigger reconciliation, then dependency management between resources is improved, but the complexity of the reconciliation system increases
Solution Approach 1:
The system implements feedback mechanisms by continuously monitoring versioning levels of resources and their dependencies. When a resource's versioning level changes, the system automatically triggers reconciliation of dependent resources, creating a closed-loop control system that maintains reliability without requiring complex manual intervention.
Solution Approach 2:
The reconciliation system performs self-service by automatically detecting versioning level changes and triggering appropriate reconciliation actions without external intervention. The system monitors its own state through versioning levels and autonomously manages dependency reconciliation, reducing the perceived complexity for users.
3Extent of automation
If a Graph Dependency API is introduced to define dependency graphs, then automatic reconciliation of resource sets becomes enabled, but the ease of operation decreases due to additional configuration requirements
Solution Approach 1:
The Graph Dependency API serves multiple functions: it defines dependency relationships between resources, tracks versioning levels, triggers reconciliation events, and provides a standardized interface for resource management. By consolidating these functions into a single universal API, the system enables automatic reconciliation while minimizing the operational burden through a unified configuration approach.
Data Source
AI summary
A method and system for reconciliation of a set of K8s resource/objects includes a Graph Dependency (GD) API enabling a Developer to define a dependency graph between K8s resource/objects of the set. Interfacing with the API Server in a K8s system, the GD API monitors events on the K8s resource/objects of the set, and upon occurrence of an event on an affected K8s resource/object, triggers reconciliation of the set as determined necessary based on the matching of versioning level of the affected K8s resource/object, with the versioning level of the parent recorded in children of the affected K8s resource/object, from immediate children to leaf children in the dependency graph.


