Mindthegap provides utilities to manage air-gapped image bundles

Mind The Gap

GitHub

mindthegap provides utilities to manage air-gapped image bundles, both creating image bundles and seeding images from a bundle into an existing image registry.

Usage

Creating an image bundle

mindthegap create image-bundle --images-file <path/to/images.yaml> \
  --platform <platform> [--platform <platform> ...] \
  --output-file <path/to/output.tar>

See the example images.yaml for the structure of the images config file.

Platform can be specified multiple times. Supported platforms:

linux/amd64
linux/arm64
windows/amd64
windows/arm64

All images in the images config file must support all the requested platforms.

The output file will be a tarball that can be seeded into a registry, or that can be untarred and used as the storage directory for a Docker registry served via registry:2.

Pushing an image bundle

mindthegap push image-bundle --image-bundle <path/to/images.tar> \
  --to-registry <registry.address> \
  [--to-registry-insecure-skip-tls-verify]

All images in the image bundle tar file will be pushed to the target docker registry.

Serving an image bundle

mindthegap serve image-bundle --image-bundle <path/to/images.tar> \
  [--listen-address <listen.address>] \
  [--listen-port <listen.port>]

Start a Docker registry serving the contents of the image bundle. Note that he Docker registry will be in read-only mode to reflect the source of the data being a static tarball so pushes to this registry will fail.

How does it work?

mindthegap starts up a Docker registry and then uses skopeo to copy the specified images for all specified platforms into the running registry. The resulting registry storage is then tarred up, resulting in a tarball of the specified images.

The resulting tarball can be loaded into a running Docker registry, or be used as the initial storage for running your own registry from via Docker or in a Kubernetes cluster.

Building

Prerequisite: set up git lfs

mindthegap embeds a static build of skopeo. In order to make keep the repo clean, the static builds of skopeo are added via git lfs. If you haven't previously set up git lfs on your machine (don't worry, it's just a case of install git-lfs and running git lfs install), then follow the instructions on the git lfs site.

Building the CLI

Build the CLI using make build-snapshot that will output binary into dist/mindthegap_$(GOOS)_$(GOARCH)/mindthegap and put it in $PATH.

