diff --git a/.github/workflows/test-gh.yml b/.github/workflows/test-gh.yml index 48466051..83ea5d36 100644 --- a/.github/workflows/test-gh.yml +++ b/.github/workflows/test-gh.yml @@ -25,8 +25,8 @@ jobs: export PATH=/tmp/bin:$PATH # imgpkg - wget -O- https://github.com/k14s/imgpkg/releases/download/v0.3.0/imgpkg-linux-amd64 > /tmp/bin/imgpkg && \ - echo "7ebd513bdb4d448764725202f0bfe41e052a594eddeb55e53681ebdf4c27d4dc /tmp/bin/imgpkg" | shasum -c - && \ + wget -O- https://github.com/k14s/imgpkg/releases/download/v0.7.0/imgpkg-linux-amd64 > /tmp/bin/imgpkg && \ + echo "bb90881c2c03cad4d50b2f0881d1330d341a37bb55bd8fff50bf228f7cfcf3d2 /tmp/bin/imgpkg" | shasum -c - && \ chmod +x /tmp/bin/imgpkg # helm 2 diff --git a/examples/imgpkgBundle/vendir.lock.yml b/examples/imgpkgBundle/vendir.lock.yml index f2de285c..04348375 100755 --- a/examples/imgpkgBundle/vendir.lock.yml +++ b/examples/imgpkgBundle/vendir.lock.yml @@ -10,5 +10,8 @@ directories: - imgpkgBundle: image: index.docker.io/ewrenn/consul-helm-bundle@sha256:15777f0007ee10fb9b2e0ed55107751188f3f3a11bae81c122ff4f11c9d67d15 path: docker.io/ewrenn/consul-helm-by-digest + - imgpkgBundle: + image: index.docker.io/k8slt/vendir-test-recursive-bundle@sha256:4d58d662d3f6e858fb3f989214482405ac13974d98f3f0695bd36e3fc36d3f81 + path: docker.io/k8slt/vendir-test-recursive-bundle path: vendor kind: LockConfig diff --git a/examples/imgpkgBundle/vendir.yml b/examples/imgpkgBundle/vendir.yml index 050a5b8c..4cf55af8 100644 --- a/examples/imgpkgBundle/vendir.yml +++ b/examples/imgpkgBundle/vendir.yml @@ -20,3 +20,8 @@ directories: image: index.docker.io/ewrenn/consul-helm-bundle@sha256:15777f0007ee10fb9b2e0ed55107751188f3f3a11bae81c122ff4f11c9d67d15 excludePaths: - .git/**/* + + - path: docker.io/k8slt/vendir-test-recursive-bundle + imgpkgBundle: + image: index.docker.io/k8slt/vendir-test-recursive-bundle@sha256:4d58d662d3f6e858fb3f989214482405ac13974d98f3f0695bd36e3fc36d3f81 + recursive: true diff --git a/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/.imgpkg/bundles/sha256-69a0ebcf1abcea7b53e0c61885e8a3d6e93e6583aad7eb78a3a161e7133f76bf/.imgpkg/images.yml b/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/.imgpkg/bundles/sha256-69a0ebcf1abcea7b53e0c61885e8a3d6e93e6583aad7eb78a3a161e7133f76bf/.imgpkg/images.yml new file mode 100644 index 00000000..2992cdee --- /dev/null +++ b/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/.imgpkg/bundles/sha256-69a0ebcf1abcea7b53e0c61885e8a3d6e93e6583aad7eb78a3a161e7133f76bf/.imgpkg/images.yml @@ -0,0 +1,3 @@ +--- +apiVersion: imgpkg.carvel.dev/v1alpha1 +kind: ImagesLock diff --git a/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/.imgpkg/bundles/sha256-69a0ebcf1abcea7b53e0c61885e8a3d6e93e6583aad7eb78a3a161e7133f76bf/config.yml b/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/.imgpkg/bundles/sha256-69a0ebcf1abcea7b53e0c61885e8a3d6e93e6583aad7eb78a3a161e7133f76bf/config.yml new file mode 100644 index 00000000..7fa901fb --- /dev/null +++ b/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/.imgpkg/bundles/sha256-69a0ebcf1abcea7b53e0c61885e8a3d6e93e6583aad7eb78a3a161e7133f76bf/config.yml @@ -0,0 +1 @@ +test: true diff --git a/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/.imgpkg/images.yml b/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/.imgpkg/images.yml new file mode 100644 index 00000000..70ba070d --- /dev/null +++ b/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/.imgpkg/images.yml @@ -0,0 +1,4 @@ +apiVersion: imgpkg.carvel.dev/v1alpha1 +kind: ImagesLock +images: +- image: index.docker.io/k8slt/vendir-test-referenced-bundle@sha256:69a0ebcf1abcea7b53e0c61885e8a3d6e93e6583aad7eb78a3a161e7133f76bf diff --git a/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/config.yml b/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/config.yml new file mode 100644 index 00000000..c654d94a --- /dev/null +++ b/examples/imgpkgBundle/vendor/docker.io/k8slt/vendir-test-recursive-bundle/config.yml @@ -0,0 +1 @@ +test-recursive: true diff --git a/pkg/vendir/config/directory.go b/pkg/vendir/config/directory.go index a144f66c..5693f10e 100644 --- a/pkg/vendir/config/directory.go +++ b/pkg/vendir/config/directory.go @@ -99,6 +99,7 @@ type DirectoryContentsImgpkgBundle struct { SecretRef *DirectoryContentsLocalRef `json:"secretRef,omitempty"` DangerousSkipTLSVerify bool `json:"dangerousSkipTLSVerify,omitempty"` + Recursive bool `json:"recursive,omitempty"` } type DirectoryContentsGithubRelease struct { diff --git a/pkg/vendir/fetch/imgpkgbundle/sync.go b/pkg/vendir/fetch/imgpkgbundle/sync.go index be6ce236..3f5843d0 100644 --- a/pkg/vendir/fetch/imgpkgbundle/sync.go +++ b/pkg/vendir/fetch/imgpkgbundle/sync.go @@ -43,6 +43,7 @@ func (t *Sync) Sync(dstPath string) (ctlconf.LockDirectoryContentsImgpkgBundle, } args = t.addDangerousArgs(args) + args = t.addGeneralArgs(args) var stdoutBs, stderrBs bytes.Buffer @@ -111,3 +112,10 @@ func (t *Sync) addDangerousArgs(args []string) []string { } return args } + +func (t *Sync) addGeneralArgs(args []string) []string { + if t.opts.Recursive { + args = append(args, "--recursive") + } + return args +}