diff --git a/categories/index.html b/categories/index.html index 4e13220..880832b 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,7 +1,83 @@ -Categories - CRC - Runs Containers -Skip to main content
+
+
+
+
+

Categories

+ +
+
\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/index.html b/index.html index c6702c9..f768326 100644 --- a/index.html +++ b/index.html @@ -1,23 +1,254 @@ -CRC - Runs Containers -Skip to main content
+
+
+
+
+

About

+
+
+

CRC brings a minimal OpenShift Container Platform 4 cluster or a MicroShift cluster to your local computer. These runtimes provide minimal environments for development and testing purposes. CRC is mainly targeted at running on developers' desktops. For other OpenShift Container Platform use cases, such as headless or multi-developer setups, use the full OpenShift installer.

+

See the OpenShift documentation for a full introduction to OpenShift Container Platform.

+

CRC includes the crc command-line interface (CLI) to interact with the CRC instance using the desired container runtime. +podman-desktop provides a graphical user interface for crc through its OpenShift Local extension.

+

You can download Red Hat’s builds of CRC as Red Hat OpenShift Local from https://console.redhat.com/openshift/create/local.

+

Learn more and contribute on GitHub.

+
+

Recent blog posts

+
+
+
+
+

How to use bundle option

+
+
+
+CRC provides a config option called bundle to configure the location of the bundle. This option is useful when you want to use a bundle that is not the default one or user want to try a bundle which is not part of release but available at the OpenShift mirror location. The bundle option can accept local filesystem paths, container registry URLs, and http/https URLs. This blog post will guide you through the process of using the bundle option using config or setup/start commands. +
+ +
+
+
+
+

A Step-by-Step Guide to Creating the MicroShift next Bundle

+
+
+
+CRC is a tool that allows you to quickly and easily spin up a local OpenShift cluster. It is a great way to learn about OpenShift/OKD/MicroShift and to test out new features. +If you’re looking to experiment with the upcoming MicroShift release and want to learn how to create the bundle to consume it with CRC, you’re in the right place! This blog post will guide you through the process step by step. +
+ +
+
+
+
+

How to create OKD bundle

+
+
+
+CRC is a tool that allows you to quickly and easily spin up a local OpenShift cluster. It is a great way to learn about OpenShift/OKD/MicroShift and to test out new features. In this blog post, we will explain to you, how to create an OKD bundle for CRC. Prerequisites To create an OKD bundle, you will need the following: -A computer with a recent version of Fedora, CentOS Stream or RHEL At least 60-70 GB of free disk space 8 CPUs 24 GB of memory Getting the OKD Release The first step is to get the OKD release version that you want to use.

Introducing MicroShift preset for CRC

Are you a developer who wants to use OpenShift Kubernetes Engine but doesn’t have a powerful system? Or do you need to deploy to a small form factor or edge computing environment? If so, you’ll be happy to hear about our new MicroShift preset, a lightweight version of OpenShift Kubernetes Engine that’s optimized for resource-limited environments. -The OpenShift preset currently provided by CRC requires 9GB of RAM and 4 CPUs. With the release of CRC 2.

Different bundle types option in crc

CRC provides a config option called bundle to configure the location of the bundle, until 2.9 release of CRC the bundle option could only accept local filesystem path which meant users needed to download the bundle in advance before consuming it. The move to a container registry for hosting the okd and podman bundles, introduces another step in the process as bundles are now generated as an OCI container image and the *.

Running OKD with CRC

It has been long time since CRC with an updated OKD bundle was released. Last release was 1.x and not updated since then. During our 2.x development cycle, we made effort on CRC’s side to decouple the bundles from the release artifacts. It allows us to create the bundle independently of the release and upload it to separate location. -Another change we made during 2.x is to add support for presets and from starting we are supporting podman and openshift preset with openshift as default.

Running ocp on M1 machines

With the release of CRC 2.4.1 it was possible to run on Apple’s latest offering of M1-based machines. However, the support was limited to podman preset. Numerous times we received requests if it would be possible to instead offer an OpenShift that would run on these machines. This has changed with the recently released crc 2.7.1. This blog post will describe the challenges we had to overcome when we decided to add that support.

Running crc on M1 machines

