Skip to main content

Step-by-Step Onboarding Guide: Yalla Sandbox

This guide walks you through onboarding to the Yalla sandbox environment. Choose one of the two paths below depending on whether you want to add your service to an existing platform or create a new platform.

Options

  • Option A: Use an existing platform (like bootcamp) and add your service — recommended for beginners/bootcamp users.
  • Option B: Create a new platform tenant and then add services.

Prerequisites

Before starting, ensure you have the following access and tools:


Option A: Onboard a Service to Existing Platform (Bootcamp)

Step 1: Prepare Your Application Code

If you're following the bootcamp tutorial, use the provided repository.

Clone the Bootcamp App Repository:

# HTTPS
git clone https://dev.azure.com/bp-digital/CodeAlign/_git/SPKG0051254_bootcamp

Create your branch:

cd yalla-bootcamp
git checkout -b user-<your-ntid> # e.g., user-3746uc

Step 2: Update User ID and Push Changes

Edit main.go and replace the userID variable with your NTID:

userID = "3746uc"

Push Your Changes:

git add .
git commit -m "Updated with my NTID"
git push origin user-<your-ntid>

Step 3: CI Pipeline and Artifactory Image

Once you push your branch:

  • CI pipeline builds your container image.
  • Image is pushed to Artifactory

Copy the full image reference. Example:

dml.bpglobal.com/bp-spkg0051254-docker-local/yalla-bootcamp-user-<your-ntid>:<tag>

Step 4: Create Service Definition in Yalla Repository

Clone Yalla Repo:

git clone https://dev.azure.com/bp-digital/DevOps-SRE/_git/yalla
cd yalla
git checkout -b user-<your-ntid>
cd sandbox/bootcamp/services
mkdir user-<your-ntid>
cd user-<your-ntid>

Create service.yaml — replace <your-ntid> and <tag> accordingly:

serviceTargeting:
regions:
- eu-west-1
infra:
resources:
<your-ntid>-db:
type: BPDynamoDB
parameters:
attrs:
- name: id
type: S
partitionKey: id
service:
name: user-<your-ntid>
ports:
- name: http
port: 80
targetPort: 8080
metrics:
enabled: true
port: 8080
path: "/metrics"
deployment:
containers:
app:
ports:
- name: http
port: 8080
securityContext:
readOnlyRootFilesystem: false
resources:
requests:
cpu: 100m
memory: 128Mi
livenessProbe:
httpGet:
path: /health
port: http
readinessProbe:
httpGet:
path: /health
port: http
startupProbe:
httpGet:
path: /health
port: http
timeoutSeconds: 3
periodSeconds: 4
initialDelaySeconds: 5
successThreshold: 1
failureThreshold: 10

Create environment valuesmkdir dev && cd dev and create values.yaml:

service:
endpoints:
internal:
hosts:
- <your-ntid>.bootcamp.yalla-dev.bpaws.com
port: http
deployment:
containers:
app:
image:
ref: dml.bpglobal.com/bp-spkg0051254-docker-local/yalla-bootcamp-user-<your-ntid>:<tag>

Step 5: Commit & Push Changes

cd ../../..
git add .
git commit -m "Add service user-<your-ntid>"
git push origin user-<your-ntid>

Step 6: Deployment

  • Create a PR from your branch to main
  • Request review from platform admins
  • Add Yalla All as approvers

Step 7: Monitor Deployment

Check ArgoCD (~3-5 mins after merge). Look for Application:

user-<your-ntid>-bootcamp-dev-ew1-mt

Ensure status = Synced

Access Your Service:

  • URL: https://<your-ntid>.bootcamp.yalla-dev.bpaws.com
  • Health: https://<your-ntid>.bootcamp.yalla-dev.bpaws.com/health

View in Accelerate Portal: Go to Accelerate and navigate to Yalla Products -> Bootcamp -> Services.


Option B: Create a new platform tenant and then add services

Step 1: Create Platform Configuration

Clone Yalla Repository (if not already done):

git clone https://dev.azure.com/bp-digital/DevOps-SRE/_git/yalla
cd yalla
git checkout -b platform-<your-platform-name>
mkdir -p sandbox/<your-platform-name>
cd sandbox/<your-platform-name>

Create platform.yaml:

platform:
name: <your-platform-name>
description: <description of your platform>
preserveResourcesOnDeletion: false
snowpkg: <your-servicenow-package-id>
allowed_deploy_repos:
- https://dev.azure.com/bp-digital/DevOps-SRE/_git/<your-repo-name>
deployment_flow:
- phase: 1
env_name: "dev"
approvers:
- admin
access:
admins:
- your.email@bp.com

Step 2: Get ServiceNow Package ID

Request a new ServiceNow package for your platform. You will receive a Package ID like SPKG00XXXXX. Update snowpkg in your platform.yaml.

Step 3: Commit and Create Pull Request

git add sandbox/<your-platform-name>/platform.yaml
git commit -m "Add new platform: <your-platform-name>"
git push origin platform-<your-platform-name>

Create a PR in Azure DevOps, request review, and wait for approval & merge.

Step 4: Verify Platform Creation

After the PR merges (wait ~5-10 min), check ArgoCD for:

<your-platform-name>-sandbox-dev-eu-west-1-mt-root

It should be Synced.

Step 5: Add Services to Your Platform

Once your platform is created, add services following the same process as Option A but using your platform folder:

cd sandbox/<your-platform-name>/services
mkdir <your-service-name>

Update endpoint hosts accordingly:

service:
endpoints:
internal:
hosts:
- <your-service-name>.<your-platform-name>.yalla-dev.bpaws.com