Bug 1742202

Summary: [Docs] The EC2 Metadata IP 169.254.169.254 is problematic with routed spine/leaf
Product: Red Hat OpenStack Reporter: Greg Rakauskas <gregraka>
Component: documentationAssignee: Greg Rakauskas <gregraka>
Status: CLOSED CURRENTRELEASE QA Contact: RHOS Documentation Team <rhos-docs>
Severity: high Docs Contact:
Priority: low    
Version: 14.0 (Rocky)CC: broskos, ccopello, dcadzow, dsneddon, gregraka, jowilkin, jzaher, rhos-docs, sputhenp, stesmith
Target Milestone: zstreamKeywords: Triaged, ZStream
Target Release: 14.0 (Rocky)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: docs-accepted
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1740401 Environment:
Last Closed: 2019-08-16 16:53:14 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1659596, 1740401, 1742203    
Bug Blocks:    

Comment 2 Greg Rakauskas 2019-08-16 16:53:14 UTC
Hi,

In the RHOSP 14 "Spine Leaf Networking" document, I have removed all references 
to the Compute metadata service. 

Specifically, these changes are:

   A. In the the topic, "4.3. Creating a custom NIC Configuration:"

      i. Removed step #4:

         4. Scroll to the EC2MetadataIp parameter in the parameters section. 
            This parameter resembles the following snippet:

            EC2MetadataIp: # Override this via parameter_defaults
            description: The IP address of the EC2 metadata server.
            type: string

            Modify this parameter to suit Leaf0:

            Leaf0EC2MetadataIp: # Override this via parameter_defaults
            description: The IP address of the EC2 metadata server.
            type: string

      ii. In (former) step 6, now step 5, removed:

          - ip_netmask: 169.254.169.254/32
            next_hop:
             get_param: Leaf0EC2MetadataIp

      iii. Removed `Leaf0EC2MetadataIp` from this paragraph:

           Note that the parameters used in this case are specific to Leaf0: 
           `ControlPlane0SubnetCidr`, `Leaf0EC2MetadataIp`, and 
           `ControlPlane0DefaultRoute`. Also note the use of the CIDR for Leaf0 
           on the provisioning network (192.168.10.0/24), which is used as a 
           route.


   B. In the topic, "4.4. Creating custom Compute NIC configurations:"

      i. Removed step #4:

	 4. Scroll to the EC2MetadataIp parameter in the parameters section.
            This parameter resembles the following snippet:

            EC2MetadataIp: # Override this via parameter_defaults
            description: The IP address of the EC2 metadata server.
            type: string

            Modify this parameter to suit Leaf0:

            Leaf0EC2MetadataIp: # Override this via parameter_defaults
            description: The IP address of the EC2 metadata server.
            type: string

      ii. In (former) step 6, now step 5, removed:

          - ip_netmask: 169.254.169.254/32
            next_hop:
             get_param: Leaf0EC2MetadataIp
  
      iii. Removed `Leaf0EC2MetadataIp` from this paragraph:

           Note that the parameters used in this case are specific to Leaf0: 
           `ControlPlane0SubnetCidr`, `Leaf0EC2MetadataIp`, and 
           `ControlPlane0DefaultRoute`. Also note the use of the CIDR for Leaf0 
           on the provisioning network (192.168.10.0/24), which is used as a 
           route.

      iv. In (former) step 9, now step 8, removed this bullet item:

          - Change EC2MetadataIp to Leaf1EC2MetadataIp.

      v. In (former) step 10, now step 9, removed this bullet item:

         - Change EC2MetadataIp to Leaf2EC2MetadataIp.


   C. In the the topic, "4.5. Creating custom Ceph Storage NIC configurations:"

      i. Removed step #3:

	 3. Scroll to the EC2MetadataIp parameter in the parameters section.
            This parameter resembles the following snippet:

            EC2MetadataIp: # Override this via parameter_defaults
            description: The IP address of the EC2 metadata server.
            type: string

            Modify this parameter to suit Leaf0:

            Leaf0EC2MetadataIp: # Override this via parameter_defaults
            description: The IP address of the EC2 metadata server.
            type: string

      ii. In (former) step 5, now step 4, removed:

          - ip_netmask: 169.254.169.254/32
            next_hop:
             get_param: Leaf0EC2MetadataIp
  
      iii. Removed `Leaf0EC2MetadataIp` from this paragraph:

           Note that the parameters used in this case are specific to Leaf0: 
           `ControlPlane0SubnetCidr`, `Leaf0EC2MetadataIp`, and 
           `ControlPlane0DefaultRoute`. Also note the use of the CIDR for Leaf0 
           on the provisioning network (192.168.10.0/24), which is used as a 
           route.

      iv. In (former) step 8, now step 9, removed this bullet item:

          - Change EC2MetadataIp to Leaf1EC2MetadataIp.

      v. In (former) step 9, now step 8, removed this bullet item:

         - Change EC2MetadataIp to Leaf2EC2MetadataIp.


   D. In the the topic, "4.10. Setting control plane parameters:"

      i. From the example NIC template, removed:

         - ip_netmask: 169.254.169.254/32
           next_hop:
            get_param: Leaf0EC2MetadataIp

      ii. Removed "metadata IP" from this paragraph:

          In this instance, we need to define the IP, subnet, metadata IP, and
          default route for the respective Control Plane network on Leaf 0.

      iii. Removed step #2d:

           d. Add the parameters for the EC2 metadata IPs:

              parameter_defaults:
              ...
              Leaf0EC2MetadataIp: 192.168.10.1
              Leaf1EC2MetadataIp: 192.168.11.1
              Leaf2EC2MetadataIp: 192.168.12.1

              These act as routes through the control plane for the EC2 metadata 
              service (169.254.169.254/32) and you should typically set these to
              the respective gateway for each leaf on the provisioning network.


   D. In Appendix B, "Custom NIC template:"

      i. Removed this section:
         
         # EC2 metadata server IPs
         Leaf0EC2MetadataIp:
         type: string
         Leaf1EC2MetadataIp:
         type: string
         Leaf2EC2MetadataIp:
         type: string

In Appendix C, "Example roles_data file," I found these references, which I left
UNMODIFIED:

      I. Under, "# Role: Controller0:"

         - OS::TripleO::Services::NovaMetadata


      II. Under, "# Role: Compute0:"

          deprecated_param_metadata: 'NovaComputeServerMetadata'


      III. Under, "# Role: Compute1:"

           deprecated_param_metadata: 'NovaComputeServerMetadata'


The latest OSP 14 Spine Leaf Networking doc is here:

   https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/14/html/spine_leaf_networking/configuring-the-overcloud#creating-a-custom-nic-configuration

If further changes are required, please reopen this BZ.

Thanks,
--Greg