Since its initial release, CRC has been running on macOS as well as on Windows and Linux. However macOS support was limited to Apple machines with an Intel CPUs until recently. With Apple’s ongoing switch to aarch64 M1 CPUs, we’ve been asked numerous times when CRC would get M1 support. This has changed with the recently released crc 2.4.1. This blog post will describe the challenges we had to overcome when we decided to add that support.
+ + + \ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/index.xml b/index.xml index 851df94..cff2eba 100644 --- a/index.xml +++ b/index.xml @@ -11,24 +11,24 @@ setup/start commands.</p> </span> </h2><p>You can use the <code>crc config set bundle</code> command to set the bundle location. This command can accept local filesystem paths, container registry URLs, and http/https URLs. Here are some examples:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Assume user want to use microshift-4.15.0 bundle which is not part of crc release but available at the OpenShift mirror location</span> -</span></span><span style="display:flex;"><span>crc config set bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle -</span></span><span style="display:flex;"><span>crc setup -</span></span><span style="display:flex;"><span>crc start -</span></span></code></pre></div><h2 id="using-bundle-option-with-crc-setup-and-crc-start-commands" >Using <code>bundle</code> option with <code>crc setup</code> and <code>crc start</code> commands +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#75715e"># Assume user want to use microshift-4.15.0 bundle which is not part of crc release but available at the OpenShift mirror location</span> +crc config set bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle +crc setup +crc start +</code></pre></div><h2 id="using-bundle-option-with-crc-setup-and-crc-start-commands" >Using <code>bundle</code> option with <code>crc setup</code> and <code>crc start</code> commands <span> <a href="#using-bundle-option-with-crc-setup-and-crc-start-commands"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> -</h2><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>crc setup --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle -</span></span><span style="display:flex;"><span>crc start --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle -</span></span></code></pre></div><p><strong>Beware</strong>, if you use -b https:// there will be no signature checks +</h2><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">crc setup --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle +crc start --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle +</code></pre></div><p><strong>Beware</strong>, if you use -b https:// there will be no signature checks Bundles downloaded from mirror.openshift.com can be verified this way:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle -</span></span><span style="display:flex;"><span>curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256 -</span></span><span style="display:flex;"><span>sha256sum crc_microshift_libvirt_4.15.0_amd64.crcbundle <span style="color:#f92672">=</span>&gt; should match with the content of crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256 -</span></span></code></pre></div><h2 id="conclusion" >Conclusion +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle +curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256 +sha256sum crc_microshift_libvirt_4.15.0_amd64.crcbundle <span style="color:#f92672">=</span>&gt; should match with the content of crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256 +</code></pre></div><h2 id="conclusion" >Conclusion <span> <a href="#conclusion"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> @@ -73,10 +73,10 @@ is present at MicroShift GitHub repo</p> </a> </span> </h2><p>Next, you need to clone the SNC repository. This repository contains the scripts that you will use to create the bundle.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/crc-org/snc.git -</span></span></code></pre></div><p><strong>Note:</strong> The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example, it&rsquo;s currently tracking RHOCP 4.13.x. To generate MicroShift bundles for prerelease, first switch to the appropriate branch:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git checkout origin/release-4.14 -</span></span></code></pre></div><h2 id="getting-the-pull-secret" >Getting the Pull Secret +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git clone https://github.com/crc-org/snc.git +</code></pre></div><p><strong>Note:</strong> The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example, it&rsquo;s currently tracking RHOCP 4.13.x. To generate MicroShift bundles for prerelease, first switch to the appropriate branch:</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git checkout origin/release-4.14 +</code></pre></div><h2 id="getting-the-pull-secret" >Getting the Pull Secret <span> <a href="#getting-the-pull-secret"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> @@ -91,10 +91,10 @@ from <a href="https://console.redhat.com/openshift/create/local">here</a> </a> </span> </h2><p>You are now ready to create the bundle. You can do this by running the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>OPENSHIFT_PULL_SECRET_PATH<span style="color:#f92672">=</span>&lt;downloaded_pull_secret_file_path&gt; MICROSHIFT_PRERELEASE<span style="color:#f92672">=</span>yes ./microshift.sh -</span></span></code></pre></div><p><strong>Note: Wait till the <code>microshift</code> script finish successfully (takes around 30-40 mins)</strong></p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>./createdisk.sh -</span></span></code></pre></div><p><strong>Congratulations! You&rsquo;ve successfully created a prerelease version of MicroShift bundle</strong></p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">OPENSHIFT_PULL_SECRET_PATH<span style="color:#f92672">=</span>&lt;downloaded_pull_secret_file_path&gt; MICROSHIFT_PRERELEASE<span style="color:#f92672">=</span>yes ./microshift.sh +</code></pre></div><p><strong>Note: Wait till the <code>microshift</code> script finish successfully (takes around 30-40 mins)</strong></p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">./createdisk.sh +</code></pre></div><p><strong>Congratulations! You&rsquo;ve successfully created a prerelease version of MicroShift bundle</strong></p> <h2 id="starting-the-cluster" >Starting the Cluster <span> <a href="#starting-the-cluster"> @@ -102,9 +102,9 @@ from <a href="https://console.redhat.com/openshift/create/local">here</a> </a> </span> </h2><p>Once you have created the bundle, you can start the cluster by running the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>crc setup --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle -</span></span><span style="display:flex;"><span>crc start --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle -</span></span></code></pre></div><p>This will start the cluster with created MicroShift bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">crc setup --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle +crc start --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle +</code></pre></div><p>This will start the cluster with created MicroShift bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.</p> <h2 id="conclusion" >Conclusion <span> <a href="#conclusion"> @@ -145,53 +145,53 @@ It is a great way to learn about OpenShift/OKD/MicroShift and to test out new fe </a> </span> </h2><p>Next, you need to clone the SNC repository. This repository contains the scripts that you will use to create the bundle.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/crc-org/snc.git -</span></span></code></pre></div><p><strong>Note:</strong> The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example it&rsquo;s currently tracking RHOCP 4.13.x. To generate OKD bundles for older releases, first switch to the appropriate branch:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git checkout origin/release-4.12 -</span></span></code></pre></div><h2 id="setting-the-okd-version" >Setting the OKD Version +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git clone https://github.com/crc-org/snc.git +</code></pre></div><p><strong>Note:</strong> The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example it&rsquo;s currently tracking RHOCP 4.13.x. To generate OKD bundles for older releases, first switch to the appropriate branch:</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git checkout origin/release-4.12 +</code></pre></div><h2 id="setting-the-okd-version" >Setting the OKD Version <span> <a href="#setting-the-okd-version"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> </h2><p>You need to set the OKD_VERSION environment variable to the version of OKD that you want to use.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export OKD_VERSION<span style="color:#f92672">=</span>4.12.0-0.okd-2023-04-16-041331 -</span></span></code></pre></div><h2 id="creating-the-pull-secret" >Creating the Pull Secret +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">export OKD_VERSION<span style="color:#f92672">=</span>4.12.0-0.okd-2023-04-16-041331 +</code></pre></div><h2 id="creating-the-pull-secret" >Creating the Pull Secret <span> <a href="#creating-the-pull-secret"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> </h2><p>You need to create a dummy pull secret that will be used for snc script. You can create this dummmy pull secret using the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cat <span style="color:#e6db74">&lt;&lt;EOF &gt; pullsecret.json -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">{ -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> &#34;auths&#34;: { -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> &#34;fake&#34;: { -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> &#34;auth&#34;: &#34;Zm9vOmJhcgo=&#34; -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> } -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> } -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">} -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">EOF</span> -</span></span></code></pre></div><h2 id="creating-the-bundle" >Creating the Bundle +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">cat <span style="color:#e6db74">&lt;&lt;EOF &gt; pullsecret.json +</span><span style="color:#e6db74">{ +</span><span style="color:#e6db74"> &#34;auths&#34;: { +</span><span style="color:#e6db74"> &#34;fake&#34;: { +</span><span style="color:#e6db74"> &#34;auth&#34;: &#34;Zm9vOmJhcgo=&#34; +</span><span style="color:#e6db74"> } +</span><span style="color:#e6db74"> } +</span><span style="color:#e6db74">} +</span><span style="color:#e6db74">EOF</span> +</code></pre></div><h2 id="creating-the-bundle" >Creating the Bundle <span> <a href="#creating-the-bundle"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> </h2><p>You are now ready to create the bundle. You can do this by running the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>OPENSHIFT_PULL_SECRET_PATH<span style="color:#f92672">=</span>pullsecret.json ./snc.sh -</span></span></code></pre></div><p><strong>Note: Wait till the <code>snc.sh</code> script finish successfully (takes around 40-50 mins)</strong></p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>./createdisk.sh -</span></span></code></pre></div><h2 id="starting-the-cluster" >Starting the Cluster +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">OPENSHIFT_PULL_SECRET_PATH<span style="color:#f92672">=</span>pullsecret.json ./snc.sh +</code></pre></div><p><strong>Note: Wait till the <code>snc.sh</code> script finish successfully (takes around 40-50 mins)</strong></p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">./createdisk.sh +</code></pre></div><h2 id="starting-the-cluster" >Starting the Cluster <span> <a href="#starting-the-cluster"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> </h2><p>Once you have created the bundle, you can start the cluster by running the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>crc setup --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle -</span></span><span style="display:flex;"><span>crc start --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle -</span></span></code></pre></div><p>This will start the cluster with created OKD bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">crc setup --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle +crc start --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle +</code></pre></div><p>This will start the cluster with created OKD bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.</p> <h2 id="conclusion" >Conclusion <span> <a href="#conclusion"> @@ -231,22 +231,21 @@ in addition to local filesystem paths.</p> bundle location, these are explained below with use cases.</p> <p>Case 1: If users want to use their own internal container registry for podman/okd bundles then they can <em>copy</em> the bundle images from <code>quay.io</code> to their internal container registry using <a href="https://github.com/containers/skopeo">skopeo</a>.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Copy latest 4.2.0 podman bundle to internal registry</span> -</span></span><span style="display:flex;"><span>$ skopeo copy -a docker://quay.io/crcont/podman-bundle:4.2.0 docker://&lt;internal_registry&gt;/podman-bundle:4.2.0 -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>$ crc config set bundle docker://&lt;internal_registry&gt;/podman-bundle:4.2.0 -</span></span><span style="display:flex;"><span>$ crc config set preset podman -</span></span><span style="display:flex;"><span>$ crc setup -</span></span><span style="display:flex;"><span>$ crc start -</span></span></code></pre></div><p>Case 2: If user tries to use the bundle which is part of internal http/https location</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ crc config set bundle https://&lt;internal_server&gt;/crc_libvirt_4.11.3_amd64.crcbundle -</span></span><span style="display:flex;"><span>$ crc setup -</span></span><span style="display:flex;"><span>$ crc start -</span></span></code></pre></div><p>Case 3: If a user tries to use the bundle which is downloaded locally</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ crc config set bundle &lt;local_bundle_path&gt; -</span></span><span style="display:flex;"><span>$ crc setup -</span></span><span style="display:flex;"><span>$ crc start -</span></span></code></pre></div><p>As usual, we&rsquo;d like to get as much <a href="https://github.com/crc-org/crc/issues/new/choose">feedback</a> as possible on all this work!</p>Running OKD with CRChttps://crc.dev/blog/posts/2022-08-22-okd-on-crc/Mon, 22 Aug 2022 09:14:10 +0530https://crc.dev/blog/posts/2022-08-22-okd-on-crc/<p>It has been long time since CRC with an updated OKD bundle was released. Last release was <a href="https://www.okd.io/crc/#get-started">1.x</a> and +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#75715e"># Copy latest 4.2.0 podman bundle to internal registry</span> +$ skopeo copy -a docker://quay.io/crcont/podman-bundle:4.2.0 docker://&lt;internal_registry&gt;/podman-bundle:4.2.0 +$ crc config set bundle docker://&lt;internal_registry&gt;/podman-bundle:4.2.0 +$ crc config set preset podman +$ crc setup +$ crc start +</code></pre></div><p>Case 2: If user tries to use the bundle which is part of internal http/https location</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ crc config set bundle https://&lt;internal_server&gt;/crc_libvirt_4.11.3_amd64.crcbundle +$ crc setup +$ crc start +</code></pre></div><p>Case 3: If a user tries to use the bundle which is downloaded locally</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ crc config set bundle &lt;local_bundle_path&gt; +$ crc setup +$ crc start +</code></pre></div><p>As usual, we&rsquo;d like to get as much <a href="https://github.com/crc-org/crc/issues/new/choose">feedback</a> as possible on all this work!</p>Running OKD with CRChttps://crc.dev/blog/posts/2022-08-22-okd-on-crc/Mon, 22 Aug 2022 09:14:10 +0530https://crc.dev/blog/posts/2022-08-22-okd-on-crc/<p>It has been long time since CRC with an updated OKD bundle was released. Last release was <a href="https://www.okd.io/crc/#get-started">1.x</a> and not updated since then. During our 2.x development cycle, we made effort on CRC&rsquo;s side to decouple the bundles from the release artifacts. It allows us to create the bundle independently of the release and upload it to separate location.</p> <p>Another change we made during 2.x is to add support for presets and from starting we are supporting <code>podman</code> and <code>openshift</code> @@ -262,24 +261,21 @@ an <code>okd</code> preset was added and users can now use same <code>c </h1><p>The CRC team created the OKD bundle for <a href="https://github.com/openshift/okd/releases/tag/4.11.0-0.okd-2022-07-29-154152">4.11.0-0.okd-2022-07-29-154152</a> release and pushed it as container image to <a href="https://quay.io/repository/crcont/okd-bundle">quay</a>. With the <code>okd</code> preset, the user is now able to run an OKD cluster locally similar to OCP.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>$ crc config set preset okd -</span></span><span style="display:flex;"><span>Changes to configuration property <span style="color:#e6db74">&#39;preset&#39;</span> are only applied when the CRC instance is created. -</span></span><span style="display:flex;"><span>If you already have a running CRC instance with different preset, <span style="color:#66d9ef">then</span> <span style="color:#66d9ef">for</span> this configuration change to take effect, delete the CRC instance with <span style="color:#e6db74">&#39;crc delete&#39;</span>, setup it with <span style="color:#e6db74">`</span>crc setup<span style="color:#e6db74">`</span> and start it with <span style="color:#e6db74">&#39;crc start&#39;</span>. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>$ crc config view -</span></span><span style="display:flex;"><span>- consent-telemetry : yes -</span></span><span style="display:flex;"><span>- preset : okd -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>$ crc setup -</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> -</span></span><span style="display:flex;"><span>INFO Checking <span style="color:#66d9ef">if</span> /Users/prkumar/.crc/cache/crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle exists -</span></span><span style="display:flex;"><span>INFO Getting bundle <span style="color:#66d9ef">for</span> the CRC executable -</span></span><span style="display:flex;"><span>INFO Downloading crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle -</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>$ crc start -</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> -</span></span></code></pre></div><h1 id="where-were-at" >Where we&rsquo;re at +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ crc config set preset okd +Changes to configuration property <span style="color:#e6db74">&#39;preset&#39;</span> are only applied when the CRC instance is created. +If you already have a running CRC instance with different preset, <span style="color:#66d9ef">then</span> <span style="color:#66d9ef">for</span> this configuration change to take effect, delete the CRC instance with <span style="color:#e6db74">&#39;crc delete&#39;</span>, setup it with <span style="color:#e6db74">`</span>crc setup<span style="color:#e6db74">`</span> and start it with <span style="color:#e6db74">&#39;crc start&#39;</span>. +$ crc config view +- consent-telemetry : yes +- preset : okd +$ crc setup +<span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> +INFO Checking <span style="color:#66d9ef">if</span> /Users/prkumar/.crc/cache/crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle exists +INFO Getting bundle <span style="color:#66d9ef">for</span> the CRC executable +INFO Downloading crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle +<span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> +$ crc start +<span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> +</code></pre></div><h1 id="where-were-at" >Where we&rsquo;re at <span> <a href="#where-were-at"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> @@ -320,12 +316,12 @@ compiled for a 64K page size, but Apple M1 processor uses 4K or a maximum size o </span> </h1><p>After we provision the Openshift cluster we replaced the RHEL-8 kernel packages to RHEL-9 which doesn&rsquo;t have issue to boot on Apple M1 machines. Using this kernel it is possible to workaround this issue, and we are able to run the created disk image on M1.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>$ rpm -qa | grep kernel -</span></span><span style="display:flex;"><span>kernel-5.14.0-70.13.1.el9_0.aarch64 -</span></span><span style="display:flex;"><span>kernel-core-5.14.0-70.13.1.el9_0.aarch64 -</span></span><span style="display:flex;"><span>kernel-modules-extra-5.14.0-70.13.1.el9_0.aarch64 -</span></span><span style="display:flex;"><span>kernel-modules-5.14.0-70.13.1.el9_0.aarch64 -</span></span></code></pre></div><h1 id="where-were-at" >Where we&rsquo;re at +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ rpm -qa | grep kernel +kernel-5.14.0-70.13.1.el9_0.aarch64 +kernel-core-5.14.0-70.13.1.el9_0.aarch64 +kernel-modules-extra-5.14.0-70.13.1.el9_0.aarch64 +kernel-modules-5.14.0-70.13.1.el9_0.aarch64 +</code></pre></div><h1 id="where-were-at" >Where we&rsquo;re at <span> <a href="#where-were-at"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> diff --git a/js/script.min.510c781c39dbb21b4c76d85c82e2bdf4689220adbb7cd61e49e9d293e442fb42.js b/js/script.min.510c781c39dbb21b4c76d85c82e2bdf4689220adbb7cd61e49e9d293e442fb42.js new file mode 100644 index 0000000..3876006 --- /dev/null +++ b/js/script.min.510c781c39dbb21b4c76d85c82e2bdf4689220adbb7cd61e49e9d293e442fb42.js @@ -0,0 +1 @@ +document.addEventListener("DOMContentLoaded",function(h){'use strict';if(!document.queryCommandSupported('copy'))return;let a='',d='',e='';function b(b,c){b.innerHTML=c,setTimeout(()=>{b.innerHTML=a},1e3)}function f(a){let b=window.getSelection(),c=document.createRange();return a.childElementCount===2?c.selectNodeContents(a.children[1]):c.selectNodeContents(a),b.removeAllRanges(),b.addRange(c),b}function c(g){let c=document.createElement("button");c.className="highlight-copy-btn",c.innerHTML=a;let h=g.firstElementChild;c.addEventListener('click',()=>{try{let a=f(h);document.execCommand('copy'),a.removeAllRanges(),b(c,d)}catch(a){console&&console.log(a),b(c,e)}}),g.appendChild(c)}let g=document.getElementsByClassName('highlight');Array.prototype.forEach.call(g,c)},!1) \ No newline at end of file diff --git a/js/script.min.74bf1a3fcf1af396efa4acf3e660e876b61a2153ab9cbe1893ac24ea6d4f94ee.js b/js/script.min.74bf1a3fcf1af396efa4acf3e660e876b61a2153ab9cbe1893ac24ea6d4f94ee.js deleted file mode 100644 index 19395e9..0000000 --- a/js/script.min.74bf1a3fcf1af396efa4acf3e660e876b61a2153ab9cbe1893ac24ea6d4f94ee.js +++ /dev/null @@ -1 +0,0 @@ -document.addEventListener("DOMContentLoaded",function(){"use strict";if(!document.queryCommandSupported("copy"))return;let t='',s='',o='';function n(e,n){e.innerHTML=n,setTimeout(()=>{e.innerHTML=t},1e3)}function i(e){let t=window.getSelection(),n=document.createRange();return e.childElementCount===2?n.selectNodeContents(e.children[1]):n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n),t}function a(e){let a=document.createElement("button");a.className="highlight-copy-btn",a.innerHTML=t;let r=e.firstElementChild;a.addEventListener("click",()=>{try{let e=i(r);document.execCommand("copy"),e.removeAllRanges(),n(a,s)}catch(e){console&&console.log(e),n(a,o)}}),e.appendChild(a)}let r=document.getElementsByClassName("highlight");Array.prototype.forEach.call(r,a)},!1) \ No newline at end of file diff --git a/page/1/index.html b/page/1/index.html index 82d97ae..f415c29 100644 --- a/page/1/index.html +++ b/page/1/index.html @@ -1,2 +1 @@ -https://crc.dev/blog/ - \ No newline at end of file +https://crc.dev/blog/ \ No newline at end of file diff --git a/posts/2022-06-15-vfkit/index.html b/posts/2022-06-15-vfkit/index.html index 21ca43b..71131cf 100644 --- a/posts/2022-06-15-vfkit/index.html +++ b/posts/2022-06-15-vfkit/index.html @@ -1,41 +1,182 @@ -Running crc on M1 machines - CRC - Runs Containers -Skip to main content
+
+
+
+
+
+

