# Kubernetes hackathon - Cloud IDE - Should work for any new cluster - List of things why this is cool: - pre-build - multiple workspaces - browser - Why self hosted - GPUs - working on the target environment: performance tuning - (maybe) fast start, don't have to move images Questions that we want to address: - Authentification - Accounting of resources - Routing - Filesystem(s) Goal: start from a repo and get you IDE on a node with GPU access ## Application draft The prevalent workflow of developing code for HPC applications locally and debugging / executing on the target hardware is non-productive, cumbersome and repetitive. Developers have worked out several methods to improve the situation: we buy heavy laptops with GPUs to test more locally, mount remote file systems of the compute nodes and spin up our IDEs on laggy mountpoints or use docker containers locally and on the compute nodes to at least have the same programming environment. In the end none of this feels like what we actually want: Something that runs like a compute node, hooked up to our favorite peripherals, displaying the IDE we use regulary; Something we can stuff into our backpack and use whereever we want and with the code we want to work on, checked out in the exactly the state we need in that very moment, with all dependencies preinstalled. Several projects have surfaced in the last years that provide full-fledged IDEs hosted on remote machines from inside a browser (Gitpod, EclipseChe, Cloud9, ...). Packaged together with the desired application in the form of a container image these "Cloud IDEs" can be deployed to a Kubernetes Cluster, providing us an experience close to our local workstations with the horse power of a compute node. ## team name CloudIDElers ## Contact person Till Ehrengruber, till.ehrengruber@cscs.ch ## Team members Till Ehrengruber, till.ehrengruber@cscs.ch, software developer, CSCS Mikael Simberg, mikael.simberg@cscs.ch, software developer, CSCS Linus Groner, linus.groner@cscs.ch, software developer, CSCS Samuel Kellerhals, samuel.kellerhals@c2sm.ethz.ch, software developer, EXCLAIM (ETH) ## Please rate the team experience with the following technologies ![](https://i.imgur.com/GXbyJAd.png) ## other relevant technologies Web development (basic to advanced) Authentication (basic) ## Tell us about your team We are a team of 4 software developers working at CSCS and EXCLAIM interested in increasing developer productivity on CSCS systems. ## What are the services you would like to port to Kubernetes? We would like to make a cloud IDE (Gitpod self-hosted, https://www.gitpod.io/) available to CSCS users who are developing and optimizing codes on CSCS systems. Several projects have surfaced in the last years that provide full-fledged IDEs hosted on remote machines from inside a browser (Gitpod, Eclipse Che, Cloud9, etc.). Packaged together with the desired application in the form of a container image these cloud IDEs can be deployed to a Kubernetes Cluster, providing us an experience close to our local workstations with the horse power of a compute node. ## What are the goal/(s) your team would like to achieve with the hackathon (higher availability/resiliency, security, automation, CI/CD, etc)? The prevalent workflow of developing code for HPC applications locally and debugging / executing on the target hardware is unproductive, cumbersome and repetitive. Developers have worked out several methods to improve the situation: we buy heavy laptops with GPUs to test more locally, mount remote file systems of the compute nodes and spin up our IDEs on laggy mountpoints or use docker containers locally and on the compute nodes to at least have the same programming environment. In the end none of this feels like what we actually want: Something that runs like a compute node, hooked up to our favorite peripherals, displaying the IDE we use regulary; Something we can stuff into our backpack and use whereever we want and with the code we want to work on, checked out in the exactly the state we need in that very moment, with all dependencies preinstalled. Our goal is to improve developer/user productivity by making a prototype of Gitpod available on vClusters of Alps. Concretely, users should be able to spin up a Gitpod instance on a compute node from a specific commit on github with a few clicks (see https://gitpod.io#https://github.com/GridTools/gt4py for an example launching the hosted version of Gitpod). Additionally, the goal for the team is to learn how to deploy this service, considering integration with - Authentification - Accounting of resources - Routing - Filesystems