Skip to content

Commit b0e1b25

Browse files
paigerube14Paige Patton
authored andcommitted
adding template
1 parent b554ec3 commit b0e1b25

File tree

2 files changed

+164
-0
lines changed

2 files changed

+164
-0
lines changed

CI/templates/mock_cerberus.yaml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: mock-cerberus-server
5+
namespace: default
6+
data:
7+
server.py: |
8+
#!/usr/bin/env python3
9+
from http.server import HTTPServer, BaseHTTPRequestHandler
10+
import json
11+
12+
class MockCerberusHandler(BaseHTTPRequestHandler):
13+
def do_GET(self):
14+
if self.path == '/':
15+
# Return True to indicate cluster is healthy
16+
self.send_response(200)
17+
self.send_header('Content-type', 'text/plain')
18+
self.end_headers()
19+
self.wfile.write(b'True')
20+
elif self.path.startswith('/history'):
21+
# Return empty history (no failures)
22+
self.send_response(200)
23+
self.send_header('Content-type', 'application/json')
24+
self.end_headers()
25+
response = {
26+
"history": {
27+
"failures": []
28+
}
29+
}
30+
self.wfile.write(json.dumps(response).encode())
31+
else:
32+
self.send_response(404)
33+
self.end_headers()
34+
35+
def log_message(self, format, *args):
36+
print(f"[MockCerberus] {format % args}")
37+
38+
if __name__ == '__main__':
39+
server = HTTPServer(('0.0.0.0', 8080), MockCerberusHandler)
40+
print("[MockCerberus] Starting mock cerberus server on port 8080...")
41+
server.serve_forever()
42+
---
43+
apiVersion: v1
44+
kind: Pod
45+
metadata:
46+
name: mock-cerberus
47+
namespace: default
48+
labels:
49+
app: mock-cerberus
50+
spec:
51+
containers:
52+
- name: mock-cerberus
53+
image: python:3.9-slim
54+
command: ["python3", "/app/server.py"]
55+
ports:
56+
- containerPort: 8080
57+
name: http
58+
volumeMounts:
59+
- name: server-script
60+
mountPath: /app
61+
volumes:
62+
- name: server-script
63+
configMap:
64+
name: mock-cerberus-server
65+
defaultMode: 0755
66+
---
67+
apiVersion: v1
68+
kind: Service
69+
metadata:
70+
name: mock-cerberus
71+
namespace: default
72+
spec:
73+
selector:
74+
app: mock-cerberus
75+
ports:
76+
- protocol: TCP
77+
port: 8080
78+
targetPort: 8080
79+
type: ClusterIP
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: mock-cerberus-unhealthy-server
5+
namespace: default
6+
data:
7+
server.py: |
8+
#!/usr/bin/env python3
9+
from http.server import HTTPServer, BaseHTTPRequestHandler
10+
import json
11+
12+
class MockCerberusUnhealthyHandler(BaseHTTPRequestHandler):
13+
def do_GET(self):
14+
if self.path == '/':
15+
# Return False to indicate cluster is unhealthy
16+
self.send_response(200)
17+
self.send_header('Content-type', 'text/plain')
18+
self.end_headers()
19+
self.wfile.write(b'False')
20+
elif self.path.startswith('/history'):
21+
# Return history with failures
22+
self.send_response(200)
23+
self.send_header('Content-type', 'application/json')
24+
self.end_headers()
25+
response = {
26+
"history": {
27+
"failures": [
28+
{
29+
"component": "node",
30+
"name": "test-node",
31+
"timestamp": "2024-01-01T00:00:00Z"
32+
}
33+
]
34+
}
35+
}
36+
self.wfile.write(json.dumps(response).encode())
37+
else:
38+
self.send_response(404)
39+
self.end_headers()
40+
41+
def log_message(self, format, *args):
42+
print(f"[MockCerberusUnhealthy] {format % args}")
43+
44+
if __name__ == '__main__':
45+
server = HTTPServer(('0.0.0.0', 8080), MockCerberusUnhealthyHandler)
46+
print("[MockCerberusUnhealthy] Starting mock cerberus unhealthy server on port 8080...")
47+
server.serve_forever()
48+
---
49+
apiVersion: v1
50+
kind: Pod
51+
metadata:
52+
name: mock-cerberus-unhealthy
53+
namespace: default
54+
labels:
55+
app: mock-cerberus-unhealthy
56+
spec:
57+
containers:
58+
- name: mock-cerberus-unhealthy
59+
image: python:3.9-slim
60+
command: ["python3", "/app/server.py"]
61+
ports:
62+
- containerPort: 8080
63+
name: http
64+
volumeMounts:
65+
- name: server-script
66+
mountPath: /app
67+
volumes:
68+
- name: server-script
69+
configMap:
70+
name: mock-cerberus-unhealthy-server
71+
defaultMode: 0755
72+
---
73+
apiVersion: v1
74+
kind: Service
75+
metadata:
76+
name: mock-cerberus-unhealthy
77+
namespace: default
78+
spec:
79+
selector:
80+
app: mock-cerberus-unhealthy
81+
ports:
82+
- protocol: TCP
83+
port: 8080
84+
targetPort: 8080
85+
type: ClusterIP

0 commit comments

Comments
 (0)