Running crc on M1 machines

+
+
+
+

Since its initial release, CRC has been running on macOS as well as on Windows and Linux. However macOS support was limited to Apple machines with an Intel CPUs until recently. With Apple’s ongoing switch to aarch64 M1 CPUs, we’ve been asked numerous times when CRC would get M1 support. This has changed with the recently released crc 2.4.1. -This blog post will describe the challenges we had to overcome when we decided to add that support.

Background -

CRC is a tool which allows you to run an OpenShift cluster or podman containers on a laptop or local workstation. +This blog post will describe the challenges we had to overcome when we decided to add that support.

+

Background + + + + +

CRC is a tool which allows you to run an OpenShift cluster or podman containers on a laptop or local workstation. It can be used on a macOS, Windows or Linux machine. It runs its OpenShift cluster/podman runtime by starting a virtual machine (VM) using a disk image built in advance and packaged in what we call a bundle. -On each platform, we try to use native hypervisors.

On macOS, crc uses hyperkit as its +On each platform, we try to use native hypervisors.

+

On macOS, crc uses hyperkit as its hypervisor. It has served us well over the years, but lately it hasn’t seen a lot of maintainance, and we’ve been hitting a few annoying bugs in its ocaml -qcow2 implementation.

However, the main problem with hyperkit is that it’s x86_64 only. It does not +qcow2 implementation.

