Skip to content

fix(container): update image kopiur ( 0.10.6 → 0.10.7 ) - #3457

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/kopiur-0.x
Open

fix(container): update image kopiur ( 0.10.6 → 0.10.7 )#3457
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/kopiur-0.x

Conversation

@renovate

@renovate renovate Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
kopiur patch 0.10.60.10.7

Release Notes

home-operations/kopiur (kopiur)

v0.10.7

Compare Source

Features
  • per-repository mover-Job concurrency limits + jitter hardening (#​437) (1529aa9)

Configuration

📅 Schedule: (in timezone America/Chicago)

  • 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

| datasource | package                               | from   | to     |
| ---------- | ------------------------------------- | ------ | ------ |
| docker     | ghcr.io/home-operations/charts/kopiur | 0.10.6 | 0.10.7 |


Signed-off-by: Roger Rumao <rogerrum@users.noreply.github.com>
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Path: infrastructure/kopiur
Version: 0.10.6 -> 0.10.7

--- /tmp/tmp.FnwqybMqtk	2026-09-02 22:31:03.963559074 +0000
+++ /tmp/tmp.eEDPCCBNUI	2026-09-02 22:31:04.484540071 +0000
@@ -399,7 +399,7 @@
           type: RuntimeDefault
       containers:
         - name: controller
-          image: ghcr.io/home-operations/kopiur-controller@sha256:93f10fd1be0350dac34b80e5a84953548ca7ee3ef04fe36de9179954563bb65e
+          image: ghcr.io/home-operations/kopiur-controller@sha256:ce50917db136e4f19b480724d5cff7a4e1eeed9431e737aeb7808b2693dcefe5
           imagePullPolicy: IfNotPresent
           args:
             - --leader-elect=true
@@ -419,8 +419,8 @@
               value: "release-name-kopiur"
             # The mover image the controller stamps into every Backup/Restore Job.
             - name: KOPIUR_MOVER_IMAGE
-              value: "ghcr.io/home-operations/kopiur-mover@sha256:2c53c0d2f4bf647eb36aebd033f\
-                014e798ec2bb2c08a48bcf3a2dedf21d8a3e7"
+              value: "ghcr.io/home-operations/kopiur-mover@sha256:b6efbb3dedb88a87bc01f089f5f\
+                5e61dc3b306a4003a604c3bf01b1d3c335033"
             - name: KOPIUR_MOVER_PULL_POLICY
               value: "IfNotPresent"
             # The mover PATCHes Backup/Restore .status, so its Job pods run as a
@@ -451,6 +451,13 @@
             # opt-in backstop.
             - name: KOPIUR_MAX_CONCURRENT_DELETE_JOBS
               value: "0"
+            # Cluster-wide cap on concurrently running POOLED mover Jobs
+            # (backups, restores, replication sources) across every
+            # repository — the backstop beneath each repository's own
+            # spec.concurrency.maxConcurrentJobs. 0 = uncapped (default);
+            # restores are always admitted and never queued.
+            - name: KOPIUR_MAX_CONCURRENT_JOBS
+              value: "0"
             # Per-controller cap on concurrent reconciles. Bounds apiserver
             # load and fds during re-list storms/outages; 0 = unbounded (the
             # pre-fix behavior; not recommended).
@@ -545,7 +552,7 @@
           type: RuntimeDefault
       containers:
         - name: webhook
-          image: ghcr.io/home-operations/kopiur-webhook@sha256:b5fdc270d826e329a3a47b5e96a29e412b83332fe5176d1f63c349ffeabb955b
+          image: ghcr.io/home-operations/kopiur-webhook@sha256:788171c81579946053479fb81c7762564471761c3bdf45721dc6a0eacebfc6fa
           imagePullPolicy: IfNotPresent
           env:
             - name: RUST_LOG
@@ -1148,6 +1155,51 @@
               KopiurRepositoryBreakerOpen / the repository's BackendReachable
               condition). They will launch automatically once the repository
               recovers."
+        - alert: KopiurSnapshotWaitingForSlot
+          # A backup queued behind its repository's mover-Job concurrency cap
+          # (spec.concurrency.maxConcurrentJobs, or the cluster-wide
+          # KOPIUR_MAX_CONCURRENT_JOBS backstop) for 30m.
+          #
+          # Deliberately a SEPARATE alert from KopiurSnapshotsGated, on a separate
+          # gauge: a gated Snapshot is waiting on a BROKEN repository, a queued one
+          # is waiting on a WORKING repository that is merely busy. Same symptom
+          # (Pending, no Job), opposite remediation — one is "fix the backend", the
+          # other is "raise the cap or spread the schedules" — so folding them into
+          # one alert would send every reader down the wrong path half the time.
+          #
+          # PER-SERIES, not summed: kopiur_snapshot_waiting_for_slot is one series
+          # per queued CR, and 30m is a long time for ONE run to sit in line — the
+          # thing worth paging on is a queue that is not draining, which a summed
+          # depth cannot distinguish from a healthy queue with fast turnover. A run
+          # that gets its slot removes its own series (the gauge drains to absence,
+          # never to 0), so `for: 30m` means "this specific run never moved".
+          #
+          # max-by for scrape-target-overlap identity hygiene, matching
+          # KopiurRepositoryBreakerOpen; a deposed replica's stale sample is evicted
+          # by scrape staleness (~5m) long before the 30m `for:` completes.
+          #
+          # NOTE `namespace` here is the SNAPSHOT's namespace, not the repository's
+          # — the repository is named by repository_kind/repository.
+          expr: max by (repository_kind, repository, namespace, name)
+            (kopiur_snapshot_waiting_for_slot) == 1
+          for: 30m
+          labels:
+            severity: warning
+          annotations:
+            summary: "Backup {{ $labels.namespace }}/{{ $labels.name }} has been queued for
+              a mover slot for 30m"
+            description: "Snapshot {{ $labels.namespace }}/{{ $labels.name }} has been
+              waiting 30m for a slot in {{ $labels.repository_kind }} {{
+              $labels.repository }}'s mover-Job pool. The repository is working
+              — it is at its concurrency cap — and the run will start on its own
+              when a slot frees; nothing is lost. If this persists, the cap is
+              below what the schedules pointed at that repository need: raise
+              spec.concurrency.maxConcurrentJobs (or the cluster-wide
+              maxConcurrentJobs), spread the schedules with
+              scheduleDefaults.jitter, or check for a wedged mover Job that is
+              never terminating. Beware that while runs queue, a schedule with
+              startingDeadlineSeconds set may be permanently SKIPPING slots
+              (SkipExpiredSlot events)."
 
 ---
 # Source: kopiur/charts/kopiur/templates/servicemonitor.tpl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants