KubeOps.Abstractions 9.5.0

dotnet add package KubeOps.Abstractions --version 9.5.0
                    
NuGet\Install-Package KubeOps.Abstractions -Version 9.5.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="KubeOps.Abstractions" Version="9.5.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="KubeOps.Abstractions" Version="9.5.0" />
                    
Directory.Packages.props
<PackageReference Include="KubeOps.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add KubeOps.Abstractions --version 9.5.0
                    
#r "nuget: KubeOps.Abstractions, 9.5.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=KubeOps.Abstractions&version=9.5.0
                    
Install KubeOps.Abstractions as a Cake Addin
#tool nuget:?package=KubeOps.Abstractions&version=9.5.0
                    
Install KubeOps.Abstractions as a Cake Tool

KubeOps.Abstractions

Nuget

This package provides the fundamental building blocks for the KubeOps SDK. It defines the core interfaces, abstract base classes, and .NET attributes used throughout the operator framework.

Think of this package as the contract definition for key KubeOps components.

Key Components

The primary abstractions defined here include:

  • Entities:
    • CustomKubernetesEntity<TSpec, TStatus>: The base class for defining your Custom Resources.
    • CustomKubernetesEntity<TSpec>: A simpler base class for entities that do not require a .status subresource.
    • [KubernetesEntity]: Attribute to mark a C# class as a Kubernetes entity and define its Group, Version, and Kind (GVK).
    • [EntityScope]: Attribute to define whether an entity is Namespaced or Cluster-scoped.
    • Various validation attributes ([Description], [RangeMaximum], [Pattern], etc.) used to generate OpenAPI validation rules for the CRD. See .NET Data Annotations for common attributes.
    • [EntityRbac]: Attribute applied to Controllers and Webhooks to declare the RBAC permissions required by the operator for a specific entity type. Processed by the CLI/Generators.
    • See: Defining Custom Entities
  • Controllers:
    • IResourceController<TEntity>: The interface that must be implemented by controllers to handle the reconciliation logic for a specific entity type.
    • See: Implementing Controllers
  • Finalizers:
    • IResourceFinalizer<TEntity>: The interface for implementing cleanup logic that runs before an entity is deleted.
    • [ResourceFinalizerMetadata]: Attribute to associate a unique identifier with a finalizer implementation.
    • See: Using Finalizers
  • Webhooks:
    • IAdmissionWebhook<TEntity, TOperation>: Base interface for admission webhooks.
    • IMutationWebhook<TEntity, TOperation>: Interface for webhooks that can modify entities during admission.
    • IValidationWebhook<TEntity, TOperation>: Interface for webhooks that validate entities during admission.
    • IConversionWebhook<TFrom, TTo>: Interface for implementing CRD conversion between different API versions.
    • See: Admission Webhooks
  • Common Utilities: Various helper methods and base types used internally by the SDK.

When to Use

Most projects building a KubeOps operator will reference the main KubeOps.Operator package, which includes this abstractions package as a dependency.

By depending only on this package, you can define your entities and interfaces without pulling in the full operator runtime or Kubernetes client logic, promoting better separation of concerns. This is primarily useful if you want to:

  • Define your CRD entity classes in a separate library, shared between your operator and potentially other applications.
  • Build tools that need to understand KubeOps entity definitions without needing the operator runtime.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on KubeOps.Abstractions:

Package Downloads
KubeOps.KubernetesClient

