Using Kubernetes Custom Resource Definitions (CRDs)

Lab Steps

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

The hands-on lab is part of this learning path

Ready for the real environment experience?

Time Limit50m


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.

Environment before
Environment after
About the Author
Learning paths30

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.