{"id":3869,"date":"2025-10-23T01:55:41","date_gmt":"2025-10-22T22:55:41","guid":{"rendered":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/"},"modified":"2025-10-23T01:55:41","modified_gmt":"2025-10-22T22:55:41","slug":"understanding-kubernetes-openapi-spec-for-custom-resource-definitions","status":"publish","type":"post","link":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/","title":{"rendered":"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions"},"content":{"rendered":"<p><br \/>\n<\/p>\n<p>Kubernetes, the leading container orchestration platform, has revolutionized how we deploy and manage microservices and other containerized applications. As organizations increasingly lean on Kubernetes to orchestrate their workloads, they also deal with custom resources tailored to specific business needs. To enable seamless integration and interaction with those custom resources, the Kubernetes OpenAPI Specification (OAS) plays a pivotal role.<\/p>\n<p><\/p>\n<h3>What Are Custom Resource Definitions (CRDs)?<\/h3>\n<p><\/p>\n<p>Before diving into the OpenAPI Specification, let&#8217;s clarify what Custom Resource Definitions (CRDs) are. CRDs allow users to extend Kubernetes\u2019 capabilities by introducing their own resource types. Any entity managed through Kubernetes, like Pods or Services, can also represent a custom resource. For example, you might create a <code>Database<\/code> resource to manage database instances in your cluster.<\/p>\n<p><\/p>\n<p>By defining a CRD, Kubernetes can recognize your custom resource and manage its lifecycle just like built-in resources. However, to facilitate interaction with these resources, we must turn to the OpenAPI Specification.<\/p>\n<p><\/p>\n<h3>Understanding the Kubernetes OpenAPI Specification<\/h3>\n<p><\/p>\n<p>The OpenAPI Specification is a standard that describes RESTful APIs. In Kubernetes, it provides a schema for every resource type. This schema is essential for developers and operators when designing applications and tools that interact with Kubernetes. The OAS provides the blueprint that guides how to create, read, update, and delete (CRUD) resources.<\/p>\n<p><\/p>\n<h4>Key Components of OAS in Kubernetes<\/h4>\n<p><\/p>\n<ol><\/p>\n<li>\n<p><strong>Schema Definition<\/strong>: The OpenAPI specification defines the structure for resource objects, properties, and their data types. This schema ensures that the resources conform to expected formats, which aids in validating requests automatically.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Validation Rules<\/strong>: These rules define constraints on various properties of the custom resources, ensuring users can only input valid data.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Versioning<\/strong>: As CRDs evolve over time, the OAS allows developers to define multiple versions of a custom resource, ensuring backward compatibility and smoother upgrades.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>API Endpoints<\/strong>: The OAS describes the available endpoints for custom resources. This gives developers clear insights into how to interact with the custom API.<\/p>\n<p>\n<\/li>\n<p>\n<\/ol>\n<p><\/p>\n<h3>Crafting Your OpenAPI Spec for CRDs<\/h3>\n<p><\/p>\n<p>Creating an OpenAPI Specification for your CRDs may seem daunting at first, but it unfolds as a structured process. Here\u2019s how to approach it:<\/p>\n<p><\/p>\n<ol><\/p>\n<li>\n<p><strong>Define Your Resource Structure<\/strong>: Start by defining your resource&#8217;s attributes and data types. Be clear about what properties your custom resource should have. For example, in a <code>Database<\/code> CRD, you might have properties for <code>name<\/code>, <code>type<\/code>, <code>version<\/code>, etc.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Specify Validation Rules<\/strong>: Use JSON Schema for defining validation rules. Specify which fields are required and the expected types. This helps Kubernetes validate any resource manifests submitted to the API server.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Set Up API Versioning<\/strong>: As your resource evolves, you&#8217;ll need to have different versions. Implement versioning effectively within your OAS to cater to future changes.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Documentation and Clarity<\/strong>: Incorporate descriptions into your OAS schema for each property. This aids in better understanding and usage by developers who interact with your custom resource.<\/p>\n<p>\n<\/li>\n<p>\n<\/ol>\n<p><\/p>\n<h3>Benefits of Using OpenAPI with CRDs<\/h3>\n<p><\/p>\n<ol><\/p>\n<li>\n<p><strong>Enhanced Developer Experience<\/strong>: Well-defined OpenAPI specs simplify interaction with the Kubernetes API. Developers can use tools like Swagger UI for auto-generating documentation and testing APIs.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Automation and Tooling<\/strong>: Many CI\/CD tools and client libraries can leverage OAS definitions to automate the deployment and management of custom resources.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Improved Validation<\/strong>: With defined validation rules, invalid resource submissions can be caught early, minimizing deployment errors.<\/p>\n<p>\n<\/li>\n<p><\/p>\n<li>\n<p><strong>Consistency Across Resources<\/strong>: Using the same specification framework across all custom resources promotes consistency within and across teams.<\/p>\n<p>\n<\/li>\n<p>\n<\/ol>\n<p><\/p>\n<h3>Conclusion<\/h3>\n<p><\/p>\n<p>Understanding the Kubernetes OpenAPI Specification as it relates to Custom Resource Definitions is vital for teams looking to extend Kubernetes functionality effectively. The use of CRDs in conjunction with a solid OAS lays the groundwork for streamlined operations, robust validation, and a more accessible developer experience.<\/p>\n<p><\/p>\n<p>As Kubernetes continues to evolve, leveraging CRDs with a clear OpenAPI Specification will not only empower developers but also enhance the overall functionality and resilience of the applications in your Kubernetes ecosystem.<\/p>\n<p><\/p>\n<hr \/>\n<p><\/p>\n<p>In this fast-paced digital landscape, mastering tools like Kubernetes is essential. If you&#8217;re looking to delve deeper into Kubernetes or explore more about open-source technologies, stay tuned to WafaTech Blogs for insightful articles and updates!<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes, the leading container orchestration platform, has revolutionized how we deploy and manage microservices and other containerized applications. As organizations increasingly lean on Kubernetes to orchestrate their workloads, they also deal with custom resources tailored to specific business needs. To enable seamless integration and interaction with those custom resources, the Kubernetes OpenAPI Specification (OAS) plays [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":3870,"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,217,1833,241,1834,214],"class_list":["post-3869","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes","tag-custom","tag-definitions","tag-kubernetes","tag-openapi","tag-resource","tag-spec","tag-understanding","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.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions - WafaTech Blogs<\/title>\n<meta name=\"description\" content=\"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions %\" \/>\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\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions\" \/>\n<meta property=\"og:description\" content=\"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions %\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/\" \/>\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-10-22T22:55:41+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\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/\"},\"author\":{\"name\":\"WafaTech SA\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#\\\/schema\\\/person\\\/1a5761fc0feb63ab59d295d7c2648f06\"},\"headline\":\"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions\",\"datePublished\":\"2025-10-22T22:55:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/\"},\"wordCount\":680,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Understanding-Kubernetes-OpenAPI-Spec-for-Custom-Resource-Definitions.png\",\"keywords\":[\"Custom\",\"Definitions\",\"Kubernetes\",\"OpenAPI\",\"Resource\",\"Spec\",\"Understanding\"],\"articleSection\":[\"Kubernetes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/\",\"url\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/\",\"name\":\"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions - WafaTech Blogs\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Understanding-Kubernetes-OpenAPI-Spec-for-Custom-Resource-Definitions.png\",\"datePublished\":\"2025-10-22T22:55:41+00:00\",\"description\":\"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions %\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/#primaryimage\",\"url\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Understanding-Kubernetes-OpenAPI-Spec-for-Custom-Resource-Definitions.png\",\"contentUrl\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Understanding-Kubernetes-OpenAPI-Spec-for-Custom-Resource-Definitions.png\",\"width\":1024,\"height\":1024,\"caption\":\"OpenAPI Spec for CRDs\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/devops\\\/kubernetes\\\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wafatech.sa\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions\"}]},{\"@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":"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions - WafaTech Blogs","description":"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions %","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\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/","og_locale":"en_US","og_type":"article","og_title":"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions","og_description":"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions %","og_url":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/","og_site_name":"WafaTech Blogs","article_publisher":"https:\/\/www.facebook.com\/people\/WafaTech\/61560546351289\/","article_published_time":"2025-10-22T22:55:41+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\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/#article","isPartOf":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/"},"author":{"name":"WafaTech SA","@id":"https:\/\/wafatech.sa\/blog\/#\/schema\/person\/1a5761fc0feb63ab59d295d7c2648f06"},"headline":"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions","datePublished":"2025-10-22T22:55:41+00:00","mainEntityOfPage":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/"},"wordCount":680,"commentCount":0,"publisher":{"@id":"https:\/\/wafatech.sa\/blog\/#organization"},"image":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/#primaryimage"},"thumbnailUrl":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2025\/10\/Understanding-Kubernetes-OpenAPI-Spec-for-Custom-Resource-Definitions.png","keywords":["Custom","Definitions","Kubernetes","OpenAPI","Resource","Spec","Understanding"],"articleSection":["Kubernetes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/","url":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/","name":"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions - WafaTech Blogs","isPartOf":{"@id":"https:\/\/wafatech.sa\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/#primaryimage"},"image":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/#primaryimage"},"thumbnailUrl":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2025\/10\/Understanding-Kubernetes-OpenAPI-Spec-for-Custom-Resource-Definitions.png","datePublished":"2025-10-22T22:55:41+00:00","description":"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions %","breadcrumb":{"@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/#primaryimage","url":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2025\/10\/Understanding-Kubernetes-OpenAPI-Spec-for-Custom-Resource-Definitions.png","contentUrl":"https:\/\/wafatech.sa\/blog\/wp-content\/uploads\/2025\/10\/Understanding-Kubernetes-OpenAPI-Spec-for-Custom-Resource-Definitions.png","width":1024,"height":1024,"caption":"OpenAPI Spec for CRDs"},{"@type":"BreadcrumbList","@id":"https:\/\/wafatech.sa\/blog\/devops\/kubernetes\/understanding-kubernetes-openapi-spec-for-custom-resource-definitions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wafatech.sa\/blog\/"},{"@type":"ListItem","position":2,"name":"Understanding Kubernetes OpenAPI Spec for Custom Resource Definitions"}]},{"@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\/10\/Understanding-Kubernetes-OpenAPI-Spec-for-Custom-Resource-Definitions.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/posts\/3869","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=3869"}],"version-history":[{"count":0,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/posts\/3869\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/media\/3870"}],"wp:attachment":[{"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/media?parent=3869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/categories?post=3869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wafatech.sa\/blog\/wp-json\/wp\/v2\/tags?post=3869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}