Skip to content

Commit b5e1e9c

Browse files
authored
init kubectl (#830)
* init kubectl * swagger version into assembly
1 parent 8cfe60b commit b5e1e9c

16 files changed

+262
-8
lines changed

kubernetes-client.sln

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubernetesClient.Basic", "s
5555
EndProject
5656
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubernetesClient.Classic", "src\KubernetesClient.Classic\KubernetesClient.Classic.csproj", "{80F19E8A-F097-4AA4-A68C-D417B96BBC68}"
5757
EndProject
58-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KubernetesClient.Classic.Tests", "tests\KubernetesClient.Classic.Tests\KubernetesClient.Classic.Tests.csproj", "{FD90C861-56C6-4536-B7F5-AC7779296384}"
58+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubernetesClient.Classic.Tests", "tests\KubernetesClient.Classic.Tests\KubernetesClient.Classic.Tests.csproj", "{FD90C861-56C6-4536-B7F5-AC7779296384}"
5959
EndProject
60-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csrApproval", "examples\csrApproval\csrApproval.csproj", "{F626860C-F141-45B3-9DDD-88AD3932ACAF}"
60+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "csrApproval", "examples\csrApproval\csrApproval.csproj", "{F626860C-F141-45B3-9DDD-88AD3932ACAF}"
6161
EndProject
62-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "restart", "examples\restart\restart.csproj", "{973CCB4A-F344-4C4F-81A5-0F40F7F43C07}"
62+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "restart", "examples\restart\restart.csproj", "{973CCB4A-F344-4C4F-81A5-0F40F7F43C07}"
63+
EndProject
64+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubernetesClient.Kubectl", "src\KubernetesClient.Kubectl\KubernetesClient.Kubectl.csproj", "{21201F30-5463-4FC6-93C3-FBF157F0D46C}"
65+
EndProject
66+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kubectl.Tests", "tests\Kubectl.Tests\Kubectl.Tests.csproj", "{9128F6DC-6B7A-417F-937A-90461D6989A8}"
6367
EndProject
6468
Global
6569
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -383,6 +387,30 @@ Global
383387
{973CCB4A-F344-4C4F-81A5-0F40F7F43C07}.Release|x64.Build.0 = Release|Any CPU
384388
{973CCB4A-F344-4C4F-81A5-0F40F7F43C07}.Release|x86.ActiveCfg = Release|Any CPU
385389
{973CCB4A-F344-4C4F-81A5-0F40F7F43C07}.Release|x86.Build.0 = Release|Any CPU
390+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
391+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Debug|Any CPU.Build.0 = Debug|Any CPU
392+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Debug|x64.ActiveCfg = Debug|Any CPU
393+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Debug|x64.Build.0 = Debug|Any CPU
394+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Debug|x86.ActiveCfg = Debug|Any CPU
395+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Debug|x86.Build.0 = Debug|Any CPU
396+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Release|Any CPU.ActiveCfg = Release|Any CPU
397+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Release|Any CPU.Build.0 = Release|Any CPU
398+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Release|x64.ActiveCfg = Release|Any CPU
399+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Release|x64.Build.0 = Release|Any CPU
400+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Release|x86.ActiveCfg = Release|Any CPU
401+
{21201F30-5463-4FC6-93C3-FBF157F0D46C}.Release|x86.Build.0 = Release|Any CPU
402+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
403+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
404+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Debug|x64.ActiveCfg = Debug|Any CPU
405+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Debug|x64.Build.0 = Debug|Any CPU
406+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Debug|x86.ActiveCfg = Debug|Any CPU
407+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Debug|x86.Build.0 = Debug|Any CPU
408+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
409+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Release|Any CPU.Build.0 = Release|Any CPU
410+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Release|x64.ActiveCfg = Release|Any CPU
411+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Release|x64.Build.0 = Release|Any CPU
412+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Release|x86.ActiveCfg = Release|Any CPU
413+
{9128F6DC-6B7A-417F-937A-90461D6989A8}.Release|x86.Build.0 = Release|Any CPU
386414
EndGlobalSection
387415
GlobalSection(SolutionProperties) = preSolution
388416
HideSolutionNode = FALSE
@@ -414,6 +442,8 @@ Global
414442
{FD90C861-56C6-4536-B7F5-AC7779296384} = {8AF4A5C2-F0CE-47D5-A4C5-FE4AB83CA509}
415443
{F626860C-F141-45B3-9DDD-88AD3932ACAF} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
416444
{973CCB4A-F344-4C4F-81A5-0F40F7F43C07} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
445+
{21201F30-5463-4FC6-93C3-FBF157F0D46C} = {3D1864AA-1FFC-4512-BB13-46055E410F73}
446+
{9128F6DC-6B7A-417F-937A-90461D6989A8} = {8AF4A5C2-F0CE-47D5-A4C5-FE4AB83CA509}
417447
EndGlobalSection
418448
GlobalSection(ExtensibilityGlobals) = postSolution
419449
SolutionGuid = {049A763A-C891-4E8D-80CF-89DD3E22ADC7}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace k8s;
2+
3+
public static class GeneratedApiVersion
4+
{
5+
public const string AssemblyVersion = ThisAssembly.AssemblyInformationalVersion;
6+
public const string SwaggerVersion = ThisAssembly.KubernetesSwaggerVersion;
7+
}

src/KubernetesClient.Basic/KubernetesClient.Basic.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<ItemGroup>
99
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="Generator" />
10-
<AdditionalFiles Include="..\..\swagger.json" Generator="api" />
10+
<AdditionalFiles Include="..\..\swagger.json" Generator="api,version" />
1111
<ProjectReference Include="..\KubernetesClient.Models\KubernetesClient.Models.csproj" />
1212
</ItemGroup>
1313

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using k8s.Models;
2+
3+
namespace k8s.kubectl.beta;
4+
5+
public partial class AsyncKubectl
6+
{
7+
private const string AsssemblyVersion = ThisAssembly.AssemblyInformationalVersion;
8+
9+
public record KubernetesSDKVersion
10+
{
11+
public string ClientVersion { get; init; } = AsssemblyVersion;
12+
13+
public string ClientSwaggerVersion { get; init; } = GeneratedApiVersion.SwaggerVersion;
14+
15+
public VersionInfo ServerVersion { get; init; } = default!;
16+
}
17+
18+
public async Task<KubernetesSDKVersion> Version(CancellationToken cancellationToken = default)
19+
{
20+
var serverVersion = await client.GetCodeAsync(cancellationToken).ConfigureAwait(false);
21+
return new KubernetesSDKVersion { ServerVersion = serverVersion };
22+
}
23+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace k8s.kubectl.beta;
2+
3+
public partial class AsyncKubectl
4+
{
5+
private readonly IKubernetes client;
6+
7+
public AsyncKubectl(IKubernetes client)
8+
{
9+
this.client = client;
10+
}
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using static k8s.kubectl.beta.AsyncKubectl;
2+
3+
namespace k8s.kubectl.beta;
4+
5+
public partial class Kubectl
6+
{
7+
// TODO should auto generate this
8+
public KubernetesSDKVersion Version()
9+
{
10+
return client.Version().GetAwaiter().GetResult();
11+
}
12+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace k8s.kubectl.beta;
2+
3+
public partial class Kubectl
4+
{
5+
private readonly AsyncKubectl client;
6+
7+
public Kubectl(IKubernetes client)
8+
{
9+
this.client = new AsyncKubectl(client);
10+
}
11+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net6.0</TargetFramework>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<Nullable>enable</Nullable>
7+
<RootNamespace>k8s.kubectl</RootNamespace>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<ProjectReference Include="..\KubernetesClient\KubernetesClient.csproj" />
12+
</ItemGroup>
13+
14+
</Project>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace k8s.Models;
2+
3+
public static class GeneratedModelVersion
4+
{
5+
public const string AssemblyVersion = ThisAssembly.AssemblyInformationalVersion;
6+
public const string SwaggerVersion = ThisAssembly.KubernetesSwaggerVersion;
7+
}

src/KubernetesClient.Models/KubernetesClient.Models.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<ItemGroup>
88
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="Generator" />
9-
<AdditionalFiles Include="..\..\swagger.json" Generator="model,modelext,versionconverter" />
9+
<AdditionalFiles Include="..\..\swagger.json" Generator="model,modelext,versionconverter,version" />
1010
<ProjectReference Include="..\LibKubernetesGenerator\LibKubernetesGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
1111
</ItemGroup>
1212

0 commit comments

Comments
 (0)