Skip to content

Instantly share code, notes, and snippets.

@sub-mod
Last active July 9, 2022 12:03
Show Gist options
  • Save sub-mod/ff999cb17940116a5ddea8d496c4b3f6 to your computer and use it in GitHub Desktop.
Save sub-mod/ff999cb17940116a5ddea8d496c4b3f6 to your computer and use it in GitHub Desktop.
Setup CodeReady Containers on Remote Server and connect from Laptop 4.2

Following steps work for F29 for F31 look here

On the remote host

cat /etc/redhat-release
Fedora release 29 (Twenty Nine)

Install packages

su -c 'yum install qemu-kvm libvirt NetworkManager tinyproxy'
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
sudo systemctl start tinyproxy

Create a crcuser

adduser crcuser
passwd crcuser
usermod -aG wheel crcuser
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 e4FEb-9dxdF-9N2wH-Dj7B8 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: e4FEb-9dxdF-9N2wH-Dj7B8

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.2.tar.gz

tar -xvf openshift-client-linux-4.2.2.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-linux-4.1.13.tar.gz
tar -xvf openshift-client-linux-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 root@<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

# 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 e4FEb-9dxdF-9N2wH-Dj7B8 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 root@<REMOTE_HOST> -L 80:myservice-mynamespace.apps-crc.testing:80

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

@sub-mod
Copy link
Author

sub-mod commented Oct 10, 2019

s/ConnectorPort 6443/ConnectPort 6443

+1 Thanks. I made the change

@kramik1
Copy link

kramik1 commented Dec 3, 2019

I have the latest which is 4.2.8 but I don't see tinyproxy anywhere yet. Have you seen this yet?

@pcuci
Copy link

pcuci commented Feb 19, 2020

This was helpful, confirming it works with

crc version: 1.4.0+d5bb3a3
OpenShift version: 4.2.13 (embedded in binary)

on a CentOS Linux release 7.7.1908 (Core)

Able to connect from a Win10 machine using bash via terminal

And setup a SSH tunnel via PuTTY and Pagent for the browser console

@vickas5221
Copy link

This was helpful, confirming it works with

crc version: 1.4.0+d5bb3a3
OpenShift version: 4.2.13 (embedded in binary)

on a CentOS Linux release 7.7.1908 (Core)

Able to connect from a Win10 machine using bash via terminal

And setup a SSH tunnel via PuTTY and Pagent for the browser console

can you please help me providing the steps ?
I want to connect to remote crc 4.5.9 runing on ubuntu from windows 10 client machine.

@rmohta
Copy link

rmohta commented Dec 4, 2020

If you are unable to edit /etc/hosts or run dnsmasq file, then use kubectl port-forward to target a particular service from your client machine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment