From 7f5ef645c193062c69d9f6f1494341fcaa97c7b8 Mon Sep 17 00:00:00 2001 From: Brendan Burns Date: Thu, 22 Mar 2018 16:32:38 -0700 Subject: [PATCH] Add a new example of how to list a subset of pods using labels. (#110) --- examples/labels/PodList.cs | 44 +++++++++++++++++++++++++++++++++++ examples/labels/labels.csproj | 12 ++++++++++ 2 files changed, 56 insertions(+) create mode 100755 examples/labels/PodList.cs create mode 100755 examples/labels/labels.csproj diff --git a/examples/labels/PodList.cs b/examples/labels/PodList.cs new file mode 100755 index 0000000..9fcb58f --- /dev/null +++ b/examples/labels/PodList.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using k8s; + +namespace simple +{ + internal class PodList + { + private static void Main(string[] args) + { + var config = KubernetesClientConfiguration.BuildConfigFromConfigFile(); + IKubernetes client = new Kubernetes(config); + Console.WriteLine("Starting Request!"); + + var list = client.ListNamespacedService("default"); + foreach (var item in list.Items) + { + Console.WriteLine("Pods for service: " + item.Metadata.Name); + Console.WriteLine("=-=-=-=-=-=-=-=-=-=-="); + if (item.Spec == null || item.Spec.Selector == null) + { + continue; + } + var labels = new List(); + foreach (var key in item.Spec.Selector) + { + labels.Add(key.Key + "=" + key.Value); + } + var labelStr = string.Join(",", labels.ToArray()); + Console.WriteLine(labelStr); + var podList = client.ListNamespacedPod("default", labelSelector: labelStr); + foreach (var pod in podList.Items) + { + Console.WriteLine(pod.Metadata.Name); + } + if (podList.Items.Count == 0) + { + Console.WriteLine("Empty!"); + } + Console.WriteLine(); + } + } + } +} diff --git a/examples/labels/labels.csproj b/examples/labels/labels.csproj new file mode 100755 index 0000000..270736f --- /dev/null +++ b/examples/labels/labels.csproj @@ -0,0 +1,12 @@ + + + + + + + + Exe + netcoreapp2.0 + + +