I've exported his PDF's and converted them to ODT files for editing, they are currently available from Github here I've sent @Ylian an email requesting he pull these files over so the community can assist with updating this documentation.
So there's a few ways to do what you want. But for Terraform specifically, the best thing to do is create your repeatable and public code and put it in a module. This means you'd have two repositories. One that is the skeleton for your infrastructure, and one that holds all of the values you need. Lets's say you have a module stored on github at github.com/test/module. When you write your main.tf for your private repo you would call it like this:
Then when you do terraform init it will pull in your module and map the variables for you.
Now what I would personally recommend is using environment variables for your credentials and anything else you want to expose. So for AWS, Terraform accepts AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. I'd recommend putting this in a dot file in your home directory (or somewhere) like here ~/.terraform:
Then when you want to run Terraform, all you have to do before you run it is source ~/.terraform. This will last for as long as you have that shell open. If you close the terminal and open it again, you just need to re-run that command. You can add it to your ~/.bash_profile or whatever, but you may not want it exported all of the time.
Terraform also lets you export environment variables for your regular variables. I don't usually do this, but you can do something like export TF_VAR_region=us-east-1. That would map to var.region instead of needing to type it in.
My advice is to leverage modules as much as possible and keep your private data in a separate repo and just pass that data in as variables to your module(s).
It's very interesting for virtualized workloads because SR-IOV means you can assign the NVMe disk to different VMs directly and bypass the hypervisor. This is the same for NICs at 10/25/40/100 gigabit. There will be a significant performance drop if you don't use SR-IOV.
If you already have GitHub or BitBucket, etc al, Why set up GitLab?
Unlimited users, unlimited size, total flexibility, all data kept private. GitHub is never free, BitBucket is almost never free or is so without being private (we tried it with two users and it turned out to not be an option.)