diff --git a/api/internal/generators/secret.go b/api/internal/generators/secret.go index ef253fa45..d8e14f88f 100644 --- a/api/internal/generators/secret.go +++ b/api/internal/generators/secret.go @@ -37,10 +37,14 @@ func MakeSecret( if err != nil { return nil, err } + t := "Opaque" + if args.Type != "" { + t = args.Type + } if _, err := rn.Pipe( yaml.FieldSetter{ Name: "type", - Value: yaml.NewStringRNode("Opaque")}); err != nil { + Value: yaml.NewStringRNode(t)}); err != nil { return nil, err } m, err := makeValidatedDataMap(ldr, args.Name, args.KvPairSources) diff --git a/api/internal/generators/secret_test.go b/api/internal/generators/secret_test.go index c585c8ae2..51097b57d 100644 --- a/api/internal/generators/secret_test.go +++ b/api/internal/generators/secret_test.go @@ -122,6 +122,34 @@ data: b: eQ== c: SGVsbG8gV29ybGQ= d: dHJ1ZQ== +`, + }, + }, + "construct secret with type": { + args: types.SecretArgs{ + GeneratorArgs: types.GeneratorArgs{ + Name: "literalSecret1", + KvPairSources: types.KvPairSources{ + LiteralSources: []string{"a=x"}, + }, + Options: &types.GeneratorOptions{ + Labels: map[string]string{ + "foo": "bar", + }, + }, + }, + Type: "foobar", + }, + exp: expected{ + out: `apiVersion: v1 +kind: Secret +metadata: + name: literalSecret1 + labels: + foo: 'bar' +type: foobar +data: + a: eA== `, }, },