2017-03-02 12:26:06 +01:00
|
|
|
package kubernetes
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2017-03-16 15:51:01 +01:00
|
|
|
"strings"
|
2017-03-02 12:26:06 +01:00
|
|
|
|
|
|
|
api "k8s.io/kubernetes/pkg/api/v1"
|
|
|
|
)
|
|
|
|
|
2017-03-16 15:51:01 +01:00
|
|
|
func idParts(id string) (string, string) {
|
|
|
|
parts := strings.Split(id, "/")
|
|
|
|
return parts[0], parts[1]
|
|
|
|
}
|
|
|
|
|
|
|
|
func buildId(meta api.ObjectMeta) string {
|
|
|
|
return meta.Namespace + "/" + meta.Name
|
|
|
|
}
|
|
|
|
|
2017-03-02 12:26:06 +01:00
|
|
|
func expandMetadata(in []interface{}) api.ObjectMeta {
|
|
|
|
meta := api.ObjectMeta{}
|
|
|
|
if len(in) < 1 {
|
|
|
|
return meta
|
|
|
|
}
|
|
|
|
m := in[0].(map[string]interface{})
|
|
|
|
|
|
|
|
meta.Annotations = expandStringMap(m["annotations"].(map[string]interface{}))
|
|
|
|
meta.Labels = expandStringMap(m["labels"].(map[string]interface{}))
|
|
|
|
|
|
|
|
if v, ok := m["generate_name"]; ok {
|
|
|
|
meta.GenerateName = v.(string)
|
|
|
|
}
|
|
|
|
if v, ok := m["name"]; ok {
|
|
|
|
meta.Name = v.(string)
|
|
|
|
}
|
|
|
|
if v, ok := m["namespace"]; ok {
|
|
|
|
meta.Namespace = v.(string)
|
|
|
|
}
|
|
|
|
|
|
|
|
return meta
|
|
|
|
}
|
|
|
|
|
|
|
|
func expandStringMap(m map[string]interface{}) map[string]string {
|
|
|
|
result := make(map[string]string)
|
|
|
|
for k, v := range m {
|
|
|
|
result[k] = v.(string)
|
|
|
|
}
|
|
|
|
return result
|
|
|
|
}
|
|
|
|
|
|
|
|
func flattenMetadata(meta api.ObjectMeta) []map[string]interface{} {
|
|
|
|
m := make(map[string]interface{})
|
|
|
|
m["annotations"] = meta.Annotations
|
|
|
|
m["generate_name"] = meta.GenerateName
|
|
|
|
m["labels"] = meta.Labels
|
|
|
|
m["name"] = meta.Name
|
|
|
|
m["resource_version"] = meta.ResourceVersion
|
|
|
|
m["self_link"] = meta.SelfLink
|
|
|
|
m["uid"] = fmt.Sprintf("%v", meta.UID)
|
|
|
|
m["generation"] = meta.Generation
|
|
|
|
|
|
|
|
if meta.Namespace != "" {
|
|
|
|
m["namespace"] = meta.Namespace
|
|
|
|
}
|
|
|
|
|
|
|
|
return []map[string]interface{}{m}
|
|
|
|
}
|