Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor GCP terraform code + add MOEM-IGE hub #429

Merged
merged 27 commits into from
Jun 24, 2021

Commits on Jun 16, 2021

  1. Provision per-cluster support components

    - Set up cert-manager explicitly, since it can not be set up as
      a dependent chart of our 'support' chart.
    - 'support' chart deploys prometheus, grafana and nginx-ingress
      in a standard configuration.
    - Allow per-cluster overrides with config under support/clusters.
    - Add a script that will provision the support components.
    
    Ref 2i2c-org#388
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    1eb3b86 View commit details
    Browse the repository at this point in the history
  2. Deploy support components from deployer script

    - Automates auth to cluster for automated deployment
    - Puts config overrides in same place as cluster config, to
      avoid duplication
    - Sets up HTTPS for the 2i2c pilot hubs grafana
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    2361d51 View commit details
    Browse the repository at this point in the history
  3. Add hub for MOEM-IGE group

    - traefik tag bump was required to get LE working. It's
      already bumped in newer z2jh versions
    - NFS server was again set up manually, and needed the `insecure`
      flag - even though other hubs are setup the same way and didn't
      need this. NFS situation needs to be sorted.
    
    Ref 2i2c-org#207
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    11a393e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    119bdcf View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ad19ba5 View commit details
    Browse the repository at this point in the history
  6. Refactor GCP terraform code

    - Setup the cluster with the [terraform google provider][1], instead
      of the higher level [gke module][2]. The code gets simpler, and
      makes more terraform features (like for_each) accessible more easily.
    - Allow multiple notebook and dask nodepools to be set up. Most
      research hubs want 2-3 options of notebook sizes to optimize for
      spend. I attempted to use [gke node autoprovisioning][3] instead of
      requiring manual nodepool provisioning, but it consistently
      provisioned nodes bigger than required. We should re-evaluate it
      later.
    - Expose the GCP SA used by the k8s nodes to the user pods. A highly
      restricted SA is used for this, to prevent damage as much as possible.
      Users can then make requests to GCS buckets in other
      projects on behalf of this project.
    - Dask Nodepools will default to matching sizes of the notebook
      nodepools. Can be overriden if necessary.
    - Split terraform code into multiple files for easier maintenance
    - Move tfvars files into a subdirectory and split terraform code
      into multiple files for easier maintenance
    - Remove unused terraform variables
    - Add some inline terraform docs
    - Setup MOEM-IGE cluster + hub with new terraform code
    
    [1]: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/container_cluster
    [2]: https://registry.terraform.io/modules/terraform-google-modules/kubernetes-engine/google/latest
    [3]: https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    ecb25c3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a34361c View commit details
    Browse the repository at this point in the history
  8. Add a data & scratch GCS bucket

    - Data bucket for storing per-hub data products
    - Scratch bucket for *per-user* data stuff
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    2679ae8 View commit details
    Browse the repository at this point in the history
  9. Fix dask worker config defaulting to notebook node config

    - Testing against {} doesn't seem to work. Checking length is
      a bit more obtuse, but works consistently.
    - Fix what goes in the True / False arms of the ternary operator -
      was swapped out earlier.
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    ad49f4e View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    01699d3 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    7e6c5d1 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    02c4d6f View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    6088bf9 View commit details
    Browse the repository at this point in the history
  14. Autogenreate Terraform variable documentation

    Calls terraform-docs dynamically from sphinx
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    e90bca8 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    bc4469c View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    4a43fd7 View commit details
    Browse the repository at this point in the history
  17. Create GKE-specific cluster design docs

    - Remove terraform-specific dir, not enough docs there.
      Autogenerated reference docs will be moved to a different
      PR as I can't seem to get conda to work
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    16b66ff View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    9ac2c05 View commit details
    Browse the repository at this point in the history
  19. Don't try to auto-built tf reference docs

    Can't seem to get conda to work on RTD for now
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    c77ef3e View commit details
    Browse the repository at this point in the history
  20. Fix project SA description

    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    ebdb697 View commit details
    Browse the repository at this point in the history
  21. Fix requirements.txt syntax

    Leftover from environment.yml conversion
    yuvipanda committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    70b39e8 View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2021

  1. Configuration menu
    Copy the full SHA
    9248021 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2021

  1. Fix typo

    Co-authored-by: Sarah Gibson <44771837+sgibson91@users.noreply.github.com>
    yuvipanda and sgibson91 authored Jun 23, 2021
    Configuration menu
    Copy the full SHA
    eaa8b71 View commit details
    Browse the repository at this point in the history
  2. Fix typo

    Co-authored-by: Sarah Gibson <44771837+sgibson91@users.noreply.github.com>
    yuvipanda and sgibson91 authored Jun 23, 2021
    Configuration menu
    Copy the full SHA
    c000c24 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2021

  1. Revert "Don't try to auto-built tf reference docs"

    This wasn't working earlier because of a typo in
    .readthedocs.yml that I didn't spot
    
    This reverts commit c77ef3e.
    yuvipanda committed Jun 24, 2021
    Configuration menu
    Copy the full SHA
    f04bc51 View commit details
    Browse the repository at this point in the history
  2. Revert "Fix requirements.txt syntax"

    Since conda seems to now work with RTD
    
    This reverts commit 70b39e8.
    yuvipanda committed Jun 24, 2021
    Configuration menu
    Copy the full SHA
    e7242a9 View commit details
    Browse the repository at this point in the history
  3. Don't autorender tfdocs

    --output requires a newer version of terraform-docs on
    conda-forge
    (conda-forge/go-terraform-docs-feedstock#25).
    yuvipanda committed Jun 24, 2021
    Configuration menu
    Copy the full SHA
    f8cf3f7 View commit details
    Browse the repository at this point in the history