variables:
  openstack-origin: &openstack-origin distro

local_overlay_enabled: False

series: noble

comment:
- 'machines section to decide order of deployment. database sooner = faster'
machines:
  '0':
    constraints: mem=3072M
  '1':
    constraints: mem=3072M
  '2':
    constraints: mem=3072M
  '3':
  '4':
  '5':
  '6':

applications:

  keystone-mysql-router:
    charm: ch:mysql-router
    channel: latest/edge

  openstack-dashboard-mysql-router:
    charm: ch:mysql-router
    channel: latest/edge

  ironic-api-mysql-router:
    charm: ch:mysql-router
    channel: latest/edge

  mysql-innodb-cluster:
    charm: ch:mysql-innodb-cluster
    num_units: 3
    options:
      max-connections: 1000
      innodb-buffer-pool-size: 256M
    to:
      - '0'
      - '1'
      - '2'
    channel: latest/edge

  rabbitmq-server:
    charm: ch:rabbitmq-server
    num_units: 1
    to:
      - '3'
    channel: latest/edge

  keystone:
    charm: ch:keystone
    num_units: 1
    options:
      openstack-origin: *openstack-origin
    to:
      - '4'
    channel: latest/edge

  ironic-api:
    charm: ch:ironic-api
    num_units: 1
    options:
      openstack-origin: *openstack-origin
    to:
      - '5'
    channel: latest/edge

  openstack-dashboard:
    charm: ch:openstack-dashboard
    num_units: 1
    options:
      openstack-origin: *openstack-origin
    to:
      - '6'
    channel: latest/edge

  ironic-dashboard:
    charm: ../../ironic-dashboard.charm

relations:

  - - 'keystone:shared-db'
    - 'keystone-mysql-router:shared-db'
  - - 'keystone-mysql-router:db-router'
    - 'mysql-innodb-cluster:db-router'

  - - 'ironic-api:shared-db'
    - 'ironic-api-mysql-router:shared-db'
  - - 'ironic-api-mysql-router:db-router'
    - 'mysql-innodb-cluster:db-router'
  - - 'ironic-api:identity-service'
    - 'keystone:identity-service'
  - - 'ironic-api:amqp'
    - 'rabbitmq-server:amqp'

  - - 'openstack-dashboard:shared-db'
    - 'openstack-dashboard-mysql-router:shared-db'
  - - 'openstack-dashboard-mysql-router:db-router'
    - 'mysql-innodb-cluster:db-router'

  - - 'openstack-dashboard:identity-service'
    - 'keystone:identity-service'

  - - 'openstack-dashboard:dashboard-plugin'
    - 'ironic-dashboard:dashboard'