feat: modernize application — source, platform artifacts, CI/CD

- chore: ingest source code

112 files from https://github.com/spring-projects/spring-petclinic
- feat: add platform deployment artifacts
- feat: add CI/CD workflow automation
This commit is contained in:
2026-08-13 14:34:11 +00:00
parent c6e45ac1dd
commit 45ff0c3cb6
14 changed files with 866 additions and 575 deletions

View File

@@ -1,55 +1,36 @@
apiVersion: score.dev/v1b1
metadata:
name: pclinic-andrej-demo2
labels:
app: pclinic-andrej-demo2
containers:
main:
pclinic-andrej-demo2:
image: .
variables:
# The Watcher's OTel work lands in overlays/otel/, which only ArgoCD reads. On the
# orchestrator path nothing consumes that overlay, so without these variables the
# renovated app emits no telemetry at all and never appears in Grafana.
OTEL_SERVICE_NAME: "pclinic-andrej-demo2"
OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.monitoring.svc.cluster.local:4318"
OTEL_EXPORTER_OTLP_PROTOCOL: "http/protobuf"
OTEL_RESOURCE_ATTRIBUTES: "service.name=pclinic-andrej-demo2"
OTEL_METRICS_EXPORTER: "otlp"
OTEL_TRACES_EXPORTER: "otlp"
OTEL_LOGS_EXPORTER: "none"
service:
ports:
web:
port: 80
targetPort: 8080
OTEL_SERVICE_NAME: pclinic-andrej-demo2
OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector.monitoring.svc.cluster.local:4318
OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf
OTEL_RESOURCE_ATTRIBUTES: service.name=pclinic-andrej-demo2,app=pclinic-andrej-demo2
OTEL_METRICS_EXPORTER: otlp
OTEL_TRACES_EXPORTER: otlp
OTEL_LOGS_EXPORTER: none
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: '8080'
prometheus.io/scrape: 'true'
labels:
app: pclinic-andrej-demo2
backstage.io/kubernetes-id: pclinic-andrej-demo2
name: pclinic-andrej-demo2
resources:
env:
type: environment
# Gives the renovated workload a public HTTPS URL. Without this the deploy still goes
# green and the pod still runs -- there is simply no Ingress, no certificate and no
# hostname, so the demo's payoff (curl the renovated app) has nothing to hit.
#
# hostname is hardcoded to the apps domain deliberately: it is the only domain the apps
# cluster serves, and both the wildcard A record (*.apps.dev) and the cert-manager
# ClusterIssuer are scoped to exactly it.
#
# service_port is the Score `service.ports.web.port` below (80), NOT the container port.
# An Ingress naming a Service or port that does not exist fails at neither plan nor
# apply -- it surfaces only as nginx answering 503.
#
# CAVEAT: modernization-factory's generate_score_yaml rewrites BOTH `port` and
# `targetPort` to the detected application port whenever that port is not 8080. An app
# on 3000 therefore ends up with a Service on 3000 and this Ingress pointing at a port
# that no longer exists. Apps already listening on 8080 (Spring PetClinic among them)
# skip that patch entirely and are unaffected.
ingress:
type: workload-ingress
params:
name: pclinic-andrej-demo2
hostname: pclinic-andrej-demo2.apps.dev.crucible.kyndemo.live
name: pclinic-andrej-demo2
service_name: pclinic-andrej-demo2
service_port: 80
service_port: 8080
type: workload-ingress
service:
ports:
http:
port: 8080
targetPort: 8080