Merge pull request 'docs: documentation for validate/sonar-test-nest4' (#22) from documentor-validate-sonar-test-nest4-01e0755e into main
This commit was merged in pull request #22.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: "sonar-test-nest4"
|
||||
generated_by: documentor-agent
|
||||
generated_at: "2026-05-21T07:55:31+00:00"
|
||||
generated_at: "2026-05-21T08:45:51+00:00"
|
||||
human_edited: false
|
||||
source_entity: "Component/default/sonar-test-nest4"
|
||||
source_repo: "https://gitea.kyndemo.live/validate/sonar-test-nest4"
|
||||
@@ -9,69 +9,64 @@ source_repo: "https://gitea.kyndemo.live/validate/sonar-test-nest4"
|
||||
|
||||
## 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, including CRUD operations, and is instrumented with OpenTelemetry for observability. It is designed to integrate seamlessly into the platform's CI/CD pipeline, leveraging Humanitec for deployment orchestration and Azure Container Registry for image storage.
|
||||
`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, showcasing best practices for microservice development, deployment, and observability. It is managed by the platform engineering team and adheres to a strict branch promotion model to ensure quality and stability across environments.
|
||||
This service plays a critical role in the demo-apps domain, serving as a testbed for platform capabilities such as CI/CD pipelines, observability, and load testing. It is managed via Humanitec and deployed to Azure Kubernetes Service (AKS) using Score-based configurations.
|
||||
|
||||
## Repository
|
||||
|
||||
| Field | Value |
|
||||
|----------------|------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Source Repo | [validate/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` |
|
||||
| ArgoCD App | — |
|
||||
| Namespace | `dev` |
|
||||
|
||||
## Architecture
|
||||
|
||||
`sonar-test-nest4` follows a modern microservice architecture:
|
||||
`sonar-test-nest4` follows a modern microservice architecture with the following components:
|
||||
|
||||
- **Runtime**: `typescript-nestjs`
|
||||
- **Container Port**: `3000`
|
||||
- **Endpoints**:
|
||||
- `/api/items` for CRUD operations on items.
|
||||
- `/health` for health checks.
|
||||
- `/metrics` for Prometheus-compatible metrics.
|
||||
- **Deployment Flow**:
|
||||
- CI/CD pipelines in Gitea Actions handle build, test, and deployment.
|
||||
- Images are pushed to Azure Container Registry (`bstagecjotdevacr`).
|
||||
- Humanitec orchestrates deployments to AKS using Score files.
|
||||
|
||||
The service is designed for scalability and observability, with OpenTelemetry instrumentation and Prometheus metrics exposed at `/metrics`.
|
||||
- `/api/items` for CRUD operations
|
||||
- `/health` for health checks
|
||||
- `/metrics` for Prometheus metrics
|
||||
- **Deployment**:
|
||||
- Images are built and pushed to Azure Container Registry (ACR).
|
||||
- Humanitec API triggers deployments to AKS using Score-based configurations.
|
||||
- **CI/CD**:
|
||||
- Gitea Actions workflows (`build-push.yml` and `deploy-humanitec.yml`) automate build, test, and deployment processes.
|
||||
- Promotion between environments (`dev → staging → prod`) is gated by CI checks and manual approvals.
|
||||
|
||||
## Configuration
|
||||
|
||||
| Config Key | Value |
|
||||
|------------------|------------------|
|
||||
|------------------|--------------------|
|
||||
| `runtime` | `typescript-nestjs` |
|
||||
| `health_path` | `/health` |
|
||||
| `container_port` | `3000` |
|
||||
|
||||
Additional configuration details are managed via `.platform/config.yaml` and Humanitec Score files.
|
||||
Additional configuration options are managed via `.platform/config.yaml` and Humanitec score files.
|
||||
|
||||
## Operations
|
||||
|
||||
### Deployment Steps
|
||||
### Deployment Flow
|
||||
|
||||
1. Push changes to the `dev` branch for automatic deployment to the development environment.
|
||||
2. Open a PR for promotion to `staging` or `prod`. Ensure CI tests pass and obtain one approval.
|
||||
3. Merge PR to trigger deployment to the target environment.
|
||||
1. Push changes to the `dev` branch to trigger automatic builds and deployments to the dev environment.
|
||||
2. Promote changes to `staging` or `prod` via PRs, requiring CI checks and one approval.
|
||||
3. Use Backstage's CI/CD tab to monitor and trigger promotions between environments.
|
||||
|
||||
### Runbook Notes
|
||||
|
||||
- **Health Check**: Verify service health at `/health`.
|
||||
- **Metrics**: Monitor Prometheus metrics at `/metrics`.
|
||||
- **Promotion Flow**:
|
||||
- `dev → staging`: Requires CI gate and approval.
|
||||
- `staging → prod`: Requires CI gate and approval.
|
||||
- `prod → main`: Merge via PR after release.
|
||||
- **Health Check**: Verify service health via `/health`.
|
||||
- **Metrics**: Access Prometheus metrics at `/metrics`.
|
||||
- **Load Testing**: K6 is enabled for load testing, with configurations stored in the `k6-test-sonar-test-nest4` ConfigMap.
|
||||
|
||||
## 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)
|
||||
- **Prometheus Metrics**: Exposed at `/metrics`.
|
||||
|
||||
_Chaos Mesh and K6 load testing are enabled for this service._
|
||||
- **Prometheus Metrics**: Exposed at `/metrics` on port `3000`.
|
||||
|
||||
## Dependencies
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"sourceShas": {
|
||||
"catalog-info.yaml": "1dfa78366377f0f0c1d72669a551f44e90e8f6b1",
|
||||
"catalog-info.yaml": "aa72b708c50b03b5dd454112e1f50ab88546e586",
|
||||
".platform/initialized.md": "24a574f77ac17059b313a824398b9bb19263232e",
|
||||
"README.md": "393357c07b620a60ef22f449987d9195d533dd10",
|
||||
"docs/api.md": "86776bdd5e2fbe634709920102282ed589927c5b",
|
||||
@@ -8,6 +8,6 @@
|
||||
"docs/index.md": "81f0ec2243665ad41daf93202c872cfc023eb21a"
|
||||
},
|
||||
"promptVersion": "1.0",
|
||||
"generatedAt": "2026-05-21T07:55:50+00:00",
|
||||
"contentHash": "86c1649daaec999ba977c2baee3ad51bd3f679de80480fb0c830c0ef3626ece1"
|
||||
"generatedAt": "2026-05-21T08:46:06+00:00",
|
||||
"contentHash": "a82efb2e2e92a9bcb63354c3faab85a4f8438528764c04da61699539d261fa17"
|
||||
}
|
||||
Reference in New Issue
Block a user