hands-on lab

Using Kubernetes Custom Resource Definitions (CRDs)

Up to 50m
Get guided in a real environmentPractice with a step-by-step scenario in a real, provisioned environment.
Learn and validateUse validations to check your solutions every step of the way.
See resultsTrack your knowledge and monitor your progress.


Kubernetes provides a set of resources along with declarative APIs for working with them. Declarative APIs allow you to specify the desired state for a resource and Kubernetes performs actions to bring the actual resource state to the desired state. This is in contrast to imperative APIs where you specify the actions to perform. Defining resources and corresponding declarative APIs is a generic pattern that can be used by many applications. Kubernetes allows you to define your own custom resources and controllers to extend the Kubernetes API beyond the built-in resources. Custom resource types are defined using Custom Resource Definitions (CRDs) in Kubernetes. CRDs are the focus of this lab.

You will learn how to discover and use custom resources in this lab. To illustrate custom resources, the Kubernetes cluster in this lab is pre-installed with a Helm package for Argo CD, a GitOps continuous delivery application. You will work with Argo CD custom resources to release an update to an application.

This lab is valuable to anyone working with Kubernetes, but the content has been prepared considering topics described in the Certified Kubernetes Application Developer (CKAD) Exam Curriculum. Completion of the lab will help you get hands-on experience, which is essential for passing the CKAD exam.

Learning Objectives

  • Discover and use resources that extend Kubernetes (CRD)

Intended Audience

  • Kubernetes admins and operators
  • Application developers and DevOps engineers deploying applications in containers and using or considering Kubernetes
  • This lab is recommended for Certified Kubernetes Application Developer (CKAD) examinees


  • Knowledge of Kubernetes Pod Design (Pods, Deployments, Services)
  • Experience with kubectl

You can complete the Kubernetes Pod Design for Application Developers lab series to satisfy the prerequisites.


October 17th, 2023 - Updated to run Kubernetes 1.28

June 9th, 2023 -Updated to run Kubernetes 1.26

September 6th, 2022 - Updated to run Kubernetes 1.24

Environment before

Environment after

About the author

Logan Rakai, opens in a new tab
Lead Content Developer - Labs
Learning paths

Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, AWS Certified Solutions Architect - Professional, Microsoft Certified Azure Solutions Architect Expert, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Security Specialist (CKS), Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.

LinkedIn, Twitter, GitHub

Covered topics

Lab steps

Connecting to the Kubernetes Cluster
Using Kubernetes Custom Resource Definitions (CRDs)