in providers/gcp/gke.go [113:153]
func (g *GkeGenerator) PostConvertHook() error {
for i, r := range g.Resources {
if r.InstanceInfo.Type != "google_container_node_pool" {
continue
}
if _, existNodeConfig := g.Resources[i].Item["node_config"]; existNodeConfig {
if _, existMetadata := g.Resources[i].Item["node_config"].([]interface{})[0].(map[string]interface{})["metadata"]; existMetadata {
for k, v := range g.Resources[i].Item["node_config"].([]interface{})[0].(map[string]interface{})["metadata"].(map[string]interface{}) {
switch x := v.(type) {
case bool:
g.Resources[i].Item["node_config"].([]interface{})[0].(map[string]interface{})["metadata"].(map[string]interface{})[k] = strconv.FormatBool(x)
default:
}
}
}
}
for _, cluster := range g.Resources {
if cluster.InstanceState.Attributes["name"] == r.InstanceState.Attributes["cluster"] {
g.Resources[i].Item["cluster"] = "${google_container_cluster." + cluster.ResourceName + ".name}"
}
}
}
// hacks for fix GCP API<=>provider<=>parser inconsistency
for i, r := range g.Resources {
if r.InstanceInfo.Type != "google_container_cluster" {
continue
}
if r.Item["master_authorized_networks_config"] != nil {
if len(r.Item["master_authorized_networks_config"].([]interface{})) == 0 {
g.Resources[i].Item["master_authorized_networks_config"] = map[string]interface{}{}
}
}
if r.Item["ip_allocation_policy"] != nil {
if len(r.Item["ip_allocation_policy"].([]interface{})) == 0 {
g.Resources[i].Item["ip_allocation_policy"] = map[string]interface{}{}
}
}
}
return nil
}