d4rkstar commented on code in PR #130: URL: https://github.com/apache/openserverless/pull/130#discussion_r2148573445
########## README.md: ########## @@ -47,28 +39,73 @@ The steps and the commands to install the development VM are the same in Linux, Once you have `multipass` installed, open a terminal or powershell and type the following command: ``` -multipass launch -nopenserverless -c4 -d20g -m8g --cloud-init https://raw.githubusercontent.com/apache/openserverless/main/cloud-init.yaml +multipass launch -nopsv -c4 -d20g -m16g --cloud-init https://raw.githubusercontent.com/apache/openserverless/main/cloud-init.yaml ``` -Now wait until the installation is complete and you see messages like `status: done` or `Launched: openserverless` (message can be different depending on multipass version effectively installed). +Wait until the vm is launched and you see messages like `Launched: openserverless` (message can be different depending on multipass version effectively installed). + +Complete the installation with the following command: ``` -multipass exec "openserverless" -- sudo cloud-init status --wait +multipass exec opsv ./waitready ``` -Finally check if Kubernetes (k3s) is up and running in the VM: +Your VM is ready. + +## (Optional) Configure Kubectl access + +If you need administrative access to the vm, copy the `.kube/config` file inside the VM locally, then check if you have access: ``` -multipass exec openserverless sudo k3s kubectl get nodes +mkdir $HOME/.kube +# warning this overwrites an exiting kube config +multipass exec opsv "cat .kube/config" >$HOME/.kube/config +# you need kubectl installed +kubectl get nodes ``` You should see something like this: ``` NAME STATUS ROLES AGE VERSION -openserverless Ready control-plane,master 4h58m v1.29.6+k3s1 +opsv Ready control-plane,master 4h58m v1.29.6+k3s1 ``` +# Development Environment Overview + +If you only want to test OpenServerless, stop here. You should have a working environment. + +The rest of this readme describes how to create a development enviroment within the vm. + +You need to setup the test environment with multipass before going on with the Development Environment. + +As an IDE we use [VSCode](https://code.visualstudio.com/) as it allows [Remote Development](https://code.visualstudio.com/docs/remote/remote-overview) within the virtual machine, and we provide a workspace for it. + +You may setup the environment by yourself, but it can take a lot of time so we prepared a procedure to setup quickly a ready-to-use development environment which runs the same on Windows, Linux and Mac. + +Our development environment uses a virtual machine based on Ubuntu 24.04. The virtual environemnt is initialized with a [cloud-init](https://cloud-init.io/) script we provide. + +The script installs [k3s](https://k3s.io/) as Kubernetes engine and [nix](https://nixos.org/download/#download-nix) to setup development environments. The project includes multiple subprojects, each one with a different set of dependencies so we use [direnv](https://direnv.net/) to automatically activate the right tools when you open a terminal. + +*NOTE*: of course you can operate variations. It should be relatively easy to run the development virtual machine in a cloud provider using the provided cloud-init script. Basically all the cloud providers allows to build a VM using cloud-init. +We do not provide instructions how to setup on the various cloud provider (yet). + +You can even setup the development environment by yourself without using the virtual machine, and use a different IDE, but adapting the configuration for your IDE is up to you and could be very time-consuming. Our development environment is the result of a few years of fine tuning, so we do not expect it will be easy to change. + +## Install openserverless and tools in the VM + +By default the vm is only for testing, there is no development code inside. + +If you are a developer, fefore accessing the VM use this command to dowload the soucre code and tools you need to for development: Review Comment: @sciabarracom there are some typos here -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@openserverless.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org