+

However, the main problem with hyperkit is that it’s x86_64 only. It does not provide any M1 support, so we had to look for alternatives if we want to run -CRC on a M1 mac.

QEMU and virtualization.framework -

When looking for hypervisors we could use on macOS, we found two candidates:

QEMU -

QEMU is a widely used hypervisor on Linux systems, but it can also be used on +CRC on a M1 mac.

+

QEMU and virtualization.framework + + + + +

When looking for hypervisors we could use on macOS, we found two candidates:

+ +

QEMU + + + + +

QEMU is a widely used hypervisor on Linux systems, but it can also be used on Windows and macOS. On macOS, it can use Apple’s hypervisor framework to make use of virtualization support in hardware. It has a huge range of features. In particular it supports many virtio devices including virtiofs for file sharing, Its main drawback is that for supply chain trust reasons, we’d have to maintain our own QEMU builds, which can be quite an endeavour given the size of QEMU’s -code base (2 million lines of C code).

Apple’s virtualization framework -

This is a high level Objective-C/swift framework to start virtual machines on Apple hardware with a small set of virtio devices (disk, network, …). +code base (2 million lines of C code).

+

Apple’s virtualization framework + + + + +

This is a high level Objective-C/swift framework to start virtual machines on Apple hardware with a small set of virtio devices (disk, network, …). It was introduced in macOS ‘Big Sur’ 11.0, and only supports macOS and Linux virtual machines. Luckily, our bundle is a Linux image, so it’s good enough for us! -It obviously supports both x86_64 and M1 CPUs.

Its main advantage and drawback is that it’s a high-level framework maintained by Apple. This means very little code is needed to create a virtual machine with it, and Apple maintains and updates all the low-level virtualization code for us. -This is also a drawback, as this framework is closed source. This means we fully depend on Apple for fixing any bugs that we might find. And unfortunately, we’ve already hit such bugs in Apple’s implementation of virtiofs, a bug has been filed, but we have no control over when it will get fixed, if ever.

Introducing vfkit -

Apple’s virtualization framework looks promising, but it’s just a framework. A framework is similar to a shared library on Linux, your code can link to it to use what it offers, but you can’t directly use it as a commandline or GUI tool. -One particular caveat with the virtualization framework is that any virtual machines you start with it will only stay alive as long as the process which started it is alive.

We could not find any pre-existing FOSS commandline tool to manage virtual machines with Apple’s virtualization framework, but luckily for us, there are go bindings for it. +It obviously supports both x86_64 and M1 CPUs.

+

Its main advantage and drawback is that it’s a high-level framework maintained by Apple. This means very little code is needed to create a virtual machine with it, and Apple maintains and updates all the low-level virtualization code for us. +This is also a drawback, as this framework is closed source. This means we fully depend on Apple for fixing any bugs that we might find. And unfortunately, we’ve already hit such bugs in Apple’s implementation of virtiofs, a bug has been filed, but we have no control over when it will get fixed, if ever.

+

Introducing vfkit + + + + +

Apple’s virtualization framework looks promising, but it’s just a framework. A framework is similar to a shared library on Linux, your code can link to it to use what it offers, but you can’t directly use it as a commandline or GUI tool. +One particular caveat with the virtualization framework is that any virtual machines you start with it will only stay alive as long as the process which started it is alive.

+

We could not find any pre-existing FOSS commandline tool to manage virtual machines with Apple’s virtualization framework, but luckily for us, there are go bindings for it. This allowed us to write a small commandline wrapper using these bindings which we called vfkit -It does not cover all features exposed by Code-Hex/vz and the virtualization framework, but we can expand this over time. At the moment, its commandline is enough for CRC’s needs, including support for both system and usermode networking.

Where we’re at -

With vfkit, we have a way of starting virtual machines on M1 hardware. The second thing that we need is a bundle with the appropriate disk images. The two main changes we had to do were:

  • move from qcow2 to raw disk images as this is the only format Apple’s virtualization framework supports. This meant modifying CRC to make use of sparse files as much as possible to minimize disk usage. The clonefile system call was also very handy to limit the amount of disk space that we use
  • the aarch64 kernel must be uncompressed, otherwise the virtual machine won’t start. This is fairly tedious to figure out as you don’t get any output from the virtual machine to let you know what went wrong.

After these changes, we were able to generate a podman bundle to use natively on a M1 machine. As its x86_64 counterpart, this bundle is built on top of Fedora CoreOS. -Running OpenShift on a M1 CPU won’t be possible soon, as it’s currently based on Red Hat CoreOS 8, and its kernel is incompatible with M1 CPUs.

vfkit support for x86_64 hardware landed in crc 2.3.0 release, and so far did not have many issues reported. -We merged M1 vfkit support in crc 2.4.1, but had last minute issues related to signing, so it’s only available as an unsigned installer for this release. Hopefully this will be solved in time for crc 2.5.

Once this is finalized, we still have plenty to explore in vfkit and M1 support: file sharing support, OKD bundles, microshift bundles, … so stay tuned!

As usual, we’d like to get as much feedback as possible on all this work!

+ + + + +
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/2022-08-17-ocp-on-m1/index.html b/posts/2022-08-17-ocp-on-m1/index.html index 28bd2cc..cfcac3f 100644 --- a/posts/2022-08-17-ocp-on-m1/index.html +++ b/posts/2022-08-17-ocp-on-m1/index.html @@ -1,25 +1,142 @@ -Running ocp on M1 machines - CRC - Runs Containers -Skip to main content
+
+
+
+
+
+

Running ocp on M1 machines

+
+
+
+

With the release of CRC 2.4.1 it was possible to run on Apple’s latest offering of M1-based machines. However, the support was limited to podman preset. Numerous times we received requests if it would be possible to instead offer an OpenShift that would run on these machines. This has changed with the recently released crc 2.7.1. -This blog post will describe the challenges we had to overcome when we decided to add that support.

Background -

CRC is a tool that manages the lifecycle of a virtual machine and allows you to run an OpenShift cluster or podman containers on a laptop or local workstation. +This blog post will describe the challenges we had to overcome when we decided to add that support.

+

Background + + + + +

CRC is a tool that manages the lifecycle of a virtual machine and allows you to run an OpenShift cluster or podman containers on a laptop or local workstation. It can be used on a macOS, Windows or Linux machine. It runs its OpenShift cluster/podman runtime using a disk image built in advance and packaged in what we call a bundle. -On each platform, we try to use native hypervisors, such as KVM on Linux, Hyper-V on Windows, and using the virtualization framework on macOS.

Issue of running OCP on M1 -

Openshift container platform (OCP) uses Red Hat Core OS (RHCOS) which is based on latest RHEL-8 which is -compiled for a 64K page size, but Apple M1 processor uses 4K or a maximum size of 16K page sizes link.

How it works -

After we provision the Openshift cluster we replaced the RHEL-8 kernel packages to RHEL-9 which doesn’t have issue to boot on -Apple M1 machines. Using this kernel it is possible to workaround this issue, and we are able to run the created disk image on M1.

$ rpm -qa | grep kernel
-kernel-5.14.0-70.13.1.el9_0.aarch64
-kernel-core-5.14.0-70.13.1.el9_0.aarch64
-kernel-modules-extra-5.14.0-70.13.1.el9_0.aarch64
-kernel-modules-5.14.0-70.13.1.el9_0.aarch64
-

Where we’re at -

Once RHCOS switches to RHEL-9, we don’t need to replace the kernel bits manually and this workaround can be removed.

As usual, we’d like to get as much feedback as possible on all this work!

+ + + + +
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/2022-08-22-okd-on-crc/index.html b/posts/2022-08-22-okd-on-crc/index.html index 3448375..c070ece 100644 --- a/posts/2022-08-22-okd-on-crc/index.html +++ b/posts/2022-08-22-okd-on-crc/index.html @@ -1,36 +1,149 @@ -Running OKD with CRC - CRC - Runs Containers + + + + + + +Running OKD with CRC - CRC - Runs Containers Skip to main content
+
+
+
+
+
+

Running OKD with CRC

+
+
+
+

