Skip to content

feat(oci/spegel): update 0.6.0 ➼ 0.7.4 - #5525

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

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

Conversation

@tinfoild

@tinfoild tinfoild Bot commented Apr 19, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
spegel minor 0.6.0 → 0.7.4

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Configuration

📅 Schedule: (in timezone Asia/Singapore)

  • 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 has been generated by Mend Renovate.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Apr 19, 2026 •

Copy link
Copy Markdown

Deploying jjgadgets-biohazard with  Cloudflare Pages  Cloudflare Pages

Latest commit: 882c16c
Status:🚫  Build failed.

View logs

@tinfoild

tinfoild Bot commented Apr 19, 2026 •

Copy link
Copy Markdown
Contributor Author

kube/helmrelease/out00

--- HelmRelease: kube-system/spegel ConfigMap: kube-system/spegel-dashboard

+++ HelmRelease: kube-system/spegel ConfigMap: kube-system/spegel-dashboard

@@ -10,27 +10,27 @@

     app.kubernetes.io/managed-by: Helm
 data:
   spegel.json: |-
     {
       "__inputs": [
         {
-          "name": "datasource",
-          "label": "datasource",
+          "name": "DS_PROMETHEUS",
+          "label": "prometheus",
           "description": "",
           "type": "datasource",
           "pluginId": "prometheus",
           "pluginName": "Prometheus"
         }
       ],
       "__elements": {},
       "__requires": [
         {
           "type": "grafana",
           "id": "grafana",
           "name": "Grafana",
-          "version": "11.5.2"
+          "version": "12.1.0"
         },
         {
           "type": "datasource",
           "id": "prometheus",
           "name": "Prometheus",
           "version": "1.0.0"
@@ -115,22 +115,22 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "transparent",
-                    "value": null
+                    "value": 0
                   }
                 ]
               }
             },
             "overrides": []
           },
           "gridPos": {
             "h": 4,
-            "w": 3,
+            "w": 2,
             "x": 0,
             "y": 1
           },
           "id": 11,
           "options": {
             "colorMode": "none",
@@ -146,21 +146,21 @@

               "values": false
             },
             "showPercentChange": false,
             "textMode": "auto",
             "wideLayout": true
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "type": "prometheus",
-                "uid": ""
+                "uid": ""
               },
               "editorMode": "code",
-              "expr": "count(spegel_advertised_keys{instance=~\"\"})",
+              "expr": "count(spegel_advertised_content_digests{instance=~\"\"})",
               "hide": false,
               "legendFormat": "__auto",
               "range": true,
               "refId": "A"
             }
           ],
@@ -181,23 +181,23 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "transparent",
-                    "value": null
+                    "value": 0
                   }
                 ]
               }
             },
             "overrides": []
           },
           "gridPos": {
             "h": 4,
-            "w": 3,
-            "x": 3,
+            "w": 2,
+            "x": 2,
             "y": 1
           },
           "id": 29,
           "options": {
             "colorMode": "none",
             "graphMode": "area",
@@ -212,18 +212,18 @@

               "values": false
             },
             "showPercentChange": false,
             "textMode": "auto",
             "wideLayout": true
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "type": "prometheus",
-                "uid": ""
+                "uid": ""
               },
               "editorMode": "code",
               "expr": "sum(kubelet_node_name{job=\"kubelet\"})",
               "legendFormat": "__auto",
               "range": true,
               "refId": "A"
@@ -244,24 +244,24 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "transparent",
-                    "value": null
+                    "value": 0
                   }
                 ]
               },
               "unit": "none"
             },
             "overrides": []
           },
           "gridPos": {
             "h": 4,
             "w": 3,
-            "x": 6,
+            "x": 4,
             "y": 1
           },
           "id": 22,
           "options": {
             "colorMode": "none",
             "graphMode": "area",
@@ -276,18 +276,18 @@

               "values": false
             },
             "showPercentChange": false,
             "textMode": "auto",
             "wideLayout": true
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "type": "prometheus",
-                "uid": ""
+                "uid": ""
               },
               "editorMode": "code",
               "expr": "sum(kubelet_running_containers)",
               "format": "time_series",
               "intervalFactor": 2,
               "legendFormat": "{{instance}}",
@@ -312,23 +312,23 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "transparent",
-                    "value": null
+                    "value": 0
                   }
                 ]
               }
             },
             "overrides": []
           },
           "gridPos": {
             "h": 4,
-            "w": 3,
-            "x": 9,
+            "w": 2,
+            "x": 7,
             "y": 1
           },
           "id": 20,
           "options": {
             "colorMode": "none",
             "graphMode": "area",
@@ -343,28 +343,164 @@

               "values": false
             },
             "showPercentChange": false,
             "textMode": "auto",
             "wideLayout": true
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "type": "prometheus",
-                "uid": ""
+                "uid": ""
               },
               "editorMode": "code",
               "expr": "sum(kubelet_running_pods)",
               "legendFormat": "__auto",
               "range": true,
               "refId": "A"
             }
           ],
           "title": "Running Pods",
           "transparent": true,
+          "type": "stat"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": ""
+          },
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "thresholds"
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": 0
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              }
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 4,
+            "w": 2,
+            "x": 9,
+            "y": 1
+          },
+          "id": 36,
+          "options": {
+            "colorMode": "value",
+            "graphMode": "area",
+            "justifyMode": "auto",
+            "orientation": "auto",
+            "percentChangeColorMode": "standard",
+            "reduceOptions": {
+              "calcs": [
+                "lastNotNull"
+              ],
+              "fields": "",
+              "values": false
+            },
+            "showPercentChange": false,
+            "textMode": "auto",
+            "wideLayout": true
+          },
+          "pluginVersion": "12.1.0",
+          "targets": [
+            {
+              "editorMode": "code",
+              "expr": "sum(spegel_mirror_requests_total{pod=~\"\", cache=\"hit\"})",
+              "legendFormat": "__auto",
+              "range": true,
+              "refId": "A",
+              "datasource": {
+                "type": "prometheus",
+                "uid": ""
+              }
+            }
+          ],
+          "title": "Cache Hits",
+          "type": "stat"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": ""
+          },
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "thresholds"
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": 0
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              }
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 4,
+            "w": 2,
+            "x": 11,
+            "y": 1
+          },
+          "id": 37,
+          "options": {
+            "colorMode": "value",
+            "graphMode": "area",
+            "justifyMode": "auto",
+            "orientation": "auto",
+            "percentChangeColorMode": "standard",
+            "reduceOptions": {
+              "calcs": [
+                "lastNotNull"
+              ],
+              "fields": "",
+              "values": false
+            },
+            "showPercentChange": false,
+            "textMode": "auto",
+            "wideLayout": true
+          },
+          "pluginVersion": "12.1.0",
+          "targets": [
+            {
+              "editorMode": "code",
+              "expr": "sum(spegel_mirror_requests_total{pod=~\"\", cache=\"miss\"})",
+              "legendFormat": "__auto",
+              "range": true,
+              "refId": "A",
+              "datasource": {
+                "type": "prometheus",
+                "uid": ""
+              }
+            }
+          ],
+          "title": "Cache Miss",
           "type": "stat"
         },
         {
           "datasource": {
             "type": "prometheus",
             "uid": ""
@@ -379,13 +515,13 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "green",
-                    "value": null
+                    "value": 0
                   },
                   {
                     "color": "red",
                     "value": 80
                   }
                 ]
@@ -394,13 +530,13 @@

             },
             "overrides": []
           },
           "gridPos": {
             "h": 4,
             "w": 3,
-            "x": 12,
+            "x": 13,
             "y": 1
           },
           "id": 12,
           "options": {
             "colorMode": "value",
             "graphMode": "area",
@@ -415,22 +551,22 @@

               "values": false
             },
             "showPercentChange": false,
             "textMode": "auto",
             "wideLayout": true
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "type": "prometheus",
-                "uid": ""
+                "uid": ""
               },
               "editorMode": "code",
               "exemplar": false,
-              "expr": "max(rate(http_request_duration_seconds_bucket{job=\"\"}[]))",
+              "expr": "max(rate(http_request_duration_seconds_bucket{pod=~\"\"}[]))",
               "format": "table",
               "instant": true,
               "legendFormat": "__auto",
               "range": false,
               "refId": "A"
             }
@@ -453,13 +589,13 @@

               "showLineNumbers": false,
               "showMiniMap": false
             },
             "content": "<br>\n<div style=\"text-align: center;\"><a href=\"https://github.com/XenitAB/spegel\" target=\"_blank\">Spegel at GitHub</a> </div>\n\n",
             "mode": "html"
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "title": "Github link",
           "transparent": true,
           "type": "text"
         },
         {
           "collapsed": false,
@@ -494,13 +630,13 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "green",
-                    "value": null
+                    "value": 0
                   },
                   {
                     "color": "red",
                     "value": 80
                   }
                 ]
@@ -548,26 +684,26 @@

               "fields": "",
               "reducer": [
                 "sum"
               ],
               "show": false
             },
-            "frameIndex": 0,
+            "frameIndex": 1,
             "showHeader": true,
             "sortBy": []
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "type": "prometheus",
-                "uid": ""
+                "uid": ""
               },
               "editorMode": "code",
               "exemplar": false,
-              "expr": "spegel_advertised_images{job=~\"\",instance=~\"\"}",
+              "expr": "spegel_advertised_image_digests{pod=~\"\", registry=~\"\"}",
               "format": "table",
               "instant": true,
               "legendFormat": "__auto",
               "range": false,
               "refId": "A"
             },
@@ -575,13 +711,13 @@

               "datasource": {
                 "type": "prometheus",
                 "uid": ""
               },
               "editorMode": "code",
               "exemplar": false,
-              "expr": "spegel_advertised_keys{job=~\"\",instance=~\"\"} ",
+              "expr": "spegel_advertised_content_digests{pod=~\"\", registry=~\"\"} ",
               "format": "table",
               "hide": false,
               "instant": true,
               "legendFormat": "__auto",
               "range": false,
               "refId": "B"
@@ -590,15 +726,16 @@

           "transformations": [
             {
               "id": "filterFieldsByName",
               "options": {
                 "include": {
                   "names": [
-                    "pod",
                     "Value #A",
-                    "Value #B"
+                    "Value #B",
+                    "registry",
+                    "pod"
                   ]
                 }
               }
             },
             {
               "id": "merge",
@@ -622,13 +759,13 @@

           "transparent": true,
           "type": "table"
         },
         {
           "datasource": {
             "type": "prometheus",
-            "uid": ""
+            "uid": ""
           },
           "description": "",
           "fieldConfig": {
             "defaults": {
               "color": {
                 "mode": "palette-classic"
@@ -672,13 +809,13 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "green",
-                    "value": null
+                    "value": 0
                   },
                   {
                     "color": "red",
                     "value": 80
                   }
                 ]
@@ -703,37 +840,37 @@

             "tooltip": {
               "hideZeros": false,
               "mode": "single",
               "sort": "none"
             }
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "type": "prometheus",
                 "uid": ""
               },
               "editorMode": "code",
               "exemplar": false,
-              "expr": "spegel_advertised_images{job=~\"\",instance=~\"\"}",
+              "expr": "spegel_advertised_image_digests{pod=~\"\", registry=~\"\"}",
               "format": "time_series",
               "instant": false,
-              "legendFormat": "{{ instance }}",
+              "legendFormat": "{{ pod }}: {{ registry }}",
               "range": true,
               "refId": "A"
             }
           ],
           "title": "Container Images Advertised ",
           "transparent": true,
           "type": "timeseries"
         },
         {
           "datasource": {
             "type": "prometheus",
-            "uid": ""
+            "uid": ""
           },
           "fieldConfig": {
             "defaults": {
               "color": {
                 "mode": "palette-classic"
               },
@@ -773,13 +910,13 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "green",
-                    "value": null
+                    "value": 0
                   },
                   {
                     "color": "red",
                     "value": 80
                   }
                 ]
@@ -866,13 +1003,13 @@

             "tooltip": {
               "hideZeros": false,
               "mode": "multi",
               "sort": "none"
             }
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "uid": ""
               },
               "editorMode": "code",
@@ -891,13 +1028,13 @@

           "transparent": true,
           "type": "timeseries"
         },
         {
           "datasource": {
             "type": "prometheus",
-            "uid": ""
+            "uid": ""
           },
           "description": "",
           "fieldConfig": {
             "defaults": {
               "color": {
                 "mode": "palette-classic"
@@ -938,13 +1075,13 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "green",
-                    "value": null
+                    "value": 0
                   },
                   {
                     "color": "red",
                     "value": 80
                   }
                 ]
@@ -969,25 +1106,25 @@

             "tooltip": {
               "hideZeros": false,
               "mode": "single",
               "sort": "none"
             }
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "type": "prometheus",
                 "uid": ""
               },
               "editorMode": "code",
               "exemplar": false,
-              "expr": "spegel_advertised_keys{job=~\"\",instance=~\"\"} ",
+              "expr": "spegel_advertised_content_digests{pod=~\"\", registry=~\"\"} ",
               "format": "time_series",
               "instant": false,
-              "legendFormat": "{{ instance }}",
+              "legendFormat": "{{ pod }}: {{ registry }}",
               "range": true,
               "refId": "A"
             }
           ],
           "title": "Images Layer Advertised ",
           "transparent": true,
@@ -1006,13 +1143,13 @@

           "title": "Kubelet",
           "type": "row"
         },
         {
           "datasource": {
             "type": "prometheus",
-            "uid": ""
+            "uid": ""
           },
           "fieldConfig": {
             "defaults": {
               "color": {
                 "mode": "palette-classic"
               },
@@ -1052,13 +1189,13 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "green",
-                    "value": null
+                    "value": 0
                   },
                   {
                     "color": "red",
                     "value": 80
                   }
                 ]
@@ -1084,13 +1221,13 @@

             "tooltip": {
               "hideZeros": false,
               "mode": "single",
               "sort": "none"
             }
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "type": "prometheus",
                 "uid": ""
               },
@@ -1105,13 +1242,13 @@

           "transparent": true,
           "type": "timeseries"
         },
         {
           "datasource": {
             "type": "prometheus",
-            "uid": ""
+            "uid": ""
           },
           "fieldConfig": {
             "defaults": {
               "color": {
                 "mode": "palette-classic"
               },
@@ -1151,13 +1288,13 @@

               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
                   {
                     "color": "green",
-                    "value": null
+                    "value": 0
                   },
                   {
                     "color": "red",
                     "value": 80
                   }
                 ]
@@ -1183,13 +1320,13 @@

             "tooltip": {
               "hideZeros": false,
               "mode": "multi",
               "sort": "none"
             }
           },
-          "pluginVersion": "11.5.2",
+          "pluginVersion": "12.1.0",
           "targets": [
             {
               "datasource": {
                 "uid": ""
               },
               "editorMode": "code",
@@ -1204,119 +1341,100 @@

           "title": "Kubelet Operation Error Rate",
           "transparent": true,
           "type": "timeseries"
         }
       ],
       "refresh": "30s",
-      "schemaVersion": 40,
+      "schemaVersion": 41,
       "tags": [],
       "templating": {
         "list": [
           {
             "current": {},
             "includeAll": false,
-            "label": "Data Source",
+            "label": "datasource",
             "name": "datasource",
             "options": [],
             "query": "prometheus",
             "refresh": 1,
             "regex": "",
             "type": "datasource"
           },
           {
+            "allowCustomValue": false,
+            "current": {},
+            "datasource": {
+              "type": "prometheus",
+              "uid": ""
+            },
+            "definition": "label_values(spegel_advertised_content_digests,pod)",
+            "description": "",
+            "includeAll": true,
+            "label": "pod",
+            "multi": true,
+            "name": "pod",
+            "options": [],
+            "query": {
+              "qryType": 1,
+              "query": "label_values(spegel_advertised_content_digests,pod)",
+              "refId": "PrometheusVariableQueryEditor-VariableQuery"
+            },
+            "refresh": 2,
+            "regex": "",
+            "type": "query"
+          },
+          {
+            "allowCustomValue": false,
+            "current": {},
+            "datasource": {
+              "type": "prometheus",
+              "uid": ""
+            },
+            "definition": "label_values(spegel_advertised_content_digests,registry)",
+            "includeAll": true,
+            "label": "registry",
+            "multi": true,
+            "name": "registry",
+            "options": [],
+            "query": {
+              "qryType": 1,
+              "query": "label_values(spegel_advertised_content_digests,registry)",
+              "refId": "PrometheusVariableQueryEditor-VariableQuery"
+            },
+            "refresh": 2,
+            "regex": "",
+            "type": "query"
+          },
+          {
+            "allowCustomValue": false,
             "current": {
               "text": "registry",
               "value": "registry"
             },
             "description": "",
             "hide": 2,
-            "includeAll": false,
-            "label": "container",
             "name": "container",
             "options": [
               {
                 "selected": true,
                 "text": "registry",
                 "value": "registry"
               }
             ],
             "query": "registry",
             "type": "custom"
-          },
-          {
-            "current": {},
-            "datasource": {
-              "type": "prometheus",
-              "uid": ""
-            },
-            "definition": "label_values(spegel_advertised_images,pod)",
-            "description": "",
-            "hide": 2,
-            "includeAll": false,
-            "label": "pod",
-            "name": "pod",
-            "options": [],
-            "query": {
-              "query": "label_values(spegel_advertised_images,pod)",
-              "refId": "StandardVariableQuery"
-            },
-            "refresh": 1,
-            "regex": "",
-            "type": "query"
-          },
-          {
-            "allowCustomValue": false,
-            "current": {},
-            "datasource": {
-              "type": "prometheus",
-              "uid": ""
-            },
-            "definition": "label_values(spegel_advertised_keys,job)",
-            "hide": 2,
-            "label": "job",
-            "name": "job",
-            "options": [],
-            "query": {
-              "qryType": 1,
-              "query": "label_values(spegel_advertised_keys,job)",
-              "refId": "PrometheusVariableQueryEditor-VariableQuery"
-            },
-            "refresh": 1,
-            "regex": "",
-            "type": "query"
-          },
-          {
-            "current": {},
-            "datasource": {
-              "type": "prometheus",
-              "uid": ""
-            },
-            "definition": "label_values(spegel_advertised_keys{job=\"\"},instance)",
-            "includeAll": true,
-            "label": "instance",
-            "multi": true,
-            "name": "instance",
-            "options": [],
-            "query": {
-              "qryType": 1,
-              "query": "label_values(spegel_advertised_keys{job=\"\"},instance)",
-              "refId": "PrometheusVariableQueryEditor-VariableQuery"
-            },
-            "refresh": 2,
-            "regex": "",
-            "type": "query"
           }
         ]
       },
       "time": {
         "from": "now-3h",
         "to": "now"
       },
       "timepicker": {},
       "timezone": "",
       "title": "Spegel stateless cluster local OCI registry mirror",
       "uid": "1iY4QMJVk-psee",
       "gnetId": 18089,
-      "version": 4,
+      "version": 5,
       "weekStart": ""
     }
 
--- HelmRelease: kube-system/spegel Service: kube-system/spegel-bootstrap

+++ HelmRelease: kube-system/spegel Service: kube-system/spegel-bootstrap

@@ -12,11 +12,7 @@

   selector:
     app.kubernetes.io/component: spegel
     app.kubernetes.io/name: spegel
     app.kubernetes.io/instance: spegel
   clusterIP: None
   publishNotReadyAddresses: true
-  ports:
-  - name: router
-    port: 5001
-    protocol: TCP
 
--- HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel

+++ HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel

@@ -26,13 +26,13 @@

     spec:
       serviceAccountName: spegel
       securityContext: {}
       priorityClassName: system-node-critical
       initContainers:
       - name: configuration
-        image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+        image: ghcr.io/spegel-org/spegel@sha256:26c60b05e08ac738e8442bc389c5780bff0e1d8153956e45d810a2f1008cf56f
         imagePullPolicy: IfNotPresent
         securityContext:
           readOnlyRootFilesystem: true
         args:
         - configuration
         - --log-level=INFO
@@ -54,13 +54,13 @@

             memory: 128Mi
         volumeMounts:
         - name: containerd-config
           mountPath: /etc/cri/conf.d/hosts
       containers:
       - name: registry
-        image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+        image: ghcr.io/spegel-org/spegel@sha256:26c60b05e08ac738e8442bc389c5780bff0e1d8153956e45d810a2f1008cf56f
         imagePullPolicy: IfNotPresent
         securityContext:
           readOnlyRootFilesystem: true
         args:
         - registry
         - --log-level=INFO
@@ -68,20 +68,18 @@

         - --mirror-resolve-timeout=20ms
         - --registry-addr=:5000
         - --router-addr=:5001
         - --metrics-addr=:9090
         - --containerd-sock=/run/containerd/containerd.sock
         - --containerd-namespace=k8s.io
-        - --containerd-registry-config-path=/etc/cri/conf.d/hosts
         - --bootstrap-kind=dns
         - --dns-bootstrap-domain=spegel-bootstrap.kube-system.svc.cluster.local.
         - --containerd-content-path=/var/lib/containerd/io.containerd.content.v1.content
         - --debug-web-enabled=true
+        - --data-dir=/var/lib/spegel
         env:
-        - name: DATA_DIR
-          value: ''
         - name: GOMEMLIMIT
           valueFrom:
             resourceFieldRef:
               resource: limits.memory
               divisor: 1
         - name: NODE_IP
@@ -90,15 +88,18 @@

               fieldPath: status.hostIP
         ports:
         - name: registry
           containerPort: 5000
           hostPort: 29999
           protocol: TCP
-        - name: router
+        - name: router-tcp
           containerPort: 5001
           protocol: TCP
+        - name: router-quic
+          containerPort: 5001
+          protocol: UDP
         - name: metrics
           containerPort: 9090
           protocol: TCP
         startupProbe:
           periodSeconds: 3
           failureThreshold: 60
@@ -107,23 +108,29 @@

             port: registry
         readinessProbe:
           httpGet:
             path: /readyz
             port: registry
         volumeMounts:
+        - name: spegel-data
+          mountPath: /var/lib/spegel
         - name: containerd-sock
           mountPath: /run/containerd/containerd.sock
         - name: containerd-content
           mountPath: /var/lib/containerd/io.containerd.content.v1.content
           readOnly: true
         resources:
           limits:
             memory: 128Mi
           requests:
             memory: 128Mi
       volumes:
+      - name: spegel-data
+        hostPath:
+          path: /var/lib/spegel
+          type: DirectoryOrCreate
       - name: containerd-sock
         hostPath:
           path: /run/containerd/containerd.sock
           type: Socket
       - name: containerd-content
         hostPath:
--- HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel-cleanup

+++ HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel-cleanup

@@ -27,13 +27,13 @@

         app.kubernetes.io/instance: spegel
     spec:
       securityContext: {}
       priorityClassName: system-node-critical
       containers:
       - name: cleanup
-        image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+        image: ghcr.io/spegel-org/spegel@sha256:26c60b05e08ac738e8442bc389c5780bff0e1d8153956e45d810a2f1008cf56f
         imagePullPolicy: IfNotPresent
         args:
         - cleanup
         - --containerd-registry-config-path=/etc/cri/conf.d/hosts
         - --addr=:8080
         readinessProbe:
--- HelmRelease: kube-system/spegel Pod: kube-system/spegel-cleanup-wait

+++ HelmRelease: kube-system/spegel Pod: kube-system/spegel-cleanup-wait

@@ -13,13 +13,13 @@

     helm.sh/hook: post-delete
     helm.sh/hook-delete-policy: before-hook-creation, hook-succeeded
     helm.sh/hook-weight: '1'
 spec:
   containers:
   - name: cleanup-wait
-    image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+    image: ghcr.io/spegel-org/spegel@sha256:26c60b05e08ac738e8442bc389c5780bff0e1d8153956e45d810a2f1008cf56f
     imagePullPolicy: IfNotPresent
     args:
     - cleanup-wait
     - --probe-endpoint=spegel-cleanup.kube-system.svc.cluster.local.:8080
   restartPolicy: Never
   terminationGracePeriodSeconds: 0

@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 6a46eed to 1adc583 Compare April 27, 2026 11:44
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 1adc583 to 2a03397 Compare May 15, 2026 18:39
@tinfoild

tinfoild Bot commented May 15, 2026 •

Copy link
Copy Markdown
Contributor Author

kube/kustomization/out00

--- kube/deploy/core/spegel/app Kustomization: flux-system/spegel-app HelmRelease: kube-system/spegel

+++ kube/deploy/core/spegel/app Kustomization: flux-system/spegel-app HelmRelease: kube-system/spegel

@@ -12,13 +12,13 @@

     spec:
       chart: spegel
       sourceRef:
         kind: HelmRepository
         name: spegel
         namespace: flux-system
-      version: 0.6.0
+      version: 0.7.4
   driftDetection:
     ignore:
     - paths:
       - /spec/replicas
     mode: warn
   install:

@tinfoild tinfoild Bot changed the title feat(oci/spegel): update 0.6.0 ➼ 0.7.0 feat(oci/spegel): update 0.6.0 ➼ 0.7.1 May 21, 2026
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 2a03397 to 533565d Compare May 21, 2026 11:10
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 533565d to 2cae661 Compare June 8, 2026 20:59
@tinfoild tinfoild Bot changed the title feat(oci/spegel): update 0.6.0 ➼ 0.7.1 feat(oci/spegel): update 0.6.0 ➼ 0.7.2 Jun 18, 2026
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch 2 times, most recently from 3d75fdf to 989843c Compare June 19, 2026 12:33
@tinfoild tinfoild Bot changed the title feat(oci/spegel): update 0.6.0 ➼ 0.7.2 feat(oci/spegel): update 0.6.0 ➼ 0.7.3 Jul 1, 2026
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 989843c to 940a60c Compare July 1, 2026 15:07
@tinfoild tinfoild Bot changed the title feat(oci/spegel): update 0.6.0 ➼ 0.7.3 feat(oci/spegel): update 0.6.0 ➼ 0.7.4 Jul 15, 2026
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch 2 times, most recently from d24e170 to 488a0ec Compare July 20, 2026 10:13
@ciel-shieru

ciel-shieru commented Jul 24, 2026 •

Copy link
Copy Markdown
Contributor

SECURITY VULNERABILITIES FOUND BY CIEL

📅 Scan date: 2026-07-24 04:40 UTC
🤖 Scanner: Ciel Security Scanner
🔗 PR: #5525 — feat(oci/spegel): update 0.6.0 ➼ 0.7.4
📦 Packages checked: 1
🔍 Sources: NVD, OSV.dev, GHSA, GHSL, CISA KEV, FortiGuard, CVE.org, Changelog
⚠️ Vulnerabilities found: 0 (direct); significant transitive dep fixes via changelog


Severity Summary

Severity Count
CRITICAL 0
HIGH 0
MEDIUM / MODERATE 0
LOW 0
UNKNOWN / NEEDS VERIFICATION 0
Total 0

Results

Package: spegel

  • Ecosystem: Helm
  • Old version: 0.6.0 — CLEAN (no direct CVEs; see changelog for transitive dep fixes)
  • New version: 0.7.4 — CLEAN

Vulnerabilities in version 0.6.0

No known vulnerabilities found in the spegel package itself across all 8 sources.

Vulnerabilities in version 0.7.4

No known vulnerabilities found.

Non-applicable findings (verified and excluded)

Finding Severity Reason not applicable
CGA-4h42-h3g6-cxx5 + 31 Wolfi entries — No CVE aliases; Wolfi version-tracking placeholders, not security vulns
GO-2026-5932 (x/crypto deprecated openpgp) — Deprecation advisory only (x/crypto v0.53.0 in new version)
CVE-2026-46600 (x/net DNS message panic) LOW Affects new version (0.55.0) via minimist parsing — low severity

Changelog Security Highlights (0.6.0 → 0.7.4)

The spegel v0.7.4 changelog and dependency analysis reveals security fixes for the following transitive dependencies that ship with the spegel container images:


Recommendations

  • MERGE PRIORITY: MEDIUM — While no direct CVEs exist in the spegel package itself, the old version (0.6.0) ships with critically vulnerable transitive dependencies (containerd +6 CRITICAL/HIGH CVEs, x/crypto +13 CVEs, x/net +6 CVEs). The 0.7.4 update resolves all of these.
  • No new vulnerabilities are introduced by the upgrade.
  • Merge promptly to benefit from the transitive dependency security fixes, particularly the containerd CRI checkpoint and x/crypto SSH agent vulnerabilities.

⚠️ This comment was posted by an automated security scanner (Ciel).
To re-scan, trigger the renovate-security-scanner skill.

@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 488a0ec to 10411ea Compare July 27, 2026 02:52
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 10411ea to 882c16c Compare October 7, 2026 22:18
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.

1 participant