Warning: This is NOT tested multiple times; refere by your own risk
gcloud compute disks create crc-disk –image-project ubuntu-os-cloud –image-family ubuntu-1804-lts –zone us-central1-a gcloud compute images create crc-v4-image –source-disk crc-disk –source-disk-zone us-central1-a –licenses “https://compute.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx”
#use this image to create a vm instance
use direct nested virtualization while createing VM
https://cloud.google.com/compute/docs/instances/nested-virtualization/enabling
Tip:
- get the gcloud command from GCP console and add nested virtualization option at the end.
- find the location availale with supported CPU options
$ gcloud compute instances create gcp-crc-openshift \
--project=ak-hosting \
--zone=us-central1-a \
--machine-type=e2-standard-4 \
--network-interface=network-tier=PREMIUM,subnet=default \
--maintenance-policy=MIGRATE \
--service-account=1022881758392-compute@developer.gserviceaccount.com \
--scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append \
--tags=http-server,https-server \
--create-disk=auto-delete=yes,boot=yes,device-name=gcp-crc-openshift,image=projects/centos-cloud/global/images/centos-8-v20211214,mode=rw,size=50,type=projects/ak-hosting/zones/us-central1-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any \
--enable-nested-virtualization
sudo apt-get update sudo apt-get install –assume-yes qemu-kvm libvirt-daemon libvirt-daemon-system dnsmasq
sudo usermod -a -G libvirt $(whoami) sudo usermod -a -G libvirt-qemu $(whoami) sudo usermod -a -G libvirt-dnsmasq $(whoami)
sudo reboot
cat « EOF | sudo tee /etc/systemd/resolved.conf > /dev/null
[Resolve]
DNS=127.0.0.2
Domains=apps-crc.testing crc.testing
EOF
sudo sed -i ‘s/#listen-address=/listen-address=127.0.0.2/g’ /etc/dnsmasq.conf
cat « EOF | sudo tee /etc/default/dnsmasq > /dev/null
DOMAIN_SUFFIX=``
ENABLED=1
CONFIG_DIR=/etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new
IGNORE_RESOLVCONF=yes
EOF
cat « EOF | sudo tee /etc/dnsmasq.d/crc.conf > /dev/null
address=/crc.testing/192.168.130.11
address=/apps-crc.testing/192.168.130.11
server=/#/8.8.8.8
EOF
sudo systemctl restart systemd-resolved sudo systemctl restart dnsmasq
dig foo.apps-crc.testing | echo $(grep 192.168.130.11) |
dig api.crc.testing | echo $(grep 192.168.130.11) |
curl -LO https://mirror.openshift.com/pub/openshift-v4/clients/crc/latest/crc-linux-amd64.tar.xz && tar -Jxvf crc-linux-amd64.tar.xz && mkdir -p ~/bin && export PATH=$PATH:~/bin && mv crc-linux/crc ~/bin/ && rm -rf crc
crc config set skip-check-network-manager-installed true crc config set skip-check-network-manager-config true crc config set skip-check-network-manager-running true crc config set skip-check-crc-dnsmasq-file true
crc setup
Download crc pull secret from https://cloud.redhat.com/openshift/install/crc/installer-provisioned and keep it in ~/.crc-pull-secret
nohup crc start -m 20480 -p ~/.crc-pull-secret &
References:
https://github.com/code-ready/crc/issues/549#issuecomment-529379181 https://github.com/code-ready/crc/issues/549#issuecomment-573676404
#on the gcp ubuntu - nexted virtualization enabled vm, run the following
wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb sudo apt update sudo dpkg –install chrome-remote-desktop_current_amd64.deb sudo apt install –assume-yes –fix-broken
#install xfce sudo DEBIAN_FRONTEND=noninteractive apt install –assume-yes xfce4 desktop-base sudo bash -c ‘echo “exec /etc/X11/Xsession /usr/bin/xfce4-session” > /etc/chrome-remote-desktop-session’ sudo apt install –assume-yes xscreensaver
#install chrome wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg –install google-chrome-stable_current_amd64.deb sudo apt install –assume-yes –fix-broken
Go to https://remotedesktop.google.com/headless and follow the steps to enable remote access
Finally start using remote access from https://remotedesktop.google.com/access
https://github.com/bbalakriz/crc-ubuntu