4
4
package e2e
5
5
6
6
import (
7
+ "encoding/json"
7
8
"fmt"
8
9
"testing"
9
10
"time"
10
11
11
12
uitest "github.com/cppforlife/go-cli-ui/ui/test"
12
13
"github.com/stretchr/testify/require"
14
+ kcpkg "github.com/vmware-tanzu/carvel-kapp-controller/pkg/apis/packaging/v1alpha1"
13
15
)
14
16
15
17
func TestPackageRepository (t * testing.T ) {
@@ -19,14 +21,17 @@ func TestPackageRepository(t *testing.T) {
19
21
kubectl := Kubectl {t , env .Namespace , logger }
20
22
21
23
pkgrName := "test-package-repository"
24
+ pkgrWithSecretName := "test-package-repository-with-secret"
22
25
pkgrURL := `ghcr.io/carvel-dev/kc-e2e-test-repo:latest`
26
+ pkgrSecretRef := "sample-registry-secret"
23
27
24
28
newRepoNamespace := "carvel-test-repo-a"
25
29
26
30
kind := "PackageRepository"
27
31
28
32
cleanUp := func () {
29
33
RemoveClusterResource (t , kind , pkgrName , env .Namespace , kubectl )
34
+ RemoveClusterResource (t , kind , pkgrWithSecretName , env .Namespace , kubectl )
30
35
RemoveClusterResource (t , kind , pkgrName , newRepoNamespace , kubectl )
31
36
}
32
37
@@ -205,6 +210,45 @@ func TestPackageRepository(t *testing.T) {
205
210
kubectl .Run ([]string {"get" , kind , pkgrName , "-n" , env .Namespace })
206
211
})
207
212
213
+ logger .Section ("create a repository with secretRef" , func () {
214
+ _ , _ = kappCtrl .RunWithOpts ([]string {"package" , "repository" , "add" , "-r" , pkgrWithSecretName , "--url" , pkgrURL , "--secret-ref" , pkgrSecretRef }, RunOpts {
215
+ AllowError : true })
216
+
217
+ pkgrYaml := kubectl .Run ([]string {"get" , kind , pkgrWithSecretName , "-ojson" })
218
+ pkgr := & kcpkg.PackageRepository {}
219
+ err := json .Unmarshal ([]byte (pkgrYaml ), pkgr )
220
+ require .NoError (t , err )
221
+ require .Equal (t , pkgrSecretRef , pkgr .Spec .Fetch .ImgpkgBundle .SecretRef .Name )
222
+
223
+ kappCtrl .Run ([]string {"package" , "repository" , "delete" , "-r" , pkgrWithSecretName })
224
+ })
225
+
226
+ logger .Section ("updating a repository's secret with no change in url" , func () {
227
+ _ , err := kappCtrl .RunWithOpts ([]string {"package" , "repository" , "add" , "-r" , pkgrWithSecretName , "--url" , pkgrURL }, RunOpts {
228
+ AllowError : true })
229
+ require .NoError (t , err )
230
+
231
+ kubectl .Run ([]string {"get" , kind , pkgrWithSecretName })
232
+
233
+ kappCtrl .RunWithOpts ([]string {"package" , "repository" , "update" , "-r" , pkgrWithSecretName , "--url" , pkgrURL , "--secret-ref" , pkgrSecretRef }, RunOpts {
234
+ AllowError : true })
235
+
236
+ pkgrYaml := kubectl .Run ([]string {"get" , kind , pkgrWithSecretName , "-ojson" })
237
+ pkgr := & kcpkg.PackageRepository {}
238
+ err = json .Unmarshal ([]byte (pkgrYaml ), pkgr )
239
+ require .NoError (t , err )
240
+ require .Equal (t , pkgrSecretRef , pkgr .Spec .Fetch .ImgpkgBundle .SecretRef .Name )
241
+
242
+ // update to a new secret
243
+ kappCtrl .RunWithOpts ([]string {"package" , "repository" , "update" , "-r" , pkgrWithSecretName , "--url" , pkgrURL , "--secret-ref" , pkgrSecretRef + "-2" }, RunOpts {
244
+ AllowError : true })
245
+
246
+ pkgrYaml = kubectl .Run ([]string {"get" , kind , pkgrWithSecretName , "-ojson" })
247
+ pkgr = & kcpkg.PackageRepository {}
248
+ err = json .Unmarshal ([]byte (pkgrYaml ), pkgr )
249
+ require .NoError (t , err )
250
+ require .Equal (t , pkgrSecretRef + "-2" , pkgr .Spec .Fetch .ImgpkgBundle .SecretRef .Name )
251
+ })
208
252
}
209
253
210
254
func TestPackageRepositoryTagSemver (t * testing.T ) {
0 commit comments