Commit Graph
4186 Commits
Author SHA1 Message Date
Tõnis TiigiandGitHub 86381f1f38 Merge pull request #3721 from tonistiigi/imagetools-oci-layout
imagetools: add oci-layout support
2026-03-13 17:34:13 -07:00
Tonis Tiigi 863398c789 imagetools: pass referrer filter opts to oci-layout path
FetchReferrers accepted FetchReferrersOpt but dropped them
when resolving OCI layout referrers. Forward the options and
apply ArtifactTypes filtering so callers can narrow results
consistently for both registry and local layout sources.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-12 23:15:01 -07:00
Tonis Tiigi 6eb48d9c8c imagetools: fix oci-layout index update when blob exists
When pushing to an OCI layout where the top-level descriptor
blob already existed, pushOCILayout returned early without
updating index.json or writing pending referrers. Restructure
the control flow so the blob-exists case skips only the write
but still updates the index and flushes referrers.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-12 22:54:35 -07:00
Tonis Tiigi 3e5c05cb1f imagetools: support oci-layout referrers
Handle OCI layout referrers via subject-annotated index entries and add
integration coverage for copying signed attestations through oci-layout.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-12 22:45:01 -07:00
Tonis Tiigi 9894189361 imagetools: support oci-layout refs
Add oci-layout:// source and target support to imagetools create and
inspect while keeping merge, filter, and referrer logic shared.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-12 22:45:01 -07:00
Tonis Tiigi 71edf28d8e tests: add negative checks for imagetools signature coverage
Verify imagetools copies signatures only for attestation manifests and
does not copy image-manifest signatures or unsupported referrers.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-12 22:45:01 -07:00
Tõnis TiigiandGitHub f14c1ae88e Merge pull request #3725 from crazy-max/update-crazy-max-github
ci: update crazy-max/.github reusable workflows to latest
2026-03-12 14:49:17 -07:00
Tõnis TiigiandGitHub 18c3dc273c Merge pull request #3724 from crazy-max/tests-multi-node
ci: run integration tests with the remote multi-node worker
2026-03-12 11:37:37 -07:00
CrazyMaxandGitHub 08152f55be Merge pull request #3727 from jsternberg/ci-netbsd-remove
ci: remove test-bsd-unit workflow
2026-03-12 17:39:08 +01:00
Jonathan A. Sternberg 8e29ab9493 ci: remove test-bsd-unit workflow
This workflow doesn't provide much value. It mostly fails on temporary
errors regarding vagrant and doesn't provide a very useful signal that
the build is broken.

We perform cross-compilation and ensure `buildx` still compiles on
different bsd variants. That should be enough to make sure we don't
inadvertently break something.

