apiVersion: score.dev/v1b1 metadata: name: reno-test-14 labels: app: reno-test-14 containers: main: 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: "reno-test-14" OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.monitoring.svc.cluster.local:4318" OTEL_EXPORTER_OTLP_PROTOCOL: "http/protobuf" OTEL_RESOURCE_ATTRIBUTES: "service.name=reno-test-14" OTEL_METRICS_EXPORTER: "otlp" OTEL_TRACES_EXPORTER: "otlp" OTEL_LOGS_EXPORTER: "none" service: ports: web: port: 80 targetPort: 8080 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: reno-test-14 hostname: reno-test-14.apps.dev.crucible.kyndemo.live service_name: reno-test-14 service_port: 80