 Hello, my name is Ben Schmouse, and I'm a field product manager at Red Hat. Today I'm going to be demonstrating deploying a single node open shift forearm on a Mac OS as a virtual machine. In this demonstration, we'll be using a MacBook Pro, which has the Apple M1 Max processor in it, with 32 gigs of RAM, and Ventura Beta 8 as the Mac OS. The reason I'm using Ventura Beta 8 as the Mac OS is because I wanted to leverage some of the new features from the Apple Virtualization Framework. The Apple Virtualization Framework was originally introduced in Mac OS Big Sur. But in the release of Ventura, they've added some additional enhancements and features, particularly one that I'm interested in is the support for the EFI bootloader, which allows me to actually use a Discovery ISO disk, which is what we're going to need in order to deploy our single node open shift cluster. The other thing that I do want to point out in this demonstration is the fact that you can't use current open shift ISOs to actually deploy on a Mac. And the reason being, I'm going to flip over the screen to a knowledge based article that we have. The reason being is that REL7 and REL8 are compiled for 64K page sizes. And REL9 is compiled for 4K page sizes. And the Mac Apple M1 processor can only use 16 or 4K page sizes. So if you try to boot with REL7 or REL8, they're not going to boot up. REL9 does boot successfully, however. And so what I've done is I've had engineering compile an ARCOS image that's based off of REL9 so that we can actually get this up and running and booting properly. The other thing about this lab environment is that I have this screen that you're seeing, which looks very similar to the assisted installer from cloud.redhat.com. However, it is not. It's a locally run assisted installer. It's running on another machine within my lab environment here. And what it's doing is it's actually serving up that ARCOS image that I had custom built based off of REL9. So with that said, let's go ahead and create our cluster. So we'll go ahead and click on Create New Cluster. We will go ahead and put in the name of the cluster and the domain. And there is really no other option for me because I'm doing a specific version, a specific release here. I'm actually using OpenShift 4.12, and it's an early candidate 3 release. And then I'm going to go ahead and I'm going to check install single mode OpenShift. I'm going to skip the pull secret for a second here, and I'm also going to go ahead and check use ARM64 CPU architecture because, again, the M1 processor is based on an ARM core. And I'm also going to check the static IP bridges and bonds because I want to go ahead and set a static IP for this particular single mode OpenShift cluster we're going to deploy. What I'm going to do next here is I'm going to shrink up this pull secret display, and I'm going to go ahead and paste in my pull secret so you can't see the entire thing. And now that we've got the pull secret pasted in there, I'm going to go ahead and click Next. On this screen, this is the form view so that we can go ahead and we can configure our static network information. So I'm going to go ahead and put in the DNS for my environment. I'm going to go ahead and define the machine network for this environment. I'm going to go ahead and add the gateway. And I'm going to go ahead and put in the DNS again. And now we've gone ahead and put in all the information here that we need. We're going to click Next. And we're now going to go ahead and put in the MAC address for my virtual machine. I have a pre-made virtual machine that we will see in a second here, but I already know what the MAC address is for it. So I'm going to go ahead and type it in. And after I've typed in the MAC address, I'm going to go ahead and put in the actual static IP that I want this host to have, which is 10.0.0.25. And we'll go ahead and click Next. At this point, I'm not going to add any additional operators or anything. I'm just showing a vanilla deployment of OpenShift. So we'll go ahead and not check any of those and move forward. And now we're to the host discovery page. On this page, we need to go ahead and click on Add Host. And we're going to be doing a full image here. And I want to go ahead and I want to put in a public key so that I can get into the single note OpenShift host if I wanted to do any troubleshooting. So I'm going to go ahead and quickly move over to a terminal screen. And I'm just going to grab my public key that I want to use, go back to the web interface, and we will paste that in. And then we can go ahead and click Generate the Discovery ISO. Once we've generated the Discovery ISO, I am going to use the WGet command to pull that down to my Macintosh machine that's going to be running the VM. And so I can go ahead and just paste that here. And this will just take maybe a minute, minute and a half to pull that image down. All right, now that we've pulled that image down locally to the Macintosh where the VM is going to be run, we can switch over to another application, which is open source, it's called UTM. And UTM is really just a nice user graphical interface that gives you access to the capabilities of doing virtualization on a Mac. In this case, it will give me access to Apple's virtualization framework as well. And I've gone ahead and I've already pre-created a virtual machine here called M1. We're going to go ahead and we're just going to look at the settings really quick just so you can see what it is. So we've got the information that it's an M1. The system has been set to have eight cores, and I've set it to have 24 gigs of RAM. A single-note OpenShift deployment could use as small as 16 gigs, but I wanted to give it 24 gigs just so it had a little bit of room in case I decide to do any type of workload activity on it. And then we've got the boot configuration here, and you can see the boot loader is set to UEFI again using the Ventura beta. We're going to take advantage of that EFI boot loader that's been introduced for the Apple virtualization framework. And then under virtualization, there's just some settings that you can check and uncheck related to doing the virtualization. There isn't really much for us to change there. And then the other thing I want to point out under networking is that we have gone ahead and our interface for this VM has been bridged into our primary interface on the Mac. So the interface of the VM will appear like it's just on my network naturally. There is no natting going on or anything like that. And then finally, we've got the drive size. I've set the drive to 128 gigs. I'm going to go ahead here, and I'm going to click New because I want to go ahead and attach the discovery image that we brought over. And you can see it's right there. So we'll go ahead and select that. Click Save. And now let's go ahead and boot this virtual machine up. And you can see the rel core OS live display. We'll hit Enter and let it boot. And once it's booted, it's going to do a few things in the background to get the services started that it needs to in order for it to check back into the Assistant installer UI that we're running. And so I'm going to flip back to that so we can wait for the host to show up in here. And you can see the host is now showing up. It's still in a discovery phase for status. One thing I am going to do is I'm going to go ahead and change this name right away to M1. And now you can see that the host is ready. I'm going to go ahead and expand out the little drop down here so you can see some details about the machine. Specifically, what I want to point out is that the manufacturer of this machine shows up as Apple Inc, even though it's a virtual machine. And the product shows up as Apple Virtualization generic platform. That's a great indication, letting me know that I'm actually using the Apple Virtualization framework for this virtual machine. You can also see that it discovered the two disks, one being the actual 128 gig disk we're going to use for our installation disk and the other one being the actual discovery ISO. And finally, we've got the Ethernet interface that we saw that I used the MAC address. And it's labeled as EMP0S1. So with that, we can click Next. And here for storage, there isn't really anything to do. If we had multiple disks, maybe we could pick one of the other disks we wanted to install on, but we're just going to leave this at default and move forward. And with networking, we can leave everything at the defaults at this point as well. If you wanted to do some advanced networking, like changing the cluster network, you could do that or changing the service network. And choosing which type you want to use if you wanted to use OpenShift SDN or use open virtual networking, I'm going to stick with OVN for this deployment. And I'm going to go ahead and click Next. And now at this point, we get the summary page, and it kind of tells us what we've got going on here for deployment. We've got a cluster called m1.shmousetech.com. We're using OpenShift version 4.12.0, early candidate release 3. It's on the ARM64 architecture. It's one host because it's single node OpenShift. It's got eight cores, and it's got 24 gigs of RAM. And it's got about 128 gigs of storage, and all the validations have passed, with the exception of the NTP synchronization. But that's OK, because this isn't a multi-node cluster. It's just a single-node cluster. So that shouldn't hinder us in any aspect. So let's go ahead and click Install. And again, this screen should look very familiar to the Assisted Installer at cloud.redhat.com, because this is the screen you would see when you actually go to do a deployment and watch the status of it. And so what's happening now is that it's preparing the installation, so it's doing a few things to the machine. But what eventually will occur on that virtual machine is the ARCOS image will get written to the disk. The virtual machine will then reboot. Once it reboots and comes back up, any OS tree patches will be applied for that particular version of ARCOS, if there are any. And then it'll reboot again. And then at that point, it will start to instantiate the cluster and start to all the image services that are required, the networking, and EtsyD, and the API, and all that stuff will come up. And eventually we'll have a successful installation of a cluster. But at this time, we just need to go ahead now and wait for that installation to complete. You can see now that it did generate a cube config for us already. And we could download that and save that now if we'd like to, or we can wait until the installation is completed. You'll also see that the installation status is now installing 3 of 10. And we've gone ahead and moved up to installing 5 of 10. One of the things that I have noticed about installing on the Macintosh using the Apple Virtualization framework is that it seems to be very fast and efficient in getting that installation deployed. And now you can see the installation has moved to 7 of 10. And now the installation is at 8 of 10. And now the status has gone to installed. But we're still only 80% complete from the complete overall status. But we're just now initializing the cluster. And we can also see that the control plane is up because the green checkbox now. We can now see that the initialization is completed. And we're still 95% done. You'll notice that the web console URL showed up there. And we also have a Kube admin username and a hidden password that we can now leverage as well. So I'm going to wait until the status goes to 100%. And then we'll go ahead and open up the web console and take a look. While we're waiting for the initialization or the finalization to complete and get 100% status, I'm going to go ahead and download the Kube config. I went ahead and that saved it into my downloads directory. I am going to go ahead and go back over to the terminal here. And I'm going to go ahead and export my Kube config variable. We want to change that to Kube config 2. And you can see that we've got our single node open shift deployed. And if we go ahead and do a CO, we've got all of our operators running, cluster operators running, and marked as true. And if we jump back over to the web interface, you can see that the installation completed. And what I want to note is that it started at 9.40 AM and it finished at 10.15 AM. So that's about 35 minutes for the installation to install here. And again, this was a virtual machine. It wasn't actually bare metal. So that's fairly fast. Let's go ahead and open up the web console. But before we do that, I'm going to go ahead and copy the password to my clipboard. And now I'm going to go ahead and open the. And we'll go ahead and put in Kube admin. Paste in the password. And as you can see, we now have the console to our single node open shift cluster, which again is running on a MacOS with an M1 processor. And it's running as a virtual machine. And if we go down to Compute and look at the nodes, we can go ahead and look at the M1 node. And we can see the details of that node. We'll go back to the overview page. So again, this was a demonstration of deploying a single node open shift forearm on a MacOS VM. And hopefully this was informational for you. But this is all I had today for my demo. Hope to see you again soon. Thanks. Bye-bye.