It has been long time since CRC with an updated OKD bundle was released. Last release was 1.x and not updated since then. During our 2.x development cycle, we made effort on CRC’s side to decouple the bundles from the release -artifacts. It allows us to create the bundle independently of the release and upload it to separate location.

Another change we made during 2.x is to add support for presets and from starting we are supporting podman and openshift +artifacts. It allows us to create the bundle independently of the release and upload it to separate location.

+

Another change we made during 2.x is to add support for presets and from starting we are supporting podman and openshift preset with openshift as default. With the recently released crc 2.7.1 -an okd preset was added and users can now use same crc binary to start a OKD cluster.

A “preset” is a set of configuration parameters for the bundle to be used, the assigned memory and CPU and changes behaviour if needed for the startup process.

How it works -

The CRC team created the OKD bundle for 4.11.0-0.okd-2022-07-29-154152 release +an okd preset was added and users can now use same crc binary to start a OKD cluster.

+

A “preset” is a set of configuration parameters for the bundle to be used, the assigned memory and CPU and changes behaviour if needed for the startup process.

+

How it works + + + + +

The CRC team created the OKD bundle for 4.11.0-0.okd-2022-07-29-154152 release and pushed it as container image to quay. With the okd preset, the user is now able to -run an OKD cluster locally similar to OCP.

$ crc config set preset okd
-Changes to configuration property 'preset' are only applied when the CRC instance is created.
-If you already have a running CRC instance with different preset, then for this configuration change to take effect, delete the CRC instance with 'crc delete', setup it with `crc setup` and start it with 'crc start'.
-
-$ crc config view
-- consent-telemetry                     : yes
-- preset                                : okd
-
-$ crc setup
-[...]
-INFO Checking if /Users/prkumar/.crc/cache/crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle exists
-INFO Getting bundle for the CRC executable
-INFO Downloading crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle
-[...]
-
-$ crc start
-[...]
-

Where we’re at -

  • Update the CRC related pages on OKD
  • Put CI in place to create OKD bundles for each release and upload it to quay.
  • Coordinate with OKD community to interact with users.

As usual, we’d like to get as much feedback as possible on all this work!

+ + + + +
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/2022-09-26-bundle-option-in-crc/index.html b/posts/2022-09-26-bundle-option-in-crc/index.html index 11b1b3a..737171f 100644 --- a/posts/2022-09-26-bundle-option-in-crc/index.html +++ b/posts/2022-09-26-bundle-option-in-crc/index.html @@ -1,30 +1,132 @@ -Different bundle types option in crc - CRC - Runs Containers -Skip to main content
+
+
+
+
+
+

Different bundle types option in crc

+
+
+
+

CRC provides a config option called bundle to configure the location of the bundle, until 2.9 release of CRC the bundle option could only accept local filesystem path which meant users needed to download the bundle in advance before consuming it. The move to a container registry for hosting the okd and podman bundles, introduces another step in the process as bundles are now generated as an OCI container image and the *.crcbundle file -needs to be extracted from the image.

Since this adds significant friction for users wanting to use different bundles, we decided +needs to be extracted from the image.

+

Since this adds significant friction for users wanting to use different bundles, we decided to extend the bundle config option to also support container registry urls and http/https urls -in addition to local filesystem paths.

Starting with CRC 2.9.0 release, bundle config option supports three different way to configure -bundle location, these are explained below with use cases.

Case 1: If users want to use their own internal container registry for podman/okd bundles then they can -copy the bundle images from quay.io to their internal container registry using skopeo.

# Copy latest 4.2.0 podman bundle to internal registry
-$  skopeo copy -a docker://quay.io/crcont/podman-bundle:4.2.0 docker://<internal_registry>/podman-bundle:4.2.0
-
-$ crc config set bundle docker://<internal_registry>/podman-bundle:4.2.0
-$ crc config set preset podman
-$ crc setup
-$ crc start
-

Case 2: If user tries to use the bundle which is part of internal http/https location

$ crc config set bundle https://<internal_server>/crc_libvirt_4.11.3_amd64.crcbundle
-$ crc setup
-$ crc start
-

Case 3: If a user tries to use the bundle which is downloaded locally

$ crc config set bundle <local_bundle_path>
-$ crc setup
-$ crc start
-

As usual, we’d like to get as much feedback as possible on all this work!

+ + + + +
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/2023-03-22-containers-plumbing/index.html b/posts/2023-03-22-containers-plumbing/index.html index f89fef8..86c1af4 100644 --- a/posts/2023-03-22-containers-plumbing/index.html +++ b/posts/2023-03-22-containers-plumbing/index.html @@ -1,8 +1,104 @@ -vfkit presentation at Containers Plumbing - CRC - Runs Containers -Skip to main content
+
+
+ + +
+
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/2023-04-05-microshift-on-crc/index.html b/posts/2023-04-05-microshift-on-crc/index.html index ae1683a..8cf1a92 100644 --- a/posts/2023-04-05-microshift-on-crc/index.html +++ b/posts/2023-04-05-microshift-on-crc/index.html @@ -1,23 +1,127 @@ -Introducing MicroShift preset for CRC - CRC - Runs Containers + + + + + + + Introducing MicroShift preset for CRC - CRC - Runs Containers Skip to main content
+
+
+
+
+
+

Introducing MicroShift preset for CRC

+
+
+
+

Are you a developer who wants to use OpenShift Kubernetes Engine but doesn’t have a powerful system? Or do you need to deploy to a small form factor or edge computing environment? If so, you’ll be happy to hear about our new MicroShift preset, -a lightweight version of OpenShift Kubernetes Engine that’s optimized for resource-limited environments.

The OpenShift preset currently provided by CRC requires 9GB of RAM and 4 CPUs. -With the release of CRC 2.16, you can now use the MicroShift preset, which only requires 4GB of RAM and 2 CPUs.

What makes MicroShift different from OpenShift Kubernetes Engine? MicroShift is designed for small form factor +a lightweight version of OpenShift Kubernetes Engine that’s optimized for resource-limited environments.

+

The OpenShift preset currently provided by CRC requires 9GB of RAM and 4 CPUs. +With the release of CRC 2.16, you can now use the MicroShift preset, which only requires 4GB of RAM and 2 CPUs.

+

What makes MicroShift different from OpenShift Kubernetes Engine? MicroShift is designed for small form factor and edge computing environments, which means it’s optimized for lower resource requirements. MicroShift -uses a subset of the OpenShift Kubernetes Engine components and removes some of the features that aren’t needed in these environments.

Key differences from OpenShift Kubernetes Engine

To get started with MicroShift, you’ll need to download and install the latest version of CRC. +uses a subset of the OpenShift Kubernetes Engine components and removes some of the features that aren’t needed in these environments.

+

Key differences from OpenShift Kubernetes Engine

+

To get started with MicroShift, you’ll need to download and install the latest version of CRC. If you already have a CRC instance, delete it using the crc delete command. Then set the preset to MicroShift using the crc config set preset microshift command. Finally, set up and start CRC using the crc setup and crc start commands. -With crc version 2.16, in order to use the oc binary from crc oc-env, a workaround is needed.

After CRC is started, a kubeconfig file will be generated, which is used to connect to the cluster.

To try out MicroShift, we’ve created a sample demo repository that you can find on GitHub. -It includes step by step instructions to build and deploy a workload on a CRC instance using the MicroShift preset.

We’d love to hear your feedback and suggestions on the MicroShift preset. Please let us know in our release discussion, or if you encounter any issues, please file them on our issue tracker.

In conclusion, MicroShift preset is a great option for users who need to use OpenShift Kubernetes Engine in resource-limited environments without some of the features of a Red Hat OpenShift cluster. -So give it a try and see how it can benefit you and your team!

+ + + + +
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/2023-06-05-create-okd-bundle/index.html b/posts/2023-06-05-create-okd-bundle/index.html index ead580c..a5633d7 100644 --- a/posts/2023-06-05-create-okd-bundle/index.html +++ b/posts/2023-06-05-create-okd-bundle/index.html @@ -1,42 +1,192 @@ -How to create OKD bundle - CRC - Runs Containers + + + + + + +How to create OKD bundle - CRC - Runs Containers + + + + + + + + + + + + +Skip to main content
+
+
+
+
+
+

How to create OKD bundle

+
+
+
+

CRC is a tool that allows you to quickly and easily spin up a local OpenShift cluster. +It is a great way to learn about OpenShift/OKD/MicroShift and to test out new features.

+

In this blog post, we will explain to you, how to create an OKD bundle for CRC.

+

Prerequisites + + + + +

To create an OKD bundle, you will need the following:

