Skip to content

Resolve chicken-vs-egg scenario of initial Heroku deployment vs initial DANDI Infrastructure deployment #195

@aaronkanzer

Description

@aaronkanzer

Girder is the basis for the DANDI Archive API -- https://github.com/dandi/dandi-infrastructure/blob/master/terraform/api.tf#L5-L6.

A chicken vs. egg scenario occurs when using Girder for Heroku deployments of DANDI Archive, as DANDI Archive must be deployed at least once, applying its relevant Procfile to Heroku, as noted here in the Girder docs, prior to Heroku dyno configuration being recognized in corresponding dandi-infrastructure Terraform code.

However, when initially deploying the DANDI Archive, certain environment variables must be set -- in the Django settings file here -- these values are set by the Terraform values set here -- thus, it is impossible to provide a clean, initial terraform apply, causing a chicken vs. egg scenario where DANDI Archive needs to be deployed before dandi-infrastructure, but can't because of missing env vars set via Girder.

This ticket captures this issue -- there are be step-wise mechanisms to get around this (e.g. LINC Archive/infrastructure's prior trial-and-error), albeit potentially messy and confusing to a new user.

Cc @satra @kabilar @yarikoptic @waxlamp

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions