Compare commits
62 Commits
documentor
...
883a9c6c04
| Author | SHA1 | Date | |
|---|---|---|---|
| 883a9c6c04 | |||
| ef3ed7a1b8 | |||
| 1181890685 | |||
| f519b44ed0 | |||
| 57b41b6142 | |||
| 5c41a29851 | |||
| dbb5e324a9 | |||
| c4d2e340da | |||
| b914c4b130 | |||
| 0b11e4cacc | |||
| 997127ef80 | |||
| 91ebb45436 | |||
| c4f7a688fa | |||
| 392e33493c | |||
| 22a65439a2 | |||
| f6263a01a3 | |||
| 0527720ef5 | |||
| 823a05daf7 | |||
| 16e8a8cd36 | |||
| 4aa5c46eee | |||
| bab34ff3f8 | |||
| 73a01ffebb | |||
| 3577ca78cf | |||
| c05892070f | |||
| ea04340ef8 | |||
| 5d2e668c68 | |||
| 841a34877b | |||
| e4f1f8c9cb | |||
| 753a1fcb44 | |||
| 8483ca9768 | |||
| 040a26578d | |||
| a91b1fcf59 | |||
| b6af57adef | |||
| da4ea18d47 | |||
| 5d00f2af4c | |||
| 8179b94c8d | |||
| 27da605859 | |||
| 7529b38918 | |||
| 2d230146e7 | |||
| a47b057727 | |||
| 9f3fd7cd45 | |||
| 79ad2b2ed7 | |||
| 069ac897b2 | |||
| fc28011537 | |||
| 3b72673506 | |||
| 79621c8048 | |||
| d078fb4a95 | |||
| 04ac04d90a | |||
| 1c0e9de289 | |||
| eb74b27324 | |||
| 1e4eb91c10 | |||
| 66328cc005 | |||
| 9c74ca2ad1 | |||
| 2c64d74218 | |||
| 0aba4ac987 | |||
| 33b5b4506d | |||
| 13426e0f99 | |||
| 2cc073baf5 | |||
| 49c0442fff | |||
| e6065b0c5f | |||
| a1f162f55a | |||
| 37b54abf82 |
104
catalog/component/default/demo-db/README.md
Normal file
104
catalog/component/default/demo-db/README.md
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
---
|
||||||
|
title: "demo-db"
|
||||||
|
generated_by: documentor-agent
|
||||||
|
generated_at: "2026-06-08T16:23:01+00:00"
|
||||||
|
human_edited: false
|
||||||
|
source_entity: "Component/default/demo-db"
|
||||||
|
source_repo: "https://gitea.kyndemo.live/validate/petclinic"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The `demo-db` service is a critical component of the Spring PetClinic application, providing database functionality for the broader system. It supports both in-memory (H2) and persistent database configurations (MySQL and PostgreSQL), enabling flexibility for development and production environments. The service is part of the `petclinic` system and integrates with other platform tools such as OpenTelemetry for observability, K6 for load testing, and Chaos Mesh for chaos engineering.
|
||||||
|
|
||||||
|
This service plays a key role in ensuring data persistence and retrieval for the application, supporting features like user management, veterinary records, and appointment scheduling. It is deployed and managed via ArgoCD in the `demo-apps` namespace, with observability and testing capabilities integrated into the deployment pipeline.
|
||||||
|
|
||||||
|
## Repository
|
||||||
|
|
||||||
|
| Field | Value |
|
||||||
|
|----------------|-----------------------------------------------------------------------------------------------------------------|
|
||||||
|
| **Source Repo**| [https://gitea.kyndemo.live/validate/petclinic](https://gitea.kyndemo.live/validate/petclinic) |
|
||||||
|
| **Branch** | `main` |
|
||||||
|
| **ArgoCD App** | [petclinic](https://argocd.kyndemo.live/applications/petclinic) |
|
||||||
|
| **Namespace** | `demo-apps` |
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
The `demo-db` service is designed to support multiple database configurations, including H2 (in-memory), MySQL, and PostgreSQL. It uses Spring Boot profiles to switch between database types, ensuring flexibility for different deployment scenarios. The service integrates with the following platform tools:
|
||||||
|
|
||||||
|
- **OpenTelemetry**: Provides instrumentation for tracing, metrics, and logs, enabling detailed observability.
|
||||||
|
- **K6**: Facilitates load testing to ensure the service can handle high traffic scenarios.
|
||||||
|
- **Chaos Mesh**: Enables chaos engineering experiments to test the resilience of the service.
|
||||||
|
|
||||||
|
Data flows from the application layer to the database, with Spring Boot managing the connection and configuration. Persistent databases are supported via Docker containers or local installations, with profiles enabling seamless switching.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
| Configuration Option | Description |
|
||||||
|
|----------------------------|-------------------------------------------------------------------------------------------------|
|
||||||
|
| `spring.profiles.active` | Specifies the active profile (`mysql`, `postgres`, or default for H2). |
|
||||||
|
| `MYSQL_USER` | MySQL username for the database. |
|
||||||
|
| `MYSQL_PASSWORD` | MySQL password for the database. |
|
||||||
|
| `POSTGRES_USER` | PostgreSQL username for the database. |
|
||||||
|
| `POSTGRES_PASSWORD` | PostgreSQL password for the database. |
|
||||||
|
| `POSTGRES_DB` | PostgreSQL database name. |
|
||||||
|
|
||||||
|
## Operations
|
||||||
|
|
||||||
|
### Running Locally
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
```bash
|
||||||
|
git clone https://gitea.kyndemo.live/validate/petclinic.git
|
||||||
|
cd petclinic
|
||||||
|
```
|
||||||
|
2. Start the application:
|
||||||
|
- Using Maven:
|
||||||
|
```bash
|
||||||
|
./mvnw spring-boot:run
|
||||||
|
```
|
||||||
|
- Using Gradle:
|
||||||
|
```bash
|
||||||
|
./gradlew bootRun
|
||||||
|
```
|
||||||
|
3. Access the application at [http://localhost:8080](http://localhost:8080).
|
||||||
|
|
||||||
|
### Persistent Database Setup
|
||||||
|
|
||||||
|
- **MySQL**:
|
||||||
|
```bash
|
||||||
|
docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:9.6
|
||||||
|
```
|
||||||
|
- **PostgreSQL**:
|
||||||
|
```bash
|
||||||
|
docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:18.3
|
||||||
|
```
|
||||||
|
|
||||||
|
### Rollback
|
||||||
|
|
||||||
|
1. Open the [ArgoCD UI](https://argocd.kyndemo.live/applications/petclinic).
|
||||||
|
2. Click **History and Rollback**.
|
||||||
|
3. Select the desired revision and click **Rollback**.
|
||||||
|
|
||||||
|
Alternatively, revert the commit in Git and push — ArgoCD will auto-sync the rollback.
|
||||||
|
|
||||||
|
## Observability
|
||||||
|
|
||||||
|
This service is configured with OpenTelemetry instrumentation. Observability data is exported to the OTel Collector and visualized in Grafana.
|
||||||
|
|
||||||
|
- **Grafana Dashboard**: [View Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-service=demo-db)
|
||||||
|
- **Alerting**: Alerts are configured via Grafana with the label selector `app=demo-db`.
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- `component:default/argocd-service`
|
||||||
|
- `resource:default/k6-operator`
|
||||||
|
- `resource:default/otel-collector`
|
||||||
|
- `resource:default/veterinary-platform`
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [Live Application](https://petclinic.kyndemo.live)
|
||||||
|
- [Repository](https://gitea.kyndemo.live/validate/petclinic)
|
||||||
|
- [ArgoCD App](https://argocd.kyndemo.live/applications/petclinic)
|
||||||
|
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-service=demo-db)
|
||||||
12
catalog/component/default/demo-db/_meta.json
Normal file
12
catalog/component/default/demo-db/_meta.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"sourceShas": {
|
||||||
|
"catalog-info.yaml": "586b5ecff098a3a746c23e87a9d234513ae13e8b",
|
||||||
|
"README.md": "ef9b745ac26efecf8340b75eea18b8151ba7a86e",
|
||||||
|
"docs/adr/index.md": "5672a7b1dfe92a2575152cdaeb01b447c8616288",
|
||||||
|
"docs/index.md": "e616ef832396cf7283ebed71f0a9ab7bb919e8ab",
|
||||||
|
"docs/runbooks/index.md": "52e30a9d4507ec6159c6ea8800341c4c18816ad7"
|
||||||
|
},
|
||||||
|
"promptVersion": "1.0",
|
||||||
|
"generatedAt": "2026-06-08T16:23:13+00:00",
|
||||||
|
"contentHash": "9596a63155c3afd35def3f8a6f9e9acb4db84e08be42d07f6534380638ef2a59"
|
||||||
|
}
|
||||||
106
catalog/component/default/jonathan-demo-test/README.md
Normal file
106
catalog/component/default/jonathan-demo-test/README.md
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
---
|
||||||
|
title: "Jonathan Demo Test"
|
||||||
|
generated_by: documentor-agent
|
||||||
|
generated_at: "2026-06-08T16:18:10+00:00"
|
||||||
|
human_edited: false
|
||||||
|
source_entity: "Component/default/jonathan-demo-test"
|
||||||
|
source_repo: "https://gitea.kyndemo.live/validate/jonathan-demo-test"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Jonathan Demo Test is a modernized microservice built with Java Spring Boot, following cloud-native architecture patterns. It serves as a demonstration of platform orchestration capabilities using Humanitec v2. The service is designed for containerized deployment and integrates seamlessly with observability tools like Prometheus and Grafana. Key features include production-ready configurations, health check endpoints, Prometheus metrics exposure, and security scanning integrated into the CI/CD pipeline.
|
||||||
|
|
||||||
|
This service plays a critical role in showcasing the modernization of legacy applications into scalable, cloud-native solutions. It leverages the Humanitec Platform Orchestrator for deployment and lifecycle management, ensuring streamlined operations and enhanced developer productivity.
|
||||||
|
|
||||||
|
## Repository
|
||||||
|
|
||||||
|
| Field | Value |
|
||||||
|
|------------------|-----------------------------------------------------------------------------------------------------------------|
|
||||||
|
| Source Repo | [Jonathan Demo Test](https://gitea.kyndemo.live/validate/jonathan-demo-test) |
|
||||||
|
| Branch | main |
|
||||||
|
| ArgoCD App | — |
|
||||||
|
| Namespace | dev |
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
Jonathan Demo Test is a microservice designed with the following architecture:
|
||||||
|
|
||||||
|
- **Runtime**: Java Spring Boot
|
||||||
|
- **Deployment**: Humanitec Platform Orchestrator
|
||||||
|
- **CI/CD Pipeline**: Gitea Actions → Azure Container Registry (ACR) → Humanitec
|
||||||
|
- **Observability**: Prometheus metrics and Grafana dashboards for monitoring and alerting.
|
||||||
|
|
||||||
|
The service communicates with external resources defined in `score.yaml`, including database configurations for H2, MySQL, and PostgreSQL. It supports health check endpoints (`/health`) and metrics endpoints (`/metrics`) for operational insights.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
| Configuration Option | Description |
|
||||||
|
|-----------------------------|-----------------------------------------------------------------------------|
|
||||||
|
| `spring.profiles.active` | Specifies the active profile (`mysql`, `postgres`, or default `h2`). |
|
||||||
|
| `jdbc:h2:mem:<uuid>` | URL for accessing the in-memory H2 database. |
|
||||||
|
| `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_DATABASE` | Environment variables for MySQL configuration. |
|
||||||
|
| `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_DB` | Environment variables for PostgreSQL configuration.|
|
||||||
|
|
||||||
|
## Operations
|
||||||
|
|
||||||
|
### Running Locally
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
```bash
|
||||||
|
git clone https://gitea.kyndemo.live/validate/jonathan-demo-test
|
||||||
|
cd jonathan-demo-test
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Start the application:
|
||||||
|
- Using Maven:
|
||||||
|
```bash
|
||||||
|
./mvnw spring-boot:run
|
||||||
|
```
|
||||||
|
- Using Gradle:
|
||||||
|
```bash
|
||||||
|
./gradlew bootRun
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Access the application at [http://localhost:8080](http://localhost:8080).
|
||||||
|
|
||||||
|
### Container Deployment
|
||||||
|
|
||||||
|
1. Build the container image:
|
||||||
|
```bash
|
||||||
|
./mvnw spring-boot:build-image
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Run the container:
|
||||||
|
```bash
|
||||||
|
docker run -p 8080:8080 docker.io/library/spring-petclinic:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### Database Setup
|
||||||
|
|
||||||
|
- For MySQL:
|
||||||
|
```bash
|
||||||
|
docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:9.6
|
||||||
|
```
|
||||||
|
|
||||||
|
- For PostgreSQL:
|
||||||
|
```bash
|
||||||
|
docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:18.3
|
||||||
|
```
|
||||||
|
|
||||||
|
## Observability
|
||||||
|
|
||||||
|
- **Grafana Dashboard**: [View Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=jonathan-demo-test)
|
||||||
|
- **Prometheus Metrics**: Exposed at `/metrics`.
|
||||||
|
- **Health Check**: Available at `/health`.
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- `resource:default/cjot-aks`
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [Humanitec Console](https://console.humanitec.dev/orgs/skillful-wild-chicken-2617/projects/jonathan-demo-test)
|
||||||
|
- [Source Repository](https://gitea.kyndemo.live/validate/jonathan-demo-test)
|
||||||
|
- [CI/CD Pipelines](https://gitea.kyndemo.live/validate/jonathan-demo-test/actions)
|
||||||
|
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=jonathan-demo-test)
|
||||||
14
catalog/component/default/jonathan-demo-test/_meta.json
Normal file
14
catalog/component/default/jonathan-demo-test/_meta.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"sourceShas": {
|
||||||
|
"catalog-info.yaml": "a15a62d963f9ce66c97cd35ff843962e97703365",
|
||||||
|
".platform/initialized.md": "4ca92e278c24ecdedf3bfe89fa1d39895804be47",
|
||||||
|
"README.md": "ef9b745ac26efecf8340b75eea18b8151ba7a86e",
|
||||||
|
"docs/api.md": "cc63aaf27912c2026b3eb84de065a89bbccddf8a",
|
||||||
|
"docs/architecture.md": "6f07e39a58eaa637b126f6178911d7185d8ab9f1",
|
||||||
|
"docs/index.md": "8b366d773ec0afdf355d27003c7345cd52a05cd6",
|
||||||
|
"docs/migration-plan.md": "591b5e3bb85eb78e64ee4ac7cbedd6c7e3d4524a"
|
||||||
|
},
|
||||||
|
"promptVersion": "1.0",
|
||||||
|
"generatedAt": "2026-06-08T16:18:24+00:00",
|
||||||
|
"contentHash": "0aaf787891a78e73764b601105c9eb8171feecd78bc6a8b0d156e1cb524fc668"
|
||||||
|
}
|
||||||
92
catalog/component/default/petclinic-argo-doc/README.md
Normal file
92
catalog/component/default/petclinic-argo-doc/README.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
---
|
||||||
|
title: "Petclinic Argo Documentation"
|
||||||
|
generated_by: documentor-agent
|
||||||
|
generated_at: "2026-06-08T16:22:39+00:00"
|
||||||
|
human_edited: false
|
||||||
|
source_entity: "Component/default/petclinic-argo-doc"
|
||||||
|
source_repo: "https://gitea.kyndemo.live/validate/petclinic-argo-doc"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The **Petclinic Argo Documentation** service is a deployment of the Spring PetClinic application, managed via ArgoCD and deployed into the `demo-apps` namespace. It serves as a demonstration of modern application deployment practices, including continuous delivery, observability, and chaos engineering. The service integrates OpenTelemetry for tracing and metrics, supports load testing with k6, and enables chaos experiments using Chaos Mesh.
|
||||||
|
|
||||||
|
This service is part of the broader **petclinic-argo-doc** system, showcasing how legacy applications can be modernized and deployed using cloud-native tools. It is designed to provide a reference implementation for teams adopting ArgoCD and OpenTelemetry in their workflows.
|
||||||
|
|
||||||
|
## Repository
|
||||||
|
|
||||||
|
| Field | Value |
|
||||||
|
|------------------|------------------------------------------------------------------------------------------------|
|
||||||
|
| **Source Repo** | [Petclinic Argo Documentation](https://gitea.kyndemo.live/validate/petclinic-argo-doc) |
|
||||||
|
| **Branch** | `main` |
|
||||||
|
| **ArgoCD App** | [petclinic-argo-doc](https://argocd.kyndemo.live/applications/petclinic-argo-doc) |
|
||||||
|
| **Namespace** | `demo-apps` |
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
The **Petclinic Argo Documentation** service is built on the Spring Boot framework and deployed using ArgoCD. Key architectural components include:
|
||||||
|
|
||||||
|
- **Source Repository**: The application is cloned from the [Spring PetClinic GitHub repository](https://github.com/spring-projects/spring-petclinic) and customized for deployment.
|
||||||
|
- **Continuous Delivery**: ArgoCD monitors the `main` branch for changes and automatically syncs updates to the Kubernetes cluster.
|
||||||
|
- **Observability**: OpenTelemetry instrumentation is applied via Kustomize overlays, exporting traces and metrics to a centralized OTel Collector.
|
||||||
|
- **Load Testing**: k6 is configured for performance testing, targeting the `frontend` service.
|
||||||
|
- **Chaos Engineering**: Chaos Mesh is enabled to simulate failure scenarios and improve system resilience.
|
||||||
|
|
||||||
|
Data flows through the application using an in-memory H2 database by default, with options for MySQL or PostgreSQL for persistent storage.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
| Configuration Item | Description |
|
||||||
|
|-----------------------------|-----------------------------------------------------------------------------|
|
||||||
|
| `spring.profiles.active` | Sets the active profile (`mysql`, `postgres`, or default `h2`). |
|
||||||
|
| `k6/test-configmap` | ConfigMap for k6 load testing (`k6-test-petclinic-argo-doc`). |
|
||||||
|
| `k6/test-namespace` | Namespace for k6 tests (`demo-apps`). |
|
||||||
|
| `chaos-mesh/enabled` | Enables Chaos Mesh for chaos experiments (`true`). |
|
||||||
|
| `grafana/dashboard-selector` | Selector for Grafana dashboards (`uid == 'otel-app-observability-v2'`). |
|
||||||
|
|
||||||
|
## Operations
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
```bash
|
||||||
|
git clone https://gitea.kyndemo.live/validate/petclinic-argo-doc.git
|
||||||
|
cd petclinic-argo-doc
|
||||||
|
```
|
||||||
|
2. Make changes and push:
|
||||||
|
```bash
|
||||||
|
git add . && git commit -m "your change" && git push origin main
|
||||||
|
```
|
||||||
|
3. ArgoCD will automatically sync changes to the `demo-apps` namespace.
|
||||||
|
|
||||||
|
### Rollback
|
||||||
|
|
||||||
|
1. Open the [ArgoCD UI](https://argocd.kyndemo.live/applications/petclinic-argo-doc).
|
||||||
|
2. Click **History and Rollback**.
|
||||||
|
3. Select the desired revision and click **Rollback**.
|
||||||
|
|
||||||
|
Alternatively, revert the commit in Git and push — ArgoCD will auto-sync the rollback.
|
||||||
|
|
||||||
|
## Observability
|
||||||
|
|
||||||
|
This service is fully instrumented with OpenTelemetry. Observability features include:
|
||||||
|
|
||||||
|
- **Grafana Dashboard**: [View Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-argo-doc)
|
||||||
|
- **Alerting**: Alerts are configured in Grafana and can be filtered by `app=petclinic-argo-doc`.
|
||||||
|
- **OTel Collector Endpoint**: `http://otel-collector.monitoring.svc.cluster.local:4318`
|
||||||
|
|
||||||
|
_Additional observability details can be found in the platform observability documentation._
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- `component:default/argocd-service`
|
||||||
|
- `resource:default/k6-operator`
|
||||||
|
- `resource:default/otel-collector`
|
||||||
|
- `resource:default/veterinary-platform`
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [Live Application](https://petclinic-argo-doc.kyndemo.live)
|
||||||
|
- [Repository](https://gitea.kyndemo.live/validate/petclinic-argo-doc)
|
||||||
|
- [ArgoCD App](https://argocd.kyndemo.live/applications/petclinic-argo-doc)
|
||||||
|
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-argo-doc)
|
||||||
12
catalog/component/default/petclinic-argo-doc/_meta.json
Normal file
12
catalog/component/default/petclinic-argo-doc/_meta.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"sourceShas": {
|
||||||
|
"catalog-info.yaml": "586b5ecff098a3a746c23e87a9d234513ae13e8b",
|
||||||
|
"README.md": "ef9b745ac26efecf8340b75eea18b8151ba7a86e",
|
||||||
|
"docs/adr/index.md": "5672a7b1dfe92a2575152cdaeb01b447c8616288",
|
||||||
|
"docs/index.md": "e616ef832396cf7283ebed71f0a9ab7bb919e8ab",
|
||||||
|
"docs/runbooks/index.md": "52e30a9d4507ec6159c6ea8800341c4c18816ad7"
|
||||||
|
},
|
||||||
|
"promptVersion": "1.0",
|
||||||
|
"generatedAt": "2026-06-08T16:22:53+00:00",
|
||||||
|
"contentHash": "0d14ed6c390b032af7ca93aff5729d1b0f737598354c88dfda33e43674824e56"
|
||||||
|
}
|
||||||
90
catalog/component/default/petclinic-demo-andrej4/README.md
Normal file
90
catalog/component/default/petclinic-demo-andrej4/README.md
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
---
|
||||||
|
title: "Petclinic Demo Application"
|
||||||
|
generated_by: documentor-agent
|
||||||
|
generated_at: "2026-05-28T09:07:15+00:00"
|
||||||
|
human_edited: false
|
||||||
|
source_entity: "Component/default/petclinic-demo-andrej4"
|
||||||
|
source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-andrej4"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The **Petclinic Demo Application** is a deployment of the Spring PetClinic sample application, tailored for demonstration purposes. It showcases a modern Java-based microservice architecture, leveraging Spring Boot for rapid development and deployment. The application is deployed via ArgoCD into the `demo-apps` namespace and includes integrations for observability, load testing, and chaos engineering.
|
||||||
|
|
||||||
|
This service plays a critical role in demonstrating best practices for application lifecycle management, including CI/CD workflows, OpenTelemetry instrumentation, and Kubernetes-based deployments. It serves as a reference implementation for teams adopting similar technologies and workflows.
|
||||||
|
|
||||||
|
## Repository
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------------|---------------------------------------------------------------------------------------------------------|
|
||||||
|
| **Source Repo**| [Petclinic Demo Repository](https://gitea.kyndemo.live/validate/petclinic-demo-andrej4) |
|
||||||
|
| **Branch** | `main` |
|
||||||
|
| **ArgoCD App** | [petclinic-demo-andrej4](https://argocd.kyndemo.live/applications/petclinic-demo-andrej4) |
|
||||||
|
| **Namespace** | `demo-apps` |
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
The Petclinic Demo Application is built on the Spring Boot framework and deployed as a containerized service in Kubernetes. Key architectural components include:
|
||||||
|
|
||||||
|
- **Spring Boot Application**: The core service, providing RESTful APIs and a web interface.
|
||||||
|
- **Database**: Configurable to use H2 (in-memory), MySQL, or PostgreSQL, depending on the active profile.
|
||||||
|
- **OpenTelemetry Integration**: Auto-instrumentation for tracing, metrics, and logs, exported to an OTel Collector.
|
||||||
|
- **ArgoCD**: Continuous deployment and synchronization from the `main` branch.
|
||||||
|
- **K6 Load Testing**: Configured for performance testing.
|
||||||
|
- **Chaos Mesh**: Enabled for chaos engineering experiments.
|
||||||
|
|
||||||
|
Data flows through the application from user interactions to backend services, with observability tools providing insights into performance and reliability.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
| Configuration Item | Description |
|
||||||
|
|--------------------------|----------------------------------------------------------------------------------------------|
|
||||||
|
| `spring.profiles.active` | Sets the active profile (`default`, `mysql`, `postgres`). |
|
||||||
|
| `OTel Collector URL` | `http://otel-collector.monitoring.svc.cluster.local:4318` |
|
||||||
|
| `Database URL` | Configurable for H2, MySQL, or PostgreSQL. |
|
||||||
|
| `K6 ConfigMap` | `k6-test-petclinic-demo-andrej4` |
|
||||||
|
|
||||||
|
## Operations
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
```bash
|
||||||
|
git clone https://gitea.kyndemo.live/validate/petclinic-demo-andrej4.git
|
||||||
|
cd petclinic-demo-andrej4
|
||||||
|
```
|
||||||
|
2. Push changes to the `main` branch:
|
||||||
|
```bash
|
||||||
|
git add . && git commit -m "your change" && git push origin main
|
||||||
|
```
|
||||||
|
3. ArgoCD will automatically sync changes to the `demo-apps` namespace.
|
||||||
|
|
||||||
|
### Rollback
|
||||||
|
|
||||||
|
1. Open the [ArgoCD UI](https://argocd.kyndemo.live/applications/petclinic-demo-andrej4).
|
||||||
|
2. Click **History and Rollback**.
|
||||||
|
3. Select the desired revision and click **Rollback**.
|
||||||
|
|
||||||
|
Alternatively, revert the commit in Git and push — ArgoCD will auto-sync the rollback.
|
||||||
|
|
||||||
|
## Observability
|
||||||
|
|
||||||
|
This service is fully instrumented with OpenTelemetry. Observability data is visualized in Grafana.
|
||||||
|
|
||||||
|
- **Grafana Dashboard**: [View Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-demo-andrej4)
|
||||||
|
- **Alerting**: Configured via Grafana with label selector `app.kubernetes.io/instance=petclinic-demo-andrej4`.
|
||||||
|
|
||||||
|
_Not configured — see platform observability docs for additional details._
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- `component:default/argocd-service`
|
||||||
|
- `resource:default/k6-operator`
|
||||||
|
- `resource:default/otel-collector`
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [Live Application](https://petclinic-demo-andrej4.kyndemo.live)
|
||||||
|
- [Repository](https://gitea.kyndemo.live/validate/petclinic-demo-andrej4)
|
||||||
|
- [ArgoCD App](https://argocd.kyndemo.live/applications/petclinic-demo-andrej4)
|
||||||
|
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-demo-andrej4)
|
||||||
12
catalog/component/default/petclinic-demo-andrej4/_meta.json
Normal file
12
catalog/component/default/petclinic-demo-andrej4/_meta.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"sourceShas": {
|
||||||
|
"catalog-info.yaml": "7f8e08e4d71a45033f49d9190e35fd08ebbb7645",
|
||||||
|
"README.md": "ef9b745ac26efecf8340b75eea18b8151ba7a86e",
|
||||||
|
"docs/adr/index.md": "b9a0b93743cf579be35101bbc63b29356be2849f",
|
||||||
|
"docs/index.md": "f7bef9b17f650992e3a89fbecf37eb0ea948b8e0",
|
||||||
|
"docs/runbooks/index.md": "f9796c4d1a113b786df89cd74dee0f50d98d6025"
|
||||||
|
},
|
||||||
|
"promptVersion": "1.0",
|
||||||
|
"generatedAt": "2026-05-28T09:07:25+00:00",
|
||||||
|
"contentHash": "625799bc84a8ff7004d26604e1d76286e95b9a3617abf6c014146a04202ff719"
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: "Petclinic Demo Jonathan Scaf 2"
|
title: "Petclinic Demo Jonathan Scaf 2"
|
||||||
generated_by: documentor-agent
|
generated_by: documentor-agent
|
||||||
generated_at: "2026-05-05T10:06:28+00:00"
|
generated_at: "2026-05-05T11:02:41+00:00"
|
||||||
human_edited: false
|
human_edited: false
|
||||||
source_entity: "Component/default/petclinic-demo-jonathan-scaf-2"
|
source_entity: "Component/default/petclinic-demo-jonathan-scaf-2"
|
||||||
source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2"
|
source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2"
|
||||||
@@ -9,67 +9,61 @@ source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2
|
|||||||
|
|
||||||
# Petclinic Demo Jonathan Scaf 2
|
# Petclinic Demo Jonathan Scaf 2
|
||||||
|
|
||||||
> A deployment of the Spring PetClinic application, scaffolded via Backstage and managed with ArgoCD in the `demo-apps` namespace.
|
> A Spring Boot–based veterinary clinic application deployed via ArgoCD into the demo-apps namespace.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
Petclinic Demo Jonathan Scaf 2 is a deployment of the Spring PetClinic application, a sample Spring Boot project designed to showcase best practices in Java application development. This service was scaffolded using the Backstage Application Migration Factory template and integrates OpenTelemetry for observability, K6 for load testing, and Chaos Mesh for chaos engineering.
|
Petclinic Demo Jonathan Scaf 2 is a deployment of the Spring PetClinic application, a sample project showcasing Spring Boot capabilities. This service provides a web-based interface for managing veterinary clinic operations, including scheduling appointments, managing pet records, and tracking visits. It is designed to demonstrate modern application deployment practices, including GitOps workflows, OpenTelemetry instrumentation, and integration with Kubernetes.
|
||||||
|
|
||||||
The application provides a web interface for managing veterinary clinics, including features for scheduling appointments, managing pet records, and tracking clinic staff. It is deployed via ArgoCD, which continuously syncs the application from the `main` branch of its source repository into the `demo-apps` namespace.
|
The application is scaffolded using the Backstage Application Migration Factory template, which overlays CI/CD workflows and observability configurations. It is continuously deployed via ArgoCD, ensuring that changes pushed to the repository are automatically synced to the Kubernetes cluster.
|
||||||
|
|
||||||
This deployment is instrumented for monitoring and observability, with metrics and traces visualized in Grafana. It also supports rollback and automated sync workflows through ArgoCD.
|
|
||||||
|
|
||||||
## Repository
|
## Repository
|
||||||
|
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Source Repo | [https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2](https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2) |
|
| Source Repo | [Petclinic Demo Jonathan Scaf 2](https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2) |
|
||||||
| Branch | main |
|
| Branch | main |
|
||||||
| ArgoCD App | petclinic-demo-jonathan-scaf-2 |
|
| ArgoCD App | petclinic-demo-jonathan-scaf-2 |
|
||||||
| Namespace | demo-apps |
|
| Namespace | demo-apps |
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
- The application is based on the Spring PetClinic project, cloned from [https://github.com/spring-projects/spring-petclinic](https://github.com/spring-projects/spring-petclinic).
|
- The application is based on the Spring PetClinic project, cloned from `https://github.com/spring-projects/spring-petclinic`.
|
||||||
- OpenTelemetry auto-instrumentation is applied via Kustomize overlays, enabling detailed observability.
|
- OpenTelemetry auto-instrumentation is applied via Kustomize overlays, enabling detailed observability for traces, metrics, and logs.
|
||||||
- ArgoCD manages the deployment, continuously syncing changes from the `main` branch to the `demo-apps` namespace.
|
- ArgoCD manages the deployment, continuously syncing changes from the `main` branch to the `demo-apps` namespace.
|
||||||
- The deployment flow includes CI workflows, Backstage catalog entity creation, and integration with monitoring tools like Grafana.
|
- The deployment flow includes CI workflows, Kubernetes manifests, and observability configurations integrated into the repository.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
| Configuration | Description |
|
| Configuration | Description |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `spring.profiles.active` | Specifies the active Spring profile (`mysql`, `postgres`, or default `h2`). |
|
| `spring.profiles.active` | Specifies the active Spring profile (`mysql`, `postgres`, or default `h2`). |
|
||||||
| Database | Default is H2 in-memory; supports MySQL and PostgreSQL with Docker or Docker Compose. |
|
| Database URLs | `jdbc:h2:mem:<uuid>` for H2, or Docker-based MySQL/PostgreSQL configurations. |
|
||||||
| OpenTelemetry | Auto-instrumentation enabled; traces exported to OTel Collector. |
|
| OpenTelemetry Endpoint | `http://otel-collector.monitoring.svc.cluster.local:4318` |
|
||||||
|
|
||||||
## Operations
|
## Operations
|
||||||
|
|
||||||
### Development Workflow
|
- **Development Workflow**:
|
||||||
|
```bash
|
||||||
|
git clone https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2.git
|
||||||
|
cd petclinic-demo-jonathan-scaf-2
|
||||||
|
# make changes, then:
|
||||||
|
git add . && git commit -m "your change" && git push origin main
|
||||||
|
```
|
||||||
|
ArgoCD automatically syncs changes to the `demo-apps` namespace.
|
||||||
|
|
||||||
```bash
|
- **Rollback**:
|
||||||
git clone https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2.git
|
1. Open the [ArgoCD UI](https://argocd.kyndemo.live/applications/petclinic-demo-jonathan-scaf-2).
|
||||||
cd petclinic-demo-jonathan-scaf-2
|
2. Click **History and Rollback**.
|
||||||
# make changes, then:
|
3. Select the desired revision and click **Rollback**.
|
||||||
git add . && git commit -m "your change" && git push origin main
|
Alternatively, revert the commit in Git and push — ArgoCD will auto-sync the rollback.
|
||||||
```
|
|
||||||
|
|
||||||
ArgoCD monitors the repository and automatically syncs changes to the `demo-apps` namespace.
|
<!-- TODO: FILL IN -->
|
||||||
|
|
||||||
### Rollback
|
|
||||||
|
|
||||||
1. Open the [ArgoCD UI](https://argocd.kyndemo.live/applications/petclinic-demo-jonathan-scaf-2).
|
|
||||||
2. Click **History and Rollback**.
|
|
||||||
3. Select the desired revision and click **Rollback**.
|
|
||||||
|
|
||||||
Alternatively, revert the commit in Git and push — ArgoCD will auto-sync the rollback.
|
|
||||||
|
|
||||||
## Observability
|
## Observability
|
||||||
|
|
||||||
- **Grafana Dashboard**: [https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-demo-jonathan-scaf-2](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-demo-jonathan-scaf-2)
|
- **Grafana Dashboard**: [OpenTelemetry Application Observability](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-demo-jonathan-scaf-2)
|
||||||
- **OTel Collector Endpoint**: `http://otel-collector.monitoring.svc.cluster.local:4318`
|
- **Alerting**: Configured via Grafana with label selector `app.kubernetes.io/instance=petclinic-demo-jonathan-scaf-2`.
|
||||||
|
|
||||||
Traces, metrics, and logs are exported to the OTel Collector and visualized in Grafana. Alerts are configured via Grafana and can be monitored in Backstage.
|
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
|
|||||||
@@ -1,56 +1,58 @@
|
|||||||
---
|
---
|
||||||
title: "Petclinic"
|
title: "Petclinic Service"
|
||||||
generated_by: documentor-agent
|
generated_by: documentor-agent
|
||||||
generated_at: "2026-05-05T10:06:42+00:00"
|
generated_at: "2026-06-08T16:23:20+00:00"
|
||||||
human_edited: false
|
human_edited: false
|
||||||
source_entity: "Component/default/petclinic"
|
source_entity: "Component/default/petclinic"
|
||||||
source_repo: "https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2"
|
source_repo: "https://gitea.kyndemo.live/validate/petclinic"
|
||||||
---
|
---
|
||||||
|
|
||||||
# Petclinic
|
|
||||||
|
|
||||||
> A Spring Boot–based application for managing veterinary clinic operations, including scheduling, customer management, and pet records.
|
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
The Petclinic service is a Java-based application built using Spring Boot. It provides a comprehensive solution for managing veterinary clinic operations, including scheduling appointments, managing customer and pet records, and handling clinic workflows. The application is designed to be lightweight and easily deployable, with support for in-memory databases (H2) and external databases like MySQL and PostgreSQL.
|
The Petclinic service is a Spring Boot application designed to manage veterinary clinic operations, including scheduling appointments, managing pet records, and handling customer information. It serves as a foundational component of the broader Petclinic system, providing essential business logic and data management capabilities.
|
||||||
|
|
||||||
This service is part of the broader `petclinic-demo-jonathan-scaf-2` system and has been scaffolded using the Backstage Application Migration Factory template. It includes OpenTelemetry instrumentation for observability and integrates with ArgoCD for continuous deployment. The application is suitable for development and experimental environments, with a focus on showcasing Spring Boot capabilities and providing a foundation for further customization.
|
This service is deployed in the `demo-apps` namespace and managed via ArgoCD. It integrates with OpenTelemetry for observability, supports load testing via k6, and includes chaos engineering capabilities through Chaos Mesh. The application is built using Java 17 and can be run locally or deployed in containerized environments.
|
||||||
|
|
||||||
## Repository
|
## Repository
|
||||||
|
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
|---|---|
|
|----------------|-----------------------------------------------------------------------------------------------------------------|
|
||||||
| Source Repo | [Petclinic Repository](https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2) |
|
| **Source Repo**| [Petclinic Repository](https://gitea.kyndemo.live/validate/petclinic) |
|
||||||
| Branch | main |
|
| **Branch** | `main` |
|
||||||
| ArgoCD App | petclinic-demo-jonathan-scaf-2 |
|
| **ArgoCD App** | [petclinic](https://argocd.kyndemo.live/applications/petclinic) |
|
||||||
| Namespace | demo-apps |
|
| **Namespace** | `demo-apps` |
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
- The Petclinic service is deployed using ArgoCD, targeting the `demo-apps` namespace.
|
The Petclinic service is a Spring Boot application that communicates with an in-memory H2 database by default. It supports integration with MySQL and PostgreSQL for persistent storage, configurable via Spring profiles. The service is instrumented with OpenTelemetry for tracing and metrics, and its deployment is managed by ArgoCD, ensuring continuous synchronization with the source repository.
|
||||||
- OpenTelemetry auto-instrumentation is applied via Kustomize overlays, enabling detailed observability for traces, metrics, and logs.
|
|
||||||
- The application uses Spring Boot for rapid development and deployment, with support for both in-memory and external databases.
|
Key architectural components:
|
||||||
- Continuous integration and deployment workflows are managed through Backstage and ArgoCD, ensuring seamless updates and rollbacks.
|
- **Spring Boot Framework**: Provides the application runtime and dependency management.
|
||||||
|
- **Database Options**: Default H2 database, with optional MySQL or PostgreSQL configurations.
|
||||||
|
- **Observability**: OpenTelemetry instrumentation for metrics, traces, and logs.
|
||||||
|
- **Deployment**: Managed via ArgoCD in the `demo-apps` namespace.
|
||||||
|
|
||||||
|
<!-- TODO: FILL IN -->
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
| Configuration | Description |
|
| Configuration Option | Description |
|
||||||
|---|---|
|
|----------------------------|-------------------------------------------------------------------------------------------------|
|
||||||
| `spring.profiles.active` | Specifies the active Spring profile (`mysql`, `postgres`, or default `h2`). |
|
| `spring.profiles.active` | Sets the active Spring profile (`mysql`, `postgres`, or default for H2). |
|
||||||
| Database URLs | `jdbc:h2:mem:<uuid>` for H2, or external database URLs for MySQL/PostgreSQL. |
|
| `MYSQL_USER` | MySQL username for database connection. |
|
||||||
| Environment Variables | Used for database credentials when running MySQL/PostgreSQL containers. |
|
| `MYSQL_PASSWORD` | MySQL password for database connection. |
|
||||||
|
| `POSTGRES_USER` | PostgreSQL username for database connection. |
|
||||||
|
| `POSTGRES_PASSWORD` | PostgreSQL password for database connection. |
|
||||||
|
|
||||||
## Operations
|
## Operations
|
||||||
|
|
||||||
### Local Development
|
### Running Locally
|
||||||
|
|
||||||
1. Clone the repository:
|
1. Clone the repository:
|
||||||
```bash
|
```bash
|
||||||
git clone https://gitea.kyndemo.live/validate/petclinic-demo-jonathan-scaf-2.git
|
git clone https://gitea.kyndemo.live/validate/petclinic.git
|
||||||
cd petclinic-demo-jonathan-scaf-2
|
cd petclinic
|
||||||
```
|
```
|
||||||
2. Run the application:
|
2. Start the application:
|
||||||
- Using Maven:
|
- Using Maven:
|
||||||
```bash
|
```bash
|
||||||
./mvnw spring-boot:run
|
./mvnw spring-boot:run
|
||||||
@@ -61,25 +63,44 @@ This service is part of the broader `petclinic-demo-jonathan-scaf-2` system and
|
|||||||
```
|
```
|
||||||
3. Access the application at [http://localhost:8080](http://localhost:8080).
|
3. Access the application at [http://localhost:8080](http://localhost:8080).
|
||||||
|
|
||||||
### Deployment
|
### Container Deployment
|
||||||
|
1. Build the container image:
|
||||||
|
```bash
|
||||||
|
./mvnw spring-boot:build-image
|
||||||
|
```
|
||||||
|
2. Run the container:
|
||||||
|
```bash
|
||||||
|
docker run -p 8080:8080 docker.io/library/spring-petclinic:latest
|
||||||
|
```
|
||||||
|
|
||||||
ArgoCD monitors the repository and automatically syncs changes to the `demo-apps` namespace. To roll back to a previous version:
|
### Database Configuration
|
||||||
1. Open the [ArgoCD UI](https://argocd.kyndemo.live/applications/petclinic-demo-jonathan-scaf-2).
|
- Default: In-memory H2 database.
|
||||||
2. Click **History and Rollback**.
|
- MySQL:
|
||||||
3. Select the desired revision and click **Rollback**.
|
```bash
|
||||||
|
docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:9.6
|
||||||
Alternatively, revert the commit in Git and push — ArgoCD will auto-sync the rollback.
|
```
|
||||||
|
- PostgreSQL:
|
||||||
|
```bash
|
||||||
|
docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:18.3
|
||||||
|
```
|
||||||
|
|
||||||
## Observability
|
## Observability
|
||||||
|
|
||||||
- **Grafana Dashboard**: [OpenTelemetry Application Observability](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-service=petclinic)
|
The Petclinic service is fully instrumented with OpenTelemetry for observability. Metrics, traces, and logs are exported to the OTel Collector and visualized in Grafana.
|
||||||
- **OTel Collector Endpoint**: `http://otel-collector.monitoring.svc.cluster.local:4318`
|
|
||||||
|
|
||||||
This service is fully instrumented with OpenTelemetry, providing detailed insights into application performance and health. Alerts and metrics can be monitored via Grafana.
|
- **Grafana Dashboard**: [Petclinic Observability](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-service=petclinic)
|
||||||
|
- **Alerting**: Configured via Grafana with label selector `app=petclinic`.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
- `component:default/argocd-service`
|
- `component:default/argocd-service`
|
||||||
- `resource:default/k6-operator`
|
- `resource:default/k6-operator`
|
||||||
- `resource:default/otel-collector`
|
- `resource:default/otel-collector`
|
||||||
- `resource:default/veterinary-platform`
|
- `resource:default/veterinary-platform`
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [Live Application](https://petclinic.kyndemo.live)
|
||||||
|
- [Repository](https://gitea.kyndemo.live/validate/petclinic)
|
||||||
|
- [ArgoCD App](https://argocd.kyndemo.live/applications/petclinic)
|
||||||
|
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-service=petclinic)
|
||||||
12
catalog/component/default/petclinic/_meta.json
Normal file
12
catalog/component/default/petclinic/_meta.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"sourceShas": {
|
||||||
|
"catalog-info.yaml": "586b5ecff098a3a746c23e87a9d234513ae13e8b",
|
||||||
|
"README.md": "ef9b745ac26efecf8340b75eea18b8151ba7a86e",
|
||||||
|
"docs/adr/index.md": "5672a7b1dfe92a2575152cdaeb01b447c8616288",
|
||||||
|
"docs/index.md": "e616ef832396cf7283ebed71f0a9ab7bb919e8ab",
|
||||||
|
"docs/runbooks/index.md": "52e30a9d4507ec6159c6ea8800341c4c18816ad7"
|
||||||
|
},
|
||||||
|
"promptVersion": "1.0",
|
||||||
|
"generatedAt": "2026-06-08T16:23:32+00:00",
|
||||||
|
"contentHash": "a8718f85b0735a2c24e944370da8c7f87641596f3d381667a8406ecb8a353b17"
|
||||||
|
}
|
||||||
79
catalog/component/default/sonar-test-nest4/README.md
Normal file
79
catalog/component/default/sonar-test-nest4/README.md
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
---
|
||||||
|
title: "sonar-test-nest4"
|
||||||
|
generated_by: documentor-agent
|
||||||
|
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"
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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 endpoints for CRUD operations. It is designed to be lightweight, scalable, and observable, with integrated OpenTelemetry instrumentation and Prometheus metrics.
|
||||||
|
|
||||||
|
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 | [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 with the following components:
|
||||||
|
|
||||||
|
- **Runtime**: `typescript-nestjs`
|
||||||
|
- **Container Port**: `3000`
|
||||||
|
- **Endpoints**:
|
||||||
|
- `/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 options are managed via `.platform/config.yaml` and Humanitec score files.
|
||||||
|
|
||||||
|
## Operations
|
||||||
|
|
||||||
|
### Deployment Flow
|
||||||
|
|
||||||
|
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 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` on port `3000`.
|
||||||
|
|
||||||
|
## 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"
|
||||||
|
}
|
||||||
@@ -1,44 +1,33 @@
|
|||||||
```markdown
|
|
||||||
---
|
---
|
||||||
title: "Platform"
|
title: "Platform"
|
||||||
generated_by: documentor-agent
|
generated_by: documentor-agent
|
||||||
generated_at: "2026-05-05T10:06:41+00:00"
|
generated_at: "2026-05-28T12:04:59+00:00"
|
||||||
human_edited: false
|
human_edited: false
|
||||||
source_entity: "Domain/default/platform"
|
source_entity: "Domain/default/platform"
|
||||||
---
|
---
|
||||||
|
|
||||||
# Platform
|
|
||||||
|
|
||||||
> Platform domain for platform engineering capabilities and tooling.
|
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
The Platform domain serves as the central hub for platform engineering capabilities and tooling within the organization. It encompasses systems and tools that enable efficient development, deployment, and management of software across the organization. This domain is designed to provide foundational services and frameworks that support the broader engineering ecosystem.
|
The Platform domain encompasses platform engineering capabilities and tooling. It serves as the foundation for enabling teams to build, deploy, and manage applications efficiently. This domain focuses on providing shared services, infrastructure, and tools that streamline development workflows and enhance operational reliability.
|
||||||
|
|
||||||
The systems within this domain are critical for ensuring scalability, reliability, and developer productivity. By consolidating platform-related resources and expertise, the Platform domain helps streamline operations and fosters innovation.
|
By centralizing platform engineering efforts, this domain ensures consistency, scalability, and alignment across various systems and teams. It is a critical component for driving innovation and maintaining high standards in software delivery.
|
||||||
|
|
||||||
## Ownership
|
## Ownership
|
||||||
|
|
||||||
| Field | Value |
|
| Owner | Namespace | Labels |
|
||||||
|---|---|
|
|--------------------------------|-----------|--------|
|
||||||
| Owner | group:default/platform-engineering |
|
| group:default/platform-engineering | default | — |
|
||||||
| Namespace | default |
|
|
||||||
| Labels | — |
|
## Systems
|
||||||
|
|
||||||
|
- `system:default/agentic-agents`
|
||||||
|
- `system:default/cjot-backstage`
|
||||||
|
- `system:default/platform-engineering`
|
||||||
|
|
||||||
## Relationships
|
## Relationships
|
||||||
|
|
||||||
The Platform domain includes the following systems:
|
<!-- TODO: FILL IN -->
|
||||||
|
|
||||||
- **Agentic Agents** (`system:default/agentic-agents`)
|
|
||||||
- **CJOT Backstage** (`system:default/cjot-backstage`)
|
|
||||||
- **Petclinic Demo Jonathan Scaf 2** (`system:default/petclinic-demo-jonathan-scaf-2`)
|
|
||||||
- **Platform Engineering** (`system:default/platform-engineering`)
|
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
_No links configured._
|
_No links configured._
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
Platform domain for platform engineering capabilities and tooling.
|
|
||||||
```
|
|
||||||
53
catalog/system/default/petclinic-argo-doc/README.md
Normal file
53
catalog/system/default/petclinic-argo-doc/README.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
title: "Petclinic Argo Documentation System"
|
||||||
|
generated_by: documentor-agent
|
||||||
|
generated_at: "2026-06-08T16:22:23+00:00"
|
||||||
|
human_edited: false
|
||||||
|
source_entity: "System/default/petclinic-argo-doc"
|
||||||
|
source_repo: "https://gitea.kyndemo.live/validate/petclinic-argo-doc"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The **Petclinic Argo Documentation System** is a deployment system managed via ArgoCD, designed to support the **demo-apps** namespace. It integrates observability tools like OpenTelemetry and Grafana, along with load testing capabilities using K6 and chaos engineering via Chaos Mesh. This system is part of the broader **apps** domain and serves as a foundational platform for deploying and managing services such as **petclinic**, **demo-db**, and other related components.
|
||||||
|
|
||||||
|
The system is owned by the **platform-engineering** team and is configured to ensure high reliability and performance for applications deployed in the **demo-apps** namespace. It leverages Kubernetes for orchestration and includes monitoring and alerting capabilities to maintain operational excellence.
|
||||||
|
|
||||||
|
## Ownership
|
||||||
|
|
||||||
|
| Owner | Domain | Namespace | Labels |
|
||||||
|
|----------------------|--------|-----------|-------------------------------------|
|
||||||
|
| platform-engineering | apps | default | backstage.io/environment: dev<br>app.kubernetes.io/managed-by: backstage |
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
- **petclinic-argo-doc**: The main service deployed via ArgoCD.
|
||||||
|
- **demo-db**: A database service that is part of the system.
|
||||||
|
- **petclinic**: A Java-based service included in the system.
|
||||||
|
|
||||||
|
## APIs
|
||||||
|
|
||||||
|
_No APIs declared._
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- **k6-operator**: Load testing operator for K6.
|
||||||
|
- **otel-collector**: OpenTelemetry collector for observability.
|
||||||
|
- **otel-operator**: OpenTelemetry operator for managing observability configurations.
|
||||||
|
- **veterinary-platform**: A resource supporting the petclinic ecosystem.
|
||||||
|
|
||||||
|
## Relationships
|
||||||
|
|
||||||
|
- **Depends On**:
|
||||||
|
- **argocd-service**: A service for managing ArgoCD deployments.
|
||||||
|
- **k6-operator**: For load testing.
|
||||||
|
- **otel-collector**: For observability data collection.
|
||||||
|
- **otel-operator**: For managing observability configurations.
|
||||||
|
- **veterinary-platform**: Supporting resources for the petclinic ecosystem.
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [Live Application](https://petclinic-argo-doc.kyndemo.live)
|
||||||
|
- [Repository](https://gitea.kyndemo.live/validate/petclinic-argo-doc)
|
||||||
|
- [ArgoCD App](https://argocd.kyndemo.live/applications/petclinic-argo-doc)
|
||||||
|
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=petclinic-argo-doc)
|
||||||
8
catalog/system/default/petclinic-argo-doc/_meta.json
Normal file
8
catalog/system/default/petclinic-argo-doc/_meta.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"sourceShas": {
|
||||||
|
"catalog-info.yaml": "586b5ecff098a3a746c23e87a9d234513ae13e8b"
|
||||||
|
},
|
||||||
|
"promptVersion": "1.0",
|
||||||
|
"generatedAt": "2026-06-08T16:22:32+00:00",
|
||||||
|
"contentHash": "0038c5f87e64150770719113186bd41d0f4cddbd4680475dd1ffa3a27cfed250"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user