-
Notifications
You must be signed in to change notification settings - Fork 100
Expand file tree
/
Copy pathresponses.py
More file actions
27 lines (23 loc) · 921 Bytes
/
responses.py
File metadata and controls
27 lines (23 loc) · 921 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import json
import os
def response_base(req, allowed, msg=''):
body = {
'apiVersion': 'admission.k8s.io/v1beta1',
'kind': 'AdmissionReview',
'response': {
'uid': req['uid'],
'allowed': allowed,
'status': {
'message': msg
}
}
}
return json.dumps(body)
def response_allow(req, msg="Allowed resource for this cluster"):
print("[pid={}] Allowing admission {}: {}".format(os.getpid(), req['userInfo']['username'], msg))
return response_base(req=req, allowed=True,msg="Access granted")
def response_deny(req, msg="Prohibited resource for this cluster"):
print("[pid={}] Denying admission {}: {}".format(os.getpid(), req['userInfo']['username'], msg))
return response_base(req=req, allowed=False, msg=msg)
def response_invalid():
return response_base({"uid":""},allowed=False,msg="Invalid request")