github.com/argoproj/argo-cd/v2@v2.10.5/test/e2e/repo_creds_test.go (about) 1 package e2e 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/argoproj/argo-cd/v2/test/e2e/fixture" 8 . "github.com/argoproj/argo-cd/v2/test/e2e/fixture/app" 9 . "github.com/argoproj/argo-cd/v2/util/errors" 10 ) 11 12 // make sure you cannot create an app from a private repo without set-up 13 func TestCannotAddAppFromPrivateRepoWithoutCfg(t *testing.T) { 14 Given(t). 15 RepoURLType(fixture.RepoURLTypeHTTPS). 16 Path(fixture.GuestbookPath). 17 When(). 18 IgnoreErrors(). 19 CreateApp(). 20 Then(). 21 Expect(Error("", "repository not accessible")) 22 } 23 24 // make sure you cannot create an app from a private repo without set-up 25 func TestCannotAddAppFromClientCertRepoWithoutCfg(t *testing.T) { 26 Given(t). 27 RepoURLType(fixture.RepoURLTypeHTTPSClientCert). 28 Path(fixture.GuestbookPath). 29 When(). 30 IgnoreErrors(). 31 CreateApp(). 32 Then(). 33 Expect(Error("", "repository not accessible")) 34 } 35 36 // make sure you can create an app from a private repo, if the repo is set-up in the CM 37 func TestCanAddAppFromPrivateRepoWithRepoCfg(t *testing.T) { 38 Given(t). 39 RepoURLType(fixture.RepoURLTypeHTTPS). 40 Path(fixture.LocalOrRemotePath("https-kustomize-base")). 41 And(func() { 42 // I use CLI, but you could also modify the settings, we get a free test of the CLI here 43 FailOnErr(fixture.RunCli("repo", "add", fixture.RepoURL(fixture.RepoURLTypeHTTPS), "--username", fixture.GitUsername, "--password", fixture.GitPassword, "--insecure-skip-server-verification")) 44 }). 45 When(). 46 CreateApp(). 47 Then(). 48 Expect(Success("")) 49 } 50 51 // make sure you can create an app from a private repo, if the creds are set-up in the CM 52 func TestCanAddAppFromInsecurePrivateRepoWithCredCfg(t *testing.T) { 53 Given(t). 54 CustomCACertAdded(). 55 RepoURLType(fixture.RepoURLTypeHTTPS). 56 Path(fixture.LocalOrRemotePath("https-kustomize-base")). 57 And(func() { 58 secretName := fixture.CreateSecret(fixture.GitUsername, fixture.GitPassword) 59 FailOnErr(fixture.Run("", "kubectl", "patch", "cm", "argocd-cm", 60 "-n", fixture.TestNamespace(), 61 "-p", fmt.Sprintf( 62 `{"data": {"repository.credentials": "- passwordSecret:\n key: password\n name: %s\n url: %s\n insecure: true\n usernameSecret:\n key: username\n name: %s\n"}}`, 63 secretName, 64 fixture.RepoURL(fixture.RepoURLTypeHTTPS), 65 secretName, 66 ))) 67 }). 68 When(). 69 CreateApp(). 70 Then(). 71 Expect(Success("")) 72 } 73 74 // make sure we can create an app from a private repo, in a secure manner using 75 // a custom CA certificate bundle 76 func TestCanAddAppFromPrivateRepoWithCredCfg(t *testing.T) { 77 Given(t). 78 CustomCACertAdded(). 79 HTTPSCredentialsUserPassAdded(). 80 HTTPSRepoURLAdded(false). 81 RepoURLType(fixture.RepoURLTypeHTTPS). 82 Path(fixture.LocalOrRemotePath("https-kustomize-base")). 83 And(func() { 84 secretName := fixture.CreateSecret(fixture.GitUsername, fixture.GitPassword) 85 FailOnErr(fixture.Run("", "kubectl", "patch", "cm", "argocd-cm", 86 "-n", fixture.TestNamespace(), 87 "-p", fmt.Sprintf( 88 `{"data": {"repository.credentials": "- passwordSecret:\n key: password\n name: %s\n url: %s\n usernameSecret:\n key: username\n name: %s\n"}}`, 89 secretName, 90 fixture.RepoURL(fixture.RepoURLTypeHTTPS), 91 secretName, 92 ))) 93 }). 94 When(). 95 CreateApp(). 96 Then(). 97 Expect(Success("")) 98 } 99 100 // make sure we can create an app from a private repo, in a secure manner using 101 // a custom CA certificate bundle 102 func TestCanAddAppFromClientCertRepoWithCredCfg(t *testing.T) { 103 Given(t). 104 CustomCACertAdded(). 105 HTTPSRepoURLWithClientCertAdded(). 106 RepoURLType(fixture.RepoURLTypeHTTPSClientCert). 107 Path(fixture.LocalOrRemotePath("https-kustomize-base")). 108 And(func() { 109 secretName := fixture.CreateSecret(fixture.GitUsername, fixture.GitPassword) 110 FailOnErr(fixture.Run("", "kubectl", "patch", "cm", "argocd-cm", 111 "-n", fixture.TestNamespace(), 112 "-p", fmt.Sprintf( 113 `{"data": {"repository.credentials": "- passwordSecret:\n key: password\n name: %s\n url: %s\n usernameSecret:\n key: username\n name: %s\n"}}`, 114 secretName, 115 fixture.RepoURL(fixture.RepoURLTypeHTTPS), 116 secretName, 117 ))) 118 }). 119 When(). 120 CreateApp(). 121 Then(). 122 Expect(Success("")) 123 }