-
Notifications
You must be signed in to change notification settings - Fork 32
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
added remote load updates and cleaned up load and save #397
Conversation
zackbradys@Zacks-MacBook-Pro hauler % rm -rf store
zackbradys@Zacks-MacBook-Pro hauler % hauler store load -h
Load a content store from a store archive
Usage:
hauler store load [flags]
Flags:
-h, --help help for load
-t, --tempdir string (Optional) Override the default temporary directory determined by the OS
Global Flags:
-d, --haulerdir string Set the location of the hauler directory (default $HOME/.hauler)
--ignore-errors Ignore/Bypass errors (i.e. warn on error) (defaults false)
-l, --log-level string Set the logging level (i.e. info, debug, warn) (default "info")
-r, --retries int Set the number of retries for operations (default 3)
-s, --store string Set the directory to use for the content store
zackbradys@Zacks-MacBook-Pro hauler % cp testdata/haul.tar.zst .
zackbradys@Zacks-MacBook-Pro hauler % hauler store load
2025-02-03 10:59:35 INF loading archive [haul.tar.zst] to store [/Users/zackbradys/Documents/Coding/GitHub/hauler/store]
2025-02-03 10:59:35 INF unarchiving completed successfully
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler % hauler store info
+------------------------------------------------------------------------------------------------+-------+-----------------+----------+----------+
| REFERENCE | TYPE | PLATFORM | # LAYERS | SIZE |
+------------------------------------------------------------------------------------------------+-------+-----------------+----------+----------+
| gcr.io/distroless/base@sha256:7fa7445dfbebae4f4b7ab0e6ef99276e96075ae42584af6286ba080750d6dfe5 | image | linux/amd64 | 2 | 8.0 MB |
| hauler/hauler-helm:1.0.8 | chart | - | 1 | 3.8 kB |
| hauler/hauler-manifest.yaml:latest | file | - | 1 | 823 B |
| hauler/install.sh:latest | file | - | 1 | 25.0 kB |
| hauler/rancher:2.8.5 | chart | - | 1 | 15.1 kB |
| index.docker.io/library/busybox:latest | image | linux/386 | 1 | 2.2 MB |
| | image | linux/amd64 | 1 | 2.2 MB |
| | image | linux/arm | 1 | 1.8 MB |
| | image | linux/arm | 1 | 948.4 kB |
| | image | linux/arm | 1 | 1.6 MB |
| | image | linux/arm64 | 1 | 1.8 MB |
| | image | linux/mips64le | 1 | 2.1 MB |
| | image | linux/ppc64le | 1 | 2.5 MB |
| | image | linux/riscv64 | 1 | 927.7 kB |
| | image | linux/s390x | 1 | 1.9 MB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| index.docker.io/library/busybox:stable | image | linux/amd64 | 1 | 2.2 MB |
+------------------------------------------------------------------------------------------------+-------+-----------------+----------+----------+
| TOTAL | 28.0 MB |
+------------------------------------------------------------------------------------------------+-------+-----------------+----------+----------+
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler % rm -rf store
zackbradys@Zacks-MacBook-Pro hauler % hauler store load -l debug
2025-02-03 10:59:56 DBG running cli command [hauler store load]
2025-02-03 10:59:56 DBG using store at [/Users/zackbradys/Documents/Coding/GitHub/hauler/store]
2025-02-03 10:59:56 INF loading archive [haul.tar.zst] to store [/Users/zackbradys/Documents/Coding/GitHub/hauler/store]
2025-02-03 10:59:56 DBG using temporary directory [/var/folders/5f/lyy8pc6s62dbckp8sy31ft5r0000gn/T/hauler953561023]
2025-02-03 10:59:56 DBG unarchiving temporary archive [haul.tar.zst] to temporary store [/var/folders/5f/lyy8pc6s62dbckp8sy31ft5r0000gn/T/hauler953561023]
2025-02-03 10:59:56 DBG creating directory [/var/folders/5f/lyy8pc6s62dbckp8sy31ft5r0000gn/T/hauler953561023]
2025-02-03 10:59:56 INF unarchiving completed successfully
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler % hauler store info
+------------------------------------------------------------------------------------------------+-------+-----------------+----------+----------+
| REFERENCE | TYPE | PLATFORM | # LAYERS | SIZE |
+------------------------------------------------------------------------------------------------+-------+-----------------+----------+----------+
| gcr.io/distroless/base@sha256:7fa7445dfbebae4f4b7ab0e6ef99276e96075ae42584af6286ba080750d6dfe5 | image | linux/amd64 | 2 | 8.0 MB |
| hauler/hauler-helm:1.0.8 | chart | - | 1 | 3.8 kB |
| hauler/hauler-manifest.yaml:latest | file | - | 1 | 823 B |
| hauler/install.sh:latest | file | - | 1 | 25.0 kB |
| hauler/rancher:2.8.5 | chart | - | 1 | 15.1 kB |
| index.docker.io/library/busybox:latest | image | linux/386 | 1 | 2.2 MB |
| | image | linux/amd64 | 1 | 2.2 MB |
| | image | linux/arm | 1 | 1.8 MB |
| | image | linux/arm | 1 | 948.4 kB |
| | image | linux/arm | 1 | 1.6 MB |
| | image | linux/arm64 | 1 | 1.8 MB |
| | image | linux/mips64le | 1 | 2.1 MB |
| | image | linux/ppc64le | 1 | 2.5 MB |
| | image | linux/riscv64 | 1 | 927.7 kB |
| | image | linux/s390x | 1 | 1.9 MB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| | image | unknown/unknown | 1 | 1.9 kB |
| index.docker.io/library/busybox:stable | image | linux/amd64 | 1 | 2.2 MB |
+------------------------------------------------------------------------------------------------+-------+-----------------+----------+----------+
| TOTAL | 28.0 MB |
+------------------------------------------------------------------------------------------------+-------+-----------------+----------+----------+
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler % rm -rf store
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler % mkdir tmp
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler % hauler store load -l debug -s temp -t /Users/zackbradys/Documents/Coding/GitHub/hauler/tmp haul.tar.zst testdata/haul.tar.zst
2025-02-03 11:01:11 DBG running cli command [hauler store load]
2025-02-03 11:01:11 DBG using store at [/Users/zackbradys/Documents/Coding/GitHub/hauler/temp]
2025-02-03 11:01:11 INF loading archive [haul.tar.zst] to store [/Users/zackbradys/Documents/Coding/GitHub/hauler/temp]
2025-02-03 11:01:11 DBG using temporary directory [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp]
2025-02-03 11:01:11 DBG unarchiving temporary archive [haul.tar.zst] to temporary store [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp]
2025-02-03 11:01:11 DBG creating directory [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp]
2025-02-03 11:01:11 INF unarchiving completed successfully
2025-02-03 11:01:11 INF loading archive [testdata/haul.tar.zst] to store [/Users/zackbradys/Documents/Coding/GitHub/hauler/temp]
2025-02-03 11:01:11 DBG using temporary directory [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp]
2025-02-03 11:01:11 DBG unarchiving temporary archive [testdata/haul.tar.zst] to temporary store [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp]
2025-02-03 11:01:11 DBG creating directory [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp]
2025-02-03 11:01:11 INF unarchiving completed successfully
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler % export HAULER_STORE_DIR=/Users/zackbradys/Documents/Coding/GitHub/hauler/temp2
zackbradys@Zacks-MacBook-Pro hauler % export HAULER_TEMP_DIR=/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp2
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler % hauler store load -l debug haul.tar.zst testdata/haul.tar.zst
2025-02-03 11:02:36 DBG running cli command [hauler store load]
2025-02-03 11:02:36 DBG using store at [/Users/zackbradys/Documents/Coding/GitHub/hauler/temp2]
2025-02-03 11:02:36 INF loading archive [haul.tar.zst] to store [/Users/zackbradys/Documents/Coding/GitHub/hauler/temp2]
2025-02-03 11:02:36 DBG using temporary directory [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp2/hauler160357038]
2025-02-03 11:02:36 DBG unarchiving temporary archive [haul.tar.zst] to temporary store [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp2/hauler160357038]
2025-02-03 11:02:36 DBG creating directory [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp2/hauler160357038]
2025-02-03 11:02:36 INF unarchiving completed successfully
2025-02-03 11:02:36 INF loading archive [testdata/haul.tar.zst] to store [/Users/zackbradys/Documents/Coding/GitHub/hauler/temp2]
2025-02-03 11:02:36 DBG using temporary directory [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp2/hauler3113089594]
2025-02-03 11:02:36 DBG unarchiving temporary archive [testdata/haul.tar.zst] to temporary store [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp2/hauler3113089594]
2025-02-03 11:02:36 DBG creating directory [/Users/zackbradys/Documents/Coding/GitHub/hauler/tmp2/hauler3113089594]
2025-02-03 11:02:36 INF unarchiving completed successfully |
zackbradys@Zacks-MacBook-Pro hauler % hauler store save
2025-02-03 11:09:54 WRN specify an export platform to prevent potential platform mismatch on import of index [index.docker.io/library/busybox:latest]
2025-02-03 11:09:54 INF saved store [/Users/zackbradys/Documents/Coding/GitHub/hauler/store] -> [/Users/zackbradys/Documents/Coding/GitHub/hauler/haul.tar.zst]
zackbradys@Zacks-MacBook-Pro hauler %
zackbradys@Zacks-MacBook-Pro hauler % hauler store save -l debug
2025-02-03 11:09:57 DBG running cli command [hauler store save]
2025-02-03 11:09:57 DBG using store at [/Users/zackbradys/Documents/Coding/GitHub/hauler/store]
2025-02-03 11:09:57 DBG descriptor [sha256:d50b7c9f77ecb424481ee733421a2a1d154e49dde6a7f56996cd440958819b21] = [application/vnd.oci.image.manifest.v1+json]
2025-02-03 11:09:57 DBG descriptor [sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140] = [application/vnd.oci.image.index.v1+json]
2025-02-03 11:09:57 DBG index [index.docker.io/library/busybox:latest]: digest=[sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140]... type=[application/vnd.oci.image.index.v1+json]... size=[10200]
2025-02-03 11:09:57 WRN specify an export platform to prevent potential platform mismatch on import of index [index.docker.io/library/busybox:latest]
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:9186e638ccc30c5d1a2efd5a2cd632f49bb5013f164f6f85c48ed6fce90fe38f]: type=application/vnd.oci.image.manifest.v1+json, size=610
2025-02-03 11:09:57 DBG index [index.docker.io/library/busybox:latest]: digest=[sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140], platform=[unknown/unknown]: matches unknown platform... skipping...
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:13e8bc253c581305aca9ae1fa8562f591769abddd70d877c88bf99fc3679f821]: type=application/vnd.oci.image.manifest.v1+json, size=610
2025-02-03 11:09:57 DBG index [index.docker.io/library/busybox:latest]: digest=[sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140], platform=[unknown/unknown]: matches unknown platform... skipping...
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:17934c55824eff3072923db6cd7c3ba00359e57b730e5581e7273c610738f910]: type=application/vnd.oci.image.manifest.v1+json, size=608
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:5b5c31ebfa56e5245ba8666f899fbf64eeb51caa344608d8b938b2ab7d9fe442]: type=application/vnd.oci.image.manifest.v1+json, size=610
2025-02-03 11:09:57 DBG index [index.docker.io/library/busybox:latest]: digest=[sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140], platform=[unknown/unknown]: matches unknown platform... skipping...
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:71e065368796c7368a99a072019b9fe73e28e225ae9882430579ec49a1e46235]: type=application/vnd.oci.image.manifest.v1+json, size=610
2025-02-03 11:09:57 DBG index [index.docker.io/library/busybox:latest]: digest=[sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140], platform=[unknown/unknown]: matches unknown platform... skipping...
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:88d91ebb7b59921fe3736426a7bb0033a168ba0e2382af5e4b102efabf622240]: type=application/vnd.oci.image.manifest.v1+json, size=610
2025-02-03 11:09:57 DBG index [index.docker.io/library/busybox:latest]: digest=[sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140], platform=[unknown/unknown]: matches unknown platform... skipping...
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:5d4fe778cdb7f30d46b87cd1c3cb8ab9b4facea1701838363e27f8f6a61ee611]: type=application/vnd.oci.image.manifest.v1+json, size=610
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:de60096c7ffc12dc44e5af1c0ba38db72e9e8994e65f2fdf034ae5a855b6e1f3]: type=application/vnd.oci.image.manifest.v1+json, size=610
2025-02-03 11:09:57 DBG index [index.docker.io/library/busybox:latest]: digest=[sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140], platform=[unknown/unknown]: matches unknown platform... skipping...
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:2d91f6c14d238a12d20fa53250a1c5c9f5322c8457904103fb04184fad393077]: type=application/vnd.oci.image.manifest.v1+json, size=608
2025-02-03 11:09:57 DBG index [index.docker.io/library/busybox:latest]: digest=[sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140], platform=[unknown/unknown]: matches unknown platform... skipping...
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:e38676b0e3c3595eab09f46f195bffa17936b35f608dbf53abaf7729d65ca835]: type=application/vnd.oci.image.manifest.v1+json, size=610
2025-02-03 11:09:57 DBG index [index.docker.io/library/busybox:latest]: digest=[sha256:c230832bd3b0be59a6c47ed64294f9ce71e91b327957920b6929a0caa8353140], platform=[unknown/unknown]: matches unknown platform... skipping...
2025-02-03 11:09:57 DBG descriptor [sha256:9186e638ccc30c5d1a2efd5a2cd632f49bb5013f164f6f85c48ed6fce90fe38f] = [application/vnd.oci.image.manifest.v1+json]
2025-02-03 11:09:57 DBG image [index.docker.io/library/busybox@sha256:9186e638ccc30c5d1a2efd5a2cd632f49bb5013f164f6f85c48ed6fce90fe38f]: type=application/vnd.oci.image.manifest.v1+json, size=610
2025-02-03 11:09:57 DBG descriptor [sha256:fe07eb6fec5e42ab3f5316287db8be5ac050e6f0090683b6ce2dfd855c5d90c3] = [application/vnd.oci.image.manifest.v1+json]
2025-02-03 11:09:57 DBG descriptor [sha256:7fa7445dfbebae4f4b7ab0e6ef99276e96075ae42584af6286ba080750d6dfe5] = [application/vnd.docker.distribution.manifest.v2+json]
2025-02-03 11:09:57 DBG image [gcr.io/distroless/base@sha256:7fa7445dfbebae4f4b7ab0e6ef99276e96075ae42584af6286ba080750d6dfe5]: type=application/vnd.docker.distribution.manifest.v2+json, size=737
2025-02-03 11:09:57 DBG descriptor [sha256:385a130f54c0295333e1f8192e5982d0c5af69e19d79ef1244e39f21a8029743] = [application/vnd.oci.image.manifest.v1+json]
2025-02-03 11:09:57 DBG descriptor [sha256:8b9303c0a5cc71fe4141ff8de7d05d28b15e817bc45f42ad0dc2c159bc592839] = [application/vnd.oci.image.manifest.v1+json]
2025-02-03 11:09:57 DBG starting the archival process for [.]
2025-02-03 11:09:57 DBG removing existing output file: [/Users/zackbradys/Documents/Coding/GitHub/hauler/haul.tar.zst]
2025-02-03 11:09:57 DBG mapping files in directory [.]
2025-02-03 11:09:57 DBG successfully mapped files for directory [.]
2025-02-03 11:09:57 DBG creating output file [/Users/zackbradys/Documents/Coding/GitHub/hauler/haul.tar.zst]
2025-02-03 11:09:57 DBG defining the archive format: [archives.Tar]/[archives.Zstd]
2025-02-03 11:09:57 DBG starting archive for [/Users/zackbradys/Documents/Coding/GitHub/hauler/haul.tar.zst]
2025-02-03 11:09:57 DBG archive created successfully [/Users/zackbradys/Documents/Coding/GitHub/hauler/haul.tar.zst]
2025-02-03 11:09:57 DBG closing output file [/Users/zackbradys/Documents/Coding/GitHub/hauler/haul.tar.zst]
2025-02-03 11:09:57 INF saved store [/Users/zackbradys/Documents/Coding/GitHub/hauler/store] -> [/Users/zackbradys/Documents/Coding/GitHub/hauler/haul.tar.zst] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still stand by hauler store save
using a flag for the filename because it's optional. I don't really like optional args if I can help it. I understand that hauler is currently a mixed bag.
If anything, hauler store load
should be the thing that's changed to match save
for consistency, not the other way around.
We can discuss on our call later if you'd like.
Please check below, if the PR fulfills these requirements:
Associated Links:
hauler
toload
andsync
remote files #208Types of Changes:
Proposed Changes:
hauler store load
to accept multiple local and remote archives ofhttp
/https
hauler store load
/hauler store save
haul.tar.zst
to match the functionality between both commandsflag
of--filename/-f
forhauler store save
(argument)Verification/Testing of Changes:
Additional Context: