...

/

Implementing a Validating Admission WebHook

Implementing a Validating Admission WebHook

Learn how to implement a validating admission webhook service.

Implement a validating admission webhook

A validating admission webhook service is a web server, because the kube-apiserver invokes it through HTTPS POST requests. Now, let’s implement such a service step by step.

Step 1: Write a simple HTTP server

Let’s write a simple HTTP server at the path /validate on port 443. It checks the Pod name and rejects all Pods having mock-app in their names. The development environment that we can use to add and modify our programs is given below. We can hit the “Run” button to initialize it.

-----BEGIN CERTIFICATE-----
MIIDDjCCAfagAwIBAgIUWX6Cy5agnx6c0g/5NzmqVQxmMJcwDQYJKoZIhvcNAQEL
BQAwDTELMAkGA1UEAxMCQ0EwHhcNMjMwMTAzMDcyNDAwWhcNMzIxMjMxMDcyNDAw
WjANMQswCQYDVQQDEwJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
ANgQo4ebi+XzR1toF4RvgGjO9TbpGIPHAR4meB1s/a1605FadYJjeyMy3djeXfvD
6y5P9rBx6RCoPoAIaQWmwChcN5mMnNhxMPCm4JcsXrbmrEmn+0xJKGEZ88PafjmW
q4WIc5Qz8neBRSWKjObqQoOiNrZaAYJZGc1uVdvEHUgBFqcTIqRv+O9A4gdLyQxO
4yRKKen9NhHibYHOigWii7zXVwLI8i/V2vO3KpQiyrKOTFlHW/UpygWd+tnmX5Dp
mK1zLn01eamdnZI6gkPNprqo8+K3LU+mKhZGVNypgQegz2Ev8VUgdlcMQ6w8Crbw
tHnVm80DCoCTsSzZhJ86TWUCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIGA1Ud
EwEB/wQIMAYBAf8CAQIwHQYDVR0OBBYEFBeO3R6z1z0rmQii+bPSUX1Nnl5SMB8G
A1UdIwQYMBaAFBeO3R6z1z0rmQii+bPSUX1Nnl5SMA0GCSqGSIb3DQEBCwUAA4IB
AQCowSlJ+aSYuxjIG/NIHiCXUKBT/Sy9b1Uu/LhSMl5oEv+UxhZjX+v6PdGulPkr
3i8LphLnJ5KyI/yN9RIJnHVF/HFzAeARYijR1L04zEA3BeHRpN01ml8uMdKjnlvA
vuXew5qwPTh79awN2muSv+ZC7zCkJGEf3dcik7NoHaIqZEYq0PgW9NxFQh9p9QzJ
2GNHgjzSlHc4UK05yfLFxmXUmnTjEyOnskl+jICrenC3dDwBzrdk0TF1M+sLNjE/
FzPCs7T9/9nNbJ1OQFHhNQP2yYLusHtWN7zQgMv0M11Fp6rwkj3fzls9KZMXimkD
M0S2MuS6doi/uE/qhdeOvidT
-----END CERTIFICATE-----
Our development environment

In a real-world scenario, we only need to replace the mock code in the function validate() (line 21 in main.go) with our actual business logic. In the demo above, we’re handling Pods, and ...

Access this course and 1400+ top-rated courses and projects.