CINXE.COM
Crossplane v0.5: APIs reach v1beta1 for continuous delivery into multiple clouds with GitLab, ArgoCD, GitOps support and more!
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>Crossplane v0.5: APIs reach v1beta1 for continuous delivery into multiple clouds with GitLab, ArgoCD, GitOps support and more!</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/crossplane-v0-5-apis-reach-v1beta1-for-continuous-delivery-into-multiple-clouds-with-gitlab-argocd-gitops/" /> <meta name="referrer" content="no-referrer-when-downgrade" /> <link rel="amphtml" href="https://blog.crossplane.io/crossplane-v0-5-apis-reach-v1beta1-for-continuous-delivery-into-multiple-clouds-with-gitlab-argocd-gitops/amp/" /> <meta property="og:site_name" content="The Crossplane Blog" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Crossplane v0.5: APIs reach v1beta1 for continuous delivery into multiple clouds with GitLab, ArgoCD, GitOps support and more!" /> <meta property="og:description" content="Crossplane is ready for use in dev/test pipelines with v1beta1 APIs for databases and caches in Stacks for GCP, AWS, and Azure. GitLab 12.5 integrates with Crossplane to enable cloud service provisioning in GitLab-connected Kubernetes clusters from GitLab pipelines using kubectl or with GitLab's Auto DevOps feature. A" /> <meta property="og:url" content="https://blog.crossplane.io/crossplane-v0-5-apis-reach-v1beta1-for-continuous-delivery-into-multiple-clouds-with-gitlab-argocd-gitops/" /> <meta property="og:image" content="https://blog.crossplane.io/content/images/2023/12/Crossplanecity-1.png" /> <meta property="article:published_time" content="2019-11-18T00:00:00.000Z" /> <meta property="article:modified_time" content="2021-04-10T17:17:02.000Z" /> <meta property="article:tag" content="Continuous Delivery" /> <meta property="article:tag" content="GitLab" /> <meta property="article:tag" content="ArgoCD" /> <meta property="article:tag" content="GCP" /> <meta property="article:tag" content="AWS" /> <meta property="article:tag" content="Azure" /> <meta property="article:tag" content="Kubernetes" /> <meta property="article:tag" content="Multicloud" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Crossplane v0.5: APIs reach v1beta1 for continuous delivery into multiple clouds with GitLab, ArgoCD, GitOps support and more!" /> <meta name="twitter:description" content="Crossplane is ready for use in dev/test pipelines with v1beta1 APIs for databases and caches in Stacks for GCP, AWS, and Azure. GitLab 12.5 integrates with Crossplane to enable cloud service provisioning in GitLab-connected Kubernetes clusters from GitLab pipelines using kubectl or with GitLab's Auto DevOps feature. A" /> <meta name="twitter:url" content="https://blog.crossplane.io/crossplane-v0-5-apis-reach-v1beta1-for-continuous-delivery-into-multiple-clouds-with-gitlab-argocd-gitops/" /> <meta name="twitter:image" content="https://blog.crossplane.io/content/images/2023/12/Crossplanecity.png" /> <meta name="twitter:label1" content="Written by" /> <meta name="twitter:data1" content="Phil Prasek" /> <meta name="twitter:label2" content="Filed under" /> <meta name="twitter:data2" content="Continuous Delivery, GitLab, ArgoCD, GCP, AWS, Azure, Kubernetes, Multicloud" /> <meta name="twitter:site" content="@crossplane_io" /> <meta property="og:image:width" content="682" /> <meta property="og:image:height" content="610" /> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "publisher": { "@type": "Organization", "name": "The Crossplane Blog", "url": "https://blog.crossplane.io/", "logo": { "@type": "ImageObject", "url": "https://blog.crossplane.io/content/images/2020/05/CrossplaneLogo_Horiz-WhiteText.png" } }, "author": { "@type": "Person", "name": "Phil Prasek", "image": { "@type": "ImageObject", "url": "https://blog.crossplane.io/content/images/2021/04/PhilPrasek-Thumb.jpg", "width": 2000, "height": 2000 }, "url": "https://blog.crossplane.io/author/phil/", "sameAs": [] }, "headline": "Crossplane v0.5: APIs reach v1beta1 for continuous delivery into multiple clouds with GitLab, ArgoCD, GitOps support and more!", "url": "https://blog.crossplane.io/crossplane-v0-5-apis-reach-v1beta1-for-continuous-delivery-into-multiple-clouds-with-gitlab-argocd-gitops/", "datePublished": "2019-11-18T00:00:00.000Z", "dateModified": "2021-04-10T17:17:02.000Z", "keywords": "Continuous Delivery, GitLab, ArgoCD, GCP, AWS, Azure, Kubernetes, Multicloud", "description": "Crossplane is ready for use in dev/test pipelines with v1beta1 APIs for\ndatabases and caches in Stacks for GCP, AWS, and Azure. GitLab 12.5 integrates\nwith Crossplane to enable cloud service provisioning in GitLab-connected\nKubernetes clusters from GitLab pipelines using kubectl or with GitLab's Auto\nDevOps feature. A new ArgoCD guide shows how to use GitOps to provision and\nmanage cloud-native apps and complete environments (clusters, networking,\nclasses of service) using Crossplane and kustomi", "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="post-template tag-continuous-delivery tag-gitlab tag-argocd tag-gcp tag-aws tag-azure tag-kubernetes tag-multicloud"> <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> <div class="progress-container"> <span class="progress-bar"></span> </div> <!-- <header id="post-header"> --> <header id="post-header"> <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> <h1 class="post-title">Crossplane v0.5: APIs reach v1beta1 for continuous delivery into multiple clouds with GitLab, ArgoCD, GitOps support and more!</h1> <span class="post-meta"><a href="/author/phil/">Phil Prasek</a> | <time datetime="2019-11-17">17 Nov 2019</time></span> <!----> </div> </header> <main class="content" role="main"> <article class="post tag-continuous-delivery tag-gitlab tag-argocd tag-gcp tag-aws tag-azure tag-kubernetes tag-multicloud no-image"> <div class="inner"> <section class="post-content"> <p><strong><strong>Crossplane is ready for use in dev/test pipelines with v1beta1 APIs for databases and caches in Stacks for GCP, AWS, and Azure. GitLab 12.5 integrates with Crossplane to enable cloud service provisioning in GitLab-connected Kubernetes clusters from GitLab pipelines using kubectl or with GitLab's Auto DevOps feature. A new ArgoCD guide shows how to use GitOps to provision and manage cloud-native apps and complete environments (clusters, networking, classes of service) using Crossplane and kustomize with Git as a source of truth.</strong></strong></p><figure class="kg-card kg-image-card"><img src="blob:https://blog.crossplane.io/3cbc7a1c-a59b-40ac-a0b8-b934d913421f" class="kg-image" alt loading="lazy"></figure><p>The momentum continues to build with lots of community engagement around adopting Crossplane, adding support for more clouds and cloud services, and using continuous delivery tools like GitLab and ArgoCD to automate cloud-native app delivery and declarative management of complete environments.</p><p>While v0.5 is a fast-follow to v0.4 only 2 weeks later, there鈥檚 been a ton of activity. In response to community feedback we cut the first Crossplane patch release (<a href="https://github.com/crossplaneio/crossplane/releases/tag/v0.4.1">v0.4.1</a>) last week using the release automation introduced in v0.4. It鈥檚 an awesome feeling to get tighter feedback loops in place and be able to cut new releases at any time.</p><p>v0.5 has a renewed focus on quality with increased test automation, bug fixes, and continued work on v1beta1 APIs to deliver a release we think is ready for use in dev/test pipelines today, as we move towards a production-ready 1.0 release early next year!</p><p>There are so many changes in this release, we can't tell you about all of them in a single post. We'll give you the highlights here and then follow up with separate posts over the coming weeks, including all the details in the latest version of the <a href="https://crossplane.io/docs">crossplane.io/docs</a>!</p><h3 id="provision-cloud-services-from-gitlab-125-pipelines">Provision cloud services from GitLab 12.5 pipelines</h3><p>Kubernetes applications can be deployed with GitLab pipelines today, but cloud service dependencies must be separately provisioned, connected, and secured.</p><p>With GitLab 12.5, Crossplane is now available as a GitLab-managed app that can be installed into a GitLab-connected Kubernetes cluster. Managed services from GCP, AWS, and Azure can be declaratively provisioned and securely consumed using kubectl in standard GitLab pipelines or with a single line of yaml in a GitLab Auto Deploy App.</p><figure class="kg-card kg-image-card"><img src="blob:https://blog.crossplane.io/4df5c732-f22d-4e17-896e-e3542424962d" class="kg-image" alt loading="lazy"></figure><p>Cluster admins can define the classes of cloud service they want to make available to GitLab projects in a group, so project teams can securely provision and consume the managed services (PostgreSQL, Redis, Buckets) using familiar GitLab and kubectl tooling.</p><p>Get started with <a href="https://docs.gitlab.com/ee/user/clusters/applications.html#crossplane">GitLab and Crossplane</a> today!</p><h3 id="v1beta1-apis-for-databasescaches-in-gcp-aws-and-azure">v1beta1 APIs for databases/caches in GCP, AWS, and Azure</h3><p>Building on the v0.4 release, Crossplane now supports v1beta1 APIs for provisioning databases and caches in GCP, AWS, and Azure using <code>kubectl</code>. These API types have been extensively refactored to use the <code>ManagedReconciler</code> from the <code>crossplane-runtime</code>, which captures the best-practices for writing robust Kubernetes controllers for external cloud services.</p><p>The resulting v1beta1 APIs are used in the GitLab 12.5 integration (above) resulting in a solid combination for use in dev/test pipelines today.</p><p>Checkout the updated API Reference for the new v1beta1 API types:</p><ul><li><a href="https://crossplane.io/docs/v0.5/api/crossplaneio/stack-gcp/database-gcp-crossplane-io-v1beta1.html">database.gcp.crossplane.io/v1beta1</a></li><li><a href="https://crossplane.io/docs/v0.5/api/crossplaneio/stack-aws/database-aws-crossplane-io-v1beta1.html">database.aws.crossplane.io/v1beta1</a></li><li><a href="https://blog.crossplane.io/crossplane-v0-5-apis-reach-v1beta1-for-continuous-delivery-into-multiple-clouds-with-gitlab-argocd-gitops/database.azure.crossplane.io/v1beta1">database.azure.crossplane.io/v1beta1</a></li><li><a href="https://crossplane.io/docs/v0.5/api/crossplaneio/stack-gcp/cache-gcp-crossplane-io-v1beta1.html">cache.gcp.crossplane.io/v1beta1</a></li><li><a href="https://crossplane.io/docs/v0.5/api/crossplaneio/stack-aws/cache-aws-crossplane-io-v1beta1.html">cache.aws.crossplane.io/v1beta1</a></li><li><a href="https://crossplane.io/docs/v0.5/api/crossplaneio/stack-azure/cache-azure-crossplane-io-v1beta1.html">cache.azure.crossplane.io/v1beta1</a></li></ul><p>The API types have expanded support for almost every parameter available in the underlying cloud provider APIs. Declarative yaml configuration can be committed to a Git repo, applied using kubectl and Crossplane will create, update, or delete the underlying managed resources as needed.</p><p><em><em>Note: Crossplane observes the Kubernetes API versioning guidelines:</em></em></p><blockquote>Beta: Support for the overall features will not be dropped, though details may change. Support for upgrading or migrating between versions will be provided, either through automation or manual steps.</blockquote><h3 id="gitops-for-complete-environments-and-apps-with-argocd">GitOps for complete environments and apps with ArgoCD</h3><p>ArgoCD is a continuous delivery tool for Kubernetes. It runs in a Kubernetes cluster and enables a GitOps workflow by watching repositories and automatically updating deployments using Kubernetes manifests.</p><p>The <a href="https://youtu.be/sy7NVhEBKCA?t=8m10s">recent TBS livestream</a> shows how to use Crossplane with ArgoCD to declaratively manage complete environments and provision Kubernetes applications with GitOps.</p><p><strong><strong>Environments</strong></strong><br>Environments are declared with Crossplane resources and provisioned with GitOps tools like ArgoCD in a control plane cluster. Environments include managed Kubernetes clusters, cloud networking and security, and classes of managed service. In combination these Crossplane resources provide a complete configuration spec for a dev, test, or production environments that can be declaratively provisioned with Crossplane and ArgoCD.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="blob:https://blog.crossplane.io/94cc4d98-e1ba-4003-930e-5be216875301" class="kg-image" alt loading="lazy"><figcaption>Environments (clusters, networking, classes of service) declared with Crossplane resources.</figcaption></figure><p><strong><strong>Applications</strong></strong><br>Kubernetes applications with cloud service dependencies can then be provisioned into an environment using the classes of managed service defined by the environment admin. This enables application teams to self-service provision and securely connect to cloud services for their applications using familiar Kubernetes tooling.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="blob:https://blog.crossplane.io/ef7ef5f0-e9d3-4ece-add0-070df19eaaf3" class="kg-image" alt loading="lazy"><figcaption>Kubernetes applications with cloud services dependencies declared with Crossplane resources.</figcaption></figure><p>To follow along in your own environment checkout the new <a href="https://crossplane.io/docs/v0.5/workflow/argocd.html">ArgoCD guide</a>, which walks through setting up ArgoCD, installing Crossplane and a few cloud provider Stacks, setting up an infrastructure pipeline, then finally deploying an application that consumes cloud provider resources!</p><h3 id="beyond-v05">Beyond v0.5</h3><ul><li>GitLab 12.6 Auto DevOps integration - more services!</li><li>More CD integration examples - beyond GitLab and ArgoCD</li><li>Stable v1beta2 service API types for GCP, AWS, Azure</li><li>Resource packs for default classes and configurations for GCP, AWS, Azure</li><li>Improved error messages surfaced in claims and/or eventing</li><li>Stack Manager</li><li>Enhanced security model</li><li>Robot account support</li><li>Annotation support: parent/child, UI, CRD</li><li>Versioning and upgrade support</li><li>Template Stacks</li><li>Additional real-world App Stacks</li><li>Expanded Rook support for additional in-cluster stateful storage types</li><li>Policy-based secure connectivity strategies</li></ul><h3 id="get-involved">Get involved!</h3><p>There are many different ways to get involved in the Crossplane project, both from the user side and the developer side. Please join us in helping the project continue to grow on its way beyond the v0.4 milestone as we move from alpha to beta over the coming months!</p><ul><li><a href="https://crossplane.io/">Crossplane website</a></li><li><a href="https://github.com/crossplaneio/crossplane">Github</a></li><li><a href="https://twitter.com/crossplane_io">Twitter</a></li><li><a href="https://slack.crossplane.io/">Slack</a></li><li><a href="https://www.youtube.com/channel/UC19FgzMBMqBro361HbE46Fw">Youtube</a></li><li><a href="mailto:info@crossplane.io">Email</a></li></ul><p>Join the open cloud movement to help level the playing field for everyone!</p> </section> <section class="post-info"> <div class="post-share"> <a class="twitter" href="https://twitter.com/share?text=Crossplane v0.5: APIs reach v1beta1 for continuous delivery into multiple clouds with GitLab, ArgoCD, GitOps support and more!&url=https://blog.crossplane.io/crossplane-v0-5-apis-reach-v1beta1-for-continuous-delivery-into-multiple-clouds-with-gitlab-argocd-gitops/" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;"> <i class="ic ic-twitter"></i><span class="hidden">Twitter</span> </a> <a class="facebook" href="https://www.facebook.com/sharer/sharer.php?u=https://blog.crossplane.io/crossplane-v0-5-apis-reach-v1beta1-for-continuous-delivery-into-multiple-clouds-with-gitlab-argocd-gitops/" onclick="window.open(this.href, 'facebook-share','width=580,height=296');return false;"> <i class="ic ic-facebook"></i><span class="hidden">Facebook</span> </a> <a class="googleplus" href="https://plus.google.com/share?url=https://blog.crossplane.io/crossplane-v0-5-apis-reach-v1beta1-for-continuous-delivery-into-multiple-clouds-with-gitlab-argocd-gitops/" onclick="window.open(this.href, 'google-plus-share', 'width=490,height=530');return false;"> <i class="ic ic-googleplus"></i><span class="hidden">Google+</span> </a> <div class="clear"></div> </div> <aside class="post-tags"> <a href="/tag/continuous-delivery/">Continuous Delivery</a> <a href="/tag/gitlab/">GitLab</a> <a href="/tag/argocd/">ArgoCD</a> <a href="/tag/gcp/">GCP</a> <a href="/tag/aws/">AWS</a> <a href="/tag/azure/">Azure</a> <a href="/tag/kubernetes/">Kubernetes</a> <a href="/tag/multicloud/">Multicloud</a> </aside> <div class="clear"></div> <aside class="post-author"> <figure class="post-author-avatar avatar"> <img src="https://blog.crossplane.io/content/images/2021/04/PhilPrasek-Thumb.jpg" alt="Phil Prasek" /> </figure> <div class="post-author-bio"> <h4 class="post-author-name"><a href="/author/phil/">Phil Prasek</a></h4> <p class="post-author-about">Phil is a Principal Product Manager at Upbound with 20 years' experience in product and engineering roles building successful new products at startups and large enterprises.</p> </div> <div class="clear"></div> </aside> </section> <!-- <section class="post-comments"> <a id="show-disqus" class="post-comments-activate">Show Comments</a> <div id="disqus_thread"></div> </section> --> <!-- Begin Mailchimp Signup Form --> <link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css"> <style type="text/css"> #mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px; align-content: center; } /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block. We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */ </style> <div id="mc_embed_signup"> <form action="https://upbound.us17.list-manage.com/subscribe/post?u=b9f6c1840c97ee09ae739fdb0&id=4f555f7090" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> <div id="mc_embed_signup_scroll"> <h2>Keep up with Upbound</h2> <div class="indicates-required"><span class="asterisk">*</span> indicates required</div> <div class="mc-field-group"> <label for="mce-LNAME">Name <span class="asterisk">*</span> </label> <input type="text" value="" name="LNAME" class="required" id="mce-LNAME"> </div> <div class="mc-field-group"> <label for="mce-EMAIL">Email Address <span class="asterisk">*</span> </label> <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL"> </div> <div id="mce-responses" class="clear"> <div class="response" id="mce-error-response" style="display:none"></div> <div class="response" id="mce-success-response" style="display:none"></div> </div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups--> <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_b9f6c1840c97ee09ae739fdb0_4f555f7090" tabindex="-1" value=""></div> <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div> </div> </form> </div> <script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[2]='LNAME';ftypes[2]='text';fnames[0]='EMAIL';ftypes[0]='email';}(jQuery));var $mcj = jQuery.noConflict(true);</script> <!--End mc_embed_signup--> <aside class="post-nav"> <a class="post-nav-next" href="/happy-1st-birthday-crossplane/"> <section class="post-nav-teaser"> <i class="ic ic-arrow-left"></i> <h2 class="post-nav-title">Happy 1st Birthday, Crossplane!</h2> <p class="post-nav-excerpt">Exactly one year ago today, we unveiled the Crossplane project to the…</p> </section> </a> <a class="post-nav-prev" href="/crossplane-v0-4-new-rook-integration-supports-in-cluster-managed-database-alternatives-to-rds-cloudsql-and-azure-db/"> <section class="post-nav-teaser"> <i class="ic ic-arrow-right"></i> <h2 class="post-nav-title">Crossplane v0.4: new Rook integration supports in-cluster managed database alternatives to RDS, CloudSQL, and Azure DB</h2> <p class="post-nav-excerpt">Cloud-native applications can now provision Yugabyte and Cockroach DB instances with the…</p> </section> </a> <div class="clear"></div> </aside> </div> </article> </main> <div id="body-class" style="display: none;" class="post-template tag-continuous-delivery tag-gitlab tag-argocd tag-gcp tag-aws tag-azure tag-kubernetes tag-multicloud"></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>