Skip to content

Improve DSS instance terraform infrastructure deployment user journey #1296

@BenjaminPelletier

Description

@BenjaminPelletier

I went through the exercise of trying to follow this user journey:

An engineer responsible for UTM services of a USS wants to deploy an InterUSS DSS instance as a component of their USS.

This Issue captures my notes and challenges while doing this that I think we can improve on when using terraform to deploy GKE infrastructure.

  1. Visit repo home
  2. Find and click "Deploying a DSS instance"
    1. TODO(1 - [docs] Update terraform infrastructure deployment documentation #1298): Current link target is a redirect to new page; link directly instead
  3. Read that deployment consists of three phases and Infrastructure is the first
  4. Try to find instructions for Infrastructure
    1. TODO(2 - [docs] Update terraform infrastructure deployment documentation #1298): "Infrastructure" link currently targets blank page; remove link or add links to subsection options in that page
    2. TODO(3): Pooling documentation is CRDB-specific; update to allow for Yugabyte
  5. Click on "Google (GKE)" since I'll be deploying there
  6. Fulfill prerequisites
    1. Download terraform 1.13.5 binary
      1. TODO(4 - [docs] Update terraform infrastructure deployment documentation #1298): Add command to verify prerequisite is satisfied
    2. Navigate to "Prerequisites" in 2
      1. TODO(5 - [docs] Update terraform infrastructure deployment documentation #1298): Link to specific Prerequisites section in that page rather than the top
      2. TODO(6 - Enable multi-level lists in generated documentation #1297): Indent substeps rather than having a single, large, flat list
      3. TODO(7 - [docs] Update terraform infrastructure deployment documentation #1298): Identify which prerequisites are actually necessary (e.g., cockroach is not necessary for a Yugabyte deployment)
      4. Verify gcloud, kubectl, tk availability
    3. Click on "Google Cloud Engine" in 3a
      1. TODO(8 - Enable multi-level lists in generated documentation #1297): Clean up structure of steps and "Google Cloud Engine" subsection
      2. TODO(9 - [docs] Update terraform infrastructure deployment documentation #1298): Define what $GOOGLE_PROJECT_NAME/"the DSS project" is (we haven't instructed the user to create or have a Google Cloud project)
      3. TODO(10 - [docs] Update terraform infrastructure deployment documentation #1298): Put gcloud config list project in code style
      4. TODO(11 - [docs] Update terraform infrastructure deployment documentation #1298): Write out actual commands to enable APIs (gcloud services enable xxx)
      5. TODO(12): Add check for whether user already has credentials to call Google Cloud Platform APIs
    4. Proceed to "Deployment of the Kubernetes cluster"
      1. TODO(13): fix /deploy to be clearer that it's relative to the repo root
      2. TODO(14): clarify that terraform-google-dss-dev is an example rather than a prescription
      3. TODO(15): define where to find main.tf, output.tf, and variables.tf
      4. TODO(16): define where to find terraform.dev.example.tfvars
      5. Populate variables
        1. TODO(17 - Enable multi-level lists in generated documentation #1297): Fix indent (current list is a single flat indent level; main.tf, output.tf, etc should be indented under step 4)
        2. TODO(18): Figure out how to make https://github.com/interuss/dss/blob/master/deploy/infrastructure/modules/terraform-google-dss/TFVARS.gen.md more readable (Type column is too wide and Description requires scrolling to see)
        3. TODO(19): See if we can ensure the rows in TFVARS.gen.md appear in the same order as the variables in terraform.dev.example.tfvars (or alphabetical)
        4. TODO(20): Update google_kubernetes_storage_class documentation to include Yugabyte
        5. TODO(21): Update image_pull_secret to refer to image rather than VAR_DOCKER_IMAGE_NAME
        6. TODO(22): Define what VAR_NAMESPACE is in image_pull_secret documentation
        7. TODO(23): Clarify (if accurate) in image_pull_secret that VAR_DOCKER_IMAGE_PULL_SECRET is the value that should be used for image_pull_secret
        8. TODO(24): Clarify what should be done with CockroachDB/Yugabyte variables when using the other db technology (delete? make blank? leave as-is?)
      6. Execute terraform commands
        1. TODO(terraform indicates Bad Request upon terraform apply #1295)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions