From 18663be48cf84e3c380ddb7a603315a82a472c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=86gir=20M=C3=A1ni=20Hauksson?= <54936225+sourcehawk@users.noreply.github.com> Date: Thu, 2 Apr 2026 01:29:00 +0100 Subject: [PATCH] improve opening of the README --- README.md | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index f57c3674..a75b3c08 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,10 @@ [![Go Report Card](https://goreportcard.com/badge/github.com/sourcehawk/operator-component-framework)](https://goreportcard.com/report/github.com/sourcehawk/operator-component-framework) [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) -A Go framework for building highly maintainable Kubernetes operators using a behavioral component model and -version-gated feature mutations. +A Go framework for building Kubernetes operators that stay maintainable as they grow. It pulls reconciliation mechanics, +status reporting, and lifecycle behavior into reusable building blocks (**components** and **resource primitives**), so +your controllers stay thin and focused on construction and orchestration, without sacrificing customizability where it +matters.

OCF Logo @@ -13,16 +15,10 @@ version-gated feature mutations. --- -The framework is organized into three composable layers: - -- **Components** group related resources into a single reconcilable unit with one user-facing condition. -- **Resource Primitives** wrap individual Kubernetes objects with built-in lifecycle semantics (health, suspension, - completion). -- **Feature Mutations** apply version-gated or feature-gated modifications to resource definitions without polluting the - baseline. - ## Mental Model +An operator built with this framework has two layers between the controller and raw Kubernetes objects: + ``` Controller └─ Component @@ -35,7 +31,6 @@ Controller | **Controller** | Determines which components should exist; orchestrates reconciliation at a high level | | **Component** | Represents one logical feature; reconciles its resources and reports a single condition | | **Resource Primitive** | Encapsulates desired state and lifecycle behavior for a single Kubernetes object | -| **Kubernetes Object** | The raw `client.Object` (e.g. `Deployment`) persisted to the cluster | ## Features