diff --git a/pkg/cmd/decode.go b/pkg/cmd/decode.go index 98dcc21..a5896d5 100644 --- a/pkg/cmd/decode.go +++ b/pkg/cmd/decode.go @@ -8,10 +8,12 @@ import ( "strings" ) +// SecretDecoder is an interface for decoding various kubernetes secret resources type SecretDecoder interface { Decode(input string) (string, error) } +// Decode decodes a secret based on its type, currently supporting only Opaque and Helm secrets func (s Secret) Decode(input string) (string, error) { switch s.Type { // TODO handle all secret types diff --git a/pkg/cmd/types.go b/pkg/cmd/types.go index 37f4d00..3e36d97 100644 --- a/pkg/cmd/types.go +++ b/pkg/cmd/types.go @@ -1,17 +1,21 @@ package cmd +// SecretList represents a list of secrets type SecretList struct { Items []Secret `json:"items"` } +// Secret represents a kubernetes secret type Secret struct { Data SecretData `json:"data"` Metadata Metadata `json:"metadata"` Type SecretType `json:"type"` } +// SecretData represents the data of a secret type SecretData map[string]string +// Metadata represents the metadata of a secret type Metadata struct { Name string `json:"name"` Namespace string `json:"namespace"` diff --git a/pkg/cmd/types_test.go b/pkg/cmd/types_test.go index dbbdfb0..e6e82ed 100644 --- a/pkg/cmd/types_test.go +++ b/pkg/cmd/types_test.go @@ -58,7 +58,7 @@ func TestSerialize(t *testing.T) { want Secret wantErr error }{ - "empty opqague secret": { + "empty opaque secret": { input: invalidSecretJson, want: Secret{ Metadata: Metadata{ @@ -69,7 +69,7 @@ func TestSerialize(t *testing.T) { }, wantErr: errors.New("invalid character '}' looking for beginning of object key string"), }, - "valid opague secret": { + "valid opaque secret": { input: validSecretJson, want: Secret{ Data: SecretData{