Skip to content

Commit 2dc4e8b

Browse files
authored
Merge pull request #3 from lftraining/feature/howto-create-incremental-labs
fix: formatting of lists
2 parents 792cfb2 + c1813d5 commit 2dc4e8b

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

docs/HOWTOs/create-incremental-labs.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# How to Create Incremental Labs
1+
# HOW TO Create Incremental Labs
22

33
This guide shows you how to create incremental labs that provide a seamless learning experience across multiple lab environments in Kubernetes training courses.
44

@@ -36,6 +36,7 @@ compute-environments/
3636
```
3737

3838
Two key scripts control VM configuration:
39+
3940
- `build.sh`: Runs during VM image creation to establish the base state
4041
- `setup.sh`: Runs when the VM starts up for runtime configuration
4142

@@ -44,11 +45,13 @@ Two key scripts control VM configuration:
4445
To create an incremental lab that follows a previous lab:
4546

4647
1. Identify the end state of the previous lab by reviewing:
48+
4749
- Lab instructions from the previous section
4850
- Expected actions performed by the learner
4951
- Final state of all systems involved
5052

5153
2. Decide which configurations belong in `build.sh` vs. `setup.sh`:
54+
5255
- Use `build.sh` for persistent changes that can be baked into the VM
5356
- Use `setup.sh` for configuration that must occur at runtime
5457

@@ -119,6 +122,7 @@ Let's look at a concrete example of creating incremental labs across a two-part
119122
Learners set up a Kubernetes cluster from scratch in the first lab.
120123

121124
**VM Configuration for Lab 3.1:**
125+
122126
- Minimal setup required as learners build the cluster themselves
123127
- Simple `build.sh` scripts to prepare the environment
124128

@@ -136,6 +140,7 @@ cp assets/kubeadm-config.yaml /root/
136140
This lab begins where 3.1 ended - with a working Kubernetes cluster.
137141

138142
**VM Configuration for Lab 3.2:**
143+
139144
- `build.sh` installs necessary components and configurations
140145
- `setup.sh` handles runtime initialization of the cluster
141146

@@ -166,6 +171,7 @@ kubeadm init --config=/root/kubeadm-config.yaml --upload-certs --node-name=contr
166171
Worker node configuration follows similar patterns, with setup scripts handling runtime operations.
167172

168173
You can find complete examples of incremental labs in the LFS258 course repositories:
174+
169175
- [Lab 3.1 Environment](https://github.com/lftraining/LFS258-Labs/tree/feature/implement-LFS2580003/compute-environments/available/LFS2580003)
170176
- [Lab 3.2 Environment](https://github.com/lftraining/LFS258-Labs/tree/feature/implement-LFS2580003.2/compute-environments/available/LFS2580003.2)
171177

@@ -174,18 +180,22 @@ These examples show how the second lab (3.2) builds upon the state established i
174180
## Best Practices
175181

176182
1. **Distinguish between build and runtime operations**
183+
177184
- `build.sh`: Persistent changes, package installation, file setup
178185
- `setup.sh`: Runtime configuration, networking, service initialization
179186

180187
2. **Replicate exactly what the learner would have done**
188+
181189
- Follow the previous lab's instructions to understand what state to recreate
182190
- Ensure all files, directories, and configurations match the expected state
183191

184192
3. **Consider dependencies between systems**
193+
185194
- Ensure proper sequencing of operations across multiple VMs
186195
- Configure networking to allow systems to communicate
187196

188197
4. **Test thoroughly**
198+
189199
- Manually test the transition between labs
190200
- Verify that the environment picks up seamlessly where the previous lab left off
191201

0 commit comments

Comments
 (0)