Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
71acaee
testing if storage ci runs against fork
entlein Jan 30, 2026
58d6a98
change image registry name
entlein Jan 30, 2026
2ccd1db
Merge pull request #1 from k8sstormcenter/test/localtestbuild
entlein Jan 30, 2026
97437c8
test if newer version of cosign solves this
entlein Jan 31, 2026
1fabd62
add permissions to workflow for test results publishing
entlein Jan 31, 2026
08eda95
Merge pull request #2 from k8sstormcenter/test/localtestbuild
entlein Jan 31, 2026
d528642
first try - this could go bad - regex v0.0.1
entlein Feb 1, 2026
3d79698
where is that unit test trigger
entlein Feb 1, 2026
f45e321
debug regex DynamicIdentifier Matching Unit tests
entlein Feb 2, 2026
6f674c0
debug regex DynamicIdentifier Matching Unit tests
entlein Feb 2, 2026
8a5d130
revert that and triage
entlein Feb 4, 2026
f0f6acb
lets go about this totally different
entlein Feb 5, 2026
6ff9edc
coverage test test
entlein Feb 5, 2026
93a26dc
coverage test fix
entlein Feb 5, 2026
e722437
Dynamic Identifyer fix
entlein Feb 5, 2026
312ed59
Dynamic Identifyer fix
entlein Feb 5, 2026
e5197fa
Dynamic Identifyer backtrack
entlein Feb 5, 2026
45d017e
Dynamic Identifyer backtrack 2
entlein Feb 5, 2026
01cf97a
Dynamic Identifyer test fix
entlein Feb 5, 2026
0d3ef6f
Dynamic Identifyer test fix 2
entlein Feb 5, 2026
9069d8c
Dynamic Identifyer test fix 3
entlein Feb 5, 2026
0f6f183
Dynamic Identifyer test fix 4
entlein Feb 5, 2026
f612913
Dynamic Identifyer test fix 5
entlein Feb 5, 2026
825020a
Dynamic Identifyer try double pass, just exploing
entlein Feb 5, 2026
b39e499
Dynamic Identifyer we need grandchildren
entlein Feb 5, 2026
685aafb
testing with ports being allowed to be wildcards too
entlein Feb 10, 2026
db26c44
adopting the prototype code into the main code base, we need a lot mo…
entlein Feb 10, 2026
342691a
adopting the prototype code into the main code base, we need a lot mo…
entlein Feb 10, 2026
5dc1452
changing code and putting adapter for the signature to not break all …
entlein Feb 10, 2026
6ce7931
aligning the tests
entlein Feb 10, 2026
3bf8c83
TODO write new benchmark test for the configs
entlein Feb 10, 2026
710a792
for endpoints the path collapse, collapsed too much
entlein Feb 10, 2026
f59b37a
for endpoints, we cant use the ellpisis for ports, we use 0
entlein Feb 10, 2026
f952518
if the bug is in analyse_endpoint then this should undo it
entlein Feb 10, 2026
b075b75
if the bug is in analyse_endpoint then this should undo it
entlein Feb 10, 2026
9183bad
if the bug is in analyse_endpoint then this should undo it
entlein Feb 10, 2026
42eec37
it was the ellipsis char that is missing
entlein Feb 10, 2026
c22867a
maybe its the double collapes
entlein Feb 10, 2026
bae5069
lets see how much else is broken
entlein Feb 10, 2026
d8e0845
reworked the whole thing, lets see where we stand: analyse opens and …
entlein Feb 11, 2026
ede9e48
need a more aggressive default for testing
entlein Feb 11, 2026
303e411
is it really this sbom thingy?
entlein Feb 12, 2026
97b0a07
need to add a git tag
entlein Feb 12, 2026
1389b98
ci: auto-trigger node-agent build after storage push
entlein Feb 12, 2026
ef26bee
cleaning up some
entlein Feb 12, 2026
9578a94
Skip user-managed resources during cleanup
entlein Feb 14, 2026
37d0d56
asymptotic behavior for backwards compatitbility
entlein Feb 14, 2026
6aac533
tests must use variables not hardcoded thresholds
entlein Feb 14, 2026
0bfa1f7
align the constants
entlein Feb 14, 2026
fbe8f81
exec events collapisble, try 1
entlein Feb 14, 2026
a3a8365
deduplication fix
entlein Feb 15, 2026
02f8615
test itself was wrong
entlein Feb 15, 2026
1f833c4
more tests
entlein Feb 15, 2026
4528316
need a more aggressive default for testing
entlein Feb 11, 2026
8decd0f
is it really this sbom thingy?
entlein Feb 12, 2026
0920396
need to add a git tag
entlein Feb 12, 2026
354916c
ci: auto-trigger node-agent build after storage push
entlein Feb 12, 2026
94f92f9
cleaning up some
entlein Feb 12, 2026
acb906c
Skip user-managed resources during cleanup
entlein Feb 14, 2026
e20f96b
asymptotic behavior for backwards compatitbility
entlein Feb 14, 2026
841098f
tests must use variables not hardcoded thresholds
entlein Feb 14, 2026
10c2297
align the constants
entlein Feb 14, 2026
3231e28
more testing and migrating over to collaps config for all function calls
entlein Feb 15, 2026
7bf198c
Merge pull request #3 from k8sstormcenter/test/localtestbuild
entlein Feb 15, 2026
48f4600
Merge branch 'main' into feature/exec
entlein Feb 15, 2026
6e80032
exec events wildcard try2
entlein Feb 16, 2026
1e5473e
old branch hardcoded in ci
entlein Feb 16, 2026
97e2439
Change branch name from features/exec to feature/exec
entlein Feb 16, 2026
3ea0dcb
auto update remote reference branch
entlein Feb 16, 2026
8db3f54
compare logic changed for exec vs path
entlein Feb 16, 2026
e07cb14
first try on externalizing the collaps config
entlein Feb 17, 2026
44f0080
test script added
entlein Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 66 additions & 6 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,77 @@ on:
type: boolean
required: false
default: false
push:
branches:
- feature/exec
- feature/tuning

