Skip to content

Commit

Permalink
fixed an edge case where stringData could cause a panic. Fixes #120
Browse files Browse the repository at this point in the history
  • Loading branch information
alekc committed Jul 28, 2024
1 parent ccf2f91 commit 6970aea
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions kubernetes/resource_kubectl_manifest.go
Original file line number Diff line number Diff line change
Expand Up @@ -1031,13 +1031,17 @@ func getLiveManifestFields_WithIgnoredFields(ignoredFields []string, userProvide
// so we will do a small lifehack here
if userProvided.GetKind() == "Secret" && userProvided.GetAPIVersion() == "v1" {
if stringData, found := userProvided.Raw.Object["stringData"]; found {
// move all stringdata values to the data
for k, v := range stringData.(map[string]interface{}) {
encodedString := base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%v", v)))
meta_v1_unstruct.SetNestedField(userProvided.Raw.Object, encodedString, "data", k)
// there is an edge case where stringData might be nil and not a map[string]interface{}
// in this case we will just ignore it
if stringData, ok := stringData.(map[string]interface{}); ok {
// move all stringdata values to the data
for k, v := range stringData {
encodedString := base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%v", v)))
meta_v1_unstruct.SetNestedField(userProvided.Raw.Object, encodedString, "data", k)
}
// and unset the stringData entirely
meta_v1_unstruct.RemoveNestedField(userProvided.Raw.Object, "stringData")
}
// and unset the stringData entirely
meta_v1_unstruct.RemoveNestedField(userProvided.Raw.Object, "stringData")
}
}

Expand Down

0 comments on commit 6970aea

Please sign in to comment.