- Keybase - Keybase is used as the git hosting platform for
terraform
state and other sensitive data. - Packet - Packet is the hosting provider that is being used. DISCO can also be used with any of the cloud providers listed here. You will need both a
PACKET_API_TOKEN
and aPACKET_PROJECT_ID
. - Cloudflare - Cloudflare is the DNS provider used for the demo deployment. DISCO can also be used with any of the cloud providers listed here. You will need a
CLOUDFLARE_API_TOKEN
withZone.Zone
andZone.DNS
permissions. - Terraform -
terraform
is used to provision resources on Packet. k3sup
- A great utility forkubectl config
management! Also makes installing and spinning up a kubernets cluster easy!- Helm - The package manager for Kubernetes. Helm is the best way to find, share, and use software built for Kubernetes.c
$ git clone https://github.com/ovrclk/disco
DISCO is built using Keybase Teams. When creating systems like this, there is senstitive local data that is needed to create the clusters and the applications on top of them. Keybase teams offers an easy programatic way to securely version, store and share this data.
For example, lets say we're building a dentacoin-dev
stack at team akashnet
. We would first need to create the keybase git repository for it:
$ keybase git create dentacoin-dev --team akashnet
Repo created! You can clone it with:
git clone keybase://team/akashnet/devnet
Or add it as a remote to an existing repo with:
git remote add origin keybase://team/akashnet/devnet
Also, make sure to set these variables in the env.mk
file at the root of the repository. For the above example it should look like:
cat > env.mk <<EOF
TEAM=akashnet
STACK=dentacoin-dev
EOF
The tfstate
and other sensitive information is stored in a database that holds data specific to this STACK
. To setup the database then run the following:
make db-setup
The db setup task will create the below folder stucture:
data
└── db
├── config
│ ├── nodes
│ └── providers
├── index
└── keys
Define the machine and stack dns zones:
echo mydomain.net > data/db/index/STACK_ZONE
echo mydomain1.net > data/db/index/MACHINE_ZONE
NOTE: Both of the above domains can be the same one.
Next its time to create some infrastructure using layer0
!