KubernetesCRDModelGen.Base
1.6.12
dotnet add package KubernetesCRDModelGen.Base --version 1.6.12
NuGet\Install-Package KubernetesCRDModelGen.Base -Version 1.6.12
<PackageReference Include="KubernetesCRDModelGen.Base" Version="1.6.12" />
<PackageVersion Include="KubernetesCRDModelGen.Base" Version="1.6.12" />
<PackageReference Include="KubernetesCRDModelGen.Base" />
paket add KubernetesCRDModelGen.Base --version 1.6.12
#r "nuget: KubernetesCRDModelGen.Base, 1.6.12"
#:package KubernetesCRDModelGen.Base@1.6.12
#addin nuget:?package=KubernetesCRDModelGen.Base&version=1.6.12
#tool nuget:?package=KubernetesCRDModelGen.Base&version=1.6.12
KubernetesCRDModelGen
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
- Install .Net Tool
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:
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 |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 is compatible. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Humanizer.Core (>= 3.0.10)
- Microsoft.CodeAnalysis.CSharp (>= 4.14.0)
- Microsoft.OpenApi (>= 3.9.0)
- System.Text.Json (>= 9.0.18)
-
net10.0
- Humanizer.Core (>= 3.0.10)
- Microsoft.CodeAnalysis.CSharp (>= 4.14.0)
- Microsoft.OpenApi (>= 3.9.0)
-
net8.0
- Humanizer.Core (>= 3.0.10)
- Microsoft.CodeAnalysis.CSharp (>= 4.14.0)
- Microsoft.OpenApi (>= 3.9.0)
- System.Text.Json (>= 9.0.18)
-
net9.0
- Humanizer.Core (>= 3.0.10)
- Microsoft.CodeAnalysis.CSharp (>= 4.14.0)
- Microsoft.OpenApi (>= 3.9.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on KubernetesCRDModelGen.Base:
| Package | Downloads |
|---|---|
|
KubernetesCRDModelGen
Converts Kubernetes Custom Resource Definition Yaml files to Models |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.6.12 | 280 | 7/15/2026 |
| 1.6.11 | 123 | 7/14/2026 |
| 1.6.10 | 190 | 7/6/2026 |
| 1.6.9 | 162 | 7/2/2026 |
| 1.6.8 | 135,511 | 6/12/2026 |
| 1.6.7 | 115 | 6/12/2026 |
| 1.6.6 | 142 | 6/11/2026 |
| 1.6.5 | 22,199 | 6/1/2026 |
| 1.6.4 | 148 | 5/29/2026 |
| 1.6.3 | 160 | 5/26/2026 |
| 1.6.2 | 45,256 | 5/14/2026 |
| 1.6.1 | 379 | 5/12/2026 |
| 1.6.0 | 695 | 4/27/2026 |
| 1.5.3 | 322 | 4/27/2026 |
| 1.5.2 | 36,951 | 4/15/2026 |
| 1.5.1 | 15,094 | 4/14/2026 |
| 1.5.0 | 1,483 | 3/29/2026 |
| 1.4.0 | 145 | 3/28/2026 |
| 1.3.0 | 162 | 3/28/2026 |
| 1.2.9 | 215 | 3/27/2026 |