This module is used to create Tabnine Cluster.
-
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.
module "gke_cluster_tabnine" {
source = "terraform-google-gke-tabnine//modules/cluster/"
project_id = "<PROJECT-ID>"
region = "<REGION>"
zones = "<ZONES>"
prefix = "<PREFIX>"
}
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({ |
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 |
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 |