mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Merge pull request #24989 from derekwaynecarr/fix_secret_cmd
Fix kubectl create secret/configmap to allow = values
This commit is contained in:
commit
0db3ca4b50
@ -91,6 +91,21 @@ func TestConfigMapGenerate(t *testing.T) {
|
|||||||
},
|
},
|
||||||
expectErr: true,
|
expectErr: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
params: map[string]interface{}{
|
||||||
|
"name": "foo",
|
||||||
|
"from-literal": []string{"key1==value1"},
|
||||||
|
},
|
||||||
|
expected: &api.ConfigMap{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "foo",
|
||||||
|
},
|
||||||
|
Data: map[string]string{
|
||||||
|
"key1": "=value1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expectErr: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
generator := ConfigMapGeneratorV1{}
|
generator := ConfigMapGeneratorV1{}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
@ -229,7 +229,12 @@ func parseFileSource(source string) (keyName, filePath string, err error) {
|
|||||||
|
|
||||||
// parseLiteralSource parses the source key=val pair
|
// parseLiteralSource parses the source key=val pair
|
||||||
func parseLiteralSource(source string) (keyName, value string, err error) {
|
func parseLiteralSource(source string) (keyName, value string, err error) {
|
||||||
items := strings.Split(source, "=")
|
// leading equal is invalid
|
||||||
|
if strings.Index(source, "=") == 0 {
|
||||||
|
return "", "", fmt.Errorf("invalid literal source %v, expected key=value", source)
|
||||||
|
}
|
||||||
|
// split after the first equal (so values can have the = character)
|
||||||
|
items := strings.SplitN(source, "=", 2)
|
||||||
if len(items) != 2 {
|
if len(items) != 2 {
|
||||||
return "", "", fmt.Errorf("invalid literal source %v, expected key=value", source)
|
return "", "", fmt.Errorf("invalid literal source %v, expected key=value", source)
|
||||||
}
|
}
|
||||||
|
@ -142,17 +142,23 @@ func TestParseLiteralSource(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "err 1",
|
name: "err 1",
|
||||||
input: "key==value",
|
input: "key==value",
|
||||||
err: true,
|
key: "key",
|
||||||
|
value: "=value",
|
||||||
|
err: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "err 2",
|
name: "err 2",
|
||||||
input: "key=value=",
|
input: "key=value=",
|
||||||
err: true,
|
key: "key",
|
||||||
|
value: "value=",
|
||||||
|
err: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "err 3",
|
name: "err 3",
|
||||||
input: "key2=value==",
|
input: "key2=value==",
|
||||||
err: true,
|
key: "key2",
|
||||||
|
value: "value==",
|
||||||
|
err: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "err 4",
|
name: "err 4",
|
||||||
|
@ -92,6 +92,21 @@ func TestSecretGenerate(t *testing.T) {
|
|||||||
},
|
},
|
||||||
expectErr: true,
|
expectErr: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
params: map[string]interface{}{
|
||||||
|
"name": "foo",
|
||||||
|
"from-literal": []string{"key1==value1"},
|
||||||
|
},
|
||||||
|
expected: &api.Secret{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "foo",
|
||||||
|
},
|
||||||
|
Data: map[string][]byte{
|
||||||
|
"key1": []byte("=value1"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expectErr: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
generator := SecretGeneratorV1{}
|
generator := SecretGeneratorV1{}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
Loading…
Reference in New Issue
Block a user