K8s Graph Dependency API for Automatic Resource Reconciliation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveautomatic reconciliationVSAvoidhandling of resource sets with dependencies
Core Design Contradiction:
Extent of automationVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvedependency managementVSAvoidreconciliation system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #23Feedback

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improveautomatic reconciliation of resource setsVSAvoidconfiguration complexity
Core Design Contradiction:
Extent of automationVSEase of operation

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11704112B2Method and system for reconciliation of a set of K8s resource/objects
Publication Date: 2023.07.18 OVH
  • US11704112B2 patent drawing
  • US11704112B2 patent drawing
  • US11704112B2 patent drawing

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.