Skip to content

ci: build the e2e image once and hand it to every leg - #442

Merged
onedr0p merged 1 commit into
mainfrom
ci/build-e2e-image-once
Jul 29, 2026
Merged

ci: build the e2e image once and hand it to every leg#442
onedr0p merged 1 commit into
mainfrom
ci/build-e2e-image-once

Conversation

@onedr0p

@onedr0p onedr0p commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Ports the e2e half of home-operations/miroir#371 to tuppr.

Every leg rebuilt the controller image itself: four builds racing one GHA cache scope, with an ordering hack (matrix.leg == '3cp-0w') so only one leg wrote the scope back. A new e2e-image job builds it once, exports it with docker save, and hands it to the matrix as an artifact. Each leg loads it into its own runner-local registry while its VMs boot, so the nodes still pull over loopback and every leg now installs identical bytes.

The leg-splitting half of the miroir change does not apply here: tuppr's legs are already one cluster shape each, with no doubled-up suite to separate.

  • PUSH_IMAGE moves to the workflow env, since both jobs now use it; CONTROLLER_IMAGE stays on the legs.
  • Legs drop buildx, the build step, and the Go version lookup that only fed it.
  • Export uses shell: bash for the pipefail the implicit bash -e default lacks, or a failed save would pass the step on gzip's exit status and hand every leg a truncated tarball.
  • The zizmor cache-poisoning note is rewritten for the job that now does the building, and test/e2e-qemu/README.md for how CI gets its image.

Verified locally: actionlint and zizmor clean under the same invocation the shared workflow-lint action uses, and the save/gzip/load/push sequence smoke-tested against a loopback registry:3.

Every leg rebuilt the controller image itself, which meant four builds
racing one GHA cache scope and an ordering hack where only the 3cp-0w leg
wrote the scope back. A new e2e-image job builds it once, exports it with
docker save, and hands it to the matrix as an artifact. Each leg loads it
into its own runner-local registry while its VMs boot, so the nodes still
pull over loopback and every leg now installs identical bytes.

Export uses shell: bash for the pipefail the implicit `bash -e` default
lacks, or a failed save would pass the step on gzip's exit status and hand
every leg a truncated tarball.

Signed-off-by: Devin Buhl <devin@buhl.casa>
@greptile-apps

greptile-apps Bot commented Jul 29, 2026

Copy link
Copy Markdown

Greptile Summary

The PR centralizes the end-to-end controller image build and distributes the resulting image artifact to every test leg.

  • Adds an e2e-image job that builds, compresses, and uploads the controller image once.
  • Updates each go-e2e leg to download, load, and push the identical image into its runner-local registry.
  • Moves the shared push image name to workflow-level environment configuration and updates status-job dependencies.
  • Updates Zizmor configuration comments and end-to-end documentation to describe the new image flow.

Confidence Score: 5/5

The PR appears safe to merge with no actionable defects identified in the centralized image handoff.

The producer and consumer jobs use matching artifact paths and image tags, each test leg loads the image before running tests, and failures in the new prerequisite remain visible to the aggregate status job.

T-Rex T-Rex Logs

What T-Rex did

  • I examined the before-run log to locate why the parent workflow failed due to the absent producer job.
  • I opened the after-run log and confirmed that all image-handoff assertions pass.
  • I reviewed the Docker runtime availability log to identify the exact runtime blocker affecting the handoff.
  • I checked the Python script that defines the image handoff workflow to verify the end-to-end handoff sequence, including e2e-image.tar.gz, the local push to localhost:5000/tuppr:e2e, and the registry.e2e/tuppr:e2e supplied to the test.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
.github/workflows/ci.yaml The new build-once artifact handoff preserves registry naming, job ordering, image availability, and aggregate status propagation without an identified defect.
.github/zizmor.yml Updates the existing cache-poisoning exemption rationale to accurately describe the centralized image-build job.
test/e2e-qemu/README.md Documents the new CI image build, artifact distribution, and runner-local registry workflow.
test/e2e-qemu/test.sh Updates comments to reflect that CI now loads a prebuilt image while the cluster boots, without changing runtime behavior.

Reviews (1): Last reviewed commit: "ci: build the e2e image once and hand it..." | Re-trigger Greptile

