Skip to content

Latest commit

 

History

History

Tabnine Cluster Module

This module is used to create Tabnine Cluster.

Prerequistes

  • This module uses Nvidia A100 GPU make sure to select a zone/region where A100 is available.

  • Terraform 1.2.3+

  • Install helm

  • Configure gcloud to use the right project:

    gcloud config set project <PROJECT ID>
  • Enable the following google apis for the <PROJECT ID>:

    gcloud services enable container.googleapis.com
    gcloud services enable servicedirectory.googleapis.com
    gcloud services enable servicenetworking.googleapis.com
    gcloud services enable dns.googleapis.com
    gcloud services enable cloudkms.googleapis.com
  • Log in with a user that has Editor & Project IAM Admin roles.

Use

module "gke_cluster_tabnine" {
  source                                    = "terraform-google-gke-tabnine//modules/cluster/"
  project_id                                = "<PROJECT-ID>"
  region                                    = "<REGION>"
  zones                                     = "<ZONES>"
  prefix                                    = "<PREFIX>"
}

Inputs

Name Description Type Default Required
create_tabnine_storage_bucket_im_bindings Create Tabnine storage bucket im bindings. Should be set to true only when run by Tabnine team bool false no
db_master_zone Database master zone. If not set, will default to first zone string null no
db_region GCP DB region string "" no
deny_all_egress Deny all egress traffic bool true no
exclude_kubernetes_manifest Exclude kubernetes manifest installations. This should be off during initial installation bool false no
gke_master_authorized_networks n/a
list(object({
cidr_block = string,
display_name = string
}))
n/a yes
min_gpu_machines Minimum number of GPU instances number 1 no
nat_ips nat_ips (list(string), optional): Self-links of NAT IPs. list(string) [] no
pre_shared_cert_name Use this if you already uploaded a pre-shared cert string null no
prefix Prefix all resources names string "tabnine-self-hosted" no
project_id GCP project ID string n/a yes
region GCP region string n/a yes
use_nvidia_mig Should use MIG for the GPU (see https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning) bool false no
use_spot_instances Should use spot instances bool false no
zones GCP zones list(string) n/a yes

Outputs

Name Description
ca_certificate Cluster ca certificate (base64 encoded)
db_ca n/a
db_cert n/a
db_ip n/a
db_private_key n/a
db_url n/a
endpoint Cluster endpoint
ingress_ip n/a
network_name Name of the created network
redis_ca n/a
redis_ip n/a
redis_url n/a