Upgrade the undercloud as described in the FRAMEWORK FOR UPGRADES (16.2 TO 17.1) Red Hat guide. Follow the Overcloud upgrade instructions till Chapter 5, in the above-mentioned guide.  
                        
                        
                        For creating the overcloud_upgrade_prepare.sh file, ensure to include  the following files, which are specific for Cisco ACI integration. 
                        
                        
                        
                           
                           - 
                              
                              Custom roles file as stated in the Customizing Roles section. 
                               
- 
                              
                              Cisco ACI OSP17.1 containers mapping environment file /home/stack/templates/ciscoaci_containers.yaml 
 
- 
                              
                              Cisco ACI specific configuration environment file ciscoaci-config.yaml. Use compatible resources as discussed in the Install Overcloud procedure (step 4).
 
Following is an example of the overcloud_upgrade_prepare.sh file with Cisco specific templates:
                        
                        
openstack overcloud upgrade prepare --yes \
  --timeout 460 \
  --templates /usr/share/openstack-tripleo-heat-templates \
  --ntp-server 172.28.184.8 \
  --stack overcloud \
  -r /home/stack/templates/custom_roles_data.yaml \
  -e /home/stack/templates/upgrades-environment.yaml \
  -e /home/stack/templates/ciscoaci_containers.yaml \
  -e /home/stack/templates/ciscoaci-config.yaml \
  -e /home/stack/overcloud-deploy/overcloud/overcloud-network-environment.yaml \
  -e /home/stack/overcloud_adopt/baremetal-deployment.yaml \
  -e /home/stack/overcloud_adopt/generated-networks-deployed.yaml \
  -e /home/stack/overcloud_adopt/generated-vip-deployed.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/nova-hw-machine-type-upgrade.yaml \
  -e /home/stack/skip_rhel_release.yaml \
  -e ~/containers-prepare-parameter.yaml
                        Proceed with the openstack upgrade process as in FRAMEWORK FOR UPGRADES (16.2 TO 17.1) Red Hat guide.
                        
                        OS Upgrade
                        
                        For an OS upgrade to RHEL-9, follow the instructions for OS upgrade as detailed in the FRAMEWORK FOR UPGRADES (16.2 TO 17.1) Red Hat guide. When creating the  overcloud_upgrade_prepare.sh file for overcloud OS upgrade, ensure to include the ACI specific templates as discussed above. 
                        
                        
                        
                           
                           - 
                              
                              Custom roles file  
- 
                              
                              Cisco ACI OSP17.1 containers mapping environment file /home/stack/templates/ciscoaci_containers.yaml 
 
- 
                              
                              Cisco ACI specific configuration environment file ciscoaci-config.yaml 
 
- 
                              
                              container-prepare-parameter.yamlfile
 The preparation of the container-prepare-parameter.yamlis similar to the one in the Openstack upgrade process. Ensure to exclude neutron-api, horizon and heat containers from all
                                 pull strategies in thecontainer-prepare-parameter.yamlfile. Here is an example of the file used during LEAPP upgrade:
 
parameter_defaults:
  ContainerImageRegistryCredentials:
    registry.redhat.io:
      mcohen2@cisco.com: 'enter password'
  ContainerImagePrepare:
  - tag_from_label: '{version}-{release}'
    set:
      namespace: registry.redhat.io/rhosp-rhel9
      name_prefix: openstack-
      name_suffix: ''
      tag: '17.1'
      rhel_containers: false
      neutron_driver: ovn
      ceph_namespace: registry.redhat.io/rhceph
      ceph_image: rhceph-6-rhel9
      ceph_tag: latest
      ceph_prometheus_namespace: registry.redhat.io/openshift4
      ceph_prometheus_image: ose-prometheus
      ceph_prometheus_tag: v4.6
      ceph_alertmanager_namespace: registry.redhat.io/openshift4
      ceph_alertmanager_image: ose-prometheus-alertmanager
      ceph_alertmanager_tag: v4.6
      ceph_node_exporter_namespace: registry.redhat.io/openshift4
      ceph_node_exporter_image: ose-prometheus-node-exporter
      ceph_node_exporter_tag: v4.6
      ceph_grafana_namespace: registry.redhat.io/rhceph
      ceph_grafana_image: rhceph-6-dashboard-rhel9
      ceph_grafana_tag: latest
    push_destination: true
    excludes:
    - horizon
    - heat-engine
    - neutron-server