Skip to content

Clean up warnings in examples #1628

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<LangVersion>11.0</LangVersion>
<LangVersion>13.0</LangVersion>
</PropertyGroup>

<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
Expand Down
49 changes: 20 additions & 29 deletions examples/attach/Attach.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,29 @@
using System;
using System.Threading.Tasks;

namespace attach
{
internal class Attach
{
private static async Task Main(string[] args)
{
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
Console.WriteLine("Starting Request!");
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
Console.WriteLine("Starting Request!");

var list = client.CoreV1.ListNamespacedPod("default");
var pod = list.Items[0];
await AttachToPod(client, pod).ConfigureAwait(false);
}
var list = client.CoreV1.ListNamespacedPod("default");
var pod = list.Items[0];
await AttachToPod(client, pod).ConfigureAwait(false);

private static async Task AttachToPod(IKubernetes client, V1Pod pod)
{
var webSocket =
await client.WebSocketNamespacedPodAttachAsync(pod.Metadata.Name, "default",
pod.Spec.Containers[0].Name).ConfigureAwait(false);
async Task AttachToPod(IKubernetes client, V1Pod pod)
{
var webSocket =
await client.WebSocketNamespacedPodAttachAsync(pod.Metadata.Name, "default",
pod.Spec.Containers[0].Name).ConfigureAwait(false);

var demux = new StreamDemuxer(webSocket);
demux.Start();
var demux = new StreamDemuxer(webSocket);
demux.Start();

var buff = new byte[4096];
var stream = demux.GetStream(1, 1);
while (true)
{
var read = stream.Read(buff, 0, 4096);
var str = System.Text.Encoding.Default.GetString(buff);
Console.WriteLine(str);
}
}
var buff = new byte[4096];
var stream = demux.GetStream(1, 1);
while (true)
{
var read = stream.Read(buff, 0, 4096);
var str = System.Text.Encoding.Default.GetString(buff);
Console.WriteLine(str);
}
}
4 changes: 2 additions & 2 deletions examples/csrApproval/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ string GenerateCertificate(string name)
var request = new CertificateRequest(distinguishedName, rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);

request.CertificateExtensions.Add(new X509KeyUsageExtension(X509KeyUsageFlags.DataEncipherment | X509KeyUsageFlags.KeyEncipherment | X509KeyUsageFlags.DigitalSignature, false));
request.CertificateExtensions.Add(new X509EnhancedKeyUsageExtension(new OidCollection { new("1.3.6.1.5.5.7.3.1") }, false));
request.CertificateExtensions.Add(new X509EnhancedKeyUsageExtension([new ("1.3.6.1.5.5.7.3.1")], false));
request.CertificateExtensions.Add(sanBuilder.Build());
var csr = request.CreateSigningRequest();
var pemKey = "-----BEGIN CERTIFICATE REQUEST-----\r\n" +
Expand Down Expand Up @@ -67,7 +67,7 @@ string GenerateCertificate(string name)

var replace = new List<V1CertificateSigningRequestCondition>
{
new("True", "Approved", DateTime.UtcNow, DateTime.UtcNow, "This certificate was approved by k8s client", "Approve"),
new ("True", "Approved", DateTime.UtcNow, DateTime.UtcNow, "This certificate was approved by k8s client", "Approve"),
};
readCert.Status.Conditions = replace;

Expand Down
45 changes: 18 additions & 27 deletions examples/exec/Exec.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,35 +3,26 @@
using System;
using System.Threading.Tasks;

namespace exec
{
internal class Exec
{
private static async Task Main(string[] args)
{
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
Console.WriteLine("Starting Request!");
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
Console.WriteLine("Starting Request!");

var list = client.CoreV1.ListNamespacedPod("default");
var pod = list.Items[0];
await ExecInPod(client, pod).ConfigureAwait(false);
}
var list = client.CoreV1.ListNamespacedPod("default");
var pod = list.Items[0];
await ExecInPod(client, pod).ConfigureAwait(false);

private static async Task ExecInPod(IKubernetes client, V1Pod pod)
{
var webSocket =
await client.WebSocketNamespacedPodExecAsync(pod.Metadata.Name, "default", "ls",
pod.Spec.Containers[0].Name).ConfigureAwait(false);
async Task ExecInPod(IKubernetes client, V1Pod pod)
{
var webSocket =
await client.WebSocketNamespacedPodExecAsync(pod.Metadata.Name, "default", "ls",
pod.Spec.Containers[0].Name).ConfigureAwait(false);

var demux = new StreamDemuxer(webSocket);
demux.Start();
var demux = new StreamDemuxer(webSocket);
demux.Start();

var buff = new byte[4096];
var stream = demux.GetStream(1, 1);
var read = stream.Read(buff, 0, 4096);
var str = System.Text.Encoding.Default.GetString(buff);
Console.WriteLine(str);
}
}
var buff = new byte[4096];
var stream = demux.GetStream(1, 1);
var read = stream.Read(buff, 0, 4096);
var str = System.Text.Encoding.Default.GetString(buff);
Console.WriteLine(str);
}
30 changes: 10 additions & 20 deletions examples/generic/Generic.cs
Original file line number Diff line number Diff line change
@@ -1,26 +1,16 @@
using k8s;
using k8s.Models;
using System;
using System.Threading.Tasks;

namespace exec
{
internal class Generic
{
private static async Task Main(string[] args)
{
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
var generic = new GenericClient(client, "", "v1", "nodes");
var node = await generic.ReadAsync<V1Node>("kube0").ConfigureAwait(false);
Console.WriteLine(node.Metadata.Name);
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
var generic = new GenericClient(client, "", "v1", "nodes");
var node = await generic.ReadAsync<V1Node>("kube0").ConfigureAwait(false);
Console.WriteLine(node.Metadata.Name);

var genericPods = new GenericClient(client, "", "v1", "pods");
var pods = await genericPods.ListNamespacedAsync<V1PodList>("default").ConfigureAwait(false);
foreach (var pod in pods.Items)
{
Console.WriteLine(pod.Metadata.Name);
}
}
}
var genericPods = new GenericClient(client, "", "v1", "pods");
var pods = await genericPods.ListNamespacedAsync<V1PodList>("default").ConfigureAwait(false);
foreach (var pod in pods.Items)
{
Console.WriteLine(pod.Metadata.Name);
}
65 changes: 28 additions & 37 deletions examples/labels/PodList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,38 @@
using System;
using System.Collections.Generic;

namespace simple
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
Console.WriteLine("Starting Request!");

var list = client.CoreV1.ListNamespacedService("default");
foreach (var item in list.Items)
{
internal class PodList
Console.WriteLine("Pods for service: " + item.Metadata.Name);
Console.WriteLine("=-=-=-=-=-=-=-=-=-=-=");
if (item.Spec == null || item.Spec.Selector == null)
{
private static void Main(string[] args)
{
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
Console.WriteLine("Starting Request!");

var list = client.CoreV1.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<string>();
foreach (var key in item.Spec.Selector)
{
labels.Add(key.Key + "=" + key.Value);
}
continue;
}

var labelStr = string.Join(",", labels.ToArray());
Console.WriteLine(labelStr);
var podList = client.CoreV1.ListNamespacedPod("default", labelSelector: labelStr);
foreach (var pod in podList.Items)
{
Console.WriteLine(pod.Metadata.Name);
}
var labels = new List<string>();
foreach (var key in item.Spec.Selector)
{
labels.Add(key.Key + "=" + key.Value);
}

if (podList.Items.Count == 0)
{
Console.WriteLine("Empty!");
}
var labelStr = string.Join(",", labels.ToArray());
Console.WriteLine(labelStr);
var podList = client.CoreV1.ListNamespacedPod("default", labelSelector: labelStr);
foreach (var pod in podList.Items)
{
Console.WriteLine(pod.Metadata.Name);
}

Console.WriteLine();
}
}
if (podList.Items.Count == 0)
{
Console.WriteLine("Empty!");
}

Console.WriteLine();
}
40 changes: 15 additions & 25 deletions examples/logs/Logs.cs
Original file line number Diff line number Diff line change
@@ -1,31 +1,21 @@
using k8s;
using System;
using System.Threading.Tasks;

namespace logs
{
internal class Logs
{
private static async Task Main(string[] args)
{
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
Console.WriteLine("Starting Request!");
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
Console.WriteLine("Starting Request!");

var list = client.CoreV1.ListNamespacedPod("default");
if (list.Items.Count == 0)
{
Console.WriteLine("No pods!");
return;
}
var list = client.CoreV1.ListNamespacedPod("default");
if (list.Items.Count == 0)
{
Console.WriteLine("No pods!");
return;
}

var pod = list.Items[0];
var pod = list.Items[0];

var response = await client.CoreV1.ReadNamespacedPodLogWithHttpMessagesAsync(
pod.Metadata.Name,
pod.Metadata.NamespaceProperty, container: pod.Spec.Containers[0].Name, follow: true).ConfigureAwait(false);
var stream = response.Body;
stream.CopyTo(Console.OpenStandardOutput());
}
}
}
var response = await client.CoreV1.ReadNamespacedPodLogWithHttpMessagesAsync(
pod.Metadata.Name,
pod.Metadata.NamespaceProperty, container: pod.Spec.Containers[0].Name, follow: true).ConfigureAwait(false);
var stream = response.Body;
stream.CopyTo(Console.OpenStandardOutput());
73 changes: 32 additions & 41 deletions examples/metrics/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,58 +3,49 @@
using System.Linq;
using System.Threading.Tasks;

namespace metrics
async Task NodesMetrics(IKubernetes client)
{
internal class Program
var nodesMetrics = await client.GetKubernetesNodesMetricsAsync().ConfigureAwait(false);

foreach (var item in nodesMetrics.Items)
{
private static async Task NodesMetrics(IKubernetes client)
Console.WriteLine(item.Metadata.Name);

foreach (var metric in item.Usage)
{
var nodesMetrics = await client.GetKubernetesNodesMetricsAsync().ConfigureAwait(false);
Console.WriteLine($"{metric.Key}: {metric.Value}");
}
}
}

foreach (var item in nodesMetrics.Items)
{
Console.WriteLine(item.Metadata.Name);
async Task PodsMetrics(IKubernetes client)
{
var podsMetrics = await client.GetKubernetesPodsMetricsAsync().ConfigureAwait(false);

foreach (var metric in item.Usage)
{
Console.WriteLine($"{metric.Key}: {metric.Value}");
}
}
}
if (!podsMetrics.Items.Any())
{
Console.WriteLine("Empty");
}

private static async Task PodsMetrics(IKubernetes client)
foreach (var item in podsMetrics.Items)
{
foreach (var container in item.Containers)
{
var podsMetrics = await client.GetKubernetesPodsMetricsAsync().ConfigureAwait(false);

if (!podsMetrics.Items.Any())
{
Console.WriteLine("Empty");
}
Console.WriteLine(container.Name);

foreach (var item in podsMetrics.Items)
foreach (var metric in container.Usage)
{
foreach (var container in item.Containers)
{
Console.WriteLine(container.Name);

foreach (var metric in container.Usage)
{
Console.WriteLine($"{metric.Key}: {metric.Value}");
}
}

Console.Write(Environment.NewLine);
Console.WriteLine($"{metric.Key}: {metric.Value}");
}
}

private static async Task Main(string[] args)
{
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
var client = new Kubernetes(config);

await NodesMetrics(client).ConfigureAwait(false);
Console.WriteLine(Environment.NewLine);
await PodsMetrics(client).ConfigureAwait(false);
}
Console.Write(Environment.NewLine);
}
}

var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
var client = new Kubernetes(config);

await NodesMetrics(client).ConfigureAwait(false);
Console.WriteLine(Environment.NewLine);
await PodsMetrics(client).ConfigureAwait(false);
Loading
Loading