dotfiles

A portable work environment (mirror of https://git.sr.ht/~ruivieira/dotfiles)

View on GitHub

On the remote host

$ cat /etc/redhat-release
Fedora release 31 (Thirty One)

Install packages

sudo dnf install qemu-kvm libvirt NetworkManager tinyproxy
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
sudo systemctl start tinyproxy

Create a crcuser

sudo adduser crcuser
sudo passwd crcuser
sudo usermod -aG wheel crcuser
sudo sudo passwd -d crcuser
# test if crcuser needs password
$ su crcuser
$ whoami
crcuser

Setup CodeReady Containers

$ su crcuser
# Goto https://cloud.redhat.com/openshift/install/crc/installer-provisioned
# download the CodeReady Containers archive

$ wget https://mirror.openshift.com/pub/openshift-v4/clients/crc/latest/crc-linux-amd64.tar.xz
$ tar -xvf crc-linux-amd64.tar.xz
$ crc setup

# the pull secret is also available on https://cloud.redhat.com/openshift/install/crc/installer-provisioned
# Copy and paste it when prompted by crc start
$ crc start

Save the login details

$ eval $(crc oc-env)
$ oc login -u kubeadmin -p <PASSWORD> https://api.crc.testing:6443
INFO Access the OpenShift web-console here: https://console-openshift-console.apps-crc.testing
INFO Login to the console with user: kubeadmin, password: <PASSWORD>

Install oc client

# Go to https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/
$ wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux-4.2.9.tar.gz

$ tar -xvf openshift-client-linux-4.2.9.tar.gz
$ cp oc /usr/local/bin

Setup tinyproxy

Edit the /etc/tinyproxy/tinyproxy.conf file. Comment out the Allow 127.0.0.1 line as it allows only access from within the VM Search for ConnectPort and add the following line:

ConnectPort 6443

Save the file and start tinyproxy:

systemctl start tinyproxy

On the Laptop

Install oc client

# Go to https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/
$ wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-mac-4.2.9.tar.gz
$ tar -xvf openshift-client-mac-4.1.13.tar.gz
$ cp oc /usr/local/bin

BROWSER: Setup SSH tunneling to access OpenShift console from browser

Edit /etc/hosts:

127.0.0.1 localhost console-openshift-console.apps-crc.testing oauth-openshift.apps-crc.testing
sudo ssh <USER>@<REMOTE_HOST> -L 443:console-openshift-console.apps-crc.testing:443

Give laptop password first and then the remote system password.
OpenShift console is available at https://console-openshift-console.apps-crc.testing

TERMINAL: Setup for oc client to work

$VM_IP can be obtained by running ./crc ip on the host machine.

# in a new terminal
export https_proxy=http://$VM_IP:8888
# test api endpoint
curl -k https://api.crc.testing:6443

Now you can login using oc client tool

oc login -u kubeadmin -p <PASSWORD> https://api.crc.testing:6443

To access routes

# get the route
$ oc get routes
NAME     HOST/PORT                                  PATH   SERVICES           PORT   TERMINATION   WILDCARD
tekton   myservice-mynamespace.apps-crc.testing          tekton-dashboard   http                 None

Add the route to /etc/hosts file as given below.

127.0.0.1 localhost console-openshift-console.apps-crc.testing oauth-openshift.apps-crc.testing myservice-mynamespace.apps-crc.testing

SSH tunnel in a new terminal:

sudo ssh <USER>@<REMOTE_HOST> -L 80:myservice-mynamespace.apps-crc.testing:80

the UI is available at https://myservice-mynamespace.apps-crc.testing