--- apiVersion: v1 data: server-ca-passphrase: MTIzNDU2Nzg= kind: Secret metadata: name: octavia-ca-passphrase namespace: openstack type: Opaque --- apiVersion: v1 data: AdminPassword: MTIzNDU2Nzg= AodhDatabasePassword: MTIzNDU2Nzg= AodhPassword: MTIzNDU2Nzg= BarbicanDatabasePassword: MTIzNDU2Nzg= BarbicanPassword: MTIzNDU2Nzg= BarbicanSimpleCryptoKEK: r0wDZ1zrD5upafX9RDfYqvDkW2LENBWH7Gz9+Tr3NdM= CeilometerPassword: MTIzNDU2Nzg= CinderDatabasePassword: MTIzNDU2Nzg= CinderPassword: MTIzNDU2Nzg= DatabasePassword: MTIzNDU2Nzg= DbRootPassword: MTIzNDU2Nzg= DesignateDatabasePassword: MTIzNDU2Nzg= DesignatePassword: MTIzNDU2Nzg= GlanceDatabasePassword: MTIzNDU2Nzg= GlancePassword: MTIzNDU2Nzg= HeatAuthEncryptionKey: NzY3YzNlZDA1NmNiYWEzYjlkZmVkYjhjNmY4MjViZjA= HeatDatabasePassword: MTIzNDU2Nzg= HeatPassword: MTIzNDU2Nzg= IronicDatabasePassword: MTIzNDU2Nzg= IronicInspectorDatabasePassword: MTIzNDU2Nzg= IronicInspectorPassword: MTIzNDU2Nzg= IronicPassword: MTIzNDU2Nzg= KeystoneDatabasePassword: MTIzNDU2Nzg= ManilaDatabasePassword: MTIzNDU2Nzg= ManilaPassword: MTIzNDU2Nzg= MetadataSecret: MTIzNDU2Nzg0Mg== NeutronDatabasePassword: MTIzNDU2Nzg= NeutronPassword: MTIzNDU2Nzg= NovaAPIDatabasePassword: MTIzNDU2Nzg= NovaCell0DatabasePassword: MTIzNDU2Nzg= NovaCell1DatabasePassword: MTIzNDU2Nzg= NovaPassword: MTIzNDU2Nzg= OctaviaDatabasePassword: MTIzNDU2Nzg= OctaviaHeartbeatKey: MTIzNDU2Nzg= OctaviaPassword: MTIzNDU2Nzg= PlacementDatabasePassword: MTIzNDU2Nzg= PlacementPassword: MTIzNDU2Nzg= SwiftPassword: MTIzNDU2Nzg= kind: Secret metadata: name: osp-secret namespace: openstack type: Opaque --- apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: controlplane namespace: openstack spec: barbican: enabled: false apiOverride: route: {} template: barbicanAPI: override: service: internal: 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 replicas: 3 barbicanKeystoneListener: replicas: 1 barbicanWorker: replicas: 3 databaseInstance: openstack preserveJobs: false secret: osp-secret ceilometer: template: passwordSelector: service: CeilometerPassword secret: osp-secret serviceUser: ceilometer cinder: apiOverride: route: haproxy.router.openshift.io/timeout: 60s template: cinderAPI: override: service: internal: 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 replicas: 3 cinderBackup: customServiceConfig: | [DEFAULT] backup_driver = cinder.backup.drivers.swift.SwiftBackupDriver networkAttachments: - storage replicas: 1 cinderScheduler: replicas: 1 cinderVolumes: lvm-iscsi: customServiceConfig: | [lvm] image_volume_cache_enabled = false volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volume_group = cinder-volumes target_protocol = iscsi target_helper = lioadm volume_backend_name = lvm_iscsi target_ip_address=172.18.0.10 target_secondary_ip_addresses = 172.19.0.10 nodeSelector: openstack.org/cinder-lvm: "" replicas: 1 customServiceConfig: | # Debug logs by default, jobs can override as needed. [DEFAULT] debug = true databaseInstance: openstack preserveJobs: false secret: osp-secret uniquePodNames: true designate: template: preserveJobs: false dns: template: options: - key: server values: - 192.168.32.3 override: service: metadata: annotations: metallb.universe.tf/address-pool: ctlplane metallb.universe.tf/allow-shared-ip: ctlplane metallb.universe.tf/loadBalancerIPs: 192.168.122.80 spec: type: LoadBalancer replicas: 2 galera: enabled: true templates: openstack: replicas: 3 secret: osp-secret storageRequest: 5G openstack-cell1: replicas: 3 secret: osp-secret storageRequest: 5G glance: apiOverrides: default: route: haproxy.router.openshift.io/timeout: 60s template: customServiceConfig: | [DEFAULT] debug = True enabled_backends = default_backend:swift [glance_store] default_backend = default_backend [default_backend] swift_store_create_container_on_put = True swift_store_auth_version = 3 swift_store_auth_address = {{ .KeystoneInternalURL }} swift_store_endpoint_type = internalURL swift_store_user = service:glance swift_store_key = {{ .ServicePassword }} databaseInstance: openstack glanceAPIs: default: networkAttachments: - storage override: service: internal: 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 replicas: 3 preserveJobs: false storage: storageClass: lvms-local-storage storageRequest: 10G uniquePodNames: true heat: apiOverride: route: {} cnfAPIOverride: route: {} enabled: true template: customServiceConfig: | [clients_heat] endpoint_type: public insecure: true databaseInstance: openstack heatAPI: override: service: internal: 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 replicas: 1 heatEngine: override: service: internal: 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 replicas: 1 preserveJobs: false secret: osp-secret horizon: apiOverride: route: {} enabled: false template: preserveJobs: false replicas: 1 secret: osp-secret ironic: enabled: true template: databaseInstance: openstack ironicAPI: override: service: internal: metadata: annotations: metallb.universe.tf/address-pool: ctlplane metallb.universe.tf/allow-shared-ip: ctlplane metallb.universe.tf/loadBalancerIPs: 192.168.122.80 spec: type: LoadBalancer replicas: 1 ironicConductors: - customServiceConfig: | [conductor] power_state_change_timeout = 120 [pxe] kernel_append_params = console=ttyS0 [neutron] cleaning_network = provisioning provisioning_network = provisioning rescuing_network = provisioning inspection_network = provisioning networkAttachments: - ironic provisionNetwork: ironic replicas: 1 storageRequest: 10G ironicInspector: customServiceConfig: | [capabilities] boot_mode = true [processing] update_pxe_enabled = false inspectionNetwork: ironic networkAttachments: - ironic override: service: internal: metadata: annotations: metallb.universe.tf/address-pool: ctlplane metallb.universe.tf/allow-shared-ip: ctlplane metallb.universe.tf/loadBalancerIPs: 192.168.122.80 spec: type: LoadBalancer preserveJobs: false replicas: 0 ironicNeutronAgent: replicas: 1 preserveJobs: false rpcTransport: oslo secret: osp-secret keystone: apiOverride: route: {} template: databaseInstance: openstack override: service: internal: 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 preserveJobs: false replicas: 3 secret: osp-secret manila: apiOverride: route: haproxy.router.openshift.io/timeout: 60s enabled: false template: manilaAPI: networkAttachments: - internalapi override: service: internal: 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 replicas: 1 manilaScheduler: replicas: 1 manilaShares: share1: networkAttachments: - storage replicas: 1 preserveJobs: false memcached: templates: memcached: replicas: 3 neutron: apiOverride: route: {} template: customServiceConfig: | [DEFAULT] vlan_transparent = true agent_down_time = 600 router_distributed = true router_scheduler_driver = neutron.scheduler.l3_agent_scheduler.ChanceScheduler allow_automatic_l3agent_failover = true debug = true default_availability_zones = zone-1,zone-2 [agent] report_interval = 300 [database] max_retries = -1 db_max_retries = -1 [keystone_authtoken] region_name = regionOne memcache_use_advanced_pool = True [oslo_messaging_notifications] driver = noop [oslo_middleware] enable_proxy_headers_parsing = true [oslo_policy] policy_file = /etc/neutron/policy.yaml [ovs] igmp_snooping_enable = true [ovn] ovsdb_probe_interval = 60000 ovn_emit_need_to_frag = true [ml2] type_drivers = geneve,vxlan,vlan,flat,local tenant_network_types = geneve,flat databaseInstance: openstack networkAttachments: - internalapi override: service: internal: 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 preserveJobs: false replicas: 3 secret: osp-secret nova: apiOverride: route: {} template: apiServiceTemplate: override: service: internal: 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 replicas: 3 cellTemplates: cell0: cellDatabaseAccount: nova-cell0 cellDatabaseInstance: openstack cellMessageBusInstance: rabbitmq hasAPIAccess: true cell1: cellDatabaseAccount: nova-cell1 cellDatabaseInstance: openstack-cell1 cellMessageBusInstance: rabbitmq-cell1 hasAPIAccess: true novaComputeTemplates: compute-ironic: computeDriver: ironic.IronicDriver metadataServiceTemplate: 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 replicas: 3 preserveJobs: false schedulerServiceTemplate: replicas: 3 secret: osp-secret octavia: enabled: true template: amphoraImageContainerImage: quay.io/gthiemonge/octavia-amphora-image apacheContainerImage: registry.redhat.io/ubi9/httpd-24:latest databaseInstance: openstack lbMgmtNetwork: availabilityZones: - zone-1 octaviaAPI: networkAttachments: - internalapi preserveJobs: false replicas: 1 octaviaHealthManager: networkAttachments: - octavia octaviaHousekeeping: networkAttachments: - octavia octaviaWorker: networkAttachments: - octavia preserveJobs: false secret: osp-secret ovn: template: ovnController: external-ids: availability-zones: - zone-1 networkAttachment: tenant nicMappings: datacentre: ocpbr ironic: ironic octavia: octbr ovnDBCluster: ovndbcluster-nb: dbType: NB networkAttachment: internalapi replicas: 3 storageRequest: 10G ovndbcluster-sb: dbType: SB networkAttachment: internalapi replicas: 3 storageRequest: 10G ovnNorthd: logLevel: info nThreads: 1 replicas: 1 resources: {} tls: {} placement: apiOverride: route: {} template: databaseInstance: openstack override: service: internal: 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 preserveJobs: false replicas: 3 secret: osp-secret rabbitmq: templates: rabbitmq: override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/loadBalancerIPs: 172.17.0.85 spec: type: LoadBalancer replicas: 3 rabbitmq-cell1: override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/loadBalancerIPs: 172.17.0.86 spec: type: LoadBalancer replicas: 3 secret: osp-secret storageClass: lvms-local-storage swift: enabled: true proxyOverride: route: {} template: swiftProxy: override: service: internal: 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 replicas: 1 swiftRing: ringReplicas: 1 swiftStorage: replicas: 1 telemetry: enabled: true template: autoscaling: aodh: databaseInstance: openstack memcachedInstance: memcached passwordSelectors: null preserveJobs: false secret: osp-secret enabled: true heatInstance: heat ceilometer: enabled: true secret: osp-secret logging: enabled: false port: 10514 metricStorage: enabled: true monitoringStack: alertingEnabled: true scrapeInterval: 30s storage: persistent: pvcStorageClass: lvms-local-storage pvcStorageRequest: 10Gi retention: 24h strategy: persistent --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: ctlplane osp/net-attach-def-type: standard name: ctlplane namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "ctlplane", "type": "macvlan", "master": "ospbr", "ipam": { "type": "whereabouts", "range": "192.168.122.0/24", "range_start": "192.168.122.30", "range_end": "192.168.122.70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: datacentre osp/net-attach-def-type: standard name: datacentre namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "datacentre", "type": "bridge", "bridge": "ospbr", "ipam": {} } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: internalapi osp/net-attach-def-type: standard name: internalapi namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "internalapi", "type": "macvlan", "master": "internalapi", "ipam": { "type": "whereabouts", "range": "172.17.0.0/24", "range_start": "172.17.0.30", "range_end": "172.17.0.70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: ironic osp/net-attach-def-type: standard name: ironic namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "ironic", "type": "bridge", "bridge": "ironic", "mtu": 1442, "ipam": { "type": "whereabouts", "range": "172.20.1.0/24", "range_start": "172.20.1.30", "range_end": "172.20.1.70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: octavia osp/net-attach-def-type: standard name: octavia namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "octavia", "type": "bridge", "bridge": "octbr", "mtu": 1442, "ipam": { "type": "whereabouts", "range": "172.23.0.0/24", "range_start": "172.23.0.30", "range_end": "172.23.0.70", "routes": [ { "dst": "172.24.0.0/16", "gw": "172.23.0.150" } ] } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: storage osp/net-attach-def-type: standard name: storage namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "storage", "type": "macvlan", "master": "storage", "ipam": { "type": "whereabouts", "range": "172.18.0.0/24", "range_start": "172.18.0.30", "range_end": "172.18.0.70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: tenant osp/net-attach-def-type: standard name: tenant namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "tenant", "type": "macvlan", "master": "tenant", "ipam": { "type": "whereabouts", "range": "172.19.0.0/24", "range_start": "172.19.0.30", "range_end": "172.19.0.70" } } --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: labels: osp/lb-addresses-type: standard name: ctlplane namespace: metallb-system spec: addresses: - 192.168.122.80-192.168.122.90 --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: labels: osp/lb-addresses-type: standard name: internalapi namespace: metallb-system spec: addresses: - 172.17.0.80-172.17.0.90 --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: labels: osp/lb-addresses-type: standard name: storage namespace: metallb-system spec: addresses: - 172.18.0.80-172.18.0.90 --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: labels: osp/lb-addresses-type: standard name: tenant namespace: metallb-system spec: addresses: - 172.19.0.80-172.19.0.90 --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: ctlplane namespace: metallb-system spec: interfaces: - ospbr ipAddressPools: - ctlplane --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: internalapi namespace: metallb-system spec: interfaces: - internalapi ipAddressPools: - internalapi --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: storage namespace: metallb-system spec: interfaces: - storage ipAddressPools: - storage --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: tenant namespace: metallb-system spec: interfaces: - tenant ipAddressPools: - tenant --- apiVersion: network.openstack.org/v1beta1 kind: NetConfig metadata: name: netconfig namespace: openstack spec: networks: - dnsDomain: ctlplane.openstack.lab mtu: 1442 name: ctlplane subnets: - allocationRanges: - end: 192.168.122.120 start: 192.168.122.100 - end: 192.168.122.200 start: 192.168.122.150 cidr: 192.168.122.0/24 gateway: 192.168.122.1 name: subnet1 - dnsDomain: internalapi.openstack.lab mtu: 1442 name: internalapi subnets: - allocationRanges: - end: 172.17.0.250 start: 172.17.0.100 cidr: 172.17.0.0/24 name: subnet1 vlan: 20 - dnsDomain: storage.openstack.lab mtu: 1442 name: storage subnets: - allocationRanges: - end: 172.18.0.250 start: 172.18.0.100 cidr: 172.18.0.0/24 name: subnet1 vlan: 21 - dnsDomain: tenant.openstack.lab mtu: 1442 name: tenant subnets: - allocationRanges: - end: 172.19.0.250 start: 172.19.0.100 cidr: 172.19.0.0/24 name: subnet1 vlan: 22