{"id":49260,"date":"2025-05-04T15:16:04","date_gmt":"2025-05-04T15:16:04","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=49260"},"modified":"2025-07-12T05:54:58","modified_gmt":"2025-07-12T05:54:58","slug":"openshift-install-configurations-using-openshift-local-in-linux-laptops-desktops","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/openshift-install-configurations-using-openshift-local-in-linux-laptops-desktops\/","title":{"rendered":"OpenShift Install &amp; Configurations using OpenShift Local in Linux laptops\/desktops"},"content":{"rendered":"\n<p>Here is the <strong>correct and updated step-by-step guide<\/strong> to install and configure <strong>OpenShift Local<\/strong> (formerly CRC \u2013 CodeReady Containers) on <strong>Linux laptops\/desktops<\/strong> for local development and testing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udc27 OpenShift Local on Linux \u2013 Overview<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Feature<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>Product Name<\/td><td>OpenShift Local (formerly CodeReady Containers &#8211; CRC)<\/td><\/tr><tr><td>CLI Tool Name<\/td><td><code>crc<\/code><\/td><\/tr><tr><td>Cluster Type<\/td><td>Single-node OpenShift 4.x cluster<\/td><\/tr><tr><td>Virtualization<\/td><td>Uses <strong>QEMU\/KVM + libvirt<\/strong><\/td><\/tr><tr><td>Ideal For<\/td><td>Developers testing OpenShift workloads locally<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 System Requirements<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Requirement<\/th><th>Value<\/th><\/tr><\/thead><tbody><tr><td>OS<\/td><td>Fedora, RHEL, CentOS, Ubuntu, Debian<\/td><\/tr><tr><td>CPU<\/td><td>Min 4 cores<\/td><\/tr><tr><td>RAM<\/td><td>Min 9 GB (16 GB recommended)<\/td><\/tr><tr><td>Disk Space<\/td><td>Min 35+ GB free<\/td><\/tr><tr><td>Virtualization<\/td><td>KVM\/QEMU enabled, libvirt installed<\/td><\/tr><tr><td>Pull Secret<\/td><td>Required from Red Hat account<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddf0 Step 1: Install Required Packages<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Fedora \/ RHEL \/ CentOS:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo dnf install @virtualization libvirt libvirt-daemon-kvm qemu-kvm\nsudo systemctl enable --now libvirtd\nsudo usermod -a -G libvirt $(whoami)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Ubuntu \/ Debian:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo apt update\nsudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager\nsudo systemctl enable --now libvirtd\nsudo usermod -aG libvirt $(whoami)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\ud83d\udd01 <strong>Logout and re-login<\/strong> to apply group changes.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udce5 Step 2: Download OpenShift Local (CRC) &amp; Pull Secret<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Visit: <a href=\"https:\/\/console.redhat.com\/openshift\/create\/local\" target=\"_blank\" rel=\"noopener\">https:\/\/console.redhat.com\/openshift\/create\/local<\/a><\/li>\n\n\n\n<li>Sign in or register with a free Red Hat account.<\/li>\n\n\n\n<li>Download:\n<ul class=\"wp-block-list\">\n<li><strong>Linux CRC archive<\/strong> (e.g. <code>crc-linux-amd64.tar.xz<\/code>)<\/li>\n\n\n\n<li><strong>Pull Secret<\/strong> and save it as <code>pull-secret.txt<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udce6 Step 3: Install the <code>crc<\/code> Binary<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">tar -xvf crc-linux-*.tar.xz\nsudo mv crc-linux-*<span class=\"hljs-regexp\">\/crc \/u<\/span>sr\/local\/bin\/crc\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Check the version:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">crc version\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd27 Step 4: Setup the Cluster<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">crc setup --pull-secret ~<span class=\"hljs-regexp\">\/Downloads\/<\/span>pull-secret.txt\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Replace the path to the actual location of your pull secret.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u25b6\ufe0f Step 5: Start the OpenShift Cluster<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">crc start\n<\/code><\/span><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>This initializes and boots the OpenShift VM<\/li>\n\n\n\n<li>Takes 5\u201315 minutes to fully start<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udf10 Step 6: Access the Web Console<\/h2>\n\n\n\n<p>After the cluster starts, it will output a URL like:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">https:<span class=\"hljs-comment\">\/\/console-openshift-console.apps-crc.testing<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Login Credentials:<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Role<\/th><th>Username<\/th><th>Password<\/th><\/tr><\/thead><tbody><tr><td>Admin<\/td><td><code>kubeadmin<\/code><\/td><td>Printed in terminal output<\/td><\/tr><tr><td>Developer<\/td><td><code>developer<\/code><\/td><td><code>developer<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Open the URL in your browser and login using the credentials.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddea Step 7: Use the OpenShift CLI<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Configure CLI access:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-built_in\">eval<\/span> $(crc oc-env)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Login via CLI:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">oc login -u developer -p developer https:<span class=\"hljs-comment\">\/\/api.crc.testing:6443<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You can now deploy workloads, create namespaces, and test apps locally.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd01 Cluster Management Commands<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Action<\/th><th>Command<\/th><\/tr><\/thead><tbody><tr><td>Stop cluster<\/td><td><code>crc stop<\/code><\/td><\/tr><tr><td>Delete cluster<\/td><td><code>crc delete<\/code><\/td><\/tr><tr><td>Check status<\/td><td><code>crc status<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u26a0\ufe0f Common Issues &amp; Fixes<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Issue<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td><code>libvirt<\/code> permission errors<\/td><td>Ensure you are in the <code>libvirt<\/code> group (<code>groups<\/code> command)<\/td><\/tr><tr><td>DNS resolution fails<\/td><td>Disable VPN or firewall; restart NetworkManager<\/td><\/tr><tr><td>CRC start fails with bundle error<\/td><td>Use latest CRC version from Red Hat site<\/td><\/tr><tr><td>No CRC command<\/td><td>Reboot OR ensure <code>\/usr\/local\/bin<\/code> is in your PATH<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcce Notes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CRC installs a single-node OpenShift cluster optimized for development.<\/li>\n\n\n\n<li>It&#8217;s not meant for production or multi-node use.<\/li>\n\n\n\n<li>Automatically sets up a VM using libvirt with a <code>.crc<\/code> domain.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here is the correct and updated step-by-step guide to install and configure OpenShift Local (formerly CRC \u2013 CodeReady Containers) on Linux laptops\/desktops for local development and testing. \ud83d\udc27 OpenShift Local&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[5153],"tags":[],"class_list":["post-49260","post","type-post","status-publish","format-standard","hentry","category-openshift"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=49260"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49260\/revisions"}],"predecessor-version":[{"id":49264,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49260\/revisions\/49264"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=49260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=49260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=49260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}