Environmental Info:
Linux PC 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Hauler Version:
__ __ ___ __ __ __ _______ .______
| | | | / \ | | | | | | | || _
| || | / ^ \ | | | | | | | | | |) |
| __ | / /\ \ | | | | | | | | | /
| | | | / _____ \ | --' | | ----.| | | |\ ----.
|| || // __\ _/ ||||| _| `.__|
hauler: Airgap Swiss Army Knife
GitVersion: 1.2.0
GitCommit: 7d28df1
GitTreeState: clean
BuildDate: 2025-02-07T00:04:35Z
GoVersion: go1.23.5 X:boringcrypto
Compiler: gc
Platform: linux/amd64
Describe the Bug:
When a store is created and I add both a chart and an image that have the same name and version (both using a manifest and directly doing 'add'), the last artifact that is added crushes the first one. When 'store info' is run we only see the last artifact that was added.
If you inpect the index.json file in the store during the second add, it will actually temporarily hold both artifacts properly, but there appears to be a final cleanup action that removes one of the entries.
Steps to Reproduce:
Any manifest that contains both a chart and a docker image of the same name and version. It's critical that the docker image doesn't contain a subpath in it's name, so the manifests end up like:
"annotations": {
"kind": "dev.cosignproject.cosign/image",
"org.opencontainers.image.ref.name": "hauler/my-project:4.1.1"
},
...
"annotations": {
"io.containerd.image.name": "my-artifactory.com/my-project:4.0.1",
"kind": "dev.cosignproject.cosign/image",
"org.opencontainers.image.ref.name": "my-project:4.1.1"
}
Expected Behavior:
We should be able to add charts and images that have the same name and version. These are two different types of artifacts.
Actual Behavior:
The last artifact to be added is the only one in the store.
Additional Context:
This might be an issue with the underlying ORAS library, I haven't investigated this too thoroughly yet.
Environmental Info:
Linux PC 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Hauler Version:
__ __ ___ __ __ __ _______ .______
| | | | / \ | | | | | | | || _
| || | / ^ \ | | | | | | | | | |) |
| __ | / /\ \ | | | | | | | | | /
| | | | / _____ \ |
--' | |----.| | | |\ ----.|| || // __\ _/ ||||| _| `.__|
hauler: Airgap Swiss Army Knife
GitVersion: 1.2.0
GitCommit: 7d28df1
GitTreeState: clean
BuildDate: 2025-02-07T00:04:35Z
GoVersion: go1.23.5 X:boringcrypto
Compiler: gc
Platform: linux/amd64
Describe the Bug:
When a store is created and I add both a chart and an image that have the same name and version (both using a manifest and directly doing 'add'), the last artifact that is added crushes the first one. When 'store info' is run we only see the last artifact that was added.
If you inpect the index.json file in the store during the second add, it will actually temporarily hold both artifacts properly, but there appears to be a final cleanup action that removes one of the entries.
Steps to Reproduce:
Any manifest that contains both a chart and a docker image of the same name and version. It's critical that the docker image doesn't contain a subpath in it's name, so the manifests end up like:
Expected Behavior:
We should be able to add charts and images that have the same name and version. These are two different types of artifacts.
Actual Behavior:
The last artifact to be added is the only one in the store.
Additional Context:
This might be an issue with the underlying ORAS library, I haven't investigated this too thoroughly yet.