jobs:
prepare:
name: Resolve build parameters
runs-on: ubuntu-latest
outputs:
image_tag: ${{ steps.params.outputs.image_tag }}
client: ${{ steps.params.outputs.client }}
platforms: ${{ steps.params.outputs.platforms }}
cosign: ${{ steps.params.outputs.cosign }}
steps:
- id: params
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "image_tag=${{ inputs.IMAGE_TAG }}" >> "$GITHUB_OUTPUT"
echo "client=${{ inputs.CLIENT }}" >> "$GITHUB_OUTPUT"
echo "platforms=${{ inputs.PLATFORMS }}" >> "$GITHUB_OUTPUT"
echo "cosign=${{ inputs.CO_SIGN }}" >> "$GITHUB_OUTPUT"
else
# Push trigger: derive tag from short commit SHA
echo "image_tag=dev-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
echo "client=test" >> "$GITHUB_OUTPUT"
echo "platforms=false" >> "$GITHUB_OUTPUT"
echo "cosign=false" >> "$GITHUB_OUTPUT"
fi

tag-for-go-module:
needs: prepare
name: Create Git tag so Go modules can resolve this version
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Create git tag matching IMAGE_TAG
run: |
git tag -f "go/${{ needs.prepare.outputs.image_tag }}"
git push origin "go/${{ needs.prepare.outputs.image_tag }}" --force

publish-image:
needs: [prepare, tag-for-go-module]
permissions:
id-token: write
packages: write
contents: read
uses: ./.github/workflows/publish-image.yaml
with:
client: ${{ inputs.CLIENT }}
image_name: "quay.io/${{ github.repository_owner }}/storge"
image_tag: ${{ inputs.IMAGE_TAG }}
support_platforms: ${{ inputs.PLATFORMS }}
cosign: ${{ inputs.CO_SIGN }}
secrets: inherit
client: ${{ needs.prepare.outputs.client }}
image_name: "ghcr.io/${{ github.repository_owner }}/storage"
image_tag: ${{ needs.prepare.outputs.image_tag }}
support_platforms: ${{ needs.prepare.outputs.platforms == 'true' }}
cosign: ${{ needs.prepare.outputs.cosign == 'true' }}
secrets: inherit

trigger-node-agent:
needs: [prepare, publish-image]
name: Trigger node-agent rebuild with matching tag
runs-on: ubuntu-latest
steps:
- name: Trigger node-agent build
env:
GH_TOKEN: ${{ secrets.CROSS_REPO_PAT }}
run: |
IMAGE_TAG="${{ needs.prepare.outputs.image_tag }}"
echo "Triggering node-agent build with IMAGE_TAG=${IMAGE_TAG} STORAGE_REF=${IMAGE_TAG}"
gh workflow run build.yaml \
--repo "${{ github.repository_owner }}/node-agent" \
--ref ${{ github.ref_name }} \
-f IMAGE_TAG="${IMAGE_TAG}" \
-f STORAGE_REF="${IMAGE_TAG}"
9 changes: 6 additions & 3 deletions .github/workflows/manual-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ on:
required: true
default: 'main'
node_agent_image:
description: 'Node Agent image (e.g. quay.io/kubescape/node-agent:latest)'
description: 'Node Agent image (e.g. ghcr.io/k8sstormcenter/node-agent:latest)'
required: true
default: 'quay.io/kubescape/node-agent:latest'
default: 'ghcr.io/k8sstormcenter/node-agent:latest'
storage_image:
description: 'Storage image (e.g. quay.io/kubescape/storage:latest)'
required: true
default: 'quay.io/kubescape/storage:latest'
default: 'ghcr.io/k8sstormcenter/storage:latest'
extra_helm_set_args:
description: 'Extra Helm --set arguments (comma-separated, e.g. foo=bar,bar=baz)'
required: false
Expand All @@ -27,6 +27,9 @@ on:
jobs:
integration-tests:
runs-on: ubuntu-large
permissions:
checks: write
pull-requests: write
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/pr-created.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ concurrency:

jobs:
pr-created:
permissions:
pull-requests: write
security-events: write
contents: read
uses: kubescape/workflows/.github/workflows/incluster-comp-pr-created.yaml@main
with:
CGO_ENABLED: 0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-merged.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
if: ${{ github.event.pull_request.merged == true }} ## Skip if not merged
uses: kubescape/workflows/.github/workflows/incluster-comp-pr-merged.yaml@main
with:
IMAGE_NAME: quay.io/${{ github.repository_owner }}/storage
IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/storage
IMAGE_TAG: v0.0.${{ github.run_number }}
COMPONENT_NAME: storage
CGO_ENABLED: 0
Expand Down
61 changes: 31 additions & 30 deletions .github/workflows/publish-image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,22 @@ on:
type: boolean
description: 'support amd64/arm64'
jobs:
check-secret:
name: check if QUAYIO_REGISTRY_USERNAME & QUAYIO_REGISTRY_PASSWORD is set in github secrets
runs-on: ubuntu-latest
outputs:
is-secret-set: ${{ steps.check-secret-set.outputs.is-secret-set }}
steps:
- name: check if QUAYIO_REGISTRY_USERNAME & QUAYIO_REGISTRY_PASSWORD is set in github secrets
id: check-secret-set
env:
QUAYIO_REGISTRY_USERNAME: ${{ secrets.QUAYIO_REGISTRY_USERNAME }}
QUAYIO_REGISTRY_PASSWORD: ${{ secrets.QUAYIO_REGISTRY_PASSWORD }}
run: |
echo "is-secret-set=${{ env.QUAYIO_REGISTRY_USERNAME != '' && env.QUAYIO_REGISTRY_PASSWORD != '' }}" >> $GITHUB_OUTPUT
# check-secret:
# name: check if QUAYIO_REGISTRY_USERNAME & QUAYIO_REGISTRY_PASSWORD is set in github secrets
# runs-on: ubuntu-latest
# outputs:
# is-secret-set: ${{ steps.check-secret-set.outputs.is-secret-set }}
# steps:
# - name: check if QUAYIO_REGISTRY_USERNAME & QUAYIO_REGISTRY_PASSWORD is set in github secrets
# id: check-secret-set
# env:
# QUAYIO_REGISTRY_USERNAME: ${{ secrets.QUAYIO_REGISTRY_USERNAME }}
# QUAYIO_REGISTRY_PASSWORD: ${{ secrets.QUAYIO_REGISTRY_PASSWORD }}
# run: |
# echo "is-secret-set=${{ env.QUAYIO_REGISTRY_USERNAME != '' && env.QUAYIO_REGISTRY_PASSWORD != '' }}" >> $GITHUB_OUTPUT
build-image:
needs: [check-secret]
if: needs.check-secret.outputs.is-secret-set == 'true'
# needs: [check-secret]
# if: needs.check-secret.outputs.is-secret-set == 'true'
name: Build image and upload to registry
runs-on: ubuntu-latest
steps:
Expand All @@ -51,24 +51,25 @@ jobs:
uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 # ratchet:docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@f03ac48505955848960e80bbb68046aa35c7b9e7 # ratchet:docker/setup-buildx-action@v2
- name: Login to Quay.io
env:
QUAY_PASSWORD: ${{ secrets.QUAYIO_REGISTRY_PASSWORD }}
QUAY_USERNAME: ${{ secrets.QUAYIO_REGISTRY_USERNAME }}
run: docker login -u="${QUAY_USERNAME}" -p="${QUAY_PASSWORD}" quay.io
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push image
if: ${{ inputs.support_platforms }}
run: docker buildx build . --file build/Dockerfile --tag ${{ inputs.image_name }}:${{ inputs.image_tag }} --tag ${{ inputs.image_name }}:latest --build-arg image_version=${{ inputs.image_tag }} --build-arg client=${{ inputs.client }} --push --platform linux/amd64,linux/arm64
- name: Build and push image without amd64/arm64 support
if: ${{ !inputs.support_platforms }}
run: docker buildx build . --file build/Dockerfile --tag ${{ inputs.image_name }}:${{ inputs.image_tag }} --tag ${{ inputs.image_name }}:latest --build-arg image_version=${{ inputs.image_tag }} --build-arg client=${{ inputs.client }} --push
- name: Install cosign
uses: sigstore/cosign-installer@4079ad3567a89f68395480299c77e40170430341 # ratchet:sigstore/cosign-installer@main
with:
cosign-release: 'v1.12.0'
- name: sign kubescape container image
if: ${{ inputs.cosign }}
env:
COSIGN_EXPERIMENTAL: "true"
run: |
cosign sign --force ${{ inputs.image_name }}
# - name: Install cosign
# uses: sigstore/cosign-installer@4079ad3567a89f68395480299c77e40170430341 # ratchet:sigstore/cosign-installer@main
# with:
# cosign-release: 'v3.0.4'
# - name: sign kubescape container image
# if: ${{ inputs.cosign }}
# env:
# COSIGN_EXPERIMENTAL: "true"
# run: |
# cosign sign --force ${{ inputs.image_name }}
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,16 @@ vendor/*
artifacts/simple-image/storage-apiserver
artifacts/simple-image/kube-sample-apiserver
logs-*/*
tmp/*
tmp/*

# Integration test artifacts
tests/integration-test-suite/junit-*.xml
tests/integration-test-suite/log-*.txt
tests/integration-test-suite/integration-test-suite.test

# TODO: Fix upstream - these test files import containerwatcher/v1 which was
# renamed to containerprofilemanager/v1 in node-agent. Until the upstream
# integration test suite is updated, local builds require patching these imports.
tests/integration-test-suite/case_*_test.go
tests/integration-test-suite/go.mod
tests/integration-test-suite/go.sum
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ DOCKERFILE_PATH=./build/Dockerfile
BINARY_NAME=storage

TAG?=test
IMAGE?=quay.io/kubescape/$(BINARY_NAME)
IMAGE?=ghcr.io/k8sstormcenter/$(BINARY_NAME)


build:
Expand Down
Loading