Sync upstream (98b37c7d) — needs conflict resolution - #71
Sync upstream (98b37c7d) — needs conflict resolution#71cloud-api-adaptor-upstream-sync[bot] wants to merge 182 commits into
Conversation
Move the cluster provisioning to BYOM to remove the dependency on the deprecated Docker provider. Signed-off-by: Amulyam24 <amulmek1@in.ibm.com>
This commit adds extensive unit test coverage for the libvirt cloud provider, while preserving all existing tests from the main branch. New unit tests added (using mocks): - TestGetGuestForArchType (6 subtests) - TestLookupMachine (5 subtests) - TestGetCanonicalMachineName (7 subtests) - TestCreateCloudInitISO (3 subtests) - TestGetLaunchSecurityTypeInvalidURI - TestCreateDomainXMLs390xWithMocks (mock-based unit test) - TestCreateDomainXMLaarch64WithMocks (mock-based unit test) - TestCreateDomainXMLx86_64 (3 subtests) - TestCreateDomainXML (3 subtests) - TestVerifyDomainXMLIOMMU (4 subtests) - Combined TestCreateDomainXMLs390x and TestCreateDomainXMLaarch64 into TestCreateDomainXMLArchitectures - Combined TestCreateDomainXMLs390xWithMocks and TestCreateDomainXMLaarch64WithMocks into TestCreateDomainXMLArchitecturesWithMocks - Improves code maintainability and reduces duplication Signed-off-by: Chathurya Adapa <Adapa.Chathurya1@ibm.com> Assisted-by: IBM Bob <noreply@ibm.com>
- Refactor TestCloudInit to use verifyISOContents helper and tabular format - Combined TestCreateCloudInitWithEmptyData, TestCreateCloudInitWithLargeData, TestCreateCloudInitWithSpecialCharacters, and TestCreateCloudInitVerifyVendorData into TestCreateCloudInitVariations - Add TestCreateCloudInitErrorHandling for boundary condition testing - All tests now use verifyISOContents helper for consistent ISO validation - Improves code maintainability and reduces duplication Signed-off-by: Chathurya Adapa <Adapa.Chathurya1@ibm.com> Assisted-by: IBM Bob <noreply@ibm.com>
- Add tests for Manager.ParseCmd() flag registration - Add tests for Manager configuration with values - Add tests for Manager.LoadEnv() and GetConfig() - Add tests for Manager.NewProvider() with valid/invalid configs - Add tests for default constants validation - Add tests for launch security, firmware, and data directory configuration - Covers all Manager initialization and configuration scenarios Signed-off-by: Chathurya Adapa <Adapa.Chathurya1@ibm.com> Assisted-by: IBM Bob <noreply@ibm.com>
Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.7.29 to 1.7.32. - [Release notes](https://github.com/containerd/containerd/releases) - [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md) - [Commits](containerd/containerd@v1.7.29...v1.7.32) --- updated-dependencies: - dependency-name: github.com/containerd/containerd dependency-version: 1.7.32 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Now that agent-ctl tags based on sha, we can switch to use the main kata-containers version, rather than having a separate one. Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Bump components to match the kata 3.31.0 release Assisted-by: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Update to pick up the 3.31.0 release Assisted-by: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Pin kata-deploy to the 3.31.0 version in prep of the 0.21.0 release Assisted-by: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Bumps [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) from 0.5.3 to 0.5.6. - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](zizmorcore/zizmor-action@b1d7e1f...5f14fd0) --- updated-dependencies: - dependency-name: zizmorcore/zizmor-action dependency-version: 0.5.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bump the go module to remediate CVEs: - GO-2026-5026 - GO-2026-4883 Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Bump the go module to remediate CVEs: - GO-2026-5013 - GO-2026-5017 - GO-2026-5018 - GO-2026-5019 - GO-2026-5020 Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Update the helm charts with the latest image of CAA Signed-off-by: stevenhorsman <steven@uk.ibm.com>
But the appVersion to 0.21 to match the release and bump the version in peer-pods, peerpod-ctrl and webhook Signed-off-by: stevenhorsman <steven@uk.ibm.com>
The `kubectl apply` of the cert-manager manifest occasionally fails with an etcd timeout: ``` Error from server: error when creating ".../cert-manager.yaml": etcdserver: request timed out. ``` The manifest creates a large batch of resources (6 CRDs, RBAC, deployments, webhook configs) in a single apply, and individual writes can occasionally exceed the API server's request timeout under transient cluster load. Wrap the apply in a retry loop (3 attempts, 10s backoff). `kubectl apply` is idempotent, so retrying after a partial failure simply creates the missing resources without disturbing the ones already applied. On the observed failing run, everything except (likely) the last webhook config got created, and the retry will fill in the gap. For `kubectl wait`, the Endpoints object isn't created by the cert-manager manifest directly. It's created by the kube-controller-manager's endpoints controller after the Service is created and once matching pods exist. Right after `kubectl apply` returns, there's a brief window where the Service exists but its Endpoints object hasn't been populated yet. The apply just finished, so `kubectl wait` raced ahead of the controller. Assisted-by: IBM Bob Signed-off-by: Hyounggyu Choi <Hyounggyu.Choi@ibm.com>
The podvm-ubuntu-mkosi job calls podvm_mkosi_ubuntu.yaml which requires artifact-metadata: write permission for the actions/attest@v4.1.0 action to write attestation metadata. Without this permission, the workflow fails with "The nested job 'build-image' is requesting 'artifact-metadata: write', but is only allowed 'artifact-metadata: none'." This matches the permission already granted to the podvm-mkosi job on line 84. Signed-off-by: stevenhorsman <steven@uk.ibm.com> Generated-By: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Also added MKOSI_VERSION environment variable to image build steps in both podvm_mkosi.yaml and podvm_mkosi_ubuntu.yaml workflows to ensure the mkosi version from versions.yaml is explicitly passed to make commands, maintaining consistency with the binaries build step. Signed-off-by: stevenhorsman <steven@uk.ibm.com> Generated-By: IBM Bob
The image target was calling mkosi with '--image system' argument which is not supported in mkosi v26, causing build failures with: "mkosi: error: argument verb: invalid Verb value: 'system'" This argument was a remnant from mkosi v22 that wasn't removed during the v26 upgrade. The image-debug and image-sftp targets were already correct, so this change aligns the image target with them. Fixes the s390x production image builds. Signed-off-by: stevenhorsman <steven@uk.ibm.com> Generated-By: IBM Bob
The cross-build script was failing on ARM64 native builds because it compared ARCH=arm64 with uname -m=aarch64, which didn't match, causing it to incorrectly attempt cross-compilation and fail with: "E: Unable to locate package qemu-system-aarch64" Added replacement pattern to handle this Co-authored-by: Magnus Kulke <magnuskulke@microsoft.com> Signed-off-by: stevenhorsman <steven@uk.ibm.com> Generated-By: IBM Bob
Implement IRSA support for the AWS provider to enable workload identity authentication on EKS, eliminating the need for static credentials stored in Kubernetes secrets. NewEC2Client now supports three authentication methods: 1. Static credentials (AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY) 2. Shared AWS profile (AWS_PROFILE, currently, only non-containerized CAA binary execution is supported) 3. Default credential chain (for IRSA support) The default credential chain automatically supports IRSA via AWS_WEB_IDENTITY_TOKEN_FILE and AWS_ROLE_ARN Entrypoint validation updated to accept either: - Both AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY (static credentials) - AWS_WEB_IDENTITY_TOKEN_FILE and AWS_ROLE_ARN (IRSA) Fixes: confidential-containers#3027 Signed-off-by: Snir Schreiber <ssheribe@redhat.com> Assisted-by: Claude AI
Add unit tests to verify the two authentication paths in NewEC2Client: 1. Static credentials (AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY) 2. Default credential chain (IRSA, IMDS, environment variables, etc.) Tests cover: - Static credentials path with both access key and secret key - Default credential chain path when no static credentials provided - Partial credentials (only access key) falls through to default chain Assisted-by: Claude AI Signed-off-by: Snir Schreiber <ssheribe@redhat.com>
Added comprehensive guide for configuring IRSA with cloud-api-adaptor and peerpod-ctrl on Amazon EKS. The guide covers: - IAM trust policy configuration - Kubernetes service account annotations - Deployment configuration examples - Troubleshooting steps Assisted-by: Claude AI Signed-off-by: Snir Schreiber <ssheribe@redhat.com>
It looks like when the arm "support" for podvm builds was added, it wasn't updated to use the native arm runner, so update this, for simpler workflows Signed-off-by: stevenhorsman <steven@uk.ibm.com>
In case we want to support cross-compilation in future e.g. for local dev, fix up the logic. The cross-build script was using architecture names directly as QEMU package names, but Debian/Ubuntu package names don't always match: - x86_64 → qemu-system-x86 (not qemu-system-x86_64) - aarch64 → qemu-system-arm (not qemu-system-aarch64) - s390x → qemu-system-s390x (matches) Added architecture-to-package mapping for Debian/Ubuntu systems to use correct package names. Package names verified against Ubuntu 24.04. Signed-off-by: stevenhorsman <steven@uk.ibm.com> Assisted-by: IBM Bob
As we are doing a 0.21.1 release, we should update the charts to match this version. Signed-off-by: stevenhorsman <steven@uk.ibm.com>
This reverts commit a1633eb. Signed-off-by: stevenhorsman <steven@uk.ibm.com>
This reverts commit 02bb592. Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Update the CITATION.cff for the 0.21.1 release Signed-off-by: stevenhorsman <steven@uk.ibm.com>
debian:trixie-slim ships without CA certificates. The dev build got them transitively via openssh-client, but the release build only installed iptables, causing Go TLS verification to fail against ec2.<region>.amazonaws.com with x509: certificate signed by unknown authority. Signed-off-by: Pradipta Banerjee <pradipta.banerjee@gmail.com>
Bumps [actions/stale](https://github.com/actions/stale) from 10.2.0 to 10.3.0. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](actions/stale@b5d41d4...eb5cf3a) --- updated-dependencies: - dependency-name: actions/stale dependency-version: 10.3.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) from 0.5.7 to 0.6.0. - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](zizmorcore/zizmor-action@192e21d...6599ee8) --- updated-dependencies: - dependency-name: zizmorcore/zizmor-action dependency-version: 0.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Upgrade google.golang.org/grpc from v1.79.3 to v1.82.1 in src/webhook and from v1.81.1 to v1.82.1 in src/cloud-providers to fix CVE GO-2026-6061 (vulnerabilities in the xDS RBAC authorization engine and HTTP/2 transport server implementation). Generated-By: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Bumps [github.com/google/cel-go](https://github.com/google/cel-go) from 0.26.0 to 0.29.0. - [Release notes](https://github.com/google/cel-go/releases) - [Commits](cel-expr/cel-go@v0.26.0...v0.29.0) --- updated-dependencies: - dependency-name: github.com/google/cel-go dependency-version: 0.29.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
This reverts commit 60e2f0d. Signed-off-by: stevenhorsman <steven@uk.ibm.com>
This reverts commit 6a8a61a. Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Update the CITATION.cff for the 0.22.0 release Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Debugging the smoke tests can be tricky when different ones are cancelled depending on the order of failure, so just disable fail-fast, so that they both run to completion and give better results. Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Updated mkosi configuration and documentation to support Ubuntu 26.04 (Resolute) as the base image for podvm builds. This enables building podvm images on the latest Ubuntu LTS release. Generated-By: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
mkosi v26 removed automatic kernel module inclusion via KernelModulesInitrdInclude. While Ubuntu 24.04 worked with mkosi v26's defaults, Ubuntu 26.04 requires explicit module configuration. Without explicit dm-verity module inclusion, the initrd lacks the dm-verity kernel module, causing boot failures with "unknown target type" errors when systemd-veritysetup tries to set up the root device. Changes: - Add KernelInitrdModules=default and dm-verity to initrd config - Add systemd-cryptsetup package to base initrd (provides generators) - Add cryptsetup and systemd-cryptsetup to Ubuntu initrd - Increase root-verity partition from 64M to 72M for Ubuntu 26.04 The partition size increase is needed because Ubuntu 26.04's verity data (66.1M) exceeds the previous 64M limit. Signed-off-by: stevenhorsman <steven@uk.ibm.com> Generated-By: IBM Bob
The systemd-cryptsetup and tpm2-tools packages are not available in Ubuntu repositories for the s390x architecture. Rather than trying to exclude packages (which mkosi doesn't support cleanly), restructure the configuration to use architecture-specific package lists. Move systemd-cryptsetup and tpm2-tools from base and Ubuntu configs into a new ubuntu-amd64.conf file that only applies to x86-64 builds. Signed-off-by: stevenhorsman <steven@uk.ibm.com> Generated-By: IBM Bob
The scratch-space setup requires dm-crypt, dm-mod and dm-bufio kernel modules for LUKS encryption. Generated-By: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Add libseccomp2 package to Ubuntu system and initrd configurations to fix systemd boot hangs on Ubuntu 24.04 hosts. Ubuntu 26.04 guests running on Ubuntu 24.04 hosts experience libseccomp warnings during boot, causing systemd to hang when parsing service files with SystemCallFilter= directives. Generated-by: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
- Increase guest RAM from 1024 MiB to 2048 MiB. The Ubuntu 26.04
debug image embeds a ~66 MiB initramfs in the UKI. Under the
i440FX QEMU machine type used by virt-install on ubuntu-24.04
runners, 1024 MiB is insufficient for the kernel to decompress
the initramfs during early boot, resulting in:
Initramfs unpacking failed: write error
This prevented dm-verity from loading its kernel module and left
the VM stuck waiting for /dev/mapper/root. The scratch-space test
was most affected because it runs second (after the basic test),
when host memory pressure is higher. 2048 MiB gives sufficient
headroom; GitHub Actions ubuntu-24.04 runners have 16 GiB RAM.
Generated-by: IBM Bob
Signed-off-by: stevenhorsman <steven@uk.ibm.com>
As part of the migration from Ubuntu 24.04 to 26.04, systemd-repart is now required as an explicit package dependency. The scratch-space feature relies on systemd-repart to create the trusted_store partition (defined in usr/lib/repart.d/30-scratch.conf) in the free disk space added at boot. Without the package, the binary and service unit are absent from the image, so no partition is ever created, /dev/disk/by-label/trusted_store never appears, and scratch-storage.service fails with "Device for label trusted_store not found". In Ubuntu 24.04 images this was provided transitively; in 26.04 it must be listed explicitly. Generated-by: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
qemu-img resize +1G leaves the GPT backup header at the wrong position. systemd-repart reads the GPT to find unpartitioned free space; with a corrupt backup header it sees only 3.5 KiB free (instead of 1 GiB) and skips partition creation entirely. The trusted_store partition (/dev/disk/by-label/trusted_store) never appears and scratch-storage.service fails. Fix: after the resize, expose the qcow2 image via qemu-nbd and run sgdisk -e to relocate the GPT backup header to the new end of disk. Add gdisk to the CI test runner apt-get install step to satisfy the sgdisk dependency (qemu-nbd is already provided by qemu-utils). Generated-by: IBM Bob Signed-off-by: stevenhorsman <steven@uk.ibm.com>
GetCloudProvisioner only reads from the TOML properties file, so the CAA_IMAGE env var was never reaching the provisioner. Write it to libvirt.properties alongside container_runtime. Signed-off-by: Thejas N <thn@redhat.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@9c091bb...3d3c42e) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/attest](https://github.com/actions/attest) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/actions/attest/releases) - [Changelog](https://github.com/actions/attest/blob/main/RELEASE.md) - [Commits](actions/attest@59d8942...f7c74d2) --- updated-dependencies: - dependency-name: actions/attest dependency-version: 4.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
With recent PR confidential-containers#3221, remove the redundant check for the kata-runtime label in byom provisioner. Signed-off-by: Amulyam24 <amulmek1@in.ibm.com>
The env var PUSH could be confusing as if set, it suppresses local export of binaries rather than pushing to a registry, contrary to what the name implies. Rename to EXPORT_BINARIES with inverted logic. Signed-off-by: Amulyam24 <amulmek1@in.ibm.com>
The byom binaries image uses the podvm binaries image as the base. As we do not push the podvm binaries image or have it available locally during the mkosi builds, build it explicitly for byom binaries image. Signed-off-by: Amulyam24 <amulmek1@in.ibm.com>
During a CAA DaemonSet rolling update, the old pod's Shutdown() removes the kata.peerpods.io/vm extended resource from the node after the new pod has already re-advertised it. This leaves the node with no peer pod capacity even when no workloads are running, breaking pod scheduling until CAA is manually restarted. Introduce a kata.peerpods.io/caa-owner annotation on the node that records the UID of the pod that last advertised the resource. RemoveExtendedResources reads this annotation and skips removal when a newer instance has already taken ownership. Inject POD_UID via the downward API and add a node-annotation-patcher ClusterRole to permit metadata patches. Add e2e test TestLibvirtExtendedResourcesAfterRollout to verify the resource is preserved and ownership is handed off after a rollout, and that a peer pod can be scheduled immediately after. Signed-off-by: Thejas N <thn@redhat.com> Assisted-by: Claude Sonnet <noreply@anthropic.com>
After a CAA restart, the new process cannot bind the probe port because the old socket lingers in TIME_WAIT. Set SO_REUSEPORT so the new process can bind immediately. The previous implementation also leaked the probe goroutine on context cancellation because http.ListenAndServe ignores cancellation. Use a context-aware listener so the probe server stops with the main process. Signed-off-by: Thejas N <thn@redhat.com> Assisted-by: Claude Sonnet <noreply@anthropic.com>
During a rolling update, the old and new CAA pods share the same hostPath (/run/peerpod/). When the old pod's ttrpc.Shutdown() calls listener.Close(), it unlinks the socket file that the new pod already created, leaving the shim unable to connect. Set SetUnlinkOnClose(false) on the Unix listener so the old pod's listener.Close() does not automatically remove the socket inode. Add an explicit owner-checked cleanup that runs after ttrpc shuts down: the socket is removed only when this instance still holds the kata.peerpods.io/caa-owner annotation, which means no newer pod has taken over. This ensures the socket is cleaned up on uninstall (no new pod, annotation still ours) but left intact during a rolling restart (new pod has already updated the annotation). Signed-off-by: Thejas N <thn@redhat.com> Assisted-by: Claude Sonnet <noreply@anthropic.com>
The TEE platform input is wired through Makefiles and Dockerfiles to pull the correct guest-component artifacts. Currently we default to 'none' in the Dockerfile, for Azure CVMs we need to set it to 'az-cvm-vtpm' to pull the correct attestation-agent binary. We add the tee-platform to the image name. If tee-platform is 'none' we omit a suffix on the oci image. Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
The image is not generic really, we still need a discrete image per TEE, and the distro is an implementation detail. Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
We've been not requiring this one for a while and the unit currently fails b/c we do not have /kata-containes in the ubuntu podvm tree. Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
We use ttyS0, mkosi --autologin will only apply that to other tty's. Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
Signed-off-by: Ruslan Timofieiev <rtim0905@gmail.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 98b37c7. Configure here.
| groups: | ||
| codeql: | ||
| patterns: | ||
| - "github/codeql-action*" |
There was a problem hiding this comment.
Stale Dependabot CSI path
Medium Severity
dependabot.yml still lists src/csi-wrapper under gomod directories, but this sync removes the CSI wrapper tree and related workflows. Dependabot will keep targeting a path that no longer exists, so updates for that module fail or are skipped while the rest of the cleanup treats CSI as gone.
Reviewed by Cursor Bugbot for commit 98b37c7. Configure here.
| with: | ||
| git_ref: ${{ github.ref }} | ||
| image_tag: ${{ github.event.release.tag_name }} | ||
| arch: amd64 |
There was a problem hiding this comment.
Wrong BYOM release dependency
Medium Severity
podvm-byom-binaries declares needs: podvm-images with a comment about podvm-binaries-ubuntu images, but podvm_publish now only builds mkosi images and the BYOM workflow builds and pushes its own binaries. A mkosi failure can block an unrelated BYOM binaries release, and the dependency no longer matches what the job requires.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 98b37c7. Configure here.
| REGISTRY: ${{ inputs.registry != '' && inputs.registry || 'quay.io/confidential-containers' }} | ||
| PODVM_TAG: ${{ inputs.image_tag || github.sha }} | ||
| ARCH: ${{ inputs.arch }} | ||
| PUSH: "true" |
There was a problem hiding this comment.
BYOM publish quay-only login
Medium Severity
The new BYOM binaries publish workflow always logs into quay.io and defaults REGISTRY to quay.io/confidential-containers, while sibling publish workflows select ghcr.io for forks. Calling it with a non-Quay registry input authenticates to the wrong registry, so push can fail or publish to an unintended location.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 98b37c7. Configure here.


Upstream sync — manual merge needed
Upstream has new commits to merge into
cohere, but there are conflicts.Upstream HEAD:
98b37c7dHow to resolve
The sync branch already contains the upstream commits (it points at
origin/main). To make it mergeable intocohere,merge cohere into the sync branch and resolve conflicts there:
Your IDE will show the native merge conflict UI with accept-theirs /
accept-ours / accept-both options for each conflict. Once the push
succeeds, the PR will become mergeable.
Review checklist
Note
High Risk
Large CI and release-path changes (removed Azure/docker e2e, podvm directory move, dropped CSI/Packer jobs) can break fork-specific automation and shift which images e2e tests consume until conflicts and local patches are reconciled.
Overview
This brings upstream
main(~98b37c7d) into the fork: a large CI and packaging realignment, not a single feature.PodVM build path — Workflows and docs now build from
src/cloud-api-adaptor/podvminstead ofpodvm-mkosi. Callablepodvm_builder/podvm_binaries/podvm/podvm_mkosi_ubuntuworkflows are removed;podvm_mkosi.yamlgainstee-platform, concurrency, and new ORAS image naming. Azure-specific podvm image build, release, and full Azure e2e workflows are deleted. Release addspodvm_byom_binaries_publish.yamland wires BYOM binary publish after podvm images.E2E matrix —
e2e_run_allno longer builds legacy podvm chains or Ubuntu mkosi jobs; AWS and libvirt depend on mkosi amd64/s390x only. Docker e2e and thetest_e2e_dockerPR label path are removed. BYOM can omit a prebuilt podvm image and builds podvm/BYOM images in-job.build.yamldrops the csi-wrapper job; publish/release no longer push CSI wrapper images.Tooling & hygiene —
govulncheckuses.govulncheck-ignore.tomlandhack/govulncheck-filter.py; packer-check is removed fromMakefile/ lint. Dev CAA builds drop the docker builtin provider. CITATION.cff bumps to 0.22.0. Widespread GitHub Actions version bumps (checkoutv7,setup-gov6.5, Docker/CodeQL/zizmor,allow-unsafe-pr-checkouton several workflows).Docs — README/release docs de-emphasize CSI wrapper and Packer podvm; Azure dev notes point at
podvmnotpodvm-mkosi.Resolve merge conflicts with
coherecarefully: any fork-specific Azure, docker, CSI, orpodvm-mkosiautomation may be obsolete or need re-homing on the unifiedpodvmMakefile targets.Reviewed by Cursor Bugbot for commit 98b37c7. Bugbot is set up for automated code reviews on this repo. Configure here.