Skip to content

Commit addcf97

Browse files
committed
fix(yaml): byte[] serialization
1 parent 9b1eeef commit addcf97

File tree

2 files changed

+9
-24
lines changed

2 files changed

+9
-24
lines changed

src/KubernetesClient/KubernetesYaml.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,18 +92,8 @@ public object ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeseria
9292
public void WriteYaml(IEmitter emitter, object value, Type type, ObjectSerializer serializer)
9393
{
9494
var obj = (byte[])value;
95-
var strValue = Encoding.UTF8.GetString(obj);
96-
97-
// Check if the string is multi-line by looking for a newline character.
98-
var scalarStyle = strValue.Contains('\n') ? ScalarStyle.Literal : ScalarStyle.Any;
99-
100-
emitter.Emit(new Scalar(
101-
AnchorName.Empty,
102-
TagName.Empty,
103-
strValue,
104-
scalarStyle,
105-
true,
106-
true));
95+
var encoded = Convert.ToBase64String(obj);
96+
emitter.Emit(new Scalar(encoded));
10797
}
10898
}
10999

tests/KubernetesClient.Tests/KubernetesYamlTests.cs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -804,17 +804,17 @@ public void LoadSecret()
804804
{
805805
var kManifest = @"
806806
apiVersion: v1
807+
data:
808+
username: YlhrdFlYQnc=
809+
password: TXprMU1qZ2tkbVJuTjBwaQ==
807810
kind: Secret
808811
metadata:
809812
name: test-secret
810-
data:
811-
username: bXktYXBw
812-
password: Mzk1MjgkdmRnN0pi
813813
";
814814

815815
var result = KubernetesYaml.Deserialize<V1Secret>(kManifest, true);
816-
Assert.Equal("bXktYXBw", Encoding.UTF8.GetString(result.Data["username"]));
817-
Assert.Equal("Mzk1MjgkdmRnN0pi", Encoding.UTF8.GetString(result.Data["password"]));
816+
Assert.Equal("bXktYXBw", Encoding.UTF8.GetString(Convert.FromBase64String(Encoding.UTF8.GetString(result.Data["username"]))));
817+
Assert.Equal("Mzk1MjgkdmRnN0pi", Encoding.UTF8.GetString(Convert.FromBase64String(Encoding.UTF8.GetString(result.Data["password"]))));
818818
}
819819

820820
[Fact]
@@ -823,13 +823,8 @@ public void WriteSecret()
823823
var kManifest = """
824824
apiVersion: v1
825825
data:
826-
username: bXktYXBw
827-
tls2.crt: |
828-
-----BEGIN CERTIFICATE-----
829-
FAKE CERT
830-
FAKE CERT
831-
FAKE CERT
832-
-----END CERTIFICATE-----
826+
username: YlhrdFlYQnc=
827+
password: TXprMU1qZ2tkbVJuTjBwaQ==
833828
kind: Secret
834829
metadata:
835830
name: test-secret

0 commit comments

Comments
 (0)