Skip to content

perf: optimize memory usage by avoiding string-to-byte conversions#135

Merged
amirmalka merged 6 commits into
mainfrom
feat/memory-optimization-unsafe-conversions
Jan 22, 2026
Merged

perf: optimize memory usage by avoiding string-to-byte conversions#135
amirmalka merged 6 commits into
mainfrom
feat/memory-optimization-unsafe-conversions

Conversation

@amirmalka
Copy link
Copy Markdown
Contributor

@amirmalka amirmalka commented Jan 22, 2026

Overview

This PR optimizes memory usage by avoiding unnecessary memory copies when converting between strings and byte slices.

Changes

  • Replace `[]byte(string)` conversions with `unsafe.Slice(unsafe.StringData())` to avoid memory copies in batch processing
  • Remove debug logging that was converting `[]byte` to `string` (which also copies memory)
  • Add configurable `MAX_OBJECT_SIZE` environment variable to prevent sending oversized objects to the server
  • Update Go version from 1.24.1 to 1.25.6

Memory Impact

For large objects (e.g., 100MB), this change eliminates the temporary doubling of memory that occurred during string-to-byte conversions, reducing peak memory usage significantly.

Summary by CodeRabbit

  • New Features

    • Configurable object size limit via environment variable to control maximum payloads.
  • Improvements

    • Reduced verbose logging of object contents.
    • Pre-send validation to skip and report oversized objects.
    • More efficient handling of object payloads to reduce allocations.
  • Chores

    • Updated Go toolchain, build image, and CI workflow to use Go 1.25.6.

✏️ Tip: You can customize this high-level summary in your review settings.

- Replace []byte(string) conversions with unsafe.Slice(unsafe.StringData()) to avoid memory copies
- Remove debug logging that was converting []byte to string (memory copy)
- Add configurable MAX_OBJECT_SIZE env var to prevent sending oversized objects
- Update Go version from 1.24.1 to 1.25.6

Signed-off-by: Amir Malka <amirm@armosec.io>
@amirmalka amirmalka force-pushed the feat/memory-optimization-unsafe-conversions branch from 07aef7b to b368e6d Compare January 22, 2026 09:30
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 22, 2026

Warning

Rate limit exceeded

@amirmalka has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 0 minutes and 4 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

Adds an environment-based MAX_OBJECT_SIZE guard and Client field; replaces string-to-[]byte casts with unsafe.Slice across adapters and core; reduces logging of payload contents; renames a NewClient parameter; and bumps the Go toolchain and build image and CI setup to 1.25.6.

Changes

Cohort / File(s) Summary
Backend adapter with size guard
adapters/backend/v1/client.go
Added MaxObjectSizeEnvVar, getMaxObjectSizeBytes() and Client.maxObjectSizeBytes *int; NewClient initializes the field (param renamed to skipAlertsFrom); pre-send guard in sendPutObjectMessage skips oversized objects and logs an error; replaced []byte(...) casts with unsafe.Slice(...); removed logging of raw object/patch payloads.
In-cluster adapter conversions
adapters/incluster/v1/client.go
Imported unsafe and replaced []byte(string) conversions with unsafe.Slice(unsafe.StringData(...), len(...)) for GetObject, PatchObject, PutObject.
Core synchronizer conversions
core/synchronizer.go
Replaced string-to-byte conversions with unsafe.Slice(unsafe.StringData(...), len(...)) in GetObject/PutObject flows; minor log formatting tweak.
Build image and CI/toolchain
build/Dockerfile, go.mod, tests/go.mod, .github/workflows/pr-created.yaml
Bumped Go toolchain to 1.25.6; updated build base image tag to golang:1.25.6-trixie; CI setup-go upgraded to v6 and now reads Go version from go.mod; added step to print Go version.

Sequence Diagram(s)

sequenceDiagram
    participant Env as Environment
    participant Client as Backend Client
    participant Producer as MessageProducer
    participant Logger as Logger

    Env->>Client: getMaxObjectSizeBytes() (on NewClient)
    Client->>Client: store maxObjectSizeBytes
    Client->>Client: prepare PutObject payload (unsafe.Slice)
    Client->>Client: if payload.size > maxObjectSizeBytes?
    alt oversized
        Client->>Logger: log error ("skipping oversized object")
        Client--x Producer: do not send
    else within limit
        Client->>Producer: send PutObject message
        Producer->>Logger: log send context (no raw payload)
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I nibbled bytes and checked the size,
A max from env to keep things wise.
unsafe.Slice sped bytes on their way,
Go 1.25 helps me hop and play.
This rabbit cheers the tidy day! 🎉

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately reflects the main objective: optimizing memory usage by avoiding string-to-byte conversions, which is the primary focus of the changes across multiple files.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Collaborator

@matthyx matthyx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

check the empty if

Comment thread core/synchronizer.go Outdated
Signed-off-by: Amir Malka <amirm@armosec.io>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@adapters/backend/v1/client.go`:
- Around line 41-47: In getMaxObjectSizeBytes(), fix the env var validation and
log wording: when reading MaxObjectSizeEnvVar (env name "MAX_OBJECT_SIZE") keep
the existing strconv.Atoi parse but change the logger.L().Error message to
reference "MAX_OBJECT_SIZE" and include the raw value and error; treat any
parsed intVal <= 0 as invalid (log a warning/error mentioning the non-positive
value and ignore it) and do not return a pointer for invalid values—only return
&intVal for positive integers; otherwise return nil as before.
🧹 Nitpick comments (2)
core/synchronizer.go (2)

251-252: Avoid logging the full payload on unmarshal errors.
Stringifying data forces a large copy and risks leaking sensitive payloads. Prefer logging size (or a truncated prefix).

♻️ Suggested tweak
-		logger.L().Ctx(ctx).Error("cannot unmarshal message", helpers.Error(err), helpers.String("target", "domain.Generic"),
-			helpers.String("data", string(data)))
+		logger.L().Ctx(ctx).Error("cannot unmarshal message", helpers.Error(err), helpers.String("target", "domain.Generic"),
+			helpers.Int("data_size", len(data)))

417-419: Remove the no‑op if !s.isClient {} block.
It currently does nothing and reads like a missing guard; remove it or document the intended behavior.

Comment thread adapters/backend/v1/client.go
Signed-off-by: Amir Malka <amirm@armosec.io>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to optimize memory usage by eliminating memory copies during string-to-byte conversions using unsafe operations. However, the PR contains several critical issues that must be addressed before merging.

Changes:

  • Replace string-to-byte conversions with unsafe.Slice(unsafe.StringData()) across multiple adapter implementations
  • Add configurable MAX_OBJECT_SIZE environment variable to limit object sizes sent to the server
  • Update Go version from 1.24.1 to 1.25.6 in go.mod files and Dockerfile

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
go.mod Updates Go version to 1.25.6
tests/go.mod Updates Go version to 1.25.6
build/Dockerfile Updates Docker base image to golang:1.25.6-trixie
core/synchronizer.go Adds unsafe import and converts string-to-byte conversions using unsafe operations for GetObject and PutObject events; includes an empty if block
adapters/incluster/v1/client.go Converts string-to-byte conversions using unsafe operations in batch processing for GetObject, PatchObject, and PutObject
adapters/backend/v1/client.go Adds MAX_OBJECT_SIZE configuration, converts string-to-byte conversions using unsafe operations, removes verbose debug logging
Comments suppressed due to low confidence (2)

core/synchronizer.go:438

  • Using unsafe.Slice(unsafe.StringData()) to convert strings to byte slices is dangerous because it creates a mutable byte slice that points to immutable string data. If the returned byte slice is ever modified (directly or by any function it's passed to), it will cause undefined behavior and potential memory corruption since strings in Go are immutable. While the current code paths appear to only read these slices, this creates a fragile assumption that could easily be violated by future changes. Consider documenting this assumption clearly or using a safer approach that still avoids the copy if performance is critical (e.g., using reflect.StringHeader with proper documentation about the immutability requirement).
					helpers.String("cluster", clientId.Cluster),

core/synchronizer.go:419

  • This empty if block appears to be incomplete or accidentally committed. Either remove it entirely or add the intended logic. Empty conditional blocks reduce code maintainability and can confuse other developers.
			var msg domain.PutObject
			err = json.Unmarshal(data, &msg)
			if err != nil {

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread core/synchronizer.go
Comment thread adapters/incluster/v1/client.go
Comment thread adapters/backend/v1/client.go
Comment thread adapters/backend/v1/client.go
Comment thread adapters/backend/v1/client.go
Comment thread adapters/incluster/v1/client.go
Comment thread adapters/incluster/v1/client.go
Comment thread adapters/backend/v1/client.go
Signed-off-by: Amir Malka <amirm@armosec.io>
Copy link
Copy Markdown
Collaborator

@matthyx matthyx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

incredible the number of places we have this...

Signed-off-by: Amir Malka <amirm@armosec.io>
Signed-off-by: Amir Malka <amirm@armosec.io>
Copy link
Copy Markdown
Collaborator

@matthyx matthyx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why you want to fix it?

@github-actions
Copy link
Copy Markdown

Summary:

  • License scan: failure
  • Credentials scan: failure
  • Vulnerabilities scan: failure
  • Unit test: success
  • Go linting: failure

@amirmalka amirmalka merged commit 7f935dc into main Jan 22, 2026
38 of 44 checks passed
Darkflame72 pushed a commit to Darkflame72/home-ops that referenced this pull request Feb 10, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [kubescape-operator](https://kubescape.io/)
([source](https://redirect.github.com/kubescape/helm-charts)) | patch |
`1.30.2` → `1.30.3` |

---

### Release Notes

<details>
<summary>kubescape/helm-charts (kubescape-operator)</summary>

###
[`v1.30.3`](https://redirect.github.com/kubescape/helm-charts/releases/tag/kubescape-operator-1.30.3)

[Compare
Source](https://redirect.github.com/kubescape/helm-charts/compare/kubescape-operator-1.30.2...kubescape-operator-1.30.3)

Kubescape is an E2E Kubernetes cluster security platform

#### What's Changed

- chore: adding the ability to adjust the source of busybox by
[@&#8203;drew-viles](https://redirect.github.com/drew-viles) in
[#&#8203;784](https://redirect.github.com/kubescape/helm-charts/pull/784)
- add k8s context tag by
[@&#8203;YakirOren](https://redirect.github.com/YakirOren) in
[#&#8203;785](https://redirect.github.com/kubescape/helm-charts/pull/785)
- run system tests from private repo by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[#&#8203;786](https://redirect.github.com/kubescape/helm-charts/pull/786)
- add stream logs and wait for tests finish by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[#&#8203;787](https://redirect.github.com/kubescape/helm-charts/pull/787)
- fix attempt by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[#&#8203;788](https://redirect.github.com/kubescape/helm-charts/pull/788)
- Update 02-e2e-test.yaml by
[@&#8203;armobot](https://redirect.github.com/armobot) in
[#&#8203;789](https://redirect.github.com/kubescape/helm-charts/pull/789)
- Run test from private repo by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[#&#8203;791](https://redirect.github.com/kubescape/helm-charts/pull/791)
- add workflow\_call by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[#&#8203;792](https://redirect.github.com/kubescape/helm-charts/pull/792)
- add startup probe by
[@&#8203;YakirOren](https://redirect.github.com/YakirOren) in
[#&#8203;793](https://redirect.github.com/kubescape/helm-charts/pull/793)
- <kubescape/kubescape@v3.0.47...v3.0.48>
- Fix typos in documentation by
[@&#8203;oglok](https://redirect.github.com/oglok) in
[kubescape/kubescape#1913](https://redirect.github.com/kubescape/kubescape/pull/1913)
- fix: Kustomize directory analysis not working by
[@&#8203;majiayu000](https://redirect.github.com/majiayu000) in
[kubescape/kubescape#1914](https://redirect.github.com/kubescape/kubescape/pull/1914)
- feat: Define labels to copy from workloads to reports by
[@&#8203;majiayu000](https://redirect.github.com/majiayu000) in
[kubescape/kubescape#1915](https://redirect.github.com/kubescape/kubescape/pull/1915)
- Add SkipPersistence flag to MetricsQueryParams in metrics endpoint by
[@&#8203;BroderPeters](https://redirect.github.com/BroderPeters) in
[kubescape/kubescape#1917](https://redirect.github.com/kubescape/kubescape/pull/1917)
- ci: update scorecard action version by
[@&#8203;AndrewCharlesHay](https://redirect.github.com/AndrewCharlesHay)
in
[kubescape/kubescape#1918](https://redirect.github.com/kubescape/kubescape/pull/1918)
- update test lists by
[@&#8203;amirmalka](https://redirect.github.com/amirmalka) in
[kubescape/kubescape#1919](https://redirect.github.com/kubescape/kubescape/pull/1919)
- build(deps): Bump github.com/sigstore/cosign/v3 from
3.0.3-0.20251208232815-901b44d65952 to 3.0.4 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[kubescape/kubescape#1920](https://redirect.github.com/kubescape/kubescape/pull/1920)
- Update build number retrieval and permissions in workflow by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/kubescape#1921](https://redirect.github.com/kubescape/kubescape/pull/1921)
- Fix workload scan to include allcontrols framework by
[@&#8203;Copilot](https://redirect.github.com/Copilot) in
[kubescape/kubescape#1922](https://redirect.github.com/kubescape/kubescape/pull/1922)
- build(deps): Bump github.com/sigstore/fulcio from 1.8.4 to 1.8.5 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[kubescape/kubescape#1923](https://redirect.github.com/kubescape/kubescape/pull/1923)
- Fix panic on unsafe interface{} to string type assertions by
[@&#8203;Copilot](https://redirect.github.com/Copilot) in
[kubescape/kubescape#1926](https://redirect.github.com/kubescape/kubescape/pull/1926)
- build(deps): Bump github.com/theupdateframework/go-tuf/v2 from 2.3.0
to 2.3.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[kubescape/kubescape#1927](https://redirect.github.com/kubescape/kubescape/pull/1927)
- build(deps): Bump github.com/sigstore/rekor from 1.4.3 to 1.5.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[kubescape/kubescape#1928](https://redirect.github.com/kubescape/kubescape/pull/1928)
- <kubescape/operator@v0.2.121...v0.2.126>
- bump version by
[@&#8203;jnathangreeg](https://redirect.github.com/jnathangreeg) in
[kubescape/operator#349](https://redirect.github.com/kubescape/operator/pull/349)
- Fix comment typo in checkECRRegistry function to clarify \_catalog
end… by [@&#8203;jnathangreeg](https://redirect.github.com/jnathangreeg)
in
[kubescape/operator#351](https://redirect.github.com/kubescape/operator/pull/351)
- add permissions by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[kubescape/operator#352](https://redirect.github.com/kubescape/operator/pull/352)
- bump github.com/armosec/armoapi-go v0.0.673 by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/operator#353](https://redirect.github.com/kubescape/operator/pull/353)
- bump github.com/kubescape/go-logger v0.0.26 by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/operator#354](https://redirect.github.com/kubescape/operator/pull/354)
- bump github.com/goradd/maps v1.3.0 by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/operator#355](https://redirect.github.com/kubescape/operator/pull/355)
- <kubescape/kubevuln@v0.3.98...v0.3.104>
- replace debian 12 with debian 13 when building container images by
[@&#8203;pfarikrispy](https://redirect.github.com/pfarikrispy) in
[kubescape/kubevuln#317](https://redirect.github.com/kubescape/kubevuln/pull/317)
- Add comprehensive documentation and governance by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/kubevuln#318](https://redirect.github.com/kubescape/kubevuln/pull/318)
- Bump github.com/cilium/cilium from 1.16.9 to 1.16.17 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[kubescape/kubevuln#319](https://redirect.github.com/kubescape/kubevuln/pull/319)
- Add timeout to Grype DB update with graceful fallback to prevent
indefinite readiness probe failures by
[@&#8203;Copilot](https://redirect.github.com/Copilot) in
[kubescape/kubevuln#320](https://redirect.github.com/kubescape/kubevuln/pull/320)
- Prevent DB update cancellation on readiness probe by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/kubevuln#321](https://redirect.github.com/kubescape/kubevuln/pull/321)
- <kubescape/storage@v0.0.237...v0.0.239>
- feat: handle large object storage by clearing spec and updating
annotations by [@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/storage#279](https://redirect.github.com/kubescape/storage/pull/279)
- bump k8s version to v0.35.0 by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/storage#280](https://redirect.github.com/kubescape/storage/pull/280)
- <kubescape/node-agent@v0.3.11...v0.3.36>
- feat: propagate IsTriggerAlert field from rules to runtime alerts by
[@&#8203;slashben](https://redirect.github.com/slashben) in
[kubescape/node-agent#686](https://redirect.github.com/kubescape/node-agent/pull/686)
- Generating release by
[@&#8203;slashben](https://redirect.github.com/slashben) in
[kubescape/node-agent#688](https://redirect.github.com/kubescape/node-agent/pull/688)
- Feature/rule engine redesign by
[@&#8203;YakirOren](https://redirect.github.com/YakirOren) in
[kubescape/node-agent#685](https://redirect.github.com/kubescape/node-agent/pull/685)
- refactor: update cloud metadata types to use armotypes package by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/node-agent#689](https://redirect.github.com/kubescape/node-agent/pull/689)
- Replace host sensor with node agent sensing by
[@&#8203;Bezbran](https://redirect.github.com/Bezbran) in
[kubescape/node-agent#681](https://redirect.github.com/kubescape/node-agent/pull/681)
- use k8s-interface by
[@&#8203;Bezbran](https://redirect.github.com/Bezbran) in
[kubescape/node-agent#691](https://redirect.github.com/kubescape/node-agent/pull/691)
- optimize header parsing and add early return in ruleAppliesToContext
by [@&#8203;YakirOren](https://redirect.github.com/YakirOren) in
[kubescape/node-agent#692](https://redirect.github.com/kubescape/node-agent/pull/692)
- improve field accessor retrieval with nil checks and type assertions
by [@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/node-agent#694](https://redirect.github.com/kubescape/node-agent/pull/694)
- Bump github.com/sigstore/sigstore from 1.9.5 to 1.10.4 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[kubescape/node-agent#696](https://redirect.github.com/kubescape/node-agent/pull/696)
- Add Azure ResourceGroup enrichment to CloudMetadata by
[@&#8203;slashben](https://redirect.github.com/slashben) in
[kubescape/node-agent#697](https://redirect.github.com/kubescape/node-agent/pull/697)
- Add unit tests for Azure ResourceGroup parsing by
[@&#8203;slashben](https://redirect.github.com/slashben) in
[kubescape/node-agent#698](https://redirect.github.com/kubescape/node-agent/pull/698)
- remove toMap function by
[@&#8203;YakirOren](https://redirect.github.com/YakirOren) in
[kubescape/node-agent#693](https://redirect.github.com/kubescape/node-agent/pull/693)
- run system test from private repo by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[kubescape/node-agent#700](https://redirect.github.com/kubescape/node-agent/pull/700)
- bump: update golang-set dependency to v2.8.0 by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/node-agent#701](https://redirect.github.com/kubescape/node-agent/pull/701)
- bump: update armoapi-go dependency to v0.0.671 by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/node-agent#702](https://redirect.github.com/kubescape/node-agent/pull/702)
- update the tests\_groups by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[kubescape/node-agent#703](https://redirect.github.com/kubescape/node-agent/pull/703)
- bump: update dependencies for backend, storage, and OpenAPI packages
by [@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/node-agent#704](https://redirect.github.com/kubescape/node-agent/pull/704)
- update chart repo by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[kubescape/node-agent#705](https://redirect.github.com/kubescape/node-agent/pull/705)
- bump: update cel-go dependency to v0.26.1 by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/node-agent#706](https://redirect.github.com/kubescape/node-agent/pull/706)
- Implement ClusterUID enrichment for runtime alerts by
[@&#8203;slashben](https://redirect.github.com/slashben) in
[kubescape/node-agent#708](https://redirect.github.com/kubescape/node-agent/pull/708)
- fix a bug where failed expressions would recompile on every event by
[@&#8203;YakirOren](https://redirect.github.com/YakirOren) in
[kubescape/node-agent#690](https://redirect.github.com/kubescape/node-agent/pull/690)
- fix container watcher error propagation by
[@&#8203;YakirOren](https://redirect.github.com/YakirOren) in
[kubescape/node-agent#709](https://redirect.github.com/kubescape/node-agent/pull/709)
- add permissions by
[@&#8203;bvolovat](https://redirect.github.com/bvolovat) in
[kubescape/node-agent#710](https://redirect.github.com/kubescape/node-agent/pull/710)
- upgrade to IG v0.48.1 by
[@&#8203;matthyx](https://redirect.github.com/matthyx) in
[kubescape/node-agent#695](https://redirect.github.com/kubescape/node-agent/pull/695)
-
<kubescape/synchronizer@v0.0.127...v0.0.128>
- perf: optimize memory usage by avoiding string-to-byte conversions by
[@&#8203;amirmalka](https://redirect.github.com/amirmalka) in
[kubescape/synchronizer#135](https://redirect.github.com/kubescape/synchronizer/pull/135)

#### New Contributors

- [@&#8203;drew-viles](https://redirect.github.com/drew-viles) made
their first contribution in
[#&#8203;784](https://redirect.github.com/kubescape/helm-charts/pull/784)
- [@&#8203;YakirOren](https://redirect.github.com/YakirOren) made their
first contribution in
[#&#8203;785](https://redirect.github.com/kubescape/helm-charts/pull/785)
- [@&#8203;armobot](https://redirect.github.com/armobot) made their
first contribution in
[#&#8203;789](https://redirect.github.com/kubescape/helm-charts/pull/789)
- [@&#8203;pfarikrispy](https://redirect.github.com/pfarikrispy) made
their first contribution in
[kubescape/kubevuln#317](https://redirect.github.com/kubescape/kubevuln/pull/317)
- [@&#8203;bvolovat](https://redirect.github.com/bvolovat) made their
first contribution in
[kubescape/operator#352](https://redirect.github.com/kubescape/operator/pull/352)
- [@&#8203;oglok](https://redirect.github.com/oglok) made their first
contribution in
[kubescape/kubescape#1913](https://redirect.github.com/kubescape/kubescape/pull/1913)
- [@&#8203;majiayu000](https://redirect.github.com/majiayu000) made
their first contribution in
[kubescape/kubescape#1914](https://redirect.github.com/kubescape/kubescape/pull/1914)
- [@&#8203;BroderPeters](https://redirect.github.com/BroderPeters) made
their first contribution in
[kubescape/kubescape#1917](https://redirect.github.com/kubescape/kubescape/pull/1917)
-
[@&#8203;AndrewCharlesHay](https://redirect.github.com/AndrewCharlesHay)
made their first contribution in
[kubescape/kubescape#1918](https://redirect.github.com/kubescape/kubescape/pull/1918)
- [@&#8203;Bezbran](https://redirect.github.com/Bezbran) made their
first contribution in
[kubescape/node-agent#681](https://redirect.github.com/kubescape/node-agent/pull/681)
- [@&#8203;bvolovat](https://redirect.github.com/bvolovat) made their
first contribution in
[kubescape/node-agent#700](https://redirect.github.com/kubescape/node-agent/pull/700)

**Full Changelog**:
<kubescape/helm-charts@kubescape-operator-1.30.2...kubescape-operator-1.30.3>

</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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/Darkflame72/home-ops).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45NS4yIiwidXBkYXRlZEluVmVyIjoiNDIuOTUuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvaGVsbSIsInR5cGUvcGF0Y2giXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants