diff --git a/README.md b/README.md new file mode 100644 index 0000000..25723a8 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# A repo to keep some learning codes + diff --git a/Webhook/README.MD b/Webhook/README.MD new file mode 100644 index 0000000..72019d7 --- /dev/null +++ b/Webhook/README.MD @@ -0,0 +1,3 @@ +## This repo is a simple implementation of Kubernetes Webhook + +The tutorial link is [here](https://slack.engineering/simple-kubernetes-webhook/) \ No newline at end of file diff --git a/Webhook/certificate/application/webhook.crt b/Webhook/certificate/application/webhook.crt new file mode 100644 index 0000000..8c2c6d1 --- /dev/null +++ b/Webhook/certificate/application/webhook.crt @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFKjCCAxKgAwIBAgIUI3VeFS1EvhXZkYFN/M4+79hp/bowDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjA1MjUwNjEyNTJaFw0yMzA1 +MjUwNjEyNTJaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREw +DwYDVQQHDAhTYW4gSm9zZTEPMA0GA1UECgwGamVyeGllMRAwDgYDVQQLDAd3ZWJo +b29rMSIwIAYDVQQDDBlzaW1wbGUta3ViZXJuZXRlcy13ZWJob29rMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu0AdhkVz0D0QIyFu/o0vJifWhWNKPM9o +DhO6zI97DSOYajsPmWSKYgaR+39ziNiIeI7mfnRWLaNlhIuSItP3OPld0r5U1v1V +0gyGnpA0lrQnI2CbxIofvtiAaHhuTPVUlyz5IE23UlFTkb4c4MnGjzLpT1HjMiwY +WudGxl/PdTdH2unzeBe0Fxqxw+7UBW9/0BZ+8UUz5Gc2J9ToO/Lw98P3W+gXows5 +BcVP3cpoOZ+oEj0jHNGP5Qw5Vh8i+LPKPiZT4R+D08725a9MZSLDvwbfq3wMUvtp +3cnrxcE+GiR5IUEteiZ2K0yYBF45Q0UjwM+KYRB50G+Y/pqIRtRcIwIDAQABo4Ha +MIHXMB8GA1UdIwQYMBaAFLpOXN04UnPSI9hFISW8ox2gh4ldMAkGA1UdEwQCMAAw +gagGA1UdEQSBoDCBnYIZc2ltcGxlLWt1YmVybmV0ZXMtd2ViaG9va4Iic2ltcGxl +LWt1YmVybmV0ZXMtd2ViaG9vay5sZWFybmluZ4Imc2ltcGxlLWt1YmVybmV0ZXMt +d2ViaG9vay5sZWFybmluZy5zdmOCNHNpbXBsZS1rdWJlcm5ldGVzLXdlYmhvb2su +bGVhcm5pbmcuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQELBQADggIBALSb +xMGSSv4/OXcA+1SN6vIL1qyttik7iO8OXwq6PSyyQdc/qo89TimuFlJrzefyB0dR +9U2V+xH+Z4M9KQ+BvgpKltjEifu6WHhukhzPBNe6l6+v1VGkv9oLFq9NNbk9wOQt +bPfeUc/GkrWxA+69jq7nBnxDfRHjI3ATNPpMRo2M1uDf8z1QnJOFQcBRy463tSZ3 +yk4ofYsVhUWGg1Mq/mAGk7OVBkyYHc+NK9J/qcRU9nU8uh6wLo62e6sHM5IVYzcU +yukxtFm2wgPvHPDdG/U1v0Je/HjgZTl3uL1I1psEedkwwCnGbgMO0hOiZGWWkFbz +GM72yPffcZJ4uw22wasVrDMPX+Kkd9SJKXEwMh7L9gKD+o3sLHKqwyHqD459/9at +FjYBnO0XHv2dKXJV+RPQpo1jeBkA3HHmp/K57Cy2PJffENGUDcWxzVh/4P9ILJT8 +zFRGJKZiFQfihbApfrSi7XhPhYt+TV+N7oYi4dHOX18h6JYFBU8RKwA6dqlXW1x4 +F9Wuy7/Q1ONqUuYQLhXGC5LmUrmyzQ1Zjx6efCmTqDVU+Y7zg+DLSCWlw2h5IPoa +rn+a207Ggo2HBVwV6fWygLHLqo9+Z0BFcsRdpjCAXe+zR/1sODZXsc065BQcuzFA +WBz2ecNrX9gVQ3YX8jdETAUj96GWPswgakKwfUJd +-----END CERTIFICATE----- diff --git a/Webhook/certificate/application/webhook.csr b/Webhook/certificate/application/webhook.csr new file mode 100644 index 0000000..9955337 --- /dev/null +++ b/Webhook/certificate/application/webhook.csr @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIDozCCAosCAQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWEx +ETAPBgNVBAcMCFNhbiBKb3NlMQ8wDQYDVQQKDAZqZXJ4aWUxEDAOBgNVBAsMB3dl +Ymhvb2sxIjAgBgNVBAMMGXNpbXBsZS1rdWJlcm5ldGVzLXdlYmhvb2swggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7QB2GRXPQPRAjIW7+jS8mJ9aFY0o8 +z2gOE7rMj3sNI5hqOw+ZZIpiBpH7f3OI2Ih4juZ+dFYto2WEi5Ii0/c4+V3SvlTW +/VXSDIaekDSWtCcjYJvEih++2IBoeG5M9VSXLPkgTbdSUVORvhzgycaPMulPUeMy +LBha50bGX891N0fa6fN4F7QXGrHD7tQFb3/QFn7xRTPkZzYn1Og78vD3w/db6Bej +CzkFxU/dymg5n6gSPSMc0Y/lDDlWHyL4s8o+JlPhH4PTzvblr0xlIsO/Bt+rfAxS ++2ndyevFwT4aJHkhQS16JnYrTJgEXjlDRSPAz4phEHnQb5j+mohG1FwjAgMBAAGg +geEwgd4GCSqGSIb3DQEJDjGB0DCBzTALBgNVHQ8EBAMCBDAwEwYDVR0lBAwwCgYI +KwYBBQUHAwEwgagGA1UdEQSBoDCBnYIZc2ltcGxlLWt1YmVybmV0ZXMtd2ViaG9v +a4Iic2ltcGxlLWt1YmVybmV0ZXMtd2ViaG9vay5sZWFybmluZ4Imc2ltcGxlLWt1 +YmVybmV0ZXMtd2ViaG9vay5sZWFybmluZy5zdmOCNHNpbXBsZS1rdWJlcm5ldGVz +LXdlYmhvb2subGVhcm5pbmcuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQEL +BQADggEBAKLy5ekfeJTsZoC9KMlJwmmJeKbIo9VYfo/WTyPIjw0v0jW/GzAM/mUm +G+VTBFBCpwwuuJ2QF7I9wUn1meOKXL2Ce2WJwTp2GfSYy7LjmN1J1KuA6MVWh2Ku +A5e2E6plTgyOeNzy/BFfOeDHEWqkL7kZFy+hMtYG10ZnvvBJ6w5d1aawTT+ig7pq +S0mJpjWEy3D1jtDP4XTW1BQtZz3yhxO4DNULf7CQziBfbtQSumi/o4pwbUvCsYOd +/PiY2GGIYUMvqvok4CBTpA4+XrYdbMxwyhom57E8CgHAQrj1YsHCdpYgOmiI7ofV +SEOKxnk4I6q2xLOdM0bBAIc8kZtxa14= +-----END CERTIFICATE REQUEST----- diff --git a/Webhook/certificate/application/webhook.key b/Webhook/certificate/application/webhook.key new file mode 100644 index 0000000..585ee61 --- /dev/null +++ b/Webhook/certificate/application/webhook.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC7QB2GRXPQPRAj +IW7+jS8mJ9aFY0o8z2gOE7rMj3sNI5hqOw+ZZIpiBpH7f3OI2Ih4juZ+dFYto2WE +i5Ii0/c4+V3SvlTW/VXSDIaekDSWtCcjYJvEih++2IBoeG5M9VSXLPkgTbdSUVOR +vhzgycaPMulPUeMyLBha50bGX891N0fa6fN4F7QXGrHD7tQFb3/QFn7xRTPkZzYn +1Og78vD3w/db6BejCzkFxU/dymg5n6gSPSMc0Y/lDDlWHyL4s8o+JlPhH4PTzvbl +r0xlIsO/Bt+rfAxS+2ndyevFwT4aJHkhQS16JnYrTJgEXjlDRSPAz4phEHnQb5j+ +mohG1FwjAgMBAAECggEBAJ2avH78TBtUmhWHmX2lZa7uzw+cX6rJQ6K9lneAuKh5 +clrPdTS9u///2bVeM+dVoaAfXv/GeZaWNecW9pxb3nTU5tRvoMcHmclfA5vIcor5 +/Qs40ELfoxKl9YZ4/xXFVDqd/t3iq88cZoOACZxmGLsEtf0uRlU/agxxJ0/m6p2T +xVzXaVqyUTHvri1sixju1h9UGzDiaQA7IxeuVwDhnmWn0+IXNXGwEc9KqEroLX1X +kR7AstZ4CjHXj8f8W13aCKkEBAU7NewSzCLNP4eBQwx4kyokcQiM6hTcFF7QRNOZ +eP7I0lj8wZrOrSKT01cENsKbVCdvtmn9l+d0xyZjh+kCgYEA620llRotvKgGENTT +vO6vfaU1mdAhh8rHrpy5Bsipix9GmzX+muPgFZBJUmtCzhdSE82siZGZZPAqFi1Q +8JgCRsZIepMUFgeOAeS4xh1OGcYVqXkPTkMEMBbkmIW1Mi2i1Ref7VRzqb3ic87B +QlvtI2GiiX2lsNBGlND/UfCFSQ0CgYEAy50y36UaZ50waK4xqoG6pwz+igEWCaPr +IkO6m4wTabN2i2XpFL96IUanpkOq8O+kXhxpfzgypYi+1wbLvXYwQEt0QL7+yUUW +Sq6w3xiFkMTEAqyh4p+3Do1VTkx8i40Fm70G7JLgZKq2C2u+2AcyXULtBQioJNxL +ewc8fymNje8CgYEAkia/FxIaZKz2nwpQrFCM93ZRkTxJJJC5Z+f5YYG+5xQyc/aQ +Kb3fheN98UGPRnvpw0uCmiCeVrBVoFDfl4z2lNNReW7HIGnuObSxFKRqsMts9Tmn +S9GEzwnXPex7sTvtg1ZYPTCZYT31UCmBhl2lGLrq+WncK6kQuCAK8OZdCB0CgYA1 +z42qXU/lIj2w7Jhjn3VcwKpkfnT8hz2VCKFAinx26t7haEV5HkGAmdOktS1wD2U5 +GfknjgqUhNcqrLkbkSifVVGb6t4bAw8pHZHQ5AIoiFfk/Qqrgdo3FlL9Jmmj19kr +l4FE9GwpLpR94DPHk99TlmRdeDQ3yaCJGxh54tluMQKBgD9AXfEE+5x7C0BsFAdc ++CLWlqpCiJLpFZTfrDtyA9R1B3/uXiff7pvvK1R0n9jNJV6oX1jh9AFIaYzGS+oE +77ZIBCGK1K5GT/ntTDRMB1+Ddgqb2PhWJVa1UeM+Bq2kOWLFZp3ffeWBHKY2pOZY +pOmtvADslw5w5Y3cN/E0tE40 +-----END PRIVATE KEY----- diff --git a/Webhook/certificate/ca/ca.crt b/Webhook/certificate/ca/ca.crt new file mode 100644 index 0000000..eb90f06 --- /dev/null +++ b/Webhook/certificate/ca/ca.crt @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIUZJAi9dkSGjWSd+rPn7vL9kqIn48wDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjA1MjUwNTUzNTdaFw00OTEw +MTAwNTUzNTdaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDa80zLyp309N3Qcia1L3d24uk6KQdb1V+uCbriBooK ++azM6jaejnVIz3naLecBl1wFV/mL9SVLsth9inmsw0L9P6iQDxbQa9qsi0k6P4j+ +CyDMYNsZd/0pm5zYZaDHgHoGt1wXWVgnVSRzbIJwK0GaBoRnwFLWJ+HrEhC24/uA +ooT8Au7RtdaBIni80d1oiQPeOm4W5L4PFNxdcr2ayYqBaXQwzRjVi99kwLCFB0cn +LbbmHbdHeymnp4+QO1zpr2CZqYmsbXV58CF2tjq6aRXCWtXYejgbvlPfTlrZdOJo +F0kyAgqdnfUcLpBmhgRtrzfMDFIv/S7qiZcjeGVe8h69aCPkZl4zaPerPQXffwQw +rYMrHX6l29JkDLpvXG0P9NETskUbmn/r9JPcHBKCArZb37hTo5bYIzyhIFdKP2qw +Wvh6z02l5felVi6MvnK3VcXbVE1qGv9IJ66FneF2Rn66wAh8Odmosu7D1LAJpiwu +D6GFZFMMRkSOqdyHbmyOG7HFWp/brgkdDEszd1P7EywmbaZt4h+GLeUmXX4bk4f1 +u0liEjTjRFssunPTIm8o215G3Oarb9XrJ0JByKJ5+htgXQ1A3ElZlbVaFvTp/EbB +4CcaoetEK0gHftG4HpDgBzbsDqavKxG34M+zi/MBmWVI9MRGx2ierfB+mXYvoBW0 +iQIDAQABo1MwUTAdBgNVHQ4EFgQUuk5c3ThSc9Ij2EUhJbyjHaCHiV0wHwYDVR0j +BBgwFoAUuk5c3ThSc9Ij2EUhJbyjHaCHiV0wDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQsFAAOCAgEAcfiP93QJc0JZlkZdCpzVFeXwWAON8AdWsDbnM7DGUUmk +pLiKHSy7WFsL5axkqew8yFOCMqOZaTfx16Qc3wfxRAVAuMDsB+g3BFMjF3CoyTAx +3BSCTkO+F0f9OucWx2w90Klw29vJFpIxB1H7lKniIydWfllAB+72EcZszqxj5+rq +qCk8/h9SFnblUzlRH3DE6O0rnhnDME38cI6Y/t8u2wqJ62ZNPx2Dvx8Sy1V/5PH9 +O0f+WyjXTryruzn5VQNRKKH7cBExoaDDY81gTQxrrdx8/rN8KMaJ2ijYL8t4xB8U +KqOnWCSbdLcbAyqmvSSfhHUJ8WTMWtQMzWYuNj/CKZM7BWTokagyZeX9TJCngrJ+ +Ujfa77Ew1QQoDHr/8nNiLnCaYW6yLTEK9iYdWyC8Sw/cFMhY4o4EL3T0R6zoHNY1 +NrfaHDDoQ5jq77j+nKF9P7y4aLFy9bTAIEnLjXsF95bX4yVIqnTRmmkLHqvV/n6A +H7HWKo5npWp6ZNtpa9mAbE6D8NGsxlmCoGF4Sefr2vH8krKE2bdFL/d8z36PsAeL +S6VeFeZ0WJlLOkulDKJOD7pqvWEb1w6KXtRIFRqWB3yyixl+OzyKQk4Ayrooj92z +0tLf9bT/d9JTkuoIMVMbosvq8mmw3saMfH/2z8rfQ310NirwLeaARKFaGAY3qDI= +-----END CERTIFICATE----- diff --git a/Webhook/certificate/ca/ca.key b/Webhook/certificate/ca/ca.key new file mode 100644 index 0000000..0f7a233 --- /dev/null +++ b/Webhook/certificate/ca/ca.key @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/Webhook/certificate/ca/ca.srl b/Webhook/certificate/ca/ca.srl new file mode 100644 index 0000000..8444052 --- /dev/null +++ b/Webhook/certificate/ca/ca.srl @@ -0,0 +1 @@ +23755E152D44BE15D991814DFCCE3EEFD869FDBA diff --git a/Webhook/certificate/config.conf b/Webhook/certificate/config.conf new file mode 100644 index 0000000..4ae206e --- /dev/null +++ b/Webhook/certificate/config.conf @@ -0,0 +1,25 @@ +[req] +distinguished_name = req_distinguished_name +default_bits = 2048 +default_md = sha256 +req_extensions = v3_req +prompt = no + +[req_distinguished_name] +C = US +ST = California +L = San Jose +O = jerxie +OU = webhook +CN = simple-kubernetes-webhook + +[v3_req] +keyUsage = keyEncipherment, dataEncipherment +extendedKeyUsage = serverAuth +subjectAltName = @alt_names + +[alt_names] +DNS.1 = simple-kubernetes-webhook +DNS.2 = simple-kubernetes-webhook.learning +DNS.3 = simple-kubernetes-webhook.learning.svc +DNS.4 = simple-kubernetes-webhook.learning.svc.cluster.local \ No newline at end of file diff --git a/Webhook/certificate/create-ca.sh b/Webhook/certificate/create-ca.sh new file mode 100644 index 0000000..d9a203c --- /dev/null +++ b/Webhook/certificate/create-ca.sh @@ -0,0 +1,4 @@ +openssl genrsa -out ca/ca.key 4096 + + +openssl req -new -x509 -days 10000 -key ca/ca.key -out ca/ca.crt diff --git a/Webhook/certificate/create-csr.sh b/Webhook/certificate/create-csr.sh new file mode 100644 index 0000000..b0216d9 --- /dev/null +++ b/Webhook/certificate/create-csr.sh @@ -0,0 +1,4 @@ +rm -rf application/* + +#openssl genrsa -out application/webhook.key 4096 +openssl req -new -sha256 -nodes -out application/webhook.csr -newkey rsa:2048 -keyout application/webhook.key -config config.conf diff --git a/Webhook/certificate/domain.ext b/Webhook/certificate/domain.ext new file mode 100644 index 0000000..f540632 --- /dev/null +++ b/Webhook/certificate/domain.ext @@ -0,0 +1,8 @@ +authorityKeyIdentifier=keyid,issuer +basicConstraints=CA:FALSE +subjectAltName = @alt_names +[alt_names] +DNS.1 = simple-kubernetes-webhook +DNS.2 = simple-kubernetes-webhook.learning +DNS.3 = simple-kubernetes-webhook.learning.svc +DNS.4 = simple-kubernetes-webhook.learning.svc.cluster.local \ No newline at end of file diff --git a/Webhook/certificate/sign-cert.sh b/Webhook/certificate/sign-cert.sh new file mode 100644 index 0000000..01cac10 --- /dev/null +++ b/Webhook/certificate/sign-cert.sh @@ -0,0 +1,6 @@ +# CA signed +openssl x509 -req -CA ca/ca.crt -CAkey ca/ca.key -in application/webhook.csr -out application/webhook.crt -days 365 -CAcreateserial -extfile domain.ext + + +# self-signed. +# openssl x509 -signkey application/webhook.key -in application/webhook.csr -req -days 365 -out application/webhook.crt diff --git a/Webhook/certificate/verify-application-cert.sh b/Webhook/certificate/verify-application-cert.sh new file mode 100644 index 0000000..c4f4102 --- /dev/null +++ b/Webhook/certificate/verify-application-cert.sh @@ -0,0 +1 @@ +openssl x509 -text -noout -in application/webhook.crt \ No newline at end of file diff --git a/Webhook/deployment/deployment.yaml b/Webhook/deployment/deployment.yaml new file mode 100644 index 0000000..134b44f --- /dev/null +++ b/Webhook/deployment/deployment.yaml @@ -0,0 +1,24 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: simple-kubernetes-webhook + namespace: learning +spec: + selector: + matchLabels: + app: simple-kubernetes-webhook + template: + metadata: + labels: + app: simple-kubernetes-webhook + spec: + containers: + - image: simple-kubernetes-webhook:latest + name: simple-kubernetes-webhook + volumeMounts: + - name: tls + mountPath: "/etc/admission-webhook/tls" + volumes: + - name: tls + secret: + secretName: simple-kubernetes-webhook-tls \ No newline at end of file diff --git a/Webhook/deployment/secret.yaml b/Webhook/deployment/secret.yaml new file mode 100644 index 0000000..b3dc402 --- /dev/null +++ b/Webhook/deployment/secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: simple-kubernetes-webhook-tls +type: kubernetes.io/tls +data: + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZLakNDQXhLZ0F3SUJBZ0lVSTNWZUZTMUV2aFhaa1lGTi9NNCs3OWhwL2Jvd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1JURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpEQWVGdzB5TWpBMU1qVXdOakV5TlRKYUZ3MHlNekExCk1qVXdOakV5TlRKYU1Id3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SRXcKRHdZRFZRUUhEQWhUWVc0Z1NtOXpaVEVQTUEwR0ExVUVDZ3dHYW1WeWVHbGxNUkF3RGdZRFZRUUxEQWQzWldKbwpiMjlyTVNJd0lBWURWUVFEREJsemFXMXdiR1V0YTNWaVpYSnVaWFJsY3kxM1pXSm9iMjlyTUlJQklqQU5CZ2txCmhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdTBBZGhrVnowRDBRSXlGdS9vMHZKaWZXaFdOS1BNOW8KRGhPNnpJOTdEU09ZYWpzUG1XU0tZZ2FSKzM5emlOaUllSTdtZm5SV0xhTmxoSXVTSXRQM09QbGQwcjVVMXYxVgowZ3lHbnBBMGxyUW5JMkNieElvZnZ0aUFhSGh1VFBWVWx5ejVJRTIzVWxGVGtiNGM0TW5HanpMcFQxSGpNaXdZCld1ZEd4bC9QZFRkSDJ1bnplQmUwRnhxeHcrN1VCVzkvMEJaKzhVVXo1R2MySjlUb08vTHc5OFAzVytnWG93czUKQmNWUDNjcG9PWitvRWowakhOR1A1UXc1Vmg4aStMUEtQaVpUNFIrRDA4NzI1YTlNWlNMRHZ3YmZxM3dNVXZ0cAozY25yeGNFK0dpUjVJVUV0ZWlaMksweVlCRjQ1UTBVandNK0tZUkI1MEcrWS9wcUlSdFJjSXdJREFRQUJvNEhhCk1JSFhNQjhHQTFVZEl3UVlNQmFBRkxwT1hOMDRVblBTSTloRklTVzhveDJnaDRsZE1Ba0dBMVVkRXdRQ01BQXcKZ2FnR0ExVWRFUVNCb0RDQm5ZSVpjMmx0Y0d4bExXdDFZbVZ5Ym1WMFpYTXRkMlZpYUc5dmE0SWljMmx0Y0d4bApMV3QxWW1WeWJtVjBaWE10ZDJWaWFHOXZheTVzWldGeWJtbHVaNEltYzJsdGNHeGxMV3QxWW1WeWJtVjBaWE10CmQyVmlhRzl2YXk1c1pXRnlibWx1Wnk1emRtT0NOSE5wYlhCc1pTMXJkV0psY201bGRHVnpMWGRsWW1odmIyc3UKYkdWaGNtNXBibWN1YzNaakxtTnNkWE4wWlhJdWJHOWpZV3d3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUxTYgp4TUdTU3Y0L09YY0ErMVNONnZJTDFxeXR0aWs3aU84T1h3cTZQU3l5UWRjL3FvODlUaW11RmxKcnplZnlCMGRSCjlVMlYreEgrWjRNOUtRK0J2Z3BLbHRqRWlmdTZXSGh1a2h6UEJOZTZsNit2MVZHa3Y5b0xGcTlOTmJrOXdPUXQKYlBmZVVjL0drcld4QSs2OWpxN25CbnhEZlJIakkzQVROUHBNUm8yTTF1RGY4ejFRbkpPRlFjQlJ5NDYzdFNaMwp5azRvZllzVmhVV0dnMU1xL21BR2s3T1ZCa3lZSGMrTks5Si9xY1JVOW5VOHVoNndMbzYyZTZzSE01SVZZemNVCnl1a3h0Rm0yd2dQdkhQRGRHL1UxdjBKZS9IamdaVGwzdUwxSTFwc0VlZGt3d0NuR2JnTU8waE9pWkdXV2tGYnoKR003MnlQZmZjWko0dXcyMndhc1ZyRE1QWCtLa2Q5U0pLWEV3TWg3TDlnS0QrbzNzTEhLcXd5SHFENDU5LzlhdApGallCbk8wWEh2MmRLWEpWK1JQUXBvMWplQmtBM0hIbXAvSzU3Q3kyUEpmZkVOR1VEY1d4elZoLzRQOUlMSlQ4CnpGUkdKS1ppRlFmaWhiQXBmclNpN1hoUGhZdCtUVitON29ZaTRkSE9YMThoNkpZRkJVOFJLd0E2ZHFsWFcxeDQKRjlXdXk3L1ExT05xVXVZUUxoWEdDNUxtVXJteXpRMVpqeDZlZkNtVHFEVlUrWTd6ZytETFNDV2x3Mmg1SVBvYQpybithMjA3R2dvMkhCVndWNmZXeWdMSExxbzkrWjBCRmNzUmRwakNBWGUrelIvMXNPRFpYc2MwNjVCUWN1ekZBCldCejJlY05yWDlnVlEzWVg4amRFVEFVajk2R1dQc3dnYWtLd2ZVSmQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= + tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRQzdRQjJHUlhQUVBSQWoKSVc3K2pTOG1KOWFGWTBvOHoyZ09FN3JNajNzTkk1aHFPdytaWklwaUJwSDdmM09JMkloNGp1WitkRll0bzJXRQppNUlpMC9jNCtWM1N2bFRXL1ZYU0RJYWVrRFNXdENjallKdkVpaCsrMklCb2VHNU05VlNYTFBrZ1RiZFNVVk9SCnZoemd5Y2FQTXVsUFVlTXlMQmhhNTBiR1g4OTFOMGZhNmZONEY3UVhHckhEN3RRRmIzL1FGbjd4UlRQa1p6WW4KMU9nNzh2RDN3L2RiNkJlakN6a0Z4VS9keW1nNW42Z1NQU01jMFkvbEREbFdIeUw0czhvK0psUGhINFBUenZibApyMHhsSXNPL0J0K3JmQXhTKzJuZHlldkZ3VDRhSkhraFFTMTZKbllyVEpnRVhqbERSU1BBejRwaEVIblFiNWorCm1vaEcxRndqQWdNQkFBRUNnZ0VCQUoyYXZINzhUQnRVbWhXSG1YMmxaYTd1encrY1g2ckpRNks5bG5lQXVLaDUKY2xyUGRUUzl1Ly8vMmJWZU0rZFZvYUFmWHYvR2VaYVdOZWNXOXB4YjNuVFU1dFJ2b01jSG1jbGZBNXZJY29yNQovUXM0MEVMZm94S2w5WVo0L3hYRlZEcWQvdDNpcTg4Y1pvT0FDWnhtR0xzRXRmMHVSbFUvYWd4eEowL202cDJUCnhWelhhVnF5VVRIdnJpMXNpeGp1MWg5VUd6RGlhUUE3SXhldVZ3RGhubVduMCtJWE5YR3dFYzlLcUVyb0xYMVgKa1I3QXN0WjRDakhYajhmOFcxM2FDS2tFQkFVN05ld1N6Q0xOUDRlQlF3eDRreW9rY1FpTTZoVGNGRjdRUk5PWgplUDdJMGxqOHdack9yU0tUMDFjRU5zS2JWQ2R2dG1uOWwrZDB4eVpqaCtrQ2dZRUE2MjBsbFJvdHZLZ0dFTlRUCnZPNnZmYVUxbWRBaGg4ckhycHk1QnNpcGl4OUdtelgrbXVQZ0ZaQkpVbXRDemhkU0U4MnNpWkdaWlBBcUZpMVEKOEpnQ1JzWkllcE1VRmdlT0FlUzR4aDFPR2NZVnFYa1BUa01FTUJia21JVzFNaTJpMVJlZjdWUnpxYjNpYzg3QgpRbHZ0STJHaWlYMmxzTkJHbE5EL1VmQ0ZTUTBDZ1lFQXk1MHkzNlVhWjUwd2FLNHhxb0c2cHd6K2lnRVdDYVByCklrTzZtNHdUYWJOMmkyWHBGTDk2SVVhbnBrT3E4TytrWGh4cGZ6Z3lwWWkrMXdiTHZYWXdRRXQwUUw3K3lVVVcKU3E2dzN4aUZrTVRFQXF5aDRwKzNEbzFWVGt4OGk0MEZtNzBHN0pMZ1pLcTJDMnUrMkFjeVhVTHRCUWlvSk54TApld2M4ZnltTmplOENnWUVBa2lhL0Z4SWFaS3oybndwUXJGQ005M1pSa1R4SkpKQzVaK2Y1WVlHKzV4UXljL2FRCktiM2ZoZU45OFVHUFJudnB3MHVDbWlDZVZyQlZvRkRmbDR6MmxOTlJlVzdISUdudU9iU3hGS1Jxc010czlUbW4KUzlHRXp3blhQZXg3c1R2dGcxWllQVENaWVQzMVVDbUJobDJsR0xycStXbmNLNmtRdUNBSzhPWmRDQjBDZ1lBMQp6NDJxWFUvbElqMnc3SmhqbjNWY3dLcGtmblQ4aHoyVkNLRkFpbngyNnQ3aGFFVjVIa0dBbWRPa3RTMXdEMlU1Ckdma25qZ3FVaE5jcXJMa2JrU2lmVlZHYjZ0NGJBdzhwSFpIUTVBSW9pRmZrL1FxcmdkbzNGbEw5Sm1tajE5a3IKbDRGRTlHd3BMcFI5NERQSGs5OVRsbVJkZURRM3lhQ0pHeGg1NHRsdU1RS0JnRDlBWGZFRSs1eDdDMEJzRkFkYworQ0xXbHFwQ2lKTHBGWlRmckR0eUE5UjFCMy91WGlmZjdwdnZLMVIwbjlqTkpWNm9YMWpoOUFGSWFZekdTK29FCjc3WklCQ0dLMUs1R1QvbnRURFJNQjErRGRncWIyUGhXSlZhMVVlTStCcTJrT1dMRlpwM2ZmZVdCSEtZMnBPWlkKcE9tdHZBRHNsdzV3NVkzY04vRTB0RTQwCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K \ No newline at end of file diff --git a/Webhook/deployment/service.yaml b/Webhook/deployment/service.yaml new file mode 100644 index 0000000..da586fa --- /dev/null +++ b/Webhook/deployment/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: simple-kubernetes-webhook + namespace: default +spec: + ports: + - port: 443 + protocol: TCP + targetPort: 443 + selector: + app: simple-kubernetes-webhook \ No newline at end of file diff --git a/Webhook/deployment/webhook.yaml b/Webhook/deployment/webhook.yaml new file mode 100644 index 0000000..9f1a0e8 --- /dev/null +++ b/Webhook/deployment/webhook.yaml @@ -0,0 +1,22 @@ +apiVersion: admissionregistration.k8s.io/v1 +kind: ValidatingWebhookConfiguration +metadata: + name: "simple-kubernetes-webhook.acme.com" +webhooks: + - name: "simple-kubernetes-webhook.acme.com" + namespaceSelector: + matchLabels: + admission-webhook: enabled + rules: + - apiGroups: [""] + apiVersions: ["v1"] + operations: ["CREATE"] + resources: ["pods"] + scope: "*" + clientConfig: + service: + namespace: learning + name: simple-kubernetes-webhook + path: /validate-pods + port: 443 + caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZhekNDQTFPZ0F3SUJBZ0lVWkpBaTlka1NHaldTZCtyUG43dkw5a3FJbjQ4d0RRWUpLb1pJaHZjTkFRRUwKQlFBd1JURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpEQWVGdzB5TWpBMU1qVXdOVFV6TlRkYUZ3MDBPVEV3Ck1UQXdOVFV6TlRkYU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJREFwVGIyMWxMVk4wWVhSbE1TRXcKSHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYYVdSbmFYUnpJRkIwZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRRGE4MHpMeXAzMDlOM1FjaWExTDNkMjR1azZLUWRiMVYrdUNicmlCb29LCithek02amFlam5WSXozbmFMZWNCbDF3RlYvbUw5U1ZMc3RoOWlubXN3MEw5UDZpUUR4YlFhOXFzaTBrNlA0aisKQ3lETVlOc1pkLzBwbTV6WVphREhnSG9HdDF3WFdWZ25WU1J6YklKd0swR2FCb1Jud0ZMV0orSHJFaEMyNC91QQpvb1Q4QXU3UnRkYUJJbmk4MGQxb2lRUGVPbTRXNUw0UEZOeGRjcjJheVlxQmFYUXd6UmpWaTk5a3dMQ0ZCMGNuCkxiYm1IYmRIZXltbnA0K1FPMXpwcjJDWnFZbXNiWFY1OENGMnRqcTZhUlhDV3RYWWVqZ2J2bFBmVGxyWmRPSm8KRjBreUFncWRuZlVjTHBCbWhnUnRyemZNREZJdi9TN3FpWmNqZUdWZThoNjlhQ1BrWmw0emFQZXJQUVhmZndRdwpyWU1ySFg2bDI5SmtETHB2WEcwUDlORVRza1VibW4vcjlKUGNIQktDQXJaYjM3aFRvNWJZSXp5aElGZEtQMnF3Cld2aDZ6MDJsNWZlbFZpNk12bkszVmNYYlZFMXFHdjlJSjY2Rm5lRjJSbjY2d0FoOE9kbW9zdTdEMUxBSnBpd3UKRDZHRlpGTU1Sa1NPcWR5SGJteU9HN0hGV3AvYnJna2RERXN6ZDFQN0V5d21iYVp0NGgrR0xlVW1YWDRiazRmMQp1MGxpRWpUalJGc3N1blBUSW04bzIxNUczT2FyYjlYckowSkJ5S0o1K2h0Z1hRMUEzRWxabGJWYUZ2VHAvRWJCCjRDY2FvZXRFSzBnSGZ0RzRIcERnQnpic0RxYXZLeEczNE0remkvTUJtV1ZJOU1SR3gyaWVyZkIrbVhZdm9CVzAKaVFJREFRQUJvMU13VVRBZEJnTlZIUTRFRmdRVXVrNWMzVGhTYzlJajJFVWhKYnlqSGFDSGlWMHdId1lEVlIwagpCQmd3Rm9BVXVrNWMzVGhTYzlJajJFVWhKYnlqSGFDSGlWMHdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBY2ZpUDkzUUpjMEpabGtaZENwelZGZVh3V0FPTjhBZFdzRGJuTTdER1VVbWsKcExpS0hTeTdXRnNMNWF4a3Fldzh5Rk9DTXFPWmFUZngxNlFjM3dmeFJBVkF1TURzQitnM0JGTWpGM0NveVRBeAozQlNDVGtPK0YwZjlPdWNXeDJ3OTBLbHcyOXZKRnBJeEIxSDdsS25pSXlkV2ZsbEFCKzcyRWNac3pxeGo1K3JxCnFDazgvaDlTRm5ibFV6bFJIM0RFNk8wcm5obkRNRTM4Y0k2WS90OHUyd3FKNjJaTlB4MkR2eDhTeTFWLzVQSDkKTzBmK1d5alhUcnlydXpuNVZRTlJLS0g3Y0JFeG9hRERZODFnVFF4cnJkeDgvck44S01hSjJpallMOHQ0eEI4VQpLcU9uV0NTYmRMY2JBeXFtdlNTZmhIVUo4V1RNV3RRTXpXWXVOai9DS1pNN0JXVG9rYWd5WmVYOVRKQ25nckorClVqZmE3N0V3MVFRb0RIci84bk5pTG5DYVlXNnlMVEVLOWlZZFd5QzhTdy9jRk1oWTRvNEVMM1QwUjZ6b0hOWTEKTnJmYUhERG9RNWpxNzdqK25LRjlQN3k0YUxGeTliVEFJRW5MalhzRjk1Ylg0eVZJcW5UUm1ta0xIcXZWL242QQpIN0hXS281bnBXcDZaTnRwYTltQWJFNkQ4TkdzeGxtQ29HRjRTZWZyMnZIOGtyS0UyYmRGTC9kOHozNlBzQWVMClM2VmVGZVowV0psTE9rdWxES0pPRDdwcXZXRWIxdzZLWHRSSUZScVdCM3l5aXhsK096eUtRazRBeXJvb2o5MnoKMHRMZjliVC9kOUpUa3VvSU1WTWJvc3ZxOG1tdzNzYU1mSC8yejhyZlEzMTBOaXJ3TGVhQVJLRmFHQVkzcURJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== \ No newline at end of file diff --git a/Webhook/webhook-server/go.mod b/Webhook/webhook-server/go.mod new file mode 100644 index 0000000..2fc305c --- /dev/null +++ b/Webhook/webhook-server/go.mod @@ -0,0 +1,25 @@ +module example.com/m/v2 + +go 1.17 + +require ( + k8s.io/api v0.24.0 + k8s.io/klog/v2 v2.60.1 +) + +require ( + github.com/go-logr/logr v1.2.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/google/gofuzz v1.1.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect + golang.org/x/text v0.3.7 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + k8s.io/apimachinery v0.24.0 // indirect + k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 // indirect + sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect +) diff --git a/Webhook/webhook-server/go.sum b/Webhook/webhook-server/go.sum new file mode 100644 index 0000000..90e1e8c --- /dev/null +++ b/Webhook/webhook-server/go.sum @@ -0,0 +1,241 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +k8s.io/api v0.24.0 h1:J0hann2hfxWr1hinZIDefw7Q96wmCBx6SSB8IY0MdDg= +k8s.io/api v0.24.0/go.mod h1:5Jl90IUrJHUJYEMANRURMiVvJ0g7Ax7r3R1bqO8zx8I= +k8s.io/apimachinery v0.24.0 h1:ydFCyC/DjCvFCHK5OPMKBlxayQytB8pxy8YQInd5UyQ= +k8s.io/apimachinery v0.24.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= +k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= +k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc= +k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= +k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 h1:HNSDgDCrr/6Ly3WEGKZftiE7IY19Vz2GdbOCyI4qqhc= +k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 h1:kDi4JBNAsJWfz1aEXhO8Jg87JJaPNLh5tIzYHgStQ9Y= +sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= +sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.2.1 h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y= +sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/Webhook/webhook-server/main.go b/Webhook/webhook-server/main.go new file mode 100644 index 0000000..b5e8496 --- /dev/null +++ b/Webhook/webhook-server/main.go @@ -0,0 +1,36 @@ +package main + +import ( + "flag" + "fmt" + "net/http" + "os" + + "k8s.io/klog/v2" +) + +func main() { + flag.Parse() + // // handle our core application + // http.HandleFunc("/validate-pods", ServeValidatePods) + // http.HandleFunc("/mutate-pods", ServeMutatePods) + http.HandleFunc("/health", ServeHealth) + + // start the server + // listens to clear text http on port 8080 unless TLS env var is set to "true" + if os.Getenv("TLS") == "true" { + cert := "/etc/admission-webhook/tls/tls.crt" + key := "/etc/admission-webhook/tls/tls.key" + klog.Info("Listening on port 443...") + klog.Info(http.ListenAndServeTLS(":443", cert, key, nil)) + } else { + klog.Info("Listening on port 8080...") + klog.Info(http.ListenAndServe(":8080", nil)) + } +} + +// ServeHealth returns 200 when things are good +func ServeHealth(w http.ResponseWriter, r *http.Request) { + klog.Infof("uri %s healthy", r.RequestURI) + fmt.Fprint(w, "OK") +}