{"id":3135,"date":"2025-07-22T22:44:29","date_gmt":"2025-07-22T19:44:29","guid":{"rendered":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/"},"modified":"2025-07-22T22:44:29","modified_gmt":"2025-07-22T19:44:29","slug":"mastering-custom-resource-definitions-in-kubernetes-helm","status":"publish","type":"post","link":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/","title":{"rendered":"Mastering Custom Resource Definitions in Kubernetes Helm"},"content":{"rendered":"<p><br \/>\n<\/p>\n<p>In the rapidly evolving world of cloud-native technologies, Kubernetes has stood out as a robust orchestration platform for managing containerized applications. One of its most powerful features is the ability to extend its capabilities using Custom Resource Definitions (CRDs). When combined with Helm, a popular package manager for Kubernetes, CRDs enable developers to create flexible and reusable applications. In this article, we will explore how to master CRDs in Kubernetes using Helm, specifically for the WafaTech audience.<\/p>\n<p><\/p>\n<h2>What are Custom Resource Definitions?<\/h2>\n<p><\/p>\n<p>CRDs allow users to define their own resource types within a Kubernetes cluster, beyond the standard kinds like Pods, Services, and Deployments. By creating CRDs, developers can write domain-specific resources that represent unique aspects of their applications, making it easier to manage complex setups.<\/p>\n<p><\/p>\n<p>For instance, if you&#8217;re building a blogging platform, you might create a <code>BlogPost<\/code> CRD that encapsulates the attributes and behaviors of blog posts, allowing you to manage them like standard Kubernetes resources.<\/p>\n<p><\/p>\n<h3>Key Benefits of CRDs<\/h3>\n<p><\/p>\n<ul><\/p>\n<li><strong>Extensibility<\/strong>: Easily add new resource types tailored to your application needs.<\/li>\n<p><\/p>\n<li><strong>Declarative Management<\/strong>: Manage application states using the Kubernetes API.<\/li>\n<p><\/p>\n<li><strong>Integration with Controllers<\/strong>: Implement logic to respond to changes in your custom resources via operators.<\/li>\n<p>\n<\/ul>\n<p><\/p>\n<h2>Getting Started with CRDs in Kubernetes<\/h2>\n<p><\/p>\n<h3>Step 1: Define Your CRD<\/h3>\n<p><\/p>\n<p>To create a CRD, you need to define its structure in a YAML file. Here is a simple example of a CRD for a <code>BlogPost<\/code>:<\/p>\n<p><\/p>\n<p>yaml<br \/>\napiVersion: apiextensions.k8s.io\/v1<br \/>\nkind: CustomResourceDefinition<br \/>\nmetadata:<br \/>\nname: blogposts.wafatech.com<br \/>\nspec:<br \/>\ngroup: wafatech.com<br \/>\nnames:<br \/>\nkind: BlogPost<br \/>\nlistKind: BlogPostList<br \/>\nplural: blogposts<br \/>\nsingular: blogpost<br \/>\nscope: Namespaced<br \/>\nversions:<\/p>\n<p><\/p>\n<ul><\/p>\n<li>name: v1<br \/>\nserved: true<br \/>\nstorage: true<br \/>\nschema:<br \/>\nopenAPIV3Schema:<br \/>\ntype: object<br \/>\nproperties:<br \/>\ntitle:<br \/>\ntype: string<br \/>\ncontent:<br \/>\ntype: string<br \/>\nauthor:<br \/>\ntype: string<\/li>\n<p>\n<\/ul>\n<p><\/p>\n<h3>Step 2: Install Helm<\/h3>\n<p><\/p>\n<p>Before proceeding, install Helm if you haven&#8217;t done so already. Helm can be set up easily on your local machine or within your CI\/CD pipeline.<\/p>\n<p><\/p>\n<p>bash<br \/>\ncurl <a href=\"https:\/\/raw.githubusercontent.com\/helm\/helm\/main\/scripts\/get-helm-3\">https:\/\/raw.githubusercontent.com\/helm\/helm\/main\/scripts\/get-helm-3<\/a> | bash<\/p>\n<p><\/p>\n<h3>Step 3: Create a Helm Chart for Your CRD<\/h3>\n<p><\/p>\n<p>Helm charts package all the necessary Kubernetes resources, including CRDs, into a single deployable unit. To create a Helm chart, you can use the following command:<\/p>\n<p><\/p>\n<p>bash<br \/>\nhelm create my-blog-chart<\/p>\n<p><\/p>\n<h3>Step 4: Add Your CRD to the Chart<\/h3>\n<p><\/p>\n<p>Place your CRD YAML file in the <code>templates<\/code> directory of your Helm chart. Ensure the CRD is defined as a separate YAML file to maintain clarity and organization.<\/p>\n<p><\/p>\n<h3>Step 5: Deploy the CRD Using Helm<\/h3>\n<p><\/p>\n<p>To deploy the CRD along with your Helm chart, run the following command:<\/p>\n<p><\/p>\n<p>bash<br \/>\nhelm install my-blog-release .\/my-blog-chart<\/p>\n<p><\/p>\n<p>Helm will apply all defined resources, including your CRD, to your Kubernetes cluster.<\/p>\n<p><\/p>\n<h2>Managing CRDs with Helm<\/h2>\n<p><\/p>\n<p>Once your CRD is up and running, you will want to manage it efficiently. Here are some expert tips on managing CRDs with Helm:<\/p>\n<p><\/p>\n<ol><\/p>\n<li>\n<p><strong>Versioning<\/strong>: Use versioning for your CRDs to allow seamless upgrades and maintain backward compatibility.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Validation<\/strong>: Integrate validation mechanisms within your CRDs to ensure that all custom resources meet your defined schema.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Controllers\/Operators<\/strong>: Implement controllers that can respond to changes in your custom resources. This is crucial for defining how your application behaves in response to events.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Templates for Custom Resources<\/strong>: Use Helm templates to create and manage instances of your custom resources directly from your Helm chart values.<\/p>\n<p><\/p>\n<p>yaml<br \/>\napiVersion: wafatech.com\/v1<br \/>\nkind: BlogPost<br \/>\nmetadata:<br \/>\nname: {{ .Values.blogPost.name }}<br \/>\nspec:<br \/>\ntitle: {{ .Values.blogPost.title }}<br \/>\ncontent: {{ .Values.blogPost.content }}<br \/>\nauthor: {{ .Values.blogPost.author }}<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Helm Hooks<\/strong>: Utilize Helm hooks to run specific actions before or after installations, upgrades, or deletions, enabling more complex lifecycle management.<\/p>\n<p>\n<\/li>\n<p>\n<\/ol>\n<p><\/p>\n<h2>Conclusion<\/h2>\n<p><\/p>\n<p>Mastering Custom Resource Definitions in Kubernetes with Helm can significantly enhance your development process. By extending Kubernetes capabilities through CRDs, you can create rich and intuitive abstractions for your applications, paving the way for greater functionality and simplicity in managing complex systems.<\/p>\n<p><\/p>\n<p>Whether you&#8217;re building a new application or optimizing an existing one, the combination of CRDs and Helm can transform how you handle Kubernetes resources. At WafaTech, we believe that embracing these tools will help you unlock the full potential of cloud-native development. Don&#8217;t hesitate to dive in, experiment, and take your Kubernetes applications to the next level!<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>In the rapidly evolving world of cloud-native technologies, Kubernetes has stood out as a robust orchestration platform for managing containerized applications. One of its most powerful features is the ability to extend its capabilities using Custom Resource Definitions (CRDs). When combined with Helm, a popular package manager for Kubernetes, CRDs enable developers to create flexible [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":3136,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[213],"tags":[240,242,363,217,200,241],"class_list":["post-3135","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes","tag-custom","tag-definitions","tag-helm","tag-kubernetes","tag-mastering","tag-resource","et-has-post-format-content","et_post_format-et-post-format-standard"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Mastering Custom Resource Definitions in Kubernetes Helm - WafaTech Blogs<\/title>\n<meta name=\"description\" content=\"Mastering Custom Resource Definitions in Kubernetes Helm %\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mastering Custom Resource Definitions in Kubernetes Helm\" \/>\n<meta property=\"og:description\" content=\"Mastering Custom Resource Definitions in Kubernetes Helm %\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/\" \/>\n<meta property=\"og:site_name\" content=\"WafaTech Blogs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/people\/WafaTech\/61560546351289\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-22T19:44:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2024\/06\/logo_big.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"2221\" \/>\n\t<meta property=\"og:image:height\" content=\"482\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"WafaTech SA\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wafatech_sa\" \/>\n<meta name=\"twitter:site\" content=\"@wafatech_sa\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"WafaTech SA\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/\"},\"author\":{\"name\":\"WafaTech SA\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#\\\/schema\\\/person\\\/1a5761fc0feb63ab59d295d7c2648f06\"},\"headline\":\"Mastering Custom Resource Definitions in Kubernetes Helm\",\"datePublished\":\"2025-07-22T19:44:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/\"},\"wordCount\":697,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/Mastering-Custom-Resource-Definitions-in-Kubernetes-Helm.png\",\"keywords\":[\"Custom\",\"Definitions\",\"Helm\",\"Kubernetes\",\"Mastering\",\"Resource\"],\"articleSection\":[\"Kubernetes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/\",\"url\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/\",\"name\":\"Mastering Custom Resource Definitions in Kubernetes Helm - WafaTech Blogs\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/Mastering-Custom-Resource-Definitions-in-Kubernetes-Helm.png\",\"datePublished\":\"2025-07-22T19:44:29+00:00\",\"description\":\"Mastering Custom Resource Definitions in Kubernetes Helm %\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/#primaryimage\",\"url\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/Mastering-Custom-Resource-Definitions-in-Kubernetes-Helm.png\",\"contentUrl\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/Mastering-Custom-Resource-Definitions-in-Kubernetes-Helm.png\",\"width\":1024,\"height\":1024,\"caption\":\"Helm CRD Management\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/mastering-custom-resource-definitions-in-kubernetes-helm\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mastering Custom Resource Definitions in Kubernetes Helm\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/\",\"name\":\"WafaTech Blogs\",\"description\":\"Smart Technologies\",\"publisher\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#organization\"},\"alternateName\":\"WafaTech\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#organization\",\"name\":\"WafaTech Blogs\",\"alternateName\":\"WafaTech\",\"url\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/logo_big.webp\",\"contentUrl\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/logo_big.webp\",\"width\":2221,\"height\":482,\"caption\":\"WafaTech Blogs\"},\"image\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/people\\\/WafaTech\\\/61560546351289\\\/\",\"https:\\\/\\\/x.com\\\/wafatech_sa\",\"https:\\\/\\\/www.youtube.com\\\/@wafatech-sa\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/wafatech\\\/\"],\"description\":\"WafaTech, a leading Saudi IT services provider, specializes in cloud solutions, connectivity, and ICT services. Offering secure cloud infrastructure, high-speed internet, and ICT solutions like hosting, backup, and disaster recovery, WafaTech operates a Tier 3 data center at KAUST with ISO certifications. Regulated by CST, the company is committed to innovation, security, and customer satisfaction, empowering businesses in the digital age.\",\"email\":\"sales@wafatech.sa\",\"legalName\":\"Al-Wafa Al-Dhakia For Information Technology LLC\",\"foundingDate\":\"2013-01-08\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#\\\/schema\\\/person\\\/1a5761fc0feb63ab59d295d7c2648f06\",\"name\":\"WafaTech SA\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fde877f001a2e0497276edc0684d3ba2a416c0de8caeb8e785076a1b1b932b3a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fde877f001a2e0497276edc0684d3ba2a416c0de8caeb8e785076a1b1b932b3a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fde877f001a2e0497276edc0684d3ba2a416c0de8caeb8e785076a1b1b932b3a?s=96&d=mm&r=g\",\"caption\":\"WafaTech SA\"},\"url\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/author\\\/omer-yaseen\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Mastering Custom Resource Definitions in Kubernetes Helm - WafaTech Blogs","description":"Mastering Custom Resource Definitions in Kubernetes Helm %","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/","og_locale":"en_US","og_type":"article","og_title":"Mastering Custom Resource Definitions in Kubernetes Helm","og_description":"Mastering Custom Resource Definitions in Kubernetes Helm %","og_url":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/","og_site_name":"WafaTech Blogs","article_publisher":"https:\/\/www.facebook.com\/people\/WafaTech\/61560546351289\/","article_published_time":"2025-07-22T19:44:29+00:00","og_image":[{"width":2221,"height":482,"url":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2024\/06\/logo_big.webp","type":"image\/webp"}],"author":"WafaTech SA","twitter_card":"summary_large_image","twitter_creator":"@wafatech_sa","twitter_site":"@wafatech_sa","twitter_misc":{"Written by":"WafaTech SA","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/#article","isPartOf":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/"},"author":{"name":"WafaTech SA","@id":"https:\/\/wafatech.sa\/blog\/#\/schema\/person\/1a5761fc0feb63ab59d295d7c2648f06"},"headline":"Mastering Custom Resource Definitions in Kubernetes Helm","datePublished":"2025-07-22T19:44:29+00:00","mainEntityOfPage":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/"},"wordCount":697,"commentCount":0,"publisher":{"@id":"https:\/\/wafatech.sa\/blog\/#organization"},"image":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/#primaryimage"},"thumbnailUrl":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2025\/07\/Mastering-Custom-Resource-Definitions-in-Kubernetes-Helm.png","keywords":["Custom","Definitions","Helm","Kubernetes","Mastering","Resource"],"articleSection":["Kubernetes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/","url":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/","name":"Mastering Custom Resource Definitions in Kubernetes Helm - WafaTech Blogs","isPartOf":{"@id":"https:\/\/wafatech.sa\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/#primaryimage"},"image":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/#primaryimage"},"thumbnailUrl":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2025\/07\/Mastering-Custom-Resource-Definitions-in-Kubernetes-Helm.png","datePublished":"2025-07-22T19:44:29+00:00","description":"Mastering Custom Resource Definitions in Kubernetes Helm %","breadcrumb":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/#primaryimage","url":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2025\/07\/Mastering-Custom-Resource-Definitions-in-Kubernetes-Helm.png","contentUrl":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2025\/07\/Mastering-Custom-Resource-Definitions-in-Kubernetes-Helm.png","width":1024,"height":1024,"caption":"Helm CRD Management"},{"@type":"BreadcrumbList","@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/mastering-custom-resource-definitions-in-kubernetes-helm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wafatech.sa\/blog\/"},{"@type":"ListItem","position":2,"name":"Mastering Custom Resource Definitions in Kubernetes Helm"}]},{"@type":"WebSite","@id":"https:\/\/wafatech.sa\/blog\/#website","url":"https:\/\/wafatech.sa\/blog\/","name":"WafaTech Blogs","description":"Smart Technologies","publisher":{"@id":"https:\/\/wafatech.sa\/blog\/#organization"},"alternateName":"WafaTech","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wafatech.sa\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wafatech.sa\/blog\/#organization","name":"WafaTech Blogs","alternateName":"WafaTech","url":"https:\/\/wafatech.sa\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wafatech.sa\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2024\/06\/logo_big.webp","contentUrl":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2024\/06\/logo_big.webp","width":2221,"height":482,"caption":"WafaTech Blogs"},"image":{"@id":"https:\/\/wafatech.sa\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/people\/WafaTech\/61560546351289\/","https:\/\/x.com\/wafatech_sa","https:\/\/www.youtube.com\/@wafatech-sa","https:\/\/www.linkedin.com\/company\/wafatech\/"],"description":"WafaTech, a leading Saudi IT services provider, specializes in cloud solutions, connectivity, and ICT services. Offering secure cloud infrastructure, high-speed internet, and ICT solutions like hosting, backup, and disaster recovery, WafaTech operates a Tier 3 data center at KAUST with ISO certifications. Regulated by CST, the company is committed to innovation, security, and customer satisfaction, empowering businesses in the digital age.","email":"sales@wafatech.sa","legalName":"Al-Wafa Al-Dhakia For Information Technology LLC","foundingDate":"2013-01-08","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/wafatech.sa\/blog\/#\/schema\/person\/1a5761fc0feb63ab59d295d7c2648f06","name":"WafaTech SA","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fde877f001a2e0497276edc0684d3ba2a416c0de8caeb8e785076a1b1b932b3a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fde877f001a2e0497276edc0684d3ba2a416c0de8caeb8e785076a1b1b932b3a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fde877f001a2e0497276edc0684d3ba2a416c0de8caeb8e785076a1b1b932b3a?s=96&d=mm&r=g","caption":"WafaTech SA"},"url":"https:\/\/wafatech.sa\/blog\/author\/omer-yaseen\/"}]}},"jetpack_featured_media_url":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2025\/07\/Mastering-Custom-Resource-Definitions-in-Kubernetes-Helm.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/posts\/3135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/comments?post=3135"}],"version-history":[{"count":0,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/posts\/3135\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/media\/3136"}],"wp:attachment":[{"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/media?parent=3135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/categories?post=3135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/tags?post=3135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}