From c591d1cf0746ccb6f154bd54fd4872f08e50aeb8 Mon Sep 17 00:00:00 2001 From: Jiri Pinkava Date: Sat, 10 Aug 2019 17:40:14 +0200 Subject: [PATCH] Accept and seal stringData into secret Ref #104 --- cmd/kubeseal/main.go | 10 ++++++++++ cmd/kubeseal/main_test.go | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/cmd/kubeseal/main.go b/cmd/kubeseal/main.go index 167fb35932..96fb6ca1e3 100644 --- a/cmd/kubeseal/main.go +++ b/cmd/kubeseal/main.go @@ -167,6 +167,16 @@ func seal(in io.Reader, out io.Writer, codecs runtimeserializer.CodecFactory, pu return err } + if len(secret.StringData) > 0 { + if secret.Data == nil { + secret.Data = map[string][]byte{}; + } + for key, values := range secret.StringData { + secret.Data[key] = []byte(values) + delete(secret.StringData, key) + } + } + if len(secret.Data) == 0 { // No data. This is _theoretically_ just fine, but // almost certainly indicates a misuse of the tools. diff --git a/cmd/kubeseal/main_test.go b/cmd/kubeseal/main_test.go index fcb30c5af0..fee9426596 100644 --- a/cmd/kubeseal/main_test.go +++ b/cmd/kubeseal/main_test.go @@ -133,6 +133,9 @@ func TestSeal(t *testing.T) { Data: map[string][]byte{ "foo": []byte("sekret"), }, + StringData: map[string]string{ + "foos": string("stringsekret"), + }, } info, ok := runtime.SerializerInfoForMediaType(scheme.Codecs.SupportedMediaTypes(), runtime.ContentTypeJSON) @@ -170,5 +173,8 @@ func TestSeal(t *testing.T) { if len(result.Spec.EncryptedData["foo"]) < 100 { t.Errorf("Encrypted data is implausibly short: %v", result.Spec.EncryptedData) } + if len(result.Spec.EncryptedData["foos"]) < 100 { + t.Errorf("Encrypted data is implausibly short: %v", result.Spec.EncryptedData) + } // NB: See sealedsecret_test.go for e2e crypto test }