Comment on page
Deployment guide
kubectl
- Command line tool that interacts with the Kubernetes API server and is useful for managing Kubernetes clusters. Before proceeding, follow the installation documentation that corresponds to your platform. This guide will be using version1.24
.helm
- Package manager used for installing and managing Kubernetes applications. In this guide, you will be using a Helm chart to install Tabnine on our Kubernetes cluster. For more information, see Installing Helm. This guide will be using version3.12.0
.- An available Kubernetes cluster. If you need to set up a cluster, we have provided the below installation guide for a self-hosted server. It provides step-by-step instructions intended to get you up and running as fast as possible. Guide applies for a self hosted solution on your VPC as well as setting up a physical appliance inside your organizational network.
This guide assumes you have internet access to Tabnine docker and helm charts registries for installation and updates (registry.tabnine.com / 34.72.243.185). If that is not the case, please follow this guide instead.
Setup namespaces
kubectl create ns tabnine
kubectl label namespaces tabnine name=tabnine --overwrite=true
If receiving a "Connection declined" Error when running 'run kubectl create ns tabnine' first do the following:
- Update gcloud components install gke-gcloud-auth-plugin
- gcloud container clusters get-credentials -gke --region --project
Instead of setting up a pull secret on isolated environments, you will need to make the docker images available in your environment; follow this guide.
Update the IMAGES_USER and IMAGES_PASSWORD with your credentials
kubectl create secret docker-registry regcred -n tabnine --docker-server=registry.tabnine.com --docker-username="IMAGES_USER" --docker-password="IMAGES_PASSWORD"
Import the SSL Certificate
For this step we assume the certificate files are
server.key
and server.crt
and that they are available in the same path as the console. We are also assume that Tabnine will be installed at the tabnine
namespacekubectl create secret --namespace tabnine tls tabnine-enterprise-app-cert --cert=./server.crt --key=./server.key
Install Tabnine
- 1.Before you install, configure the
values.yaml
file contents used by the Helm Chart. The majority of the values for this chart have defaults recommended by Tabnine but you will want to review and modify the configuration to meet your specific requirements. This guide covers configuration values which must be updated to deploy Tabnine. You should review the entire configuration to understand all the possible options. Use the followingvalues.yaml
as a starting point to your configuration:
global:
image:
# imagePullSecrets -- The name of the secret contains the credentials for Tabnine registry
imagePullSecrets:
- name: regcred
ingress:
enabled: true
# host -- tabnine cluster domain, e.g. `tabnine.company.com`
host: null
tls:
# hosts -- tabnine cluster domain, e.g. `tabnine.company.com`
- hosts:
[]
# - tabnine.company.com
# secretName -- The secret name holds the SSL certificate
secretName: tabnine-enterprise-app-cert
tabnine:
# organizationId/Name/Secret -- Provided by Tabnine with license file
organizationId: null
organizationName: null
organizationSecret: null
organizationDomain: null
# License key - Provided by Tabnine with license file. Just copy and paste here before deployment.
licenseKey: null
db:
# url -- Connection string to postgresDB, in the form: postgres://username:password@host
url: null
# caBase64/certBase64/certPrivateKeyBase64 -- Use when connecting to the db using SSL (recommended)
caBase64: null
certBase64: null
certPrivateKeyBase64: null
redis:
# url -- Connection string to redis, in the form: rediss://:auth-string@host:port
url: null
# caBase64 -- Use when connecting to redis using SSL (recommended)
caBase64: null
auth:
# defaultEmail -- The first admin user email that will be created
defaultEmail: null
# emailFromField -- from email address to be used when sending emails (e.g. [email protected])
# If you want to have a name in the from field, it should be in the form of `Sender Name <[email protected]>``
emailFromField: null
# Smtp configuration used to send emails
smtp:
host: null
port: null
auth:
user: null
pass: null
- 2.Now that
values.yaml
is updated, it is time to install the chart on the cluster
helm upgrade --install -n tabnine --create-namespace tabnine \
oci://registry.tabnine.com/self-hosted/tabnine-cloud --values values.yaml
When new
licenseKey
is provided, just update the value and run the same helm upgrade
command above again.Last modified 2mo ago