refactor(scenarios): split monolithic configuration into individual files
- Split `scenarios/scenarios.json` into individual JSON files under `scenarios/data/` named `<scenario-id>.json` - Split `scenarios/bundles.json` into individual JSON files under `scenarios/bundles/` named `<bundle-id>.json` - Updated `backend/server.js` to dynamically load scenario and bundle files from their respective directories - Updated documentation in `scenarios/SCHEMA.md` and `README.md` to reflect the new repository layout and contributor workflow Signed-off-by: Abhinav Sinha <[email protected]>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "crashloop-fix",
|
||||
"title": "Fix a CrashLoopBackOff Pod",
|
||||
"category": "Troubleshooting",
|
||||
"difficulty": "Medium",
|
||||
"type": "task",
|
||||
"weight": 7,
|
||||
"description": "## Fix a CrashLoopBackOff\n\nA deployment `crash-app` is in `CrashLoopBackOff` because it was deployed with a broken command.\n\n**Your task:**\n\nFix the `crash-app` deployment so all pods run successfully. The container should run `nginx -g 'daemon off;'` (the default nginx command). Update the deployment to remove the broken command override.\n\n```bash\n# Check what's wrong:\nkubectl describe deployment crash-app\nkubectl logs -l app=crash-app\n```",
|
||||
"hints": [
|
||||
{
|
||||
"title": "Remove the broken command",
|
||||
"body": "Use `kubectl patch` or `kubectl edit deployment crash-app`. Remove the `command` override so nginx uses its default entrypoint.",
|
||||
"command": "kubectl patch deployment crash-app --type=json -p='[{\"op\":\"remove\",\"path\":\"/spec/template/spec/containers/0/command\"}]'"
|
||||
},
|
||||
{
|
||||
"title": "Alternative: kubectl set",
|
||||
"body": "You can also edit the deployment directly and delete the command field.",
|
||||
"command": "kubectl edit deployment crash-app"
|
||||
}
|
||||
],
|
||||
"setup_commands": [
|
||||
{
|
||||
"command": "kubectl create deployment crash-app --image=nginx:alpine --replicas=1 2>/dev/null || true"
|
||||
},
|
||||
{
|
||||
"command": "kubectl patch deployment crash-app --type=json -p='[{\"op\":\"add\",\"path\":\"/spec/template/spec/containers/0/command\",\"value\":[\"/bin/sh\",\"-c\",\"exit 1\"]}]'"
|
||||
}
|
||||
],
|
||||
"validation": {
|
||||
"commands": [
|
||||
{
|
||||
"description": "Deployment 'crash-app' has 1 ready replica",
|
||||
"command": "kubectl get deployment crash-app -o jsonpath='{.status.readyReplicas}' 2>/dev/null | grep -v '^$' || echo 0",
|
||||
"expected_output": "1",
|
||||
"match": "exact"
|
||||
}
|
||||
]
|
||||
},
|
||||
"default_namespace": "default",
|
||||
"teardown_commands": [
|
||||
{
|
||||
"command": "kubectl delete deployment crash-app --ignore-not-found"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user