Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helm 3: Registry blob storage to follow OCI Image Layout Spec #6068

Closed
jdolitsky opened this issue Jul 23, 2019 · 7 comments
Closed

Helm 3: Registry blob storage to follow OCI Image Layout Spec #6068

jdolitsky opened this issue Jul 23, 2019 · 7 comments
Assignees
Labels
v3.x Issues and Pull Requests related to the major version v3

Comments

@jdolitsky
Copy link
Contributor

Currently the charts are stored in custom fashion in ${HELM_HOME}/registry:

$ tree ~/.helm/registry
/Users/me/.helm/registry
├── blobs
│   └── sha256
│       ├── 3344059bb81c49cc6f2599a379da0a6c14313cf969f7b821aca18e489ba3991b
│       └── 84059d7403f496a1c63caf97fdc5e939ea39e561adbd98d0aa864d1b9fc9653f
├── charts
│   └── mychart
│       └── versions
│           └── 2.7.1
└── refs
    └── localhost_5000
        └── myrepo
            └── mychart
                └── tags
                    └── latest
                        ├── chart -> /Users/me/.helm/registry/charts/mychart/versions/2.7.1
                        ├── content -> /Users/me/.helm/registry/blobs/sha256/3344059bb81c49cc6f2599a379da0a6c14313cf969f7b821aca18e489ba3991b
                        └── meta -> /Users/me/.helm/registry/blobs/sha256/84059d7403f496a1c63caf97fdc5e939ea39e561adbd98d0aa864d1b9fc9653f

Instead, Helm should adhere to the OCI Image Layout Specification:

$ find . -type f
./index.json
./oci-layout
./blobs/sha256/3588d02542238316759cbf24502f4344ffcc8a60c803870022f335d1390c13b4
./blobs/sha256/4b0bc1c4050b03c95ef2a8e36e25feac42fd31283e8c30b3ee5df6b043155d3c
./blobs/sha256/7968321274dc6b6171697c33df7815310468e694ac5be0ec03ff053bb135e768

cc @jzelinskie @bacongobbler

@bacongobbler bacongobbler added the v3.x Issues and Pull Requests related to the major version v3 label Jul 23, 2019
@bacongobbler bacongobbler added this to the 3.0.0-beta.1 milestone Jul 23, 2019
@bacongobbler
Copy link
Member

Hye @jdolitsky where are we with this?

@jzelinskie
Copy link
Contributor

IIRC @stevvooe mentioned that there is a library in containerd that abstracts this away. I have no idea if it'll work alongside your XDG_HOME/CONFIG PR, though.

@bacongobbler
Copy link
Member

upstream ticket: oras-project/oras#107

@bacongobbler
Copy link
Member

Thanks for the heads up @jzelinskie! I'll do some digging in containerd and see what comes up.

@jdolitsky
Copy link
Contributor Author

jdolitsky commented Jul 31, 2019 via email

@bacongobbler
Copy link
Member

removing from the beta milestone as #6185 has been PR'd, which means this discussion can move forward without blocking the release.

@bacongobbler bacongobbler removed this from the 3.0.0-beta.1 milestone Aug 8, 2019
jdolitsky added a commit to jdolitsky/helm that referenced this issue Aug 12, 2019
No more magic separating the metadata from chart tarball - charts are
pushed to registry as a single tarball layer with Chart.yaml in tact.

No more fragile custom symlink chart storage, now following
the OCI Image Layout Specification for chart filesystem cache.

Also:
- Update to ORAS 0.6.0
- Simplify registry client setup with NewClientWithDefaults()
- Remove needless annotations and constants

Fixes helm#6068
Fixes helm#6141

Signed-off-by: Josh Dolitsky <jdolitsky@gmail.com>
jdolitsky added a commit to jdolitsky/helm that referenced this issue Aug 12, 2019
No more magic separating the metadata from chart tarball - charts are
pushed to registry as a single tarball layer with Chart.yaml in tact.

No more fragile custom symlink chart storage, now following
the OCI Image Layout Specification for chart filesystem cache.

