54 lines
1.4 KiB
Markdown
54 lines
1.4 KiB
Markdown
# Custom Resource Client Example
|
|
|
|
This example demonstrates how to use the C# Kubernetes Client library to create, get and list custom resources.
|
|
|
|
## Pre-requisits
|
|
|
|
Make sure your have added the library package
|
|
|
|
```shell
|
|
dotnet add package KubernetesClient
|
|
```
|
|
|
|
## Create Custom Resource Definition (CRD)
|
|
|
|
Make sure the [CRD](./config/crd.yaml) is created, in order to create an instance of it after.
|
|
|
|
```shell
|
|
kubectl create -f ./config/crd.yaml
|
|
```
|
|
|
|
You can test that the CRD is successfully added, by creating an [instance](./config/yaml-cr-instance.yaml) of it using kubectl:
|
|
|
|
```shell
|
|
kubectl create -f ./config/yaml-cr-instance.yaml
|
|
```
|
|
|
|
```shell
|
|
kubectl get customresources.csharp.com
|
|
```
|
|
|
|
## Execute the code
|
|
|
|
The client uses the `BuildConfigFromConfigFile()` function. If the KUBECONFIG environment variable is set, then that path to the k8s config file will be used.
|
|
|
|
`dotnet run`
|
|
|
|
Expected output:
|
|
|
|
```
|
|
strating main()...
|
|
working with CRD: customresources.csharp.com
|
|
creating CR cr-instance-london
|
|
CR list:
|
|
- CR Item 0 = cr-instance-london
|
|
- CR Item 1 = cr-instance-paris
|
|
fetchedCR = cr-instance-london (Labels: {identifier : city, newKey : newValue}), Spec: London
|
|
Deleted the CR
|
|
```
|
|
|
|
## Under the hood
|
|
|
|
For more details, you can look at the Generic client [implementation](https://github.com/kubernetes-client/csharp/blob/master/src/KubernetesClient/GenericClient.cs)
|
|
|