diff --git a/pronto_deployment_guide/run_time_deployment.rst b/pronto_deployment_guide/run_time_deployment.rst
index fb5fc38..05d4896 100644
--- a/pronto_deployment_guide/run_time_deployment.rst
+++ b/pronto_deployment_guide/run_time_deployment.rst
@@ -5,4 +5,349 @@
 ==========================
 Aether Run-Time Deployment
 ==========================
+This section describes how to install Aether edge runtime and connectivity edge applications.
+Aether provides GitOps based automated deployment,
+so we just need to create a couple of patches to aether-pod-configs repository.
+
+Before you begin
+================
+Make sure you have the edge pod checklist ready. Specifically, the following information is required in this section.
+
+* Management network subnet
+* K8S pod and service IP ranges
+* List of servers and switches, and their management IP addresses
+
+Download aether-pod-configs repository
+======================================
+First, download the aether-pod-configs repository to your development machine.
+
+.. code-block:: shell
+
+   $ cd $WORKDIR
+   $ git clone "ssh://[username]@gerrit.opencord.org:29418/aether-pod-configs"
+
+Create first patch to add ACE admin user
+========================================
+The first patch is to add a new ACE admin with full access to `EdgeApps` project.
+Here is an example review request https://gerrit.opencord.org/c/aether-pod-configs/+/21393 you can refer to with the commands below.
+Please replace "new" keyword with the name of the new ACE.
+
+.. code-block:: diff
+
+   $ cd $WORKDIR/aether-pod-configs/production
+   $ vi user_map.tfvars
+   # Add the new cluster admin user to the end of the list
+
+   $ git diff
+   diff --git a/production/user_map.tfvars b/production/user_map.tfvars
+   index c0ec3a3..6b9ffb4 100644
+   --- a/production/user_map.tfvars
+   +++ b/production/user_map.tfvars
+   @@ -40,5 +40,10 @@ user_map = {
+      username      = "menlo"
+      password      = "changeme"
+      global_roles  = ["user-base", "catalogs-use"]
+   +  },
+   +  new_admin = {
+   +    username      = "new"
+   +    password      = "changeme"
+   +    global_roles  = ["user-base", "catalogs-use"]
+      }
+   }
+
+   $ git add production/user_map.tfvars
+   $ git commit -m "Add admin user for new ACE"
+   $ git review
+
+The second patch has dependency on the first patch, so please make sure the first patch is merged before proceeding.
+
+Create second patch to install edge runtime and apps
+====================================================
+Now create another patch that will eventually install K8S and edge applications
+including monitoring and logging stacks as well as Aether connected edge.
+Unlike the first patch, this patch requires creating and editing multiple files.
+Here is an example of the patch https://gerrit.opencord.org/c/aether-pod-configs/+/21395.
+Please replace cluster names and IP addresses in this example accordingly.
+
+Update cluster_map.tfvars
+^^^^^^^^^^^^^^^^^^^^^^^^^
+The first file to edit is `cluster_map.tfvars`.
+Move the directory to `aether-pod-configs/production`, open `cluster_map.tfvars` file, and add the new ACE cluster information at the end of the map.
+This change is required to register a new K8S cluster to Rancher, and update ACC and AMP clusters for inter-cluster service discovery.
+
+.. code-block:: diff
+
+   $ cd $WORKDIR/aether-pod-configs/production
+   $ vi cluster_map.tfvars
+   # Edit the file and add the new cluster information to the end of the map
+
+   $ git diff cluster_map.tfvars
+   diff --git a/production/cluster_map.tfvars b/production/cluster_map.tfvars
+   index c944352..a6d05a8 100644
+   --- a/production/cluster_map.tfvars
+   +++ b/production/cluster_map.tfvars
+   @@ -89,6 +89,16 @@ cluster_map = {
+         kube_dns_cluster_ip     = "10.53.128.10"
+         cluster_domain          = "prd.menlo.aetherproject.net"
+         calico_ip_detect_method = "can-reach=www.google.com"
+   +    },
+   +    ace-new = {
+   +      cluster_name            = "ace-new"
+   +      management_subnets      = ["10.94.1.0/24"]
+   +      k8s_version             = "v1.18.8-rancher1-1"
+   +      k8s_pod_range           = "10.54.0.0/17"
+   +      k8s_cluster_ip_range    = "10.54.128.0/17"
+   +      kube_dns_cluster_ip     = "10.54.128.10"
+   +      cluster_domain          = "prd.new.aetherproject.net"
+   +      calico_ip_detect_method = "can-reach=www.google.com"
+         }
+      }
+   }
+
+Update vpn_map.tfvars
+^^^^^^^^^^^^^^^^^^^^^
+The second file to edit is `vpn_map.tfvars`.
+Move the directory to `aether-pod-configs/production`, open `vpn_map.tfvars` file, and add VPN tunnel information at the end of the map.
+Unless you have specific preference, set ASN and BGP peer addresses to the next available vales in the map.
+This change is required to add tunnels and router interfaces to Aether central.
+
+.. code-block:: diff
+
+   $ cd $WORKDIR/aether-pod-configs/production
+   $ vi vpn_map.tfvars
+   # Edit the file and add VPN tunnel information to the end of the map
+
+   $ git diff vpn_map.tfvars
+   diff --git a/production/vpn_map.tfvars b/production/vpn_map.tfvars
+   index 3c1f9b9..dd62fce 100644
+   --- a/production/vpn_map.tfvars
+   +++ b/production/vpn_map.tfvars
+   @@ -24,5 +24,15 @@ vpn_map = {
+      bgp_peer_ip_address_1    = "169.254.0.6"
+      bgp_peer_ip_range_2      = "169.254.1.5/30"
+      bgp_peer_ip_address_2    = "169.254.1.6"
+   +  },
+   +  ace-new = {
+   +    peer_name                = "production-ace-new"
+   +    peer_vpn_gateway_address = "111.222.333.444"
+   +    tunnel_shared_secret     = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+   +    bgp_peer_asn             = "65003"
+   +    bgp_peer_ip_range_1      = "169.254.0.9/30"
+   +    bgp_peer_ip_address_1    = "169.254.0.10"
+   +    bgp_peer_ip_range_2      = "169.254.1.9/30"
+   +    bgp_peer_ip_address_2    = "169.254.1.10"
+      }
+   }
+
+Create ACE specific state directory
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Next step is to create a directory containing Terraform configs
+that define desired state of Rancher and GCP resources for the new ACE cluster,
+and ACE specific configurations such as IP addresses of the ACE cluster nodes.
+
+
+Let's create a new directory under `aether-pod-configs/production` and
+symbolic links to predefined Terraform configs(`*.tf` files) that will add
+cluster, projects and applications in Rancher and VPN tunnels and firewall rules in GCP for the new ACE.
+And note that Aether maintains a separate Terraform state per ACE.
+So we will create a remote Terraform state definition for the new ACE, too.
+
+.. code-block:: shell
+
+   # Create symbolic links to pre-defined Terraform configs
+   $ cd $WORKDIR/aether-pod-configs/production
+   $ mkdir ace-new && cd ace-new
+   $ ln -s ../../common/ace-custom/* .
+
+   $ export CLUSTER_NAME=ace-new
+   $ export CLUSTER_DOMAIN=prd.new.aetherproject.net
+
+   # Create Terraform state definition file
+   $ cat >> backend.tf << EOF
+   # SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>
+
+   terraform {
+   backend "gcs" {
+      bucket  = "aether-terraform-bucket"
+      prefix  = "product/${CLUSTER_NAME}"
+   }
+   }
+   EOF
+
+   # Confirm the changes
+   $ tree .
+   .
+   ├── alerts.tf -> ../../common/ace-custom/alerts.tf
+   ├── backend.tf
+   ├── cluster.tf -> ../../common/ace-custom/cluster.tf
+   ├── gcp_fw.tf -> ../../common/ace-custom/gcp_fw.tf
+   ├── gcp_ha_vpn.tf -> ../../common/ace-custom/gcp_ha_vpn.tf
+   ├── main.tf -> ../../common/ace-custom/main.tf
+   └── variables.tf -> ../../common/ace-custom/variables.tf
+
+
+Now create another file called `cluster_val.tfvars` that defines all cluster nodes including switches and servers.
+ACE can have various number of servers and switches but note that an odd number of *servers* can have `etcd` and `controlplane` roles.
+Also, switches are not allowed to play a K8S master or normal worker role.
+So don’t forget to add `node-role.aetherproject.org=switch` to labels and `node-role.aetherproject.org=switch:NoSchedule` to taints.
+
+
+If the ACE requires any special settings, different set of projects for example,
+please take a closer look at `variables.tf` file and override the default values specified there to `cluster_val.tfvars`, too.
+
+.. code-block:: shell
+
+   $ cd $WORKDIR/aether-pod-configs/production/$CLUSTER_NAME
+   $ vi cluster_val.tfvars
+   # SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>
+
+   cluster_name  = "ace-new"
+   cluster_admin = "new_admin"
+   cluster_nodes = {
+   new-prd-leaf1 = {
+      user        = "root"
+      private_key = "~/.ssh/id_rsa_terraform"
+      host        = "10.94.1.3"
+      roles       = ["worker"]
+      labels      = ["node-role.aetherproject.org=switch"]
+      taints      = ["node-role.aetherproject.org=switch:NoSchedule"]
+   },
+   new-server-1 = {
+      user        = "terraform"
+      private_key = "~/.ssh/id_rsa_terraform"
+      host        = "10.94.1.3"
+      roles       = ["etcd", "controlplane", "worker"]
+      labels      = []
+      taints      = []
+   },
+   new-server-2 = {
+      user        = "terraform"
+      private_key = "~/.ssh/id_rsa_terraform"
+      host        = "10.94.1.4"
+      roles       = ["etcd", "controlplane", "worker"]
+      labels      = []
+      taints      = []
+   },
+   new-server-3 = {
+      user        = "terraform"
+      private_key = "~/.ssh/id_rsa_terraform"
+      host        = "10.94.1.5"
+      roles       = ["etcd", "controlplane", "worker"]
+      labels      = []
+      taints      = []
+   }
+   }
+
+   projects = [
+   "system_apps",
+   "connectivity_edge_up4",
+   "edge_apps"
+   ]
+
+Lastly, we will create a couple of overriding values files for the managed applications,
+one for DNS server for UEs and the other for the connectivity edge application, omec-upf-pfcp-agent.
+
+.. code-block:: shell
+
+   $ cd $WORKDIR/aether-pod-configs/production/$CLUSTER_NAME
+   $ mkdir app_values && cd app_values
+
+   $ export CLUSTER_NAME=ace-new
+   $ export CLUSTER_DOMAIN=prd.new.aetherproject.net
+   $ export K8S_DNS=10.54.128.10 # same address as kube_dns_cluster_ip
+   $ export UE_DNS=10.54.128.11  # next address of kube_dns_cluster_ip
+
+   # Create ace-coredns overriding values file
+   $ cat >> ace-coredns.yml << EOF
+   # SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>
+
+   serviceType: ClusterIP
+   service:
+   clusterIP: ${UE_DNS}
+   servers:
+   - zones:
+   - zone: .
+   port: 53
+   plugins:
+   - name: errors
+   - name: health
+      configBlock: |-
+         lameduck 5s
+   - name: ready
+   - name: prometheus
+      parameters: 0.0.0.0:9153
+   - name: forward
+      parameters: . /etc/resolv.conf
+   - name: cache
+      parameters: 30
+   - name: loop
+   - name: reload
+   - name: loadbalance
+   - zones:
+   - zone: apps.svc.${CLUSTER_DOMAIN}
+   port: 53
+   plugins:
+   - name: errors
+   - name: forward
+      parameters: . ${K8S_DNS}
+   - name: cache
+      parameters: 30
+   EOF
+
+   # Create PFCP agent overriding values file
+   $ cat >> omec-upf-pfcp-agent.yml << EOF
+   # SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>
+
+   config:
+   pfcp:
+      cfgFiles:
+         upf.json:
+         p4rtciface:
+            p4rtc_server: "onos-tost-onos-classic-hs.tost.svc.${CLUSTER_DOMAIN}"
+   EOF
+
+Make sure the ace-new directory has all necessary files and before a review request.
+
+.. code-block:: shell
+
+   $ cd $WORKDIR/aether-pod-configs/production/$CLUSTER_NAME
+   $ tree .
+   .
+   ├── alerts.tf -> ../../common/ace-custom/alerts.tf
+   ├── app_values
+   │   ├── ace-coredns.yml
+   │   └── omec-upf-pfcp-agent.yml
+   ├── backend.tf
+   ├── cluster.tf -> ../../common/ace-custom/cluster.tf
+   ├── cluster_val.tfvars
+   ├── gcp_fw.tf -> ../../common/ace-custom/gcp_fw.tf
+   ├── gcp_ha_vpn.tf -> ../../common/ace-custom/gcp_ha_vpn.tf
+   ├── main.tf -> ../../common/ace-custom/main.tf
+   └── variables.tf -> ../../common/ace-custom/variables.tf
+
+Create a review request
+^^^^^^^^^^^^^^^^^^^^^^^
+Now the patch is ready to review. The final step is to create a pull request!
+Once the patch is accepted and merged, CD pipeline will install ACE runtime based on the patch.
+
+.. code-block:: shell
+
+   $ cd $WORKDIR/aether-pod-configs/production
+   $ git status
+   On branch ace-new
+   Changes not staged for commit:
+   (use "git add <file>..." to update what will be committed)
+   (use "git checkout -- <file>..." to discard changes in working directory)
+
+      modified:   cluster_map.tfvars
+      modified:   vpn_map.tfvars
+
+   Untracked files:
+   (use "git add <file>..." to include in what will be committed)
+
+      ace-new/
+
+   $ git add .
+   $ git commit -m "Add new ACE"
+   $ git review
 
