I'm studying for CKA certification and I'm analyzing Admission Control Flow. I have seen official k8s docs about it and I don't see any reference about when schema validation happens. When is checked if I put v49 instead v1 in apiVersion field or similar?
I have seen other sources about it , for example this , but I don't understand where this information came from since in the official docs isn't presented.
Instead in other section of k8s official docs, you can see here, it's reported the following sentence:
Because the OpenAPI validation schemas are also published to clients, kubectl also checks for unknown fields and rejects those objects well before they would be sent to the API server.
But how is possible that kubectl client know all schemas for resources? I could install many CRDs throughout time without update kubectl cli.
I'm a bit confused.