GitXplorerGitXplorer
m

echo-k8s-webhook

public
4 stars
1 forks
0 issues

Commits

List of commits on branch master.
Verified
0fbf1d4f482c80049c4a440327f1fc0973d709b0

0.6.0

mmozillazg committed 2 years ago
Verified
78f9de924a6bf3e3ab39d55f0309aa665eb7adb5

improve test

mmozillazg committed 2 years ago
Verified
083557288f27c9dc78ca82717bb28322a910bf88

fix e2e test

mmozillazg committed 2 years ago
Verified
e09ae9172ae0607aa6df80b7d56e47c463a508fe

add a init container to avoid Unhealthy event when startup

mmozillazg committed 2 years ago
Verified
16ceb65b9122ddb4c22061afb24ae647c5017820

change to use ctlrhelper to setup cert

mmozillazg committed 2 years ago
Verified
329c67286578f8a23a220d5ecb647ff2b10104b0

use ctlrhelper to setup webhook

mmozillazg committed 2 years ago

README

The README file for this repository.

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"
  }
}