Docs · Airframe
Airframe quickstart part 1: boarding-api
Converted from ../user/quickstart.md.
Placeholders: <dev-context>, <github-owner>, <prod-cluster>, <prod-context> are the names chosen when the clusters were built (render with --dev-cluster etc. to fill them in).
The app exists as a synced, ready NodeJSApplication XR
kubectl --context "<dev-context>" get nodejsapplication boarding-api -n app-boarding-api-cicd
Expected: SYNCED=True READY=True, and the DevClusterReady/CicdOnboarded custom conditions are both True
The pipeline onboarding PR was merged (.tekton/ exists in the source repo)
gh api repos/<github-owner>/boarding-api/contents/.tekton --jq '.[].name'
Expected: flow-ci.yaml, flow-pr-build.yaml and onboarding-resync.yaml are all present
The real app code replaced the hello-world scaffold
gh api repos/<github-owner>/boarding-api/contents --jq '.[].name'
Expected: app.js, store.js, reservations.js and public/ are present (the scaffold’s index.js alone would mean this step never happened)
Ground: boarding-api is Running on the dev cluster and answers
kubectl --context "<dev-context>" get pods -n app-boarding-api-dev
kubectl --context "<dev-context>" port-forward -n app-boarding-api-dev svc/boarding-api 18080:8080 &
curl -s http://localhost:18080/healthz
Expected: at least one boarding-api pod Running; /healthz returns 200
Flight: boarding-api’s staging environment is Synced/Ready with a real deployed Rollout
kubectl --context "<dev-context>" get applicationenvironment boarding-api-<prod-cluster>-staging -n app-boarding-api-cicd
kubectl --context "<prod-context>" get rollout boarding-api -n app-boarding-api-staging
Expected: the ApplicationEnvironment XR is Synced/Ready; the Rollout has availableReplicas == replicas (all pods up)
The Redis component is attached and boarding-api reads through it
kubectl --context "<dev-context>" get secret cache -n app-boarding-api-dev
curl -s http://localhost:18080/api/whoami
Expected: the cache Secret exists with a redis-password key; /api/whoami reports “cache”:“redis”
The canary mechanism (Argo Rollouts, canary strategy) is in place
kubectl --context "<prod-context>" get rollout boarding-api -n app-boarding-api-staging -o jsonpath='{.spec.strategy}'
Expected: the Rollout’s strategy is canary with real steps (setWeight/pause/setWeight). This only checks the mechanism exists - the doc itself says no canary has actually been walked yet with this app, and this step does not claim otherwise.