Skip to content

Commit f7e7613

Browse files
authoredJan 7, 2025··
generate api v1.32 (#1603)
* generate based on v1.32 * bump ver * Delete swagger.json.unprocessed * Update target frameworks and SDK versions in project files * Remove extra API endpoint from swagger.json * Update .NET SDK version to 9.0.x and adjust package references * happy build * Enhance certificate handling for .NET 9.0 compatibility in CertUtils and KubernetesClientConfiguration * Add mapping for V1beta1ResourceClaim to V1ResourceClaim in AutoMapper configurations * Refactor certificate loading to improve compatibility with .NET 9.0 * Update package versions in Directory.Packages.props for improved compatibility and features * Update Fractions package version to 7.3.0 for improved compatibility
1 parent 61e6b13 commit f7e7613

21 files changed

+20129
-17589
lines changed
 

‎.github/workflows/buildtest.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ jobs:
1515
uses: actions/setup-dotnet@v4
1616
with:
1717
dotnet-version: |
18-
6.0.x
1918
8.0.x
19+
9.0.x
2020
# - name: Check Format
2121
# # don't check formatting on Windows b/c of CRLF issues.
2222
# if: matrix.os == 'ubuntu-latest'
@@ -66,8 +66,8 @@ jobs:
6666
uses: actions/setup-dotnet@v4
6767
with:
6868
dotnet-version: |
69-
6.0.x
7069
8.0.x
70+
9.0.x
7171
- name: Minikube
7272
run: minikube start
7373
- name: Test

‎.github/workflows/codeql-analysis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ jobs:
3434
uses: actions/setup-dotnet@v4
3535
with:
3636
dotnet-version: |
37-
6.0.x
3837
8.0.x
38+
9.0.x
3939
4040
# Initializes the CodeQL tools for scanning.
4141
- name: Initialize CodeQL

‎.github/workflows/docfx.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ jobs:
3333
uses: actions/setup-dotnet@v4
3434
with:
3535
dotnet-version: |
36-
6.0.x
3736
8.0.x
37+
9.0.x
3838
3939
- name: Build
4040
run: dotnet build -c Release

‎.github/workflows/draft.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ jobs:
2121
uses: actions/setup-dotnet@v4
2222
with:
2323
dotnet-version: |
24-
6.0.x
2524
8.0.x
25+
9.0.x
2626
2727
- name: dotnet restore
2828
run: dotnet restore --verbosity minimal --configfile nuget.config

‎.github/workflows/nuget.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ jobs:
1818
uses: actions/setup-dotnet@v4
1919
with:
2020
dotnet-version: |
21-
6.0.x
2221
8.0.x
22+
9.0.x
2323
2424
- name: dotnet restore
2525
run: dotnet restore --verbosity minimal --configfile nuget.config

‎Directory.Packages.props

+54-54
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,54 @@
1-
<Project>
2-
<PropertyGroup>
3-
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
4-
</PropertyGroup>
5-
<ItemGroup>
6-
<PackageVersion Include="AutoMapper" Version="12.0.1" />
7-
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.3.1" />
8-
<PackageVersion Include="FluentAssertions" Version="6.12.0" />
9-
<PackageVersion Include="Fractions" Version="7.3.0" />
10-
<PackageVersion Include="IdentityModel.OidcClient" Version="5.2.1" />
11-
<PackageVersion Include="JsonPatch.Net" Version="2.1.0" />
12-
<PackageVersion Include="MartinCostello.Logging.XUnit" Version="0.3.0" />
13-
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" />
14-
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
15-
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
16-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
17-
<PackageVersion Include="Microsoft.TestPlatform.ObjectModel" Version="17.8.0" />
18-
<PackageVersion Include="Moq" Version="4.20.70" />
19-
<PackageVersion Include="Nito.AsyncEx" Version="5.1.2" />
20-
<PackageVersion Include="Nito.AsyncEx.Coordination" Version="5.1.2" />
21-
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.7.0" />
22-
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.8.1" />
23-
<PackageVersion Include="Portable.BouncyCastle" Version="1.9.0" />
24-
<PackageVersion Include="SharpZipLib" Version="1.4.2" />
25-
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
26-
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="8.0.0" />
27-
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.1.2" />
28-
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="20.0.15" />
29-
<PackageVersion Include="System.Reactive" Version="6.0.0" />
30-
<PackageVersion Include="System.Text.Json" Version="8.0.4" />
31-
<PackageVersion Include="Vecc.YamlDotNet.Analyzers.StaticGenerator" Version="16.0.0" />
32-
<PackageVersion Include="xunit" Version="2.6.6" />
33-
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.6" />
34-
<PackageVersion Include="Xunit.StaFact" Version="1.1.11" />
35-
<PackageVersion Include="YamlDotNet" Version="16.0.0" />
36-
</ItemGroup>
37-
<ItemGroup>
38-
<PackageVersion Include="Autofac" Version="8.0.0" />
39-
<PackageVersion Include="CaseExtensions" Version="1.1.0" />
40-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.4.0" />
41-
<PackageVersion Include="Namotion.Reflection" Version="3.0.1" />
42-
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
43-
<PackageVersion Include="NJsonSchema" Version="10.9.0" />
44-
<PackageVersion Include="NSwag.Core" Version="13.20.0" />
45-
<PackageVersion Include="Scriban" Version="5.9.1" />
46-
</ItemGroup>
47-
<ItemGroup>
48-
<GlobalPackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0" />
49-
<GlobalPackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
50-
<GlobalPackageReference Include="Microsoft.VisualStudio.SlnGen" Version="11.2.6" />
51-
<GlobalPackageReference Include="Nerdbank.GitVersioning" Version="3.6.133" />
52-
<GlobalPackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
53-
</ItemGroup>
54-
</Project>
1+
<Project>
2+
<PropertyGroup>
3+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
4+
</PropertyGroup>
5+
<ItemGroup>
6+
<PackageVersion Include="AutoMapper" Version="13.0.1" />
7+
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.5.0" />
8+
<PackageVersion Include="FluentAssertions" Version="7.0.0" />
9+
<PackageVersion Include="Fractions" Version="7.3.0" />
10+
<PackageVersion Include="IdentityModel.OidcClient" Version="6.0.0" />
11+
<PackageVersion Include="JsonPatch.Net" Version="2.1.0" />
12+
<PackageVersion Include="MartinCostello.Logging.XUnit" Version="0.5.1" />
13+
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.0" />
14+
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.0" />
15+
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.0" />
16+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
17+
<PackageVersion Include="Microsoft.TestPlatform.ObjectModel" Version="17.12.0" />
18+
<PackageVersion Include="Moq" Version="4.20.72" />
19+
<PackageVersion Include="Nito.AsyncEx" Version="5.1.2" />
20+
<PackageVersion Include="Nito.AsyncEx.Coordination" Version="5.1.2" />
21+
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.7.0" />
22+
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.8.1" />
23+
<PackageVersion Include="Portable.BouncyCastle" Version="1.9.0" />
24+
<PackageVersion Include="SharpZipLib" Version="1.4.2" />
25+
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
26+
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="9.0.0" />
27+
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="8.3.0" />
28+
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="21.2.1" />
29+
<PackageVersion Include="System.Reactive" Version="6.0.1" />
30+
<PackageVersion Include="System.Text.Json" Version="9.0.0" />
31+
<PackageVersion Include="Vecc.YamlDotNet.Analyzers.StaticGenerator" Version="16.3.0" />
32+
<PackageVersion Include="xunit" Version="2.9.2" />
33+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.0" />
34+
<PackageVersion Include="Xunit.StaFact" Version="1.1.11" />
35+
<PackageVersion Include="YamlDotNet" Version="16.3.0" />
36+
</ItemGroup>
37+
<ItemGroup>
38+
<PackageVersion Include="Autofac" Version="8.2.0" />
39+
<PackageVersion Include="CaseExtensions" Version="1.1.0" />
40+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.4.0" />
41+
<PackageVersion Include="Namotion.Reflection" Version="3.0.1" />
42+
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
43+
<PackageVersion Include="NJsonSchema" Version="10.9.0" />
44+
<PackageVersion Include="NSwag.Core" Version="13.20.0" />
45+
<PackageVersion Include="Scriban" Version="5.9.1" />
46+
</ItemGroup>
47+
<ItemGroup>
48+
<GlobalPackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0" />
49+
<GlobalPackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
50+
<GlobalPackageReference Include="Microsoft.VisualStudio.SlnGen" Version="12.0.3" />
51+
<GlobalPackageReference Include="Nerdbank.GitVersioning" Version="3.7.112" />
52+
<GlobalPackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
53+
</ItemGroup>
54+
</Project>

‎README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,9 @@ ${GEN_DIR}/openapi/csharp.sh ${REPO_DIR}/src/KubernetesClient ${REPO_DIR}/csharp
154154

155155
| SDK Version | Kubernetes Version | .NET Targeting |
156156
|-------------|--------------------|-----------------------------------------------------|
157-
| 14.0 | 1.30 | net6.0;net8.0;net48*;netstandard2.0* |
157+
| 16.0 | 1.32 | net8.0;net9.0;net48*;netstandard2.0* |
158+
| 15.0 | 1.31 | net6.0;net8.0;net48*;netstandard2.0* |
159+
| 14.0 | 1.30 | net6.0;net8.0;net48*;netstandard2.0* |
158160
| 13.0 | 1.29 | net6.0;net7.0;net8.0;net48*;netstandard2.0* |
159161
| 12.0 | 1.28 | net6.0;net7.0;net48*;netstandard2.0* |
160162
| 11.0 | 1.27 | net6.0;net7.0;net48*;netstandard2.0* |

‎csharp.settings

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
export KUBERNETES_BRANCH=v1.31.0
1+
export KUBERNETES_BRANCH=v1.32.0
22
export CLIENT_VERSION=0.0.1
33
export PACKAGE_NAME=k8s

‎src/KubernetesClient.Aot/KubernetesClient.Aot.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net8.0</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
55
<RootNamespace>k8s</RootNamespace>
66
<PublishAot>true</PublishAot>
77
<IsAotCompatible>true</IsAotCompatible>

‎src/KubernetesClient.Kubectl/KubernetesClient.Kubectl.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<RootNamespace>k8s.kubectl</RootNamespace>

‎src/KubernetesClient.ModelConverter/AutoMapper/VersionConverter.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,9 @@ private static void ManualConfigurations(IMapperConfigurationExpression cfg)
168168
.ForMember(dest => dest.Request, opt => opt.Ignore())
169169
.ReverseMap();
170170

171-
cfg.CreateMap<V1beta3PolicyRulesWithSubjects, V1PolicyRulesWithSubjects>()
172-
.ForMember(dest => dest.Subjects, opt => opt.Ignore())
171+
cfg.CreateMap<V1beta1ResourceClaim, V1ResourceClaim>()
172+
.ForMember(dest => dest.Name, opt => opt.Ignore())
173+
.ForMember(dest => dest.Request, opt => opt.Ignore())
173174
.ReverseMap();
174175
}
175176
}

