CINXE.COM
Grant Gumina - The Crossplane Blog
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>Grant Gumina - The Crossplane Blog</title> <meta name="HandheldFriendly" content="True" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="/assets/css/style.css?v=a1348d70b3" /> <link rel="icon" href="/favicon.png" type="image/png" /> <link rel="canonical" href="https://blog.crossplane.io/author/grant/" /> <meta name="referrer" content="no-referrer-when-downgrade" /> <meta property="og:site_name" content="The Crossplane Blog" /> <meta property="og:type" content="profile" /> <meta property="og:title" content="Grant Gumina - The Crossplane Blog" /> <meta property="og:description" content="Cross talk about clouds. Dive into the world of cloud, open source, platforms, and Crossplane, the cloud native control plane framework." /> <meta property="og:url" content="https://blog.crossplane.io/author/grant/" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:title" content="Grant Gumina - The Crossplane Blog" /> <meta name="twitter:description" content="Cross talk about clouds. Dive into the world of cloud, open source, platforms, and Crossplane, the cloud native control plane framework." /> <meta name="twitter:url" content="https://blog.crossplane.io/author/grant/" /> <meta name="twitter:site" content="@crossplane_io" /> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Person", "sameAs": [], "name": "Grant Gumina", "url": "https://blog.crossplane.io/author/grant/", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://blog.crossplane.io/" } } </script> <meta name="generator" content="Ghost 4.2" /> <link rel="alternate" type="application/rss+xml" title="The Crossplane Blog" href="https://blog.crossplane.io/rss/" /> <script defer src="https://unpkg.com/@tryghost/portal@~1.1.0/umd/portal.min.js" data-ghost="https://blog.crossplane.io/"></script><style> .gh-post-upgrade-cta-content, .gh-post-upgrade-cta { display: flex; flex-direction: column; align-items: center; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; text-align: center; width: 100%; color: #ffffff; font-size: 16px; } .gh-post-upgrade-cta-content { border-radius: 8px; padding: 40px 4vw; } .gh-post-upgrade-cta h2 { color: #ffffff; font-size: 28px; letter-spacing: -0.2px; margin: 0; padding: 0; } .gh-post-upgrade-cta p { margin: 20px 0 0; padding: 0; } .gh-post-upgrade-cta small { font-size: 16px; letter-spacing: -0.2px; } .gh-post-upgrade-cta a { color: #ffffff; cursor: pointer; font-weight: 500; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a:hover { color: #ffffff; opacity: 0.8; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a.gh-btn { display: block; background: #ffffff; text-decoration: none; margin: 28px 0 0; padding: 8px 18px; border-radius: 4px; font-size: 16px; font-weight: 600; } .gh-post-upgrade-cta a.gh-btn:hover { opacity: 0.92; }</style> <style> .site-logo { max-width: 8em; } </style> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WFF2NQHG');</script> <!-- End Google Tag Manager --><style>:root {--ghost-accent-color: #F3807B;}</style> </head> <body class="author-template author-grant"> <nav id="menu"> <a class="close-button">Close</a> <div class="nav-wrapper"> <p class="nav-label">Menu</p> <ul> <li class="nav-blog-home" role="presentation"><a href="https://blog.crossplane.io/">Blog Home</a></li> <li class="nav-crossplane-io" role="presentation"><a href="https://crossplane.io/">Crossplane.io</a></li> <li class="nav-subscribe-to-the-newsletter" role="presentation"><a href="https://eepurl.com/ivy4v-/">Subscribe to the Newsletter</a></li> <li class="nav-twitter"><a href="https://twitter.com/crossplane_io" title="@crossplane_io"><i class="ic ic-twitter"></i> Twitter</a></li> <li class="nav-rss"><a href="https://blog.crossplane.io/rss/"><i class="ic ic-rss"></i> Subscribe</a></li> </ul> </div> </nav> <section id="wrapper"> <a class="hidden-close"></a> <header id="blog-header" class="has-cover"> <div class="inner"> <nav id="navigation"> <span class="blog-logo"> <a href="https://blog.crossplane.io"><img src="https://blog.crossplane.io/content/images/2020/05/CrossplaneLogo_Horiz-WhiteText.png" alt="Blog Logo" /></a> </span> <span id="menu-button" class="nav-button"> <a class="menu-button"><i class="ic ic-menu"></i> Menu</a> </span> </nav> <div class="blog-cover cover" style="background-image: url('');"></div> </div> </header> <section id="blog-author" class="has-cover"> <div class="inner"> <aside class="post-author"> <figure class="post-author-avatar avatar"> </figure> <div class="post-author-bio"> <h2 class="post-author-name">Grant Gumina</h2> <span class="post-author-stats"><i class="ic ic-pencil"></i> 1 Post</span> </div> <div class="clear"></div> </aside> </div> </section> <div id="index" class="container"> <main class="content" role="main"> <div class="extra-pagination"> <nav class="pagination" role="pagination"> <div class="inner"> <span class="pagination-info">Page 1 of 1</span> <div class="clear"></div> </div> </nav> </div> <article class="post tag-providers tag-universal-cloud-api tag-kubernetes tag-crossplane"> <div class="inner"> <header class="post-header"> <h2 class="post-title"><a href="/providers-101-ordering-pizza-with-kubernetes-and-crossplane/">Providers 101: Ordering Pizza with Kubernetes and Crossplane</a></h2> <span class="post-meta"><a href="/author/grant/">Grant Gumina</a> on <a href="/tag/providers/">Providers</a>, <a href="/tag/universal-cloud-api/">Universal Cloud API</a>, <a href="/tag/kubernetes/">Kubernetes</a>, <a href="/tag/crossplane/">Crossplane</a> | <time datetime="2020-11-18">18 Nov 2020</time></span> <div class="clear"></div> </header> <section class="post-excerpt"> <img src="/content/images/2020/11/Crossplane_Loves_Pizza-1.png" class="front-page-image" /> <p>Providers 101: Learn how to write your first Crossplane provider, and bring the power of pizza to your cloud API. <a class="read-more" href="/providers-101-ordering-pizza-with-kubernetes-and-crossplane/">»</a></p> </section> <!-- <section class="post-excerpt"> <p>Providers 101: Learn how to write your first Crossplane provider, and bring the power of pizza to your cloud API.…</p> </section> --> </div> </article> <nav class="pagination" role="pagination"> <div class="inner"> <span class="pagination-info">Page 1 of 1</span> <div class="clear"></div> </div> </nav> </main> </div> <div id="body-class" style="display: none;" class="author-template author-grant"></div> <footer id="footer"> <div class="inner"> <section class="credits"> <span class="credits-theme">Theme <a href="https://github.com/zutrinken/attila">Attila</a> by <a href="http://zutrinken.com" rel="nofollow">zutrinken</a></span> <span class="credits-software">Published with <a href="http://ghost.org">Ghost</a></span> </section> </div> </footer> </section> <script type="text/javascript" src="/assets/js/script.js?v=a1348d70b3"></script> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WFF2NQHG" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> </body> </html>