Compare commits
22 Commits
3b72673506
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3577ca78cf | |||
| c05892070f | |||
| ea04340ef8 | |||
| 5d2e668c68 | |||
| 841a34877b | |||
| e4f1f8c9cb | |||
| 753a1fcb44 | |||
| 8483ca9768 | |||
| 040a26578d | |||
| a91b1fcf59 | |||
| b6af57adef | |||
| da4ea18d47 | |||
| 5d00f2af4c | |||
| 8179b94c8d | |||
| 27da605859 | |||
| 7529b38918 | |||
| 2d230146e7 | |||
| a47b057727 | |||
| 9f3fd7cd45 | |||
| 79ad2b2ed7 | |||
| 069ac897b2 | |||
| fc28011537 |
@@ -1,74 +1,79 @@
|
|||||||
---
|
---
|
||||||
title: "Sonar Test Nest4"
|
title: "sonar-test-nest4"
|
||||||
generated_by: documentor-agent
|
generated_by: documentor-agent
|
||||||
generated_at: "2026-05-14T12:03:00+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"
|
||||||
---
|
---
|
||||||
|
|
||||||
# Sonar Test Nest4
|
|
||||||
|
|
||||||
> A stateless microservice built with TypeScript and NestJS, providing API endpoints for item management and Prometheus-based observability.
|
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
Sonar Test Nest4 is a stateless microservice scaffolded from the **Create Microservice** golden-path template on the Kyndryl Platform. It is designed to manage items through a RESTful API and includes built-in observability features such as health checks and Prometheus metrics.
|
`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 is implemented using the `typescript-nestjs` runtime and follows a structured branch model (`dev`, `staging`, `prod`, and `main`) to ensure smooth CI/CD workflows. It is deployed to Azure Kubernetes Service (AKS) via Humanitec, with container images stored in Azure Container Registry (ACR).
|
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.
|
||||||
|
|
||||||
This service plays a key role in the broader system by providing item management capabilities and adhering to platform standards for observability, deployment, and runtime configuration.
|
|
||||||
|
|
||||||
## Repository
|
## Repository
|
||||||
|
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
|---|---|
|
|----------------|------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| Source Repo | [Sonar Test Nest4 Repository](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 | — |
|
||||||
| Namespace | dev |
|
| Namespace | `dev` |
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
Sonar Test Nest4 is built using the `typescript-nestjs` runtime and deployed as a stateless service. Key architectural components include:
|
`sonar-test-nest4` follows a modern microservice architecture with the following components:
|
||||||
|
|
||||||
- **Runtime**: TypeScript with NestJS framework.
|
- **Runtime**: `typescript-nestjs`
|
||||||
- **Container Port**: `3000`.
|
- **Container Port**: `3000`
|
||||||
- **Health Check Endpoint**: `/health`.
|
- **Endpoints**:
|
||||||
- **Metrics Endpoint**: `/metrics` (Prometheus format).
|
- `/api/items` for CRUD operations
|
||||||
- **Image Repository**: Azure Container Registry (`bstagecjotdevacr`).
|
- `/health` for health checks
|
||||||
|
- `/metrics` for Prometheus metrics
|
||||||
The CI/CD pipeline is managed through Gitea Actions workflows:
|
- **Deployment**:
|
||||||
- `build-push.yml`: Builds and tests the application, then pushes the container image to ACR.
|
- Images are built and pushed to Azure Container Registry (ACR).
|
||||||
- `deploy-humanitec.yml`: Deploys the service to AKS via Humanitec using Score files.
|
- Humanitec API triggers deployments to AKS using Score-based configurations.
|
||||||
|
- **CI/CD**:
|
||||||
Promotions between environments (`dev`, `staging`, `prod`) are triggered through Backstage's CI/CD tab, ensuring controlled and gated deployments.
|
- 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
|
||||||
|
|
||||||
The service follows a structured branch model for development and deployment:
|
### Deployment Flow
|
||||||
|
|
||||||
- **dev**: Active development branch; commits trigger automatic builds and deployments to the dev environment.
|
1. Push changes to the `dev` branch to trigger automatic builds and deployments to the dev environment.
|
||||||
- **staging**: Pre-production environment; changes are promoted from `dev` via PR with CI gate and approval.
|
2. Promote changes to `staging` or `prod` via PRs, requiring CI checks and one approval.
|
||||||
- **prod**: Production environment; changes are promoted from `staging` via PR with CI gate and approval.
|
3. Use Backstage's CI/CD tab to monitor and trigger promotions between environments.
|
||||||
- **main**: System of record; receives merges from `prod` after releases.
|
|
||||||
|
|
||||||
Deployment workflows are runtime-agnostic and rely on `.platform/config.yaml` for configuration.
|
### Runbook Notes
|
||||||
|
|
||||||
|
- **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
|
## Observability
|
||||||
|
|
||||||
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=sonar-test-nest4): OpenTelemetry-based application 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`.
|
- **Prometheus Metrics**: Exposed at `/metrics` on port `3000`.
|
||||||
- Health check endpoint at `/health`.
|
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
_No declared dependencies._
|
- `api:default/sonar-test-nest4-api`
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [Humanitec Console](https://console.humanitec.dev/orgs/skillful-wild-chicken-2617/projects/domain-demo-apps)
|
||||||
|
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=sonar-test-nest4)
|
||||||
|
- [Source Repository](https://gitea.kyndemo.live/validate/sonar-test-nest4)
|
||||||
13
catalog/component/default/sonar-test-nest4/_meta.json
Normal file
13
catalog/component/default/sonar-test-nest4/_meta.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"sourceShas": {
|
||||||
|
"catalog-info.yaml": "aa72b708c50b03b5dd454112e1f50ab88546e586",
|
||||||
|
".platform/initialized.md": "24a574f77ac17059b313a824398b9bb19263232e",
|
||||||
|
"README.md": "393357c07b620a60ef22f449987d9195d533dd10",
|
||||||
|
"docs/api.md": "86776bdd5e2fbe634709920102282ed589927c5b",
|
||||||
|
"docs/architecture.md": "00364872501f36d455a6597502481c8422368746",
|
||||||
|
"docs/index.md": "81f0ec2243665ad41daf93202c872cfc023eb21a"
|
||||||
|
},
|
||||||
|
"promptVersion": "1.0",
|
||||||
|
"generatedAt": "2026-05-21T08:46:06+00:00",
|
||||||
|
"contentHash": "a82efb2e2e92a9bcb63354c3faab85a4f8438528764c04da61699539d261fa17"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user