‎src/KubernetesClient.ModelConverter/KubernetesClient.ModelConverter.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
3+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
44
<RootNamespace>k8s.ModelConverter</RootNamespace>
55
</PropertyGroup>
66

‎src/KubernetesClient/CertUtils.cs

+9
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,20 @@ public static X509Certificate2 GeneratePfx(KubernetesClientConfiguration config)
8080

8181
if (config.ClientCertificateKeyStoreFlags.HasValue)
8282
{
83+
#if NET9_0_OR_GREATER
84+
X509CertificateLoader.LoadPkcs12(cert.Export(X509ContentType.Pkcs12), nullPassword, config.ClientCertificateKeyStoreFlags.Value);
85+
#else
8386
cert = new X509Certificate2(cert.Export(X509ContentType.Pkcs12), nullPassword, config.ClientCertificateKeyStoreFlags.Value);
87+
#endif
88+
8489
}
8590
else
8691
{
92+
#if NET9_0_OR_GREATER
93+
X509CertificateLoader.LoadPkcs12(cert.Export(X509ContentType.Pkcs12), nullPassword);
94+
#else
8795
cert = new X509Certificate2(cert.Export(X509ContentType.Pkcs12), nullPassword);
96+
#endif
8897
}
8998
}
9099

‎src/KubernetesClient/KubernetesClient.csproj

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
55
<RootNamespace>k8s</RootNamespace>
66
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Condition="'$(TargetFramework)'=='net6.0'" Include="System.Diagnostics.DiagnosticSource" VersionOverride="7.0.0" />
1110
<PackageReference Include="System.IdentityModel.Tokens.Jwt" />
1211
<PackageReference Include="IdentityModel.OidcClient" />
1312
<PackageReference Include="Fractions" />

