salt -C 'kvm*' pkg.install bridge-utils
 salt -C 'kvm*' state.apply linux.network
+salt -C 'kvm* or cmp*' state.apply salt.minion
+salt -C 'kvm* or cmp*' service.force_reload salt-minion
 salt -C 'cmp*' state.apply linux.system
 salt -C 'cmp*' state.apply linux.network || true
 salt -C 'kvm* or cmp*' system.reboot
 wait_for 90 "! salt -C 'kvm* or cmp*' test.ping | " \
   "tee /dev/stderr | grep -Fq 'Not connected'"
 
-salt -C 'kvm* or cmp*' state.apply linux,ntp,salt.minion
+salt -C 'kvm* or cmp*' state.apply linux,ntp
 salt -C 'kvm* or cmp*' pkg.upgrade refresh=False
 
 done
 
 wait_for 10 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all"
+
+# Propagate APT proxy config created by curtin on baremetal nodes to VCP VMs
+APT_CONF_D_CURTIN='/etc/apt/apt.conf.d/90curtin-aptproxy'
+salt -C 'kvm01*' cp.push "${APT_CONF_D_CURTIN}"
+cd /srv/salt/env/prd/maas/files && ln -sf \
+  /var/cache/salt/master/minions/kvm01.*/files/${APT_CONF_D_CURTIN}
+salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' cp.get_file \
+  "salt://maas/files/$(basename "${APT_CONF_D_CURTIN}")" "${APT_CONF_D_CURTIN}"
+
 wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply salt"
+wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' service.force_reload salt-minion"
 wait_for 10 "! salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply linux,ntp | " \
   "tee /dev/stderr | grep -Eq '(Not connected|No response)'"
 
 
--- /dev/null
+##############################################################################
+# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+parameters:
+  # NOTE: Apt proxy is set by curtin, Salt minion proxy is configured below,
+  # only enable proxy via /etc/environment if you need it for smth else
+  # linux:
+  #   system:
+  #     env:
+  #       http_proxy: http://${_param:infra_maas_node01_deploy_address}:8000
+  #       https_proxy: http://${_param:infra_maas_node01_deploy_address}:8000
+  #       no_proxy:
+  #         - .local
+  salt:
+    minion:
+      proxy:
+        host: ${_param:infra_maas_node01_deploy_address}
+        port: 8000
 
   # - system.salt.control.cluster.stacklight_log_cluster
   # - system.salt.control.cluster.stacklight_telemetry_cluster
   - cluster.baremetal-mcp-pike-common-ha.infra.kvm_pdf
+  - cluster.baremetal-mcp-pike-common-ha.include.proxy
 parameters:
   _param:
     linux_system_codename: xenial
 
           enabled: true
           proto: dhcp
           type: bridge
-          name_servers: ${_param:opnfv_name_servers}
           use_interfaces:
             - {{ nic_admin }}{% if vlan_admin and vlan_admin != 'native' %}.{{ vlan_admin }}{% endif %}
           noifupdown: true
 
         default_distro_series: 'xenial'
         default_osystem: 'ubuntu'
         default_storage_layout: 'lvm'
+        enable_http_proxy: true
         disk_erase_with_secure_erase: false
         dnssec_validation: 'no'
         enable_third_party_drivers: true
 
   - system.cinder.volume.backend.lvm
   - system.ceilometer.agent.cluster
   - cluster.baremetal-mcp-pike-common-ha.openstack_compute_pdf
+  - cluster.baremetal-mcp-pike-common-ha.include.proxy
 parameters:
   _param:
     cluster_vip_address: ${_param:openstack_control_address}
 
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 ---
+classes:
+  - cluster.baremetal-mcp-pike-common-ha.include.proxy
 parameters:
   _param:
     dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface}
 
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 ---
+classes:
+  - cluster.baremetal-mcp-pike-common-ha.include.proxy
 parameters:
   _param:
     dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface}
 
 
 opendaylight_repo:
   pkgrepo.managed:
-  - ppa: {{ server.repo }}
+  # NOTE(armband): PPA handling behind proxy broken, define it explicitly
+  # https://github.com/saltstack/salt/pull/45224
+  # - ppa: {{ server.repo }}
+  - human_name: opendaylight-ppa
+  - name: deb http://ppa.launchpad.net/odl-team/nitrogen/ubuntu xenial main
+  - file: /etc/apt/sources.list.d/odl-team-ubuntu-nitrogen-xenial.list
+  - keyid: 49B07274951063870A8B7EAE7B8AA1A344C05248
+  - keyserver: keyserver.ubuntu.com
 
 opendaylight:
   pkg.installed: