-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
Quality / Stability / Reliability
-
False
-
-
False
-
Moderate
Description of problem:
SelinuxProfile and SeccompProfile Reconciliation generate lots of events
Version-Release number of selected component (if applicable):
SPO 0.8.6 OCP 4.17
How reproducible:
Each time on Power and Intel installations
Steps to Reproduce:
1. Create a 4.17 Cluster 2. oc patch spod spod -p '{"spec":{"enableLogEnricher":true}}' --type=merge -n openshift-security-profiles # Define a single namespace for all tests NAMESPACE="sectest" for ((i=1; i<=50; i++)) do echo "Iteration $i: Creating SELinuxProfile and associated resources..." # Define the profile name for each iteration PROFILE="rec-selinux-$i" # Create ProfileRecording cat <<EOF | oc apply -f - apiVersion: security-profiles-operator.x-k8s.io/v1alpha1 kind: ProfileRecording metadata: name: $PROFILE namespace: $NAMESPACE spec: kind: SelinuxProfile mergeStrategy: none podSelector: matchLabels: app: demo-$i recorder: logs EOF # Create a unique Pod for each ProfileRecording cat <<EOF | oc apply -f - apiVersion: v1 kind: Pod metadata: name: demo-app-$i namespace: $NAMESPACE labels: app: demo-$i spec: containers: - image: quay.io/ktalathi/spo-demo:latest name: demo args: - /log/demologs.log volumeMounts: - name: logs mountPath: /log/ restartPolicy: Never volumes: - name: logs hostPath: path: /var/log/ type: Directory EOF echo "Waiting 30 seconds for Pod to start..." sleep 30 # Delete the Pod after running echo "Deleting Pod demo-app-$i in namespace $NAMESPACE..." oc delete pod demo-app-$i -n $NAMESPACE echo "Waiting 30 seconds after Pod deletion..." sleep 30 # Wait for the SELinuxProfile to be ready echo "Waiting for SelinuxProfile $PROFILE-demo to become ready..." oc wait --for=condition=ready --timeout=300s selinuxprofile $PROFILE-demo -n $NAMESPACE echo "Iteration $i completed!" done echo "All iterations completed successfully!" 3.
Actual results:
# oc get events --all-namespaces -o json | jq -r '.items[] | select(.involvedObject.kind == "SelinuxProfile") | "\(.involvedObject.name):\(.count)"' | \ awk -F: 'BEGIN {print "profile\tcount"} {count[$1] += $2; total += $2} END {for (profile in count) print profile, count[profile]; print "Total events:", total}' | sort SelinuxProfile Event count rec-selinux-10-demo 974 rec-selinux-11-demo 955 rec-selinux-12-demo 961 rec-selinux-13-demo 955 rec-selinux-14-demo 936 rec-selinux-15-demo 904 rec-selinux-16-demo 898 rec-selinux-17-demo 904 rec-selinux-18-demo 904 rec-selinux-19-demo 844 rec-selinux-1-demo 1078 rec-selinux-20-demo 850 rec-selinux-21-demo 841 rec-selinux-22-demo 848 rec-selinux-23-demo 801 rec-selinux-24-demo 778 rec-selinux-25-demo 788 rec-selinux-26-demo 783 rec-selinux-27-demo 749 rec-selinux-28-demo 727 rec-selinux-29-demo 717 rec-selinux-2-demo 1068 rec-selinux-30-demo 724 rec-selinux-31-demo 725 rec-selinux-32-demo 669 rec-selinux-33-demo 655 rec-selinux-34-demo 660 rec-selinux-35-demo 658 rec-selinux-36-demo 608 rec-selinux-37-demo 600 rec-selinux-38-demo 601 rec-selinux-39-demo 597 rec-selinux-3-demo 1072 rec-selinux-40-demo 557 rec-selinux-41-demo 550 rec-selinux-42-demo 548 rec-selinux-43-demo 535 rec-selinux-44-demo 497 rec-selinux-45-demo 497 rec-selinux-46-demo 491 rec-selinux-47-demo 457 rec-selinux-48-demo 437 rec-selinux-49-demo 439 rec-selinux-4-demo 1080 rec-selinux-50-demo 438 rec-selinux-5-demo 1031 rec-selinux-6-demo 1017 rec-selinux-7-demo 1020 rec-selinux-8-demo 1014 rec-selinux-9-demo 1012 Total events: 38452
Expected results:
The 38K events seems high, and in practice could lead to event pressure on etcd.
Additional info:
Kaushik encountered this