From 8c71b187ab143fce9fa0ca6c073e4d30707b3cf9 Mon Sep 17 00:00:00 2001 From: Julian Martin Date: Wed, 18 Nov 2020 12:53:53 +0100 Subject: [PATCH 1/2] add source strategy --- openshift/structures_build_config.go | 43 ++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/openshift/structures_build_config.go b/openshift/structures_build_config.go index 0dfa1b7..5236dbc 100644 --- a/openshift/structures_build_config.go +++ b/openshift/structures_build_config.go @@ -175,6 +175,10 @@ func flattenBuildConfigStrategy(in api.BuildStrategy) ([]interface{}, error) { att["type"] = in.Type } + if in.SourceStrategy != nil { + att["source_strategy"] = flattenBuildConfigSourceStrategy(*in.SourceStrategy) + } + if in.DockerStrategy != nil { att["docker_strategy"] = flattenBuildConfigDockerStrategy(*in.DockerStrategy) } @@ -214,6 +218,18 @@ func flattenBuildConfigJenkinsPipelineStrategy(in api.JenkinsPipelineBuildStrate return []interface{}{att} } +func flattenBuildConfigSourceStrategy(in api.SourceBuildStrategy) []interface{} { + att := make(map[string]interface{}) + + att["from"] = flattenObjectReference(in.From) + + if in.PullSecret != nil { + att["pull_secret"] = flattenLocalObjectReference(in.PullSecret) + } + + return []interface{}{att} +} + func expandBuildConfigSpec(buildConfig []interface{}) (api.BuildConfigSpec, error) { obj := api.BuildConfigSpec{} @@ -487,9 +503,9 @@ func expandBuildConfigStrategy(l []interface{}) api.BuildStrategy { obj.DockerStrategy = expandBuildConfigStrategyDockerBuildStrategy(v) } - // if v, ok := in["source_strategy"].([]interface{}); ok && len(v) > 0 { - // obj.SourceStrategy = expandBuildConfigStrategySourceStrategy(v) - // } + if v, ok := in["source_strategy"].([]interface{}); ok && len(v) > 0 { + obj.SourceStrategy = expandBuildConfigStrategySourceStrategy(v) + } if v, ok := in["jenkins_pipeline_strategy"].([]interface{}); ok && len(v) > 0 { obj.JenkinsPipelineStrategy = expandBuildConfigStrategyJenkinsPipelineStrategy(v) @@ -521,9 +537,24 @@ func expandBuildConfigStrategyDockerBuildStrategy(l []interface{}) *api.DockerBu return obj } -//func expandBuildConfigStrategySourceStrategy() { -// -//} +func expandBuildConfigStrategySourceStrategy(l []interface{}) *api.SourceBuildStrategy { + obj := &api.SourceBuildStrategy{} + if len(l) == 0 || l[0] == nil { + return obj + } + + in := l[0].(map[string]interface{}) + + if v, ok := in["from"].([]interface{}); ok && len(v) > 0 { + obj.From = expandBuildConfigImageDefinition(v) + } + + if v, ok := in["pull_secret"].([]interface{}); ok && len(v) > 0 { + obj.PullSecret = expandBuildConfigSecret(v) + } + + return obj +} func expandBuildConfigStrategyJenkinsPipelineStrategy(l []interface{}) *api.JenkinsPipelineBuildStrategy { obj := &api.JenkinsPipelineBuildStrategy{} From d38c31778ed4640dd631550123a4a004a07b0571 Mon Sep 17 00:00:00 2001 From: Julian Martin Date: Mon, 23 Nov 2020 10:16:39 +0100 Subject: [PATCH 2/2] feat: add structure for git source * add source_secret --- openshift/structures_build_config.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/openshift/structures_build_config.go b/openshift/structures_build_config.go index 5236dbc..32e3fc6 100644 --- a/openshift/structures_build_config.go +++ b/openshift/structures_build_config.go @@ -155,6 +155,14 @@ func flattenBuildConfigSource(in api.BuildSource) ([]interface{}, error) { att["dockerfile"] = *in.Dockerfile } + if in.Git != nil { + att["git"] = flattenBuildConfigGit(*in.Git) + } + + if in.SourceSecret != nil { + att["source_secret"] = flattenLocalObjectReference(in.SourceSecret) + } + return []interface{}{att}, nil } @@ -168,6 +176,20 @@ func flattenBuildConfigBinary(in api.BinaryBuildSource) []interface{} { return []interface{}{att} } +func flattenBuildConfigGit(in api.GitBuildSource) []interface{} { + att := make(map[string]interface{}) + + if in.URI != "" { + att["uri"] = in.URI + } + + if in.Ref != "" { + att["ref"] = in.Ref + } + + return []interface{}{att} +} + func flattenBuildConfigStrategy(in api.BuildStrategy) ([]interface{}, error) { att := make(map[string]interface{})