66 lines
2.5 KiB
Markdown
66 lines
2.5 KiB
Markdown
# coder-template
|
|
|
|
## Terminology
|
|
- **[code-server](https://github.com/coder/code-server)** : Open Source Visual Studio Code + web browser remote access
|
|
- **[coder](https://github.com/coder/coder)** : Development Environments (i.e. code-server, JupyterLab, JetBrains, and etc) management software
|
|
- **API-server** : LMS can call the endpoints of this API-server to manage **coder**.
|
|
|
|
## What is this?
|
|
You can use this template when you create a new lab and deploy it to **coder**. Lab users will get clients that include web IDE and software/tools (e.g. **[akamai CLI](https://github.com/akamai/cli)**).
|
|
- **build** : sample **API-server**
|
|
- **docker-compose.yaml** : installs **coder** and **API-server**
|
|
|
|
## Sample Workflow
|
|
|
|
- [ ] **Alice** : Content Creator
|
|
- [ ] **Bob** : Lab Administrator
|
|
|
|
**1. Servers vs Clients**
|
|
```
|
|
Alice ->> Bob: I'd like to create a new lab for DevOps.
|
|
Bob ->> Alice: Do you want servers or clients?
|
|
Alice ->> Bob: I'm not sure. Learners will run python, terraform, and httpie.
|
|
Bob ->> Alice: I suggest clients. Each learner can run codes or tools in his/her own isolated environment.
|
|
```
|
|
> Bob can create diverse types of servers (**Linux only!**) such as, web servers, application servers, and database servers.
|
|
|
|
Sample server: https://origin-akashop.akamai-lab.com/
|
|
>
|
|
> Bob can create one type of clients based on **Visual Studio Code**. Clients can be assigned to learners one to one or one to many.
|
|
|
|
Sample client: https://training.akamai.com/ewp
|
|
|
|
**2. Software**
|
|
```
|
|
Bob ->> Alice: Do you need any software or tools other than python, terraform, and httpie?
|
|
```
|
|
> Bob can install other softwares or tools such as **akamai cli**, based on the lab scenario.
|
|
|
|
|
|
**3. Infrastructure**
|
|
|
|
> Bob runs *docker-compose.yaml* file to create a default **coder** and **API-server**.
|
|
```
|
|
git clone https://gitea-ptl.akamai-lab.com/akamai/coder-template.git
|
|
cd coder-template
|
|
docker compose up -d
|
|
```
|
|
|
|
**4. code-server Template**
|
|
|
|
> Bob builds a code-server template by customizing **main.tf**.
|
|
>
|
|
> **/samples/main.tf** file can be a good starting point if you don't want to use persistant volume.
|
|
|
|
**5. Staging**
|
|
|
|
> Bob deploys a code-server to kubernetes staging environment and Alice validates it iteratively until they finalize code-server template.
|
|
>
|
|
> Bob should customize API-server codes, if Alice wants to integrate **coder** with **LMS** (for example, click a button on LMS to create a new code-server and get its URL).
|
|
|
|
**6. Production**
|
|
|
|
> Bob deploys a code-server to kubernetes production environment.
|
|
>
|
|
> Alice validates the client by end-to-end test.
|