Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/openfaas-incubator/workshop-vscode
Pre-installed Kubernetes Lab for your browser with VSCode
https://github.com/openfaas-incubator/workshop-vscode
k3s kubernetes vm vscode workshop workshop-automation
Last synced: 3 months ago
JSON representation
Pre-installed Kubernetes Lab for your browser with VSCode
- Host: GitHub
- URL: https://github.com/openfaas-incubator/workshop-vscode
- Owner: openfaas-incubator
- License: mit
- Created: 2019-07-08T09:17:40.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-03-22T21:28:47.000Z (over 3 years ago)
- Last Synced: 2024-05-31T20:59:08.219Z (5 months ago)
- Topics: k3s, kubernetes, vm, vscode, workshop, workshop-automation
- Language: Shell
- Homepage:
- Size: 16.6 KB
- Stars: 130
- Watchers: 7
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# workshop-vscode
OpenFaaS Workshop with in-browser version of VSCode from [coder.com](https://coder.com)
All tools are pre-installed with OpenFaaS on Kubernetes with k3s available in the browser terminal.
## How it works
1) A Virtual Machine will be provisioned with a cloud hosting provider using cloudinit
2) [Kubernetes](https://kubernetes.io/) with [k3s](https://k3s.io/) will be installed on the VM
3) [OpenFaaS](https://www.openfaas.com/) will be installed into the k3s cluster
4) A Docker image will be run which provides [VSCode](https://k3s.io/) via a web-browser
5) The login password for VSCode will be obtained via `ssh`
6) VSCode can now be used in web-browser via your VM's IP. The self-signed certificate will provide encryption and the login password will protect against tampering.## Why do we need this?
This project provides a pre-installed Kubernetes environment within a VM so that your students can focus on your workshop.
The example in this repository is for [The OpenFaaS Workshop](https://github.com/openfaas/workshop). It is estimated that it would save students 1.5-2 hours of set-up time. Instructors could also pre-provision a set amount of VMs ahead of time and then give out IP address and password combinations.
## Quick-start
You can run the instructions above on any cloud that supports cloudinit, or if you have a VM platform that does not allow, or support cloudinit, you can simply run the contents of "cloudinit.txt" as root on the VM after it has booted up.
### Provision on DigitalOcean
* [Get 100 USD free credit for 60 days](https://m.do.co/c/8d4e75e9886f)
* Create a DigitalOcean VM size 4GB RAM in your local region
* Add "user data" from `cloudinit.txt`
* Pick "ssh" login or via root password over email
* Deploy the VMSkip to "After the deployment"
### Provision on Civo
* [Get 50 USD credits for new sign-ups](https://bit.ly/2Lx9d2o)
* Create a Medium sized VM and get your login details
* `cloudinit` is not available on Civo at this time, but you can log in after the VM is ready and run the script manually instead
* Use `ssh` to connect to the instance, now paste in the content from `cloudinit.txt` into your terminalSkip to "After the deployment"
### After the deployment
* Locate the public IP given and navigate to `https://IP:8443` in a web-browser. This will open VSCode.
* You will need to accept the self-signed certificate, which will display as "insecure". Despite the warning, it will provide encryption for your connection.
* You may have to wait for several minutes before the endpoint to comes up. See the second on Debugging if you want to check the logs.
* Open a Terminal within VSCode and run through the files in ~/project/openfaas/
* Next start the workshop from [Lab 2](https://github.com/openfaas/workshop)## Get your password
Get the container's logs with:
```sh
export IP=""
ssh root@$IP "docker logs vscode | grep Password"INFO Password: 7d6ae6958e8d7e882ba08f57
```> Note: the password shown is an example, you will have your own password.
## Debug / get the cloudinit logs
* Log into instance `ssh root@IP`
* View the logs for cloudinitEither run `/root/logs.sh` or `tail -f /var/log/cloud-init-output.log`
## Automation
Setup a VM using a script in the London region:
```sh
# ./provision-digitalocean.shCreating: of-workshop-ebddfcaf
==============================
Droplet: of-workshop-ebddfcaf has been created
IP: 178.128.42.184
URL: https://178.128.42.184:8443
Login: ssh [email protected]
==============================
To destroy this droplet run: doctl compute droplet delete -f 150218836```
You'll be emailed the root password, which you can use to log in and get the VSCode password.
## Customize for your own workshops and training sessions
There are two parts you can customize:
* The Docker image: `alexellis2/coder:2021-03-22`, which is built from [Dockerfile](./Dockerfile)
The Docker image provides the VSCode hosting _and_ the CLI tools within the built-in terminal. The Docker image is derrived from [coder.com](https://coder.com).
* The [./cloudinit.txt](./cloudinit.txt) which configures the VM
For instance, if you wanted to run a workshop on *How to design helm charts* - you may comment out the references to OpenFaaS and install helm/tiller into the Docker image.