This topic describes how to deploy Domino components on Google Kubernetes Engine (GKE). GKE is hosted on Google Cloud Platform (GCP).
-
Use environment variables to set the values of IDs, names, and labels. This simplifies the commands you’ll run while installing Domino components:
export DOMINO_VER=<The Domino version to deploy> export QUAY_USERNAME=<`quay.io` username provided by Domino> export QUAY_PASSWORD=<`quay.io` password provided by Domino> -
To retrieve the credentials for your Kubernetes cluster, check your local kubeconfig with:
export KUBECONFIG=$(pwd)/kubeconfig -
Run the following to create the
domino-platformnamespace:kubectl create namespace domino-platform -
To make your application available through HTTPS, use the certificate for the project’s domain name to create a secret:
kubectl -n domino-platform create secret tls my-cert --key=<path to your private key> --cert=<path to your cert>
fleetcommand-agent installs and configures Domino components.
It uses an installation template to gather the required parameters for the environment and sets them when installing Domino components.
fleetcommand-agent-
If you aren’t already logged into
quay.io, run:docker login -u $QUAY_USERNAME -p $QUAY_PASSWORD quay.io -
Generate a template configuration file named
domino.ymlin your working directory:CautionThis overwrites existing domino.ymlfiles.docker run --rm -it \ -v $(pwd):/install \ quay.io/domino/fleetcommand-agent:{fleetcommand-agent-version} \ init --file /install/domino.yml --version $DOMINO_VER
|
Important
|
If you change the defaults in domino.yml, it can affect the stability of your deployment.
If you must modify the file, contact a Domino representative.
|
You must reference the Terraform output from the infrastructure deployment described in Provision infrastructure and runtime environment to complete the configuration template.
If you don’t have the output saved, run terraform output to retrieve it.
-
Open the
domino.ymlfile and edit the following attributes:-
name: The name of the deployment. This can’t be changed post-deployment. -
hostname: The hostname for the Domino install (for example,domino.example.com). -
pod_cidr: The default network range is10.0.0.0/8, but this must match the full IP range that your cluster uses. -
ingress_controller.gke_cluster_uuid: Thegoogle_cluster_uuidfrom the Terraform output produced during infrastructure setup. -
storage_class.block.type:gce -
storage_class.shared.type:nfs -
storage_class.shared.nfs.server: Thegoogle_filestore_ip_addressfrom the Terraform output. -
storage_class.shared.nfs.mount_path:/share1(This must match thegoogle_filestore_file_shareTerraform output). -
blob_storage.projects.type:shared -
blob_storage.logs.type:shared -
blob_storage.backups.type:gcs -
blob_storage.backups.gcs.bucket: Thegoogle_bucket_namefrom the Terraform output. -
blob_storage.backups.gcs.service_account_name: Thegoogle_platform_service_accountfrom the Terraform output. -
blob_storage.backups.gcs.project_name: Thegoogle_projectfrom the Terraform output. -
helm.cache_path:/app/charts -
private_docker_registry.username: Yourquay.iousername. -
private_docker_registry.password: Yourquay.iopassword. -
internal_docker_registry.enabled:false -
external_docker_registry: Thegoogle_artifact_registryfrom the Terraform output.
-
-
Replace the
services.nginx_ingress.chart_valuessection:chart_values: controller: kind: Deployment hostNetwork: false service: enabled: true type: LoadBalancer annotations: cloud.google.com/backend-config: '{"ports": {"80":"nginx-ingress-controller","443":"nginx-ingress-controller"}}' extraArgs: default-ssl-certificate: domino-platform/my-cert
|
Tip
|
Domino recommends that you keep a backup copy of your final configuration file.
To do this, use the following command: cp domino.yml{,.backup-$( date +%s )}
|
fleetcommand-agentfleetcommand-agent installs and configures Domino components.
It uses the installation template to gather the required parameters for the environment and sets them when installing Domino components.
To install Domino on the infrastructure you prepared, run the following:
curl -o fleetcommand-agent-install.sh https://docs.dominodatalab.com/attachments/fleetcommand-agent-install.sh
bash fleetcommand-agent-install.sh $DOMINO_VERSee fleetcommand-agent-install.sh Downloads for more information.
|
Tip
|
If you encounter errors, investigate and resolve the root cause before you run fleetcommand-agent-sh again.
Failures are often related to resource quotas and limits.
Contact a Domino representative for assistance.
|
Run the following to get the external IP to access your instance’s Domino management plane:
kubectl -n domino-platform get svc nginx-ingress-controllerYou can use this to update your DNS records accordingly.
-
Go to
https://<YOUR-DOMAIN>/auth/ -
Login with the username
keycloakand the password from thekeycloak-httpsecret in thedomino-platformnamespace. -
Use the following command to get the password:
echo -e "\nyour password is: $(kubectl get secret keycloak-http -n domino-platform --template={{.data.password}} | base64 -d)\n" -
Go to Users in the navigation pane and click Add User.
-
Enter the username, first name, last name, and email address, and then click Save.
-
Go to the Credentials tab and add a password.
-
Optional: Disable Temporary.
-
Click Set Password.
-
Go to Role Mappings.
-
From Client Roles, select domino-play.
-
Select the User role and add it to your user.
-
Go to the main page for your Domino deployment (for example,
https://\<YOUR-DOMAIN\>) and sign in with your new Domino user. -
Go to Environments > Domino Standard Environment Py3.8 R4.1 > Revisions and make sure the revision is active. If not, use Build Logs to try to solve the problem.
-
Go to Projects > Quick-start > Workspaces and launch a new workspace using Jupyter (this can take a while).
-
When the new workspace is created open
main.ipynband confirm that you can execute the script without errors.
Use Keycloak to enable user registration, so users can access your fresh Domino install. Keycloak is a user authentication service that runs on a pod in your cluster.
