Configuration File Changes
This appendix describes the changes you need to make to your configuration files for the upgrade from Contrail Cloud v13.6 to Contrail Cloud v16.2.
The configuration files shown here only contain snippets of what's changed fromv13.6 to v16.2. For the complete configuration, see: Sample Configuration Files v16.2.
v13 to v16 Configuration File Changes
Make the following changes to your YAML configuration files during the Prepare for the Upgrade section of this guide.
-
In your site.yml configuration file, copy and paste the
upgrade_plan
section. Change the configuration variables to match your specific deployment environment:# Copyright 2021 Juniper Networks, Inc. All rights reserved. # Licensed under the Juniper Networks Script Software License (the "License"). # You may not use this script file except in compliance with the License, which is located at # http://www.juniper.net/support/legal/scriptlicense/ # Unless required by applicable law or otherwise agreed to in writing by the parties, # software distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # # # The upgrade_plan provides the blueprint for working through the deployment upgrade. # The plan is defined as a series of "batches". Each batch is processed by the # contrail-cloud-upgrade-overcloud-step2.sh, one batch for each run. Once a batch is # successfully completed a lock file is created to indicate that state. The next run # of the contrail-cloud-upgrade-overcloud-step2.sh script will find the next unfinished # batch to process. upgrade_plan: # batches is an array of steps necessary to complete the full upgrade. # Each batch defines: # name: a unique batch name (used for lock file naming) # upgrade_type: either "sequence" (one node at a time) or # "parallel" (all nodes together) # nodes_list: a list of nodes to apply the upgrade to. The special # keyword "ControlPlane" represents the Openstack and Contrail # control plane roles. For each of these roles, the upgrade # will be performed on a single instance at a time sequentially # until all roles instances are upgraded. batches: # The first batch should always be the control plane. - name: controlplane upgrade_type: sequence nodes_list: - ControlPlane # This batch is used to upgrade all the DPDK and kernel computes in rack0 in parallel. - name: computenodes_rack0 upgrade_type: parallel nodes_list: - overcloudx51-compdpdk0hw2-0 - overcloudx51-compkernel0hw0-0 - overcloudx51-compkernel0hw1-0 # This batch is used to upgrade all the DPDK and kernel computes in rack1 in parallel. - name: computenodes_rack1 upgrade_type: parallel nodes_list: - overcloudx51-compdpdk1hw3-0 - overcloudx51-compkernel1hw0-0 - overcloudx51-compkernel1hw1-0 # This batch is used to upgrade all the SRIOV computes in sequence (just an example). - name: sriovnodes upgrade_type: sequence nodes_list: - overcloudx51-compsriov0hw4-0 - overcloudx51-compsriov1hw5-0 # Batch to upgrade ceph storage nodes. To ensure the integrity of the ceph cluster, # each role instance will be upgraded sequentially. - name: cephnodes upgrade_type: sequence nodes_list: - overcloudx51-cephstorage0hw6-0 - overcloudx51-cephstorage0hw6-1 - overcloudx51-cephstorage1hw7-0 # Path to a storage share that will be mounted with NFS and used for backup. # This NFS share will be mounted by the jumphost and control hosts during the upgrade. nfs_path: "nfs.my-domain.com:/nfs"
- In your control-host.yml file, configure the interfaces section
with the following snippet. The configurations include updates to the interface type
(ovs-bridges to standard interfaces) and interface network names (emX to enp(x+1)s0).Note:
Do not change the order of the interfaces.
- type: interface name: eno1 nm_controlled: true use_dhcp: true - type: linux_bond name: bond0 nm_controlled: true use_dhcp: false bonding_options: "mode=802.3ad xmit_hash_policy=layer3+4 lacp_rate=fast updelay=1000 miimon=100" members: - name: ens7f0 type: interface use_dhcp: false nm_controlled: true primary: true - name: ens7f1 type: interface use_dhcp: false nm_controlled: true control_hosts: vm_interfaces: - interface: enp1s0 physical_interface: eno1 - interface: enp2s0 physical_interface: eno2 - interface: enp3s0 physical_interface: bond0
- Strictly define all interfaces, even interfaces that you don't use, to not use DHCP as
shown in this example. The config/overcloud-nics.yml interfaces must
match the interface names provided in the config/control-hosts.yml
vm_interfaces
configuration.- type: interface name: nic2 use_dhcp: false
- In your vault-data.yml file (using ansible-vault-edit). Add
configuration changes which include the new RHVM configuration.
vault: rhvm: vm: # rhvm user name user: "contrail" # password for the rhvm vm user password: "c0ntrail123" # root password for the rhvm VM root_password: "c0ntrail123" # keystone admin password admin_password: "c0ntrail123" # Passphrase used to encrypt ssh key of rhvm user. # If not defined ssh private key will not be encrypted. # ssh_key_passphrase: "c0ntrail123" vnc: # VNC console password for the rhvm VM password: "contrail123"
- In your site.yml configuration file, remove any unused VM
definitions as shown in the example
below.
control_hosts: vm: contrail-analytics: ... contrail_controller: ... contrail_anaylitcs_database ...
- In your site.yml configuration file, add your new organization for
Contrail Cloud
16:
global: rhel: # Contrail Cloud Activation Key # These details are provided when you request an activation key from # contrail cloud subscriptions <contrail_cloud_subscriptions@juniper.net> # satellite: #SATELLITE_KEY should be defined in vault-data.yml file #SATELLITE_ORG organization: "ContrailCloud16" #SATELLITE_FQDN fqdn: contrail-cloud-satellite.juniper.net
- In your site.yml configuration file, Update your storage
configuration to also include mount point for control-hosts storage volumes in Contrail
Cloud
16:
control_hosts: storage: ssd_storage: mountpoint: "/srv/ssd" type: logical disk: - "/dev/sdb"
- In your site.yml configuration file, apply all needed
extra_configs
for computes as per samples/features/extra-config/site.yml:# Extra config allows to provide any Heat variable (including those not used by ContrailCloud) overcloud: extra_config: # Configure NetworkDeploymentActions to always re-run os-net-config # NetworkDeploymentActions: ['CREATE','UPDATE'] ContrailDpdkOptions: "--vr_mempool_sz 65536 --dpdk_txd_sz 2048 --dpdk_rxd_sz 2048" ComputeDpdkParameters: # ComputeDpdk specific parameters which will override the defaults # ComputeDpdk - use amd_iommu if using AMD CPU KernelArgs: "amd_iommu=on iommu=pt default_hugepagesz=1GB hugepagesz=1G hugepages=64 hugepagesz=2M hugepages=2048 isolcpus=2-9,22-29" ContrailDpdkHugepages1GB: 64 ContrailDpdkHugepages2MB: 2048 IsolCpusList: "2-9,22-29" NovaVcpuPinSet: ['4-9','24-29'] ExtraSysctlSettings: vm.nr_hugepages: value: 64 vm.max_map_count: value: 128960 ComputeKernelParameters: # ComputeKernel specific parameters which will override the defaults # ComputeKernel - use intel_iommu if using Intel CPU KernelArgs: "intel_iommu=on iommu=pt default_hugepagesz=1GB hugepagesz=1G hugepages=64 hugepagesz=2M hugepages=2048" ContrailVrouterHugepages1GB: 64 ContrailVrouterHugepages2MB: 2048 ExtraSysctlSettings: vm.nr_hugepages: value: 64 vm.max_map_count: value: 128960 NovaSchedulerDefaultFilters: - RetryFilter - AvailabilityZoneFilter - RamFilter - DiskFilter - ComputeFilter - ComputeCapabilitiesFilter - ImagePropertiesFilter - ServerGroupAntiAffinityFilter - ServerGroupAffinityFilter - AggregateInstanceExtraSpecsFilter - NUMATopologyFilter # Note: applied to compute and dpdkcompute NovaVcpuPinSet: ['4-11','28-35','13-23','37-47'] NovaComputeExtraConfig: nova::cpu_allocation_ratio: 1.0 nova::ram_allocation_ratio: 1.0 nova::disk_allocation_ratio: 1.0 ContrailDpdkExtraConfig: nova::cpu_allocation_ratio: 1.0 nova::ram_allocation_ratio: 1.0 nova::disk_allocation_ratio: 1.0 ControllerExtraConfig: nova::config::nova_config: filter_scheduler/build_failure_weight_multiplier: value: 10000.0
overcloud: extra_config: ComputeDpdk2Hw2Parameters: KernelArgs: "intel_iommu=on iommu=pt default_hugepagesz=1GB hugepagesz=1G hugepages=64 hugepagesz=2M hugepages=2048" ContrailDpdkOptions: "--vr_mempool_sz 131072 --dpdk_txd_sz 2048 --dpdk_rxd_sz 2048 --vr_flow_entries=4000000" ComputeKernel0Hw0Parameters: KernelArgs: "intel_iommu=on iommu=pt default_hugepagesz=1GB hugepagesz=1G hugepages=64 hugepagesz=2M hugepages=2048" ContrailVrouterHugepages1GB: 64 ContrailVrouterHugepages2MB: 2048 ComputeSriov1Hw3Parameters: KernelArgs: "intel_iommu=on iommu=pt default_hugepagesz=1GB hugepagesz=1G hugepages=64 hugepagesz=2M hugepages=2048" ContrailSriovHugepages1GB: 64 ContrailSriovHugepages2MB: 2048
- Add the K8s configuration in your site.yml configuration file. For
more information about configuring K8s, see the Contrail Cloud Deployment Guide for
v16.
control_hosts: vm: # VMs for ContrailController role contrail-k8s: disk: # Root disk vda: # Virsh storage pool (see storage above) pool: hdd_storage k8s: external_vip_ip: internal_api_vip_ip: