api: Allow nested map[string]interface{} template data

* Support templating lists into Ignition (e.g. SSH authorized keys)
This commit is contained in:
Dalton Hubble
2016-02-05 10:29:28 -08:00
parent 068cd613b6
commit 1ccee77050
12 changed files with 35 additions and 13 deletions

View File

@@ -36,7 +36,7 @@ func cloudHandler(store Store) ContextHandler {
}
// collect data for rendering
data := make(map[string]string)
data := make(map[string]interface{})
for k := range group.Metadata {
data[k] = group.Metadata[k]
}

View File

@@ -20,7 +20,7 @@ type Group struct {
// Spec identifier
Spec string `yaml:"spec"`
// Custom Metadata
Metadata map[string]string `yaml:"metadata"`
Metadata map[string]interface{} `yaml:"metadata"`
// matcher conditions
Matcher RequirementSet `yaml:"require"`
}

View File

@@ -17,7 +17,7 @@ var (
testGroup = Group{
Name: "test group",
Spec: "g1h2i3j4",
Metadata: map[string]string{
Metadata: map[string]interface{}{
"k8s_version": "v1.1.2",
"pod_network": "10.2.0.0/16",
"service_name": "etcd2",

View File

@@ -33,7 +33,7 @@ func ignitionHandler(store Store) ContextHandler {
}
// collect data for rendering Ignition Config
data := make(map[string]string)
data := make(map[string]interface{})
for k := range group.Metadata {
data[k] = group.Metadata[k]
}