diff --git a/source/about.rst b/source/about.rst
index 2e6505a..583b2f5 100644
--- a/source/about.rst
+++ b/source/about.rst
@@ -551,6 +551,63 @@
 DNS domains or SSL certificates to encrypt Console Proxy or file copy
 communications.
 
+Issues Fixed in 4.3.2
+---------------------
+
+Apache CloudStack uses `Jira <https://issues.apache.org/jira/browse/CLOUDSTACK>`__ to track its
+issues. All new features and bugs for 4.3 have been tracked in Jira, and have a standard naming convention of "CLOUDSTACK-NNNN" where "NNNN" is the issue number.
+
+==========================================================================  ===================================================================================
+Bug ID                                                                      Description
+==========================================================================  ===================================================================================
+`CLOUDSTACK-3383 <https://issues.apache.org/jira/browse/CLOUDSTACK-3383>`_   Fetch CPU utilization more reliable....
+`CLOUDSTACK-3401 <https://issues.apache.org/jira/browse/CLOUDSTACK-3401>`_   Usage records are ordered by start_date which is not unique. While listing lar...
+`CLOUDSTACK-5785 <https://issues.apache.org/jira/browse/CLOUDSTACK-5785>`_   VM display name cell not updated upon detaching volume from VM...
+`CLOUDSTACK-5992 <https://issues.apache.org/jira/browse/CLOUDSTACK-5992>`_   default values of configuraiton parameters in configuration table are set NULL...
+`CLOUDSTACK-6011 <https://issues.apache.org/jira/browse/CLOUDSTACK-6011>`_   When detach is called on a deleted volume, avoid the NPE and throw an appropri...
+`CLOUDSTACK-6075 <https://issues.apache.org/jira/browse/CLOUDSTACK-6075>`_   Increase the ram size for router service offering...
+`CLOUDSTACK-6261 <https://issues.apache.org/jira/browse/CLOUDSTACK-6261>`_   remove the forceful timeout setting when login to NetScaler....
+`CLOUDSTACK-6371 <https://issues.apache.org/jira/browse/CLOUDSTACK-6371>`_   Set snapshot size in copycommand answer during snapshot backup...
+`CLOUDSTACK-6432 <https://issues.apache.org/jira/browse/CLOUDSTACK-6432>`_   Blocking DHCP server to service DNS outside network...
+`CLOUDSTACK-6438 <https://issues.apache.org/jira/browse/CLOUDSTACK-6438>`_   XAPI plugins must be copied to XS master first...
+`CLOUDSTACK-6463 <https://issues.apache.org/jira/browse/CLOUDSTACK-6463>`_   password is not set for VMs created from password enabled template...
+`CLOUDSTACK-6466 <https://issues.apache.org/jira/browse/CLOUDSTACK-6466>`_   cpu and ram is not getting updated correctly in usage_vm_instance table for us...
+`CLOUDSTACK-6647 <https://issues.apache.org/jira/browse/CLOUDSTACK-6647>`_   appending instance name with custom supplied info that contains - character ca...
+`CLOUDSTACK-6652 <https://issues.apache.org/jira/browse/CLOUDSTACK-6652>`_   CLONE - [Automation] Vmware-  System's StartCommand failed with "NumberFormatE...
+`CLOUDSTACK-6669 <https://issues.apache.org/jira/browse/CLOUDSTACK-6669>`_   Support volume resize in usage server...
+`CLOUDSTACK-6738 <https://issues.apache.org/jira/browse/CLOUDSTACK-6738>`_   Add configs in developer prefill to avoid restart mgmt server...
+`CLOUDSTACK-6743 <https://issues.apache.org/jira/browse/CLOUDSTACK-6743>`_   Use edge-triggering in MessageDetector to handle bogus wakeup gracefully. Leve...
+`CLOUDSTACK-6761 <https://issues.apache.org/jira/browse/CLOUDSTACK-6761>`_   Fixed removing proxy arp rule on deleting static nat or PF rule on ip...
+`CLOUDSTACK-6805 <https://issues.apache.org/jira/browse/CLOUDSTACK-6805>`_   UI > create account > fix a bug that account creation failed when password con...
+`CLOUDSTACK-6859 <https://issues.apache.org/jira/browse/CLOUDSTACK-6859>`_   Management Server PermGen run out of memory after some time due to class leak...
+`CLOUDSTACK-6892 <https://issues.apache.org/jira/browse/CLOUDSTACK-6892>`_   use lowercase noredist, as package.sh lowercases build type...
+`CLOUDSTACK-6970 <https://issues.apache.org/jira/browse/CLOUDSTACK-6970>`_   Protect event interpretion from causing NPE exception...
+`CLOUDSTACK-7250 <https://issues.apache.org/jira/browse/CLOUDSTACK-7250>`_   [vCenter 5.5] SourceNAT,StaticNAT and Portfowrding is not working with Vmware ...
+`CLOUDSTACK-7415 <https://issues.apache.org/jira/browse/CLOUDSTACK-7415>`_   Host remains in Alert after vCenter restart....
+`CLOUDSTACK-7517 <https://issues.apache.org/jira/browse/CLOUDSTACK-7517>`_   loading ftp modules in VR...
+`CLOUDSTACK-7589 <https://issues.apache.org/jira/browse/CLOUDSTACK-7589>`_   VM not Starting and always stuck in Stopped state after management server rest...
+`CLOUDSTACK-7633 <https://issues.apache.org/jira/browse/CLOUDSTACK-7633>`_   fix "Provides" in most LSB headers...
+`CLOUDSTACK-7658 <https://issues.apache.org/jira/browse/CLOUDSTACK-7658>`_   Upgrading debian packages as part of system vm template build...
+`CLOUDSTACK-7674 <https://issues.apache.org/jira/browse/CLOUDSTACK-7674>`_   throw an exception when encountered...
+`CLOUDSTACK-7679 <https://issues.apache.org/jira/browse/CLOUDSTACK-7679>`_   bump up the RabbitMQ AMQP java client version from 2.8.7 to 3.3.5...
+`CLOUDSTACK-7700 <https://issues.apache.org/jira/browse/CLOUDSTACK-7700>`_   Volume Snapshot Async Job returns Success for a failed operation...
+`CLOUDSTACK-7752 <https://issues.apache.org/jira/browse/CLOUDSTACK-7752>`_   Fixed deployment planner stuck in infinite loop. If we create VM with shared s...
+`CLOUDSTACK-7822 <https://issues.apache.org/jira/browse/CLOUDSTACK-7822>`_   Fixed SSL Cert Tests and relaxed chain validation...
+`CLOUDSTACK-7837 <https://issues.apache.org/jira/browse/CLOUDSTACK-7837>`_   [UI] Make the Source CIDR column wide enough to fit the CIDR value without ell...
+`CLOUDSTACK-7849 <https://issues.apache.org/jira/browse/CLOUDSTACK-7849>`_   Sorting projects alphabetically in drop down menu...
+`CLOUDSTACK-7855 <https://issues.apache.org/jira/browse/CLOUDSTACK-7855>`_   NIC3 should set MTU and not NIC1 for storage network nic...
+`CLOUDSTACK-7869 <https://issues.apache.org/jira/browse/CLOUDSTACK-7869>`_   Add simulator support for findHostsForMigration API...
+`CLOUDSTACK-7871 <https://issues.apache.org/jira/browse/CLOUDSTACK-7871>`_   allow VM and template details update using update APIs...
+`CLOUDSTACK-7872 <https://issues.apache.org/jira/browse/CLOUDSTACK-7872>`_   network getting shutdown inspite of running VM's in the network...
+`CLOUDSTACK-7877 <https://issues.apache.org/jira/browse/CLOUDSTACK-7877>`_   The NET.IPRELEASE events are not added to usage_event on IP range deletion fro...
+`CLOUDSTACK-7884 <https://issues.apache.org/jira/browse/CLOUDSTACK-7884>`_   Cloudstack MS is not responding (happening randomly) after some restart....
+`CLOUDSTACK-7886 <https://issues.apache.org/jira/browse/CLOUDSTACK-7886>`_   cloudstackoperations like deployvm,deleteNW are failing if CS fail to contact ...
+`CLOUDSTACK-7917 <https://issues.apache.org/jira/browse/CLOUDSTACK-7917>`_   Validating Load Balancer Rule when updating LB + unit test...
+`CLOUDSTACK-7937 <https://issues.apache.org/jira/browse/CLOUDSTACK-7937>`_   CloudStack accepts unauthenticated LDAP binds...
+`CLOUDSTACK-7951 <https://issues.apache.org/jira/browse/CLOUDSTACK-7951>`_   Limit amount of memory used by cloudstack-agent jsvc...
+`CLOUDSTACK-7952 <https://issues.apache.org/jira/browse/CLOUDSTACK-7952>`_   Remove private key from SslCertResponse (listSslCerts)...
+`CLOUDSTACK-7954 <https://issues.apache.org/jira/browse/CLOUDSTACK-7954>`_   ListTags API is ignoring the resourceID and displaying...
+`CLOUDSTACK-7966 <https://issues.apache.org/jira/browse/CLOUDSTACK-7966>`_   remove snapshot_store_ref entry, in which role is Primary, during storage GC...
 
 Issues Fixed in 4.3.1
 ---------------------
