[ { "metadata": { "name": "spring-boot-demo-navi-service-secret", "namespace": "dev", "annotations": {}, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "v1", "data": {}, "kind": "Secret", "type": "Opaque" }, { "metadata": { "name": "spring-boot-demo-navi-service", "namespace": "dev", "annotations": { "status": "active" }, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1", "controller-tools.k8s.io": "1.0" } }, "apiVersion": "autoscaling.alibabacloud.com/v1beta1", "kind": "CronHorizontalPodAutoscaler", "spec": { "jobs": [ { "schedule": "58 17 * * *", "targetSize": 2, "name": "ScaleUp" }, { "schedule": "d d d d d", "targetSize": 2, "name": "ScaleDown" } ], "deploymentName": "spring-boot-demo-navi-service", "scaleTargetRef": { "apiVersion": "apps/v1", "kind": "Deployment", "name": "spring-boot-demo-navi-service" } } }, { "metadata": { "name": "spring-boot-demo-navi-service", "namespace": "dev", "annotations": {}, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "autoscaling.k8s.io/v1", "kind": "VerticalPodAutoscaler", "spec": { "targetRef": { "apiVersion": "apps/v1", "kind": "Deployment", "name": "spring-boot-demo-navi-service" }, "resourcePolicy": { "containerPolicies": [ { "maxAllowed": { "memory": "16Gi", "cpu": "7200m" }, "containerName": "spring-boot-demo-navi-service", "minAllowed": { "memory": "1024Mi", "cpu": "500m" }, "controlledResources": [ "cpu", "memory" ] }, { "mode": "Off", "containerName": "*" } ] } } }, { "metadata": { "name": "dev-spring-boot-demo-external-pingpath", "namespace": "dev", "annotations": { "konghq.com/plugins": "dev-spring-boot-demo-pingpath-ur,dev-spring-boot-demo-external-pingpath-ipr,dev-spring-boot-demo-external-pingpath-ea", "external-dns.alpha.kubernetes.io/exclude": "true" }, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "gateway-resource-identifier": "dev-spring-boot-demo-pingpath", "Name": "dev-spring-boot-demo-external-pingpath", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "networking.k8s.io/v1", "kind": "Ingress", "spec": { "ingressClassName": "kong-external", "rules": [ { "host": "dev-external-gateway.np.navi-tech.in", "http": { "paths": [ { "path": "/ping/{id}", "backend": { "service": { "port": { "number": 8080 }, "name": "spring-boot-demo-navi-service" } }, "pathType": "ImplementationSpecific" } ] } } ] } }, { "metadata": { "name": "dev-spring-boot-demo-external-servererror", "namespace": "dev", "annotations": { "konghq.com/plugins": "dev-spring-boot-demo-servererror-ur", "external-dns.alpha.kubernetes.io/exclude": "true" }, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "gateway-resource-identifier": "dev-spring-boot-demo-servererror", "Name": "dev-spring-boot-demo-external-servererror", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "networking.k8s.io/v1", "kind": "Ingress", "spec": { "ingressClassName": "kong-external", "rules": [ { "host": "dev-external-gateway.np.navi-tech.in", "http": { "paths": [ { "path": "/serverError/{temp}/test", "backend": { "service": { "port": { "number": 8080 }, "name": "spring-boot-demo-navi-service" } }, "pathType": "ImplementationSpecific" } ] } } ] } }, { "metadata": { "name": "dev-spring-boot-demo-internal-pingpath", "namespace": "dev", "annotations": { "konghq.com/plugins": "dev-spring-boot-demo-pingpath-ur", "external-dns.alpha.kubernetes.io/exclude": "true" }, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "gateway-resource-identifier": "dev-spring-boot-demo-pingpath", "Name": "dev-spring-boot-demo-internal-pingpath", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "networking.k8s.io/v1", "kind": "Ingress", "spec": { "ingressClassName": "kong-internal", "rules": [ { "host": "dev-internal-gateway.np.navi-tech.in", "http": { "paths": [ { "path": "/ping/{id}", "backend": { "service": { "port": { "number": 8080 }, "name": "spring-boot-demo-navi-service" } }, "pathType": "ImplementationSpecific" } ] } } ] } }, { "metadata": { "name": "dev-spring-boot-demo-internal-servererror", "namespace": "dev", "annotations": { "konghq.com/plugins": "dev-spring-boot-demo-servererror-ur", "external-dns.alpha.kubernetes.io/exclude": "true" }, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "gateway-resource-identifier": "dev-spring-boot-demo-servererror", "Name": "dev-spring-boot-demo-internal-servererror", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "networking.k8s.io/v1", "kind": "Ingress", "spec": { "ingressClassName": "kong-internal", "rules": [ { "host": "dev-internal-gateway.np.navi-tech.in", "http": { "paths": [ { "path": "/serverError/{temp}/test", "backend": { "service": { "port": { "number": 8080 }, "name": "spring-boot-demo-navi-service" } }, "pathType": "ImplementationSpecific" } ] } } ] } }, { "metadata": { "name": "dev-spring-boot-demo-pingpath-ur", "namespace": "dev", "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "gateway-resource-identifier": "dev-spring-boot-demo-pingpath", "Name": "dev-spring-boot-demo-pingpath-ur", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "configuration.konghq.com/v1", "plugin": "request-transformer", "kind": "KongPlugin", "config": { "replace": { "uri": "/ping" } } }, { "metadata": { "name": "dev-spring-boot-demo-servererror-ur", "namespace": "dev", "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "gateway-resource-identifier": "dev-spring-boot-demo-servererror", "Name": "dev-spring-boot-demo-servererror-ur", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "configuration.konghq.com/v1", "plugin": "request-transformer", "kind": "KongPlugin", "config": { "replace": { "uri": "/serverError/{temp}" } } }, { "metadata": { "name": "dev-spring-boot-demo-external-pingpath-ipr", "namespace": "dev", "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "gateway-resource-identifier": "dev-spring-boot-demo-pingpath", "Name": "dev-spring-boot-demo-external-pingpath-ipr", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "configuration.konghq.com/v1", "plugin": "ip-restriction", "kind": "KongPlugin", "config": { "allow": [ "103.215.237.13/32" ] } }, { "metadata": { "name": "dev-spring-boot-demo-external-pingpath-ea", "namespace": "dev", "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "gateway-resource-identifier": "dev-spring-boot-demo-external-pingpath", "Name": "dev-spring-boot-demo-external-pingpath-ea", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "configuration.konghq.com/v1", "plugin": "external-auth", "kind": "KongPlugin", "config": { "url": "dummyUrl" } }, { "metadata": { "name": "spring-boot-demo-navi-service-network-policy", "namespace": "dev", "annotations": {}, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "cilium.io/v2", "kind": "CiliumNetworkPolicy", "spec": { "endpointSelector": { "matchLabels": { "app": "navi-service", "release": "spring-boot-demo" } }, "egress": [ { "toPorts": [ { "rules": { "dns": [ { "matchPattern": "*" } ] }, "ports": [ { "protocol": "ANY", "port": "53" } ] } ] }, { "toEndpoints": [ { "matchLabels": { "app": "istiod", "k8s:io.kubernetes.pod.namespace": "istio-system" } } ] }, { "toEndpoints": [ { "matchLabels": { "k8s:io.kubernetes.pod.namespace": "apm", "app.kubernetes.io/component": "opentelemetry-collector" } } ] } ] } }, { "metadata": { "name": "spring-boot-demo-navi-service", "namespace": "dev", "annotations": { "alb.ingress.kubernetes.io/healthcheck-path": "/actuator/health", "alb.ingress.kubernetes.io/tags": "Environment=dev,Owner=medici,Name=spring-boot-demo-navi-service,Team=Infra,Namespace=dev", "alb.ingress.kubernetes.io/healthcheck-port": "4001" }, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "v1", "kind": "Service", "spec": { "selector": { "app": "navi-service", "release": "spring-boot-demo" }, "ports": [ { "protocol": "TCP", "port": 4001, "name": "metrics", "targetPort": 4001 }, { "protocol": "TCP", "port": 8080, "name": "serviceport", "targetPort": 8080 } ], "type": "ClusterIP" } }, { "metadata": { "name": "spring-boot-demo-navi-service", "namespace": "dev", "annotations": {}, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "linkConfig": "false", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "apps/v1", "kind": "Deployment", "spec": { "template": { "metadata": { "annotations": { "instrumentation.opentelemetry.io/container-names": "spring-boot-demo-navi-service", "sidecar.istio.io/inject": "false", "instrumentation.opentelemetry.io/inject-java": "apm/instrumentation" }, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "spec": { "terminationGracePeriodSeconds": 60, "tolerations": [], "dnsConfig": { "options": [ { "name": "ndots", "value": "2" } ] }, "volumes": [], "containers": [ { "lifecycle": { "preStop": { "exec": { "command": [ "sleep", "30" ] } } }, "image": "193044292705.dkr.ecr.ap-south-1.amazonaws.com/medici/spring-boot-demo:v174e616b0eee46fa2181c08de0510fdda892d055", "imagePullPolicy": "IfNotPresent", "livenessProbe": { "failureThreshold": 5, "periodSeconds": 30, "successThreshold": 1, "initialDelaySeconds": 0, "httpGet": { "path": "/actuator/health", "port": 4001, "httpHeaders": [] } }, "name": "spring-boot-demo-navi-service", "readinessProbe": { "failureThreshold": 5, "periodSeconds": 30, "tcpSocket": { "port": 8080 }, "successThreshold": 1, "initialDelaySeconds": 0 }, "resources": { "requests": { "memory": "1024Mi", "cpu": 0.5 }, "limits": { "memory": "1024Mi" } }, "startupProbe": { "failureThreshold": 30, "periodSeconds": 10, "successThreshold": 1, "initialDelaySeconds": 0, "httpGet": { "path": "/actuator/health", "port": 4001, "httpHeaders": [] } }, "env": [ { "name": "secretMd5", "value": "fa9497f5acccafcc3e6019657bdc5eb1" } ], "ports": [ { "protocol": "TCP", "containerPort": 4001 }, { "protocol": "TCP", "containerPort": 8080 } ], "envFrom": [ { "secretRef": { "name": "spring-boot-demo-navi-service-secret" } } ], "volumeMounts": [] } ], "nodeSelector": {} } }, "selector": { "matchLabels": { "app": "navi-service", "release": "spring-boot-demo" } }, "strategy": { "type": "RollingUpdate", "rollingUpdate": { "maxSurge": "51%", "maxUnavailable": 0 } }, "progressDeadlineSeconds": 720 } }, { "metadata": { "name": "spring-boot-demo-navi-service-sharedalb", "namespace": "dev", "annotations": { "alb.ingress.kubernetes.io/group.order": "100", "alb.ingress.kubernetes.io/target-type": "ip", "alb.ingress.kubernetes.io/actions.ssl-redirect": "{\"Type\": \"redirect\", \"RedirectConfig\": { \"Protocol\": \"HTTPS\", \"Port\": \"443\", \"StatusCode\": \"HTTP_301\"}}", "alb.ingress.kubernetes.io/group.name": "dev-internal", "alb.ingress.kubernetes.io/target-group-attributes": "", "alb.ingress.kubernetes.io/ssl-policy": "ELBSecurityPolicy-TLS-1-2-2017-01", "alb.ingress.kubernetes.io/listen-ports": "[{ \"HTTPS\": 443 },{\"HTTP\": 80}]", "alb.ingress.kubernetes.io/certificate-arn": "arn:aws:acm:ap-south-1:571315076762:certificate/a19c398a-639b-45ca-b885-4cf6002a16dc", "kubernetes.io/ingress.class": "alb" }, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "networking.k8s.io/v1", "kind": "Ingress", "spec": { "rules": [ { "host": "spring-boot-demo.np.navi-tech.in", "http": { "paths": [ { "path": "/*", "backend": { "service": { "port": { "name": "use-annotation" }, "name": "ssl-redirect" } }, "pathType": "ImplementationSpecific" }, { "backend": { "service": { "port": { "number": 8080 }, "name": "spring-boot-demo-navi-service" } }, "pathType": "ImplementationSpecific" } ] } } ] } }, { "metadata": { "name": "spring-boot-demo-navi-service-pdb", "namespace": "dev", "annotations": {}, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "policy/v1", "kind": "PodDisruptionBudget", "spec": { "maxUnavailable": "15%", "selector": { "matchLabels": { "app": "navi-service", "release": "spring-boot-demo" } } } }, { "metadata": { "name": "spring-boot-demo-navi-service-monitor", "namespace": "dev", "annotations": {}, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "monitoring.coreos.com/v1", "kind": "ServiceMonitor", "spec": { "sampleLimit": 20000, "endpoints": [ { "path": "/actuator/prometheus", "scrapeTimeout": "10s", "port": "serviceport", "metricRelabelings": [], "interval": "30s", "honorLabels": false } ], "namespaceSelector": { "matchNames": [ "dev" ] }, "selector": { "matchLabels": { "app": "navi-service", "release": "spring-boot-demo" } } } }, { "metadata": { "name": "spring-boot-demo-navi-service", "namespace": "dev", "annotations": {}, "labels": { "app": "navi-service", "Owner": "medici", "role": "alert-rules", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "prometheus": "kube-prometheus", "chart": "navi-service-0.0.1" } }, "apiVersion": "monitoring.coreos.com/v1", "kind": "PrometheusRule", "spec": { "groups": [ { "name": "spring-boot-demo-navi-service-basic", "rules": [ { "alert": "HighPodRestarts", "annotations": { "summary": "High Pod Restarts", "description": "Namespace: dev, AppName: spring-boot-demo-navi-service; Pod restarted multiple times", "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert" }, "expr": "sum(increase(kube_pod_container_status_restarts_total{namespace=\"dev\", pod=~\"spring-boot-demo-navi-service.*\"}[30m])) by (reason, pod, namespace) > 3", "labels": { "severity": "critical", "enrichment": "true", "appName": "spring-boot-demo-navi-service", "namespace": "dev", "alertTeam": "Infra" } }, { "alert": "HighPodFailures", "annotations": { "summary": "High Pod Failures", "description": "Namespace: dev, AppName: spring-boot-demo-navi-service; Pods were last terminated due to reason {{ $labels.reason }}", "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert" }, "expr": "sum(increase(kube_pod_container_status_last_terminated_reason{namespace=\"dev\", container=~\"spring-boot-demo-navi-service.*\",reason !~ \"Completed|Evicted|OOMKilled\"}[3h])) by (reason, pod, namespace) > 2", "labels": { "severity": "warning", "enrichment": "true", "appName": "spring-boot-demo-navi-service", "namespace": "dev", "alertTeam": "Infra" } }, { "alert": "FrequentPodOOMKilled", "annotations": { "summary": "High Pod Failures", "description": "Namespace: dev, AppName: spring-boot-demo-navi-service; Pod: {{ $labels.pod }} is restarting multiple times because of OOMKilled", "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert" }, "expr": "increase(kube_pod_container_status_restarts_total{namespace=\"dev\", container=\"spring-boot-demo-navi-service\",pod=~\"spring-boot-demo-navi-service.*\"}[10m]) >= 2 AND ignoring(reason) kube_pod_container_status_last_terminated_reason{namespace=\"dev\", container=\"spring-boot-demo-navi-service\", reason=\"OOMKilled\"} > 0", "labels": { "severity": "critical", "enrichment": "true", "appName": "spring-boot-demo-navi-service", "namespace": "dev", "alertTeam": "Infra" } }, { "alert": "PodOOMKilled", "annotations": { "summary": "Pod OOMKilled", "description": "Namespace: dev, AppName: spring-boot-demo-navi-service; Pod: {{ $labels.pod }} killed because of OOMKilled", "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert" }, "expr": "kube_pod_container_status_restarts_total{namespace=\"dev\", container=\"spring-boot-demo-navi-service\"} - kube_pod_container_status_restarts_total{namespace=\"dev\", container=\"spring-boot-demo-navi-service\"} offset 5m >= 1 AND ignoring(reason) kube_pod_container_status_last_terminated_reason{namespace=\"dev\", container=\"spring-boot-demo-navi-service\", reason=\"OOMKilled\"} > 0", "labels": { "severity": "warning", "enrichment": "true", "appName": "spring-boot-demo-navi-service", "namespace": "dev", "alertTeam": "Infra" } }, { "alert": "KubeContainerWaiting", "for": "1h", "annotations": { "summary": "container is waiting for too long", "description": "Namespace: dev, AppName: spring-boot-demo-navi-service; container in waiting state for one hour", "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert" }, "expr": "sum by (namespace, pod, container) (kube_pod_container_status_waiting_reason{container=\"spring-boot-demo-navi-service\", namespace=\"dev\"}) > 0", "labels": { "severity": "critical", "enrichment": "true", "appName": "spring-boot-demo-navi-service", "namespace": "dev", "alertTeam": "Infra" } }, { "alert": "ReplicaUnavailableAlert", "for": "15m", "annotations": { "summary": "Low desired replica count", "description": "Namespace: dev, AppName: spring-boot-demo-navi-service; Not enough instances available since past 15m", "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert" }, "expr": "(kube_deployment_status_replicas_available{deployment=\"spring-boot-demo-navi-service\", namespace=\"dev\"}) - ignoring(poddisruptionbudget, deployment) (kube_poddisruptionbudget_status_desired_healthy{poddisruptionbudget=\"spring-boot-demo-navi-service-pdb\",namespace=\"dev\"}) < 0", "labels": { "severity": "critical", "appName": "spring-boot-demo-navi-service", "namespace": "dev", "alertTeam": "Infra" } }, { "alert": "VPAUncappedTargetGreaterThanCappedTarget", "for": "1m", "annotations": { "summary": "Uncapped target is more than bounds, this means your service is requires lot more resources than what node may have", "description": "Uncapped target is more than bounds Namespace:dev; App:spring-boot-demo-navi-service; " }, "expr": "kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget{container=\"spring-boot-demo-navi-service\"} / kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target{container=\"spring-boot-demo-navi-service\"} > 1", "labels": { "severity": "warning", "appName": "spring-boot-demo-navi-service", "namespace": "dev", "alertTeam": "Infra" } } ] } ] } }, { "metadata": { "name": "spring-boot-demo-navi-service", "namespace": "dev", "annotations": { "status": "inactive" }, "labels": { "app": "navi-service", "Owner": "medici", "release": "spring-boot-demo", "repo": "navi-medici_spring-boot-demo-service", "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", "Name": "spring-boot-demo", "micrometer-prometheus": "disabled", "serviceCriticality": "tier-1", "Environment": "dev", "Team": "Infra", "chart": "navi-service-0.0.1" } }, "apiVersion": "autoscaling/v2", "kind": "HorizontalPodAutoscaler", "spec": { "maxReplicas": 2, "minReplicas": 2, "metrics": [], "scaleTargetRef": { "apiVersion": "apps/v1", "kind": "Deployment", "name": "disabled" } } } ]