KubernetesCRDModelGen.SourceGenerator 1.6.11

There is a newer version of this package available.
See the version list below for details.
dotnet add package KubernetesCRDModelGen.SourceGenerator --version 1.6.11
                    
NuGet\Install-Package KubernetesCRDModelGen.SourceGenerator -Version 1.6.11
                    
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="KubernetesCRDModelGen.SourceGenerator" Version="1.6.11" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="KubernetesCRDModelGen.SourceGenerator" Version="1.6.11" />
                    
Directory.Packages.props
<PackageReference Include="KubernetesCRDModelGen.SourceGenerator" />
                    
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 KubernetesCRDModelGen.SourceGenerator --version 1.6.11
                    
#r "nuget: KubernetesCRDModelGen.SourceGenerator, 1.6.11"
                    
#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.
#:package KubernetesCRDModelGen.SourceGenerator@1.6.11
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=KubernetesCRDModelGen.SourceGenerator&version=1.6.11
                    
Install as a Cake Addin
#tool nuget:?package=KubernetesCRDModelGen.SourceGenerator&version=1.6.11
                    
Install as a Cake Tool

KubernetesCRDModelGen

NugetNuget) codecov

What is this?

This project contains components which allow generation of C# Classes/Assemblies from Kubernetes Custom Resource Definitions.

  • KubernetesCRDModelGen
    • Custom Resource Definition to C# Class/Assembly Generator
  • KubernetesCRDModelGen.SourceGenerator
    • Yaml to C# Source Generator
  • KubernetesCRDModelGen.Tool
    • Yaml to C# Class Generator

How to use

  • Programmatically
    var crd = KubernetesYaml.LoadAllFromString(yaml);
    var generator = new Generator();
    var code = generator.GenerateCode(crd);
    var result = generator.GenerateAssembly(crd);
    using var unloadHandle = result.UnloadHandle;
    
    if (!result.Success)
    {
        foreach (var diagnostic in result.Diagnostics)
        {
            Console.WriteLine($"{diagnostic.Severity}: {diagnostic.Id}: {diagnostic.Message}");
        }
    }
    else
    {
        var assembly = result.Assembly;
        var xml = result.XmlDocumentation;
    }
    
  • CLI
    • Install .Net Tool
      • dotnet tool install --global KubernetesCRDModelGen.Tool
    • Run
      • KubernetesCRDModelGen --FolderPath /path/to/yamls --Namespace Namespace

How to use the Source Generator

Create a C# Class Library Project and add some CRD yaml files to the project. Update the .csproj with the following settings. The Models will be generated in the "KubernetesCRDModelGen.Models.{CRD Group Name}" namespace.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net10.0</TargetFrameworks>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <LangVersion>latest</LangVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="KubernetesClient" Version="19.0.2" />
    <PackageReference Include="KubernetesCRDModelGen.SourceGenerator" Version="2.*" />
  </ItemGroup>

  
  <ItemGroup>
    <AdditionalFiles Include="*.yaml" />
  </ItemGroup>

  
  <ItemGroup>
    
    <CRDYamlSourceUrls>https://app1.com/crd.yaml,https://app2.com/crd.yaml</CRDYamlSourceUrls>

    
    <CRDYamlSourceUrls>https://app1.com/crd.yaml</CRDYamlSourceUrls>
    <CRDYamlSourceUrls>$(CRDYamlSourceUrls),https://app2.com/crd.yaml</CRDYamlSourceUrls>
  </ItemGroup>

</Project>

Published Packages

We publish premade packages for popular projects at the following repo:

KubernetesCRDModelGen.Models

Type Mappings

OpenAPIv3 type This library emits
'object' with Properties generated class
'object' with AdditionalProperties IDictionary<string, TValue>
'object' with x-kubernetes-embedded-resource generated class, with implicit apiVersion, kind, and metadata properties added when missing
'object' with x-kubernetes-preserve-unknown-fields JsonNode, plus JsonExtensionData at object roots with the extension
x-kubernetes-int-or-string k8s.Models.IntOrString
'array' IList<T>
'array' with x-kubernetes-list-type=atomic IList<T>
'array' with x-kubernetes-list-type=map IList<T>
'array' with x-kubernetes-list-type=set IList<T>
'boolean' bool
'number' with format=float float
'number' default / format=double double
'integer' default / format=int32 int
'integer' with format=int64 long
'null' nullable reference/value type when combined with another schema type
'string' string
'string' with format=binary byte[]
'string' with format=byte (base64 encoded) byte[]
'string' with format=date DateTime
'string' with format=date-time DateTime
'string' with format=duration string
There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.6.12 0 7/15/2026
1.6.11 7 7/14/2026
1.6.10 161 7/6/2026
1.6.9 93 7/2/2026
1.6.8 68,636 6/12/2026
1.6.6 106 6/11/2026
1.6.5 22,074 6/1/2026
1.6.4 108 5/29/2026
1.6.3 105 5/26/2026
1.6.2 44,774 5/14/2026
1.6.1 110 5/12/2026
1.6.0 47,688 4/27/2026
1.5.3 1,605 4/27/2026
1.5.2 38,269 4/15/2026
1.5.1 15,142 4/14/2026
1.5.0 271 3/29/2026
1.4.0 237 3/28/2026
1.3.0 258 3/28/2026
1.2.9 131 3/27/2026
1.2.8 1,419 3/16/2026
Loading failed