12 Commits

Author SHA1 Message Date
3577ca78cf Merge pull request 'docs: documentation for validate/sonar-test-nest4' (#22) from documentor-validate-sonar-test-nest4-01e0755e into main 2026-05-21 08:46:14 +00:00
c05892070f docs: update _meta.json for component/default/sonar-test-nest4 [documentor-agent] 2026-05-21 08:46:10 +00:00
ea04340ef8 docs: generate README for component/default/sonar-test-nest4 [documentor-agent] 2026-05-21 08:46:08 +00:00
5d2e668c68 Merge pull request 'docs: documentation for validate/sonar-test-nest4' (#21) from documentor-validate-sonar-test-nest4-1a23c5f4 into main
Reviewed-on: #21
2026-05-21 08:08:23 +00:00
841a34877b docs: update _meta.json for component/default/sonar-test-nest4 [documentor-agent] 2026-05-21 07:55:54 +00:00
e4f1f8c9cb docs: generate README for component/default/sonar-test-nest4 [documentor-agent] 2026-05-21 07:55:52 +00:00
753a1fcb44 Merge pull request 'docs: documentation for validate/sonar-test-nest4' (#20) from documentor-validate-sonar-test-nest4-9e0e917a into main 2026-05-18 10:04:02 +00:00
8483ca9768 docs: update _meta.json for component/default/sonar-test-nest4 [documentor-agent] 2026-05-18 10:03:57 +00:00
040a26578d docs: generate README for component/default/sonar-test-nest4 [documentor-agent] 2026-05-18 10:03:55 +00:00
a91b1fcf59 Merge pull request 'docs: documentation for validate/sonar-test-nest4' (#19) from documentor-validate-sonar-test-nest4-d63c1bc4 into main 2026-05-18 09:44:42 +00:00
b6af57adef docs: update _meta.json for component/default/sonar-test-nest4 [documentor-agent] 2026-05-18 09:44:38 +00:00
da4ea18d47 docs: generate README for component/default/sonar-test-nest4 [documentor-agent] 2026-05-18 09:44:35 +00:00
2 changed files with 38 additions and 35 deletions

View File

@@ -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-21T08:45:51+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 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 ## 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 with the following components:
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 API triggers deployments to AKS using Score-based configurations.
- 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.
- Promotion between environments (`dev → staging → prod`) is gated by CI checks and manual approvals.
## 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` |
Additional configuration options are managed via `.platform/config.yaml` and Humanitec score files.
## 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. 1. Push changes to the `dev` branch to trigger automatic builds and deployments to the dev environment.
3. Merge the PR to trigger deployment to the target 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 ### Runbook Notes
- Monitor the `/health` endpoint for service status.
- Use the `/metrics` endpoint for Prometheus-based observability. - **Health Check**: Verify service health via `/health`.
- Refer to `.platform/config.yaml` for runtime-specific configurations. - **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 ## 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**: [OpenTelemetry Application Observability](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**: Exposed at `/metrics` on port `3000`.
- **Chaos Mesh**: Enabled for resilience testing
- **k6 Load Testing**: Configured (`k6-test-sonar-test-nest4` in `dev` namespace)
## Dependencies ## Dependencies

View File

@@ -1,13 +1,13 @@
{ {
"sourceShas": { "sourceShas": {
"catalog-info.yaml": "5c2be634ddfec05ec6fed8c7b85cb2c8b9ab3c13", "catalog-info.yaml": "aa72b708c50b03b5dd454112e1f50ab88546e586",
".platform/initialized.md": "24a574f77ac17059b313a824398b9bb19263232e", ".platform/initialized.md": "24a574f77ac17059b313a824398b9bb19263232e",
"README.md": "4b5a7f83a6729688266ef621748367cbd556ddfe", "README.md": "393357c07b620a60ef22f449987d9195d533dd10",
"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-21T08:46:06+00:00",
"contentHash": "2d6860fb20532f67f7eb90613079f2b89ae234dc7b7593245c284ea8ff736676" "contentHash": "a82efb2e2e92a9bcb63354c3faab85a4f8438528764c04da61699539d261fa17"
} }