Also:
- Update to ORAS 0.6.0
- Simplify registry client setup with NewClientWithDefaults()
- Remove needless annotations and constants

Fixes helm#6068
Fixes helm#6141

Signed-off-by: Josh Dolitsky <jdolitsky@gmail.com>
jdolitsky added a commit to jdolitsky/helm that referenced this issue Aug 12, 2019
No more magic separating the metadata from chart tarball - charts are
pushed to registry as a single tarball layer with Chart.yaml in tact.

No more fragile custom symlink chart storage, now following
the OCI Image Layout Specification for chart filesystem cache.

Also:
- Update to ORAS 0.6.0
- Simplify registry client setup with NewClientWithDefaults()
- Remove needless annotations and constants

Fixes helm#6068
Fixes helm#6141

Signed-off-by: Josh Dolitsky <jdolitsky@gmail.com>
jdolitsky added a commit to jdolitsky/helm that referenced this issue Aug 12, 2019
No more magic separating the metadata from chart tarball - charts are
pushed to registry as a single tarball layer with Chart.yaml in tact.

No more fragile custom symlink chart storage, now following
the OCI Image Layout Specification for chart filesystem cache.

Also:
- Update to ORAS 0.6.0
- Simplify registry client setup with NewClientWithDefaults()
- Remove needless annotations and constants

Fixes helm#6068
Fixes helm#6141

Signed-off-by: Josh Dolitsky <jdolitsky@gmail.com>
jdolitsky added a commit to jdolitsky/helm that referenced this issue Aug 12, 2019
No more magic separating the metadata from chart tarball - charts are
pushed to registry as a single tarball layer with Chart.yaml in tact.

No more fragile custom symlink chart storage, now following
the OCI Image Layout Specification for chart filesystem cache.

Also:
- Update to ORAS 0.6.0
- Simplify registry client setup with NewClientWithDefaults()
- Remove needless annotations and constants

Fixes helm#6068
Fixes helm#6141

Signed-off-by: Josh Dolitsky <jdolitsky@gmail.com>
jdolitsky added a commit to jdolitsky/helm that referenced this issue Aug 12, 2019
No more magic separating the metadata from chart tarball - charts are
pushed to registry as a single tarball layer with Chart.yaml in tact.

No more fragile custom symlink chart storage, now following
the OCI Image Layout Specification for chart filesystem cache.

Also:
- Update to ORAS 0.6.0
- Simplify registry client setup with NewClientWithDefaults()
- Remove needless annotations and constants

Fixes helm#6068
Fixes helm#6141

Signed-off-by: Josh Dolitsky <jdolitsky@gmail.com>
jdolitsky added a commit to jdolitsky/helm that referenced this issue Aug 12, 2019
No more magic separating the metadata from chart tarball - charts are
pushed to registry as a single tarball layer with Chart.yaml in tact.

No more fragile custom symlink chart storage, now following
the OCI Image Layout Specification for chart filesystem cache.

Also:
- Update to ORAS 0.6.0
- Simplify registry client setup with NewClientWithDefaults()
- Remove needless annotations and constants

Fixes helm#6068
Fixes helm#6141

Signed-off-by: Josh Dolitsky <jdolitsky@gmail.com>
jdolitsky added a commit that referenced this issue Aug 12, 2019
No more magic separating the metadata from chart tarball - charts are
pushed to registry as a single tarball layer with Chart.yaml in tact.

No more fragile custom symlink chart storage, now following
the OCI Image Layout Specification for chart filesystem cache.

Also:
- Update to ORAS 0.6.0
- Simplify registry client setup with NewClientWithDefaults()
- Remove needless annotations and constants

Fixes #6068
Fixes #6141

Signed-off-by: Josh Dolitsky <jdolitsky@gmail.com>
@jdolitsky
Copy link
Contributor Author

closed via #6205

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v3.x Issues and Pull Requests related to the major version v3
Projects
None yet
Development

No branches or pull requests

3 participants