diff --git a/apis/opts/spec_annotation.go b/apis/opts/spec_annotation.go index 7ad54287e..87303a579 100644 --- a/apis/opts/spec_annotation.go +++ b/apis/opts/spec_annotation.go @@ -10,7 +10,7 @@ func ParseAnnotation(annotations []string) (map[string]string, error) { specAnnotation := make(map[string]string) for _, annotation := range annotations { - splits := strings.Split(annotation, "=") + splits := strings.SplitN(annotation, "=", 2) if len(splits) != 2 || splits[0] == "" || splits[1] == "" { return nil, fmt.Errorf("invalid format for spec annotation: %s, correct format should be key=value, neither should be nil", annotation) } diff --git a/apis/opts/spec_annotation_test.go b/apis/opts/spec_annotation_test.go index e65014532..c3559215e 100644 --- a/apis/opts/spec_annotation_test.go +++ b/apis/opts/spec_annotation_test.go @@ -19,7 +19,8 @@ func TestParseAnnotation(t *testing.T) { {name: "test1", args: args{annotations: []string{""}}, want: nil, wantErr: true}, {name: "test2", args: args{annotations: []string{"=foo"}}, want: nil, wantErr: true}, {name: "test3", args: args{annotations: []string{"key="}}, want: nil, wantErr: true}, - {name: "test4", args: args{annotations: []string{"key=foo=bar"}}, want: nil, wantErr: true}, + {name: "test4", args: args{annotations: []string{"key=foo=bar"}}, want: map[string]string{"key": "foo=bar"}, wantErr: false}, + {name: "test5", args: args{annotations: []string{"foo=bar"}}, want: map[string]string{"foo": "bar"}, wantErr: false}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {