From b55e285395e9502821d42ae34faf9a811dc6fa4d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 27 Dec 2025 01:43:25 +0000 Subject: [PATCH] Release kubemirror 0.4.8 --- charts/kubemirror/Chart.yaml | 4 ++-- charts/kubemirror/templates/deployment.yaml | 5 ++++ charts/kubemirror/values.yaml | 25 ++++++++++++++++++-- charts/packages/kubemirror-0.4.8.tgz | Bin 0 -> 3996 bytes index.yaml | 24 ++++++++++++++++++- 5 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 charts/packages/kubemirror-0.4.8.tgz diff --git a/charts/kubemirror/Chart.yaml b/charts/kubemirror/Chart.yaml index 96f0dd0..7a08baf 100644 --- a/charts/kubemirror/Chart.yaml +++ b/charts/kubemirror/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: kubemirror description: Kubernetes controller for mirroring resources across namespaces type: application -version: 0.4.6 -appVersion: "0.4.6" +version: 0.4.8 +appVersion: "0.4.8" keywords: - kubernetes - controller diff --git a/charts/kubemirror/templates/deployment.yaml b/charts/kubemirror/templates/deployment.yaml index 4917bdd..b0f897f 100644 --- a/charts/kubemirror/templates/deployment.yaml +++ b/charts/kubemirror/templates/deployment.yaml @@ -46,6 +46,10 @@ spec: {{- if .Values.controller.verifySourceFreshness }} - --verify-source-freshness=true {{- end }} + {{- if .Values.controller.lazyWatcherInit }} + - --lazy-watcher-init=true + {{- end }} + - --watcher-scan-interval={{ .Values.controller.watcherScanInterval }} {{- if .Values.controller.excludedNamespaces }} - --excluded-namespaces={{ .Values.controller.excludedNamespaces }} {{- end }} @@ -56,6 +60,7 @@ spec: - --resource-types={{ join "," .Values.controller.resourceTypes }} {{- end }} - --discovery-interval={{ .Values.controller.discoveryInterval }} + - --resync-period={{ .Values.controller.resyncPeriod }} ports: - name: metrics containerPort: 8080 diff --git a/charts/kubemirror/values.yaml b/charts/kubemirror/values.yaml index 66be27c..09103e0 100644 --- a/charts/kubemirror/values.yaml +++ b/charts/kubemirror/values.yaml @@ -3,7 +3,7 @@ replicaCount: 1 image: repository: ghcr.io/lukaszraczylo/kubemirror pullPolicy: IfNotPresent - tag: "0.4.6" + tag: "0.4.8" imagePullSecrets: [] nameOverride: "" @@ -44,14 +44,21 @@ controller: leaderElectionID: "kubemirror-controller-leader" # Resource types to mirror - # Examples: ["Secret.v1", "ConfigMap.v1", "Ingress.v1.networking.k8s.io"] + # Examples: ["Secret.v1", "ConfigMap.v1", "Ingress.v1.networking.k8s.io", "Middleware.v1alpha1.traefik.io"] # If empty, auto-discovery will find all mirrorable resources + # MEMORY TIP: Specifying exact types reduces memory by 70-80% vs auto-discovery + # Common types: Secret.v1, ConfigMap.v1 resourceTypes: [] # Auto-discovery interval (only used when resourceTypes is empty) # How often to rediscover available resources in the cluster discoveryInterval: "5m" + # Cache resync period - how often to refresh all cached resources + # Higher values reduce memory churn and API load + # Default: 10m (was 30s in earlier versions) + resyncPeriod: "10m" + # Resource limits maxTargets: 100 workerThreads: 5 @@ -66,6 +73,20 @@ controller: # Recommended: false for most deployments (eventual consistency is acceptable) verifySourceFreshness: false + # Lazy watcher initialization (RECOMMENDED for production) + # Only creates informers for resource types that actually have resources marked for mirroring + # Dramatically reduces memory usage - e.g., if you have 204 available resource types but only + # 2 types with marked resources, this creates only 2 watchers instead of 204 + # Memory savings: typically 70-90% compared to eager initialization + # Default: false (user opt-in) + lazyWatcherInit: false + + # Watcher scan interval (lazy-watcher-init mode only) + # How often to scan the cluster for new resource types that need watchers + # If you add a new resource type to mirror, it will be detected within this interval + # Default: 5m + watcherScanInterval: "5m" + # Namespace filtering excludedNamespaces: "" includedNamespaces: "" diff --git a/charts/packages/kubemirror-0.4.8.tgz b/charts/packages/kubemirror-0.4.8.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a8c4e51071d665653bbc155f1f667502edb03305 GIT binary patch literal 3996 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 C1-nrI literal 0 HcmV?d00001 diff --git a/index.yaml b/index.yaml index 191c31a..58eb169 100644 --- a/index.yaml +++ b/index.yaml @@ -1449,6 +1449,28 @@ entries: - https://github.com/lukaszraczylo/helm-charts/releases/download/kube-images-sync-0.1.5/kube-images-sync-0.1.5.tgz version: 0.1.5 kubemirror: + - apiVersion: v2 + appVersion: 0.4.8 + created: "2025-12-27T01:43:25.604098356Z" + description: Kubernetes controller for mirroring resources across namespaces + digest: faadbf0841423ca613ef1f59c7dd0e77661bb01f0c5fc66de5f153a8da040556 + home: https://github.com/lukaszraczylo/kubemirror + keywords: + - kubernetes + - controller + - mirror + - secrets + - configmaps + maintainers: + - email: lukasz@raczylo.com + name: Lukasz Raczylo + name: kubemirror + sources: + - https://github.com/lukaszraczylo/kubemirror + type: application + urls: + - https://github.com/lukaszraczylo/helm-charts/releases/download/kubemirror-0.4.8/kubemirror-0.4.8.tgz + version: 0.4.8 - apiVersion: v2 appVersion: 0.4.6 created: "2025-12-26T18:23:56.328991427Z" @@ -1559,4 +1581,4 @@ entries: urls: - https://github.com/lukaszraczylo/helm-charts/releases/download/kubemirror-0.2.8/kubemirror-0.2.8.tgz version: 0.2.8 -generated: "2025-12-26T18:23:56.328453793Z" +generated: "2025-12-27T01:43:25.603517295Z"