‎src/KubernetesClient/KubernetesClientConfiguration.ConfigFile.cs

+12-2
Original file line numberDiff line numberDiff line change
@@ -307,17 +307,27 @@ private void SetClusterDetails(K8SConfiguration k8SConfig, Context activeContext
307307
{
308308
if (!string.IsNullOrEmpty(clusterDetails.ClusterEndpoint.CertificateAuthorityData))
309309
{
310+
var data = clusterDetails.ClusterEndpoint.CertificateAuthorityData;
311+
#if NET9_0_OR_GREATER
312+
SslCaCerts = new X509Certificate2Collection(X509CertificateLoader.LoadCertificate(Convert.FromBase64String(data)));
313+
#else
314+
string nullPassword = null;
310315
// This null password is to change the constructor to fix this KB:
311316
// https://support.microsoft.com/en-us/topic/kb5025823-change-in-how-net-applications-import-x-509-certificates-bf81c936-af2b-446e-9f7a-016f4713b46b
312-
string nullPassword = null;
313-
var data = clusterDetails.ClusterEndpoint.CertificateAuthorityData;
314317
SslCaCerts = new X509Certificate2Collection(new X509Certificate2(Convert.FromBase64String(data), nullPassword));
318+
#endif
315319
}
316320
else if (!string.IsNullOrEmpty(clusterDetails.ClusterEndpoint.CertificateAuthority))
317321
{
322+
#if NET9_0_OR_GREATER
323+
SslCaCerts = new X509Certificate2Collection(X509CertificateLoader.LoadCertificateFromFile(GetFullPath(
324+
k8SConfig,
325+
clusterDetails.ClusterEndpoint.CertificateAuthority)));
326+
#else
318327
SslCaCerts = new X509Certificate2Collection(new X509Certificate2(GetFullPath(
319328
k8SConfig,
320329
clusterDetails.ClusterEndpoint.CertificateAuthority)));
330+
#endif
321331
}
322332
}
323333
}

‎swagger.json

+20,031-17,512
Large diffs are not rendered by default.

‎tests/E2E.Tests/E2E.Tests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<IsPackable>false</IsPackable>
44
<RootNamespace>k8s.E2E</RootNamespace>
5-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
5+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
66
</PropertyGroup>
77

88
<ItemGroup>

‎tests/Kubectl.Tests/Kubectl.Tests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<IsPackable>false</IsPackable>

‎tests/KubernetesClient.Classic.Tests/KubernetesClient.Classic.Tests.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<PropertyGroup>
33
<IsPackable>false</IsPackable>
44
<RootNamespace>k8s.Tests</RootNamespace>
5-
<TargetFrameworks Condition="'$(OS)' != 'Windows_NT'">net6.0;net8.0</TargetFrameworks>
6-
<TargetFrameworks Condition="'$(OS)' == 'Windows_NT'">net6.0;net8.0;net48</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(OS)' != 'Windows_NT'">net8.0;net9.0</TargetFrameworks>
6+
<TargetFrameworks Condition="'$(OS)' == 'Windows_NT'">net8.0;net9.0;net48</TargetFrameworks>
77
</PropertyGroup>
88

99
<ItemGroup>

‎tests/KubernetesClient.Tests/KubernetesClient.Tests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<IsPackable>false</IsPackable>
44
<RootNamespace>k8s.Tests</RootNamespace>
5-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
5+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
66
</PropertyGroup>
77

88
<ItemGroup>

‎version.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
3-
"version": "15.0",
3+
"version": "16.0",
44
"publicReleaseRefSpec": [
55
"^refs/heads/master$",
66
"^refs/tags/v\\d+\\.\\d+\\.\\d+"

0 commit comments

Comments
 (0)
Please sign in to comment.