1. Tested up to v1.25 personally. No reason it couldn't go higher, probably should do that and document it.
2. Ship for v4 is pushed, yes. That's a topic of our upcoming biweekly cadence next Tuesday. Anticipated support version should be v1.28, I see no reason not to try for it.
3. Please do. I've tried using a few of those and they haven't been to my liking, but that doesn't mean they won't work well for others.
4. This sounds very good.
5. Also load balancing. We haven't performed formal load testing on the HF shell but presumably it is a good idea to spread whatever load there is.
6. It should be deprecated and removed, it is unused.
7. It is meant for situations where CGNAT can be in play and translating 1:1 public IPs to private IPs. It is likely of very limited use and I suspect we can deprecate and remove it.
8. Two sides of the same coin. The idea there is to provide config options at a "global" level (the VMTemplate), but then get more granular as you get down to the environment level. Things like ssh username or other characteristics of a machine image that may remain the same between providers.
9. Meant for machines that host services that can be consumed by the user. For example a machine may run a copy of VS Code and serve it on port 80 of the VM. By defining a service for the vm template, that vs code instance can be displayed in another tab next to the VM shell.
10. Keepalive duration is a marker for how long Gargantua should wait to reap the VM after a user's browser has stopped pinging keepalive messages. This is meant for a grace period of users who have computer issues, and after that time the VMs will be torn down to save on resources. Pause duration is a period of time during which users can explicitly tell Gargantua that they will be away from their session. It "pauses" the reaper for up to the period of time specified by the setting. Useful for if you have a morning session, pause, eat lunch, come back and resume. Otherwise just closing your laptop may result in the VMs being reclaimed.
11. VMs attached to a course remain the same for the lifetime of the course. Meaning if you have three scenarios in a course, and you assign VMs to the course, the same VMs will be used for all three scenarios.
12. Envisioned future use cases where searching through a library of scenarios can be aided by these tags, or a public-facing library can display based on the tag.
13. Flexibility. A course is a curated selection of scenarios, but perhaps a scheduled event may want to start with a "warmup" scenario but not include it in the course. Or a short-notice scenario for a specific customer while providing a standard course offering, for example through professional services or go-live assistance. Those are examples but the core of the response is "flexibility"
14. The limit represents the allowable number of simultaneously-scheduled VMs of that template in the environment. This is a simplistic approach to resource constraint management without writing a lot of code to detect resource constraints (which is likely faulty when done automatically anyhow). The theory here is the administrator should know how many of what type of VM they want to run at any one time in a provider. That amount is quantified in the capacity section of the environment spec.