Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JSON/YAML tag uses "omitempty" as the field name #5868

Open
Vasco-jofra opened this issue Feb 20, 2025 · 1 comment
Open

JSON/YAML tag uses "omitempty" as the field name #5868

Vasco-jofra opened this issue Feb 20, 2025 · 1 comment
Labels
kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@Vasco-jofra
Copy link

Vasco-jofra commented Feb 20, 2025

What happened?

Hi! While doing a broad search for this pattern, I noticed that you use "omitempty" as the name of the Replacements field in the ReplacementTransformerPlugin structure.

Replacements []types.Replacement `json:"omitempty" yaml:"omitempty"`

Instead, I believe you wanted to write ",omitempty" to keep the same name but omit when empty, although, in this structure, it might conflict with the name of the ReplacementList field.

What did you expect to happen?

How can we reproduce it (as minimally and precisely as possible)?

You can test this behavior with this simple Go program:

package main

import (
	"encoding/json"
	"fmt"
)

type ReplacementTransformerPlugin struct {
	ReplacementList []string `json:"replacements,omitempty" yaml:"replacements,omitempty"`
	Replacements    []string `json:"omitempty" yaml:"omitempty"`
}

func main() {
	u := ReplacementTransformerPlugin{}
	_ = json.Unmarshal([]byte(`{"replacements": ["replacement_list_1", "replacement_list_2"], "omitempty": ["replacement_1", "replacement_2"]}`), &u)
	fmt.Printf("Result: %#v\n", u)
	// Result: main.ReplacementTransformerPlugin{ReplacementList:[]string{"replacement_list_1", "replacement_list_2"}, Replacements:[]string{"replacement_1", "replacement_2"}}
}

As you can see by the result, the omitempty key in the JSON string gets unmarshaled to the Replacements field.

Expected output

No response

Actual output

No response

Kustomize version

latest

Operating system

None

@Vasco-jofra Vasco-jofra added the kind/bug Categorizes issue or PR as related to a bug. label Feb 20, 2025
@k8s-ci-robot
Copy link
Contributor

This issue is currently awaiting triage.

SIG CLI takes a lead on issue triage for this repo, but any Kubernetes member can accept issues by applying the triage/accepted label.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Feb 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
None yet
Development

No branches or pull requests

2 participants