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.Tool
- Yaml to C# Class Generator
- KubernetesCRDModelGen.Sync
- Synchronizes Custom Resource Definitions from numerous sources
- Programmatically
var crd = KubernetesYaml.LoadAllFromString(yaml); var fac = LoggerFactory.Create((x) => { }); var generator = new Generator(fac.CreateLogger<Generator>()); var code = generator.GenerateCode(crd); var assembly = generator.GenerateAssembly(crd)
- CLI
- Install .Net Tool
dotnet tool install --global KubernetesCRDModelGen.Tool --prerelease
- Run
KubernetesCRDModelGen --FolderPath /path/to/yamls --Namespace Namespace
- Install .Net Tool
We publish the following premade packages
Group | NuGet |
---|---|
argoproj.io | Link |
aws.upbound.io | Link |
azure.com | Link |
azure.upbound.io | Link |
cnrm.cloud.google.com | Link |
crossplane.io | Link |
fluxcd.io | Link |
gcp.upbound.io | Link |
helm.crossplane.io | Link |
istio.io | Link |
jetstack.io | Link |
keda.sh | Link |
knative.dev | Link |
kubevirt.io | Link |
postgresql.cnpg.io | Link |
projectcalico.org | Link |
secrets-store.csi.x-k8s.io | Link |
storage.k8s.io | Link |
tf.upbound.io | Link |
traefik.io | Link |
OpenAPIv3 type | Type |
---|---|
'object' with Properties | object |
'object' with AdditionalProperties | Dictionary |
'object' with x-kubernetes-embedded-type | object |
'object' with x-kubernetes-preserve-unknown-fields | object |
'object' with x-kubernetes-int-or-string | k8s.Models.IntstrIntOrString |
'array' | List |
'array' with x-kubernetes-list-type=atomic | List |
'array' with x-kubernetes-list-type=map | List |
'array' with x-kubernetes-list-type=set | List |
'boolean' | boolean |
'number' (all formats) | double |
'integer' (all formats) | int |
'integer' with format=int64 | long |
'null' | null |
'string' | string |
'string' with format=binary | |
'string' with format=byte (base64 encoded) | |
'string' with format=date | |
'string' with format=date-time | |
'string' with format=duration |