From 76d1a543dad4a33444d22d2f481c6682e97c4a05 Mon Sep 17 00:00:00 2001 From: Joel Capitao Date: May 06 2024 16:28:05 +0000 Subject: Add CR for Caracal deployment using openstack-k8s-operators --- diff --git a/caracal-cloudsig-cr/README.md b/caracal-cloudsig-cr/README.md new file mode 100644 index 0000000..246f141 --- /dev/null +++ b/caracal-cloudsig-cr/README.md @@ -0,0 +1,7 @@ +# Contents + +This directory contains Custom Resources to deploy OpenStack RDO Caracal from CloudSIG repos +using OpenStack kubernetes operators. + +These CRs have been created for the default deployment architecture defined in install_yamls +using crc for OpenShift deployment. diff --git a/caracal-cloudsig-cr/controlplane/core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml b/caracal-cloudsig-cr/controlplane/core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml new file mode 100644 index 0000000..ee75407 --- /dev/null +++ b/caracal-cloudsig-cr/controlplane/core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml @@ -0,0 +1,425 @@ +apiVersion: core.openstack.org/v1beta1 +kind: OpenStackControlPlane +metadata: + name: openstack-galera-network-isolation +spec: + openstackclient: + template: {} + secret: osp-secret + storageClass: local-storage + #tls: + # endpoint: + # internal: + # enabled: false + # public: + # enabled: true + dns: + template: + 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 + options: + - key: server + values: + - 192.168.122.1 + replicas: 1 + cinder: + apiOverride: + route: {} + template: + databaseInstance: openstack + secret: osp-secret + 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 + cinderScheduler: + replicas: 1 + cinderBackup: + networkAttachments: + - storage + replicas: 0 # backend needs to be configured + cinderVolumes: + volume1: + networkAttachments: + - storage + replicas: 0 # backend needs to be configured + glance: + apiOverrides: + default: + route: {} + template: + databaseInstance: openstack + storageClass: "" + storageRequest: 10G + secret: osp-secret + keystoneEndpoint: default + glanceAPIs: + default: + type: single + replicas: 1 + 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 + networkAttachments: + - storage + keystone: + apiOverride: + route: {} + template: + 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 + databaseInstance: openstack + secret: osp-secret + galera: + enabled: true + templates: + openstack: + storageRequest: 500M + secret: osp-secret + replicas: 1 + openstack-cell1: + storageRequest: 500M + secret: osp-secret + replicas: 1 + memcached: + templates: + memcached: + replicas: 1 + neutron: + apiOverride: + route: {} + template: + 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 + databaseInstance: openstack + secret: osp-secret + networkAttachments: + - internalapi + barbican: + apiOverride: + route: {} + template: + databaseInstance: openstack + secret: osp-secret + barbicanAPI: + replicas: 1 + 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 + barbicanWorker: + replicas: 1 + barbicanKeystoneListener: + replicas: 1 + horizon: + apiOverride: + route: {} + template: + replicas: 1 + 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 + 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 + cellTemplates: + cell0: + conductorServiceTemplate: + containerImage: "" + metadataServiceTemplate: + containerImage: "" + noVNCProxyServiceTemplate: + containerImage: "" + hasAPIAccess: true + cellDatabaseAccount: nova-cell0 + cell1: + conductorServiceTemplate: + containerImage: "" + metadataServiceTemplate: + containerImage: "" + noVNCProxyServiceTemplate: + containerImage: "" + hasAPIAccess: true + cellDatabaseAccount: nova-cell1 + cellDatabaseInstance: openstack + cellMessageBusInstance: rabbitmq + schedulerServiceTemplate: {} + secret: osp-secret + manila: + apiOverride: + route: {} + template: + manilaAPI: + replicas: 1 + 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 + manilaScheduler: + replicas: 1 + manilaShares: + share1: + replicas: 1 + networkAttachments: + - storage + ovn: + template: + ovnDBCluster: + ovndbcluster-nb: + dbType: NB + storageRequest: 10G + networkAttachment: internalapi + ovndbcluster-sb: + dbType: SB + storageRequest: 10G + networkAttachment: internalapi + ovnNorthd: + networkAttachment: internalapi + ovnController: + external-ids: + system-id: "random" + ovn-bridge: "br-int" + ovn-encap-type: "geneve" + networkAttachment: tenant + placement: + apiOverride: + route: {} + template: + 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 + databaseInstance: openstack + 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 + rabbitmq-cell1: + override: + service: + metadata: + annotations: + metallb.universe.tf/address-pool: internalapi + metallb.universe.tf/loadBalancerIPs: 172.17.0.86 + spec: + type: LoadBalancer + heat: + apiOverride: + route: {} + cnfAPIOverride: + route: {} + enabled: false + template: + 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 + heatCfnAPI: {} + secret: osp-secret + ironic: + enabled: false + template: + images: {} + databaseInstance: openstack + ironicAPI: + replicas: 1 + ironicConductors: + - replicas: 1 + storageRequest: 10G + ironicInspector: + replicas: 1 + ironicNeutronAgent: + replicas: 1 + secret: osp-secret + telemetry: + enabled: true + template: + metricStorage: + enabled: false + monitoringStack: + type: prometheus + autoscaling: + enabled: false + prometheus: + deployPrometheus: false + aodh: + databaseInstance: openstack + memcachedInstance: memcached + secret: osp-secret + heatInstance: heat + ceilometer: + enabled: true + secret: osp-secret + swift: + enabled: true + proxyOverride: + route: {} + template: + swiftRing: + ringReplicas: 1 + swiftStorage: + replicas: 1 + swiftProxy: + replicas: 1 + 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 + octavia: + enabled: false + template: + databaseInstance: openstack + octaviaAPI: + replicas: 1 + secret: osp-secret + octaviaHealthManager: {} + octaviaHousekeeping: {} + octaviaWorker: {} + redis: + enabled: false + designate: + enabled: false + apiOverride: + route: {} + template: + databaseInstance: openstack + secret: osp-secret + designateAPI: + 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 + designateCentral: + replicas: 1 + designateWorker: + replicas: 0 + networkAttachements: + - designate + designateProducer: + replicas: 0 + designateMdns: + replicas: 0 + networkAttachements: + - designate + designateBackendbind9: + replicas: 0 + networkAttachements: + - designate diff --git a/caracal-cloudsig-cr/controlplane/core_v1beta1_openstackversion.yaml b/caracal-cloudsig-cr/controlplane/core_v1beta1_openstackversion.yaml new file mode 100644 index 0000000..99833fe --- /dev/null +++ b/caracal-cloudsig-cr/controlplane/core_v1beta1_openstackversion.yaml @@ -0,0 +1,74 @@ +apiVersion: core.openstack.org/v1beta1 +kind: OpenStackVersion +metadata: + name: openstack-galera-network-isolation + namespace: openstack +spec: + customContainerImages: + aodhAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-aodh-api:cloudsig-caracal + aodhEvaluatorImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-aodh-evaluator:cloudsig-caracal + aodhListenerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-aodh-listener:cloudsig-caracal + aodhNotifierImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-aodh-notifier:cloudsig-caracal + barbicanAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-barbican-api:cloudsig-caracal + barbicanKeystoneListenerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-barbican-keystone-listener:cloudsig-caracal + barbicanWorkerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-barbican-worker:cloudsig-caracal + ceilometerCentralImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ceilometer-central:cloudsig-caracal + ceilometerComputeImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ceilometer-compute:cloudsig-caracal + ceilometerIpmiImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ceilometer-ipmi:cloudsig-caracal + ceilometerNotificationImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ceilometer-notification:cloudsig-caracal + cinderAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-cinder-api:cloudsig-caracal + cinderBackupImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-cinder-backup:cloudsig-caracal + cinderSchedulerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-cinder-scheduler:cloudsig-caracal + cinderVolumeImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-cinder-volume:cloudsig-caracal + edpmFrrImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-frr:cloudsig-caracal + edpmIscsidImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-iscsid:cloudsig-caracal + edpmLogrotateCrondImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-cron:cloudsig-caracal + edpmMultipathdImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-multipathd:cloudsig-caracal + edpmNeutronMetadataAgentImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-neutron-metadata-agent-ovn:cloudsig-caracal + edpmNeutronSriovAgentImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-neutron-sriov-agent:cloudsig-caracal + edpmOvnBgpAgentImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ovn-bgp-agent:cloudsig-caracal + glanceAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-glance-api:cloudsig-caracal + heatAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-heat-api:cloudsig-caracal + heatCfnapiImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-heat-api-cfn:cloudsig-caracal + heatEngineImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-heat-engine:cloudsig-caracal + horizonImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-horizon:cloudsig-caracal + infraDnsmasqImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-neutron-server:cloudsig-caracal + infraMemcachedImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-memcached:cloudsig-caracal + ironicAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ironic-api:cloudsig-caracal + ironicConductorImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ironic-conductor:cloudsig-caracal + ironicInspectorImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ironic-inspector:cloudsig-caracal + ironicNeutronAgentImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ironic-neutron-agent:cloudsig-caracal + ironicPxeImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ironic-pxe:cloudsig-caracal + ironicPythonAgentImage: default-route-openshift-image-registry.apps-crc.testing/openstack/ironic-python-agent:cloudsig-caracal + keystoneAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-keystone:cloudsig-caracal + manilaAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-manila-api:cloudsig-caracal + manilaSchedulerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-manila-scheduler:cloudsig-caracal + manilaShareImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-manila-share:cloudsig-caracal + mariadbImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-mariadb:cloudsig-caracal + neutronAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-neutron-server:cloudsig-caracal + novaAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-nova-api:cloudsig-caracal + novaComputeImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-nova-compute:cloudsig-caracal + novaConductorImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-nova-conductor:cloudsig-caracal + novaNovncImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-nova-novncproxy:cloudsig-caracal + novaSchedulerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-nova-scheduler:cloudsig-caracal + octaviaAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-octavia-api:cloudsig-caracal + octaviaHealthmanagerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-octavia-health-manager:cloudsig-caracal + octaviaHousekeepingImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-octavia-housekeeping:cloudsig-caracal + octaviaWorkerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-octavia-worker:cloudsig-caracal + openstackClientImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-openstackclient:cloudsig-caracal + osContainerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/edpm-hardened-uefi:cloudsig-caracal + ovnControllerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ovn-controller:cloudsig-caracal + ovnControllerOvsImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ovn-base:cloudsig-caracal + ovnNbDbclusterImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ovn-nb-db-server:cloudsig-caracal + ovnNorthdImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ovn-northd:cloudsig-caracal + ovnSbDbclusterImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-ovn-sb-db-server:cloudsig-caracal + placementAPIImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-placement-api:cloudsig-caracal + rabbitmqImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-rabbitmq:cloudsig-caracal + swiftAccountImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-swift-account:cloudsig-caracal + swiftContainerImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-swift-container:cloudsig-caracal + swiftObjectImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-swift-object:cloudsig-caracal + swiftProxyImage: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-swift-proxy-server:cloudsig-caracal + cinderVolumeImages: + default: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-cinder-volume:cloudsig-caracal + manilaShareImages: + default: default-route-openshift-image-registry.apps-crc.testing/openstack/openstack-manila-share:cloudsig-caracal diff --git a/caracal-cloudsig-cr/controlplane/kustomization.yaml b/caracal-cloudsig-cr/controlplane/kustomization.yaml new file mode 100644 index 0000000..acb559f --- /dev/null +++ b/caracal-cloudsig-cr/controlplane/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ./core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml +- ./core_v1beta1_openstackversion.yaml +namespace: openstack diff --git a/caracal-cloudsig-cr/dataplane/dataplane_v1beta1_openstackdataplanedeployment.yaml b/caracal-cloudsig-cr/dataplane/dataplane_v1beta1_openstackdataplanedeployment.yaml new file mode 100644 index 0000000..3f7c392 --- /dev/null +++ b/caracal-cloudsig-cr/dataplane/dataplane_v1beta1_openstackdataplanedeployment.yaml @@ -0,0 +1,7 @@ +apiVersion: dataplane.openstack.org/v1beta1 +kind: OpenStackDataPlaneDeployment +metadata: + name: openstack-edpm +spec: + nodeSets: + - openstack-edpm diff --git a/caracal-cloudsig-cr/dataplane/dataplane_v1beta1_openstackdataplanenodeset.yaml b/caracal-cloudsig-cr/dataplane/dataplane_v1beta1_openstackdataplanenodeset.yaml new file mode 100644 index 0000000..c287366 --- /dev/null +++ b/caracal-cloudsig-cr/dataplane/dataplane_v1beta1_openstackdataplanenodeset.yaml @@ -0,0 +1,88 @@ +apiVersion: dataplane.openstack.org/v1beta1 +kind: OpenStackDataPlaneNodeSet +metadata: + name: openstack-edpm +spec: + tlsEnabled: true + env: + - name: ANSIBLE_FORCE_COLOR + value: "True" + services: + - bootstrap + - download-cache + - configure-network + - validate-network + - install-os + - configure-os + - ssh-known-hosts + - run-os + - reboot-os + - install-certs + - ovn + - neutron-metadata + - libvirt + - nova + - telemetry + preProvisioned: true + networkAttachments: + - ctlplane + nodes: + edpm-compute-0: + hostName: edpm-compute-0 + ansible: + ansibleHost: 192.168.122.100 + networks: + - name: ctlplane + subnetName: subnet1 + defaultRoute: true + fixedIP: 192.168.122.100 + - name: internalapi + subnetName: subnet1 + - name: storage + subnetName: subnet1 + - name: tenant + subnetName: subnet1 + nodeTemplate: + ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret + ansible: + ansibleVars: + edpm_network_config_template: | + --- + {% set mtu_list = [ctlplane_mtu] %} + {% for network in nodeset_networks %} + {{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }} + {%- endfor %} + {% set min_viable_mtu = mtu_list | max %} + network_config: + - type: ovs_bridge + name: {{ neutron_physical_bridge_name }} + mtu: {{ min_viable_mtu }} + use_dhcp: false + dns_servers: {{ ctlplane_dns_nameservers }} + domain: {{ dns_search_domains }} + addresses: + - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }} + routes: {{ ctlplane_host_routes }} + members: + - type: interface + name: nic1 + mtu: {{ min_viable_mtu }} + # force the MAC address of the bridge to this interface + primary: true + {% for network in nodeset_networks %} + - type: vlan + mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }} + vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }} + addresses: + - ip_netmask: + {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }} + routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }} + {% endfor %} + edpm_nodes_validation_validate_controllers_icmp: false + edpm_nodes_validation_validate_gateway_icmp: false + edpm_sshd_allowed_ranges: + - 192.168.122.0/24 + enable_debug: false + gather_facts: false + neutron_physical_bridge_name: br-ex + neutron_public_interface_name: eth0 diff --git a/caracal-cloudsig-cr/dataplane/kustomization.yaml b/caracal-cloudsig-cr/dataplane/kustomization.yaml new file mode 100644 index 0000000..30e69e8 --- /dev/null +++ b/caracal-cloudsig-cr/dataplane/kustomization.yaml @@ -0,0 +1,106 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ./dataplane_v1beta1_openstackdataplanenodeset.yaml +- ./dataplane_v1beta1_openstackdataplanedeployment.yaml +namespace: openstack +patches: +- patch: |- + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_bootstrap_command + value: "dnf -y install epel-release centos-release-openstack-caracal; dnf config-manager --disable epel-next; dnf config-manager --setopt epel.priority=100 --save epel; dnf config-manager --setopt epel.includepkgs=\"libarrow*,parquet*,python3-asyncssh,re2,python3-grpcio,grpc*,abseil*\" --save epel" + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/timesync_ntp_servers + value: + - {hostname: clock.redhat.com} + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/neutron_public_interface_name + value: eth0 + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/registry_url + value: default-route-openshift-image-registry.apps-crc.testing/openstack + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/image_prefix + value: openstack + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/image_tag + value: cloudsig-caracal + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_frr_image + value: '{{ registry_url }}/openstack-frr:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_iscsid_image + value: '{{ registry_url }}/openstack-iscsid:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_logrotate_crond_image + value: '{{ registry_url }}/openstack-cron:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_multipathd_image + value: '{{ registry_url }}/openstack-multipathd:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_neutron_dhcp_image + value: '{{ registry_url }}/openstack-neutron-dhcp-agent:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_neutron_metadata_agent_image + value: '{{ registry_url }}/openstack-neutron-metadata-agent-ovn:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_neutron_ovn_agent_image + value: '{{ registry_url }}/openstack-neutron-ovn-agent:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_neutron_sriov_image + value: '{{ registry_url }}/openstack-neutron-sriov-agent:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_nova_compute_image + value: '{{ registry_url }}/openstack-nova-compute:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_ovn_bgp_agent_image + value: '{{ registry_url }}/openstack-ovn-bgp-agent:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_ovn_bgp_agent_local_ovn_nb_db_image + value: '{{ registry_url }}/openstack-ovn-nb-db-server:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_ovn_bgp_agent_local_ovn_sb_db_image + value: '{{ registry_url }}/openstack-ovn-sb-db-server:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_ovn_bgp_agent_local_ovn_northd_image + value: '{{ registry_url }}/openstack-ovn-northd:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_ovn_bgp_agent_local_ovn_controller_image + value: '{{ registry_url }}/openstack-ovn-controller:{{ image_tag }}' + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_ovn_controller_agent_image + value: '{{ registry_url }}/openstack-ovn-controller:{{ image_tag }}' + - op: add + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_container_registry_insecure_registries + value: [ default-route-openshift-image-registry.apps-crc.testing ] + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_podman_buildah_login + value: true + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_container_registry_logins + value: { default-route-openshift-image-registry.apps-crc.testing: { kubeadmin: '' }} + - op: replace + path: /spec/nodeTemplate/ansible/ansibleVars/edpm_sshd_allowed_ranges + value: ['192.168.122.0/24'] + - op: add + path: /spec/env/0 + value: {"name": "ANSIBLE_CALLBACKS_ENABLED", "value": "profile_tasks"} + - op: replace + path: /spec/nodeTemplate/ansibleSSHPrivateKeySecret + value: dataplane-ansible-ssh-private-key-secret + - op: replace + path: /spec/nodeTemplate/ansible/ansibleUser + value: cloud-admin + - op: replace + path: /spec/nodeTemplate/extraMounts + value: + - extraVolType: Logs + volumes: + - name: ansible-logs + persistentVolumeClaim: + claimName: ansible-ee-logs + mounts: + - name: ansible-logs + mountPath: "/runner/artifacts" + target: + kind: OpenStackDataPlaneNodeSet