@onedr0p
onedr0p enabled auto-merge July 29, 2026 18:02
@onedr0p
onedr0p added this pull request to the merge queue Jul 29, 2026
Merged via the queue into main with commit 562e9ac Jul 29, 2026
14 checks passed
@onedr0p
onedr0p deleted the ci/build-e2e-image-once branch July 29, 2026 18:29
gabrielcosi pushed a commit to gabrielcosi/home-ops that referenced this pull request Jul 29, 2026
…4.1 ➔ 0.4.3) (#186)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/charts/tuppr](https://github.com/home-operations/tuppr) | patch | `0.4.1` → `0.4.3` |

---

### Release Notes

<details>
<summary>home-operations/tuppr (ghcr.io/home-operations/charts/tuppr)</summary>

### [`v0.4.3`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#043-2026-07-29)

[Compare Source](home-operations/tuppr@0.4.1...0.4.3)

##### Features

- pre-pull the Talos installer image before starting a run ([#&#8203;445](home-operations/tuppr#445)) ([224074f](home-operations/tuppr@224074f))

##### Bug Fixes

- **go:** update module github.com/netresearch/go-cron (v0.15.0 → v0.15.1) ([#&#8203;441](home-operations/tuppr#441)) ([dcb45da](home-operations/tuppr@dcb45da))

##### Continuous Integration

- build the e2e image once and hand it to every leg ([#&#8203;442](home-operations/tuppr#442)) ([562e9ac](home-operations/tuppr@562e9ac))
- **github-action:** Update action jdx/mise-action (v4.2.2 → v4.2.3) ([#&#8203;437](home-operations/tuppr#437)) ([0e13632](home-operations/tuppr@0e13632))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.11.32 → 0.12.0) ([#&#8203;440](home-operations/tuppr#440)) ([caf8759](home-operations/tuppr@caf8759))
- standardize release-please changelog sections ([#&#8203;438](home-operations/tuppr#438)) ([0d719dd](home-operations/tuppr@0d719dd))

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Berlin)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4wLjAiLCJ1cGRhdGVkSW5WZXIiOiI0NC4wLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvcGF0Y2giXX0=-->

Reviewed-on: https://git.xcd.dev/gabrielcosi/home-ops/pulls/186
ajgon pushed a commit to deedee-ops/home-ops that referenced this pull request Jul 30, 2026
…4.1 ➔ 0.4.3) (#474)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/charts/tuppr](https://github.com/home-operations/tuppr) | patch | `0.4.1` → `0.4.3` |

---

### Release Notes

<details>
<summary>home-operations/tuppr (ghcr.io/home-operations/charts/tuppr)</summary>

### [`v0.4.3`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#043-2026-07-29)

[Compare Source](home-operations/tuppr@0.4.1...0.4.3)

##### Features

- pre-pull the Talos installer image before starting a run ([#&#8203;445](home-operations/tuppr#445)) ([224074f](home-operations/tuppr@224074f))

##### Bug Fixes

- **go:** update module github.com/netresearch/go-cron (v0.15.0 → v0.15.1) ([#&#8203;441](home-operations/tuppr#441)) ([dcb45da](home-operations/tuppr@dcb45da))

##### Continuous Integration

- build the e2e image once and hand it to every leg ([#&#8203;442](home-operations/tuppr#442)) ([562e9ac](home-operations/tuppr@562e9ac))
- **github-action:** Update action jdx/mise-action (v4.2.2 → v4.2.3) ([#&#8203;437](home-operations/tuppr#437)) ([0e13632](home-operations/tuppr@0e13632))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.11.32 → 0.12.0) ([#&#8203;440](home-operations/tuppr#440)) ([caf8759](home-operations/tuppr@caf8759))
- standardize release-please changelog sections ([#&#8203;438](home-operations/tuppr#438)) ([0d719dd](home-operations/tuppr@0d719dd))

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Warsaw)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yLjEiLCJ1cGRhdGVkSW5WZXIiOiI0NC4yLjEiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->

Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/474
VizzleTF added a commit to VizzleTF/homelab that referenced this pull request Aug 2, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [argo-cd](https://github.com/argoproj/argo-helm) | patch | `10.2.1` → `10.2.2` |
| [cert-manager](https://cert-manager.io) ([source](https://github.com/cert-manager/cert-manager)) | patch | `v1.21.0` → `v1.21.1` |
| [keda](https://github.com/kedacore/keda) | patch | `2.20.1` → `2.20.2` |
| [plugin-barman-cloud](https://cloudnative-pg.io) ([source](https://github.com/cloudnative-pg/charts)) | patch | `0.7.0` → `0.7.1` |
| [rclone/rclone](https://github.com/rclone/rclone) | minor | `1.74` → `1.75` |
| [renovate](https://github.com/renovatebot/renovate) ([source](https://github.com/renovatebot/helm-charts)) | minor | `46.249.0` → `46.251.0` |
| robusta | minor | `0.45.0` → `0.46.0` |
| [tuppr](https://github.com/home-operations/tuppr) | patch | `0.4.1` → `0.4.6` |

---

### Release Notes

<details>
<summary>argoproj/argo-helm (argo-cd)</summary>

### [`v10.2.2`](https://github.com/argoproj/argo-helm/releases/tag/argo-cd-10.2.2)

[Compare Source](argoproj/argo-helm@argo-cd-10.2.1...argo-cd-10.2.2)

A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes.

#### What's Changed

- chore(deps): bump actions/labeler from 6.2.0 to 7.0.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;3980](argoproj/argo-helm#3980)
- chore(deps): bump the dependencies group with 2 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;3979](argoproj/argo-helm#3979)
- chore(deps): update renovatebot/github-action action to v46.1.21 by [@&#8203;argoproj-renovate](https://github.com/argoproj-renovate)\[bot] in [#&#8203;3981](argoproj/argo-helm#3981)
- chore(deps): update renovatebot/github-action action to v46.2.0 by [@&#8203;argoproj-renovate](https://github.com/argoproj-renovate)\[bot] in [#&#8203;3988](argoproj/argo-helm#3988)
- chore(argo-cd): Update dependency argoproj/argo-cd to v3.4.6 by [@&#8203;argoproj-renovate](https://github.com/argoproj-renovate)\[bot] in [#&#8203;3992](argoproj/argo-helm#3992)

**Full Changelog**: <argoproj/argo-helm@argo-workflows-1.0.23...argo-cd-10.2.2>

</details>

<details>
<summary>cert-manager/cert-manager (cert-manager)</summary>

### [`v1.21.1`](https://github.com/cert-manager/cert-manager/releases/tag/v1.21.1)

[Compare Source](cert-manager/cert-manager@v1.21.0...v1.21.1)

cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.

v1.21.1 fixes a controller panic for Certificates with `spec.renewal.policy: Disabled`, a regression in 1.21.0 which caused log spam and dropped Secret informer events, Issuers and ClusterIssuers getting stuck at `Ready=False` (`InvalidSolver`) when a referenced ACME DNS-01 solver Secret is created after the Issuer, and the commented Gateway API example in the Helm chart values. It also updates several dependencies to fix reported security vulnerabilities.

All users should upgrade.

#### Changes by Kind

##### Bug or Regression

- Avoid controller panic if a Certificate sets spec.renewal.policy=Disabled ([#&#8203;9038](cert-manager/cert-manager#9038), [@&#8203;sklirg](https://github.com/sklirg))
- Fix Issuer/ClusterIssuer stuck at Ready=False/InvalidSolver after a missing ACME DNS-01 solver Secret is created ([#&#8203;9083](cert-manager/cert-manager#9083), [@&#8203;SebTardif](https://github.com/SebTardif))
- Fix log spam and dropped Secret informer events for non-cert-manager Secrets, caused by a generics regression introduced in 1.21.0. ([#&#8203;9037](cert-manager/cert-manager#9037), [@&#8203;wallrj-cyberark](https://github.com/wallrj-cyberark))
- Fixed the commented Gateway API config example in the Helm chart values to use `gatewayAPI.enabled` instead of the invalid `gatewayAPI.enable`. ([#&#8203;9012](cert-manager/cert-manager#9012), [@&#8203;mateenali66](https://github.com/mateenali66))

##### Other (Cleanup or Flake)

- Bump `golang.org/x/text` to v0.40.0 to fix a reported security vulnerability ([#&#8203;9039](cert-manager/cert-manager#9039), [@&#8203;wallrj-cyberark](https://github.com/wallrj-cyberark))
- Bump `google.golang.org/grpc` to v1.82.1 to fix a reported security vulnerability ([#&#8203;9063](cert-manager/cert-manager#9063))
- Bump `github.com/google/cel-go` to v0.29.0 to fix a reported security vulnerability ([#&#8203;9072](cert-manager/cert-manager#9072))
- Bump `go.opentelemetry.io/otel` to v1.44.0 to fix a reported security vulnerability ([#&#8203;9073](cert-manager/cert-manager#9073))
- Update distroless base images ([#&#8203;9000](cert-manager/cert-manager#9000), [#&#8203;9025](cert-manager/cert-manager#9025))

</details>

<details>
<summary>kedacore/keda (keda)</summary>

### [`v2.20.2`](https://github.com/kedacore/keda/releases/tag/v2.20.2)

[Compare Source](kedacore/keda@v2.20.1...v2.20.2)

### Release KEDA v2.20.2 🚀

⚠️⚠️⚠️⚠️ ⚠️ Please read upgrade notes if you are upgrading from version < 2.20.0: <https://github.com/kedacore/keda/releases/tag/v2.20.0> ⚠️⚠️⚠️⚠️⚠️

##### Improvements

- **General**: Introduce a dedicated `HPAActive` condition on `ScaledObject` mirroring the HPA's own `ScalingActive` status, so transient HPA metric gaps no longer flip the `Ready` condition to `False` ([#&#8203;7914](kedacore/keda#7914))

##### Fixes

- **General**: Fix concurrent map writes panic in the shared root CA `CertPool` ([#&#8203;7910](kedacore/keda#7910))
- **General**: Fix nil pointer dereference in AWS Secret Manager `TriggerAuthentication` when `awsSecretManager.credentials` is omitted and no `awsSecretManager.podIdentity` is set ([#&#8203;7927](kedacore/keda#7927))
- **General**: Fix nil pointer dereference in `customScalingStrategy.GetEffectiveMaxScale` when `customScalingQueueLengthDeduction` is omitted; the optional field is now treated as zero deduction instead of panicking ([#&#8203;7798](kedacore/keda#7798))
- **General**: Fix nil pointer dereference in `GetCurrentReplicas` when a Deployment/StatefulSet/ReplicaSet is returned from the informer cache with an undefaulted `spec.replicas`; a nil value is now treated as the Kubernetes default of 1 instead of panicking ([#&#8203;7863](kedacore/keda#7863))
- **General**: Fix `ScaledJob` CRD validation to include "default" as a valid value for `scalingStrategy.strategy` ([#&#8203;7855](kedacore/keda#7855))
- **General**: Guard `GetCurrentReplicas` against nil `Status.ScaleTargetGVKR` to prevent operator panics under the cache race documented in ([#&#8203;4389](kedacore/keda#4389)) / ([#&#8203;4955](kedacore/keda#4955))
- **General**: Restore core `""` API group in events RBAC so that client-go's event broadcaster can write legacy events ([#&#8203;7922](kedacore/keda#7922))
- **General**: Restore gRPC reconnect backoff in the metrics service client; an unset `Backoff` in `WithConnectParams` disabled backoff and caused a zero-delay reconnect loop that flooded logs when keda-operator was unreachable ([#&#8203;7856](kedacore/keda#7856))
- **General**: Share HTTP transports across scalers to reuse connection pools and avoid re-dial storms at high ScaledObject counts ([#&#8203;7789](kedacore/keda#7789))
- **General**: Treat negative external metric values as zero to prevent incorrect HPA scaling ([#&#8203;7880](kedacore/keda#7880))
- **Azure Blob Storage Scaler**: Fix `globPattern` never matching when written in path-style with a leading `/`, since blob names never have one ([#&#8203;6492](kedacore/keda#6492))
- **MongoDB Scaler**: Disconnect the client when the initial `Ping` fails so the background topology-monitoring connections opened by `mongo.Connect` are not leaked ([#&#8203;5612](kedacore/keda#5612))

#### New Contributors

- [@&#8203;Goutham-Annem](https://github.com/Goutham-Annem) made their first contribution in [#&#8203;7858](kedacore/keda#7858)
- [@&#8203;simplyaduck](https://github.com/simplyaduck) made their first contribution in [#&#8203;7857](kedacore/keda#7857)
- [@&#8203;itxaiohanglover](https://github.com/itxaiohanglover) made their first contribution in [#&#8203;7871](kedacore/keda#7871)
- [@&#8203;orfeldman-evolinq](https://github.com/orfeldman-evolinq) made their first contribution in [#&#8203;7904](kedacore/keda#7904)
- [@&#8203;vishnu97770](https://github.com/vishnu97770) made their first contribution in [#&#8203;7928](kedacore/keda#7928)
- [@&#8203;sobol-sudo](https://github.com/sobol-sudo) made their first contribution in [#&#8203;7932](kedacore/keda#7932)

**Full Changelog**: <kedacore/keda@v2.20.1...v2.20.2>

</details>

<details>
<summary>cloudnative-pg/charts (plugin-barman-cloud)</summary>

### [`v0.7.1`](https://github.com/cloudnative-pg/charts/releases/tag/plugin-barman-cloud-v0.7.1)

[Compare Source](cloudnative-pg/charts@plugin-barman-cloud-v0.7.0...plugin-barman-cloud-v0.7.1)

Helm Chart for CloudNativePG's CNPG-I backup plugin using Barman Cloud

#### What's Changed

- fix: respect namespaceOverride for PrometheusRule generation by [@&#8203;tamcore](https://github.com/tamcore) in [#&#8203;562](cloudnative-pg/charts#562)
- Release plugin-barman-cloud-v0.7.1 by [@&#8203;cnpg-bot](https://github.com/cnpg-bot) in [#&#8203;976](cloudnative-pg/charts#976)

#### New Contributors

- [@&#8203;tamcore](https://github.com/tamcore) made their first contribution in [#&#8203;562](cloudnative-pg/charts#562)

**Full Changelog**: <cloudnative-pg/charts@cluster-v0.8.1...plugin-barman-cloud-v0.7.1>

</details>

<details>
<summary>renovatebot/helm-charts (renovate)</summary>

### [`v46.251.0`](https://github.com/renovatebot/helm-charts/releases/tag/renovate-46.251.0)

[Compare Source](renovatebot/helm-charts@renovate-46.250.0...renovate-46.251.0)

Universal dependency update tool that fits into your workflows.

#### What's Changed

- fix: update ghcr.io/renovatebot/renovate docker tag to v43.288.0 by [@&#8203;renovate](https://github.com/renovate)\[bot] in [#&#8203;4582](renovatebot/helm-charts#4582)

**Full Changelog**: <renovatebot/helm-charts@renovate-46.250.0...renovate-46.251.0>

### [`v46.250.0`](https://github.com/renovatebot/helm-charts/releases/tag/renovate-46.250.0)

[Compare Source](renovatebot/helm-charts@renovate-46.249.1...renovate-46.250.0)

Universal dependency update tool that fits into your workflows.

#### What's Changed

- fix: update ghcr.io/renovatebot/renovate docker tag to v43.287.0 by [@&#8203;renovate](https://github.com/renovate)\[bot] in [#&#8203;4581](renovatebot/helm-charts#4581)

**Full Changelog**: <renovatebot/helm-charts@renovate-46.249.1...renovate-46.250.0>

### [`v46.249.1`](https://github.com/renovatebot/helm-charts/releases/tag/renovate-46.249.1)

[Compare Source](renovatebot/helm-charts@renovate-46.249.0...renovate-46.249.1)

Universal dependency update tool that fits into your workflows.

#### What's Changed

- fix: update ghcr.io/renovatebot/renovate docker tag to v43.286.1 by [@&#8203;renovate](https://github.com/renovate)\[bot] in [#&#8203;4580](renovatebot/helm-charts#4580)

**Full Changelog**: <renovatebot/helm-charts@renovate-46.249.0...renovate-46.249.1>

</details>

<details>
<summary>home-operations/tuppr (tuppr)</summary>

### [`v0.4.6`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#046-2026-08-01)

[Compare Source](home-operations/tuppr@0.4.5...0.4.6)

##### Bug Fixes

- **status:** keep conditions and history truthful ([#&#8203;466](home-operations/tuppr#466)) ([2f85931](home-operations/tuppr@2f85931))

##### Miscellaneous Chores

- **release-please:** standardize the release pull request title pattern ([#&#8203;464](home-operations/tuppr#464)) ([14e1955](home-operations/tuppr@14e1955))

### [`v0.4.5`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#045-2026-08-01)

[Compare Source](home-operations/tuppr@0.4.4...0.4.5)

##### Features

- **prepull:** fail stalled pulls fast, surface and back off failure streaks ([#&#8203;462](home-operations/tuppr#462)) ([c15b955](home-operations/tuppr@c15b955))

##### Miscellaneous Chores

- **deps:** lock file maintenance (pep621) ([#&#8203;461](home-operations/tuppr#461)) ([097c160](home-operations/tuppr@097c160))

### [`v0.4.4`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#044-2026-07-31)

[Compare Source](home-operations/tuppr@0.4.3...0.4.4)

##### Features

- **go:** update module google.golang.org/grpc (v1.82.1 → v1.83.0) ([#&#8203;446](home-operations/tuppr#446)) ([f9419a6](home-operations/tuppr@f9419a6))
- support Talos 1.14 upgrades end to end ([#&#8203;453](home-operations/tuppr#453)) ([087388d](home-operations/tuppr@087388d))

##### Bug Fixes

- **ci:** key the lint cache on the toolchain and drop the prefix fallback ([#&#8203;448](home-operations/tuppr#448)) ([ef37fdb](home-operations/tuppr@ef37fdb))
- **go:** update module github.com/google/go-containerregistry (v0.21.7 → v0.21.8) ([#&#8203;454](home-operations/tuppr#454)) ([17ef959](home-operations/tuppr@17ef959))

##### Continuous Integration

- **e2e:** adopt talosctl-cluster-action v0.1.6 ([#&#8203;452](home-operations/tuppr#452)) ([7fd237f](home-operations/tuppr@7fd237f))
- **github-action:** Update action actions/stale (v10.4.0 → v11.0.0) ([#&#8203;450](home-operations/tuppr#450)) ([70d3717](home-operations/tuppr@70d3717))
- **github-action:** Update action docker/github-builder (v1.14.0 → v1.15.0) ([#&#8203;447](home-operations/tuppr#447)) ([10b33dd](home-operations/tuppr@10b33dd))
- **github-action:** Update action docker/login-action (v4.5.1 → v4.5.2) ([#&#8203;451](home-operations/tuppr#451)) ([fe223f7](home-operations/tuppr@fe223f7))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.12.0 → 0.12.1) ([#&#8203;456](home-operations/tuppr#456)) ([5c02a0d](home-operations/tuppr@5c02a0d))

### [`v0.4.3`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#043-2026-07-29)

[Compare Source](home-operations/tuppr@0.4.1...0.4.3)

##### Features

- pre-pull the Talos installer image before starting a run ([#&#8203;445](home-operations/tuppr#445)) ([224074f](home-operations/tuppr@224074f))

##### Bug Fixes

- **go:** update module github.com/netresearch/go-cron (v0.15.0 → v0.15.1) ([#&#8203;441](home-operations/tuppr#441)) ([dcb45da](home-operations/tuppr@dcb45da))

##### Continuous Integration

- build the e2e image once and hand it to every leg ([#&#8203;442](home-operations/tuppr#442)) ([562e9ac](home-operations/tuppr@562e9ac))
- **github-action:** Update action jdx/mise-action (v4.2.2 → v4.2.3) ([#&#8203;437](home-operations/tuppr#437)) ([0e13632](home-operations/tuppr@0e13632))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.11.32 → 0.12.0) ([#&#8203;440](home-operations/tuppr#440)) ([caf8759](home-operations/tuppr@caf8759))
- standardize release-please changelog sections ([#&#8203;438](home-operations/tuppr#438)) ([0d719dd](home-operations/tuppr@0d719dd))

</details>

---

### Configuration

📅 **Schedule**: (in timezone UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODYuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhdXRvbWVyZ2UiLCJkZXBlbmRlbmNpZXMiXX0=-->
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Aug 2, 2026
…4.1 ➔ 0.4.6) (#1765)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/charts/tuppr](https://github.com/home-operations/tuppr) | patch | `0.4.1` → `0.4.6` |

---

### Release Notes

<details>
<summary>home-operations/tuppr (ghcr.io/home-operations/charts/tuppr)</summary>

### [`v0.4.6`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#046-2026-08-01)

[Compare Source](home-operations/tuppr@0.4.5...0.4.6)

##### Bug Fixes

- **status:** keep conditions and history truthful ([#&#8203;466](home-operations/tuppr#466)) ([2f85931](home-operations/tuppr@2f85931))

##### Miscellaneous Chores

- **release-please:** standardize the release pull request title pattern ([#&#8203;464](home-operations/tuppr#464)) ([14e1955](home-operations/tuppr@14e1955))

### [`v0.4.5`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#045-2026-08-01)

[Compare Source](home-operations/tuppr@0.4.4...0.4.5)

##### Features

- **prepull:** fail stalled pulls fast, surface and back off failure streaks ([#&#8203;462](home-operations/tuppr#462)) ([c15b955](home-operations/tuppr@c15b955))

##### Miscellaneous Chores

- **deps:** lock file maintenance (pep621) ([#&#8203;461](home-operations/tuppr#461)) ([097c160](home-operations/tuppr@097c160))

### [`v0.4.4`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#044-2026-07-31)

[Compare Source](home-operations/tuppr@0.4.3...0.4.4)

##### Features

- **go:** update module google.golang.org/grpc (v1.82.1 → v1.83.0) ([#&#8203;446](home-operations/tuppr#446)) ([f9419a6](home-operations/tuppr@f9419a6))
- support Talos 1.14 upgrades end to end ([#&#8203;453](home-operations/tuppr#453)) ([087388d](home-operations/tuppr@087388d))

##### Bug Fixes

- **ci:** key the lint cache on the toolchain and drop the prefix fallback ([#&#8203;448](home-operations/tuppr#448)) ([ef37fdb](home-operations/tuppr@ef37fdb))
- **go:** update module github.com/google/go-containerregistry (v0.21.7 → v0.21.8) ([#&#8203;454](home-operations/tuppr#454)) ([17ef959](home-operations/tuppr@17ef959))

##### Continuous Integration

- **e2e:** adopt talosctl-cluster-action v0.1.6 ([#&#8203;452](home-operations/tuppr#452)) ([7fd237f](home-operations/tuppr@7fd237f))
- **github-action:** Update action actions/stale (v10.4.0 → v11.0.0) ([#&#8203;450](home-operations/tuppr#450)) ([70d3717](home-operations/tuppr@70d3717))
- **github-action:** Update action docker/github-builder (v1.14.0 → v1.15.0) ([#&#8203;447](home-operations/tuppr#447)) ([10b33dd](home-operations/tuppr@10b33dd))
- **github-action:** Update action docker/login-action (v4.5.1 → v4.5.2) ([#&#8203;451](home-operations/tuppr#451)) ([fe223f7](home-operations/tuppr@fe223f7))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.12.0 → 0.12.1) ([#&#8203;456](home-operations/tuppr#456)) ([5c02a0d](home-operations/tuppr@5c02a0d))

### [`v0.4.3`](https://github.com/home-operations/tuppr/blob/HEAD/CHANGELOG.md#043-2026-07-29)

[Compare Source](home-operations/tuppr@0.4.1...0.4.3)

##### Features

- pre-pull the Talos installer image before starting a run ([#&#8203;445](home-operations/tuppr#445)) ([224074f](home-operations/tuppr@224074f))

##### Bug Fixes

- **go:** update module github.com/netresearch/go-cron (v0.15.0 → v0.15.1) ([#&#8203;441](home-operations/tuppr#441)) ([dcb45da](home-operations/tuppr@dcb45da))

##### Continuous Integration

- build the e2e image once and hand it to every leg ([#&#8203;442](home-operations/tuppr#442)) ([562e9ac](home-operations/tuppr@562e9ac))
- **github-action:** Update action jdx/mise-action (v4.2.2 → v4.2.3) ([#&#8203;437](home-operations/tuppr#437)) ([0e13632](home-operations/tuppr@0e13632))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.11.32 → 0.12.0) ([#&#8203;440](home-operations/tuppr#440)) ([caf8759](home-operations/tuppr@caf8759))
- standardize release-please changelog sections ([#&#8203;438](home-operations/tuppr#438)) ([0d719dd](home-operations/tuppr@0d719dd))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/1765
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant