Add metadata field to kustomization file

This commit is contained in:
Donny Xia
2020-10-05 11:20:41 -07:00
parent 460c54064c
commit e695b0534d
4 changed files with 84 additions and 3 deletions

View File

@@ -22,6 +22,9 @@ const (
type Kustomization struct {
TypeMeta `json:",inline" yaml:",inline"`
// MetaData is a pointer to avoid marshalling empty struct
MetaData *ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"`
//
// Operators - what kustomize can do.
//

View File

@@ -141,6 +141,13 @@ func TestUnmarshal(t *testing.T) {
y := []byte(`
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
metadata:
name: kust
namespace: default
labels:
foo: bar
annotations:
foo: bar
resources:
- foo
- bar
@@ -151,8 +158,20 @@ namePrefix: cat`)
if err != nil {
t.Fatal(err)
}
meta := ObjectMeta{
Name: "kust",
Namespace: "default",
Labels: map[string]string{
"foo": "bar",
},
Annotations: map[string]string{
"foo": "bar",
},
}
if k.Kind != KustomizationKind || k.APIVersion != KustomizationVersion ||
len(k.Resources) != 2 || k.NamePrefix != "cat" || k.NameSuffix != "dog" {
len(k.Resources) != 2 || k.NamePrefix != "cat" || k.NameSuffix != "dog" ||
k.MetaData.Name != meta.Name || k.MetaData.Namespace != meta.Namespace ||
k.MetaData.Labels["foo"] != meta.Labels["foo"] || k.MetaData.Annotations["foo"] != meta.Annotations["foo"] {
t.Fatalf("wrong unmarshal result: %v", k)
}
}

View File

@@ -6,6 +6,8 @@ package types
// ObjectMeta partially copies apimachinery/pkg/apis/meta/v1.ObjectMeta
// No need for a direct dependence; the fields are stable.
type ObjectMeta struct {
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"`
}