Adopt autoscaling services

To adopt services that enable autoscaling, you patch an existing OpenStackControlPlane custom resource (CR) where the Alarming services (aodh) are disabled. The patch starts the service with the configuration parameters that are provided by the Red Hat OpenStack Platform environment.

Before you begin

  • The source director environment is running.
  • A Single Node OpenShift or OpenShift Local is running in the Red Hat OpenShift Container Platform (RHOCP) cluster.
  • You have adopted the following services:
    • MariaDB
    • Identity service (keystone)
    • Orchestration service (heat)
    • Telemetry service

Procedure

  1. Patch the OpenStackControlPlane CR to deploy the autoscaling services:
    $ oc patch openstackcontrolplane openstack --type=merge --patch '
    spec:
      telemetry:
        enabled: true
        template:
          autoscaling:
            enabled: true
            aodh:
              passwordSelector:
                aodhService: AodhPassword
              databaseAccount: aodh
              databaseInstance: openstack
              secret: osp-secret
              serviceUser: aodh
            heatInstance: heat
    '
  2. Inspect the aodh pods:
    $ AODH_POD=`oc get pods -l service=aodh | tail -n 1 | cut -f 1 -d' '`
    $ oc exec -t $AODH_POD -c aodh-api -- cat /etc/aodh/aodh.conf
  3. Check whether the aodh API service is registered in the Identity service:
    $ openstack endpoint list | grep aodh
    | d05d120153cd4f9b8310ac396b572926 | regionOne | aodh  | alarming  | True    | internal  | http://aodh-internal.openstack.svc:8042  |
    | d6daee0183494d7a9a5faee681c79046 | regionOne | aodh  | alarming  | True    | public    | http://aodh-public.openstack.svc:8042    |
  4. Optional: Create aodh alarms with the PrometheusAlarm alarm type:
    Note
    You must use the PrometheusAlarm alarm type instead of GnocchiAggregationByResourcesAlarm.
    $ openstack alarm create --name high_cpu_alarm \
    --type prometheus \
    --query "(rate(ceilometer_cpu{resource_name=~'cirros'})) * 100" \
    --alarm-action 'log://' \
    --granularity 15 \
    --evaluation-periods 3 \
    --comparison-operator gt \
    --threshold 7000000000
    1. Verify that the alarm is enabled:
      $ openstack alarm list
      +--------------------------------------+------------+------------------+-------------------+----------+
      | alarm_id                             | type       | name             | state  | severity | enabled  |
      +--------------------------------------+------------+------------------+-------------------+----------+
      | 209dc2e9-f9d6-40e5-aecc-e767ce50e9c0 | prometheus | prometheus_alarm |   ok   |    low   |   True   |
      +--------------------------------------+------------+------------------+-------------------+----------+