Skip to content

Commit 5f8e226

Browse files
committed
add ddaName option; improve empty DDA destKey warning
1 parent 6d41572 commit 5f8e226

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

cmd/yaml-mapper/mapper/cmd.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ func NewCmdMap(streams genericiooptions.IOStreams) *cobra.Command {
7575
cmd.Flags().StringVarP(&o.sourcePath, "sourcePath", "f", "", "Path to source YAML file. Required. Example: source.yaml")
7676
cmd.Flags().StringVarP(&o.mappingPath, "mappingPath", "m", "", "Path to mapping YAML file.")
7777
cmd.Flags().StringVarP(&o.destPath, "destPath", "d", "", "Path to destination YAML file.")
78+
cmd.Flags().StringVarP(&o.ddaName, "ddaName", "", "", "DatadogAgent custom resource name.")
7879
cmd.Flags().StringVarP(&o.headerPath, "headerPath", "p", "", "Path to header YAML file. The content in this file will be prepended to the output.")
7980
cmd.Flags().BoolVarP(&o.updateMap, "updateMap", "u", false, fmt.Sprintf("Update 'mappingPath' with provided 'sourcePath'. If set to 'true', default mappingPath is %s and default sourcePath is latest published Datadog chart values.yaml.", constants.DefaultDDAMappingPath))
8081
cmd.Flags().BoolVarP(&o.printOutput, "printOutput", "o", true, "print mapped DDA output to stdout")

cmd/yaml-mapper/mapper/mapper.go

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"strings"
1515
"time"
1616

17+
apiutils "github.com/DataDog/datadog-operator/api/utils"
1718
"github.com/DataDog/datadog-operator/cmd/yaml-mapper/constants"
1819
"github.com/DataDog/datadog-operator/cmd/yaml-mapper/utils"
1920
"helm.sh/helm/v3/pkg/chartutil"
@@ -141,6 +142,7 @@ func (m *Mapper) loadInputs() (mappingValues chartutil.Values, sourceValues char
141142
func (m *Mapper) mapValues(sourceValues chartutil.Values, mappingValues chartutil.Values) (map[string]interface{}, error) {
142143
var ddaName = m.MapConfig.DDAName
143144
var interim = map[string]interface{}{}
145+
defaultValues, _ := getDefaultValues()
144146

145147
if m.MapConfig.HeaderPath == "" {
146148
interim = defaultFileHeader
@@ -164,19 +166,23 @@ func (m *Mapper) mapValues(sourceValues chartutil.Values, mappingValues chartuti
164166
// Map values.yaml => DDA
165167
for _, sourceKey := range mappingKeys {
166168
pathVal, _ := sourceValues.PathValue(sourceKey)
169+
defaultVal, _ := defaultValues.PathValue(sourceKey)
167170
if pathVal == nil {
168171
if mapVal, ok := utils.GetPathMap(sourceValues[sourceKey]); ok && mapVal != nil {
169172
pathVal = mapVal
173+
defaultVal, _ = utils.GetPathMap(defaultValues[sourceKey])
174+
170175
} else if tableVal, err := sourceValues.Table(sourceKey); err == nil && len(tableVal) == 1 {
171176
pathVal = tableVal
177+
defaultVal, _ = defaultValues.Table(sourceKey)
172178
} else {
173179
continue
174180
}
175181
}
176182

177183
destKey, _ := mappingValues[sourceKey]
178-
if (destKey == "" || destKey == nil) && pathVal != nil {
179-
log.Printf("Warning: DDA destination key not found: %s\n", sourceKey)
184+
if (destKey == "" || destKey == nil) && !apiutils.IsEqualStruct(pathVal, defaultVal) {
185+
log.Printf("Warning: DDA destination key not found. Could not map: %s\n", sourceKey)
180186
continue
181187
}
182188

@@ -350,3 +356,17 @@ func flattenValues(sourceValues chartutil.Values, valuesMap map[string]interface
350356
}
351357
return valuesMap
352358
}
359+
360+
func getDefaultValues() (chartutil.Values, error) {
361+
defaultValsPath := utils.FetchLatestValuesFile()
362+
defaultValsFile, err := os.ReadFile(defaultValsPath)
363+
if err != nil {
364+
return nil, err
365+
}
366+
defaultValues, err := chartutil.ReadValues(defaultValsFile)
367+
if err != nil {
368+
return nil, err
369+
}
370+
371+
return defaultValues, nil
372+
}

0 commit comments

Comments
 (0)