github.com/databricks/cli@v0.203.0/bundle/deploy/terraform/interpolate.go (about) 1 package terraform 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/databricks/cli/bundle" 8 "github.com/databricks/cli/bundle/config/interpolation" 9 ) 10 11 // Rewrite variable references to resources into Terraform compatible format. 12 func interpolateTerraformResourceIdentifiers(path string, lookup map[string]string) (string, error) { 13 parts := strings.Split(path, interpolation.Delimiter) 14 if parts[0] == "resources" { 15 switch parts[1] { 16 case "pipelines": 17 path = strings.Join(append([]string{"databricks_pipeline"}, parts[2:]...), interpolation.Delimiter) 18 return fmt.Sprintf("${%s}", path), nil 19 case "jobs": 20 path = strings.Join(append([]string{"databricks_job"}, parts[2:]...), interpolation.Delimiter) 21 return fmt.Sprintf("${%s}", path), nil 22 case "models": 23 path = strings.Join(append([]string{"databricks_mlflow_model"}, parts[2:]...), interpolation.Delimiter) 24 return fmt.Sprintf("${%s}", path), nil 25 case "experiments": 26 path = strings.Join(append([]string{"databricks_mlflow_experiment"}, parts[2:]...), interpolation.Delimiter) 27 return fmt.Sprintf("${%s}", path), nil 28 default: 29 panic("TODO: " + parts[1]) 30 } 31 } 32 33 return interpolation.DefaultLookup(path, lookup) 34 } 35 36 func Interpolate() bundle.Mutator { 37 return interpolation.Interpolate(interpolateTerraformResourceIdentifiers) 38 }