OpenStack HA with OpenStack-base-bundle

Hi Team,

Is there any document to refer OpenStack HA ?

The below link with out HA. I want to setup OpenStack HA cluster.

Hi Rajasekar,

The OpenStack Charmers team does not produce an official HA bundle. I presume you are referring to infrastructure HA as opposed to instance HA (OpenStack Masakari).

The Charm Guide does provide guidance on manually setting up Insfrastructure HA.

I have managed to setup an Ubuntu 22.04/ yoga HA environment. Start with the Openstack org site and follow their charms HA section. It will get you to where you need to be.

Do you know if you can share VIP’s between HA Services?

For example, I want to expose to the internet the Dashboard and the the VNC Service, however, I wouldn’t want to have to use two public IP’s, one for the Dashboard VIP and one for the nova-cloud-controller VIP (as the cloud-controller runs the VNC or spice service).

Thank you in advance.

You would deploy three instances of Dashboard and assign a VIP address of your choice. Same goes for other services. Some services do not require a VIP address.

Unfortunately you won’t find a complete answer anywhere. You need to patch things together.
Here is a good starting point:

Pay attention the areas concerning vault- it will require some extra charms for HA- etcd, easyrsa. I also found I had to install memcached when setting up the HA environment. Takes some trial and error- I have been working on this for several months and have finally worked out most issues. I am using Ubuntu 22.04 but you may want to stick with 20.04 until they release a stable bundle for 22.04. But the edge charms seem to be good now for 22.04 and I am expecting a stable bundle soon.

Please share HA OpenStack-base bundle.yml file for reference.

Canonical might not like me posting a fully working ha bundle. I can you give a snippet and you can work from there.
This is what I found worked Glance with the HA charm. HA charm channel should match your OS version. The other resources posted will help you get work it all out. Sorry it does not post well, I will put / at end of each line

glance:/ annotations:/ gui-x: ‘-230’/ gui-y: ‘1270’/ charm: ch:glance/ num_units: 3/ options:/ worker-multiplier: *worker-multiplier/ openstack-origin: *openstack-origin/ vip: to:/ - lxd:2/ - lxd:1/ - lxd:0/ channel: yoga/stable/ glance-hacluster:/ charm: ch:hacluster/ options:/ cluster_count: 3/ channel: latest/edge/


    • glance:ha
    • glance-hacluster:ha

We experienced the same problem and we solved it by developing another solution for that. In our case we also replaced horizon with another product since keeping VNC available.

We processed 150M+ API requests over that solution.

I know about the 3 units and HA Charm requirements. What I’m not sure is if I can do something like this:

juju deploy -n 3 --config vip= openstack-dashboard
juju deploy --config cluster_count=3 hacluster hacluster
juju add-relation hacluster:ha openstack-dashboard:ha

juju deploy -n --config vip= glance
juju add-relation hacluster:ha glance:ha

That way I could deploy everything to the control nodes and use a single VIP to NAT my public IP to my internal IP.

Do you mind sharing the product that you guys used?

We call it Service Desk, which stands on the same network as OpenStack. We deploy it with our private cloud deployments to customers.

It also allows create of some extra services like Kubernetes as a Service, DB as a Service, Backup as a Service, etc, with a standard Charmed OpenStack.

It includes internal billing and ITIL-compatible support features also.

You may reach me for the details.

sorry - bit late on this

this is my glance install sequence- seems to work ok

juju deploy -n 3 --to lxd:0,lxd:2,lxd:1 --series jammy --channel yoga/stable --config glance

juju deploy --series jammy --channel latest/edge hacluster glance-hacluster

juju add-relation glance-hacluster:ha glance:ha

juju deploy --series jammy --channel 8.0/stable mysql-router glance-mysql-router

juju add-relation glance-mysql-router:db-router mysql-innodb-cluster:db-router

juju add-relation glance-mysql-router:shared-db glance:shared-db

juju add-relation glance:image-service nova-cloud-controller:image-service

juju add-relation glance:image-service nova-compute:image-service

juju add-relation glance:identity-service keystone:identity-service

juju add-relation glance:certificates vault:certificates

it is more or less the same for all