diff --git a/tutorenterprise/patches/k8s-deployments b/tutorenterprise/patches/k8s-deployments index 9591fe7..cb05719 100644 --- a/tutorenterprise/patches/k8s-deployments +++ b/tutorenterprise/patches/k8s-deployments @@ -28,6 +28,13 @@ spec: subPath: production.py securityContext: allowPrivilegeEscalation: false + resources: + limits: + cpu: "{{ ENTERPRISE_CATALOG_LIMIT_CPU }}" + memory: "{{ ENTERPRISE_CATALOG_LIMIT_MEMORY }}" + requests: + cpu: "{{ ENTERPRISE_CATALOG_REQUEST_CPU }}" + memory: "{{ ENTERPRISE_CATALOG_REQUEST_MEMORY }}" volumes: - name: settings configMap: diff --git a/tutorenterprise/plugin.py b/tutorenterprise/plugin.py index 9672bdf..eeae08c 100644 --- a/tutorenterprise/plugin.py +++ b/tutorenterprise/plugin.py @@ -34,6 +34,16 @@ "CATALOG_DOCKER_IMAGE": "{{ DOCKER_REGISTRY }}paops/enterprise-catalog:{{ ENTERPRISE_VERSION }}", "DISCOVERY_USER": "discovery", "ECOMMERCE_OAUTH_USER": "{{ ECOMMERCE_OAUTH2_KEY }}", + ### HPA ### + "CATALOG_LIMIT_CPU": "1", + "CATALOG_LIMIT_MEMORY": "1Gi", + "CATALOG_REQUEST_CPU": "512m", + "CATALOG_REQUEST_MEMORY": "512Mi", + "CATALOG_ENABLE_HPA": False, + "CATALOG_HPA_MIN_REPLICAS": 1, + "CATALOG_HPA_MAX_REPLICAS": 4, + "CATALOG_AVG_CPU": 65, + "CATALOG_AVG_MEMORY": 65, }, "unique": { "OAUTH2_SECRET_KEY": "{{ 64|random_string }}", diff --git a/tutorenterprise/templates/enterprise/k8s/hpa.yml b/tutorenterprise/templates/enterprise/k8s/hpa.yml new file mode 100644 index 0000000..6383d6f --- /dev/null +++ b/tutorenterprise/templates/enterprise/k8s/hpa.yml @@ -0,0 +1,32 @@ +{%- if ENTERPRISE_CATALOG_ENABLE_HPA %} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: codejail-hpa + labels: + app.kubernetes.io/name: codejail-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: codejailservice + minReplicas: {{ ENTERPRISE_CATALOG_MIN_REPLICAS }} + maxReplicas: {{ ENTERPRISE_CATALOG_MAX_REPLICAS }} + metrics: + {%- if ENTERPRISE_CATALOG_AVG_CPU > 0 %} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ ENTERPRISE_CATALOG_AVG_CPU }} + {%- endif %} + {%- if ENTERPRISE_CATALOG_AVG_MEMORY|length %} + - type: Resource + resource: + name: memory + target: + type: AverageValue + averageValue: {{ ENTERPRISE_CATALOG_AVG_MEMORY }} + {%- endif %} +{%- endif %} \ No newline at end of file