@@ -761,6 +818,22 @@
 `CLOUDSTACK-1637 <https://issues.apache.org/jira/browse/CLOUDSTACK-1637>`_  LDAP:UI related issues...
 ==========================================================================  ===================================================================================
 
+Known Issues in 4.3.2
+---------------------
+
+Apache CloudStack uses
+`Jira <https://issues.apache.org/jira/browse/CLOUDSTACK>`__ to track its issues. All new features and bugs for 4.3 have been tracked in Jira, and have a standard naming convention of "CLOUDSTACK-NNNN" where "NNNN" is the issue number.
+
+==========================================================================  ===================================================================================
+Bug ID                                                                      Description
+==========================================================================  ===================================================================================
+`CLOUDSTACK-6014 <https://issues.apache.org/jira/browse/CLOUDSTACK-6014>`_  Contrail:MS:syncDomain java.net.ConnectException: Connection refused ...
+`CLOUDSTACK-6070 <https://issues.apache.org/jira/browse/CLOUDSTACK-6070>`_  Contrail:Static NAT: Unable to create virtual-machine-interface ...
+`CLOUDSTACK-6071 <https://issues.apache.org/jira/browse/CLOUDSTACK-6071>`_  Contrail:MS:DB: DBSync exceptions in MS log ...
+`CLOUDSTACK-6088 <https://issues.apache.org/jira/browse/CLOUDSTACK-6088>`_  LDAP Server for User Authentication doc doesn't specify how authenticate a user ...
+`CLOUDSTACK-6270 <https://issues.apache.org/jira/browse/CLOUDSTACK-6270>`_  show error unable to create a deployment for vm during completely add instance ...
+`CLOUDSTACK-7151 <https://issues.apache.org/jira/browse/CLOUDSTACK-7151>`_  vmware: Type of vSwitch was not detected correctly while preparing public/guest ...
+`CLOUDSTACK-7297 <https://issues.apache.org/jira/browse/CLOUDSTACK-7297>`_  HA VM options is disabled for VMs created on CLVM primary storage...
 
 Known Issues in 4.3.1
 ---------------------
