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:
- Access to Azure DevOps: https://dev.azure.com/bp-digital/DevOps-SRE
- Access to Artifactory: https://dml.bpglobal.com/ (for container images)
- Access to ArgoCD UI: https://argocd.yalla.bpglobal.com/ (for monitoring deployments)
- Access to Grafana: https://grafana.bpglobal.com/ (for observability)
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 values — mkdir 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