<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>How-to Guides on Open Component Model</title><link>https://ocm.software/0.21/docs/how-to/</link><description>Recent content in How-to Guides on Open Component Model</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://ocm.software/0.21/docs/how-to/index.xml" rel="self" type="application/rss+xml"/><item><title>Transfer Components across an Air Gap</title><link>https://ocm.software/0.21/docs/how-to/transfer-components-across-an-air-gap/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/transfer-components-across-an-air-gap/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Transfer a signed component version from a source registry into an air-gapped target registry using a CTF archive as the transport medium. An air-gapped environment is a network that is physically isolated from untrusted networks such as the public internet.&lt;/p&gt;</description></item><item><title>Configure Credentials for OCM Controllers</title><link>https://ocm.software/0.21/docs/how-to/configure-credentials-for-ocm-controllers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/configure-credentials-for-ocm-controllers/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Configure credentials to allow OCM Controllers to access OCM components stored in private OCI registries.&lt;/p&gt;&#10;&lt;h2 id="you-will-end-up-with"&gt;You will end up with&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A Kubernetes secret containing registry credentials&lt;/li&gt;&#10;&lt;li&gt;OCM Controller resources configured to use these credentials&lt;/li&gt;&#10;&lt;li&gt;Verified access to private OCM repositories&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Estimated time:&lt;/strong&gt; ~5 minutes&lt;/p&gt;</description></item><item><title>Configure Credentials for Multiple Registries</title><link>https://ocm.software/0.21/docs/how-to/configure-credentials-for-multiple-registries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/configure-credentials-for-multiple-registries/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Configure OCM to authenticate against multiple OCI registries — pinning explicit credentials for specific registries while using Docker config as a catch-all fallback.&lt;/p&gt;</description></item><item><title>Download Resources from Component Versions</title><link>https://ocm.software/0.21/docs/how-to/download-resources-from-component-versions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/download-resources-from-component-versions/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Download resources from a component version using the OCM CLI.&#10;Learn how to fetch specific resources, optionally transform them to their native format,&#10;and save them to your local filesystem.&lt;/p&gt;</description></item><item><title>Resolving Components across Multiple Registries</title><link>https://ocm.software/0.21/docs/how-to/resolving-components-across-multiple-registries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/resolving-components-across-multiple-registries/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Configure an &lt;code&gt;.ocmconfig&lt;/code&gt; file with resolver entries so the OCM CLI can recursively resolve component references stored&#10;in different OCI registries.&lt;/p&gt;</description></item><item><title>Transfer Helm Charts with OCM</title><link>https://ocm.software/0.21/docs/how-to/transfer-helm-charts-with-ocm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/transfer-helm-charts-with-ocm/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Transfer a component version that contains a Helm chart resource sourced from a &lt;strong&gt;Helm repository&lt;/strong&gt; (type &lt;code&gt;helmChart&lt;/code&gt; with &lt;code&gt;Helm/v1&lt;/code&gt; access)&#10;to an OCI registry. This guide does not cover charts that are already stored as OCI artifacts.&lt;/p&gt;</description></item><item><title>How to use the OCM CLI container image</title><link>https://ocm.software/0.21/docs/how-to/how-to-use-the-ocm-cli-container-image/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/how-to-use-the-ocm-cli-container-image/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;This How-To will show you how to use the OCM CLI container image to create and get a component version.&lt;/p&gt;</description></item><item><title>Add and Verify Ownership Information</title><link>https://ocm.software/0.21/docs/how-to/add-and-verify-ownership-information/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/add-and-verify-ownership-information/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Attach &lt;strong&gt;ownership&lt;/strong&gt; information to a resource so that, given the resource image in a registry, anyone can trace it&#10;back to the OCM component version that owns it — then verify that link with standard registry tools.&lt;/p&gt;</description></item><item><title>Add Resources from HTTP URLs</title><link>https://ocm.software/0.21/docs/how-to/add-resources-from-http-urls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/add-resources-from-http-urls/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Add a file served over plain HTTP or HTTPS (a release archive, a checksum, a signed binary) to a component version&#10;using the &lt;code&gt;Wget/v1&lt;/code&gt; type.&lt;/p&gt;</description></item><item><title>Add Resources from GitHub</title><link>https://ocm.software/0.21/docs/how-to/add-resources-from-github/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/add-resources-from-github/</guid><description>&lt;div class="callout callout-caution d-flex flex-row mt-4 mb-4 pt-4 pe-4 pb-2 ps-3"&gt;&lt;div class="callout-content"&gt;&lt;div class="callout-body"&gt;&lt;p&gt;The &lt;code&gt;GitHub/v1&lt;/code&gt; access type is &lt;strong&gt;deprecated&lt;/strong&gt; and will be removed in a future release. For new&#10;component versions, use the &lt;code&gt;Git/v1&lt;/code&gt; access type instead: it works with GitHub and every other&#10;Git server. Follow the &lt;a href="https://ocm.software/0.21/docs/tutorials/working-with-git-repositories/"&gt;Working with Git Repositories&lt;/a&gt;&#10;tutorial. Keep this guide for resources that are already published with &lt;code&gt;GitHub/v1&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Deploy Manifests with Deployer</title><link>https://ocm.software/0.21/docs/how-to/deploy-manifests-with-deployer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/deploy-manifests-with-deployer/</guid><description>&lt;p&gt;This guide shows how to deploy raw Kubernetes manifests from an OCM component version using the OCM Controllers&amp;rsquo; built-in &lt;code&gt;NamespacedDeployer&lt;/code&gt;. This approach requires only the OCM Controllers—no kro or Flux needed.&lt;/p&gt;</description></item><item><title>Verify Component Versions in the Controller</title><link>https://ocm.software/0.21/docs/how-to/verify-component-versions-in-the-controller/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/verify-component-versions-in-the-controller/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Configure the OCM Kubernetes controller to automatically verify component version signatures before reconciling resources.&lt;/p&gt;&#10;&lt;h2 id="youll-end-up-with"&gt;You&amp;rsquo;ll end up with&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A Secret holding an OCM configuration that requests signature verification&lt;/li&gt;&#10;&lt;li&gt;A &lt;code&gt;Component&lt;/code&gt; resource that reconciles only if the signature verifies&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Estimated time:&lt;/strong&gt; ~5 minutes&lt;/p&gt;</description></item><item><title>Replicate Component Versions with the Controller</title><link>https://ocm.software/0.21/docs/how-to/replicate-component-versions-with-the-controller/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/replicate-component-versions-with-the-controller/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Use the OCM Kubernetes controller to transfer a component version, together with&#10;the full graph of components it references (if recursion is enabled), from one OCM&#10;repository to another. The transfer re-runs automatically whenever the source&#10;&lt;code&gt;Component&lt;/code&gt; resolves to a new version.&lt;/p&gt;</description></item><item><title>Discover Component Graphs</title><link>https://ocm.software/0.21/docs/how-to/discover-component-graphs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/discover-component-graphs/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Use a &lt;code&gt;Discovery&lt;/code&gt; resource to resolve the transitive component graph of a&#10;&lt;code&gt;Component&lt;/code&gt;, filter it with selectors, and publish either the filtered raw&#10;descriptors or projected free-form records into the &lt;code&gt;Discovery&lt;/code&gt; status.&lt;/p&gt;</description></item><item><title>Migrate a Deployer to a NamespacedDeployer</title><link>https://ocm.software/0.21/docs/how-to/migrate-a-deployer-to-a-namespaceddeployer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/migrate-a-deployer-to-a-namespaceddeployer/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Replace a cluster-scoped &lt;code&gt;Deployer&lt;/code&gt; with a &lt;code&gt;NamespacedDeployer&lt;/code&gt; while the deployed objects keep running.&lt;/p&gt;&#10;&lt;h2 id="youll-end-up-with"&gt;You&amp;rsquo;ll end up with&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A &lt;code&gt;NamespacedDeployer&lt;/code&gt; that owns and reconciles the objects the &lt;code&gt;Deployer&lt;/code&gt; deployed&lt;/li&gt;&#10;&lt;li&gt;The same objects, with unchanged UIDs, no longer owned by the old &lt;code&gt;Deployer&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Estimated time:&lt;/strong&gt; ~10 minutes&lt;/p&gt;</description></item><item><title>Model Software Products</title><link>https://ocm.software/0.21/docs/how-to/model-software-products/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/model-software-products/</guid><description>&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;&#10;&lt;p&gt;Most products consist of multiple independently versioned services.&#10;This guide uses OCM component references to pin those services into a single &lt;a href="https://ocm.software/docs/overview/benefits-of-ocm/#create-a-software-bill-of-delivery" target="_blank" rel="noopener"&gt;Software Bill of Delivery&lt;/a&gt; — a versioned, auditable record of what a release contains.&lt;/p&gt;</description></item><item><title>Configure Custom RBAC for Deployers</title><link>https://ocm.software/0.21/docs/how-to/configure-custom-rbac-for-deployers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ocm.software/0.21/docs/how-to/configure-custom-rbac-for-deployers/</guid><description>&lt;p&gt;The OCM Kubernetes Controller Toolkit ships with the minimum RBAC permissions needed to manage its own custom resources&#10;(&lt;code&gt;Repository&lt;/code&gt;, &lt;code&gt;Component&lt;/code&gt;, &lt;code&gt;Resource&lt;/code&gt;, &lt;code&gt;Deployer&lt;/code&gt;, &lt;code&gt;NamespacedDeployer&lt;/code&gt;). It does &lt;strong&gt;not&lt;/strong&gt; include permissions for&#10;the objects your deployers create, such as kro &lt;code&gt;ResourceGraphDefinitions&lt;/code&gt;. You grant those yourself, and who needs&#10;which verbs depends on the deployer kind:&lt;/p&gt;</description></item></channel></rss>