Skip to content

Deployment

Joana Maia edited this page Jun 27, 2025 · 2 revisions

🚀 Deployment

Environments

  • Staging: Development enrvironment, mainly used to test features before deploying to production.
  • Production: Production enrvironment, used by real users.

How to deploy an existing service

Both the staging and production deployments are manual, and can be triggered using the GitHub Actions UI.

Services

Any of the services listed below can be deployed using the available deployment GitHub actions. To check the list os available services you can:

  1. Run ./cli service on the /scripts directory of the current repository.
  2. OR check crowd-kube repository, which stores all kubernetes configurations.

activities-worker | api| cache-worker| cron-service| data-sink-worker| discord-ws| entity-merging-worker| exports-worker| frontend| integration-run-worker| integration-stream-worker| job-generator| members-enrichment-worker| merge-suggestions-worker| nango-webhook-api| nango-worker| organizations-enrichment-worker| profiles-worker| script-executor-worker| search-sync-api| search-sync-worker| security-best-practices-worker| webhook-api

Staging

  1. Push your changes to the development branch you are working now. We don't have a dedicated development branch.
  2. Go to the LF Oracle Staging Deploy GitHub action.
  3. Click "Run Workflow".
  4. Select the branch you want to deploy
  5. Write down the list of services you want to deploy, separated by space. E.g api frontend.
  6. Click "Run Worfklow"
  7. The workflow will build new Docker images and update Kubernetes with the new images.

Production

  1. Merge your Pull Request to main, making sure that all checks passed.
  2. Once the changes are in main, go to the LF Oracle Production Deploy GitHub action.
  3. Click "Run Workflow".
  4. Make sure you have main branch selected.
  5. Write down the list of services you want to deploy, separated by space. E.g api frontend.
  6. Click "Run Worfklow".
  7. The workflow will build new Docker images and update Kubernetes with the new images.

Configuration Management

The crowd-kube repo hosts all the configuration files for the staging and production environment.

Important notes:

  • If there's the need to update environment variables, it has to be done in the crowd-kube repo, by updating the configmaps and then restarting the service pod to get the latest changes.
  • To deploy a new service:
    1. Configure Kubernetes resources in the crowd-kube repo first
    2. Set up required ConfigMaps, Deployments, Services, etc.
    3. Get the K8s configuration reviewed and merged
    4. Only then can you deploy the new service via GitHub Actions

Documentation:

Clone this wiki locally