apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: namespace: openstack patches: - target: kind: OpenStackControlPlane patch: |- - op: add path: /spec/nova/template/apiMessageBusInstance value: "" - op: add path: /spec/nova/template/notificationsBus value: cluster: rabbitmq - op: add path: /spec/nova/template/notificationsBusInstance value: null - op: replace path: /spec/neutron/template/replicas value: 2 - op: replace path: /spec/neutron/template/customServiceConfig value: | [DEFAULT] debug = True - op: replace path: /spec/keystone/template/replicas value: 2 - op: add path: /spec/nova/template/cellTemplates value: cell0: cellDatabaseAccount: nova-cell0 cellMessageBusInstance: "" hasAPIAccess: true metadataServiceTemplate: enabled: false cell1: cellDatabaseAccount: nova-cell1 cellMessageBusInstance: "" hasAPIAccess: true messagingBus: cluster: rabbitmq-cell1 cellDatabaseInstance: openstack-cell1 metadataServiceTemplate: enabled: true override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/allow-shared-ip: internalapi metallb.universe.tf/loadBalancerIPs: 172.17.0.80 spec: type: LoadBalancer - op: add path: /spec/nova/template/metadataServiceTemplate/enabled value: false - op: add path: /spec/nova/template/apiServiceTemplate value: defaultConfigOverwrite: api-paste.ini: | ############ # Metadata # ############ [composite:metadata] use = egg:Paste#urlmap /: meta [pipeline:meta] pipeline = cors http_proxy_to_wsgi metaapp [app:metaapp] paste.app_factory = nova.api.metadata.handler:MetadataRequestHandler.factory ############# # OpenStack # ############# [composite:osapi_compute] use = call:nova.api.openstack.urlmap:urlmap_factory /: oscomputeversions /v2: oscomputeversion_legacy_v2 /v2.1: oscomputeversion_v2 /v2/+: openstack_compute_api_v21_legacy_v2_compatible /v2.1/+: openstack_compute_api_v21 [composite:openstack_compute_api_v21] use = call:nova.api.auth:pipeline_factory_v21 keystone = cors http_proxy_to_wsgi compute_req_id faultwrap request_log sizelimit osprofiler authtoken keystonecontext audit osapi_compute_app_v21 noauth2 = cors http_proxy_to_wsgi compute_req_id faultwrap request_log sizelimit osprofiler noauth2 audit osapi_compute_app_v21 [composite:openstack_compute_api_v21_legacy_v2_compatible] use = call:nova.api.auth:pipeline_factory_v21 keystone = cors http_proxy_to_wsgi compute_req_id faultwrap request_log sizelimit osprofiler authtoken keystonecontext legacy_v2_compatible audit osapi_compute_app_v21 noauth2 = cors http_proxy_to_wsgi compute_req_id faultwrap request_log sizelimit osprofiler noauth2 legacy_v2_compatible audit osapi_compute_app_v21 [filter:request_log] paste.filter_factory = nova.api.openstack.requestlog:RequestLog.factory [filter:compute_req_id] paste.filter_factory = nova.api.compute_req_id:ComputeReqIdMiddleware.factory [filter:faultwrap] paste.filter_factory = nova.api.openstack:FaultWrapper.factory [filter:noauth2] paste.filter_factory = nova.api.openstack.auth:NoAuthMiddleware.factory [filter:osprofiler] paste.filter_factory = nova.profiler:WsgiMiddleware.factory [filter:sizelimit] paste.filter_factory = oslo_middleware:RequestBodySizeLimiter.factory [filter:http_proxy_to_wsgi] paste.filter_factory = oslo_middleware.http_proxy_to_wsgi:HTTPProxyToWSGI.factory [filter:legacy_v2_compatible] paste.filter_factory = nova.api.openstack:LegacyV2CompatibleWrapper.factory [app:osapi_compute_app_v21] paste.app_factory = nova.api.openstack.compute:APIRouterV21.factory [pipeline:oscomputeversions] pipeline = cors faultwrap request_log http_proxy_to_wsgi oscomputeversionapp [pipeline:oscomputeversion_v2] pipeline = cors compute_req_id faultwrap request_log http_proxy_to_wsgi oscomputeversionapp_v2 [pipeline:oscomputeversion_legacy_v2] pipeline = cors compute_req_id faultwrap request_log http_proxy_to_wsgi legacy_v2_compatible oscomputeversionapp_v2 [app:oscomputeversionapp] paste.app_factory = nova.api.openstack.compute.versions:Versions.factory [app:oscomputeversionapp_v2] paste.app_factory = nova.api.openstack.compute.versions:VersionsV2.factory ########## # Shared # ########## [filter:cors] paste.filter_factory = oslo_middleware.cors:filter_factory oslo_config_project = nova [filter:keystonecontext] paste.filter_factory = nova.api.auth:NovaKeystoneContext.factory [filter:authtoken] paste.filter_factory = keystonemiddleware.auth_token:filter_factory [filter:audit] paste.filter_factory = keystonemiddleware.audit:filter_factory audit_map_file = /etc/nova/nova_api_audit_map.conf use_oslo_messaging = false log_name = nova.audit nova_api_audit_map.conf: | [DEFAULT] target_endpoint_type = None [custom_actions] enable = enable disable = disable delete = delete startup = start/startup shutdown = stop/shutdown reboot = start/reboot os-migrations/get = read os-server-password/post = update [path_keywords] add = None action = None enable = None disable = None configure-project = None defaults = None delete = None detail = None diagnostics = None entries = entry extensions = alias flavors = flavor images = image ips = label limits = None metadata = key os-agents = os-agent os-aggregates = os-aggregate os-availability-zone = None os-certificates = None os-cloudpipe = None os-fixed-ips = ip os-extra_specs = key os-flavor-access = None os-floating-ip-dns = domain os-floating-ips-bulk = host os-floating-ip-pools = None os-floating-ips = floating-ip os-hosts = host os-hypervisors = hypervisor os-instance-actions = instance-action os-keypairs = keypair os-migrations = None os-networks = network os-quota-sets = tenant os-security-groups = security_group os-security-group-rules = rule os-server-password = No************ os-services = None os-simple-tenant-usage = tenant os-virtual-interfaces = None os-volume_attachments = attachment os-volumes_boot = None os-volumes = volume os-volume-types = volume-type os-snapshots = snapshot reboot = None servers = server shutdown = None startup = None statistics = None [service_endpoints] compute = service/compute - op: replace path: /spec/nova/template/apiServiceTemplate/replicas value: 2