Closes #3711.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2026-03-12 10:36:36 -05:00
CrazyMax 8d14268b6f ci: update crazy-max/.github reusable workflows to latest
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-12 14:11:23 +01:00
CrazyMax 176e497922 tests: skip remote multi-node history cases
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-12 11:58:39 +01:00
CrazyMax 766592b2d1 tests: add remote multi-node worker
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-12 11:37:08 +01:00
Tõnis TiigiandGitHub 63ebbebdcf Merge pull request #3715 from tonistiigi/imagetools-test-coverage
tests: improve imagetools create integration test coverage
2026-03-11 09:09:22 -07:00
Jonathan A. Sternberg 724afbb867 dap: fix skipped breakpoint when the breakpoint and the entrypoint were the same
We erroneously skipped a breakpoint when that breakpoint was the same as
the entrypoint and we did not use stop on entry. This is because we only
started evaluating breakpoints after the first step on the entrypoint
instead of at the entrypoint.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2026-03-11 10:52:50 -05:00
CrazyMax 4643e50bd3 history: deduplicate node clients during export
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-11 16:24:54 +01:00
CrazyMaxandGitHub c4b5d6766e Merge pull request #3697 from crazy-max/build-arg-proxy
build: make proxy build-arg override check case-insensitive
2026-03-11 09:28:17 +01:00
Tonis Tiigi 3281dce28c tests: cover imagetools dry-run
Add dry-run assertions to imagetools merge and platform filter
integration tests to verify emitted manifest JSON before push.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-10 21:11:08 -07:00
Tonis Tiigi d84544176d tests: cover imagetools file input
Add integration coverage for imagetools create --file and verify a
descriptor read from disk resolves to the expected copied manifest.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-10 21:05:57 -07:00
Tonis Tiigi b90d59a2e9 tests: cover imagetools append
Add integration coverage for imagetools create --append and verify the
target is rewritten as a two-platform manifest list.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-10 21:01:48 -07:00
Tonis Tiigi 0d82d2b115 tests: cover imagetools platform filtering
Add integration coverage for imagetools create --platform on an attested
multi-platform image and verify only the matching attestation remains.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-10 20:53:04 -07:00
Tonis Tiigi 0a5fccb7be tests: cover imagetools signature referrers
Add integration coverage for copying attestation referrers with fake
sigstore signature manifests on a multi-platform source image.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-10 20:43:35 -07:00
Tonis Tiigi 5b2a4ccd2d tests: add single arch attestation fallback case to test
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-10 20:29:22 -07:00
Tonis Tiigi b43520b4ca tests: add imagetools test for merged create
With and without attestations.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-10 20:25:57 -07:00
Tonis Tiigi 2682d345fa tests: tighten imagetools copy assertions
Verify copied index content keeps the same digest and descriptor metadata.
Add function comments to clarify each imagetools integration test case.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-10 19:24:59 -07:00
Tõnis TiigiandGitHub b046c3934c Merge pull request #3712 from jsternberg/dap-skip-context-without-source
dap: skip the load build context step when it doesn't have an associated source line
2026-03-10 18:39:57 -07:00
Tõnis TiigiandGitHub 9e31c0faf1 Merge pull request #3710 from jsternberg/dap-tests-race-condition
dap: fix the race condition in the dap unit tests
2026-03-10 18:24:55 -07:00
Tõnis TiigiandGitHub 1e2b0688db Merge pull request #3709 from jsternberg/dap-loaded-source-path
dap: properly map source paths to client side paths
2026-03-10 18:08:19 -07:00
Tõnis TiigiandGitHub f09e2292fb Merge pull request #3704 from jsternberg/dap-case-insensitive-breakpoints
dap: detect breakpoints for files when the case differs
2026-03-10 18:01:49 -07:00
Jonathan A. Sternberg 3e4bd229ab dap: skip the load build context step when it doesn't have an associated source line
Skip the load build context step when it doesn't have an associated
source line. This caused an extra branch to be created in an otherwise
pretty straightforward dockerfile where stepping in on a copy
instruction that used the context would stay on the same line because it
"stepped into" the context loading rather than being treated the same as
step next.

This resulted in some bad and confusing ergonomics with the cursor
position that were a bit confusing and unexpected.

There might be more areas to try and prune but the most common one, a
single branch instruction that doesn't have a location, now gets skipped
which is the exact thing that was generated for loading the context.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2026-03-10 12:35:13 -05:00
Jonathan A. Sternberg ca9df87014 dap: fix the race condition in the dap unit tests
The context used for serving the dap server was being canceled too early
because it used defer which would initiate at the end of the function
while every other cleanup function used `t.Cleanup` which executes in
its own goroutine.

One possible solution was to move the cancel to the cleanup, but the
context being passed to serve and start doesn't make sense because if it
ever does get canceled, it'll likely cause a similar race condition with
`Stop`.

This removes the context from the methods that were causing this issue
in favor of just relying on the caller calling `Stop` when they are done
with the adapter and server.

This seems to have only affected tests and I don't believe it affected
the actual dap command.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2026-03-10 12:03:35 -05:00
Jonathan A. Sternberg 4f3de79c13 dap: properly map source paths to client side paths
Properly map the source paths from the metadata in the solve to the
client side paths. The source path returns is relative to the context
that gets uploaded which is usually a subdirectory. The original code
noticed this when mapping the paths but made the invalid assumption that
the dockerfile would always be in the context path so it combined the
dockerfile name with the context path.

It is possible for the dockerfile to be in a subdirectory of the
context. In which case, we computed the paths incorrectly.

This modifies DAP to instead use the `DockerfileMappingDst` and
`DockerfileMappingSrc` which are special included variables to the
inputs that get filled in during the build for the purpose of mapping
the source path to the client side path.

Tests have also been added for this functionality to ensure it doesn't
break again. This should work with both absolute and relative paths
although absolute paths should probably be preferred for usage just
because they're less likely to result in weird things happening.

