Cluster Configuration (Helm Chart Variables)
Root
Cluster
Cluster Frontend Pod
Cluster Worker Pod
Cluster Horizontal Pod Autoscaler (HPA)
Cluster Static Pod Scaling
AWS
While we offer hosting of the actual cluster between either AWS or GCP, there are some configuration options that are required when using GCP as well (denoted by an [required]).
AWS ECR
AWS EKS
AWS IAM
AWS MemoryDB
It is currently recommended to setup Elasticache in-place of memory db. This can be updated within the self hosted repo, or manually.
An update is in the plans to bring this as the default.
AWS RDS
AWS S3
AWS VPC
GCP
GCP Artifact Registry
GCP CSQL
GCP GKE
GCP MemoryStore
GCP VPC
Atlas
Minimal Configuration:
{
"host": "uw.mydomain.com",
"atlas_public_key": "",
"mongo_db_name": "userwise",
"mongo_username": "userwisemongouser",
"psql_db_name": "userwise",
"psql_username": "userwisepsqluser",
"cluster": {
"name": "userwise-hosted-cluster",
"k8s_version": "1.28",
"frontend_pod": {
"processes": {
"num_processes": 8,
"num_threads_per_process": 10
},
"requests": {
"cpu": 8,
"memory": "8Gi",
"ephemeral_storage": "2Gi"
},
"limits": {
"cpu": 8,
"memory": "8Gi",
"ephemeral_storage": "2Gi"
}
},
"worker_pod": {
"queue_configuration": {
"default_worker": 1,
"player_content_send_worker": 1,
"player_data_worker": 3
},
"requests": {
"cpu": 5,
"memory": "5Gi",
"ephemeral_storage": "2Gi"
},
"limits": {
"cpu": 5,
"memory": "5Gi",
"ephemeral_storage": "2Gi"
}
},
"horizontal_pod_autoscaler": {
"enabled": true,
"min_frontend_replicas": 1,
"max_frontend_replicas": 10,
"frontend_cpu_threshold_percentage": 50,
"min_worker_replicas": 1,
"max_worker_replicas": 5,
"worker_cpu_threshold_percentage": 50
},
"static_pod_scaling": {
"enabled": false,
"frontend_replicas": 1,
"worker_replicas": 1
}
},
"aws": {
"cluster_hosting_enabled": false,
"account_id": "784192393659",
"region": "us-west-1",
"certificate_arn": "",
"ecr": {
"repository_name": "userwise-hosted-artifacts"
},
"eks": {
"min_size": 1,
"max_size": 3,
"desired_size": 1
},
"iam": {
"service_account_name": "userwise-service-account"
},
"memory_db": {
"cluster_name": "userwise-hosted-redis",
"engine_version": "6.2",
"num_shards": 1,
"num_replicas_per_shard": 0
},
"rds": {
"identifier": "userwise-hosted-psql",
"multi_az": true,
"instance_class": "db.t3.medium",
"ensure_allocated_storage": 30
},
"s3": {
"bucket_name": "uw-hosted-bucket"
},
"vpc": {
"name": "userwise-vpc",
"cidr": "172.31.0.0/16",
"private_subnets": ["172.31.10.0/24", "172.31.20.0/24", "172.31.30.0/24", "172.31.40.0/24"],
"public_subnets": ["172.31.100.0/24", "172.31.110.0/24", "172.31.120.0/24", "172.31.130.0/24"]
}
},
"gcp": {
"cluster_hosting_enabled": true,
"project_id": "uw-project",
"service_account_id": "userwise-service",
"service_account_display_name": "UserWise Infra Service Account",
"region": "us-central1",
"artifact_registry": {
"repository_name": "userwise-hosted-artifacts"
},
"csql": {
"tier": "db-g1-small",
"instance_name": "userwise-hosted-psql",
"transaction_log_retention_days": 5,
"num_retained_backups": 5
},
"gke": {
"monitoring_config": ["SYSTEM_COMPONENTS", "APISERVER", "CONTROLLER_MANAGER", "SCHEDULER"],
"logging_config": ["SYSTEM_COMPONENTS", "APISERVER", "CONTROLLER_MANAGER", "SCHEDULER", "WORKLOADS"],
"cluster_cidr": "10.90.0.0/16",
"services_cidr": "10.91.0.0/16"
},
"memorystore": {
"instance_name": "userwise-hosted-redis",
"tier": "STANDARD_HA",
"memory_size_gb": 1,
"redis_version": "REDIS_6_X",
"persistence_mode": "RDB",
"rdb_snapshot_period": "SIX_HOURS"
},
"vpc": {
"network_name": "userwise-vpc"
}
},
"atlas": {
"cluster_name": "userwise-hosted-cluster",
"provider": "GCP",
"provider_region": "CENTRAL_US",
"min_instance_size": "M10",
"max_instance_size": "M60",
"cidr": "172.20.0.0/18"
}
}
Powered by UserWise