Files
platform-docs/catalog/component/default/petclinic-argo-doc/README.md

5.1 KiB

title, generated_by, generated_at, human_edited, source_entity, source_repo
title generated_by generated_at human_edited source_entity source_repo
Petclinic Argo Documentation documentor-agent 2026-06-08T16:22:39+00:00 false Component/default/petclinic-argo-doc 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
Branch main
ArgoCD App 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 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:
    git clone https://gitea.kyndemo.live/validate/petclinic-argo-doc.git
    cd petclinic-argo-doc
    
  2. Make changes and push:
    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.
  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
  • 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