Skip to content

Commit 707d375

Browse files
committed
feat: minify event data and expose etcd client timeout
1 parent ed889ed commit 707d375

12 files changed

Lines changed: 129 additions & 22 deletions

File tree

eventrouter/echo.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from http.server import BaseHTTPRequestHandler, HTTPServer
2+
3+
class Handler(BaseHTTPRequestHandler):
4+
def do_POST(self):
5+
length = int(self.headers.get('Content-Length'))
6+
body = self.rfile.read(length)
7+
print("=== RECEIVED POST ===")
8+
print(body.decode('utf-8'))
9+
print("======================")
10+
self.send_response(200)
11+
self.end_headers()
12+
13+
httpd = HTTPServer(("0.0.0.0", 9092), Handler)
14+
print("Listening on :9092")
15+
httpd.serve_forever()

eventrouter/internal/router/handler.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,21 +71,19 @@ func (c *pusher) Handle(evt corev1.Event) {
7171
return
7272
}
7373

74-
if len(evt.ManagedFields) == 0 {
75-
evt.ManagedFields = nil
76-
}
74+
out := minifyEvent(evt)
7775

78-
labels := evt.GetLabels()
76+
labels := out.GetLabels()
7977
if labels == nil {
8078
labels = map[string]string{
8179
keyCompositionID: compositionId,
8280
}
8381
} else {
8482
labels[keyCompositionID] = compositionId
8583
}
86-
evt.SetLabels(labels)
84+
out.SetLabels(labels)
8785

88-
c.notifyAll(all, evt)
86+
c.notifyAll(all, out)
8987
}
9088

9189
func (c *pusher) notifyAll(all map[string]v1alpha1.RegistrationSpec, evt corev1.Event) {
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package router
2+
3+
import (
4+
corev1 "k8s.io/api/core/v1"
5+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
6+
)
7+
8+
func minifyEvent(e corev1.Event) corev1.Event {
9+
out := corev1.Event{
10+
TypeMeta: metav1.TypeMeta{
11+
Kind: "Event",
12+
APIVersion: "v1",
13+
},
14+
ObjectMeta: metav1.ObjectMeta{
15+
Name: e.ObjectMeta.Name,
16+
Namespace: e.ObjectMeta.Namespace,
17+
Labels: e.ObjectMeta.Labels,
18+
},
19+
Reason: e.Reason,
20+
Message: e.Message,
21+
Type: e.Type,
22+
}
23+
24+
// EventTime può rimanere
25+
out.EventTime = e.EventTime
26+
27+
// Timestamp legacy azzerati
28+
out.FirstTimestamp = metav1.Time{}
29+
out.LastTimestamp = metav1.Time{}
30+
31+
// Source vuoto
32+
out.Source = corev1.EventSource{}
33+
34+
// InvolvedObject leggero
35+
out.InvolvedObject = corev1.ObjectReference{
36+
Kind: e.InvolvedObject.Kind,
37+
Namespace: e.InvolvedObject.Namespace,
38+
Name: e.InvolvedObject.Name,
39+
UID: e.InvolvedObject.UID,
40+
}
41+
42+
// Rimuovi campi rumorosi
43+
out.ReportingController = ""
44+
out.ReportingInstance = ""
45+
out.Action = ""
46+
out.ManagedFields = nil
47+
48+
return out
49+
}

eventrouter/manifests/deployment.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ spec:
2323
image: kind.local/eventrouter:latest
2424
imagePullPolicy: Never
2525
args:
26+
- --namespace=demo-system
2627
- --insecure=true
2728
- --debug=true
28-
- --v=6
29+
- --v=4
2930
securityContext:
3031
allowPrivilegeEscalation: false
3132
readOnlyRootFilesystem: false

eventrouter/scripts/1.kind-up.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
4+
kind get kubeconfig >/dev/null 2>&1 || \
5+
cat <<EOF | kind create cluster --config=-
6+
kind: Cluster
7+
apiVersion: kind.x-k8s.io/v1alpha4
8+
nodes:
9+
- role: control-plane
10+
extraPortMappings:
11+
- containerPort: 9091 # porta del server echo nel pod
12+
hostPort: 9091 # porta sul tuo Mac
13+
EOF
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,6 @@ kubectl apply -f manifests/sa.yaml
99
kubectl apply -f manifests/rbac.yaml
1010
kubectl apply -f manifests/rbac-bind.yaml
1111
kubectl apply -f manifests/deployment.yaml
12+
13+
14+
kubectl apply -f testdata/registration.sample.yaml
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
4+
cat <<EOF > echo.py
5+
from http.server import BaseHTTPRequestHandler, HTTPServer
6+
7+
class Handler(BaseHTTPRequestHandler):
8+
def do_POST(self):
9+
length = int(self.headers.get('Content-Length'))
10+
body = self.rfile.read(length)
11+
print("=== RECEIVED POST ===")
12+
print(body.decode('utf-8'))
13+
print("======================")
14+
self.send_response(200)
15+
self.end_headers()
16+
17+
httpd = HTTPServer(("0.0.0.0", 9092), Handler)
18+
print("Listening on :9092")
19+
httpd.serve_forever()
20+
EOF
21+
22+
python3 echo.py
23+
24+
rm echo.py
25+

eventrouter/scripts/kind-up.sh

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: eventrouter.krateo.io/v1alpha1
22
kind: Registration
33
metadata:
4-
name: httpecho-registration
4+
name: eventrouter-echo
55
spec:
6-
serviceName: HTTP Echo
7-
endpoint: http://127.0.0.1:9090/handle
6+
serviceName: EventRouter Echo
7+
endpoint: http://127.0.0.1:9092/handle

0 commit comments

Comments
 (0)