From a450b6034b1c209420e847c33875db3621661203 Mon Sep 17 00:00:00 2001 From: Cristhian Garcia Date: Tue, 5 Nov 2024 11:02:13 -0500 Subject: [PATCH] feat: add autoscaling values for ralph and superset --- README.rst | 8 +++++++ tutoraspects/filters.py | 46 +++++++++++++++++++++++++++++++++++++++++ tutoraspects/plugin.py | 6 ++++++ 3 files changed, 60 insertions(+) create mode 100644 tutoraspects/filters.py diff --git a/README.rst b/README.rst index 1395f4ca0..6ddf8bd01 100644 --- a/README.rst +++ b/README.rst @@ -97,6 +97,14 @@ At this point you should have a working Tutor / Aspects environment, but with no You should now have data to look at in Superset! Log in to https://superset.local.overhang.io/ with your admin account and you should see charts with your data. +Aspects Autoscaling +------------------- + +Aspects adds default autoscaling values for `Ralph`, `Superset` and the `Superset Worker` deployments via +`tutor-contrib-pod-autoscaling `_. To apply the +autoscaling settings make sure to install the plugin and enable it. To modify the autoscaling values +see the `Configuration `_ section. + Superset Assets --------------- diff --git a/tutoraspects/filters.py b/tutoraspects/filters.py new file mode 100644 index 000000000..704babb0f --- /dev/null +++ b/tutoraspects/filters.py @@ -0,0 +1,46 @@ +from tutorpod_autoscaling.hooks import AUTOSCALING_CONFIG + + +@AUTOSCALING_CONFIG.add() +def add_aspects_autoscaling(autoscaling_config): + autoscaling_config.update( + { + "ralph": { + "enable_hpa": True, + "memory_request": "300Mi", + "cpu_request": 0.25, + "memory_limit": "600Mi", + "cpu_limit": 1, + "min_replicas": 1, + "max_replicas": 10, + "avg_cpu": 80, + "avg_memory": "", + "enable_vpa": False, + }, + "superset": { + "enable_hpa": True, + "memory_request": "500Mi", + "cpu_request": 0.25, + "memory_limit": "1000Mi", + "cpu_limit": 1, + "min_replicas": 1, + "max_replicas": 10, + "avg_cpu": 80, + "avg_memory": "", + "enable_vpa": False, + }, + "superset-worker": { + "enable_hpa": True, + "memory_request": "600Mi", + "cpu_request": 0.25, + "memory_limit": "1500Mi", + "cpu_limit": 1, + "min_replicas": 1, + "max_replicas": 10, + "avg_cpu": 80, + "avg_memory": "", + "enable_vpa": False, + }, + } + ) + return autoscaling_config diff --git a/tutoraspects/plugin.py b/tutoraspects/plugin.py index aeb89ba88..e9ee1ce7c 100644 --- a/tutoraspects/plugin.py +++ b/tutoraspects/plugin.py @@ -636,3 +636,9 @@ def _aspects_public_hosts( # file for now. for f in TUTOR_V1_COMMANDS: hooks.Filters.CLI_COMMANDS.add_item(f) + +# Autoscaling +try: + from tutoraspects.filters import add_aspects_autoscaling +except ImportError: + pass