The sources are also normalized to always convert the source filenames
to absolute paths and DAP itself will accept relative paths but will
only ever communicate in absolute paths. When you set a breakpoint, it
will convert it to an absolute path and reference it in that way rather
than a relative path.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2026-03-10 09:17:42 -05:00
Tõnis TiigiandGitHub a5f49f0c17 Merge pull request #3696 from tonistiigi/bake-linked-target-fix
build: parallelize forced reference evaluation
2026-03-09 16:44:38 -07:00
CrazyMaxandGitHub c423bc738b Merge pull request #3706 from tonistiigi/windows-test-timings-bump
store: increase test timeouts for CI reliability
2026-03-09 11:51:07 +01:00
CrazyMaxandGitHub 2fcd416c24 Merge pull request #3705 from docker/dependabot/github_actions/docker/bake-action-7
build(deps): bump docker/bake-action from 6 to 7
2026-03-09 11:50:40 +01:00
Akihiro SudaandGitHub 9e632b4596 Merge pull request #3707 from tonistiigi/k8s-trim
kubernetes: trim client-go dependency surface
2026-03-09 04:13:38 +09:00
Tonis Tiigi 7c4703614d vendor: k8s v0.35.2
Drops the gogo-proto XXX_* methods.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-06 17:32:09 -08:00
Tonis Tiigi 6124ad9da4 kubernetes: lazily initialize kubeclient scheme
Use sync.OnceValue to initialize the kubeclient scheme, codec factory,
and parameter codec as a single lazy-loaded bundle.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-06 16:55:48 -08:00
Tonis Tiigi 5a7f7c286f kubernetes: trim client-go dependency surface
Replace the full generated clientset and global Kubernetes scheme
with a small local REST client layer and minimal scheme registration.

This keeps the existing kubeconfig/auth and remote exec behavior while
significantly reducing the linked and vendored Kubernetes dependency set.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-06 16:44:18 -08:00
Tonis Tiigi 6bbd0abf0f store: increase test timeouts for CI reliability
Bump timing thresholds in TestNodeLocking to avoid
flaky failures on slow CI runners (e.g. Windows).

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-06 15:06:06 -08:00
Jonathan A. Sternberg b521a083ba dap: detect breakpoints for files when the case differs
Case insensitive filesystems can cause breakpoints to not be seen or
verified. This is particularly true on Windows where the drive letter
can also participate in the filepath.

Change the detection logic for a breakpoint to be case insensitive. At
the same time, report the name of the source as part of the breakpoint
so that the editor can be told which casing we're expecting to be used.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2026-03-06 14:01:32 -06:00
dependabot[bot]andGitHub a00f4d6e08 build(deps): bump docker/bake-action from 6 to 7
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 6 to 7.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 18:33:12 +00:00
CrazyMaxandGitHub bb481888f9 Merge pull request #3693 from docker/dependabot/github_actions/docker/setup-qemu-action-4
build(deps): bump docker/setup-qemu-action from 3 to 4
2026-03-06 11:57:23 +01:00
CrazyMaxandGitHub ff5a387834 Merge pull request #3684 from thaJeztah/bump_moby
vendor: docker/cli v29.3.0, moby/api v1.54.0, moby/client v0.3.0
2026-03-06 11:23:00 +01:00
dependabot[bot]andGitHub 35492177d9 build(deps): bump docker/setup-qemu-action from 3 to 4
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 10:21:42 +00:00
CrazyMaxandGitHub 3ef2ebb13c Merge pull request #3692 from docker/dependabot/github_actions/docker/login-action-4
build(deps): bump docker/login-action from 3 to 4
2026-03-06 11:21:42 +01:00
CrazyMaxandGitHub 7e865417cd Merge pull request #3699 from tonistiigi/dockerfile-compose-v5.1.0
Dockerfile: update compose to 5.1.0
2026-03-06 11:21:11 +01:00
CrazyMaxandGitHub 6574d1bafa Merge pull request #3698 from docker/dependabot/github_actions/docker/setup-buildx-action-4
build(deps): bump docker/setup-buildx-action from 3 to 4
2026-03-06 11:20:42 +01:00
Tonis Tiigi 5478703490 tests: test updates after compose update
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-05 17:58:56 -08:00
Tonis Tiigi b6f1f3a9bf Dockerfile: update compose to 5.1.0
Fixes the possible "file already closed" error.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-05 15:41:04 -08:00