ironic_adoption: false ironic_adoption_remove_ffu_workaround_patch: true # Libvirt backends: ceph or local nova_libvirt_backend: local nova_libvirt_patch: | {{ cells_env }} rm -f celltemplates for CELL in $(echo $RENAMED_CELLS); do cat >> celltemplates << EOF ${CELL}: hasAPIAccess: true cellDatabaseAccount: nova-$CELL cellDatabaseInstance: openstack-$CELL messagingBus: cluster: rabbitmq-$CELL metadataServiceTemplate: enabled: false # enable here to run it in a cell instead override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/allow-shared-ip: internalapi {% if ipv6_enabled | default(false) -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix_ipv6 | default('2620:cf:cf:bbbb') }}::$(( 49 + ${CELL##*cell} )) {%- else -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix | default('172.17.0') }}.$(( 79 + ${CELL##*cell} )) {%- endif %} spec: type: LoadBalancer customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true conductorServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true EOF done cat > oscp-patch.yaml << EOF spec: nova: enabled: true apiOverride: route: {} template: secret: osp-secret apiDatabaseAccount: nova-api apiServiceTemplate: override: service: internal: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/allow-shared-ip: internalapi {% if ipv6_enabled | default(false) -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix_ipv6 | default('2620:cf:cf:bbbb') }}::50 {%- else -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix | default('172.17.0') }}.80 {%- endif %} spec: type: LoadBalancer customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true metadataServiceTemplate: enabled: true # deploy single nova metadata on the top level override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/allow-shared-ip: internalapi {% if ipv6_enabled | default(false) -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix_ipv6 | default('2620:cf:cf:bbbb') }}::50 {%- else -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix | default('172.17.0') }}.80 {%- endif %} spec: type: LoadBalancer customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true schedulerServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true cellTemplates: cell0: hasAPIAccess: true cellDatabaseAccount: nova-cell0 cellDatabaseInstance: openstack messagingBus: cluster: rabbitmq conductorServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true EOF cat celltemplates >> oscp-patch.yaml # NOTE(bogdando): no exact commands provided in docs for nova-ironic, # so we can use ansible/jinja2 features to simplify testing these nova_ironic_patch: | spec: nova: enabled: true apiOverride: route: {} template: secret: osp-secret apiDatabaseAccount: nova-api apiServiceTemplate: override: service: internal: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/allow-shared-ip: internalapi {% if ipv6_enabled | default(false) -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix_ipv6 | default('2620:cf:cf:bbbb') }}::50 {%- else -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix | default('172.17.0') }}.80 {%- endif %} spec: type: LoadBalancer customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true metadataServiceTemplate: enabled: true # deploy single nova metadata on the top level override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/allow-shared-ip: internalapi {% if ipv6_enabled | default(false) -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix_ipv6 | default('2620:cf:cf:bbbb') }}::50 {%- else -%} metallb.universe.tf/loadBalancerIPs: {{ internalapi_prefix | default('172.17.0') }}.80 {%- endif %} spec: type: LoadBalancer customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true schedulerServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true cellTemplates: cell0: conductorServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true {%+ for cell in renamed_cells +%} {%- set source_cell_name = cell -%} {%- if cell == default_cell_name -%} {%- set source_cell_name = 'default' -%} {%- endif -%} {{ cell }}: hasAPIAccess: true cellDatabaseAccount: nova-cell{{ loop.index }} cellDatabaseInstance: openstack-cell{{ loop.index }} messagingBus: cluster: rabbitmq-cell{{ loop.index }} conductorServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true {%+ if ironic_adoption|bool and source_cell_name in source_ironic_nodes +%} novaComputeTemplates: {%+ for n in source_ironic_nodes[source_cell_name] +%} {{ n.template }}: customServiceConfig: | [DEFAULT] host = {{ n.name }} [workarounds] disable_compute_service_check_for_ffu=true replicas: 1 resources: {} computeDriver: ironic.IronicDriver networkAttachments: - internalapi {%+ endfor +%} {%+ endif +%} {%+ endfor +%} remove_ffu_workaround_patch: | spec: nova: template: apiServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=false metadataServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=false schedulerServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=false cellTemplates: cell0: conductorServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=false {%+ for cell in renamed_cells +%} {%- set source_cell_name = cell -%} {%- if cell == default_cell_name -%} {%- set source_cell_name = 'default' -%} {%- endif -%} {{ cell }}: conductorServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=false {%+ if ironic_adoption|bool and source_cell_name in source_ironic_nodes +%} novaComputeTemplates: {%+ for n in source_ironic_nodes[source_cell_name] +%} {{ n.template }}: customServiceConfig: | [DEFAULT] host = {{ n.name }} [workarounds] disable_compute_service_check_for_ffu=false replicas: 1 resources: {} computeDriver: ironic.IronicDriver networkAttachments: - internalapi {%+ endfor +%} {%+ endif +%} {%+ endfor +%} nova_retry_delay: 5