diff --git a/source/conf.py b/source/conf.py
index f2bc8d5..3b82526 100644
--- a/source/conf.py
+++ b/source/conf.py
@@ -75,7 +75,7 @@
 # The short X.Y version.
 version = '4.3'
 # The full version, including alpha/beta/rc tags.
-release = '4.3.1'
+release = '4.3.2'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/source/rnotes.rst b/source/rnotes.rst
index f2f88a4..32d0d33 100644
--- a/source/rnotes.rst
+++ b/source/rnotes.rst
@@ -143,6 +143,335 @@
       files are compliant and this test is passed.
 
 
+Upgrade from 4.3.1 to 4.3.2
+---------------------------
+
+This section will guide you from CloudStack 4.3.1 to CloudStack 4.3.2.
+
+Any steps that are hypervisor-specific will be called out with a note.
+
+We recommend reading through this section once or twice before beginning
+your upgrade procedure, and working through it on a test system before
+working on a production system.
+
+.. note:: The following upgrade instructions should be performed regardless of hypervisor type.
+
+#.
+
+   Most users of CloudStack manage the installation and upgrades of
+   CloudStack with one of Linux's predominant package systems, RPM or
+   APT. This guide assumes you'll be using RPM and Yum (for Red Hat
+   Enterprise Linux or CentOS), or APT and Debian packages (for Ubuntu).
+
+#.
+
+   Create RPM or Debian packages (as appropriate) and a repository from
+   the 4.3 source, or check the Apache CloudStack downloads page at
+   `http://cloudstack.apache.org/downloads.html <http://cloudstack.apache.org/downloads.html>`_
+   for package repositories supplied by community members.
+
+   Instructions for creating packages from the CloudStack source are in
+   the `CloudStack Installation Guide`_.
+
+#.
+
+   Stop your management server or servers. Run this on all management
+   server hosts:
+
+   .. sourcecode:: bash
+
+       $ sudo service cloudstack-management stop
+
+#.
+
+   If you are running a usage server or usage servers, stop those as
+   well:
+
+   .. sourcecode:: bash
+
+       $ sudo service cloudstack-usage stop
+
+#.
+
+   Make a backup of your MySQL database. If you run into any issues or
+   need to roll back the upgrade, this will assist in debugging or
+   restoring your existing environment. You'll be prompted for your
+   password.
+
+   .. sourcecode:: bash
+
+       $ mysqldump -u root -p cloud > cloudstack-backup.sql
+       $ mysqldump -u root -p cloud_usage > cloud_usage-backup.sql
+
+#.
+
+   (KVM Only) If primary storage of type local storage is in use, the
+   path for this storage needs to be verified to ensure it passes new
+   validation. Check local storage by querying the cloud.storage\_pool
+   table:
+
+   .. sourcecode:: bash
+
+       $ mysql -u cloud -p -e "select id,name,path from cloud.storage_pool where pool_type='Filesystem'"
+
+   If local storage paths are found to have a trailing forward slash,
+   remove it:
+
+   .. sourcecode:: bash
+
+       $ mysql -u cloud -p -e 'update cloud.storage_pool set path="/var/lib/libvirt/images" where path="/var/lib/libvirt/images/"';
+
+#.
+
+   If you are using Ubuntu, follow this procedure to upgrade your
+   packages. If not, skip to step *upgrade-rpm-packages-4.3*.
+
+   .. note::
+      **Community Packages:** This section assumes you're using the community supplied packages for CloudStack.
+      If you've created your own packages and APT repository, substitute your own URL for the ones used in these examples.
+
+   #.
+
+      Now update your apt package list:
+
+      .. sourcecode:: bash
+
+          $ sudo apt-get update
+
+   #.
+
+      Now that you have the repository configured, it's time to upgrade
+      the ``cloudstack-management`` package.
+
+      .. sourcecode:: bash
+
+          $ sudo apt-get upgrade cloudstack-management
+          $ sudo apt-get upgrade cloudstack-usage
+
+   #.
+
+      Now it's time to start the management server
+
+      .. sourcecode:: bash
+
+          $ sudo service cloudstack-management start
+
+   #.
+
+      If you use it, start the usage server
+
+      .. sourcecode:: bash
+
+          $ sudo service cloudstack-usage start
+
+#.
+
+   (VMware only) Additional steps are required for each VMware cluster.
+   These steps will not affect running guests in the cloud. These steps
+   are required only for clouds using VMware clusters:
+
+   #.
+
+      Stop the Management Server:
+
+      .. sourcecode:: bash
+
+          $ sudo service cloudstack-management stop
+
+   #.
+
+      Generate the encrypted equivalent of your vCenter password:
+
+      .. sourcecode:: bash
+
+          $ java -classpath /usr/share/cloudstack-common/lib/jasypt-1.9.0.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI encrypt.sh input="_your_vCenter_password_" password="`cat /etc/cloudstack/management/key`" verbose=false
+
+      Store the output from this step, we need to add this in
+      cluster\_details table and vmware\_data\_center tables in place of
+      the plain text password
+
+   #.
+
+      Find the ID of the row of cluster\_details table that you have to
+      update:
+
+      .. sourcecode:: bash
+
+          $ mysql -u <username> -p<password>
+
+      .. sourcecode:: bash
+
+          select * from cloud.cluster_details;
+
+   #.
+
+      Update the plain text password with the encrypted one
+
+      .. sourcecode:: bash
+
+          update cloud.cluster_details set value = '_ciphertext_from_step_1_' where id = _id_from_step_2_;
+
+   #.
+
+      Confirm that the table is updated:
+
+      .. sourcecode:: bash
+
+          select * from cloud.cluster_details;
+
+   #.
+
+      Find the ID of the correct row of vmware\_data\_center that you
+      want to update
+
+      .. sourcecode:: bash
+
+          select * from cloud.vmware_data_center;
+
+   #.
+
+      update the plain text password with the encrypted one:
+
+      .. sourcecode:: bash
+
+          update cloud.vmware_data_center set password = '_ciphertext_from_step_1_' where id = _id_from_step_5_;
+
+   #.
+
+      Confirm that the table is updated:
+
+      .. sourcecode:: bash
+
+          select * from cloud.vmware_data_center;
+
+   #.
+
+      Start the CloudStack Management server
+
+      .. sourcecode:: bash
+
+          $ sudo service cloudstack-management start
+
+#.
+
+   (KVM only) Additional steps are required for each KVM host. These
+   steps will not affect running guests in the cloud. These steps are
+   required only for clouds using KVM as hosts and only on the KVM
+   hosts.
+
+   #.
+
+      Configure the CloudStack apt repository as detailed above.
+
+   #.
+
+      Stop the running agent.
+
+      .. sourcecode:: bash
+
+          $ sudo service cloudstack-agent stop
+
+   #.
+
+      Update the agent software.
+
+      .. sourcecode:: bash
+
+          $ sudo apt-get update cloudstack-agent
+
+   #.
+
+      Verify that the file
+      ``/etc/cloudstack/agent/environment.properties`` has a line that
+      reads:
+
+      .. sourcecode:: bash
+
+          paths.script=/usr/share/cloudstack-common
+
+      If not, add the line.
+
+   #.
+
+      Start the agent.
+
+      .. sourcecode:: bash
+
+          $ sudo service cloudstack-agent start
+
+#.
+
+   If you are using CentOS or RHEL, follow this procedure to upgrade
+   your packages. If not, skip to step *restart-system-vms-4.3*.
+
+   .. note::
+      **Community Packages:** This section assumes you're using the community supplied packages for CloudStack.
+      If you've created your own packages and yum repository, substitute your own URL for the ones used in these examples.
+
+   #.
+
+      Now that you have the repository configured, it's time to install
+      the ``cloudstack-management`` package by upgrading the older
+      ``cloudstack-management`` package.
+
+      .. sourcecode:: bash
+
+          $ sudo yum upgrade cloudstack-management
+          $ sudo yum upgrade cloudstack-usage
+
+   #.
+
+      Now it's time to restart the management server
+
+      .. sourcecode:: bash
+
+          $ sudo service cloudstack-management start
+
+   #.
+
+      For KVM hosts, upgrade the ``cloudstack-agent`` package
+
+      .. sourcecode:: bash
+
+          $ sudo yum upgrade cloudstack-agent
+
+   #.
+
+      Verify that the file
+      ``/etc/cloudstack/agent/environment.properties`` has a line that
+      reads:
+
+      .. sourcecode:: bash
+
+          paths.script=/usr/share/cloudstack-common
+
+      If not, add the line.
+
+   #.
+
+      Restart the agent:
+
+      .. sourcecode:: bash
+
+          $ sudo service cloudstack-agent stop
+          $ sudo killall jsvc
+          $ sudo service cloudstack-agent start
+
+#.
+
+   Now it's time to restart the management server
+
+   .. sourcecode:: bash
+
+       $ sudo service cloudstack-management start
+
+#.
+
+   .. note:: **For Xen Hosts: Copy vhd-utils:** This step is only for CloudStack installs that are using Xen hosts.
+
+   Copy the file ``vhd-utils`` to
+   ``/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver``.
+
 Upgrade from 4.3.0 to 4.3.1
 ---------------------------
 
