Skip to content

A Terraform module for deploying Weights & Biases on GCP.

Notifications You must be signed in to change notification settings

cavila-evoliq/terraform-google-wandb

 
 

Repository files navigation

Weights & Biases Google Module

This is a Terraform module for provisioning a Weights & Biases Cluster on Google Cloud. Weights & Biases Local is our self-hosted distribution of wandb.ai. It offers enterprises a private instance of the Weights & Biases application, with no resource limits and with additional enterprise-grade architectural features like audit logging and single sign-on.

About This Module

Pre-requisites

This module is intended to run in an Google Cloud account with minimal preparation, however it does have the following pre-requisites:

Terrafom version >= 1

Credentials / Permissions

Google Services Used

  • Google SQL Cloud (MySQL)
  • Google Kubernetes Engine
  • Google Storage Bucket
  • Google PubSub
  • Google Managed Certificates
  • Google Cloud DNS

How to Use This Module

  • Ensure account meets module pre-requisites from above.
  • Create a Terraform configuration that pulls in this module and specifies values of the required variables:
provider "google" {
  project = "<desired google project>"
  region = "<desired google region>"
  zone = "<desired google zone>"
}

module "wandb" {
  source    = "<filepath to cloned module directory>"
  namespace = "<prefix for naming google resources>"
}
  • Run terraform init and terraform apply

Examples

We have included documentation and reference examples for additional common installation scenarios for Weights & Biases, as well as examples for supporting resources that lack official modules.

Requirements

Name Version
terraform ~> 1.0
google ~> 4.31
kubernetes ~> 2.9

Providers

No providers.

Modules

Name Source Version
app_gke ./modules/app_gke n/a
app_lb ./modules/app_lb n/a
database ./modules/database n/a
gke_app wandb/wandb/kubernetes 1.6.0
kms ./modules/kms n/a
networking ./modules/networking n/a
project_factory_project_services terraform-google-modules/project-factory/google//modules/project_services ~> 13.0
redis ./modules/redis n/a
service_accounts ./modules/service_accounts n/a
storage ./modules/storage n/a

Resources

No resources.

Inputs

Name Description Type Default Required
allowed_inbound_cidr (Optional) Allow HTTP(S) traffic to W&B. Defaults to all connections. list(string)
[
"*"
]
no
bucket_name Use an existing bucket. string "" no
create_redis Boolean indicating whether to provision an redis instance (true) or not (false). bool false no
database_machine_type Specifies the machine type to be allocated for the database string "db-n1-standard-2" no
database_sort_buffer_size Specifies the sort_buffer_size value to set for the database number 262144 no
database_version Version for MySQL string "MYSQL_8_0_31" no
deletion_protection If the instance should have deletion protection enabled. The database / Bucket can't be deleted when this value is set to true. bool true no
disable_code_saving Boolean indicating if code saving is disabled bool false no
domain_name Domain for accessing the Weights & Biases UI. string null no
force_ssl Enforce SSL through the usage of the Cloud SQL Proxy (cloudsql://) in the DB connection string bool false no
gke_machine_type Specifies the machine type to be allocated for the database string "n1-standard-4" no
labels Labels to apply to resources map(string) {} no
license Your wandb/local license string n/a yes
local_restore Restores W&B to a stable state if needed bool false no
namespace String used for prefix resources. string n/a yes
network Pre-existing network self link string null no
oidc_auth_method OIDC auth method string "implicit" no
oidc_client_id The Client ID of application in your identity provider string "" no
oidc_issuer A url to your Open ID Connect identity provider, i.e. https://cognito-idp.us-east-1.amazonaws.com/us-east-1_uiIFNdacd string "" no
oidc_secret The Client secret of application in your identity provider string "" no
other_wandb_env Extra environment variables for W&B map(string) {} no
ssl Enable SSL certificate bool true no
subdomain Subdomain for accessing the Weights & Biases UI. Default creates record at Route53 Route. string null no
subnetwork Pre-existing subnetwork self link string null no
use_internal_queue Uses an internal redis queue instead of using google pubsub. bool false no
wandb_image Docker repository of to pull the wandb image from. string "wandb/local" no
wandb_version The version of Weights & Biases local to deploy. string "latest" no

Outputs

Name Description
address n/a
bucket_name Name of google bucket.
bucket_queue_name Pubsub queue created for google bucket file upload events.
cluster_ca_certificate Certificate of the kubernetes (GKE) cluster.
cluster_endpoint Endpoint of the kubernetes (GKE) cluster.
cluster_id ID of the kubernetes (GKE) cluster.
cluster_node_pool Default node pool where Weights & Biases should be deployed into.
cluster_self_link Self link of the kubernetes (GKE) cluster.
database_connection_string Full database connection string. You must be in the VPC to access the database.
fqdn The FQDN to the W&B application
service_account Weights & Biases service account used to manage resources.
url The URL to the W&B application

About

A Terraform module for deploying Weights & Biases on GCP.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HCL 96.5%
  • Python 3.5%