Understanding the Kubernetes API InternalsBy Nabarun Pal and Nikhita Raghunath
View Slide
2Source: https://kubernetes.io/docs/concepts/overview/components/
3Groupgit.k8s.io/kubernetes/staging/src/k8s.io/api
4Version
5Kind
6Group-Version-Kind (GVK)apps.v1/DeploymentGroup Version Kind
7Group-Version-Resource (GVR)/apis/apps/v1/namespaces/{namespace}/deploymentsGroup Version Resource/api/v1/namespaces/{namespace}/pods
Relation between GVK and GVR8
9External Types v/s Internal Types
10Codebase walkthroughTo import the codebase walkthrough in VS Code, please see thisgist.
11Conversionv1Storage Version
12Conversionv1v1beta1Storage VersionInput Version
13Conversionv1v1beta2Storage VersionInput Version
14Conversionv1v1beta3Storage VersionInput Version
15Conversionv1v1beta1Storage VersionInput Version
16Conversionv1internalv1beta1Storage Version“Hub” VersionInput Version
17Conversionv1internalv1beta2Storage Version“Hub” VersionInput Version
18Conversionv1internalv1beta3Storage Version“Hub” VersionInput Version
19Conversionv1internalv1beta1Storage Version“Hub” VersionInput Version
20Conversion and Defaultingv1internalv1beta1Storage Version“Hub” VersionInput Version
21Decodingv1beta1Input Versioninternal“Hub” VersionSerialization, Defaulting and Conversion
22Admissionv1internal“Hub” VersionAdmissionMutatingValidating
23Registryv1internal“Hub” VersionAdmissionMutatingValidatingRegistryBeforeCreateValidation
24Encodingv1internal“Hub” VersionAdmissionMutatingValidatingRegistryBeforeCreateValidationEncodingConversionDefaultingDeserialization
25Codebase walkthroughTo import the codebase walkthrough in VS Code, please see thisgist.
26CRDs and Aggregated ApiserversThey follow the same pattern● CRDs - staging/src/k8s.io/apiextensions-apiserver● Aggregated Apiservers - staging/src/k8s.io/kube-aggregator(We won’t be covering them in detail in this talk)
Thank you!27Feedback Link