Skip to content

Latest commit

 

History

History
49 lines (31 loc) · 1.75 KB

README.md

File metadata and controls

49 lines (31 loc) · 1.75 KB

Terraform BinderHub Cluster

(for history, check https://github.com/neurolibre/terraform-binderhub_old)

Requirements

Cloud Providers

OpenStack

  1. Download your project openrc file from the OpenStack Access and security section.
  2. Source your project openrc file : source _project_-openrsh.sh.

DNS Providers

CloudFlare

  1. Export your CloudFlare email associated with the account : export CLOUDFLARE_EMAIL="[email protected]"
  2. Export your Cloudflare API token : export CLOUDFLARE_TOKEN="<YOUR API TOKEN>"

JetStream

JetStream domain name is automatically associated with your cloud service.

Note: this is only available on JetStream cloud services and incompatible with ComputeCanada.

Terraform deployment

  1. In this repository, create a new folder and go into : mkdir my_cluster; cd my_cluster.
  2. Copy the corresponding cloud provider .tf file from the examples/providers directory : cp ../examples/providers/my_provider.tf .
  3. Copy the corresponding DNS provider .tf file from the examples/dns directory : cp ../examples/dns/my_dns.tf .
  4. Adapt the cluster variables in both .tf files (i.e.: # nodes, domain name, ssh key, etc).
  5. Apply your credentials for the cloud and the DNS provider.
  6. Set your username to be accessible in Terraform: export TF_VAR_username=$OS_USERNAME
  7. Initiate the Terraform state : terraform init.
  8. Verify the Terraform plan : terraform plan.
  9. Apply the Terraform plan : terraform apply.

To tear down the cluster, from the my_cluster folder, call: terraform destroy.

TODO

  • Support others cloud providers (AWS, GCP, Azure, ...)
  • Support others DNS providers
  • User authentification
  • Storage management