Deploy Domino on Tanzu

This topic describes how to deploy Domino components on VMware Tanzu Kubernetes Grid.

The install automation tools are delivered as a Docker image, and need to run on an installation workstation that meets the following requirements:

  • Docker installed

  • Kubectl service account access to the cluster

  • Access to quay.io to download the installer image*

  • Access to the NVIDIA image repository at nvcr.io*

*Solutions for air-gapped installation are available; see your solution provider for details.

Accessing the installer

Additionally, you will need credentials for an installation service account that can access the Domino upstream image repositories in quay.io. Throughout these instructions, these credentials will be referred to as $QUAY_USERNAME and $QUAY_PASSWORD. Contact your Domino account team if you need new credentials.

Log in to quay.io with the credentials described above

$ docker login quay.io

Pull the fleetcommand-agent image

$ docker pull quay.io/domino/fleetcommand-agent:v59
Creating the Domino configuration file

Here is a template configuration file named domino.yml:

schema: '1.2'
name: _CHANGE_ME_
version: 5.4.0
hostname: _CHANGE_ME_
global_node_selectors: {}
global_pod_annotations: {}
global_pod_labels: {}
global_pod_environment: []
git:
  storage_class: tanzu-vm-storage-policy
email_notifications:
  enabled: true
  server: _CHANGE_ME_
  port: 465
  enable_ssl: true
  from_address: CHANGE_ME@customer.org
  authentication:
    username: ''
    password: ''
helm:
  image_registries:
  - server: quay.io
telemetry:
  intercom:
    enabled: true
  mixpanel:
    enabled: false
    token: ''
gpu:
  enabled: false
fleetcommand:
  api_token: '_CHANGE_ME_'
  url: '_CHANGE_ME_'
teleport_kube_agent:
  proxyAddr: teleport.domino.tech:443
  authToken: eeceeV4sohh8eew0Oa1aexoTahm3Eiha
storage_classes:
  block:
    create: false
    name: tanzu-vm-storage-policy
    access_modes:
    - ReadWriteOnce
    base_path: ''
    type: vsphere-volume
  shared:
    create: true
    name: dominoshared
    access_modes:
    - ReadWriteMany
    volume_capacity: 5Ti
    type: nfs
    nfs:
      server: '_CHANGE_ME_'
      mount_path: '_CHANGE_ME_'
      mount_options: [ "nfsvers=4.1", ]
blob_storage:
  logs:
    shared: true
  backups:
    shared: true
  projects:
    shared: true
monitoring:
  prometheus_metrics: true
services:
  nginx_ingress:
    chart_values:
      controller:
        replicaCount: 2
        kind: Deployment
        hostNetwork: false
        config:
          use-proxy-protocol: 'false'
        service:
          targetPorts:
            http: http
          enabled: true
          type: LoadBalancer

Edit the configuration file with all necessary details about the target cluster, storage systems, and hosting domain. Read the configuration reference for more information about available keys, and consult the configuration examples for guidance on getting started. You will be provided a quay.io login with access to pull the Domino container images.

Note that you should set the value of name to something that identifies the purpose of your installation and contains the name of your organization.

Running the installer

Execute a dry run with the following command:

$ docker run --rm -v $(pwd):/install -v $(pwd)/logs:/app/logs -v (pwd)/cache:/app/.appr_chart_cache quay.io/domino/fleetcommand-agent:v59 run --dry --file /install/domino.yml

Run the Domino installer with the following command:

$ docker run --rm -v $(pwd):/install quay.io/domino/fleetcommand-agent:v59 run --file /install/domino.yml

When the installation completes successfully, you should see a message that says:

2019-11-26 21:20:20,214 - INFO - fleetcommand_agent.Application - Deployment complete.
Domino is accessible at $YOUR_FQDN

However, the application will only be accessible via HTTPS at that FQDN if you have configured DNS for the name to point to an ingress load balancer with the appropriate SSL certificate that forwards traffic to your platform nodes.