mirror of
https://github.com/thegeeklab/drone-yaml.git
synced 2024-11-22 01:50:40 +00:00
yaml syntax for named external secrets
This commit is contained in:
parent
9e589be71a
commit
0e9ca9cdb9
@ -20,14 +20,23 @@ func printSecret(w writer, v *yaml.Secret) {
|
||||
w.WriteString("---")
|
||||
w.WriteTagValue("version", v.Version)
|
||||
w.WriteTagValue("kind", v.Kind)
|
||||
w.WriteTagValue("type", toSecretType(v.Type))
|
||||
|
||||
if len(v.Data) > 0 {
|
||||
w.WriteTagValue("type", toSecretType(v.Type))
|
||||
w.WriteTagValue("name", v.Name)
|
||||
printData(w, v.Data)
|
||||
}
|
||||
if len(v.External) > 0 {
|
||||
w.WriteTagValue("type", toSecretType(v.Type))
|
||||
w.WriteTagValue("name", v.Name)
|
||||
printExternalData(w, v.External)
|
||||
}
|
||||
if isSecretGetEmpty(v.Get) == false {
|
||||
w.WriteTagValue("type", v.Type)
|
||||
w.WriteTagValue("name", v.Name)
|
||||
w.WriteByte('\n')
|
||||
printGet(w, v.Get)
|
||||
}
|
||||
w.WriteByte('\n')
|
||||
w.WriteByte('\n')
|
||||
}
|
||||
@ -43,6 +52,16 @@ func toSecretType(s string) string {
|
||||
}
|
||||
}
|
||||
|
||||
// helper function prints the get block.
|
||||
func printGet(w writer, v yaml.SecretGet) {
|
||||
w.WriteTag("get")
|
||||
w.IndentIncrease()
|
||||
w.WriteTagValue("path", v.Path)
|
||||
w.WriteTagValue("name", v.Name)
|
||||
w.WriteTagValue("key", v.Key)
|
||||
w.IndentDecrease()
|
||||
}
|
||||
|
||||
// helper function prints the external data.
|
||||
func printExternalData(w writer, d map[string]yaml.ExternalData) {
|
||||
var keys []string
|
||||
@ -92,3 +111,11 @@ func printData(w writer, d map[string]string) {
|
||||
|
||||
// replace spaces and newlines.
|
||||
var spaceReplacer = strings.NewReplacer(" ", "", "\n", "")
|
||||
|
||||
// helper function returns true if the secret get
|
||||
// object is empty.
|
||||
func isSecretGetEmpty(v yaml.SecretGet) bool {
|
||||
return v.Key == "" &&
|
||||
v.Name == "" &&
|
||||
v.Path == ""
|
||||
}
|
||||
|
@ -25,3 +25,12 @@ func TestExternalSecret(t *testing.T) {
|
||||
t.Errorf("Unepxected formatting")
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetSecret(t *testing.T) {
|
||||
ok, err := diff("testdata/secret_get.yml")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
} else if !ok {
|
||||
t.Errorf("Unepxected formatting")
|
||||
}
|
||||
}
|
||||
|
5
yaml/pretty/testdata/secret_get.yml
vendored
Normal file
5
yaml/pretty/testdata/secret_get.yml
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
kind: secret
|
||||
name: username
|
||||
get:
|
||||
path: secret/data/docker
|
||||
name: username
|
9
yaml/pretty/testdata/secret_get.yml.golden
vendored
Normal file
9
yaml/pretty/testdata/secret_get.yml.golden
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
kind: secret
|
||||
name: username
|
||||
|
||||
get:
|
||||
path: secret/data/docker
|
||||
name: username
|
||||
|
||||
...
|
@ -26,9 +26,20 @@ type (
|
||||
Version string `json:"version,omitempty"`
|
||||
Kind string `json:"kind,omitempty"`
|
||||
Type string `json:"type,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
Data map[string]string `json:"data,omitempty"`
|
||||
External map[string]ExternalData `json:"external_data,omitempty" yaml:"external_data"`
|
||||
Get SecretGet `json:"get,omitempty"`
|
||||
}
|
||||
|
||||
// SecretGet defines a request to get a secret from
|
||||
// an external sevice at the specified path, or with the
|
||||
// specified name.
|
||||
SecretGet struct {
|
||||
Path string `json:"path,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Key string `json:"key,omitempty"`
|
||||
}
|
||||
|
||||
// ExternalData defines the path and name of external
|
||||
|
Loading…
Reference in New Issue
Block a user