-
Notifications
You must be signed in to change notification settings - Fork 307
Open
Description
Describe the bug
It appears that both Json/Yaml serializers are outputting dates which don't match Kubectl.
For the Test cases below:
Json Output:
{
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"creationTimestamp": "2025-09-03T05:15:53.000000\u002B00:00",
"name": "test-secret"
},
"type": "Opaque"
}
Yaml Output:
apiVersion: v1
kind: Secret
metadata:
creationTimestamp: 2025-09-03T05:15:53.0000000Z
name: test-secret
type: Opaque
Test cases:
[Fact]
public void ReadWriteDatesJson()
{
var kManifest = """
{
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"creationTimestamp": "2025-09-03T05:15:53Z",
"name": "test-secret"
},
"type": "Opaque"
}
""";
var objFromJson = KubernetesJson.Deserialize<V1Secret>(kManifest);
var jsonFromObj = KubernetesJson.Serialize(objFromJson);
// Format Json
var jsonFromObj2 = JsonSerializer.Serialize(JsonSerializer.Deserialize<JsonElement>(jsonFromObj), new JsonSerializerOptions() { WriteIndented = true });
Assert.Equal(kManifest, jsonFromObj2);
}
[Fact]
public void ReadWriteDatesYaml()
{
var kManifest = """
apiVersion: v1
kind: Secret
metadata:
creationTimestamp: "2025-09-03T05:15:53Z"
name: test-secret
type: Opaque
""";
var objFromYaml = KubernetesYaml.Deserialize<V1Secret>(kManifest, true);
var yamlFromObj = KubernetesYaml.Serialize(objFromYaml);
Assert.Equal(kManifest, yamlFromObj);
}
Kubernetes C# SDK Client Version
master
Dotnet Runtime Version
net9.0
Metadata
Metadata
Assignees
Labels
No labels