Skip to content

Commit 074a4a9

Browse files
authored
Upgrade to .NET 7 and multiple stability fixes (#332)
Fixes: #331, #316, #313, #295. #292, #283, #282
1 parent 4dfff99 commit 074a4a9

File tree

15 files changed

+201
-183
lines changed

15 files changed

+201
-183
lines changed

.github/workflows/pipeline.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ on:
1111
- ".github/workflows/**"
1212

1313
env:
14-
version: 6.1.${{github.run_number}}
14+
version: 7.0.${{github.run_number}}
1515
imageRepository: "emberstack/kubernetes-reflector"
1616
DOCKER_CLI_EXPERIMENTAL: "enabled"
1717

@@ -80,12 +80,12 @@ jobs:
8080
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
8181
docker buildx create --name builder --driver docker-container --use
8282
docker buildx inspect --bootstrap
83-
docker buildx build --push --platform linux/amd64 -t ${{env.imageRepository}}:build-${{env.version}}-amd64 -f src/ES.Kubernetes.Reflector/Dockerfile src/
84-
docker buildx build --push --platform linux/arm -t ${{env.imageRepository}}:build-${{env.version}}-arm32v7 -f src/ES.Kubernetes.Reflector/Dockerfile src/
85-
docker buildx build --push --platform linux/arm64 -t ${{env.imageRepository}}:build-${{env.version}}-arm64v8 -f src/ES.Kubernetes.Reflector/Dockerfile src/
86-
docker pull ${{env.imageRepository}}:build-${{env.version}}-amd64
87-
docker pull ${{env.imageRepository}}:build-${{env.version}}-arm32v7
88-
docker pull ${{env.imageRepository}}:build-${{env.version}}-arm64v8
83+
docker buildx build --push --platform linux/amd64 --provenance=false -t ${{env.imageRepository}}:build-${{env.version}}-amd64 -f src/ES.Kubernetes.Reflector/Dockerfile src/
84+
docker buildx build --push --platform linux/arm --provenance=false -t ${{env.imageRepository}}:build-${{env.version}}-arm32v7 -f src/ES.Kubernetes.Reflector/Dockerfile src/
85+
docker buildx build --push --platform linux/arm64 --provenance=false -t ${{env.imageRepository}}:build-${{env.version}}-arm64v8 -f src/ES.Kubernetes.Reflector/Dockerfile src/
86+
docker pull --platform linux/amd64 ${{env.imageRepository}}:build-${{env.version}}-amd64
87+
docker pull --platform linux/arm/v7 ${{env.imageRepository}}:build-${{env.version}}-arm32v7
88+
docker pull --platform linux/arm64 ${{env.imageRepository}}:build-${{env.version}}-arm64v8
8989
docker manifest create ${{env.imageRepository}}:build-${{env.version}} ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8
9090
docker manifest inspect ${{env.imageRepository}}:build-${{env.version}}
9191
docker manifest push ${{env.imageRepository}}:build-${{env.version}}

src/ES.Kubernetes.Reflector/Core/ConfigMapMirror.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ public ConfigMapMirror(ILogger<ConfigMapMirror> logger, IKubernetes client) : ba
1414

1515
protected override async Task<V1ConfigMap[]> OnResourceWithNameList(string itemRefName)
1616
{
17-
return (await Client.ListConfigMapForAllNamespacesAsync(fieldSelector: $"metadata.name={itemRefName}")).Items
17+
return (await Client.CoreV1.ListConfigMapForAllNamespacesAsync(fieldSelector: $"metadata.name={itemRefName}")).Items
1818
.ToArray();
1919
}
2020

2121
protected override Task OnResourceApplyPatch(V1Patch patch, KubeRef refId)
2222
{
23-
return Client.PatchNamespacedConfigMapAsync(patch, refId.Name, refId.Namespace);
23+
return Client.CoreV1.PatchNamespacedConfigMapAsync(patch, refId.Name, refId.Namespace);
2424
}
2525

2626
protected override Task OnResourceConfigurePatch(V1ConfigMap source, JsonPatchDocument<V1ConfigMap> patchDoc)
@@ -32,7 +32,7 @@ protected override Task OnResourceConfigurePatch(V1ConfigMap source, JsonPatchDo
3232

3333
protected override Task OnResourceCreate(V1ConfigMap item, string ns)
3434
{
35-
return Client.CreateNamespacedConfigMapAsync(item, ns);
35+
return Client.CoreV1.CreateNamespacedConfigMapAsync(item, ns);
3636
}
3737

3838
protected override Task<V1ConfigMap> OnResourceClone(V1ConfigMap sourceResource)
@@ -48,11 +48,11 @@ protected override Task<V1ConfigMap> OnResourceClone(V1ConfigMap sourceResource)
4848

4949
protected override Task OnResourceDelete(KubeRef resourceId)
5050
{
51-
return Client.DeleteNamespacedConfigMapAsync(resourceId.Name, resourceId.Namespace);
51+
return Client.CoreV1.DeleteNamespacedConfigMapAsync(resourceId.Name, resourceId.Namespace);
5252
}
5353

5454
protected override Task<V1ConfigMap> OnResourceGet(KubeRef refId)
5555
{
56-
return Client.ReadNamespacedConfigMapAsync(refId.Name, refId.Namespace);
56+
return Client.CoreV1.ReadNamespacedConfigMapAsync(refId.Name, refId.Namespace);
5757
}
5858
}

src/ES.Kubernetes.Reflector/Core/ConfigMapWatcher.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
using ES.Kubernetes.Reflector.Core.Configuration;
22
using ES.Kubernetes.Reflector.Core.Watchers;
33
using k8s;
4+
using k8s.Autorest;
45
using k8s.Models;
56
using MediatR;
67
using Microsoft.Extensions.Options;
7-
using Microsoft.Rest;
88

99
namespace ES.Kubernetes.Reflector.Core;
1010

@@ -19,7 +19,7 @@ public ConfigMapWatcher(ILogger<ConfigMapWatcher> logger, IMediator mediator, IK
1919

2020
protected override Task<HttpOperationResponse<V1ConfigMapList>> OnGetWatcher(CancellationToken cancellationToken)
2121
{
22-
return Client.ListConfigMapForAllNamespacesWithHttpMessagesAsync(watch: true, timeoutSeconds: WatcherTimeout,
22+
return Client.CoreV1.ListConfigMapForAllNamespacesWithHttpMessagesAsync(watch: true, timeoutSeconds: WatcherTimeout,
2323
cancellationToken: cancellationToken);
2424
}
2525
}

src/ES.Kubernetes.Reflector/Core/Json/JsonPropertyNameContractResolver.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,9 @@ protected override JsonProperty CreateProperty(MemberInfo member, MemberSerializ
1515
{
1616
var property = base.CreateProperty(member, memberSerialization);
1717

18-
if (member.GetCustomAttribute<JsonPropertyNameAttribute>() is { } propertyNameAttribute)
19-
{
20-
property.PropertyName = propertyNameAttribute.Name;
21-
return property;
22-
}
23-
18+
if (member.GetCustomAttribute<JsonPropertyNameAttribute>() is not { } propertyNameAttribute) return property;
19+
property.PropertyName = propertyNameAttribute.Name;
2420
return property;
21+
2522
}
2623
}

src/ES.Kubernetes.Reflector/Core/Mirroring/Extensions/ReflectionStatusExtensions.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ namespace ES.Kubernetes.Reflector.Core.Mirroring.Extensions;
44

55
public static class ReflectionStatusExtensions
66
{
7-
public static bool CanBeReflectedToNamespace(this ReflectorProperties status, string ns)
7+
public static bool CanBeReflectedToNamespace(this ReflectorProperties properties, string ns)
88
{
9-
return status.Allowed && PatternListMatch(status.AllowedNamespaces, ns);
9+
return properties.Allowed && PatternListMatch(properties.AllowedNamespaces, ns);
1010
}
1111

1212

13-
public static bool CanBeAutoReflectedToNamespace(this ReflectorProperties status, string ns)
13+
public static bool CanBeAutoReflectedToNamespace(this ReflectorProperties properties, string ns)
1414
{
15-
return status.CanBeReflectedToNamespace(ns) && status.AutoEnabled &&
16-
PatternListMatch(status.AutoNamespaces, ns);
15+
return properties.CanBeReflectedToNamespace(ns) && properties.AutoEnabled &&
16+
PatternListMatch(properties.AutoNamespaces, ns);
1717
}
1818

1919

src/ES.Kubernetes.Reflector/Core/Mirroring/Extensions/ReflectorExtensions.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,31 @@ public static ReflectorProperties GetReflectionProperties(this V1ObjectMeta meta
2121

2222
Allowed = metadata.SafeAnnotations()
2323
.TryGet(Annotations.Reflection.Allowed, out bool allowed) && allowed,
24+
2425
AllowedNamespaces = metadata.SafeAnnotations()
2526
.TryGet(Annotations.Reflection.AllowedNamespaces, out string? allowedNamespaces)
2627
? allowedNamespaces ?? string.Empty
2728
: string.Empty,
29+
2830
AutoEnabled = metadata.SafeAnnotations()
2931
.TryGet(Annotations.Reflection.AutoEnabled, out bool autoEnabled) && autoEnabled,
32+
3033
AutoNamespaces = metadata.SafeAnnotations()
3134
.TryGet(Annotations.Reflection.AutoNamespaces, out string? autoNamespaces)
3235
? autoNamespaces ?? string.Empty
3336
: string.Empty,
37+
3438
Reflects = metadata.SafeAnnotations()
3539
.TryGet(Annotations.Reflection.Reflects, out string? metaReflects)
3640
? string.IsNullOrWhiteSpace(metaReflects) ? KubeRef.Empty :
3741
KubeRef.TryParse(metaReflects, out var metaReflectsRef) ? metaReflectsRef.Namespace == string.Empty
3842
? new KubeRef(metadata.NamespaceProperty, metaReflectsRef.Name)
3943
: metaReflectsRef : KubeRef.Empty
4044
: KubeRef.Empty,
45+
4146
IsAutoReflection = metadata.SafeAnnotations()
4247
.TryGet(Annotations.Reflection.MetaAutoReflects, out bool metaAutoReflects) && metaAutoReflects,
48+
4349
ReflectedVersion = metadata.SafeAnnotations()
4450
.TryGet(Annotations.Reflection.MetaReflectedVersion, out string? reflectedVersion)
4551
? string.IsNullOrWhiteSpace(reflectedVersion) ? string.Empty : reflectedVersion

0 commit comments

Comments
 (0)