Kubernetes Client written in DotNet. Based on the implementation of Google (https://github.com/kubernetes-client/csharp) but with dotnet native language features like generics. Internally uses the "GenericClient" of the Google KubernetesClient. However, wraps the methods around with true generics.

KubeOps.Transpiler

Transpilation elements for the Kubernetes Operator SDK. Enables the developer to create CRDs from types and other Kubernetes related elements via reflection.

KubeOps.Operator

This is an operator sdk written in c#. It enables a developer to create a custom controller for CRDs (CustomResourceDefinitions) that runs on kubernetes. This operator may run without ASP.net but needs the IHost of dotnet to run.

KubeOps.Operator.Web

This is an operator sdk written in c#. It enables a developer to create a custom controller for CRDs (CustomResourceDefinitions) that runs on kubernetes. This operator uses ASP.net to support webhooks and external access to the operator.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
9.5.0 712 5/8/2025
9.4.1 1,107 4/29/2025
9.4.0 288 4/28/2025
9.3.0 7,431 3/26/2025
9.2.0 11,779 1/24/2025
9.1.5 45,901 9/10/2024
9.1.4 1,723 8/26/2024
9.1.3 20,693 6/28/2024
9.1.2 12,186 6/20/2024
9.1.1 5,678 5/22/2024
9.1.0 2,691 5/15/2024
9.0.2 314 5/13/2024
9.0.0 29,116 3/13/2024
9.0.0-pre.4 78 4/19/2024
9.0.0-pre.3 90 3/21/2024
9.0.0-pre.2 72 3/13/2024
9.0.0-pre.1 96 3/7/2024
8.0.2-pre.2 86 2/21/2024
8.0.2-pre.1 79 2/19/2024
8.0.1 11,776 2/13/2024
8.0.1-pre.7 75 2/12/2024
8.0.1-pre.6 80 2/7/2024
8.0.1-pre.5 81 2/5/2024
8.0.1-pre.4 78 1/31/2024
8.0.1-pre.3 71 1/26/2024
8.0.1-pre.2 70 1/25/2024
8.0.1-pre.1 71 1/18/2024
8.0.0 1,150 1/17/2024
8.0.0-pre.45 73 1/17/2024
8.0.0-pre.44 80 1/16/2024
8.0.0-pre.43 77 1/16/2024
8.0.0-pre.42 966 1/10/2024
8.0.0-pre.41 318 1/2/2024
8.0.0-pre.40 178 12/27/2023
8.0.0-pre.39 90 12/21/2023
8.0.0-pre.38 434 12/6/2023
8.0.0-pre.37 135 12/6/2023
8.0.0-pre.36 162 12/3/2023
8.0.0-pre.35 114 11/28/2023
8.0.0-pre.34 120 11/24/2023
8.0.0-pre.33 86 11/24/2023
8.0.0-pre.32 83 11/23/2023
8.0.0-pre.31 81 11/23/2023
8.0.0-pre.30 93 11/23/2023
8.0.0-pre.29 977 11/11/2023
8.0.0-pre.28 107 11/8/2023
8.0.0-pre.27 590 10/23/2023
8.0.0-pre.26 119 10/19/2023
8.0.0-pre.25 89 10/18/2023
8.0.0-pre.24 100 10/13/2023
8.0.0-pre.23 90 10/13/2023
8.0.0-pre.22 93 10/13/2023
8.0.0-pre.21 94 10/12/2023
8.0.0-pre.20 101 10/11/2023
8.0.0-pre.19 102 10/9/2023
8.0.0-pre.18 84 10/9/2023
8.0.0-pre.17 88 10/7/2023
8.0.0-pre.16 114 10/6/2023
8.0.0-pre.15 84 10/6/2023
8.0.0-pre.14 90 10/5/2023
8.0.0-pre.13 77 10/5/2023
8.0.0-pre.12 88 10/4/2023
8.0.0-pre.11 87 10/3/2023
8.0.0-pre.10 88 10/3/2023
8.0.0-pre.9 86 10/3/2023
8.0.0-pre.8 83 10/2/2023
8.0.0-pre.7 84 10/2/2023
8.0.0-pre.6 92 9/29/2023
8.0.0-pre.5 90 9/28/2023
8.0.0-pre.4 86 9/28/2023
8.0.0-pre.3 90 9/27/2023
8.0.0-pre.2 76 9/26/2023
8.0.0-pre.1 83 9/22/2023

'# [9.5.0](https://github.com/buehler/dotnet-operator-sdk/compare/v9.4.1...v9.5.0) (2025-05-08)


### Bug Fixes

* Change the labels to an array ([#881](https://github.com/buehler/dotnet-operator-sdk/issues/881)) ([4e0c205](https://github.com/buehler/dotnet-operator-sdk/commit/4e0c2054f9a6bc10ac694c04c68e518c1357c687)), closes [/#diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L39-R45](https://github.com///issues/diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L39-R45) [/#diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L54-R62](https://github.com///issues/diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L54-R62) [/#diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L74-R109](https://github.com///issues/diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L74-R109) [/#diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L159-R159](https://github.com///issues/diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L159-R159) [/#diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L170-R174](https://github.com///issues/diff-cf95f5a9676479797ff0ade11e4dd8d679dd1974142058976f3a35ca6a63b4f2L170-R174)
* **deps:** update dependencies ([#853](https://github.com/buehler/dotnet-operator-sdk/issues/853)) ([5a99011](https://github.com/buehler/dotnet-operator-sdk/commit/5a99011c33bc87daa49e7ce1c8d7d4fb62663ed9))
* **deps:** update dependency sonaranalyzer.csharp to 10.9.0.115408 ([#878](https://github.com/buehler/dotnet-operator-sdk/issues/878)) ([74c0a66](https://github.com/buehler/dotnet-operator-sdk/commit/74c0a66e502431d4f372d32b6d118e9f7d9426fa))


### Features

* Add `AllExplicit` RBAC verb & state all default V1Lease RBAC verbs explicitly ([#879](https://github.com/buehler/dotnet-operator-sdk/issues/879)) ([92063d8](https://github.com/buehler/dotnet-operator-sdk/commit/92063d8b7a8f5d45f6c79e0e1a85101370679255))



'