From 4129f4cff4713c585503a997f3c2d8fffbf537dc Mon Sep 17 00:00:00 2001 From: okozachenko Date: Sat, 6 Jun 2020 01:54:16 +0300 Subject: [PATCH] Add HPA in heat Change-Id: I32138845e976a12340e403d96900b425a08e80ed --- openstack_operator/heat.py | 4 +++ .../heat/horizontalpodautoscaler.yml.j2 | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 openstack_operator/templates/heat/horizontalpodautoscaler.yml.j2 diff --git a/openstack_operator/heat.py b/openstack_operator/heat.py index fc54e3f0..b35d32bd 100644 --- a/openstack_operator/heat.py +++ b/openstack_operator/heat.py @@ -42,10 +42,14 @@ def create_or_resume(name, spec, **_): config_hash=config_hash) utils.create_or_update('heat/service.yml.j2', name=name, component=component) + utils.create_or_update('heat/horizontalpodautoscaler.yml.j2', + name=name, component=component) utils.create_or_update('heat/deployment.yml.j2', name=name, spec=spec, component='engine', config_hash=config_hash) + utils.create_or_update('heat/horizontalpodautoscaler.yml.j2', + name=name, component='engine') if "ingress" in spec: utils.create_or_update('heat/ingress.yml.j2', name=name, spec=spec) diff --git a/openstack_operator/templates/heat/horizontalpodautoscaler.yml.j2 b/openstack_operator/templates/heat/horizontalpodautoscaler.yml.j2 new file mode 100644 index 00000000..cab4cdfe --- /dev/null +++ b/openstack_operator/templates/heat/horizontalpodautoscaler.yml.j2 @@ -0,0 +1,30 @@ +--- +# Copyright 2020 VEXXHOST, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: autoscaling/v1 +kind: HorizontalPodAutoscaler +metadata: + name: heat-{{ component }} + namespace: openstack + labels: + {{ labels("heat", name) | indent(4) }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: heat-{{ component }} + minReplicas: 2 + maxReplicas: 10 + targetCPUUtilizationPercentage: 90