Make username optional for create secret git
Git authentication with basic auth doesn't necessarily require a username to be present. Signed-off-by: talife <gilletvincent@gmail.com> Signed-off-by: Max Jonas Werner <mail@makk.es>
This commit is contained in:
committed by
Max Jonas Werner
parent
525bd21cd1
commit
a6cb5930f8
@@ -153,13 +153,13 @@ func createSecretGitCmdRun(cmd *cobra.Command, args []string) error {
|
|||||||
opts.ECDSACurve = secretGitArgs.ecdsaCurve.Curve
|
opts.ECDSACurve = secretGitArgs.ecdsaCurve.Curve
|
||||||
opts.Password = secretGitArgs.password
|
opts.Password = secretGitArgs.password
|
||||||
case "http", "https":
|
case "http", "https":
|
||||||
if (secretGitArgs.username == "" || secretGitArgs.password == "") && secretGitArgs.bearerToken == "" {
|
if secretGitArgs.password == "" && secretGitArgs.bearerToken == "" {
|
||||||
return fmt.Errorf("for Git over HTTP/S the username and password, or a bearer token is required")
|
return fmt.Errorf("for Git over HTTP/S the username and password, or a bearer token is required")
|
||||||
}
|
}
|
||||||
opts.Username = secretGitArgs.username
|
opts.Username = secretGitArgs.username
|
||||||
opts.Password = secretGitArgs.password
|
opts.Password = secretGitArgs.password
|
||||||
opts.BearerToken = secretGitArgs.bearerToken
|
opts.BearerToken = secretGitArgs.bearerToken
|
||||||
if secretGitArgs.username != "" && secretGitArgs.password != "" && secretGitArgs.bearerToken != "" {
|
if secretGitArgs.password != "" && secretGitArgs.bearerToken != "" {
|
||||||
return fmt.Errorf("user credentials and bearer token cannot be used together")
|
return fmt.Errorf("user credentials and bearer token cannot be used together")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,11 @@ func TestCreateGitSecret(t *testing.T) {
|
|||||||
args: "create secret git podinfo-auth --url=https://github.com/stefanprodan/podinfo --username=aaa --password=zzzz --bearer-token=aaaa --namespace=my-namespace --export",
|
args: "create secret git podinfo-auth --url=https://github.com/stefanprodan/podinfo --username=aaa --password=zzzz --bearer-token=aaaa --namespace=my-namespace --export",
|
||||||
assert: assertError("user credentials and bearer token cannot be used together"),
|
assert: assertError("user credentials and bearer token cannot be used together"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "git authentication with basic auth consisting of only one password without a username",
|
||||||
|
args: "create secret git podinfo-auth --url=https://github.com/stefanprodan/podinfo --password=my-password --namespace=my-namespace --export",
|
||||||
|
assert: assertGoldenFile("./testdata/create_secret/git/secret-git-only-pwd.yaml"),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
|||||||
9
cmd/flux/testdata/create_secret/git/secret-git-only-pwd.yaml
vendored
Normal file
9
cmd/flux/testdata/create_secret/git/secret-git-only-pwd.yaml
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: podinfo-auth
|
||||||
|
namespace: my-namespace
|
||||||
|
stringData:
|
||||||
|
password: my-password
|
||||||
|
|
||||||
@@ -148,8 +148,10 @@ func buildSecret(keypair *ssh.KeyPair, hostKey, dockerCfg []byte, options Option
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if options.Username != "" && options.Password != "" {
|
if options.Password != "" {
|
||||||
|
if options.Username != "" {
|
||||||
secret.StringData[UsernameSecretKey] = options.Username
|
secret.StringData[UsernameSecretKey] = options.Username
|
||||||
|
}
|
||||||
secret.StringData[PasswordSecretKey] = options.Password
|
secret.StringData[PasswordSecretKey] = options.Password
|
||||||
}
|
}
|
||||||
if options.BearerToken != "" {
|
if options.BearerToken != "" {
|
||||||
|
|||||||
Reference in New Issue
Block a user