Skip to content
GitLab
Next
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    Projects Groups Snippets
  • Register
  • Sign in
  • customers-gitlab-com customers-gitlab-com
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 744
    • Issues 744
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Insights
    • Issue
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • customers-gitlab-comcustomers-gitlab-com
  • Issues
  • #474
Closed
Open
Issue created Apr 23, 2019 by Michael Leopard@leopardmDeveloper

Set Up Basic Development Kit/Improve New Developer Onboarding

Problem

Developing the customer portal requires a long installation process/setup.

Proposal

Create a development kit such as GDK that will let us install and update the customer portal easily.

Right now we have a basic CDK script - https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/staging/cdk/setup.rb

The idea would be to add steps to it that go through the different stages of the setup:

  1. Install asdf
  2. Run ./bin/bootstrap
  3. Start posgresql/redis
  4. Setup ngrok (use something like https://github.com/piotrmurach/tty-prompt to prompt for the token, etc...)
  5. Setup Unleash (we should probably have a Settings class that reads, merges, and writes to the secrets.yml file)
  6. Setup Zuora (Using tty-prompt or similar plus the Settings class, to keep it interactive)
  7. For setting up Zuora, we could build a Slack command to retrieve this via CI and GitLab Chatops as a future iteration
  8. Setup the local environment via bundle install, yarn install, DB setup, etc...
  9. Start ngrok
  10. Setup GitLab (optional): We could again use the prompt to ask for details and update them using Settings. As a future iteration asking for a token and URL may suffice to do the whole thing ourselves.
  11. Start the app

A few commands I would expect CDK to handle (some in future iterations):

bin/cdk setup # Runs all of the steps above, ideally idempotent
bin/cdk setup ngrok # Runs just this specific step
bin/cdk update # Updates to latest, merges new secrets files using Settings, runs migrations, restarts app...
bin/cdk start/restart/stop # Starts/restarts/stops the application

Also this is largely inspired by the application that use to deploy GitLab not long ago: https://gitlab.com/gitlab-org/takeoff

Result

Set up time for future developers would decrease.

Edited May 19, 2021 by James Lopez
Assignee
Assign to
Time tracking