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.
This module is intended to run in an Google Cloud account with minimal preparation, however it does have the following pre-requisites:
Google Services Used
- Google SQL Cloud (MySQL)
- Google Kubernetes Engine
- Google Storage Bucket
- Google PubSub
- Google Managed Certificates
- Google Cloud DNS
- 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
andterraform apply
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.
Name | Version |
---|---|
terraform | ~> 1.0 |
~> 4.31 | |
kubernetes | ~> 2.9 |
No providers.
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 |
No resources.
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 |
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 |