diff --git a/catalog/component/default/petclinic-demo-andrej4/README.md b/catalog/component/default/petclinic-demo-andrej4/README.md new file mode 100644 index 0000000..d17c1b3 --- /dev/null +++ b/catalog/component/default/petclinic-demo-andrej4/README.md @@ -0,0 +1,90 @@ +--- +title: "Petclinic Demo Application" +generated_by: documentor-agent +generated_at: "2026-05-28T08:57:53+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 microservice architecture with observability, load testing, and chaos engineering capabilities integrated. The application is deployed via ArgoCD into the `demo-apps` namespace and includes OpenTelemetry instrumentation for comprehensive monitoring. + +This service is part of the broader **petclinic-demo-andrej4** system, which includes additional components such as a database service and supporting infrastructure. It serves as a reference implementation for Java-based applications using Spring Boot, demonstrating best practices in CI/CD, containerization, and runtime observability. + +## 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. Key architectural elements include: + +- **Source Code**: Derived from the Spring PetClinic repository, with additional overlays for observability and deployment. +- **Deployment**: Managed by ArgoCD, which continuously syncs the application from the `main` branch to the `demo-apps` namespace. +- **Observability**: OpenTelemetry instrumentation is integrated, exporting traces, metrics, and logs to a centralized OTel Collector. +- **Load Testing**: K6 is enabled for performance testing, targeting the frontend service. +- **Chaos Engineering**: Chaos Mesh is configured to simulate failure scenarios and validate system resilience. + +Data flows through the application, starting from user interactions with the frontend, which communicates with backend services and the database. Observability data is collected and visualized in Grafana. + +## Configuration + +| Configuration Item | Description | +|-----------------------------|---------------------------------------------------------------------------------------------| +| `spring.profiles.active` | Specifies the active Spring profile (`mysql`, `postgres`, or default `h2`). | +| `k6/test-configmap` | ConfigMap for K6 load testing (`k6-test-petclinic-demo-andrej4`). | +| `k6/test-namespace` | Namespace for K6 tests (`demo-apps`). | +| `chaos-mesh/enabled` | Enables Chaos Mesh for chaos engineering (`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-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**: Alerts are configured in Grafana and can be filtered by `app=petclinic-demo-andrej4`. + +_Additional observability details can be found in the platform observability documentation._ + +## 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) \ No newline at end of file