Comments
  • build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.7.1

    build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.7.1

    Bumps github.com/stretchr/testify from 1.7.0 to 1.7.1.

    Commits
    • 083ff1c Fixed didPanic to now detect panic(nil).
    • 1e36bfe Use cross Go version compatible build tag syntax
    • e798dc2 Add docs on 1.17 build tags
    • 83198c2 assert: guard CanConvert call in backward compatible wrapper
    • 087b655 assert: allow comparing time.Time
    • 7bcf74e fix msgAndArgs forwarding
    • c29de71 add tests for correct msgAndArgs forwarding
    • f87e2b2 Update builds
    • ab6dc32 fix linting errors in /assert package
    • edff5a0 fix funtion name
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • feat: support globs for image and helm bundles

    feat: support globs for image and helm bundles

    Handles file globs for --image-bundle and --helm-bundle. This also will fail fast if the file does not exist.

    ➜  mindthegap git:(dkoshkin/globs) ✗ dist/mindthegap_darwin_amd64_v1/mindthegap push image-bundle --image-bundle="glob-test/*.tar" --image-bundle=glob-test-2/dkoshkin-images1.tar --to-registry=127.0.0.1:5000 --to-registry-insecure-skip-tls-verify=true
     ✓ Creating temporary directory
     ✓ Unarchiving image bundle "glob-test-2/dkoshkin-images1.tar"
     ✓ Parsing image bundle config
     ✓ Unarchiving image bundle "glob-test/dkoshkin-images1.tar"
     ✓ Parsing image bundle config
     ✓ Unarchiving image bundle "glob-test/dkoshkin-images2.tar"
     ✓ Parsing image bundle config
     ✓ Starting temporary Docker registry
     ✓ Copying docker.io/library/busybox:latest (from bundle) to 127.0.0.1:5000/library/busybox:latest
     ✓ Copying docker.io/library/nginx:1.21.5 (from bundle) to 127.0.0.1:5000/library/nginx:1.21.5
     ✓ Copying docker.io/library/registry:2 (from bundle) to 127.0.0.1:5000/library/registry:2
    ➜  mindthegap git:(dkoshkin/globs) ✗ dist/mindthegap_darwin_amd64_v1/mindthegap push image-bundle --image-bundle="glob-test/*.tar" --image-bundle=glob-test-2/dkoshkin-images2.tar --to-registry=127.0.0.1:5000 --to-registry-insecure-skip-tls-verify=true
     ✓ Creating temporary directory
    did find any matching files for "glob-test-2/dkoshkin-images2.tar"
    
  • feat: support multiple bundles

    feat: support multiple bundles

    Naive implementation support multiple bundles. This does not change existing UX, --image-bundle is a slice and the commands have aliases.

    ➜  mindthegap git:(main) ✗ mindthegap push image-bundle --to-registry 0.0.0.0:5000 --to-registry-insecure-skip-tls-verify true --image-bundle images.tar.gz --image-bundle new.tar
    Processing bundle images.tar.gz
     ✓ Creating temporary directory
     ✓ Unarchiving image bundle
     ✓ Parsing image bundle config
     ✓ Starting temporary Docker registry
     ✓ Copying localhost:56657/google_containers/kubernetes-dashboard-init-amd64:v1.0.0 to 0.0.0.0:5000/google_containers/kubernetes-dashboard-init-amd64:v1.0.0
     ✓ Copying localhost:56657/banzaicloud/fluentd:v1.12.4-alpine-4 to 0.0.0.0:5000/banzaicloud/fluentd:v1.12.4-alpine-4
     ✓ Copying localhost:56657/external-dns/external-dns:v0.10.2 to 0.0.0.0:5000/external-dns/external-dns:v0.10.2
     ✓ Copying localhost:56657/kube-state-metrics/kube-state-metrics:v1.9.8 to 0.0.0.0:5000/kube-state-metrics/kube-state-metrics:v1.9.8
     ✓ Copying localhost:56657/kube-state-metrics/kube-state-metrics:v2.1.1 to 0.0.0.0:5000/kube-state-metrics/kube-state-metrics:v2.1.1
     ✓ Copying localhost:56657/jetstack/cert-manager-cainjector:v1.5.4 to 0.0.0.0:5000/jetstack/cert-manager-cainjector:v1.5.4
     ✓ Copying localhost:56657/apteno/alpine-jq:2021-01-19 to 0.0.0.0:5000/apteno/alpine-jq:2021-01-19
     ✓ Copying localhost:56657/bitnami/kubectl:1.17.16 to 0.0.0.0:5000/bitnami/kubectl:1.17.16
     ✓ Copying localhost:56657/bitnami/kubectl:1.19.7 to 0.0.0.0:5000/bitnami/kubectl:1.19.7
     ✓ Copying localhost:56657/bitnami/kubectl:1.21.3 to 0.0.0.0:5000/bitnami/kubectl:1.21.3
    Processing bundle new.tar
     ✓ Creating temporary directory
     ✓ Unarchiving image bundle
     ✓ Parsing image bundle config
     ✓ Starting temporary Docker registry
     ✓ Copying localhost:56876/jetstack/cert-manager-cainjector:v1.5.4 to 0.0.0.0:5000/jetstack/cert-manager-cainjector:v1.5.4
     ✓ Copying localhost:56876/apteno/alpine-jq:2021-01-19 to 0.0.0.0:5000/apteno/alpine-jq:2021-01-19
     ✓ Copying localhost:56876/bitnami/kubectl:1.17.16 to 0.0.0.0:5000/bitnami/kubectl:1.17.16
     ✓ Copying localhost:56876/bitnami/kubectl:1.19.7 to 0.0.0.0:5000/bitnami/kubectl:1.19.7
     ✓ Copying localhost:56876/bitnami/kubectl:1.21.3 to 0.0.0.0:5000/bitnami/kubectl:1.21.3
     ✓ Copying localhost:56876/google_containers/kubernetes-dashboard-init-amd64:v1.0.0 to 0.0.0.0:5000/google_containers/kubernetes-dashboard-init-amd64:v1.0.0
     ✓ Copying localhost:56876/banzaicloud/fluentd:v1.12.4-alpine-4 to 0.0.0.0:5000/banzaicloud/fluentd:v1.12.4-alpine-4
     ✓ Copying localhost:56876/external-dns/external-dns:v0.10.2 to 0.0.0.0:5000/external-dns/external-dns:v0.10.2
     ✓ Copying localhost:56876/kube-state-metrics/kube-state-metrics:v1.9.8 to 0.0.0.0:5000/kube-state-metrics/kube-state-metrics:v1.9.8
     ✓ Copying localhost:56876/kube-state-metrics/kube-state-metrics:v2.1.1 to 0.0.0.0:5000/kube-state-metrics/kube-state-metrics:v2.1.1
    

    I was thinking that we can merge the yaml files and the directories in individual bundles but that adds a lot of complexity and potential errors when merging.

  • build(deps): bump github.com/docker/cli from 20.10.15+incompatible to 20.10.16+incompatible

    build(deps): bump github.com/docker/cli from 20.10.15+incompatible to 20.10.16+incompatible

    Bumps github.com/docker/cli from 20.10.15+incompatible to 20.10.16+incompatible.

    Commits
    • aa7e414 Merge pull request #3601 from thaJeztah/20.10_bump_golang_1.17.10
    • 240e4b5 [20.10] vendor: golang.org/x/sys v0.0.0-20220412211240-33da011f77ad
    • 5d4776b [20.10] update golang to 1.17.10
    • 1841277 Merge pull request #3592 from thaJeztah/20.10_backport_bump_x_sys
    • 49e9c2a vendor: golang.org/x/sys 63515b42dcdf9544f4e6a02fd7632793fde2f72d (for Go 1.17)
    • 87a3ce2 vendor: golang.org/x/sys d19ff857e887eacb631721f188c7d365c2331456
    • 1d8abed vendor: update x/sys to 134d130e
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.15.4 to 1.15.5

    build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.15.4 to 1.15.5

    Bumps github.com/aws/aws-sdk-go-v2/config from 1.15.4 to 1.15.5.

    Changelog

    Sourced from github.com/aws/aws-sdk-go-v2/config's changelog.

    Release (2022-05-13)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/grafana: v1.9.0
      • Feature: This release adds APIs for creating and deleting API keys in an Amazon Managed Grafana workspace.

    Release (2022-05-12)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/ec2: v1.43.0
      • Feature: This release introduces a target type Gateway Load Balancer Endpoint for mirrored traffic. Customers can now specify GatewayLoadBalancerEndpoint option during the creation of a traffic mirror target.
    • github.com/aws/aws-sdk-go-v2/service/finspacedata: v1.10.5
      • Documentation: We've now deprecated CreateSnapshot permission for creating a data view, instead use CreateDataView permission.
    • github.com/aws/aws-sdk-go-v2/service/iot: v1.25.1
      • Documentation: Documentation update for China region ListMetricValues for IoT
    • github.com/aws/aws-sdk-go-v2/service/ivschat: v1.0.2
      • Documentation: Documentation-only updates for IVS Chat API Reference.
    • github.com/aws/aws-sdk-go-v2/service/kendra: v1.27.0
    • github.com/aws/aws-sdk-go-v2/service/lambda: v1.23.0
      • Feature: Lambda releases NodeJs 16 managed runtime to be available in all commercial regions.
    • github.com/aws/aws-sdk-go-v2/service/lightsail: v1.21.0
      • Feature: This release adds support to include inactive database bundles in the response of the GetRelationalDatabaseBundles request.
    • github.com/aws/aws-sdk-go-v2/service/outposts: v1.19.1
      • Documentation: Documentation updates for AWS Outposts.
    • github.com/aws/aws-sdk-go-v2/service/ssmincidents: v1.14.0
      • Feature: Adding support for dynamic SSM Runbook parameter values. Updating validation pattern for engagements. Adding ConflictException to UpdateReplicationSet API contract.
    • github.com/aws/aws-sdk-go-v2/service/transfer: v1.18.6
      • Documentation: AWS Transfer Family now accepts ECDSA keys for server host keys

    Release (2022-05-11)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/ec2: v1.42.0
      • Feature: This release updates AWS PrivateLink APIs to support IPv6 for PrivateLink Services and Endpoints of type 'Interface'.
    • github.com/aws/aws-sdk-go-v2/service/secretsmanager: v1.15.7
      • Documentation: Doc only update for Secrets Manager that fixes several customer-reported issues.

    Release (2022-05-10)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/computeoptimizer: v1.17.5
      • Documentation: Documentation updates for Compute Optimizer
    • github.com/aws/aws-sdk-go-v2/service/ec2: v1.41.0
      • Feature: Added support for using NitroTPM and UEFI Secure Boot on EC2 instances.
    • github.com/aws/aws-sdk-go-v2/service/eks: v1.21.0
      • Feature: Adds BOTTLEROCKET_ARM_64_NVIDIA and BOTTLEROCKET_x86_64_NVIDIA AMI types to EKS managed nodegroups
    • github.com/aws/aws-sdk-go-v2/service/emr: v1.18.0
      • Feature: This release updates the Amazon EMR ModifyInstanceGroups API to support "MERGE" type cluster reconfiguration. Also, added the ability to specify a particular Amazon Linux release for all nodes in a cluster launch request.
    • github.com/aws/aws-sdk-go-v2/service/migrationhubrefactorspaces: v1.5.5

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • fix: prevent 404 on ECR during image creation

    fix: prevent 404 on ECR during image creation

    When using the inspect function on ECR repositories, it fails with an ominous 404. https://github.com/containers/skopeo/issues/1230

    This skips all extended tag listing -- we are happy with the one we asked for which IIUC should not be any problem for the functionality of mindthegap.

  • build(deps): bump helm.sh/helm/v3 from 3.8.1 to 3.8.2

    build(deps): bump helm.sh/helm/v3 from 3.8.1 to 3.8.2

    Bumps helm.sh/helm/v3 from 3.8.1 to 3.8.2.

    Release notes

    Sourced from helm.sh/helm/v3's releases.

    Helm v3.8.2 is a patch release. Users are encouraged to upgrade for the best experience.

    The community keeps growing, and we'd love to see you there!

    • Join the discussion in Kubernetes Slack:
      • for questions and just to hang out
      • for discussing PRs, code, and bugs
    • Hang out at the Public Developer Call: Thursday, 9:30 Pacific via Zoom
    • Test, debug, and contribute charts: ArtifactHub/packages

    Installation and Upgrading

    Download Helm v3.8.2. The common platform binaries are here:

    This release was signed with 672C 657B E06B 4B30 969C 4A57 4614 49C2 5E36 B98E and can be found at @​mattfarina keybase account. Please use the attached signatures for verifying this release using gpg.

    The Quickstart Guide will get you going from there. For upgrade instructions or detailed installation notes, check the install guide. You can also use a script to install on any system with bash.

    What's Next

    • 3.9.0 is the next feature release and will be released on May 11, 2022.

    Changelog

    • Bump oras.land/oras-go from 1.1.0 to 1.1.1 6e3701edea09e5d55a8ca2aae03a68917630e91b (dependabot[bot])
    • Fixing downloader plugin error handling 7c3f6516f4d4b2d1dc34c4c9d725b973a5738679 (Zoran Krleza)
    • Simplify testdata charts cf45b1a271ec06a2e2fb459afbc1bd86e3e88c78 (Aram Zegerius)
    • Simplify testdata charts 7526b0ed8dd4a3f6d5227d5160ec17cf226ae20a (Aram Zegerius)
    • Make validation errors easier to fix 7df8251760085ba247fce49415e2be20e6f08ab7 (Damien Nozay)
    • fix tarFromLocalDir saving file dependencies in dest path bd77989fb14b017880fde4bf842c7fa459b13f0a (Matthew Fisher)
    • Add tests for multi-level dependencies. d263aaadee29bbe394ec4568976ebff7d7e05936 (Aram Zegerius)
    • Fix value precedence 5d017e11f1f47345a3559bf70f63d81a7edc981a (Aram Zegerius)
    • Bumping Kubernetes package versions 9d3ce9b141b9d8ce57c6e779657731d739b61312 (Matt Farina)
    • Updating vcs to latest version c0a645a3a31d4701ba1476d9afe54c723a5168f9 (Matt Farina)
    • Dont modify provided transport f4276f45264dbe075567e9ded8f38d1427c0f20f (Matthias Fehr)
    • Pass http getter as pointer in tests b216f76899dc9e5f0a1dab02b41b3bbf240eabed (Matthias Fehr)
    • Add docs block 65b6e6d1cab1cb495395c91a50a2e7fbd8ed6468 (Matthias Fehr)
    • Add transport option and tests ab4dc7861b6af9587f0f1e4149c52f109296924f (Matthias Fehr)
    • Reuse http transport 6c5adf1ddf09fd4d478c057d8b0d417ab8137e58 (Matthias Fehr)
    Commits
    • 6e3701e Bump oras.land/oras-go from 1.1.0 to 1.1.1
    • 7c3f651 Fixing downloader plugin error handling
    • cf45b1a Simplify testdata charts
    • 7526b0e Simplify testdata charts
    • 7df8251 Make validation errors easier to fix
    • bd77989 fix tarFromLocalDir saving file dependencies in dest path
    • d263aaa Add tests for multi-level dependencies.
    • 5d017e1 Fix value precedence
    • 9d3ce9b Bumping Kubernetes package versions
    • c0a645a Updating vcs to latest version
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/containers/image/v5 from 5.20.0 to 5.21.0

    build(deps): bump github.com/containers/image/v5 from 5.20.0 to 5.21.0

    Bumps github.com/containers/image/v5 from 5.20.0 to 5.21.0.

    Release notes

    Sourced from github.com/containers/image/v5's releases.

    v5.21.0

    What's Changed

    Full Changelog: https://github.com/containers/image/compare/v5.20.0...v5.21.0

    Commits
    • d03e80f Release v5.21.0
    • dc7fe92 Merge pull request #1513 from containers/dependabot/go_modules/github.com/syl...
    • 44eb409 build(deps): bump github.com/sylabs/sif/v2 from 2.4.1 to 2.4.2
    • f3198c2 Merge pull request #1411 from QiWang19/digest-set-for-mirror
    • 0642df2 Add pull-from-mirror for adding per-mirror level restrictions
    • fcf8dda Merge pull request #1510 from Jamstah/sign-identity
    • 030d990 Use only full named references for signing identity
    • 7dde4a3 Add option to specify the identity for signing
    • b073049 Merge pull request #1511 from containers/dependabot/go_modules/github.com/ope...
    • 75748af build(deps): bump github.com/opencontainers/selinux
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • feat: use mholt/archiver to tar and untar

    feat: use mholt/archiver to tar and untar

    I started this PR thinking that I can add support for creating tar.gz to make the bundles smaller, using a popular library I've used before https://github.com/mholt/archiver.

    That wasn't the case, I misunderstood how this tool works.

    ➜  mindthegap git:(main) ✗ ll new.tar new.tar.bz2 new.tar.gz
    -rw-r--r--  1 dkoshkin  staff   1.8G Dec 14 16:34 new.tar
    -rw-r--r--  1 dkoshkin  staff   1.8G Dec 14 17:03 new.tar.bz2
    -rw-r--r--  1 dkoshkin  staff   1.8G Dec 14 16:41 new.tar.gz
    

    Konvoy uses docker save/load to load the image layers directly into Containerd. From what I understand this tool is equivalent to docker export/import, and Im not sure how its supposed to be used.

    If I run docker import with the generated tar I see the image size is 5.22MB

    docker import new.tar apteno/alpine-jq:2021-01-19
    sha256:42a4ee3ef7ebc7e36e9a60e8d99369d0258de92303aa14df2c75afbc654b0df2
    ➜  mindthegap git:(dkoshkin/archive) ✗ docker images
    REPOSITORY                                                                    TAG                                                                IMAGE ID       CREATED             SIZE
    apteno/alpine-jq                                                              2021-01-19                                                         42a4ee3ef7eb   4 seconds ago       5.22MB
    

    But then pulling the same image results in an image with 11MB

    ➜  mindthegap git:(dkoshkin/archive) ✗ docker pull apteno/alpine-jq:2021-01-19
    2021-01-19: Pulling from apteno/alpine-jq
    596ba82af5aa: Pull complete
    46027c549411: Pull complete
    Digest: sha256:74035b864eed93334d7acdcad4a9c6230aa3539f55d30c5de33b92b971671c01
    Status: Downloaded newer image for apteno/alpine-jq:2021-01-19
    docker.io/apteno/alpine-jq:2021-01-19
    ➜  mindthegap git:(dkoshkin/archive) ✗ docker images
    REPOSITORY                                                                    TAG                                                                IMAGE ID       CREATED             SIZE
    apteno/alpine-jq                                                              2021-01-19                                                         9ced89832e2c   11 months ago       11MB
    

    Either way these changes is something you may want instead of maintaining your own implementation of tar.

  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.0 to 1.18.7

    build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.0 to 1.18.7

    Bumps github.com/aws/aws-sdk-go-v2/config from 1.18.0 to 1.18.7.

    Changelog

    Sourced from github.com/aws/aws-sdk-go-v2/config's changelog.

    Release (2022-12-23)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/connect: v1.42.0
      • Feature: Support for Routing Profile filter, SortCriteria, and grouping by Routing Profiles for GetCurrentMetricData API. Support for RoutingProfiles, UserHierarchyGroups, and Agents as filters, NextStatus and AgentStatusName for GetCurrentUserData. Adds ApproximateTotalCount to both APIs.
    • github.com/aws/aws-sdk-go-v2/service/connectparticipant: v1.13.0
      • Feature: Amazon Connect Chat introduces the Message Receipts feature. This feature allows agents and customers to receive message delivered and read receipts after they send a chat message.
    • github.com/aws/aws-sdk-go-v2/service/detective: v1.17.0
      • Feature: This release adds a missed AccessDeniedException type to several endpoints.
    • github.com/aws/aws-sdk-go-v2/service/fsx: v1.27.0
      • Feature: Fix a bug where a recent release might break certain existing SDKs.
    • github.com/aws/aws-sdk-go-v2/service/inspector2: v1.10.0
      • Feature: Amazon Inspector adds support for scanning NodeJS 18.x and Go 1.x AWS Lambda function runtimes.

    Release (2022-12-22)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/computeoptimizer: v1.19.0
      • Feature: This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for ecs services running on Fargate.
    • github.com/aws/aws-sdk-go-v2/service/connect: v1.41.0
      • Feature: Amazon Connect Chat introduces the Idle Participant/Autodisconnect feature, which allows users to set timeouts relating to the activity of chat participants, using the new UpdateParticipantRoleConfig API.
    • github.com/aws/aws-sdk-go-v2/service/iotdeviceadvisor: v1.16.0
      • Feature: This release adds the following new features: 1) Documentation updates for IoT Device Advisor APIs. 2) Updated required request parameters for IoT Device Advisor APIs. 3) Added new service feature: ability to provide the test endpoint when customer executing the StartSuiteRun API.
    • github.com/aws/aws-sdk-go-v2/service/kinesisvideowebrtcstorage: v1.1.0
      • Feature: Amazon Kinesis Video Streams offers capabilities to stream video and audio in real-time via WebRTC to the cloud for storage, playback, and analytical processing. Customers can use our enhanced WebRTC SDK and cloud APIs to enable real-time streaming, as well as media ingestion to the cloud.
    • github.com/aws/aws-sdk-go-v2/service/rds: v1.37.0
      • Feature: Add support for managing master user password in AWS Secrets Manager for the DBInstance and DBCluster.
    • github.com/aws/aws-sdk-go-v2/service/secretsmanager: v1.16.11
      • Documentation: Documentation updates for Secrets Manager

    Release (2022-12-21)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/licensemanagerlinuxsubscriptions: v1.0.0
      • Release: New AWS service client module
      • Feature: AWS License Manager now offers cross-region, cross-account tracking of commercial Linux subscriptions on AWS. This includes subscriptions purchased as part of EC2 subscription-included AMIs, on the AWS Marketplace, or brought to AWS via Red Hat Cloud Access Program.
    • github.com/aws/aws-sdk-go-v2/service/macie2: v1.25.0
      • Feature: This release adds support for analyzing Amazon S3 objects that use the S3 Glacier Instant Retrieval (Glacier_IR) storage class.
    • github.com/aws/aws-sdk-go-v2/service/sagemaker: v1.61.0
      • Feature: This release enables adding RStudio Workbench support to an existing Amazon SageMaker Studio domain. It allows setting your RStudio on SageMaker environment configuration parameters and also updating the RStudioConnectUrl and RStudioPackageManagerUrl parameters for existing domains
    • github.com/aws/aws-sdk-go-v2/service/ssm: v1.33.4
      • Documentation: Doc-only updates for December 2022.
    • github.com/aws/aws-sdk-go-v2/service/support: v1.13.22
      • Documentation: Documentation updates for the AWS Support API
    • github.com/aws/aws-sdk-go-v2/service/transfer: v1.26.0
      • Feature: This release adds support for Decrypt as a workflow step type.

    Release (2022-12-20)

    General Highlights

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.0 to 1.18.5

    build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.0 to 1.18.5

    Bumps github.com/aws/aws-sdk-go-v2/config from 1.18.0 to 1.18.5.

    Changelog

    Sourced from github.com/aws/aws-sdk-go-v2/config's changelog.

    Release (2022-12-16)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/appflow: v1.22.0
      • Feature: This release updates the ListConnectorEntities API action so that it returns paginated responses that customers can retrieve with next tokens.
    • github.com/aws/aws-sdk-go-v2/service/cloudfront: v1.22.2
      • Documentation: Updated documentation for CloudFront
    • github.com/aws/aws-sdk-go-v2/service/datasync: v1.20.0
      • Feature: AWS DataSync now supports the use of tags with task executions. With this new feature, you can apply tags each time you execute a task, giving you greater control and management over your task executions.
    • github.com/aws/aws-sdk-go-v2/service/efs: v1.18.3
      • Documentation: General documentation updates for EFS.
    • github.com/aws/aws-sdk-go-v2/service/guardduty: v1.16.6
      • Documentation: This release provides the valid characters for the Description and Name field.
    • github.com/aws/aws-sdk-go-v2/service/iotfleetwise: v1.2.0
      • Feature: Updated error handling for empty resource names in "UpdateSignalCatalog" and "GetModelManifest" operations.
    • github.com/aws/aws-sdk-go-v2/service/sagemaker: v1.58.0
      • Feature: AWS sagemaker - Features: This release adds support for random seed, it's an integer value used to initialize a pseudo-random number generator. Setting a random seed will allow the hyperparameter tuning search strategies to produce more consistent configurations for the same tuning job.

    Release (2022-12-15)

    General Highlights

    • Dependency Update: Updated to the latest SDK module versions

    Module Highlights

    • github.com/aws/aws-sdk-go-v2: v1.17.3
      • Bug Fix: Unify logic between shared config and in finding home directory
    • github.com/aws/aws-sdk-go-v2/config: v1.18.5
      • Bug Fix: Unify logic between shared config and in finding home directory
    • github.com/aws/aws-sdk-go-v2/credentials: v1.13.5
      • Bug Fix: Unify logic between shared config and in finding home directory
    • github.com/aws/aws-sdk-go-v2/service/backupgateway: v1.8.0
      • Feature: This release adds support for VMware vSphere tags, enabling customer to protect VMware virtual machines using tag-based policies for AWS tags mapped from vSphere tags. This release also adds support for customer-accessible gateway-hypervisor interaction log and upload bandwidth rate limit schedule.
    • github.com/aws/aws-sdk-go-v2/service/connect: v1.40.0
      • Feature: Added support for "English - New Zealand" and "English - South African" to be used with Amazon Connect Custom Vocabulary APIs.
    • github.com/aws/aws-sdk-go-v2/service/ecs: v1.21.0
      • Feature: This release adds support for container port ranges in ECS, a new capability that allows customers to provide container port ranges to simplify use cases where multiple ports are in use in a container. This release updates TaskDefinition mutation APIs and the Task description APIs.
    • github.com/aws/aws-sdk-go-v2/service/eks: v1.26.0
      • Feature: Add support for Windows managed nodes groups.
    • github.com/aws/aws-sdk-go-v2/service/glue: v1.38.0
      • Feature: This release adds support for AWS Glue Crawler with native DeltaLake tables, allowing Crawlers to classify Delta Lake format tables and catalog them for query engines to query against.
    • github.com/aws/aws-sdk-go-v2/service/kinesis: v1.16.0
      • Feature: Added StreamARN parameter for Kinesis Data Streams APIs. Added a new opaque pagination token for ListStreams. SDKs will auto-generate Account Endpoint when accessing Kinesis Data Streams.
    • github.com/aws/aws-sdk-go-v2/service/location: v1.19.5
      • Documentation: This release adds support for a new style, "VectorOpenDataStandardLight" which can be used with the new data source, "Open Data Maps (Preview)".
    • github.com/aws/aws-sdk-go-v2/service/m2: v1.2.0
      • Feature: Adds an optional create-only KmsKeyId property to Environment and Application resources.
    • github.com/aws/aws-sdk-go-v2/service/sagemaker: v1.57.0
      • Feature: SageMaker Inference Recommender now allows customers to load tests their models on various instance types using private VPC.
    • github.com/aws/aws-sdk-go-v2/service/securityhub: v1.26.0
      • Feature: Added new resource details objects to ASFF, including resources for AwsEc2LaunchTemplate, AwsSageMakerNotebookInstance, AwsWafv2WebAcl and AwsWafv2RuleGroup.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(main): release 1.4.0

    build(main): release 1.4.0

    :robot: I have created a release beep boop

    What's Changed

    Exciting New Features 🎉

    • feat: support passing optional scheme in --to-registry by @dkoshkin in https://github.com/mesosphere/mindthegap/pull/252
    • feat: Reenable upx for macos binaries by @jimmidyson in https://github.com/mesosphere/mindthegap/pull/262

    Other Changes

    • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.17.8 to 1.17.9 by @dependabot in https://github.com/mesosphere/mindthegap/pull/237
    • build(deps): bump github.com/docker/cli from 20.10.19+incompatible to 20.10.20+incompatible by @dependabot in https://github.com/mesosphere/mindthegap/pull/240
    • build(deps): bump github.com/onsi/gomega from 1.22.0 to 1.22.1 by @dependabot in https://github.com/mesosphere/mindthegap/pull/239
    • build(deps): bump github.com/onsi/ginkgo/v2 from 2.3.1 to 2.4.0 by @dependabot in https://github.com/mesosphere/mindthegap/pull/241
    • build(deps): bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.17.18 to 1.17.20 by @dependabot in https://github.com/mesosphere/mindthegap/pull/243
    • build: Upgrade tools by @jimmidyson in https://github.com/mesosphere/mindthegap/pull/244
    • build(deps): bump github.com/docker/docker from 20.10.19+incompatible to 20.10.21+incompatible by @dependabot in https://github.com/mesosphere/mindthegap/pull/245
    • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.17.9 to 1.17.10 by @dependabot in https://github.com/mesosphere/mindthegap/pull/247
    • build(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1 by @dependabot in https://github.com/mesosphere/mindthegap/pull/249
    • build(deps): bump github.com/docker/cli from 20.10.20+incompatible to 20.10.21+incompatible by @dependabot in https://github.com/mesosphere/mindthegap/pull/246
    • build(deps): bump github.com/onsi/gomega from 1.22.1 to 1.23.0 by @dependabot in https://github.com/mesosphere/mindthegap/pull/248
    • ci: Refactor checks to remove more asdf stuff by @jimmidyson in https://github.com/mesosphere/mindthegap/pull/253
    • build(deps): bump github.com/mesosphere/dkp-cli-runtime/core from 0.7.0 to 0.7.1 by @dependabot in https://github.com/mesosphere/mindthegap/pull/254
    • build(deps): bump github.com/spf13/cobra from 1.5.0 to 1.6.1 by @dependabot in https://github.com/mesosphere/mindthegap/pull/255
    • build(deps): bump github.com/onsi/gomega from 1.23.0 to 1.24.0 by @dependabot in https://github.com/mesosphere/mindthegap/pull/256
    • ci: Add gha actions to dependabot config by @jimmidyson in https://github.com/mesosphere/mindthegap/pull/263
    • build(deps): bump k8s.io/apimachinery from 0.25.3 to 0.25.4 by @dependabot in https://github.com/mesosphere/mindthegap/pull/257
    • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.17.10 to 1.18.0 by @dependabot in https://github.com/mesosphere/mindthegap/pull/261
    • build(deps): bump github.com/onsi/gomega from 1.24.0 to 1.24.1 by @dependabot in https://github.com/mesosphere/mindthegap/pull/258
    • build(deps): bump google-github-actions/release-please-action from 3.5 to 3.6 by @dependabot in https://github.com/mesosphere/mindthegap/pull/264
    • build(deps): bump amannn/action-semantic-pull-request from 4 to 5 by @dependabot in https://github.com/mesosphere/mindthegap/pull/265
    • build(deps): bump sqren/backport-github-action from 8.3.1 to 8.9.7 by @dependabot in https://github.com/mesosphere/mindthegap/pull/266
    • build: Upgrade tools to latest versions by @jimmidyson in https://github.com/mesosphere/mindthegap/pull/268
    • build(deps): bump helm.sh/helm/v3 from 3.10.1 to 3.10.2 by @dependabot in https://github.com/mesosphere/mindthegap/pull/259
    • build(deps): bump github/codeql-action from 1 to 2 by @dependabot in https://github.com/mesosphere/mindthegap/pull/267
    • ci: Add dependabot automation to auto-approve and enable auto-merge by @jimmidyson in https://github.com/mesosphere/mindthegap/pull/269
    • build(deps): bump google-github-actions/release-please-action from 3.6 to 3.7 by @dependabot in https://github.com/mesosphere/mindthegap/pull/280
    • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.0 to 1.18.7 by @dependabot in https://github.com/mesosphere/mindthegap/pull/285
    • build(deps): bump github.com/containers/image/v5 from 5.23.0 to 5.23.1 by @dependabot in https://github.com/mesosphere/mindthegap/pull/270
    • build(deps): bump k8s.io/apimachinery from 0.25.4 to 0.26.0 by @dependabot in https://github.com/mesosphere/mindthegap/pull/278
    • build(deps): bump helm.sh/helm/v3 from 3.10.2 to 3.10.3 by @dependabot in https://github.com/mesosphere/mindthegap/pull/281
    • build(deps): bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.6.1 by @dependabot in https://github.com/mesosphere/mindthegap/pull/282
    • build(deps): bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.17.20 to 1.17.25 by @dependabot in https://github.com/mesosphere/mindthegap/pull/284
    • build: Upgrade tools by @jimmidyson in https://github.com/mesosphere/mindthegap/pull/286

    Full Changelog: https://github.com/mesosphere/mindthegap/compare/v1.3.1...v1.4.0


    This PR was generated with Release Please. See documentation.

📔 Journal helps you manage multiple journals with ease from the comfort of your terminal, web browser or API client.
📔 Journal helps you manage multiple journals with ease from the comfort of your terminal, web browser or API client.

Journal helps you manage multiple journals with ease from the comfort of your terminal, web browser or API client. You can import/export journals as horcruxes and set simple customizations for layout, theme, and keybindings.

Sep 14, 2022
Oct 1, 2021
Online Preview Word,Excel,PPT,PDF,Image by Golang
Online Preview Word,Excel,PPT,PDF,Image by Golang

Online Preview Word,Excel,PPT,PDF,Image by Golang.基于Golang的在线预览Word,Excel,PPT,PDF,图片.

Dec 26, 2022
A simple RESTful API for storing and retrieving data during MRI image reconstructions

MRD Storage Server The MRD Storage Server provides a simple RESTful API for storing and retrieving data during MRI image reconstructions. It supports:

Mar 18, 2022
Converts an image file into various WebP images to use with img srcset

go-websizer Converts an image file into various WebP images to use with img srcset. Install $ go get github.com/pipe01/go-websizer Usage Usage of go-

Oct 7, 2021
This is a small API that provides basic REST endpoints to shorten a URL
This is a small API that provides basic REST endpoints to shorten a URL

This is a small API that provides basic REST endpoints to shorten a URL, get information about the URL, update the URL, and get statistics on most accessed URLs.

Nov 16, 2021
Package GoEagi provides some fundamental functionalities that work with Asterisk's EAGI

GoEagi Package GoEagi provides some fundamental functionalities that work with Asterisk's EAGI. It has the following features: Audio Streaming Google'

Dec 16, 2022
☝️ air-force air-force 是一个机场订阅连接测速工具

air-force air-force 是一个机场订阅连接测速工具,通过 tcp ping 并发测试各个节点速度,最终给出速度最快的节点。

Oct 28, 2021
dots is CLI tool to build, version and publish config file bundles.

dots-cli dots is CLI tool to build, version and publish config file bundles. TODO (shared): Writing comprehensive documentation Designing landing page

Aug 24, 2022
Berylbit PoW chain using Ethash, EPI-Burn and geth. The chain will be using bot congestion flashbot bundles through nodes

Berylbit PoW chain using Ethash, EPI-Burn and geth. The chain will be using bot congestion flashbot bundles through nodes. Soon, We will work towards

Jun 30, 2022
Image - This repository holds supplementary Go image librariesThis repository holds supplementary Go image libraries

Go Images This repository holds supplementary Go image libraries. Download/Insta

Jan 5, 2022
fiber-air-docker development environment boilerplate, examples
fiber-air-docker development environment boilerplate, examples

ON AIR! fiber-air-docker development environment boilerplate TODO on air 세션 준비 fiber 유저 준비 gorm 외래키 준비 아키텍쳐 참고 https://blog.puppyloper.com/menus/Golan

Sep 14, 2022
Template/Starter code for Go application with Gin, System Tray, Gorm, Air, Swagger, JWT

gin-systray-starter Starter code for Go application with Gin, System Tray, Gorm, Air, Swagger, JWT systray, https://github.com/getlantern/systray gin,

Sep 16, 2022
A simple crawler sending Telegram notification when Refurbished Macbook Air / Pro in stock.

A simple crawler sending Telegram notification when Refurbished Macbook Air / Pro in stock.

Jan 30, 2022
Checks sneaker availability, currently Asos/JD/Nike + Air Force 1 '07 44 only

airforce Setup Requires a .env file with Twilio credentials and phone numbers. SID=AC0ae6d46612d3a0c3d49977485652f665 TOKEN=7ff8d07a7d0fc9e6432a14ad84

Dec 12, 2021
Utilcanvas is a package which provides some utilities to interface with the Canvas LMS Api.

Utilcanvas Utilcanvas is a package which provides some utilities to interface with the Canvas LMS Api. Example usage c := utilcanvas.NewClient("https:

Dec 21, 2022
golden provides utilities for golden file tests.

golden provides utilities for golden file tests.

Dec 27, 2022
This repository provides various utilities to help you build your NFT collection!

Attention! A powerful computer may be required! About This repository provides various utilities to help you build your NFT collection: Generate image

Nov 4, 2022
Go-path - A helper package that provides utilities for parsing and using ipfs paths

go-path is a helper package that provides utilities for parsing and using ipfs paths

Jan 18, 2022
Go module that provides primitive functional programming utilities.

Functional Functional provides a small set of pure functions that are common in functional programming languages, such as Reduce, Map, Filter, etc. Wi

Jun 12, 2022