Files
infra-provisioner/sample_infra_manifest.json

269 lines
6.7 KiB
JSON

{
"environment": "dev",
"cluster": "nonprod.np.navi-tech.in",
"metadata": {
"repo": "navi-medici/test",
"language": "Java",
"dataSensitivity": "PII_SPI",
"logCriticality": "AccessLogs",
"disasterRecovery": "No"
},
"deployment": {
"namespace": "dev-3p"
},
"extraResources": {
"environment": "dev",
"database": {
"dbEngineType": "rds-postgres",
"instanceName": "foo-service",
"user": "foo_service_user",
"password": "foo_service_password",
"sizeInGb": 7,
"statementTimeout": 0,
"psqlEngineVersion": "13.9",
"storageEncrypted": true,
"dbNames": [
"foo_service"
],
"dbExtensions": [
"pgcrypto"
],
"readonlyUser": "foo_readonly_user",
"readonlyPassword": "foo_readonly_password",
"applyImmediately": true,
"performanceInsightsEnabled": false,
"readReplica": {
"awsInstanceClass": "db.t3.micro",
"performanceInsightsEnabled": true,
"multiAZDisabled": false
},
"parameters": [
{
"name": "rds.logical_replication",
"value": "1"
}
],
"rdsAlertThresholds": {
"cpuUtilization": 70,
"cpuCreditBalance": 120,
"burstBalance": 85,
"dbConnections": 200,
"queueDepth": 20,
"freeStorageSpacePercent": 90,
"freeMemoryTooLowInMB": 150,
"readLatency": 0.5,
"writeLatency": 0.5
},
"rdsAlertDurations": {
"cpuUtilization": 15,
"cpuCreditBalance": 5,
"burstBalance": 5,
"dbConnections": 5,
"queueDepth": 5,
"freeStorageSpacePercent": 10,
"freeMemoryTooLowInMB": 1,
"readLatency": 5,
"writeLatency": 5
}
},
"docdb": {
"masterUser": "foo_service_user",
"parameters": [],
"clusterSize": 1,
"instanceName": "docdb",
"masterPassword": "foo_service_pass",
"awsInstanceClass": "db.t4g.medium",
"docDBAlertDurations": {
"readLatency": 5,
"writeLatency": 5,
"dbConnections": 10,
"cpuUtilization": 15,
"cpuCreditBalance": 5,
"volumeUsageTooHigh": 10,
"freeMemoryTooLowInMB": 10
},
"docDBAlertThresholds": {
"readLatency": 0.5,
"writeLatency": 0.5,
"dbConnections": 200,
"cpuUtilization": 75,
"cpuCreditBalance": 120,
"volumeUsageTooHigh": 107374,
"freeMemoryTooLowInMB": 200
}
},
"aws_access": {
"policies": [
{
"actions": [
"s3:GetObject",
"s3:PutObject"
],
"resource": "arn:aws:s3:::navi-e3e2a9bfd88566b05001b02a3f51d286/*"
},
{
"actions": [
"s3:GetObject",
"s3:PutObject"
],
"resource": "*"
},
{
"resource": "arn:aws:s3:::arn:aws:s3:::test-bucket-to-be-deleted/*",
"actions": [
"sns:Publish",
"sns:SetSMSAttributes"
]
}
]
},
"s3_buckets": [
{
"anonymizedBucketName": "navi-bucket-test-1",
"bucketTag": "customer-uploads",
"lifecycleRules": [
{
"expiration": {
"days": 3
},
"pathPrefix": "testing/test",
"transition": {
"days": 4,
"storageClass": "GLACIER"
},
"noncurrent_version_expiration": {
"days": 2
},
"noncurrent_version_transition": {
"days": 2,
"storageClass": "GLACIER"
}
},
{
"expiration": {
"days": 2
},
"transition": {
"days": 3,
"storageClass": "GLACIER"
},
"noncurrent_version_expiration": {
"days": 2
},
"noncurrent_version_transition": {
"days": 2,
"storageClass": "GLACIER"
}
}
],
"corsPolicy": [
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"POST",
"PUT"
],
"AllowedOrigins": [
"https://google.com"
]
}
]
},
{
"anonymizedBucketName": "navi-bucket-test-2",
"bucketTag": "document-uploads",
"lifecycleRules": [
{
"expiration": {
"days": 1
},
"noncurrent_version_expiration": {
"days": 2
},
"noncurrent_version_transition": {
"days": 2,
"storageClass": "GLACIER"
}
}
]
}
],
"elasticCache": {
"awsInstanceClass": "cache.t3.small",
"instanceName": "smaple-redis-cache",
"multiAZ": true,
"elasticCacheAlertDurations": {
"memoryUsage": 10,
"cpuUtilization": 15,
"cpuCreditBalance": 5,
"networkBandwidthInAllowanceExceeded": 1,
"networkBandwidthOutAllowanceExceeded": 1,
"networkBandwidthTrackedAllowanceExceeded": 1
},
"elasticCacheAlertThresholds": {
"memoryUsage": 80,
"cpuUtilization": 75,
"cpuCreditBalance": 120,
"networkBandwidthInAllowanceExceeded": 1,
"networkBandwidthOutAllowanceExceeded": 1,
"networkBandwidthTrackedAllowanceExceeded": 1
}
},
"dynamodb": {
"tables": [
{
"ttl": {
"enabled": true,
"attribute_name": "ttl"
},
"hashKey": "id",
"rangeKey": "s",
"tableName": "abc",
"attributes": [
{
"name": "id",
"value": "N"
},
{
"name": "s",
"value": "S"
}
],
"gsi": [
{
"name": "test",
"hashKey": "Test1",
"rangeKey": "",
"readCapacity": 5,
"writeCapacity": 5,
"projectionType": "KEYS_ONLY"
}
],
"lsi": [
{
"name": "test1",
"rangeKey": "Test2",
"projectionType": "KEYS_ONLY"
}
],
"billingMode": "PROVISIONED",
"maxReadCapacity": 20,
"minReadCapacity": 5,
"readTargetValue": 85,
"maxWriteCapacity": 20,
"minWriteCapacity": 5,
"writeTargetValue": 85
}
]
}
},
"team": {
"name": "Infra"
},
"name": "foo",
"infraVertical": "lending"
}