Files
deployment-portal-be/test.json
2024-11-13 20:42:24 +05:30

1070 lines
34 KiB
JSON

[
{
"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"
}
}
}
]