Skip to content

Commit f1fdd28

Browse files
authored
Merge pull request #139 from shalb/no-inputs-module
fix 3
2 parents 8477e9d + f376751 commit f1fdd28

File tree

6 files changed

+38
-35
lines changed

6 files changed

+38
-35
lines changed

pkg/modules/terraform/helm/main.go

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type Module struct {
2020
helmOpts map[string]interface{}
2121
sets map[string]interface{}
2222
kubeconfig string
23-
valuesFilesList [][]byte
23+
valuesFilesList []string
2424
valuesYAML []map[string]interface{}
2525
}
2626

@@ -58,16 +58,6 @@ func (m *Module) genMainCodeBlock() ([]byte, error) {
5858
setBlock.Body().SetAttributeValue("name", cty.StringVal(key))
5959
setBlock.Body().SetAttributeValue("value", ctyVal)
6060
}
61-
depMarkers, ok := m.ProjectPtr().Markers[common.RemoteStateMarkerCatName]
62-
if ok {
63-
for hash, marker := range depMarkers.(map[string]*project.Dependency) {
64-
if marker.Module == nil {
65-
continue
66-
}
67-
remoteStateRef := fmt.Sprintf("data.terraform_remote_state.%s-%s.outputs.%s", marker.Module.InfraName(), marker.Module.Name(), marker.Output)
68-
hcltools.ReplaceStingMarkerInBody(helmBody, hash, remoteStateRef)
69-
}
70-
}
7161
if len(m.valuesFilesList) > 0 {
7262
ctyValuesList := []cty.Value{}
7363
for _, v := range m.valuesFilesList {
@@ -76,6 +66,15 @@ func (m *Module) genMainCodeBlock() ([]byte, error) {
7666
helmBody.SetAttributeValue("values", cty.ListVal(ctyValuesList))
7767
//hcltools.ReplaceStingMarkerInBody(helmBody, marker, "file(\"./values.yaml\")")
7868
}
69+
for hash, m := range m.Markers() {
70+
marker, ok := m.(*project.Dependency)
71+
// log.Warnf("kubernetes marker HELM: %v", marker)
72+
refStr := common.DependencyToRemoteStateRef(marker)
73+
if !ok {
74+
return nil, fmt.Errorf("generate main.tf: internal error: incorrect remote state type")
75+
}
76+
hcltools.ReplaceStingMarkerInBody(helmBody, hash, refStr)
77+
}
7978
return f.Bytes(), nil
8079
}
8180

@@ -116,8 +115,8 @@ func (m *Module) ReadConfig(spec map[string]interface{}, infra *project.Infrastr
116115
if !check {
117116
return fmt.Errorf("read module config: 'values' have unknown type: %v", err)
118117
}
119-
m.valuesFilesList = [][]byte{}
120-
log.Warnf("%v", ok)
118+
m.valuesFilesList = []string{}
119+
//log.Warnf("%v", ok)
121120

122121
for _, valuesCat := range valuesCatList {
123122
valuesCatMap, check := valuesCat.(map[string]interface{})
@@ -154,7 +153,7 @@ func (m *Module) ReadConfig(spec map[string]interface{}, infra *project.Infrastr
154153
return fmt.Errorf("read module config: unmarshal values file: ", err.Error())
155154
}
156155
m.valuesYAML = append(m.valuesYAML, vYAML)
157-
m.valuesFilesList = append(m.valuesFilesList, values)
156+
m.valuesFilesList = append(m.valuesFilesList, string(values))
158157
}
159158
}
160159
pv, ok := spec["provider_version"].(string)
@@ -174,6 +173,14 @@ func (m *Module) ReplaceMarkers() error {
174173
if err != nil {
175174
return err
176175
}
176+
err = project.ScanMarkers(m.valuesFilesList, m.RemoteStatesScanner, m)
177+
if err != nil {
178+
return err
179+
}
180+
err = project.ScanMarkers(m.valuesFilesList, m.YamlBlockMarkerScanner, m)
181+
if err != nil {
182+
return err
183+
}
177184
err = project.ScanMarkers(m.helmOpts, m.RemoteStatesScanner, m)
178185
if err != nil {
179186
return err

pkg/modules/terraform/helm/state.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type State struct {
1515
ModType string `json:"type"`
1616
HelmOpts interface{} `json:"helm_opts,omitempty"`
1717
Sets interface{} `json:"sets,omitempty"`
18-
Values [][]byte `json:"values,omitempty"`
18+
Values []string `json:"values,omitempty"`
1919
}
2020

2121
func (m *Module) GetState() interface{} {
@@ -37,7 +37,7 @@ type StateDiff struct {
3737
Source string `json:"source"`
3838
HelmOpts interface{} `json:"helm_opts,omitempty"`
3939
Sets interface{} `json:"sets,omitempty"`
40-
Values [][]byte `json:"values,omitempty"`
40+
Values []string `json:"values,omitempty"`
4141
}
4242

4343
func (m *Module) GetDiffData() interface{} {

pkg/modules/terraform/kubernetes/main.go

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -74,28 +74,24 @@ func (m *Module) genMainCodeBlock() ([]byte, error) {
7474
}
7575

7676
moduleBody.SetAttributeValue("manifest", ctyVal)
77-
depMarkers, ok := m.ProjectPtr().Markers[common.RemoteStateMarkerCatName]
78-
if ok {
79-
for hash, marker := range depMarkers.(map[string]*project.Dependency) {
80-
if marker.Module == nil {
81-
continue
82-
}
83-
remoteStateRef := fmt.Sprintf("data.terraform_remote_state.%s-%s.outputs.%s", marker.Module.InfraName(), marker.Module.Name(), marker.Output)
84-
hcltools.ReplaceStingMarkerInBody(moduleBody, hash, remoteStateRef)
77+
for hash, m := range m.Markers() {
78+
marker, ok := m.(*project.Dependency)
79+
refStr := common.DependencyToRemoteStateRef(marker)
80+
if !ok {
81+
return nil, fmt.Errorf("generate main.tf: internal error: incorrect remote state type")
8582
}
83+
hcltools.ReplaceStingMarkerInBody(moduleBody, hash, refStr)
8684
}
8785
}
88-
depMarkers, ok := m.ProjectPtr().Markers[common.RemoteStateMarkerCatName]
89-
if ok {
90-
for hash, marker := range depMarkers.(map[string]*project.Dependency) {
91-
if marker.Module == nil {
92-
continue
93-
}
94-
remoteStateRef := fmt.Sprintf("data.terraform_remote_state.%s-%s.outputs.%s", marker.Module.InfraName(), marker.Module.Name(), marker.Output)
95-
hcltools.ReplaceStingMarkerInBody(providerBody, hash, remoteStateRef)
86+
87+
for hash, m := range m.Markers() {
88+
marker, ok := m.(*project.Dependency)
89+
refStr := common.DependencyToRemoteStateRef(marker)
90+
if !ok {
91+
return nil, fmt.Errorf("generate main.tf: internal error: incorrect remote state type")
9692
}
93+
hcltools.ReplaceStingMarkerInBody(providerBody, hash, refStr)
9794
}
98-
9995
return f.Bytes(), nil
10096
}
10197

pkg/modules/terraform/printer/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ func (m *Module) genMainCodeBlock() ([]byte, error) {
3434
dataBody.SetAttributeValue("value", hclVal)
3535
for hash, m := range m.Markers() {
3636
marker, ok := m.(*project.Dependency)
37+
// log.Warnf("kubernetes marker printer: %v", marker)
3738
refStr := common.DependencyToRemoteStateRef(marker)
3839
if !ok {
3940
return nil, fmt.Errorf("generate main.tf: internal error: incorrect remote state type")

pkg/modules/terraform/tf_module/main.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ func (m *Module) genMainCodeBlock() ([]byte, error) {
6060
return nil, fmt.Errorf("generate main.tf: internal error: incorrect remote state type")
6161
}
6262
refStr := common.DependencyToRemoteStateRef(marker)
63-
// log.Warnf("module markers:", marker.Module.Key())
6463
hcltools.ReplaceStingMarkerInBody(moduleBody, hash, refStr)
6564
}
6665
return f.Bytes(), nil

pkg/project/ui/generator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ func getDirSubCats(path string, tFS TmplFS) (cats []string, err error) {
332332
func getTemplateSpec(catDir, templateName string, tFS TmplFS) (res templateConfSpec, err error) {
333333
rs := templateConfSpec{}
334334
confFileName := filepath.Join(catDir, templateName, "config.yaml")
335-
log.Warn(confFileName)
335+
// log.Warn(confFileName)
336336
configRaw, err := tFS.ReadFile(confFileName)
337337
if err != nil {
338338
err = fmt.Errorf("reading template: internal error (file not found %v): %v", confFileName, err.Error())

0 commit comments

Comments
 (0)