Added brief azure openshift local guide.
This commit is contained in:
		
							
								
								
									
										131
									
								
								2025-09-14-openshift-local-azure/README.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								2025-09-14-openshift-local-azure/README.org
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,131 @@
 | 
				
			|||||||
 | 
					#+TITLE: Deploy openshift local on azure
 | 
				
			||||||
 | 
					#+DATE: <2025-09-14 Sun>
 | 
				
			||||||
 | 
					#+AUTHOR: James Blair
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This short write-up will explain how to deploy [[https://developers.redhat.com/products/openshift-local/overview][OpenShift Local]] on a Microsoft Azure Virtual Machine via nested virtualization.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Pre-requisites
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Before we begin let's ensure we have the ~az~ [[https://github.com/Azure/azure-cli][Azure CLI]] installed. In my case I installed this via ~brew~.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Check ac status
 | 
				
			||||||
 | 
					#+begin_src bash
 | 
				
			||||||
 | 
					az version --output table
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+RESULTS: Check ac status
 | 
				
			||||||
 | 
					#+begin_example
 | 
				
			||||||
 | 
					Azure-cli    Azure-cli-core    Azure-cli-telemetry
 | 
				
			||||||
 | 
					-----------  ----------------  ---------------------
 | 
				
			||||||
 | 
					2.77.0       2.77.0            1.1.0
 | 
				
			||||||
 | 
					#+end_example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Once the CLI is installed we need to ensure we have authenticated with Azure in our terminal. This guide assumes you have an existing Azure account.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Login to azure
 | 
				
			||||||
 | 
					#+begin_src bash
 | 
				
			||||||
 | 
					az login
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Lastly, after logging in this guide assumes you will already have an appropriate Azure [[https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/overview#resource-groups][Resource Group]] available to create the virtual machine within. You can check your Azure resource groups as follows.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Check resource groups
 | 
				
			||||||
 | 
					#+begin_src bash
 | 
				
			||||||
 | 
					az group list --output table
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+RESULTS: Check resource groups
 | 
				
			||||||
 | 
					#+begin_example
 | 
				
			||||||
 | 
					Name              Location    Status
 | 
				
			||||||
 | 
					----------------  ----------  ---------
 | 
				
			||||||
 | 
					openenv-jldt6     eastus      Succeeded
 | 
				
			||||||
 | 
					NetworkWatcherRG  eastus      Succeeded
 | 
				
			||||||
 | 
					aro-asl4w0j5      eastus      Succeeded
 | 
				
			||||||
 | 
					#+end_example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Create azure virtual machine
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Update the variables below and run the ~az vm create~ command to create the new virtual machine.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					One of the crucial aspects of this command is the ~--size~ parameter which is ensuring we will provision a virtual machine that supports **Nested Virtualization**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Additionally we need to ensure the machine has at least ~30Gi~ disk free for the OpenShift Local installation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Create azure virtual machine
 | 
				
			||||||
 | 
					#+begin_src bash
 | 
				
			||||||
 | 
					vmname="openshift-local"
 | 
				
			||||||
 | 
					username="openshift"
 | 
				
			||||||
 | 
					resourcegroup="openenv-jldt6"
 | 
				
			||||||
 | 
					location="eastus"
 | 
				
			||||||
 | 
					az vm create \
 | 
				
			||||||
 | 
					    --resource-group "${resourcegroup}" \
 | 
				
			||||||
 | 
					    --name "${vmname}" \
 | 
				
			||||||
 | 
					    --image "RHELRaw8LVMGen2" \
 | 
				
			||||||
 | 
					    --public-ip-sku Standard \
 | 
				
			||||||
 | 
					    --admin-username "${username}" \
 | 
				
			||||||
 | 
					    --size "Standard_D8_v5" \
 | 
				
			||||||
 | 
					    --ssh-key-values ~/.ssh/james.pub \
 | 
				
			||||||
 | 
					    --os-disk-size-gb 128
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+RESULTS: Create azure virtual machine
 | 
				
			||||||
 | 
					#+begin_example
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "fqdns": "",
 | 
				
			||||||
 | 
					  "id": "/subscriptions/b9c5c8e5-1ac1-43a5-9d6b-1c9f4ff1cd1c/resourceGroups/openenv-jldt6/providers/Microsoft.Compute/virtualMachines/openshift-local",
 | 
				
			||||||
 | 
					  "location": "eastus",
 | 
				
			||||||
 | 
					  "macAddress": "00-0D-3A-9B-FB-38",
 | 
				
			||||||
 | 
					  "powerState": "VM running",
 | 
				
			||||||
 | 
					  "privateIpAddress": "10.0.0.10",
 | 
				
			||||||
 | 
					  "publicIpAddress": "172.171.221.17",
 | 
				
			||||||
 | 
					  "resourceGroup": "openenv-jldt6"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#+end_example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Connect to virtual machine
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Once the machine is running we can connect to it via the ~az cli~ as follows.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note: Depending on the azure vnet configuration in your environment you may need to configure network security settings to enable connectivity to the machine on port ~22~.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Connect to vm
 | 
				
			||||||
 | 
					#+begin_src bash
 | 
				
			||||||
 | 
					az ssh vm --ip <ip address>
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Install openshift local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Once we've connected to our machine we need to download OpenShift Local and extract it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Download openshift local
 | 
				
			||||||
 | 
					#+begin_src bash
 | 
				
			||||||
 | 
					wget https://developers.redhat.com/content-gateway/rest/mirror/pub/openshift-v4/clients/crc/latest/crc-linux-amd64.tar.xz
 | 
				
			||||||
 | 
					tar xf crc-linux-amd64.tar.xz
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					With the ~crc~ binary downloaded and extracted let's run the setup subcommand.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Setup openshift local
 | 
				
			||||||
 | 
					#+begin_src bash
 | 
				
			||||||
 | 
					./crc-linux-2.54.0-amd64/crc setup
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Launch openshift local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Once the setup process completes, we can launch OpenShift Local as follows.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note: The initial launch can take ~15 minutes to complete as the cluster setup is performed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME
 | 
				
			||||||
 | 
					#+begin_src bash
 | 
				
			||||||
 | 
					./crc-linux-2.54.0-amd64/crc start
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
		Reference in New Issue
	
	Block a user