Merge "Updated many of the tools"
diff --git a/packer/provision/basebuild.sh b/packer/provision/basebuild.sh
index 8997dd2..0dc1529 100644
--- a/packer/provision/basebuild.sh
+++ b/packer/provision/basebuild.sh
@@ -13,9 +13,8 @@
 ubuntu_systems() {
     DISTRO=$(lsb_release -cs)
 
-    apt-get clean
-
     # get prereqs for PPA and apt-over-HTTPS support
+    apt-get clean
     apt-get update
     apt-get install -y apt-transport-https software-properties-common
 
@@ -23,66 +22,185 @@
     add-apt-repository -y  ppa:git-core/ppa
 
     # set up docker repo
-    apt-key adv --keyserver keyserver.ubuntu.com --recv 0EBFCD88
-    add-apt-repository \
-        "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
-         $(lsb_release -cs) \
-         stable"
+    cat << EOF | base64 -d > /tmp/docker-apt-key.gpg
+LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgptUUlOQkZpdDJpb0JFQU
+RoV3BaOC93dlo2aFVUaVhPd1FIWE1BbGFGSGNQSDloQXRyNEYxeTIrT1lkYnRNdXRoCmxx
+cXdwMDI4QXF5WStQUmZWTXRTWU1ianVRdXU1Ynl5S1IwMUJicVlodVMzanRxUW1salovYk
+p2WHFubWlWWGgKMzhVdUxhK3owNzdQeHl4UWh1NUJicW50VFBRTWZpeXFFaVUrQkticTJX
+bUFOVUtRZisxQW1aWS9JcnVPWGJucQpMNEMxK2dKOHZmbVhRdDk5bnBDYXhFamFOUlZZZk
+9TOFFjaXhOekhVWW5iNmVtamxBTnlFVmxaemVxbzdYS2w3ClVyd1Y1aW5hd1RTeldOdnRq
+RWpqNG5KTDhOc0x3c2NwTFBRVWhUUSs3QmJRWEF3QW1lSENVVFFJdnZXWHF3ME4KY21oaD
+RIZ2VRc2NRSFlnT0pqakRWZm9ZNU11Y3ZnbGJJZ0NxZnpBSFc5anhtUkw0cWJNWmorYjFY
+b2VQRXRodAprdTRiSVFOMVg1UDA3Zk5XemxnYVJMNVo0UE9YRERaVGxJUS9FbDU4ajlrcD
+RibldSQ0pXMGx5YStmOG9jb2RvCnZaWitEb2krZnk0RDVaR3JMNFhFY0lRUC9MdjV1Rnlm
+K2tRdGwvOTRWRllWSk9sZUF2OFc5MktkZ0RraFRjVEQKRzdjMHRJa1ZFS05VcTQ4YjNhUT
+Y0Tk9aUVc3ZlZqZm9Ld0VaZE9xUEU3MlBhNDVqclp6dlVGeFNwZGlOazJ0WgpYWXVrSGps
+eHhFZ0JkQy9KM2NNTU5SRTFGNE5DQTNBcGZWMVk3L2hUZU9ubUR1RFl3cjkvb2JBOHQwMT
+ZZbGpqCnE1cmRreXdQZjRKRjhtWFVXNWVDTjF2QUZIeGVnOVpXZW1oQnRRbUd4WG53OU0r
+ejZoV3djNmFobXdBUkFRQUIKdEN0RWIyTnJaWElnVW1Wc1pXRnpaU0FvUTBVZ1pHVmlLU0
+E4Wkc5amEyVnlRR1J2WTJ0bGNpNWpiMjAraVFJMwpCQk1CQ2dBaEJRSllyZWZBQWhzdkJR
+c0pDQWNEQlJVS0NRZ0xCUllDQXdFQUFoNEJBaGVBQUFvSkVJMkJnRHdPCnY4Mklzc2tQL2
+lRWm82OGZsRFFtTnZuOFg1WFRkNlJSYVVIMzNrWFlYcXVUNk5rSEpjaVM3RTJnVEptcXZN
+cWQKdEk0bU5ZSENTRVl4STVxcmNZVjVZcVg5UDYrS28rdm96bzRuc2VVUUxQSC9BVFE0cU
+wwWm9rKzFqa2FnM0xnawpqb255VWY5Ynd0V3hGcDA1SEMzR01IUGhoY1VTZXhDeFFMUXZu
+RldYRDJzV0xLaXZIcDJmVDhRYlJHZVorZDNtCjZmcWNkNUZ1N3B4c3FtMEVVREs1Tkwrbl
+BJZ1loTithdVRyaGd6aEsxQ1NoZkdjY00vd2ZSbGVpOVV0ejZwOVAKWFJLSWxXblh0VDRx
+TkdaTlROMHRSK05MRy82QnFkOE9ZQmFGQVVjdWUvdzFWVzZKUTJWR1laSG5adTlTOExNYw
+pGWUJhNUlnOVB4d0dRT2dxNlJES0RiVitQcVRRVDVFRk1lUjFtcmpja2s0RFFKamJ4ZU1a
+YmlOTUc1a0dFQ0E4CmczODNQM2VsaG4wM1dHYkVFYTRNTmMzWjQrN2MyMzZRSTN4V0pmTl
+BkVWJYUmFBd2h5LzZyVFNGYnp3S0IwSm0KZWJ3elFmd2pRWTZmNTVNaUkvUnFEQ3l1UGoz
+cjNqeVZSa0s4NnBRS0JBSndGSHlxajlLYUtYTVpqZlZub3dMaAo5c3ZJR2ZOYkdIcHVjQV
+RxUkV2VUh1UWJObnFrQ3g4VlZodFlraERiOWZFUDJ4QnU1VnZIYlIrM25mVmhNdXQ1Ckcz
+NEN0NVJTN0p0NkxJZkZkdGNuOENhU2FzL2wxSGJpR2VSZ2M3MFgvOWFZeC9WL0NFSnYwbE
+llOGdQNnVEb1cKRlBJWjdkNnZIK1ZybzZ4dVdFR2l1TWFpem5hcDJLaFptcGtnZnVweUZt
+cGxoMHM2a255bXVRSU5CRml0MmlvQgpFQURuZUw5UzltNHZoVTNibGFSalZVVXlKN2IvcV
+RqY1N5bHZDSDVYVUU2UjJrK2NrRVpqZkFNWlBMcE8rL3RGCk0ySklKTUQ0U2lmS3VTM3hj
+azlLdFpHQ3VmR21jd2lMUVJ6ZUhGN3ZKVUtyTEQ1UlRrTmkyM3lkdldaZ1BqdHgKUStEVF
+QxWmNuN0JyUUZZNkZnblJvVVZJeHd0ZHcxYk1ZLzg5cnNGZ1M1d3d1TUVTZDNRMlJZZ2I3
+RU9GT3BudQp3NmRhN1dha1dmNElobkY1bnNOWUdEVmFJSHpwaXFDbCt1VGJmMWVwQ2pyT2
+xJemtaM1ozWWs1Q00vVGlGelBrCnoybEx6ODljcEQ4VStOdENzZmFnV1dmamQyVTNqRGFw
+Z0grN25RbkNFV3BST3R6YUtIRzZsQTNwWGRpeDV6RzgKZVJjNi8wSWJVU1d2ZmpLeExMUG
+ZOZUNTMnBDTDNJZUVJNW5vdGhFRVlkUUg2c3pwTG9nNzl4QjlkVm5KeUtKYgpWZnhYbnNl
+b1lxVnJSejJWVmJVSTVCbHdtNkI0MEUzZUdWZlVRV2l1eDU0RHNweVZNTWs0MU14N1FKM2
+l5bklhCjFONFpBcVZNQUVydXlYVFJUeGM5WFcwdFloRE1BLzFHWXZ6MEVtRnBtOEx6VEhB
+NnNGVnRQbS9abE5DWDZQMVgKekp3cnY3RFNRS0Q2R0dsQlFVWCtPZUVKOHRUa2tmOFFUSl
+NQVWRoOFA4WXhERlM1RU9HQXZoaHBNQllENDJrUQpwcVhqRUMrWGN5Y1R2R0k3aW1wZ3Y5
+UERZMVJDQzF6a0JqS1BhMTIwck5odi9oa1ZrL1lodUdvYWpvSHl5NGg3ClpRb3BkY010cE
+4yZGdtaEVlZ255OUpDU3d4ZlFtUTB6SzBnN202U0hpS013andBUkFRQUJpUVErQkJnQkNB
+QUoKQlFKWXJkb3FBaHNDQWlrSkVJMkJnRHdPdjgySXdWMGdCQmtCQ0FBR0JRSllyZG9xQU
+FvSkVINmdxY1B5Yy96WQoxV0FQLzJ3SitSMGdFNnFzY2UzcmphSXo1OFBKbWM4Z29Lcmly
+NWhuRWxXaFBnYnE3Y1lJc1c1cWlGeUxoa2RwClljTW1oRDltUmlQcFFuNllhMnczZTNCOH
+pmSVZLaXBiTUJua2UveXRaOU03cUhtRENjam9pU213RVhOM3dLWUkKbUQ5VkhPTnNsL0NH
+MXJVOUlzdzFqdEI1ZzFZeHVCQTdNL20zNlhONngydStOdE5NREI5UDU2eWM0Z2ZzWlZFUw
+pLQTl2K3lZMi9sNDVMOGQvV1VrVWkwWVhvbW42aHlCR0k3SnJCTHEwQ1gzN0dFWVA2Tzly
+cktpcGZ6NzNYZk83CkpJR3pPS1psbGpiL0Q5UlgvZzduUmJDbiszRXRIN3huaytUSy81MG
+V1RUt3OFNNVWcxNDdzSlRjcFFtdjZVeloKY000SmdMMEhiSFZDb2pWNEMvcGxFTHdNZGRB
+TE9GZVlRelRpZjZzTVJQZiszRFNqOGZyYkluakNoQzN5T0x5MAo2YnI5MktGb20xN0VJaj
+JDQWNvZXE3VVBoaTJvb3VZQndQeGg1eXRkZWhKa29vK3NON1JJV3VhNlAyV1Ntb241ClU4
+ODhjU3lsWEMwK0FERmRnTFg5SzJ6ckRWWVVHMXZvOENYMHZ6eEZCYUh3TjZQeDI2ZmhJVD
+EvaFlVSFFSMXoKVmZORGN5UW1YcWtPblp2dm9NZnovUTBzOUJoRkovelU2QWdRYklaRS9o
+bTFzcHNmZ3Z0c0QxZnJaZnlnWEo5ZgppclArTVNBSTgweEhTZjkxcVNSWk9qNFBsM1pKTm
+JxNHlZeHYwYjFwa01xZUdkamRDWWhMVStMWjR3YlFtcENrClNWZTJwcmxMdXJlaWdYdG1a
+ZmtxZXZSejdGcklaaXU5a3k4d25DQVB3Qzcvem1TMThyZ1AvMTdiT3RMNC9pSXoKUWh4QU
+FvQU1XVnJHeUppdlNramhTR3gxdUNvanNXZnNUQW0xMVA3anNydUlMNjFaek1VVkUyYU0z
+UG1qNUcrVwo5QWNaNThFbSsxV3NWbkFYZFVSLy9iTW1oeXI4d0wvRzFZTzFWM0pFSlRSZH
+hzU3hkWWE0ZGVHQkJZL0FkcHN3CjI0anhoT0pSK2xzSnBxSVVlYjk5OStSOGV1RGhSSEc5
+ZUZPN0RSdTZ3ZWF0VUo2c3V1cG9EVFJXdHIvNHlHcWUKZEt4VjNxUWhOTFNuYUF6cVcvMW
+5BM2lVQjRrN2tDYUtaeGhkaERiQ2xmOVAzN3FhUlc0NjdCTENWTy9jb0wzeQpWbTUwZHdk
+ck50S3BNQmgzWnBiQjF1SnZnaTltWHR5Qk9NSjN2OFJaZUR6RmlHOEhkQ3RnOVJ2SXQvQU
+lGb0hSCkgzUytVNzlOVDZpMEtQekxJbURmczhUN1JscHl1TWM0VWZzOGdneWc5djNBZTZj
+TjNlUXl4Y0szdzBjYkJ3c2gKL25RTmZzQTZ1dSs5SDdOaGJlaEJNaFlucE5aeXJIekNten
+lYa2F1d1JBcW9DYkdDTnlrVFJ3c3VyOWdTNDFUUQpNOHNzRDFqRmhlT0pmM2hPRG5rS1Ur
+SEtqdk1ST2wxREs3emRtTGROekExY3Z0WkgvbkNDOUtQajF6OFFDNDdTCnh4K2RUWlN4NE
+9OQWh3YlMvTE4zUG9LdG44TFBqWTlOUDl1RFdJK1RXWXF1UzJVK0tIRHJCRGxzZ296RGJz
+L08KakN4Y3BEek5tWHBXUUhFdEhVNzY0OU9YSFA3VWVOU1QxbUNVQ0g1cWRhbmswVjFpZW
+pGNi9DZlRGVTRNZmNyRwpZVDkwcUZGOTNNM3YwMUJieFArRUlZMi85dGlJUGJyZAo9MFlZ
+aAotLS0tLUVORCBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCg==
+EOF
+
+    apt-key add /tmp/docker-apt-key.gpg
+    add-apt-repository -y \
+        "deb [arch=amd64] https://download.docker.com/linux/ubuntu $DISTRO stable"
 
     # set up golang repo
     # docs: https://github.com/golang/go/wiki/Ubuntu
-    add-apt-repository ppa:longsleep/golang-backports
+    add-apt-repository -y ppa:longsleep/golang-backports
 
     # set up kubernetes repo
     cat << EOF | base64 -d > /tmp/k8s-apt-key.gpg
-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
+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
+te31My+vVNceEZSUpMetSfwit3QA8EE=
 EOF
 
-    sudo apt-key add /tmp/k8s-apt-key.gpg
-    echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
+    apt-key add /tmp/k8s-apt-key.gpg
+    add-apt-repository -y "deb http://apt.kubernetes.io/ kubernetes-xenial main"
 
     # set up NodeJS repo
     # Instructions: https://github.com/nodesource/distributions/blob/master/README.md#manual-installation
-
     cat << EOF | base64 -d > /tmp/nodejs-apt-key.gpg
-LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEdudVBHIHYxCkNvbW1lbnQ6IEdQR1Rvb2xzIC0gaHR0cHM6Ly9ncGd0b29scy5vcmcKCm1RSU5CRk9iSkxZQkVBRGtGVzhITWpzb1lSSlE0bkNZQy82RWgweUxXSFdmQ2grLzlaU0lqNHcvcE9lMlY2VisKVzZESFkza0szYSsyYnhyYXg5RXFLZTd1eGtTS2Y5NWdmbnMrSTkrUitSSmZScGIxcXZsalVScjU0eTM1SVpncwpmTUcyMk5wK1RtTTJSTGdkRkNaYTE4aDArUmJIOWkwYitackI5WFBabUxiL2g5b3U3U293R3FRM3d3T3RUM1Z5CnFtaWYwQTJHQ2NqRlRxV1c2VFhhWThlWko5QkNFcVczay8wQ2p3N0svbVN5L3V0eFlpVUl2Wk5LZ2FHL1A4VTcKODlReXZ4ZVJ4QWY5M1lGQVZ6TVhob0t4dTEySXVINFZuU3dBZmI4Z1F5eEtSeWlHT1V3azBZb0JQcHFSbk1tRApEbDdTZG1ZM29RSEVKekJlbFRNalRNOEFqYkI5bVdvUEJYNUc4dDR1NDcvRlo2UGdkZm1SZzloc0tYaGtMSmM3CkMxYnRibE9ITmdEeDE5ZnpBU1dYK3hPalppS3BQNk1rRUV6cTFiaWxVRnVsNlJEdHhrVFdzVGE1VEdpeGdDQi8KRzJmSzhJOUpML3lRaERjNk9HWTltalBPeE1iNVBnVWxUOG94M3Y4d3QyNWVyV2o5ejMwUW9FQndmU2c0dHpMYwpKcTZOL2llcFFlbU5mbzZJcytURytKekk2dmhYamxzQm0vWG16MFppRlBQT2JBSC92R0NZNUk2ODg2dlhRN2Z0CnFXSFlIVDhqei9SNHRpZ01HQyt0dlova2NtWUJzTENDSTV1U0VQNkpKUlFRaEhyQ3ZPWDBVYXl0SXRmc1FmTG0KRVlSZDJGNzJvMXlHaDN5dldXZkRJQlhSbWFCdUlHWEdwYWpDMEp5QkdTT1diOVV4TU5aWS8yTEpFd0FSQVFBQgp0QjlPYjJSbFUyOTFjbU5sSUR4bmNHZEFibTlrWlhOdmRYSmpaUzVqYjIwK2lRSTRCQk1CQWdBaUJRSlRteVMyCkFoc0RCZ3NKQ0FjREFnWVZDQUlKQ2dzRUZnSURBUUllQVFJWGdBQUtDUkFXVmFDcmFGZGlnSFRtRC85T0toVXkKakoraDhnTVJnNnJpNUVReE9FeGNjU1JVMGk3VUhrdGVjU3MwRFZDNGxaRzlBT3pCZStRMzZjeW01WjFkaTZKUQprSGw2OXEzekJkVjNLVFcrSDFwZG1uWmxlYllHejhwYUc5aVEvd1M5Z3BuU2VFeXgwRW55aTE2N0J6bTBPNEExCkdLMHBya0xuei95Uk9ISEVmSGpzVGdNdkZ3QW5mOXVheHdXZ0UxZDFSaXRJV2dKcEFucDFEWjVPMHVWbHNQUG0KWEFodUJKMzJtVThTNUJlelBUdUpKSUN3QmxMWUVDR2IxWTY1Q2lsNE9BTFU3VDdzYlVxZkxDdWFSS3h1UHRjVQpWbko2L3FpeVB5Z3ZLWldoVjZPZDBZeGx5ZWQxa2Z0TUp5WW9MOGtQSGZlSEordkl5dDBzN2Nyb3BmaXdYb2thCjFpSkI1bkt5dC9lcU1uUFE5YVJwcWttOUFCUy9yN0FhdU1BLzlSQUx1ZFFSSEJkV0l6ZklnME1scWI1Mnl5VEkKSWdRSkhOR05YMVQzejFYZ1poSStWaThTTEZGU2g4eDlGZVVaQzZZSnUwVlhYajVpeitlWm1rL25ZalV0NE10YwpwVnNWWUlCN29JREliSW1PRG04Z2dzZ3JJenF4T3pRVlAxenNDR2VrNVU2UUZjOUdZclErV3YzL2ZHOGhma0RuCnhYTHd3ME9HYUVReGZvZG04Y0xGWjViOEphRzMrWXhmZTdKa05jbHd2UmltdmxBanFJaVc1T0swdnZmSGNvK1kKZ0FOaFFybE1uVHgvL0lkWnNzYXh2WXl0U0hwUFpUWXcrcVBFamJCSk9McG9Mcno4WmFmTjF1ZWtwQXFRamZmSQpBT3FXOVNkSXpxL2tTSGdsMGJ6V2JQSlB3ODZYenpmdGV3aktOYmtDRFFSVG15UzJBUkFBeFNTZFFpK1dwUFFaCmZPZmxreDlzWUphMGNXekxsMncrK0ZRbloxUG41RjA5RC9rUE1OaDRxT3N5dlhXbGVrYVYvU3NlRFp0VnppSEoKS202VjhUQkczZmxtRmxDM0RXUWZOTkZ3bjUrcFdTQjhXSEc0YlRBNVJ5WUVFWWZwYmVrTXRkb1dXL1JvOEttaAo0MW51eFpEU3VCSmhEZUZJcDBjY25OMkxwMW82WGZJZURZUGVneUVQU1NacXJ1ZGZxTHJTWmhTdERsSmdYamVhCkpqVzZVUDZ0eFB0WWFhaWxhOS9IbjZ2Rjg3QVE1YlIyZEVXQi94Ukp6Z053UmlheDdLU1UweGNhNnhBdWYrVEQKeENqWjVwcDJKd2RDanF1WExUbVVuYklaOUxHVjU0VVovTWVpRzh5VnU2cHhiaUduWG80RWtiazZ4Z2kxZXdMaQp2R216NFFSZlZrbFYwZGJhM1pqMGZSb3pmWjIycVVIeENmRE03YWQwZUJYTUZtSGlOOGhnM0lVSFRPK1VkbFgvCmFIM2dBREZBdlNWRHYwdjh0NmRHYzZYRTlEcjdtR0VGblFNSE80emhNMUhhUzJOaDBUaUwydEZMdHRMYmZHNW8KUWx4Q2ZYWDkvbmFzajNLOXFubEVnOUczKzRUN2xwZFBtWlJSZTFPOGNIQ0k1aW1WZzZjTElpQkxQTzE2ZTBmSwp5SElnWXN3TGRySkZmYUhOWU0vU1dKeEhwWDc5NXpuK2lDd3l2WlNsTGZIOW1sZWdPZVZtajljeWhOL1ZPbVMzClFSaGxZWG9BMno3V1pUTm9DNmlBSWx5SXBNVGNacitudGFHVnRGT0xTNmZ3ZEJxRFhqbVNRdTY2bURLd1U1RWsKZk5sYnlycHpaTXlGQ0RXRVlvNEFJUi8xOGFHWkJZVUFFUUVBQVlrQ0h3UVlBUUlBQ1FVQ1U1c2t0Z0liREFBSwpDUkFXVmFDcmFGZGlnSVBRRUFDY1loOHJSMTl3TVpaL2hnWXY1c282WTFIY0pOQVJ1em1mZlFLb3pTL3J4cWVjCjB4TTN3Y2VMMUFJTXVHaGxYRmVHZDB3UnYvUlZ6ZVpqblRHd2hOMURuQ0R5MUk2NmhVVGdlaE9Oc2ZWYW51UDEKUFpLb0wzOEVBeHNNemRZZ2tZSDZUOWE0d0pIL0lQdCt1dUZURkZ5M284VEtNdkthSms5OCtKc3AyWC9RdU54aApxcGNJR2FWYnRRMWJuN20razVRZS9meitiRnVVZVhQaXZhZkxMbEdjNktiZGdNdlNXOUVWTU83eUJ5LzJKRTE1ClpKZ2w3bFhLTFEzMVZRUEFIVDNhbjVJVjJDL2llMTJlRXFaV2xuQ2lIVi93VCt6aE9rU3BXZHJoZVdmQlQrYWMKaFI0akRIODBBUzNGOGpvM2J5UUFUSmIzUm9DWVVDVmMzdTFvdWhOWmE1eUxnWVovaVprcGs1Z0tqeEhQdWRGYgpEZFdqYkdmbE45azE3VkNmNFo5eUFiOVFNcUh6SHdJR1hyYjdyeUZjdVJPTUNMTFZVcDA3UHJUclJ4bk85QS80Cnh4RUNpMGwvQnpOeGVVMWdLODhoRWFOaklmdmlQUi9oNkdxNktPY05LWjhyVkZkd0ZwamJ2d0hNUUJXaHJxZnUKRzNLYWVQdmJuT2JLSFhwZklLb0FNN1gycWZPK0lGbkxHVFB5aEZUY3JsNnZaQlRNWlRmWmlDMVhEUUx1R1VuZApzY2t1WElOSVUzREZXelpHcjBRcnFrdUUvanlyN0ZYZVVKajlCN2NMbytzL1RYbytSYVZmaTNrT2M5Qm94SXZ5Ci9xaU5Hcy9US3kyL1VqcXAvYWZmbUlNb01YU296S21nYTgxSlN3a0FETzFKTWdVeTZkQXBYejlrUDRFRTNnPT0KPUNMR0YKLS0tLS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQo=
+LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEdudVBHIH
+YxCkNvbW1lbnQ6IEdQR1Rvb2xzIC0gaHR0cHM6Ly9ncGd0b29scy5vcmcKCm1RSU5CRk9i
+SkxZQkVBRGtGVzhITWpzb1lSSlE0bkNZQy82RWgweUxXSFdmQ2grLzlaU0lqNHcvcE9lMl
+Y2VisKVzZESFkza0szYSsyYnhyYXg5RXFLZTd1eGtTS2Y5NWdmbnMrSTkrUitSSmZScGIx
+cXZsalVScjU0eTM1SVpncwpmTUcyMk5wK1RtTTJSTGdkRkNaYTE4aDArUmJIOWkwYitack
+I5WFBabUxiL2g5b3U3U293R3FRM3d3T3RUM1Z5CnFtaWYwQTJHQ2NqRlRxV1c2VFhhWThl
+Wko5QkNFcVczay8wQ2p3N0svbVN5L3V0eFlpVUl2Wk5LZ2FHL1A4VTcKODlReXZ4ZVJ4QW
+Y5M1lGQVZ6TVhob0t4dTEySXVINFZuU3dBZmI4Z1F5eEtSeWlHT1V3azBZb0JQcHFSbk1t
+RApEbDdTZG1ZM29RSEVKekJlbFRNalRNOEFqYkI5bVdvUEJYNUc4dDR1NDcvRlo2UGdkZm
+1SZzloc0tYaGtMSmM3CkMxYnRibE9ITmdEeDE5ZnpBU1dYK3hPalppS3BQNk1rRUV6cTFi
+aWxVRnVsNlJEdHhrVFdzVGE1VEdpeGdDQi8KRzJmSzhJOUpML3lRaERjNk9HWTltalBPeE
+1iNVBnVWxUOG94M3Y4d3QyNWVyV2o5ejMwUW9FQndmU2c0dHpMYwpKcTZOL2llcFFlbU5m
+bzZJcytURytKekk2dmhYamxzQm0vWG16MFppRlBQT2JBSC92R0NZNUk2ODg2dlhRN2Z0Cn
+FXSFlIVDhqei9SNHRpZ01HQyt0dlova2NtWUJzTENDSTV1U0VQNkpKUlFRaEhyQ3ZPWDBV
+YXl0SXRmc1FmTG0KRVlSZDJGNzJvMXlHaDN5dldXZkRJQlhSbWFCdUlHWEdwYWpDMEp5Qk
+dTT1diOVV4TU5aWS8yTEpFd0FSQVFBQgp0QjlPYjJSbFUyOTFjbU5sSUR4bmNHZEFibTlr
+WlhOdmRYSmpaUzVqYjIwK2lRSTRCQk1CQWdBaUJRSlRteVMyCkFoc0RCZ3NKQ0FjREFnWV
+ZDQUlKQ2dzRUZnSURBUUllQVFJWGdBQUtDUkFXVmFDcmFGZGlnSFRtRC85T0toVXkKakor
+aDhnTVJnNnJpNUVReE9FeGNjU1JVMGk3VUhrdGVjU3MwRFZDNGxaRzlBT3pCZStRMzZjeW
+01WjFkaTZKUQprSGw2OXEzekJkVjNLVFcrSDFwZG1uWmxlYllHejhwYUc5aVEvd1M5Z3Bu
+U2VFeXgwRW55aTE2N0J6bTBPNEExCkdLMHBya0xuei95Uk9ISEVmSGpzVGdNdkZ3QW5mOX
+VheHdXZ0UxZDFSaXRJV2dKcEFucDFEWjVPMHVWbHNQUG0KWEFodUJKMzJtVThTNUJlelBU
+dUpKSUN3QmxMWUVDR2IxWTY1Q2lsNE9BTFU3VDdzYlVxZkxDdWFSS3h1UHRjVQpWbko2L3
+FpeVB5Z3ZLWldoVjZPZDBZeGx5ZWQxa2Z0TUp5WW9MOGtQSGZlSEordkl5dDBzN2Nyb3Bm
+aXdYb2thCjFpSkI1bkt5dC9lcU1uUFE5YVJwcWttOUFCUy9yN0FhdU1BLzlSQUx1ZFFSSE
+JkV0l6ZklnME1scWI1Mnl5VEkKSWdRSkhOR05YMVQzejFYZ1poSStWaThTTEZGU2g4eDlG
+ZVVaQzZZSnUwVlhYajVpeitlWm1rL25ZalV0NE10YwpwVnNWWUlCN29JREliSW1PRG04Z2
+dzZ3JJenF4T3pRVlAxenNDR2VrNVU2UUZjOUdZclErV3YzL2ZHOGhma0RuCnhYTHd3ME9H
+YUVReGZvZG04Y0xGWjViOEphRzMrWXhmZTdKa05jbHd2UmltdmxBanFJaVc1T0swdnZmSG
+NvK1kKZ0FOaFFybE1uVHgvL0lkWnNzYXh2WXl0U0hwUFpUWXcrcVBFamJCSk9McG9Mcno4
+WmFmTjF1ZWtwQXFRamZmSQpBT3FXOVNkSXpxL2tTSGdsMGJ6V2JQSlB3ODZYenpmdGV3ak
+tOYmtDRFFSVG15UzJBUkFBeFNTZFFpK1dwUFFaCmZPZmxreDlzWUphMGNXekxsMncrK0ZR
+bloxUG41RjA5RC9rUE1OaDRxT3N5dlhXbGVrYVYvU3NlRFp0VnppSEoKS202VjhUQkczZm
+xtRmxDM0RXUWZOTkZ3bjUrcFdTQjhXSEc0YlRBNVJ5WUVFWWZwYmVrTXRkb1dXL1JvOEtt
+aAo0MW51eFpEU3VCSmhEZUZJcDBjY25OMkxwMW82WGZJZURZUGVneUVQU1NacXJ1ZGZxTH
+JTWmhTdERsSmdYamVhCkpqVzZVUDZ0eFB0WWFhaWxhOS9IbjZ2Rjg3QVE1YlIyZEVXQi94
+Ukp6Z053UmlheDdLU1UweGNhNnhBdWYrVEQKeENqWjVwcDJKd2RDanF1WExUbVVuYklaOU
+xHVjU0VVovTWVpRzh5VnU2cHhiaUduWG80RWtiazZ4Z2kxZXdMaQp2R216NFFSZlZrbFYw
+ZGJhM1pqMGZSb3pmWjIycVVIeENmRE03YWQwZUJYTUZtSGlOOGhnM0lVSFRPK1VkbFgvCm
+FIM2dBREZBdlNWRHYwdjh0NmRHYzZYRTlEcjdtR0VGblFNSE80emhNMUhhUzJOaDBUaUwy
+dEZMdHRMYmZHNW8KUWx4Q2ZYWDkvbmFzajNLOXFubEVnOUczKzRUN2xwZFBtWlJSZTFPOG
+NIQ0k1aW1WZzZjTElpQkxQTzE2ZTBmSwp5SElnWXN3TGRySkZmYUhOWU0vU1dKeEhwWDc5
+NXpuK2lDd3l2WlNsTGZIOW1sZWdPZVZtajljeWhOL1ZPbVMzClFSaGxZWG9BMno3V1pUTm
+9DNmlBSWx5SXBNVGNacitudGFHVnRGT0xTNmZ3ZEJxRFhqbVNRdTY2bURLd1U1RWsKZk5s
+YnlycHpaTXlGQ0RXRVlvNEFJUi8xOGFHWkJZVUFFUUVBQVlrQ0h3UVlBUUlBQ1FVQ1U1c2
+t0Z0liREFBSwpDUkFXVmFDcmFGZGlnSVBRRUFDY1loOHJSMTl3TVpaL2hnWXY1c282WTFI
+Y0pOQVJ1em1mZlFLb3pTL3J4cWVjCjB4TTN3Y2VMMUFJTXVHaGxYRmVHZDB3UnYvUlZ6ZV
+pqblRHd2hOMURuQ0R5MUk2NmhVVGdlaE9Oc2ZWYW51UDEKUFpLb0wzOEVBeHNNemRZZ2tZ
+SDZUOWE0d0pIL0lQdCt1dUZURkZ5M284VEtNdkthSms5OCtKc3AyWC9RdU54aApxcGNJR2
+FWYnRRMWJuN20razVRZS9meitiRnVVZVhQaXZhZkxMbEdjNktiZGdNdlNXOUVWTU83eUJ5
+LzJKRTE1ClpKZ2w3bFhLTFEzMVZRUEFIVDNhbjVJVjJDL2llMTJlRXFaV2xuQ2lIVi93VC
+t6aE9rU3BXZHJoZVdmQlQrYWMKaFI0akRIODBBUzNGOGpvM2J5UUFUSmIzUm9DWVVDVmMz
+dTFvdWhOWmE1eUxnWVovaVprcGs1Z0tqeEhQdWRGYgpEZFdqYkdmbE45azE3VkNmNFo5eU
+FiOVFNcUh6SHdJR1hyYjdyeUZjdVJPTUNMTFZVcDA3UHJUclJ4bk85QS80Cnh4RUNpMGwv
+QnpOeGVVMWdLODhoRWFOaklmdmlQUi9oNkdxNktPY05LWjhyVkZkd0ZwamJ2d0hNUUJXaH
+JxZnUKRzNLYWVQdmJuT2JLSFhwZklLb0FNN1gycWZPK0lGbkxHVFB5aEZUY3JsNnZaQlRN
+WlRmWmlDMVhEUUx1R1VuZApzY2t1WElOSVUzREZXelpHcjBRcnFrdUUvanlyN0ZYZVVKaj
+lCN2NMbytzL1RYbytSYVZmaTNrT2M5Qm94SXZ5Ci9xaU5Hcy9US3kyL1VqcXAvYWZmbUlN
+b01YU296S21nYTgxSlN3a0FETzFKTWdVeTZkQXBYejlrUDRFRTNnPT0KPUNMR0YKLS0tLS
+1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQo=
 EOF
 
-    sudo apt-key add /tmp/nodejs-apt-key.gpg
+    apt-key add /tmp/nodejs-apt-key.gpg
     NODE_VERSION=node_7.x
-    echo "deb https://deb.nodesource.com/$NODE_VERSION $DISTRO main" | sudo tee /etc/apt/sources.list.d/nodesource.list
-    echo "deb-src https://deb.nodesource.com/$NODE_VERSION $DISTRO main" | sudo tee -a /etc/apt/sources.list.d/nodesource.list
+    add-apt-repository -y "deb [arch=amd64] https://deb.nodesource.com/$NODE_VERSION $DISTRO main"
 
     # update after adding apt repos to sources
     apt-get update
 
     # install basic sofware requirements
     apt-get install -y \
-        "docker-ce=17.06*" \
+        "docker-ce=5:19.03*" \
         apt-transport-https \
         build-essential \
         bzip2 \
@@ -95,10 +213,10 @@
         graphviz \
         jq \
         kafkacat \
-        "kubeadm=1.12.7-*" \
-        "kubelet=1.12.7-*" \
-        "kubectl=1.12.7-*" \
-        "kubernetes-cni=0.7.5-*" \
+        "kubeadm=1.18*" \
+        "kubelet=1.18*" \
+        "kubectl=1.18*" \
+        "kubernetes-cni=0.8.7*" \
         less \
         libmysqlclient-dev \
         libpcap-dev \
@@ -109,6 +227,7 @@
         python-dev \
         python-pip \
         python3-dev \
+        python3-pip \
         ruby \
         screen \
         socat \
@@ -126,36 +245,48 @@
       python-ndg-httpsclient \
       python-requests \
       python-six \
-      python-urllib3
+      python-urllib3 \
+      python3-chardet \
+      python3-requests \
+      python3-six \
+      python3-urllib3
 
-    # install python modules
+    # install python3 modules
     # upgrade pip or other installations may fail in unusual ways
-    pip install --upgrade pip
-    pip install \
-        Jinja2 \
+    pip3 install --upgrade pip
+    pip3 install \
         ansible \
         ansible-lint \
-        astroid==1.* \
+        docker \
+        docker-compose \
+        git-review \
+        httpie \
+        netaddr \
+        pylint \
+        tox \
+        twine \
+        virtualenv \
+        yamllint
+        # end of pip3 install list
+
+    # install python2 modules
+    # upgrade pip or other installations may fail in unusual ways
+    python -m pip install --upgrade pip
+    python -m pip install \
+        Jinja2 \
         coverage \
         certifi \
         cryptography \
-        docker-compose==1.20.1 \
-        docker==3.2.1 \
-        gitpython \
-        git-review \
+        git+https://github.com/linkchecker/linkchecker.git@v9.4.0 \
         graphviz \
         grpcio-tools \
-        httpie==0.9.* \
         isort \
-        git+https://github.com/linkchecker/linkchecker.git@v9.4.0 \
         more-itertools==5.0.0 \
         mock==2.0.* \
-        netaddr \
         ndg-httpsclient \
         nose2==0.9.* \
         pyopenssl \
         pexpect \
-        pylint==1.* \
         pyyaml==3.10.* \
         requests==2.14.* \
         robotframework \
@@ -165,11 +296,7 @@
         robotframework-requests \
         robotframework-sshlibrary \
         six \
-        tox \
-        twine==1.15.0 \
-        urllib3 \
-        virtualenv \
-        yamllint
+        urllib3
         # end of pip install list
 
     # install ruby gems
@@ -182,7 +309,6 @@
         gitbook-cli \
         markdownlint \
         typings
-        # end of npm install list
 
     # install golang packages in /usr/local/go
     # Set PATH=$PATH:/usr/local/go/bin` to use these
@@ -217,29 +343,17 @@
       go install ./protoc-gen-go
     popd
 
-    # install repo launcher v2.0
-    REPO_B64_SHA256SUM="f34b0743ae46105df575f116fc6535a5d9db10c575e03e11e2932e2a8745061e"
-    curl -o /tmp/repo.b64 'https://gerrit.googlesource.com/git-repo/+/refs/tags/v2.0/repo?format=TEXT'
+    # install repo launcher v2.9
+    REPO_B64_SHA256SUM="da4a14be94382f7ecdb22fef4f554eb0ffcf09a0d8c352667beae4a1794ad666"
+    curl -o /tmp/repo.b64 'https://gerrit.googlesource.com/git-repo/+/refs/tags/v2.9/repo?format=TEXT'
     echo "$REPO_B64_SHA256SUM  /tmp/repo.b64" | sha256sum -c -
     base64 --decode /tmp/repo.b64 > /tmp/repo
     mv /tmp/repo /usr/local/bin/repo
     chmod a+x /usr/local/bin/repo
 
-    # install sonarqube scanner
-    # dl link: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
-    SONAR_SCANNER_CLI_VERSION="3.2.0.1227"
-    SONAR_SCANNER_CLI_SHA256SUM="07a50ec270a36cb83f26fe93233819c53c145248c638f4591880f1bd36e331d6"
-    curl -L -o /tmp/sonarscanner.zip "https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_CLI_VERSION}-linux.zip"
-    echo "$SONAR_SCANNER_CLI_SHA256SUM  /tmp/sonarscanner.zip" | sha256sum -c -
-    pushd /opt
-    unzip /tmp/sonarscanner.zip
-    mv sonar-scanner-${SONAR_SCANNER_CLI_VERSION}-linux sonar-scanner
-    rm -f /tmp/sonarscanner.zip
-    popd
-
     # install helm
-    HELM_VERSION="2.14.2"
-    HELM_SHA256SUM="9f50e69cf5cfa7268b28686728ad0227507a169e52bf59c99ada872ddd9679f0"
+    HELM_VERSION="2.16.10"
+    HELM_SHA256SUM="65a4857611a4e65b255ec192cbdb34d47212f041260f81a1039c05a8bb9ea041"
     HELM_PLATFORM="linux-amd64"
     curl -L -o /tmp/helm.tgz "https://storage.googleapis.com/kubernetes-helm/helm-v${HELM_VERSION}-${HELM_PLATFORM}.tar.gz"
     echo "$HELM_SHA256SUM  /tmp/helm.tgz" | sha256sum -c -
@@ -251,10 +365,9 @@
     popd
 
     # install minikube
-    MINIKUBE_VERSION="0.30.0"
-    MINIKUBE_DEB_VERSION="$(echo ${MINIKUBE_VERSION} | sed -n 's/\(.*\)\.\(.*\)/\1-\2/p')"
-    MINIKUBE_SHA256SUM="c6c5aa5956f8ad5f61d426e9b8601ba95965a9c30bb80a9fe7525c64e6dd12fd"
-    curl -L -o /tmp/minikube.deb "https://storage.googleapis.com/minikube/releases/v${MINIKUBE_VERSION}/minikube_${MINIKUBE_DEB_VERSION}.deb"
+    MINIKUBE_VERSION="1.13.1"
+    MINIKUBE_SHA256SUM="ac6cd65568f1fdab13207aaed3903037b07bd660a7d0eb4331a2a4198890de39"
+    curl -L -o /tmp/minikube.deb "https://github.com/kubernetes/minikube/releases/download/v${MINIKUBE_VERSION}/minikube_${MINIKUBE_VERSION}-0.deb"
     echo "$MINIKUBE_SHA256SUM  /tmp/minikube.deb" | sha256sum -c -
     pushd /tmp
     dpkg -i minikube.deb
@@ -274,31 +387,31 @@
     chmod -R a+rX /usr/local/include/
 
     # give sudo permissions on minikube and protoc to jenkins user
-    cat <<EOF >/etc/sudoers.d/88-jenkins-minikube-protoc
+    cat << EOF > /etc/sudoers.d/88-jenkins-minikube-protoc
 Cmnd_Alias CMDS = /usr/local/bin/protoc, /usr/bin/minikube
 Defaults:jenkins !requiretty
 jenkins ALL=(ALL) NOPASSWD:SETENV: CMDS
 EOF
 
     # install hadolint (Dockerfile checker)
-    HADOLINT_VERSION="1.17.1"
-    HADOLINT_SHA256SUM="2f8f3bf120e9766e6e79f7a86fed8ede55ebbf2042175b68a7c899a74eabbf34"
+    HADOLINT_VERSION="1.18.0"
+    HADOLINT_SHA256SUM="f9bc9de12438b463ca84e77fde70b07b155d4da07ca21bc3f4354a62c6199db4"
     curl -L -o /tmp/hadolint https://github.com/hadolint/hadolint/releases/download/v${HADOLINT_VERSION}/hadolint-Linux-x86_64
     echo "$HADOLINT_SHA256SUM  /tmp/hadolint" | sha256sum -c -
     mv /tmp/hadolint /usr/local/bin/hadolint
     chmod -R a+rx /usr/local/bin/hadolint
 
     # install pandoc (document converter)
-    PANDOC_VERSION="2.8.0.1"
-    PANDOC_SHA256SUM="81cca90353dced1e285888b73f2bee55ed388d34b6b0624d76a2eba2344eaba9"
+    PANDOC_VERSION="2.10.1"
+    PANDOC_SHA256SUM="4515d6fe2bf8b82765d8dfa1e1b63ccb0ff3332d60389f948672eaa37932e936"
     curl -L -o /tmp/pandoc.deb "https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/pandoc-${PANDOC_VERSION}-1-amd64.deb"
     echo "$PANDOC_SHA256SUM  /tmp/pandoc.deb" | sha256sum -c -
     dpkg -i /tmp/pandoc.deb
     rm -f /tmp/pandoc.deb
 
     # install yq (YAML query)
-    YQ_VERSION="3.3.0"
-    YQ_SHA256SUM="e70e482e7ddb9cf83b52f5e83b694a19e3aaf36acf6b82512cbe66e41d569201"
+    YQ_VERSION="3.4.0"
+    YQ_SHA256SUM="f6bd1536a743ab170b35c94ed4c7c4479763356bd543af5d391122f4af852460"
     curl -L -o /tmp/yq https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64
     echo "$YQ_SHA256SUM  /tmp/yq" | sha256sum -c -
     mv /tmp/yq /usr/local/bin/yq
diff --git a/packer/provision/baseline.sh b/packer/provision/baseline.sh
index 251cceb..34ed79f 100644
--- a/packer/provision/baseline.sh
+++ b/packer/provision/baseline.sh
@@ -272,65 +272,49 @@
     echo "---> Configuring Corretto JDK Distribution"
     # instructions: https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/generic-linux-install.html
     # install prereqs
-    apt-get install java-common
 
-    # install Java8
-    CORRETTO_JAVA8_VERSION="8.222.10-1"
-    CORRETTO_JAVA8_SHA256SUM="e5fd6c6f2d1a1fc5e6926f7a543e67ad0f0e0389ddc5d2deb5890bdeb21ea445"
-    curl -L -o /tmp/corretto_java8.deb "https://d3pxv6yz143wms.cloudfront.net/$(echo $CORRETTO_JAVA8_VERSION | tr - .)/java-1.8.0-amazon-corretto-jdk_${CORRETTO_JAVA8_VERSION}_amd64.deb"
-    echo "$CORRETTO_JAVA8_SHA256SUM  /tmp/corretto_java8.deb" | sha256sum -c -
-    dpkg -i /tmp/corretto_java8.deb
-
-    # install Java11
-    CORRETTO_JAVA11_VERSION="11.0.4.11-1"
-    CORRETTO_JAVA11_SHA256SUM="f47c77f8f9ee5a80804765236c11dc749d351d3b8f57186c6e6b58a6c4019d3e"
-    curl -L -o /tmp/corretto_java11.deb "https://d3pxv6yz143wms.cloudfront.net/$(echo $CORRETTO_JAVA11_VERSION | tr - .)/java-11-amazon-corretto-jdk_${CORRETTO_JAVA11_VERSION}_amd64.deb"
-    echo "$CORRETTO_JAVA11_SHA256SUM  /tmp/corretto_java11.deb" | sha256sum -c -
-    dpkg -i /tmp/corretto_java11.deb
-
-    # Fix corretto 11 lack of jinfo that prevents update-java-alternatives from working
-    # Upstream fix not integrated yet: https://github.com/corretto/corretto-11/pull/27
-    cat <<EOF >/usr/lib/jvm/.java-11-amazon-corretto.jinfo
-name=java-11-amazon-corretto
-alias=java-11-amazon-corretto
-priority=11100002
-section=main
-
-jdk java /usr/lib/jvm/java-11-amazon-corretto/bin/java
-jdk keytool /usr/lib/jvm/java-11-amazon-corretto/bin/keytool
-jdk rmid /usr/lib/jvm/java-11-amazon-corretto/bin/rmid
-jdk rmiregistry /usr/lib/jvm/java-11-amazon-corretto/bin/rmiregistry
-jdk jjs /usr/lib/jvm/java-11-amazon-corretto/bin/jjs
-jdk pack200 /usr/lib/jvm/java-11-amazon-corretto/bin/pack200
-jdk unpack200 /usr/lib/jvm/java-11-amazon-corretto/bin/unpack200
-jdk javac /usr/lib/jvm/java-11-amazon-corretto/bin/javac
-jdk jaotc /usr/lib/jvm/java-11-amazon-corretto/bin/jaotc
-jdk jlink /usr/lib/jvm/java-11-amazon-corretto/bin/jlink
-jdk jmod /usr/lib/jvm/java-11-amazon-corretto/bin/jmod
-jdk jhsdb /usr/lib/jvm/java-11-amazon-corretto/bin/jhsdb
-jdk jar /usr/lib/jvm/java-11-amazon-corretto/bin/jar
-jdk jarsigner /usr/lib/jvm/java-11-amazon-corretto/bin/jarsigner
-jdk javadoc /usr/lib/jvm/java-11-amazon-corretto/bin/javadoc
-jdk javap /usr/lib/jvm/java-11-amazon-corretto/bin/javap
-jdk jcmd /usr/lib/jvm/java-11-amazon-corretto/bin/jcmd
-jdk jconsole /usr/lib/jvm/java-11-amazon-corretto/bin/jconsole
-jdk jdb /usr/lib/jvm/java-11-amazon-corretto/bin/jdb
-jdk jdeps /usr/lib/jvm/java-11-amazon-corretto/bin/jdeps
-jdk jdeprscan /usr/lib/jvm/java-11-amazon-corretto/bin/jdeprscan
-jdk jimage /usr/lib/jvm/java-11-amazon-corretto/bin/jimage
-jdk jinfo /usr/lib/jvm/java-11-amazon-corretto/bin/jinfo
-jdk jmap /usr/lib/jvm/java-11-amazon-corretto/bin/jmap
-jdk jps /usr/lib/jvm/java-11-amazon-corretto/bin/jps
-jdk jrunscript /usr/lib/jvm/java-11-amazon-corretto/bin/jrunscript
-jdk jshell /usr/lib/jvm/java-11-amazon-corretto/bin/jshell
-jdk jstack /usr/lib/jvm/java-11-amazon-corretto/bin/jstack
-jdk jstat /usr/lib/jvm/java-11-amazon-corretto/bin/jstat
-jdk jstatd /usr/lib/jvm/java-11-amazon-corretto/bin/jstatd
-jdk rmic /usr/lib/jvm/java-11-amazon-corretto/bin/rmic
-jdk serialver /usr/lib/jvm/java-11-amazon-corretto/bin/serialver
-
+    cat << EOF | base64 -d > /tmp/corretto-apt-key.gpg
+LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEdudVBHIH
+YyLjAuMjIgKEdOVS9MaW51eCkKCm1RSU5CRjNwU2hrQkVBREp6Z2xlaFFERmxjMSs5VkZ1
+YlZQenBxOFpZdHptSmtOamYwOXNjT1V6YUtaT20zQXIKbVBoOVJ1Zms0bUI3dDFMUDRKZU
+hBS0FTMTdnZ0NIR1Z4UkdYQUFROUxhZjhpYlg0U2lGTzNFaHl5bDNzbXVGZgpaaGV4Qm52
+Yzd2UmM0RVVsS3FhckNRUlVsYXJhRE9ybXE3V2JoWGR2Q2djNHUydUJMd1VqQWQzUEhRVU
+J5QVp3CmxzRVF6cFFuZWhOb21qckUwcE82bXM5QWhtcGJYbGYveXIxNEVYdmxvNGxUZDhR
+VWR2UytBT0NZZnJIYjlXR08KSUVzeXlEdXp1ZjJnclYvUUZwb2kwVkJoVEN5aU5ZWGxhMk
+FmQ3JlTUdsT0NZc2p3MW5VOTNPeUFxRjNTYVRPQwpvNTJ5cnpjYjJOcGJCRHdSWE9ITndl
+MW1kK0RiUndFZmthV3I1STkxRnFScGdFZWF3cXl4WTFtaUpSSGR1aHN6CldUZ1RNQkYvRV
+FmbVRzcEQyWUJYL0JqTkpUcmREWFl2QUNYOHNsVlYvdkJucGkrZEVwVkVLM2hoMjFpajk5
+MVMKbHY4WW9Gbm9DN1hQNDRDN1dOcFZRcEdXOVpXcG5qTEN2bTNETUtXMHIzVmZiM1hEWW
+huSEkxUTE0UHhuMGN3Zgp4MUwyUkE0ZG95V2QxVFJaQkZCZTJmMHZTa1pUMFlGYWliS2FL
+aTZBa0RJTVUvK3UrL2Uzd1diWVhxenNTSVRqCmZmTWtwTU1OU3d4Ym04SnFuc3VkanV6ZE
+VzWUFpQlVjRk13V3lzUURjeXU2M3VuMk9tTEtMZkt4eTE5dkNwUzEKOG1rTnk5NUp1TzRq
+WnR1K0lpaW52U1NqbGJKbXNsdTN1SzMvY1RSc1dhQjdCUnRIZXdFN1N1Z01Pd0FSQVFBQg
+p0RWhCYldGNmIyNGdVMlZ5ZG1salpYTWdURXhESUNoQmJXRjZiMjRnUTI5eWNtVjBkRzhn
+Y21Wc1pXRnpaU2tnClBHTnZjbkpsZEhSdkxYUmxZVzFBWVcxaGVtOXVMbU52YlQ2SkFqRU
+VFd0VDQUJzRkFsM3BTaGtDR3k4RkNRbG0KQVlBRkZRZ0tDUXNDSGdFQ0Y0QUFDZ2tRb1NK
+VUtyQlBKT09KRGcvNkFxbW50YXhEV1g2cWZSKyswcXd0RDlMcAp2Z09ORnZBKzlBWVFlR3
+Q3T1g3OU8vU1NQeTk3S3ZuNkRZUkJkZWxTaFRBSDYwRGJYQ1VzNDJzSVJGcVJqbUhZCkhm
+SWdPa1VKaldvSno5b1FuWSttekFLYk9vaENyUitZSXZ5Q2VnRmIwZGJvRGFxU1E0dzY4K2
+QxaXM3TDg0cHoKWkIyajBuclFEYkZpaFBtUitlcGZIa0xVR0d5d3VaSENkRUZmRDhuWE1P
+SmVWYmdTemY3VmhsOFpyeWRJa1pUSQo3YUFTRzVNa0RPL0d1VnBFR1FZQW5IOWgvanpKbG
+ZVS25kc3dDNlVGY001T2wwN3BEUGRIVkJBaTlxMVN5eERlCnVTUzFOZ0RXN09XN3pncEIr
+NC9QclpLS2lFUC9mQkFXYTluRlNMd1RhTWRzb2FBdVFBbW1nYnFZZnkzWFhLSzcKSUJhS1
+NuSnBRRHZOYjB2bVhKRVkzcVgyQmZoMHAxS0NlYVFoWXdJSmk4clBRV0MyNGZpTFk5YmRD
+SWxrYmJQUQpDU05PRXE5blVXUmc5S2JVR21kL1BXU2tUNkpoZXlxM0JaQkYxWVBZRXQ4by
+9sNDM3SEhkMDhsUkVxSDBzYW5hCkhiNzJHWlRpMlJVck5CQnA1QzFlOE1xbGxYRTZSS21y
+aTJtMFRTQkhSNUM0WkxJSTlkdXlBODM5ZFlJQTRLR1UKbm1ldFpja3VSdXdIRm1kMy9ZV3
+RNRWZuNDdVZWR6aFZUMTZ6M092QmlwSFUxQkt6TEdjdlVGWHJVS3ZwSlFsaApkTlBVUWgr
+d2I5MUV6SXRqa0o5Nm0rTis4MWlRZE4zeWQ4Y0UzOE5UQThiK1FjN3RtVFl4d05aeGN2MT
+ZGeExBCnkyVmhLYzA5QThSd1NJNjl2RHM9Cj1aTlJICi0tLS0tRU5EIFBHUCBQVUJMSUMg
+S0VZIEJMT0NLLS0tLS0K
 EOF
 
+    apt-key add /tmp/corretto-apt-key.gpg
+    add-apt-repository -y 'deb https://apt.corretto.aws stable main'
+    apt-get update
+
+    apt-get install -y java-1.8.0-amazon-corretto-jdk java-11-amazon-corretto-jdk
+
     # Set default version to be Java8
     update-java-alternatives --set java-1.8.0-amazon-corretto