+
    +
  • A computer with a recent version of Fedora, CentOS Stream or RHEL
  • +
  • At least 60-70 GB of free disk space
  • +
  • 8 CPUs
  • +
  • 24 GB of memory
  • +
+

Getting the OKD Release + + + + +

The first step is to get the OKD release version that you want to use. This information is present at OKD GitHub repo

+ +

For example, the latest OKD version at the time of this writing is 4.13.0-0.okd-2023-06-04-080300, this version number will be needed in the following steps.

+

Cloning the SNC Repository + + + + +

Next, you need to clone the SNC repository. This repository contains the scripts that you will use to create the bundle.

+
git clone https://github.com/crc-org/snc.git
+

Note: The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example it’s currently tracking RHOCP 4.13.x. To generate OKD bundles for older releases, first switch to the appropriate branch:

+
git checkout origin/release-4.12
+

Setting the OKD Version + + + + +

You need to set the OKD_VERSION environment variable to the version of OKD that you want to use.

+
export OKD_VERSION=4.12.0-0.okd-2023-04-16-041331
+

Creating the Pull Secret + + + + +

You need to create a dummy pull secret that will be used for snc script. You can create this dummmy pull secret using the following command:

+
cat <<EOF > pullsecret.json
+{
+  "auths": {
+    "fake": {
+      "auth": "Zm9vOmJhcgo="
+    }
+  }
+}
+EOF
+

Creating the Bundle + + + + +

You are now ready to create the bundle. You can do this by running the following command:

+
OPENSHIFT_PULL_SECRET_PATH=pullsecret.json ./snc.sh
+

Note: Wait till the snc.sh script finish successfully (takes around 40-50 mins)

+
./createdisk.sh
+

Starting the Cluster + + + + +

Once you have created the bundle, you can start the cluster by running the following command:

+
crc setup --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle
+crc start --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle
+

This will start the cluster with created OKD bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.

+

Conclusion + + + + +

This blog post has shown you how to create an OKD bundle for CRC. By following these steps, you can quickly and easily spin up a local cluster using the version of OKD that you want.

+
+ +
+ +
+
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/2023-08-22-create-microshift-next-bundle/index.html b/posts/2023-08-22-create-microshift-next-bundle/index.html index 85f92df..bca80c3 100644 --- a/posts/2023-08-22-create-microshift-next-bundle/index.html +++ b/posts/2023-08-22-create-microshift-next-bundle/index.html @@ -1,29 +1,175 @@ -A Step-by-Step Guide to Creating the MicroShift next Bundle - CRC - Runs Containers + + + + + + +A Step-by-Step Guide to Creating the MicroShift next Bundle - CRC - Runs Containers Skip to main content
+
+
+
+
+
+

A Step-by-Step Guide to Creating the MicroShift next Bundle

+
+
+
+

CRC is a tool that allows you to quickly and easily spin up a local OpenShift cluster. +It is a great way to learn about OpenShift/OKD/MicroShift and to test out new features.

+

If you’re looking to experiment with the upcoming MicroShift release and want to learn how to create the bundle to consume it with CRC, you’re in the right place! -This blog post will guide you through the process step by step.

Prerequisites -

To create a MicroShift bundle, you will need the following:

  • A computer (or VM which have nested virtualization enabled) with RHEL-9
  • At least 60-70 GB of free disk space
  • 4 CPUs
  • 8 GB of memory

Getting the MicroShift Pre Release -

The first step is to make sure there is a MicroShift prerelease version available that you want to use. This information -is present at MicroShift GitHub repo

For example, the latest MicroShift version at the time of this writing is 4.14.0-ec.4.

Cloning the SNC Repository -

Next, you need to clone the SNC repository. This repository contains the scripts that you will use to create the bundle.

git clone https://github.com/crc-org/snc.git
-

Note: The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example, it’s currently tracking RHOCP 4.13.x. To generate MicroShift bundles for prerelease, first switch to the appropriate branch:

git checkout origin/release-4.14
-

Getting the Pull Secret -

You need to have a pull secret that will be used for snc script. You can download this pull secret -from here using Download Pull Secret button.

Creating the Bundle -

You are now ready to create the bundle. You can do this by running the following command:

OPENSHIFT_PULL_SECRET_PATH=<downloaded_pull_secret_file_path> MICROSHIFT_PRERELEASE=yes ./microshift.sh
-

Note: Wait till the microshift script finish successfully (takes around 30-40 mins)

./createdisk.sh
-

Congratulations! You’ve successfully created a prerelease version of MicroShift bundle

Starting the Cluster -

Once you have created the bundle, you can start the cluster by running the following command:

crc setup --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle
-crc start --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle
-

This will start the cluster with created MicroShift bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.

Conclusion -

This blog post has shown you how to create a MicroShift bundle for prerelease and use it with CRC. By following these steps, you can quickly and easily spin up a local cluster using the prerelease version of MicroShift.

+ + + + +
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/2024-03-22-use-bundle-option/index.html b/posts/2024-03-22-use-bundle-option/index.html index aeef909..53c90ce 100644 --- a/posts/2024-03-22-use-bundle-option/index.html +++ b/posts/2024-03-22-use-bundle-option/index.html @@ -1,28 +1,138 @@ -How to use bundle option - CRC - Runs Containers -Skip to main content
+
+
+
+
+
+

How to use bundle option

+
+
+
+

CRC provides a config option called bundle to configure the location of the bundle. This option is useful when you want to use a bundle that is not the default one or user want to try a bundle which is not part of release but available at the OpenShift mirror location. The bundle option can accept local filesystem paths, container registry URLs, and http/https URLs. This blog post will guide you through the process of using the bundle option using config or -setup/start commands.

Using bundle option with crc config command -

You can use the crc config set bundle command to set the bundle location. This command can accept local filesystem paths, -container registry URLs, and http/https URLs. Here are some examples:

# Assume user want to use microshift-4.15.0 bundle which is not part of crc release but available at the OpenShift mirror location
-crc config set bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle
-crc setup
-crc start
-

Using bundle option with crc setup and crc start commands -

crc setup --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle
-crc start --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle
-

Beware, if you use -b https:// there will be no signature checks -Bundles downloaded from mirror.openshift.com can be verified this way:

curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle
-curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256
-sha256sum crc_microshift_libvirt_4.15.0_amd64.crcbundle => should match with the content of crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256
-

Conclusion -

This blog post has shown you how to use the bundle option with CRC. By following these steps, you can quickly and easily +setup/start commands.

+

Using bundle option with crc config command + + + + +

You can use the crc config set bundle command to set the bundle location. This command can accept local filesystem paths, +container registry URLs, and http/https URLs. Here are some examples:

+
# Assume user want to use microshift-4.15.0 bundle which is not part of crc release but available at the OpenShift mirror location
+crc config set bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle
+crc setup
+crc start
+

Using bundle option with crc setup and crc start commands + + + + +

crc setup --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle
+crc start --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle
+

Beware, if you use -b https:// there will be no signature checks +Bundles downloaded from mirror.openshift.com can be verified this way:

+
curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle
+curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256
+sha256sum crc_microshift_libvirt_4.15.0_amd64.crcbundle => should match with the content of crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256
+

Conclusion + + + + +

This blog post has shown you how to use the bundle option with CRC. By following these steps, you can quickly and easily spin up a local cluster using the bundle of your choice. -As usual, we’d like to get your feedback on all this work!

