Provision Terraform infrastructure and runtime Environment

Important
A Domino install can’t be hosted on a subdomain of another Domino install. For example, if you have Domino deployed at data-science.example.com, you can’t deploy another instance of Domino at acme.data-science.example.com.

This topic describes how to provision infrastructure with Amazon Web Services Cloud Development Kit (AWS CDK). After the infrastructure is in place, you can deploy Domino on Amazon Elastic Kubernetes Service (EKS).

  1. Install aws-cdk:

    npm install -g aws-cdk@1.187.0
  2. Clone the Domino CDK EKS stack:

    git clone --branch v0.3.3 https://github.com/dominodatalab/cdk-cf-eks.git
    cd cdk-cf-eks/cdk
  3. Install packages:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    Note
    You can also use pipenv or install directly to your local system.
  4. Use environment variables to set the values of IDs, names, and labels.

    export DEPLOY_NAME=<Name of deployment>
    export AWS_REGION=<The region to deploy the resources>
    export AWS_ACCOUNT_ID=<Your AWS account ID>
    Important
    The AWS cluster name is case-sensitive, and can only contain alphanumeric characters and hyphens.
  5. If you haven’t configured your workstation with your credentials, run aws configure.

  6. Enter the required parameters and run the following command to generate the configuration for the CDK:

    ./util.py generate_config_template
        --name $DEPLOY_NAME
        --aws-region $AWS_REGION
        --aws-account-id $AWS_ACCOUNT_ID
        --acm-cert-arn <The Amazon Resource Name (ARN) of the cert for your domain>
        --hostname <Your domain name>
        --bastion --private-api --keypair-name <Your keypair name>
        --registry-username <`quay.io` username provided by Domino>
        --registry-password <`quay.io` password provided by Domino> > ./config.yaml
  7. Run cdk deploy.

Note
Infrastructure deployment usually takes about 45 minutes.