github.com/sixgill/terraform@v0.9.0-beta2.0.20170316214032-033f6226ae50/builtin/providers/kubernetes/structures.go (about) 1 package kubernetes 2 3 import ( 4 "fmt" 5 "strings" 6 7 api "k8s.io/kubernetes/pkg/api/v1" 8 ) 9 10 func idParts(id string) (string, string) { 11 parts := strings.Split(id, "/") 12 return parts[0], parts[1] 13 } 14 15 func buildId(meta api.ObjectMeta) string { 16 return meta.Namespace + "/" + meta.Name 17 } 18 19 func expandMetadata(in []interface{}) api.ObjectMeta { 20 meta := api.ObjectMeta{} 21 if len(in) < 1 { 22 return meta 23 } 24 m := in[0].(map[string]interface{}) 25 26 meta.Annotations = expandStringMap(m["annotations"].(map[string]interface{})) 27 meta.Labels = expandStringMap(m["labels"].(map[string]interface{})) 28 29 if v, ok := m["generate_name"]; ok { 30 meta.GenerateName = v.(string) 31 } 32 if v, ok := m["name"]; ok { 33 meta.Name = v.(string) 34 } 35 if v, ok := m["namespace"]; ok { 36 meta.Namespace = v.(string) 37 } 38 39 return meta 40 } 41 42 func expandStringMap(m map[string]interface{}) map[string]string { 43 result := make(map[string]string) 44 for k, v := range m { 45 result[k] = v.(string) 46 } 47 return result 48 } 49 50 func flattenMetadata(meta api.ObjectMeta) []map[string]interface{} { 51 m := make(map[string]interface{}) 52 m["annotations"] = meta.Annotations 53 m["generate_name"] = meta.GenerateName 54 m["labels"] = meta.Labels 55 m["name"] = meta.Name 56 m["resource_version"] = meta.ResourceVersion 57 m["self_link"] = meta.SelfLink 58 m["uid"] = fmt.Sprintf("%v", meta.UID) 59 m["generation"] = meta.Generation 60 61 if meta.Namespace != "" { 62 m["namespace"] = meta.Namespace 63 } 64 65 return []map[string]interface{}{m} 66 }