Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mozillazg/echo-k8s-webhook
Dump k8s Admission webhook request payload
https://github.com/mozillazg/echo-k8s-webhook
k8s kubernetes webhook
Last synced: 22 days ago
JSON representation
Dump k8s Admission webhook request payload
- Host: GitHub
- URL: https://github.com/mozillazg/echo-k8s-webhook
- Owner: mozillazg
- License: mit
- Created: 2021-07-01T15:01:56.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-04-05T13:53:59.000Z (over 1 year ago)
- Last Synced: 2024-11-15T01:30:25.639Z (about 2 months ago)
- Topics: k8s, kubernetes, webhook
- Language: Go
- Homepage:
- Size: 5.99 MB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# echo-k8s-webhook
Dump k8s Admission webhook requests.
## Usage
```
$ kubectl apply -f deploy/echo-k8s-webhook.yaml# create object with label `echo-k8s-webhook-enabled=true`
$ kubectl -n echo-k8s-webhook run test --image=busybox -l echo-k8s-webhook-enabled=true
pod/test created$ kubectl -n echo-k8s-webhook logs $(kubectl -n echo-k8s-webhook get pod -o name |grep echo-k8s-webhook) \
|grep CREATE | grep Pod |grep '"test' |tail -n 1 | jq -r .request | base64 --decode |jq{
"uid": "6e0c80e3-34f9-4ff4-8be0-6bd847574d10",
"kind": {
"group": "",
"version": "v1",
"kind": "Pod"
},
"resource": {
"group": "",
"version": "v1",
"resource": "pods"
},
"requestKind": {
"group": "",
"version": "v1",
"kind": "Pod"
},
"requestResource": {
"group": "",
"version": "v1",
"resource": "pods"
},
"name": "test",
"namespace": "echo-k8s-webhook",
"operation": "CREATE",
"userInfo": {
"username": "kubernetes-admin",
"groups": [
"system:masters",
"system:authenticated"
]
},
"object": {
"kind": "Pod",
"apiVersion": "v1",
"metadata": {
"name": "test",
"namespace": "echo-k8s-webhook",
"uid": "b09846d9-1064-46e2-a28b-e594d9cffa26",
"creationTimestamp": "2021-07-24T10:04:29Z",
"labels": {
"echo-k8s-webhook-enabled": "true"
}
},
"spec": {
"volumes": [
{
"name": "default-token-dcdgj",
"secret": {
"secretName": "default-token-dcdgj"
}
}
],
"containers": [
{
"name": "test",
"image": "busybox",
"resources": {},
"volumeMounts": [
{
"name": "default-token-dcdgj",
"readOnly": true,
"mountPath": "/var/run/secrets/kubernetes.io/serviceaccount"
}
],
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"imagePullPolicy": "Always"
}
],
"restartPolicy": "Always",
"terminationGracePeriodSeconds": 30,
"dnsPolicy": "ClusterFirst",
"serviceAccountName": "default",
"serviceAccount": "default",
"securityContext": {},
"schedulerName": "default-scheduler",
"tolerations": [
{
"key": "node.kubernetes.io/not-ready",
"operator": "Exists",
"effect": "NoExecute",
"tolerationSeconds": 300
},
{
"key": "node.kubernetes.io/unreachable",
"operator": "Exists",
"effect": "NoExecute",
"tolerationSeconds": 300
}
],
"priority": 0,
"enableServiceLinks": true
},
"status": {
"phase": "Pending",
"qosClass": "BestEffort"
}
},
"oldObject": null,
"dryRun": false,
"options": {
"kind": "CreateOptions",
"apiVersion": "meta.k8s.io/v1"
}
}
```