docs: documentation for validate/sonar-test-nest4 #19
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: "sonar-test-nest4"
|
title: "sonar-test-nest4"
|
||||||
generated_by: documentor-agent
|
generated_by: documentor-agent
|
||||||
generated_at: "2026-05-18T09:31:41+00:00"
|
generated_at: "2026-05-18T09:44:21+00:00"
|
||||||
human_edited: false
|
human_edited: false
|
||||||
source_entity: "Component/default/sonar-test-nest4"
|
source_entity: "Component/default/sonar-test-nest4"
|
||||||
source_repo: "https://gitea.kyndemo.live/validate/sonar-test-nest4"
|
source_repo: "https://gitea.kyndemo.live/validate/sonar-test-nest4"
|
||||||
@@ -9,14 +9,14 @@ source_repo: "https://gitea.kyndemo.live/validate/sonar-test-nest4"
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
`sonar-test-nest4` is a stateless microservice built using the `typescript-nestjs` runtime. It was scaffolded from the **Create Microservice** golden-path template on the Kyndryl Platform. The service provides a REST API for managing items, exposing endpoints for CRUD operations. It is designed to be lightweight, scalable, and integrates seamlessly with the platform's CI/CD pipeline and observability stack.
|
`sonar-test-nest4` is a stateless microservice built using the `typescript-nestjs` runtime. It was scaffolded from the **Create Microservice** golden-path template on the Kyndryl Platform. The service provides a REST API for managing items, including endpoints for CRUD operations. It is designed to be lightweight, scalable, and observable, with integrated OpenTelemetry instrumentation and Prometheus metrics.
|
||||||
|
|
||||||
The service plays a critical role in the demo-apps domain, serving as a foundational component for showcasing platform capabilities such as OpenTelemetry instrumentation, Prometheus metrics, and automated load testing with k6. It is managed by the platform engineering group and follows a strict branch promotion model to ensure stability across environments.
|
This service plays a key role in the demo-apps domain, serving as a foundational component for item management workflows. It is deployed via Humanitec to an AKS cluster, with CI/CD pipelines managed through Gitea Actions. Observability is enabled through Grafana dashboards and Prometheus metrics, ensuring operational insights and performance monitoring.
|
||||||
|
|
||||||
## Repository
|
## Repository
|
||||||
|
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
|----------------|-----------------------------------------------------------------------------------------------------------------------------|
|
|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| Source Repo | [sonar-test-nest4](https://gitea.kyndemo.live/validate/sonar-test-nest4) |
|
| Source Repo | [sonar-test-nest4](https://gitea.kyndemo.live/validate/sonar-test-nest4) |
|
||||||
| Branch | `dev` |
|
| Branch | `dev` |
|
||||||
| ArgoCD App | — |
|
| ArgoCD App | — |
|
||||||
@@ -24,46 +24,49 @@ The service plays a critical role in the demo-apps domain, serving as a foundati
|
|||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
`sonar-test-nest4` is deployed as a containerized service on Azure Kubernetes Service (AKS) via Humanitec's Score-based deployment. The CI/CD pipeline is powered by Gitea Actions, which automates the build, test, and deployment processes. The service communicates with other components through its REST API and exposes Prometheus metrics for monitoring.
|
`sonar-test-nest4` follows a modern microservice architecture:
|
||||||
|
|
||||||
Key architectural details:
|
|
||||||
- **Runtime**: `typescript-nestjs`
|
- **Runtime**: `typescript-nestjs`
|
||||||
- **Container Port**: `3000`
|
- **Container Port**: `3000`
|
||||||
- **Endpoints**:
|
- **Endpoints**:
|
||||||
- `/api/items` for CRUD operations
|
- `/api/items` for CRUD operations
|
||||||
- `/health` for health checks
|
- `/health` for health checks
|
||||||
- `/metrics` for Prometheus metrics
|
- `/metrics` for Prometheus metrics
|
||||||
- **Image Registry**: Azure Container Registry (`bstagecjotdevacr`)
|
- **Deployment**:
|
||||||
- **Deployment Flow**:
|
- Images are built and pushed to Azure Container Registry (ACR).
|
||||||
- Push to `dev` triggers automatic build and deployment to the dev environment.
|
- Humanitec manages deployments to AKS using Score files.
|
||||||
- Promotion to `staging` and `prod` requires PR approval and passing CI gates.
|
- **CI/CD**:
|
||||||
|
- Gitea Actions workflows (`build-push.yml` and `deploy-humanitec.yml`) automate build, test, and deployment processes.
|
||||||
|
- **Branch Model**:
|
||||||
|
- `dev` → `staging` → `prod` → `main` (system of record).
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
| Config Key | Value |
|
| Config Key | Value |
|
||||||
|------------------|----------------|
|
|------------------|--------------------|
|
||||||
| `runtime` | `typescript-nestjs` |
|
| `runtime` | `typescript-nestjs` |
|
||||||
| `health_path` | `/health` |
|
| `health_path` | `/health` |
|
||||||
| `container_port` | `3000` |
|
| `container_port` | `3000` |
|
||||||
|
|
||||||
## Operations
|
## Operations
|
||||||
|
|
||||||
### Deployment Steps
|
### Deployment Flow
|
||||||
1. Push changes to the `dev` branch for automatic deployment to the dev environment.
|
|
||||||
2. Open a PR for promotion to `staging` or `prod`. Ensure CI tests pass and obtain one approval.
|
|
||||||
3. Merge the PR to trigger deployment to the target environment.
|
|
||||||
|
|
||||||
### Runbook Notes
|
1. Push changes to the `dev` branch to trigger automatic builds and deployments to the dev environment.
|
||||||
- Monitor the `/health` endpoint for service status.
|
2. Promote changes to `staging` or `prod` via PRs, requiring CI gate and approval.
|
||||||
- Use the `/metrics` endpoint for Prometheus-based observability.
|
3. Merge production-ready code to the `main` branch as the system of record.
|
||||||
- Refer to `.platform/config.yaml` for runtime-specific configurations.
|
|
||||||
|
### Observability
|
||||||
|
|
||||||
|
- **Health Check**: `/health` endpoint returns `{"status":"UP"}`.
|
||||||
|
- **Metrics**: `/metrics` endpoint exposes Prometheus metrics.
|
||||||
|
- **Grafana Dashboard**: [Opentelemetry Application Observability](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=sonar-test-nest4).
|
||||||
|
|
||||||
## Observability
|
## Observability
|
||||||
|
|
||||||
- **Grafana Dashboard**: [Opentelemetry Application Observability](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=sonar-test-nest4)
|
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=sonar-test-nest4)
|
||||||
- **Prometheus Metrics**: Enabled (`/metrics` endpoint)
|
- Prometheus metrics enabled (`/metrics`).
|
||||||
- **Chaos Mesh**: Enabled for resilience testing
|
- OpenTelemetry instrumentation integrated.
|
||||||
- **k6 Load Testing**: Configured (`k6-test-sonar-test-nest4` in `dev` namespace)
|
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
".platform/initialized.md": "24a574f77ac17059b313a824398b9bb19263232e",
|
".platform/initialized.md": "24a574f77ac17059b313a824398b9bb19263232e",
|
||||||
"README.md": "4b5a7f83a6729688266ef621748367cbd556ddfe",
|
"README.md": "4b5a7f83a6729688266ef621748367cbd556ddfe",
|
||||||
"docs/api.md": "86776bdd5e2fbe634709920102282ed589927c5b",
|
"docs/api.md": "86776bdd5e2fbe634709920102282ed589927c5b",
|
||||||
"docs/architecture.md": "6d022a6fee34ee24f7274bb18396d1c107be0c17",
|
"docs/architecture.md": "00364872501f36d455a6597502481c8422368746",
|
||||||
"docs/index.md": "81f0ec2243665ad41daf93202c872cfc023eb21a"
|
"docs/index.md": "81f0ec2243665ad41daf93202c872cfc023eb21a"
|
||||||
},
|
},
|
||||||
"promptVersion": "1.0",
|
"promptVersion": "1.0",
|
||||||
"generatedAt": "2026-05-18T09:31:57+00:00",
|
"generatedAt": "2026-05-18T09:44:33+00:00",
|
||||||
"contentHash": "2d6860fb20532f67f7eb90613079f2b89ae234dc7b7593245c284ea8ff736676"
|
"contentHash": "f915ebba47688cb37836b549477a2d11ff8d46d82974a7d6cba92f5e2090ca32"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user