diff --git a/src/test/resources/fixtures/kube_objects/kube_object_test_perf.json b/src/test/resources/fixtures/kube_objects/kube_object_test_perf.json index 7a07ddab..86b6912d 100644 --- a/src/test/resources/fixtures/kube_objects/kube_object_test_perf.json +++ b/src/test/resources/fixtures/kube_objects/kube_object_test_perf.json @@ -1,348 +1,140 @@ { + "namespace": "perf", "cluster": "nonprod.np.navi-tech.in", "kubeObject": { "apiVersion": "v1", "items": [ { - "apiVersion": "v1", - "data": { - }, - "kind": "Secret", "metadata": { + "name": "test-perf-navi-service-secret", + "namespace": "perf", "annotations": { - "janitor/ttl": "48h" + "janitor\/ttl": "48h" }, "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf", "Owner": "medici", - "Product": "lending", "release": "test-perf", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-navi-service-secret", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "v1", + "data": {}, + "kind": "Secret", "type": "Opaque" }, { - "apiVersion": "apps/v1", - "kind": "Deployment", "metadata": { - "annotations": { - "janitor/ttl": "48h" - }, + "name": "test-perf-postgres-secret", + "namespace": "perf", "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", + "Owner": "medici", + "release": "test-perf-postgres-server", + "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", "heritage": "NaviDeploymentManifest", "language": "Java", + "ttl": "48h", + "Name": "test-perf-postgres-server", "micrometer-prometheus": "enabled", - "Name": "test-perf-mock-server", - "Owner": "medici", - "Product": "lending", - "release": "test-perf-mock-server", - "repo": "navi-infra_deployment-portal-backend", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-mock-server", - "namespace": "perf" - }, - "spec": { - "progressDeadlineSeconds": 1500, - "selector": { - "matchLabels": { - "app": "navi-service", - "release": "test-perf-mock-server" - } - }, - "template": { - "metadata": { - "labels": { - "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-mock-server", - "Owner": "medici", - "Product": "lending", - "release": "test-perf-mock-server", - "repo": "navi-infra_deployment-portal-backend", - "Team": "Infra", - "ttl": "48h" - } - }, - "spec": { - "containers": [ - { - "image": "193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/perf-mock-server:latest", - "imagePullPolicy": "IfNotPresent", - "name": "mock-server", - "resources": { - "limits": { - "cpu": "1", - "memory": "2Gi" - }, - "requests": { - "cpu": "1", - "memory": "2Gi" - } - } - } - ] - } + "chart": "navi-service-0.0.1" } - } - }, - { - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "labels": { - "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-mock-server", - "Owner": "medici", - "Product": "lending", - "release": "test-perf-mock-server", - "repo": "navi-infra_deployment-portal-backend", - "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-mock-server", - "namespace": "perf" }, - "spec": { - "ports": [ - { - "name": "service-port", - "port": 1080, - "protocol": "TCP", - "targetPort": 1080 - } - ], - "selector": { - "app": "navi-service", - "release": "test-perf-mock-server" - }, - "type": "ClusterIP" - } - }, - { - "apiVersion": "networking.k8s.io/v1", - "kind": "Ingress", - "metadata": { - "annotations": { - "alb.ingress.kubernetes.io/actions.ssl-redirect": "{\"Type\": \"redirect\", \"RedirectConfig\": { \"Protocol\": \"HTTPS\", \"Port\": \"443\", \"StatusCode\": \"HTTP_301\"}}", - "alb.ingress.kubernetes.io/certificate-arn": "arn:aws:acm:ap-south-1:571315076762:certificate/a19c398a-639b-45ca-b885-4cf6002a16dc", - "alb.ingress.kubernetes.io/group.name": "perf-internal", - "alb.ingress.kubernetes.io/listen-ports": "[{ \"HTTPS\": 443 },{\"HTTP\": 80}]", - "alb.ingress.kubernetes.io/scheme": "internal", - "alb.ingress.kubernetes.io/subnets": "internal-lb-ap-south-1a.nonprod.np.navi-tech.in,internal-lb-ap-south-1b.nonprod.np.navi-tech.in", - "alb.ingress.kubernetes.io/target-type": "ip", - "kubernetes.io/ingress.class": "alb" - }, - "name": "test-perf-mock-server", - "namespace": "perf" - }, - "spec": { - "rules": [ - { - "host": "test-perf-perf-mock.np.navi-tech.in", - "http": { - "paths": [ - { - "backend": { - "service": { - "name": "ssl-redirect", - "port": { - "name": "use-annotation" - } - } - }, - "path": "/*", - "pathType": "ImplementationSpecific" - }, - { - "backend": { - "service": { - "name": "test-perf-mock-server", - "port": { - "number": 1080 - } - } - }, - "pathType": "ImplementationSpecific" - } - ] - } - } - ] - } - }, - { "apiVersion": "v1", "data": { "password": "cG9zdGdyZXNwZXJmcGFzc3dvcmQK" }, "kind": "Secret", - "metadata": { - "labels": { - "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-postgres-server", - "Owner": "medici", - "Product": "lending", - "release": "test-perf-postgres-server", - "repo": "navi-infra_deployment-portal-backend", - "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-postgres-secret", - "namespace": "perf" - }, "type": "Opaque" }, { - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", "metadata": { + "name": "test-perf-postgres-storage", + "namespace": "perf", "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-postgres-server", "Owner": "medici", - "Product": "lending", "release": "test-perf-postgres-server", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf-postgres-server", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-postgres-storage", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", "spec": { - "accessModes": [ - "ReadWriteOnce" - ], + "storageClassName": "gp2", "resources": { "requests": { "storage": "2Gi" } }, - "storageClassName": "gp2" + "accessModes": [ + "ReadWriteOnce" + ] } }, { - "apiVersion": "apps/v1", - "kind": "Deployment", "metadata": { + "name": "test-perf-postgres-server", + "namespace": "perf", "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-postgres-server", "Owner": "medici", - "Product": "lending", "release": "test-perf-postgres-server", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf-postgres-server", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-postgres-server", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "apps\/v1", + "kind": "Deployment", "spec": { - "progressDeadlineSeconds": 1500, - "selector": { - "matchLabels": { - "app": "navi-service", - "release": "test-perf-postgres-server" - } - }, "template": { "metadata": { "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-postgres-server", "Owner": "medici", - "Product": "lending", "release": "test-perf-postgres-server", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf-postgres-server", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" + "chart": "navi-service-0.0.1" } }, "spec": { - "containers": [ - { - "env": [ - { - "name": "POSTGRES_PASSWORD", - "valueFrom": { - "secretKeyRef": { - "key": "password", - "name": "test-perf-postgres-secret" - } - } - }, - { - "name": "PGDATA", - "value": "/var/lib/postgresql/data/pgdata" - } - ], - "image": "193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/postgres:13", - "imagePullPolicy": "IfNotPresent", - "name": "postgres", - "resources": { - "limits": { - "cpu": 0.2, - "memory": "512Mi" - }, - "requests": { - "cpu": 0.2, - "memory": "512Mi" - } - }, - "volumeMounts": [ - { - "mountPath": "/var/lib/postgresql/data", - "name": "test-perf-postgres-storage" - } - ] - } - ], "volumes": [ { "name": "test-perf-postgres-storage", @@ -350,176 +142,224 @@ "claimName": "test-perf-postgres-storage" } } + ], + "containers": [ + { + "image": "193044292705.dkr.ecr.ap-south-1.amazonaws.com\/common\/postgres:13", + "imagePullPolicy": "IfNotPresent", + "name": "postgres", + "resources": { + "requests": { + "memory": "512Mi", + "cpu": 0.2 + }, + "limits": { + "memory": "512Mi", + "cpu": 0.2 + } + }, + "env": [ + { + "name": "POSTGRES_PASSWORD", + "valueFrom": { + "secretKeyRef": { + "name": "test-perf-postgres-secret", + "key": "password" + } + } + }, + { + "name": "PGDATA", + "value": "\/var\/lib\/postgresql\/data\/pgdata" + } + ], + "volumeMounts": [ + { + "mountPath": "\/var\/lib\/postgresql\/data", + "name": "test-perf-postgres-storage" + } + ] + } ] } - } + }, + "selector": { + "matchLabels": { + "app": "navi-service", + "release": "test-perf-postgres-server" + } + }, + "strategy": { + "type": "Recreate" + }, + "progressDeadlineSeconds": 1500 } }, { - "apiVersion": "v1", - "kind": "Service", "metadata": { + "name": "test-perf-postgres-server", + "namespace": "perf", "annotations": { - "external-dns.alpha.kubernetes.io/hostname": "test-perf-perf-postgres.np.navi-tech.in", - "service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags": "Environment=perf,Owner=medici,Name=test-perf,Team=Infra,Product=lending", - "service.beta.kubernetes.io/aws-load-balancer-internal": "True" + "service.beta.kubernetes.io\/aws-load-balancer-additional-resource-tags": "Environment=perf,Owner=medici,Name=test-perf,Team=Infra,Product=lending", + "service.beta.kubernetes.io\/aws-load-balancer-internal": "True", + "external-dns.alpha.kubernetes.io\/hostname": "test-perf-perf-postgres.np.navi-tech.in" }, "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-postgres-server", "Owner": "medici", - "Product": "lending", "release": "test-perf-postgres-server", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf-postgres-server", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-postgres-server", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "v1", + "kind": "Service", "spec": { - "ports": [ - { - "name": "service-port", - "port": 5432, - "protocol": "TCP", - "targetPort": 5432 - } - ], "selector": { "app": "navi-service", "release": "test-perf-postgres-server" }, + "ports": [ + { + "protocol": "TCP", + "port": 5432, + "name": "service-port", + "targetPort": 5432 + } + ], "type": "LoadBalancer" } }, { - "apiVersion": "apps/v1", - "kind": "Deployment", "metadata": { + "name": "test-perf-aws-server", + "namespace": "perf", "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-aws-server", "Owner": "medici", - "Product": "lending", "release": "test-perf-aws-server", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf-aws-server", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-aws-server", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "apps\/v1", + "kind": "Deployment", "spec": { - "selector": { - "matchLabels": { - "app": "navi-service", - "release": "test-perf-aws-server" - } - }, "template": { "metadata": { "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-aws-server", "Owner": "medici", - "Product": "lending", "release": "test-perf-aws-server", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf-aws-server", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" + "chart": "navi-service-0.0.1" } }, "spec": { "containers": [ { - "image": "193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/localstack:3.4.0", + "image": "193044292705.dkr.ecr.ap-south-1.amazonaws.com\/common\/localstack:3.4.0", "imagePullPolicy": "IfNotPresent", "name": "mock-aws-server", "resources": { "requests": { - "cpu": 1, - "memory": "1Gi" + "memory": "1Gi", + "cpu": 1 } } } ] } + }, + "selector": { + "matchLabels": { + "app": "navi-service", + "release": "test-perf-aws-server" + } } } }, { - "apiVersion": "v1", - "kind": "Service", "metadata": { + "name": "test-perf-aws-server", + "namespace": "perf", "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf-aws-server", "Owner": "medici", - "Product": "lending", "release": "test-perf-aws-server", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf-aws-server", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-aws-server", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "v1", + "kind": "Service", "spec": { - "ports": [ - { - "name": "service-port", - "port": 4566, - "protocol": "TCP", - "targetPort": 4566 - } - ], "selector": { "app": "navi-service", "release": "test-perf-aws-server" }, + "ports": [ + { + "protocol": "TCP", + "port": 4566, + "name": "service-port", + "targetPort": 4566 + } + ], "type": "ClusterIP" } }, { - "apiVersion": "networking.k8s.io/v1", - "kind": "Ingress", "metadata": { - "annotations": { - "alb.ingress.kubernetes.io/actions.ssl-redirect": "{\"Type\": \"redirect\", \"RedirectConfig\": { \"Protocol\": \"HTTPS\", \"Port\": \"443\", \"StatusCode\": \"HTTP_301\"}}", - "alb.ingress.kubernetes.io/certificate-arn": "arn:aws:acm:ap-south-1:571315076762:certificate/a19c398a-639b-45ca-b885-4cf6002a16dc", - "alb.ingress.kubernetes.io/group.name": "perf-internal", - "alb.ingress.kubernetes.io/listen-ports": "[{ \"HTTPS\": 443 },{\"HTTP\": 80}]", - "alb.ingress.kubernetes.io/load-balancer-attributes": "idle_timeout.timeout_seconds=60,access_logs.s3.enabled=true,access_logs.s3.bucket=navi-nonprod-lb-access-logs,access_logs.s3.prefix=perf-internal", - "alb.ingress.kubernetes.io/scheme": "internal", - "alb.ingress.kubernetes.io/ssl-policy": "ELBSecurityPolicy-TLS-1-2-2017-01", - "alb.ingress.kubernetes.io/subnets": "internal-lb-ap-south-1a.nonprod.np.navi-tech.in,internal-lb-ap-south-1b.nonprod.np.navi-tech.in", - "alb.ingress.kubernetes.io/target-type": "ip", - "kubernetes.io/ingress.class": "alb" - }, "name": "test-perf-aws-server", - "namespace": "perf" + "namespace": "perf", + "annotations": { + "alb.ingress.kubernetes.io\/scheme": "internal", + "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": "perf-internal", + "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\/subnets": "internal-lb-ap-south-1a.nonprod.np.navi-tech.in,internal-lb-ap-south-1b.nonprod.np.navi-tech.in", + "alb.ingress.kubernetes.io\/load-balancer-attributes": "idle_timeout.timeout_seconds=60,access_logs.s3.enabled=true,access_logs.s3.bucket=navi-nonprod-lb-access-logs,access_logs.s3.prefix=perf-internal", + "alb.ingress.kubernetes.io\/certificate-arn": "arn:aws:acm:ap-south-1:571315076762:certificate\/a19c398a-639b-45ca-b885-4cf6002a16dc", + "kubernetes.io\/ingress.class": "alb" + } }, + "apiVersion": "networking.k8s.io\/v1", + "kind": "Ingress", "spec": { "rules": [ { @@ -527,24 +367,24 @@ "http": { "paths": [ { + "path": "\/*", "backend": { "service": { - "name": "ssl-redirect", "port": { "name": "use-annotation" - } + }, + "name": "ssl-redirect" } }, - "path": "/*", "pathType": "ImplementationSpecific" }, { "backend": { "service": { - "name": "test-perf-aws-server", "port": { "number": 4566 - } + }, + "name": "test-perf-aws-server" } }, "pathType": "ImplementationSpecific" @@ -556,190 +396,171 @@ } }, { - "apiVersion": "autoscaling.k8s.io/v1", - "kind": "VerticalPodAutoscaler", "metadata": { + "name": "test-perf-navi-service", + "namespace": "perf", "annotations": { - "janitor/ttl": "48h" + "janitor\/ttl": "48h" }, "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf", "Owner": "medici", - "Product": "lending", "release": "test-perf", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-navi-service", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "autoscaling.k8s.io\/v1", + "kind": "VerticalPodAutoscaler", "spec": { + "targetRef": { + "apiVersion": "apps\/v1", + "kind": "Deployment", + "name": "test-perf-navi-service" + }, "resourcePolicy": { "containerPolicies": [ { + "maxAllowed": { + "memory": "16Gi", + "cpu": "7200m" + }, "containerName": "test-perf-navi-service", + "minAllowed": { + "memory": "512Mi", + "cpu": "500m" + }, "controlledResources": [ "cpu", "memory" - ], - "maxAllowed": { - "cpu": "7200m", - "memory": "16Gi" - }, - "minAllowed": { - "cpu": "500m", - "memory": "512Mi" - } + ] }, { - "containerName": "*", - "mode": "Off" + "mode": "Off", + "containerName": "*" } ] - }, - "targetRef": { - "apiVersion": "apps/v1", - "kind": "Deployment", - "name": "test-perf-navi-service" } } }, { - "apiVersion": "v1", - "kind": "Service", "metadata": { + "name": "test-perf-navi-service", + "namespace": "perf", "annotations": { - "janitor/ttl": "48h" + "janitor\/ttl": "48h" }, "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf", "Owner": "medici", - "Product": "lending", "release": "test-perf", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-navi-service", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "v1", + "kind": "Service", "spec": { - "ports": [ - { - "name": "metrics", - "port": 4001, - "protocol": "TCP", - "targetPort": 4001 - }, - { - "name": "serviceport", - "port": 8080, - "protocol": "TCP", - "targetPort": 8080 - } - ], "selector": { "app": "navi-service", "release": "test-perf" }, + "ports": [ + { + "protocol": "TCP", + "port": 4001, + "name": "metrics", + "targetPort": 4001 + }, + { + "protocol": "TCP", + "port": 8080, + "name": "serviceport", + "targetPort": 8080 + } + ], "type": "ClusterIP" } }, { - "apiVersion": "apps/v1", - "kind": "Deployment", "metadata": { + "name": "test-perf-navi-service", + "namespace": "perf", "annotations": { - "janitor/ttl": "48h" + "janitor\/ttl": "48h" }, "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "linkConfig": "false", - "micrometer-prometheus": "enabled", - "Name": "test-perf", "Owner": "medici", - "Product": "lending", "release": "test-perf", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf", + "linkConfig": "false", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-navi-service", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "apps\/v1", + "kind": "Deployment", "spec": { - "progressDeadlineSeconds": 720, - "selector": { - "matchLabels": { - "app": "navi-service", - "release": "test-perf" - } - }, - "strategy": { - "rollingUpdate": { - "maxSurge": "51%", - "maxUnavailable": 0 - }, - "type": "RollingUpdate" - }, "template": { "metadata": { "annotations": { - "janitor/ttl": "48h", - "traffic.sidecar.istio.io/excludeInboundPorts": "4001,8080", - "traffic.sidecar.istio.io/includeInboundPorts": "*" + "janitor\/ttl": "48h", + "traffic.sidecar.istio.io\/excludeInboundPorts": "4001,8080", + "traffic.sidecar.istio.io\/includeInboundPorts": "*" }, "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf", "Owner": "medici", - "Product": "lending", "release": "test-perf", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" + "chart": "navi-service-0.0.1" } }, "spec": { + "terminationGracePeriodSeconds": 60, + "dnsConfig": { + "options": [ + { + "name": "ndots", + "value": "2" + } + ] + }, + "volumes": [], "containers": [ { - "env": [ - { - "name": "secretMd5", - "value": "fa9497f5acccafcc3e6019657bdc5eb1" - } - ], - "envFrom": [ - { - "secretRef": { - "name": "test-perf-navi-service-secret" - } - } - ], - "image": "IMAGE", - "imagePullPolicy": "IfNotPresent", "lifecycle": { "preStop": { "exec": { @@ -750,104 +571,119 @@ } } }, + "image": "IMAGE", + "imagePullPolicy": "IfNotPresent", "livenessProbe": { "failureThreshold": 5, - "httpGet": { - "httpHeaders": [ - ], - "path": "/actuator/health", - "port": 4001 - }, - "initialDelaySeconds": 0, - "periodSeconds": 30, - "successThreshold": 1 - }, - "name": "test-perf-navi-service", - "ports": [ - { - "containerPort": 4001, - "protocol": "TCP" - }, - { - "containerPort": 8080, - "protocol": "TCP" - } - ], - "readinessProbe": { - "failureThreshold": 5, - "initialDelaySeconds": 0, "periodSeconds": 30, "successThreshold": 1, - "tcpSocket": { - "port": 8080 + "initialDelaySeconds": 0, + "httpGet": { + "path": "\/actuator\/health", + "port": 4001, + "httpHeaders": [] } }, - "resources": { - "limits": { - "cpu": 0.75, - "memory": "512Mi" + "name": "test-perf-navi-service", + "readinessProbe": { + "failureThreshold": 5, + "periodSeconds": 30, + "tcpSocket": { + "port": 8080 }, + "successThreshold": 1, + "initialDelaySeconds": 0 + }, + "resources": { "requests": { - "cpu": 0.5, - "memory": "512Mi" + "memory": "512Mi", + "cpu": 0.5 + }, + "limits": { + "memory": "512Mi", + "cpu": 0.75 } }, "startupProbe": { "failureThreshold": 30, - "httpGet": { - "httpHeaders": [ - ], - "path": "/actuator/health", - "port": 4001 - }, - "initialDelaySeconds": 0, "periodSeconds": 10, - "successThreshold": 1 + "successThreshold": 1, + "initialDelaySeconds": 0, + "httpGet": { + "path": "\/actuator\/health", + "port": 4001, + "httpHeaders": [] + } }, - "volumeMounts": [ - ] + "env": [ + { + "name": "secretMd5", + "value": "fa9497f5acccafcc3e6019657bdc5eb1" + } + ], + "ports": [ + { + "protocol": "TCP", + "containerPort": 4001 + }, + { + "protocol": "TCP", + "containerPort": 8080 + } + ], + "envFrom": [ + { + "secretRef": { + "name": "test-perf-navi-service-secret" + } + } + ], + "volumeMounts": [] } - ], - "dnsConfig": { - "options": [ - { - "name": "ndots", - "value": "2" - } - ] - }, - "terminationGracePeriodSeconds": 60, - "volumes": [ ] } - } + }, + "selector": { + "matchLabels": { + "app": "navi-service", + "release": "test-perf" + } + }, + "strategy": { + "type": "RollingUpdate", + "rollingUpdate": { + "maxSurge": "51%", + "maxUnavailable": 0 + } + }, + "progressDeadlineSeconds": 720 } }, { - "apiVersion": "policy/v1", - "kind": "PodDisruptionBudget", "metadata": { + "name": "test-perf-navi-service-pdb", + "namespace": "perf", "annotations": { - "janitor/ttl": "48h" + "janitor\/ttl": "48h" }, "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf", "Owner": "medici", - "Product": "lending", "release": "test-perf", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-navi-service-pdb", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "policy\/v1", + "kind": "PodDisruptionBudget", "spec": { "maxUnavailable": "15%", "selector": { @@ -859,32 +695,32 @@ } }, { - "apiVersion": "monitoring.coreos.com/v1", - "kind": "PrometheusRule", "metadata": { + "name": "test-perf-navi-service", + "namespace": "perf", "annotations": { - "janitor/ttl": "48h" + "janitor\/ttl": "48h" }, "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf", "Owner": "medici", - "Product": "lending", - "prometheus": "kube-prometheus", + "role": "alert-rules", "release": "test-perf", "repo": "navi-infra_deployment-portal-backend", - "role": "alert-rules", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-navi-service", - "namespace": "perf" + "prometheus": "kube-prometheus", + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "monitoring.coreos.com\/v1", + "kind": "PrometheusRule", "spec": { "groups": [ { @@ -893,101 +729,101 @@ { "alert": "HighPodRestarts", "annotations": { + "summary": "High Pod Restarts", "description": "Namespace: perf, AppName: test-perf-navi-service; Pod restarted multiple times", - "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert", - "summary": "High Pod Restarts" + "runbook": "https:\/\/navihq.atlassian.net\/wiki\/spaces\/IN\/pages\/279937094\/Act+On+Pod+Alert" }, "expr": "sum(increase(kube_pod_container_status_restarts_total{namespace=\"perf\", pod=~\"test-perf-navi-service.*\"}[30m])) > 3", "labels": { - "alertTeam": "Infra", + "severity": "critical", "appName": "test-perf-navi-service", - "severity": "critical" + "alertTeam": "Infra" } }, { "alert": "HighPodFailures", "annotations": { + "summary": "High Pod Failures", "description": "Namespace: perf, AppName: test-perf-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", - "summary": "High Pod Failures" + "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=\"perf\", container=~\"test-perf-navi-service.*\",reason !~ \"Completed|Evicted|OOMKilled\"}[3h])) by (reason,pod) > 2", "labels": { - "alertTeam": "Infra", + "severity": "warning", "appName": "test-perf-navi-service", - "severity": "warning" + "alertTeam": "Infra" } }, { "alert": "FrequentPodOOMKilled", "annotations": { + "summary": "High Pod Failures", "description": "Namespace: perf, AppName: test-perf-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", - "summary": "High Pod Failures" + "runbook": "https:\/\/navihq.atlassian.net\/wiki\/spaces\/IN\/pages\/279937094\/Act+On+Pod+Alert" }, "expr": "increase(kube_pod_container_status_restarts_total{namespace=\"perf\", container=\"test-perf-navi-service\"}[10m]) >= 2 AND ignoring(reason) kube_pod_container_status_last_terminated_reason{namespace=\"perf\", container=\"test-perf-navi-service\", reason=\"OOMKilled\"} > 0", "labels": { - "alertTeam": "Infra", + "severity": "critical", "appName": "test-perf-navi-service", - "severity": "critical" + "alertTeam": "Infra" } }, { "alert": "PodOOMKilled", "annotations": { + "summary": "Pod OOMKilled", "description": "Namespace: perf, AppName: test-perf-navi-service; Pod: {{ $labels.pod }} killed because of OOMKilled", - "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert", - "summary": "Pod OOMKilled" + "runbook": "https:\/\/navihq.atlassian.net\/wiki\/spaces\/IN\/pages\/279937094\/Act+On+Pod+Alert" }, "expr": "kube_pod_container_status_restarts_total{namespace=\"perf\", container=\"test-perf-navi-service\"} - kube_pod_container_status_restarts_total{namespace=\"perf\", container=\"test-perf-navi-service\"} offset 5m >= 1 AND ignoring(reason) kube_pod_container_status_last_terminated_reason{namespace=\"perf\", container=\"test-perf-navi-service\", reason=\"OOMKilled\"} > 0", "labels": { - "alertTeam": "Infra", + "severity": "warning", "appName": "test-perf-navi-service", - "severity": "warning" + "alertTeam": "Infra" } }, { "alert": "KubeContainerWaiting", + "for": "1h", "annotations": { + "summary": "container is waiting for too long", "description": "Namespace: perf, AppName: test-perf-navi-service; container in waiting state for one hour", - "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert", - "summary": "container is waiting for too long" + "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=\"test-perf-navi-service\", namespace=\"perf\"}) > 0", - "for": "1h", "labels": { - "alertTeam": "Infra", + "severity": "critical", "appName": "test-perf-navi-service", - "severity": "critical" + "alertTeam": "Infra" } }, { "alert": "ReplicaUnavailableAlert", + "for": "15m", "annotations": { + "summary": "Low desired replica count", "description": "Namespace: perf, AppName: test-perf-navi-service; Not enough instances available since past 15m", - "runbook": "https://navihq.atlassian.net/wiki/spaces/IN/pages/279937094/Act+On+Pod+Alert", - "summary": "Low desired replica count" + "runbook": "https:\/\/navihq.atlassian.net\/wiki\/spaces\/IN\/pages\/279937094\/Act+On+Pod+Alert" }, "expr": "(kube_deployment_status_replicas_available{deployment=\"test-perf-navi-service\", namespace=\"perf\"}) - ignoring(poddisruptionbudget, deployment) (kube_poddisruptionbudget_status_desired_healthy{poddisruptionbudget=\"test-perf-navi-service-pdb\",namespace=\"perf\"}) < 0", - "for": "15m", "labels": { - "alertTeam": "Infra", + "severity": "critical", "appName": "test-perf-navi-service", - "severity": "critical" + "alertTeam": "Infra" } }, { "alert": "VPAUncappedTargetGreaterThanCappedTarget", - "annotations": { - "description": "Uncapped target is more than bounds Namespace:perf; App:test-perf-navi-service; ", - "summary": "Uncapped target is more than bounds, this means your service is requires lot more resources than what node may have" - }, - "expr": "kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget{container=\"test-perf-navi-service\"} / kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target{container=\"test-perf-navi-service\"} > 1", "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:perf; App:test-perf-navi-service; " + }, + "expr": "kube_verticalpodautoscaler_status_recommendation_containerrecommendations_uncappedtarget{container=\"test-perf-navi-service\"} \/ kube_verticalpodautoscaler_status_recommendation_containerrecommendations_target{container=\"test-perf-navi-service\"} > 1", "labels": { - "alertTeam": "Infra", + "severity": "warning", "appName": "test-perf-navi-service", - "severity": "warning" + "alertTeam": "Infra" } } ] @@ -996,37 +832,36 @@ } }, { - "apiVersion": "autoscaling/v2", - "kind": "HorizontalPodAutoscaler", "metadata": { + "name": "test-perf-navi-service", + "namespace": "perf", "annotations": { - "janitor/ttl": "48h" + "janitor\/ttl": "48h" }, "labels": { "app": "navi-service", - "chart": "navi-service-0.0.1", - "Environment": "perf", - "heritage": "NaviDeploymentManifest", - "language": "Java", - "micrometer-prometheus": "enabled", - "Name": "test-perf", "Owner": "medici", - "Product": "lending", "release": "test-perf", "repo": "navi-infra_deployment-portal-backend", + "Product": "lending", + "heritage": "NaviDeploymentManifest", + "language": "Java", + "ttl": "48h", + "Name": "test-perf", + "micrometer-prometheus": "enabled", + "Environment": "perf", "Team": "Infra", - "ttl": "48h" - }, - "name": "test-perf-navi-service", - "namespace": "perf" + "chart": "navi-service-0.0.1" + } }, + "apiVersion": "autoscaling\/v2", + "kind": "HorizontalPodAutoscaler", "spec": { "maxReplicas": 2, - "metrics": [ - ], "minReplicas": 2, + "metrics": [], "scaleTargetRef": { - "apiVersion": "apps/v1", + "apiVersion": "apps\/v1", "kind": "Deployment", "name": "test-perf-navi-service" } @@ -1034,6 +869,5 @@ } ], "kind": "List" - }, - "namespace": "perf" + } } diff --git a/src/test/resources/fixtures/kube_objects/manifest_test_perf.json b/src/test/resources/fixtures/kube_objects/manifest_test_perf.json index 7a584915..bf9b1d00 100644 --- a/src/test/resources/fixtures/kube_objects/manifest_test_perf.json +++ b/src/test/resources/fixtures/kube_objects/manifest_test_perf.json @@ -47,7 +47,6 @@ "minMemory": "512Mi" }, "perfUtility": { - "mockServer": true, "postgresServer": true, "postgresDbConfig": { "cpu": 0.2,