Skip to content

feat: use caching for directories entries #428

@gabyx

Description

@gabyx

Describe the problem/challenge you have

See discussion below: I changed this request to a "implement caching request"

Vendir is really slow if you clone multiple repos and sources.

Describe the solution you'd like

It would be nice to have a cache feature on entries in directories such that vendoring is faster

So in the below: vendir would cache the sources from &ref once and then the copying of the files for all entries would speed up tremendously.

apiVersion: vendir.k14s.io/v1alpha1
kind: Config
directories:
 
  - path: ./bla
    contents: &ref
      - path: .
        git:
          url: https://gitlab.com/data-custodian/custodian.git
          ref: main
          depth: 1
        newRootPath: tools
  
  
  - path: /a
    contents: *ref

  - path: /b
    contents: *ref

  - path: /c
    contents: *ref

  - path: /d
    contents: *ref

Note

Vendir should have a two step process, first download all sources (for which it does not have a cache entry)
next distribute all files in the directories entries. This will also make parallel processing trivial for the second step, parallel execution for the first step might be more tricky depending on how the download tools work.


Vote on this request

This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.

👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"

We are also happy to receive and review Pull Requests if you want to help working on this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    carvel-acceptedThis issue should be considered for future work and that the triage process has been completedenhancementThis issue is a feature request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions