<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Guides on Crossplane</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/</link><description>Recent content in Guides on Crossplane</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/index.xml" rel="self" type="application/rss+xml"/><item><title>Crossplane Pods</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/pods/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/pods/</guid><description>&lt;p>The base Crossplane installation consists of two pods, the &lt;code>crossplane&lt;/code> pod and
the &lt;code>crossplane-rbac-manager&lt;/code> pod. Both pods install in the &lt;code>crossplane-system&lt;/code>
namespace by default.&lt;/p>
&lt;h2 id="crossplane-pod">Crossplane pod &lt;a class="anchor-link" id="crossplane-pod" href="#crossplane-pod" aria-label="Link to this section: Crossplane pod">&lt;/a>&lt;/h2>
&lt;h3 id="init-container">Init container &lt;a class="anchor-link" id="init-container" href="#init-container" aria-label="Link to this section: Init container">&lt;/a>&lt;/h3>
&lt;p>Before starting the core Crossplane container an &lt;em>init&lt;/em> container runs. The init
container installs the core Crossplane
&lt;a href="https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions">Custom Resource Definitions&lt;/a>
(&lt;code>CRDs&lt;/code>), configures Crossplane webhooks and installs any supplied Providers or
Configurations.&lt;/p></description></item><item><title>Metrics</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/metrics/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/metrics/</guid><description>&lt;p>Crossplane produces &lt;a href="https://prometheus.io/docs/introduction/overview/#what-are-metrics">Prometheus style metrics&lt;/a> for effective monitoring and alerting in your environment.
These metrics are essential for helping to identify and resolve potential issues.
This page offers explanations of all these metrics gathered from Crossplane.
Understanding these metrics helps you maintain the health and performance of your resources.
Please note that this document focuses on Crossplane specific metrics and doesn&amp;rsquo;t cover standard Go metrics.&lt;/p>
&lt;p>To enable the export of metrics it&amp;rsquo;s necessary to configure the &lt;code>--set metrics.enabled=true&lt;/code> option in the &lt;a href="https://github.com/crossplane/crossplane/blob/main/cluster/charts/crossplane/README.md#configuration">helm chart&lt;/a>.&lt;/p></description></item><item><title>Function Patch and Transform</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/function-patch-and-transform/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/function-patch-and-transform/</guid><description>&lt;p>Function Patch and Transform allows you to write a Composition that specifies
managed resource (MR) templates, and uses &amp;ldquo;patch and transform&amp;rdquo; operations to
fill them out. Crossplane fills the templates out with values copied from a
composite resource (XR).&lt;/p>
&lt;p>A &lt;a href="#create-a-patch">patch&lt;/a> copies a value from one resource and &lt;em>patches&lt;/em> it
onto another resource. A &lt;a href="#transform-a-patch">transform&lt;/a> modifies the values
before applying the patch.&lt;/p>
&lt;div class="admonition tip d-flex flex-column mx-4 p-0">
&lt;div class="admonition-title">
&lt;svg class="bi flex-shrink-0" role="img" aria-label="tip:">&lt;use
xlink:href="#check"/>&lt;/svg>
&lt;span class="ps-1">Tip&lt;/span>
&lt;/div>
&lt;div class="admonition-content">
&lt;p>All Compositions used Patch and Transform before Crossplane added
support for composition functions.&lt;/p></description></item><item><title>Releasing Crossplane Extensions</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/extensions-release-process/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/extensions-release-process/</guid><description>&lt;h2 id="distributing-crossplane-extensions">Distributing Crossplane extensions &lt;a class="anchor-link" id="distributing-crossplane-extensions" href="#distributing-crossplane-extensions" aria-label="Link to this section: Distributing Crossplane extensions">&lt;/a>&lt;/h2>
&lt;p>Crossplane provides a packaging specification for extending a Crossplane
instance with APIs and business logic for composing resources.&lt;/p>
&lt;p>Building a Crossplane extension involves creating OCI images in the &lt;a href="https://github.com/crossplane/crossplane/blob/main/contributing/specifications/xpkg.md">xpkg&lt;/a>
format. Authors and maintainers of Crossplane extensions must push their
packages to an OCI registry before users can reference and use them.&lt;/p>
&lt;p>The release process for Crossplane extensions grew organically in the community
and developed its own conventions and common configurations. Authors of these
extensions should follow this guide to enable automation for building
and pushing their packages as part of their git workflow.&lt;/p></description></item><item><title>Write a Composition Function in Go</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/write-a-composition-function-in-go/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/write-a-composition-function-in-go/</guid><description>&lt;p>Composition functions (or just functions, for short) are custom programs that
template Crossplane resources. Crossplane calls composition functions to
determine what resources it should create when you create a composite resource
(XR). Read the
&lt;a href="https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/composition/compositions/">concepts&lt;/a>
page to learn more about composition functions.&lt;/p>
&lt;p>You can write a function to template resources using a general purpose
programming language. Using a general purpose programming language allows a
function to use advanced logic to template resources, like loops and
conditionals. This guide explains how to write a composition function in
&lt;a href="https://go.dev">Go&lt;/a>.&lt;/p></description></item><item><title>Write a Composition Function in Python</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/write-a-composition-function-in-python/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/write-a-composition-function-in-python/</guid><description>&lt;p>Composition functions (or just functions, for short) are custom programs that
template Crossplane resources. Crossplane calls composition functions to
determine what resources it should create when you create a composite resource
(XR). Read the
&lt;a href="https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/composition/compositions/">concepts&lt;/a>
page to learn more about composition functions.&lt;/p>
&lt;p>You can write a function to template resources using a general purpose
programming language. Using a general purpose programming language allows a
function to use advanced logic to template resources, like loops and
conditionals. This guide explains how to write a composition function in
&lt;a href="https://python.org">Python&lt;/a>.&lt;/p></description></item><item><title>Configuring Crossplane with Argo CD</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/crossplane-with-argo-cd/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/crossplane-with-argo-cd/</guid><description>&lt;p>&lt;a href="https://argoproj.github.io/cd/">Argo CD&lt;/a> and &lt;a href="https://crossplane.io">Crossplane&lt;/a>
are a great combination. Argo CD provides GitOps while Crossplane turns any Kubernetes
cluster into a Universal Control Plane for all of your resources. Configuration details are
required in order for the two to work together properly.
This doc will help you understand these requirements. It is recommended to use
Argo CD version 2.4.8 or later with Crossplane.&lt;/p>
&lt;p>Argo CD synchronizes Kubernetes resource manifests stored in a Git repository
with those running in a Kubernetes cluster (GitOps). Argo CD has different ways to configure
how it tracks resources. With Crossplane, you need to configure Argo CD
to use Annotation based resource tracking. See the &lt;a href="https://argo-cd.readthedocs.io/en/latest/user-guide/resource_tracking/">Argo CD docs&lt;/a> for additional detail.&lt;/p></description></item><item><title>Self-Signed CA Certs</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/self-signed-ca-certs/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/self-signed-ca-certs/</guid><description>&lt;blockquote>
&lt;p>Using self-signed certificates isn&amp;rsquo;t advised in production, it&amp;rsquo;s
recommended to only use self-signed certificates for testing.&lt;/p>&lt;/blockquote>
&lt;p>When Crossplane loads Configuration and Provider Packages from private
registries, it must be configured to trust the CA and Intermediate certs.&lt;/p>
&lt;p>Crossplane needs to be installed via the Helm chart with the
&lt;code>registryCaBundleConfig.name&lt;/code> and &lt;code>registryCaBundleConfig.key&lt;/code> parameters
defined. See &lt;a href="https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/get-started/install/">Install Crossplane&lt;/a>.&lt;/p>
&lt;h2 id="configure">Configure &lt;a class="anchor-link" id="configure" href="#configure" aria-label="Link to this section: Configure">&lt;/a>&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Create a CA Bundle (A file containing your Root and Intermediate
certificates in a specific order). This can be done with any text editor or
from the command line, so long as the resulting file contains all required crt
files in the proper order. In many cases, this will be either a single
self-signed Root CA crt file, or an Intermediate crt and Root crt file. The
order of the crt files should be from lowest to highest in signing order.
For example, if you have a chain of two certificates below your Root
certificate, you place the bottom level Intermediate cert at the beginning of
the file, then the Intermediate cert that singed that cert, then the Root cert
that signed that cert.&lt;/p></description></item><item><title>Troubleshoot Crossplane</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/troubleshoot-crossplane/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/troubleshoot-crossplane/</guid><description>&lt;h2 id="requested-resource-not-found">Requested Resource Not Found &lt;a class="anchor-link" id="requested-resource-not-found" href="#requested-resource-not-found" aria-label="Link to this section: Requested Resource Not Found">&lt;/a>&lt;/h2>
&lt;p>If you use the Crossplane CLI to install a &lt;code>Provider&lt;/code> or
&lt;code>Configuration&lt;/code> (for example, &lt;code>crossplane xpkg install provider xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.21.1&lt;/code>) and get &lt;code>the server could not find the requested resource&lt;/code> error, more often than not, that&amp;rsquo;s an
indicator that the Crossplane CLI you&amp;rsquo;re using is outdated. In other words
some Crossplane API has been graduated from alpha to beta or stable and the old
plugin isn&amp;rsquo;t aware of this change.&lt;/p></description></item><item><title>Upgrade Crossplane</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/upgrade-crossplane/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/upgrade-crossplane/</guid><description>&lt;p>The recommended upgrade method for an existing Crossplane install is to use
&lt;a href="http://helm.io">Helm&lt;/a>.&lt;/p>
&lt;h2 id="prerequisites">Prerequisites &lt;a class="anchor-link" id="prerequisites" href="#prerequisites" aria-label="Link to this section: Prerequisites">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://helm.sh/docs/intro/install/">Helm&lt;/a> version &lt;code>v3.2.0&lt;/code> or later&lt;/li>
&lt;/ul>
&lt;h2 id="add-the-crossplane-preview-helm-repository">Add the Crossplane Preview Helm repository &lt;a class="anchor-link" id="add-the-crossplane-preview-helm-repository" href="#add-the-crossplane-preview-helm-repository" aria-label="Link to this section: Add the Crossplane Preview Helm repository">&lt;/a>&lt;/h2>
&lt;p>Verify Helm has the Crossplane repository.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="ln" id="hl-0-1">&lt;a class="lnlinks" href="#hl-0-1">1&lt;/a>&lt;/span>&lt;span class="cl">helm repo add crossplane-preview https://charts.crossplane.io/preview
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="update-the-helm-preview-repository">Update the Helm Preview repository &lt;a class="anchor-link" id="update-the-helm-preview-repository" href="#update-the-helm-preview-repository" aria-label="Link to this section: Update the Helm Preview repository">&lt;/a>&lt;/h2>
&lt;p>Update the local Crossplane Helm chart with &lt;code>helm repo update&lt;/code>.&lt;/p></description></item><item><title>Uninstall Crossplane</title><link>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/uninstall-crossplane/</link><pubDate/><guid>https://deploy-preview-1062--crossplane.netlify.app/v2.0-preview/guides/uninstall-crossplane/</guid><description>&lt;div class="admonition warning d-flex flex-column mx-4 p-0">
&lt;div class="admonition-title">
&lt;svg class="bi flex-shrink-0" role="img" aria-label="warning:">&lt;use
xlink:href="#fire"/>&lt;/svg>
&lt;span class="ps-1">Warning&lt;/span>
&lt;/div>
&lt;div class="admonition-content">
&lt;p>Resources created by Crossplane aren&amp;rsquo;t deleted if Crossplane isn&amp;rsquo;t uninstalled
in order.&lt;/p>
&lt;p>This can leave cloud resources running, requiring manual deletion.&lt;/p>
&lt;/div>
&lt;/div>
&lt;h2 id="ordered-crossplane-uninstall">Ordered Crossplane uninstall &lt;a class="anchor-link" id="ordered-crossplane-uninstall" href="#ordered-crossplane-uninstall" aria-label="Link to this section: Ordered Crossplane uninstall">&lt;/a>&lt;/h2>
&lt;p>Most Crossplane resources have dependencies on other Crossplane resources.&lt;/p>
&lt;p>For example, a &lt;em>managed resource&lt;/em> is dependent on the &lt;em>provider&lt;/em>.&lt;/p>
&lt;p>Failure to delete Crossplane resources in order may prevent Crossplane from
deleting provisioned external resources.&lt;/p></description></item></channel></rss>