+ + + + +
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/index.html b/posts/index.html index 6ec2e7e..4dd302b 100644 --- a/posts/index.html +++ b/posts/index.html @@ -1,16 +1,209 @@ -Posts - CRC - Runs Containers -Skip to main content
+
+
+
+
+ +
+
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file diff --git a/posts/index.xml b/posts/index.xml index 2f7f2d6..c733ee8 100644 --- a/posts/index.xml +++ b/posts/index.xml @@ -11,24 +11,24 @@ setup/start commands.</p> </span> </h2><p>You can use the <code>crc config set bundle</code> command to set the bundle location. This command can accept local filesystem paths, container registry URLs, and http/https URLs. Here are some examples:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Assume user want to use microshift-4.15.0 bundle which is not part of crc release but available at the OpenShift mirror location</span> -</span></span><span style="display:flex;"><span>crc config set bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle -</span></span><span style="display:flex;"><span>crc setup -</span></span><span style="display:flex;"><span>crc start -</span></span></code></pre></div><h2 id="using-bundle-option-with-crc-setup-and-crc-start-commands" >Using <code>bundle</code> option with <code>crc setup</code> and <code>crc start</code> commands +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#75715e"># Assume user want to use microshift-4.15.0 bundle which is not part of crc release but available at the OpenShift mirror location</span> +crc config set bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle +crc setup +crc start +</code></pre></div><h2 id="using-bundle-option-with-crc-setup-and-crc-start-commands" >Using <code>bundle</code> option with <code>crc setup</code> and <code>crc start</code> commands <span> <a href="#using-bundle-option-with-crc-setup-and-crc-start-commands"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> -</h2><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>crc setup --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle -</span></span><span style="display:flex;"><span>crc start --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle -</span></span></code></pre></div><p><strong>Beware</strong>, if you use -b https:// there will be no signature checks +</h2><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">crc setup --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle +crc start --bundle https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle +</code></pre></div><p><strong>Beware</strong>, if you use -b https:// there will be no signature checks Bundles downloaded from mirror.openshift.com can be verified this way:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle -</span></span><span style="display:flex;"><span>curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256 -</span></span><span style="display:flex;"><span>sha256sum crc_microshift_libvirt_4.15.0_amd64.crcbundle <span style="color:#f92672">=</span>&gt; should match with the content of crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256 -</span></span></code></pre></div><h2 id="conclusion" >Conclusion +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle +curl -L -O https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/bundles/microshift/4.15.0/crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256 +sha256sum crc_microshift_libvirt_4.15.0_amd64.crcbundle <span style="color:#f92672">=</span>&gt; should match with the content of crc_microshift_libvirt_4.15.0_amd64.crcbundle.sha256 +</code></pre></div><h2 id="conclusion" >Conclusion <span> <a href="#conclusion"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> @@ -73,10 +73,10 @@ is present at MicroShift GitHub repo</p> </a> </span> </h2><p>Next, you need to clone the SNC repository. This repository contains the scripts that you will use to create the bundle.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/crc-org/snc.git -</span></span></code></pre></div><p><strong>Note:</strong> The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example, it&rsquo;s currently tracking RHOCP 4.13.x. To generate MicroShift bundles for prerelease, first switch to the appropriate branch:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git checkout origin/release-4.14 -</span></span></code></pre></div><h2 id="getting-the-pull-secret" >Getting the Pull Secret +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git clone https://github.com/crc-org/snc.git +</code></pre></div><p><strong>Note:</strong> The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example, it&rsquo;s currently tracking RHOCP 4.13.x. To generate MicroShift bundles for prerelease, first switch to the appropriate branch:</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git checkout origin/release-4.14 +</code></pre></div><h2 id="getting-the-pull-secret" >Getting the Pull Secret <span> <a href="#getting-the-pull-secret"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> @@ -91,10 +91,10 @@ from <a href="https://console.redhat.com/openshift/create/local">here</a> </a> </span> </h2><p>You are now ready to create the bundle. You can do this by running the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>OPENSHIFT_PULL_SECRET_PATH<span style="color:#f92672">=</span>&lt;downloaded_pull_secret_file_path&gt; MICROSHIFT_PRERELEASE<span style="color:#f92672">=</span>yes ./microshift.sh -</span></span></code></pre></div><p><strong>Note: Wait till the <code>microshift</code> script finish successfully (takes around 30-40 mins)</strong></p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>./createdisk.sh -</span></span></code></pre></div><p><strong>Congratulations! You&rsquo;ve successfully created a prerelease version of MicroShift bundle</strong></p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">OPENSHIFT_PULL_SECRET_PATH<span style="color:#f92672">=</span>&lt;downloaded_pull_secret_file_path&gt; MICROSHIFT_PRERELEASE<span style="color:#f92672">=</span>yes ./microshift.sh +</code></pre></div><p><strong>Note: Wait till the <code>microshift</code> script finish successfully (takes around 30-40 mins)</strong></p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">./createdisk.sh +</code></pre></div><p><strong>Congratulations! You&rsquo;ve successfully created a prerelease version of MicroShift bundle</strong></p> <h2 id="starting-the-cluster" >Starting the Cluster <span> <a href="#starting-the-cluster"> @@ -102,9 +102,9 @@ from <a href="https://console.redhat.com/openshift/create/local">here</a> </a> </span> </h2><p>Once you have created the bundle, you can start the cluster by running the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>crc setup --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle -</span></span><span style="display:flex;"><span>crc start --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle -</span></span></code></pre></div><p>This will start the cluster with created MicroShift bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">crc setup --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle +crc start --bundle crc_microshift_libvirt_4.14.0-ec.4_amd64.crcbundle +</code></pre></div><p>This will start the cluster with created MicroShift bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.</p> <h2 id="conclusion" >Conclusion <span> <a href="#conclusion"> @@ -145,53 +145,53 @@ It is a great way to learn about OpenShift/OKD/MicroShift and to test out new fe </a> </span> </h2><p>Next, you need to clone the SNC repository. This repository contains the scripts that you will use to create the bundle.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/crc-org/snc.git -</span></span></code></pre></div><p><strong>Note:</strong> The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example it&rsquo;s currently tracking RHOCP 4.13.x. To generate OKD bundles for older releases, first switch to the appropriate branch:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git checkout origin/release-4.12 -</span></span></code></pre></div><h2 id="setting-the-okd-version" >Setting the OKD Version +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git clone https://github.com/crc-org/snc.git +</code></pre></div><p><strong>Note:</strong> The master branch of snc always follows the latest Red Hat OpenShift Container Platform major release. For example it&rsquo;s currently tracking RHOCP 4.13.x. To generate OKD bundles for older releases, first switch to the appropriate branch:</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git checkout origin/release-4.12 +</code></pre></div><h2 id="setting-the-okd-version" >Setting the OKD Version <span> <a href="#setting-the-okd-version"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> </h2><p>You need to set the OKD_VERSION environment variable to the version of OKD that you want to use.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export OKD_VERSION<span style="color:#f92672">=</span>4.12.0-0.okd-2023-04-16-041331 -</span></span></code></pre></div><h2 id="creating-the-pull-secret" >Creating the Pull Secret +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">export OKD_VERSION<span style="color:#f92672">=</span>4.12.0-0.okd-2023-04-16-041331 +</code></pre></div><h2 id="creating-the-pull-secret" >Creating the Pull Secret <span> <a href="#creating-the-pull-secret"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> </h2><p>You need to create a dummy pull secret that will be used for snc script. You can create this dummmy pull secret using the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cat <span style="color:#e6db74">&lt;&lt;EOF &gt; pullsecret.json -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">{ -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> &#34;auths&#34;: { -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> &#34;fake&#34;: { -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> &#34;auth&#34;: &#34;Zm9vOmJhcgo=&#34; -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> } -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> } -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">} -</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">EOF</span> -</span></span></code></pre></div><h2 id="creating-the-bundle" >Creating the Bundle +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">cat <span style="color:#e6db74">&lt;&lt;EOF &gt; pullsecret.json +</span><span style="color:#e6db74">{ +</span><span style="color:#e6db74"> &#34;auths&#34;: { +</span><span style="color:#e6db74"> &#34;fake&#34;: { +</span><span style="color:#e6db74"> &#34;auth&#34;: &#34;Zm9vOmJhcgo=&#34; +</span><span style="color:#e6db74"> } +</span><span style="color:#e6db74"> } +</span><span style="color:#e6db74">} +</span><span style="color:#e6db74">EOF</span> +</code></pre></div><h2 id="creating-the-bundle" >Creating the Bundle <span> <a href="#creating-the-bundle"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> </h2><p>You are now ready to create the bundle. You can do this by running the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>OPENSHIFT_PULL_SECRET_PATH<span style="color:#f92672">=</span>pullsecret.json ./snc.sh -</span></span></code></pre></div><p><strong>Note: Wait till the <code>snc.sh</code> script finish successfully (takes around 40-50 mins)</strong></p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>./createdisk.sh -</span></span></code></pre></div><h2 id="starting-the-cluster" >Starting the Cluster +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">OPENSHIFT_PULL_SECRET_PATH<span style="color:#f92672">=</span>pullsecret.json ./snc.sh +</code></pre></div><p><strong>Note: Wait till the <code>snc.sh</code> script finish successfully (takes around 40-50 mins)</strong></p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">./createdisk.sh +</code></pre></div><h2 id="starting-the-cluster" >Starting the Cluster <span> <a href="#starting-the-cluster"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> </a> </span> </h2><p>Once you have created the bundle, you can start the cluster by running the following command:</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>crc setup --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle -</span></span><span style="display:flex;"><span>crc start --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle -</span></span></code></pre></div><p>This will start the cluster with created OKD bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">crc setup --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle +crc start --bundle crc_okd_libvirt_4.12.0-0.okd-2023-04-16-041331_amd64.crcbundle +</code></pre></div><p>This will start the cluster with created OKD bundles. Once the cluster is started, you can follow the instructions at the end of start to access it.</p> <h2 id="conclusion" >Conclusion <span> <a href="#conclusion"> @@ -231,22 +231,21 @@ in addition to local filesystem paths.</p> bundle location, these are explained below with use cases.</p> <p>Case 1: If users want to use their own internal container registry for podman/okd bundles then they can <em>copy</em> the bundle images from <code>quay.io</code> to their internal container registry using <a href="https://github.com/containers/skopeo">skopeo</a>.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Copy latest 4.2.0 podman bundle to internal registry</span> -</span></span><span style="display:flex;"><span>$ skopeo copy -a docker://quay.io/crcont/podman-bundle:4.2.0 docker://&lt;internal_registry&gt;/podman-bundle:4.2.0 -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>$ crc config set bundle docker://&lt;internal_registry&gt;/podman-bundle:4.2.0 -</span></span><span style="display:flex;"><span>$ crc config set preset podman -</span></span><span style="display:flex;"><span>$ crc setup -</span></span><span style="display:flex;"><span>$ crc start -</span></span></code></pre></div><p>Case 2: If user tries to use the bundle which is part of internal http/https location</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ crc config set bundle https://&lt;internal_server&gt;/crc_libvirt_4.11.3_amd64.crcbundle -</span></span><span style="display:flex;"><span>$ crc setup -</span></span><span style="display:flex;"><span>$ crc start -</span></span></code></pre></div><p>Case 3: If a user tries to use the bundle which is downloaded locally</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ crc config set bundle &lt;local_bundle_path&gt; -</span></span><span style="display:flex;"><span>$ crc setup -</span></span><span style="display:flex;"><span>$ crc start -</span></span></code></pre></div><p>As usual, we&rsquo;d like to get as much <a href="https://github.com/crc-org/crc/issues/new/choose">feedback</a> as possible on all this work!</p>
Running OKD with CRChttps://crc.dev/blog/posts/2022-08-22-okd-on-crc/Mon, 22 Aug 2022 09:14:10 +0530https://crc.dev/blog/posts/2022-08-22-okd-on-crc/<p>It has been long time since CRC with an updated OKD bundle was released. Last release was <a href="https://www.okd.io/crc/#get-started">1.x</a> and +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#75715e"># Copy latest 4.2.0 podman bundle to internal registry</span> +$ skopeo copy -a docker://quay.io/crcont/podman-bundle:4.2.0 docker://&lt;internal_registry&gt;/podman-bundle:4.2.0 +$ crc config set bundle docker://&lt;internal_registry&gt;/podman-bundle:4.2.0 +$ crc config set preset podman +$ crc setup +$ crc start +</code></pre></div><p>Case 2: If user tries to use the bundle which is part of internal http/https location</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ crc config set bundle https://&lt;internal_server&gt;/crc_libvirt_4.11.3_amd64.crcbundle +$ crc setup +$ crc start +</code></pre></div><p>Case 3: If a user tries to use the bundle which is downloaded locally</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ crc config set bundle &lt;local_bundle_path&gt; +$ crc setup +$ crc start +</code></pre></div><p>As usual, we&rsquo;d like to get as much <a href="https://github.com/crc-org/crc/issues/new/choose">feedback</a> as possible on all this work!</p>Running OKD with CRChttps://crc.dev/blog/posts/2022-08-22-okd-on-crc/Mon, 22 Aug 2022 09:14:10 +0530https://crc.dev/blog/posts/2022-08-22-okd-on-crc/<p>It has been long time since CRC with an updated OKD bundle was released. Last release was <a href="https://www.okd.io/crc/#get-started">1.x</a> and not updated since then. During our 2.x development cycle, we made effort on CRC&rsquo;s side to decouple the bundles from the release artifacts. It allows us to create the bundle independently of the release and upload it to separate location.</p> <p>Another change we made during 2.x is to add support for presets and from starting we are supporting <code>podman</code> and <code>openshift</code> @@ -262,24 +261,21 @@ an <code>okd</code> preset was added and users can now use same <code>c </h1><p>The CRC team created the OKD bundle for <a href="https://github.com/openshift/okd/releases/tag/4.11.0-0.okd-2022-07-29-154152">4.11.0-0.okd-2022-07-29-154152</a> release and pushed it as container image to <a href="https://quay.io/repository/crcont/okd-bundle">quay</a>. With the <code>okd</code> preset, the user is now able to run an OKD cluster locally similar to OCP.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>$ crc config set preset okd -</span></span><span style="display:flex;"><span>Changes to configuration property <span style="color:#e6db74">&#39;preset&#39;</span> are only applied when the CRC instance is created. -</span></span><span style="display:flex;"><span>If you already have a running CRC instance with different preset, <span style="color:#66d9ef">then</span> <span style="color:#66d9ef">for</span> this configuration change to take effect, delete the CRC instance with <span style="color:#e6db74">&#39;crc delete&#39;</span>, setup it with <span style="color:#e6db74">`</span>crc setup<span style="color:#e6db74">`</span> and start it with <span style="color:#e6db74">&#39;crc start&#39;</span>. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>$ crc config view -</span></span><span style="display:flex;"><span>- consent-telemetry : yes -</span></span><span style="display:flex;"><span>- preset : okd -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>$ crc setup -</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> -</span></span><span style="display:flex;"><span>INFO Checking <span style="color:#66d9ef">if</span> /Users/prkumar/.crc/cache/crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle exists -</span></span><span style="display:flex;"><span>INFO Getting bundle <span style="color:#66d9ef">for</span> the CRC executable -</span></span><span style="display:flex;"><span>INFO Downloading crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle -</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>$ crc start -</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> -</span></span></code></pre></div><h1 id="where-were-at" >Where we&rsquo;re at +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ crc config set preset okd +Changes to configuration property <span style="color:#e6db74">&#39;preset&#39;</span> are only applied when the CRC instance is created. +If you already have a running CRC instance with different preset, <span style="color:#66d9ef">then</span> <span style="color:#66d9ef">for</span> this configuration change to take effect, delete the CRC instance with <span style="color:#e6db74">&#39;crc delete&#39;</span>, setup it with <span style="color:#e6db74">`</span>crc setup<span style="color:#e6db74">`</span> and start it with <span style="color:#e6db74">&#39;crc start&#39;</span>. +$ crc config view +- consent-telemetry : yes +- preset : okd +$ crc setup +<span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> +INFO Checking <span style="color:#66d9ef">if</span> /Users/prkumar/.crc/cache/crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle exists +INFO Getting bundle <span style="color:#66d9ef">for</span> the CRC executable +INFO Downloading crc_okd_vfkit_4.11.0-0.okd-2022-07-29-154152_arm64.crcbundle +<span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> +$ crc start +<span style="color:#f92672">[</span>...<span style="color:#f92672">]</span> +</code></pre></div><h1 id="where-were-at" >Where we&rsquo;re at <span> <a href="#where-were-at"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> @@ -320,12 +316,12 @@ compiled for a 64K page size, but Apple M1 processor uses 4K or a maximum size o </span> </h1><p>After we provision the Openshift cluster we replaced the RHEL-8 kernel packages to RHEL-9 which doesn&rsquo;t have issue to boot on Apple M1 machines. Using this kernel it is possible to workaround this issue, and we are able to run the created disk image on M1.</p> -<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>$ rpm -qa | grep kernel -</span></span><span style="display:flex;"><span>kernel-5.14.0-70.13.1.el9_0.aarch64 -</span></span><span style="display:flex;"><span>kernel-core-5.14.0-70.13.1.el9_0.aarch64 -</span></span><span style="display:flex;"><span>kernel-modules-extra-5.14.0-70.13.1.el9_0.aarch64 -</span></span><span style="display:flex;"><span>kernel-modules-5.14.0-70.13.1.el9_0.aarch64 -</span></span></code></pre></div><h1 id="where-were-at" >Where we&rsquo;re at +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ rpm -qa | grep kernel +kernel-5.14.0-70.13.1.el9_0.aarch64 +kernel-core-5.14.0-70.13.1.el9_0.aarch64 +kernel-modules-extra-5.14.0-70.13.1.el9_0.aarch64 +kernel-modules-5.14.0-70.13.1.el9_0.aarch64 +</code></pre></div><h1 id="where-were-at" >Where we&rsquo;re at <span> <a href="#where-were-at"> <svg viewBox="0 0 28 23" height="100%" width="19" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" fill="none" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/></svg> diff --git a/tags/index.html b/tags/index.html index e122ec0..e0db7a3 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,7 +1,83 @@ -Tags - CRC - Runs Containers -Skip to main content
+
+
+
+
+

Tags

+
    +
+
+
+

CRC Contributors

\ No newline at end of file + + +

+CRC Contributors +

+ + + + \ No newline at end of file