From 606a5d99cd3c02415d380a1453df0dbcf9a60737 Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Thu, 9 May 2024 17:32:40 +0100 Subject: [PATCH] Ubuntu 2204 update (#3924) * Update clean_validation_envs.yml * update * update BRANCH_LAST_ACTIVITY_IN_HOURS_FOR_STOP: 8 * Squashed commit of the following: commit e66cd8206e51c1af615b84e0c56bdcf8b92988f2 Author: tim-allen-ck Date: Tue May 7 16:35:57 2024 +0100 squash commits commit 933e1603bb45a45a4edb6933d3af4596cb2c2593 Author: tim-allen-ck Date: Thu Apr 4 15:54:39 2024 +0100 update BRANCH_LAST_ACTIVITY_IN_HOURS_FOR_STOP: 8 commit 379e93c05f6b99bb9b2222755e5d9346e0a169b1 Author: tim-allen-ck Date: Thu Apr 4 15:52:25 2024 +0100 update commit 161880fad5234823f8522e9d7632f53b88d4d8e8 Author: Tim Allen Date: Tue Apr 2 09:38:19 2024 +0100 Update clean_validation_envs.yml commit 79080439ebebf1d8fb2d453cae6c3590e3e46d05 Author: tim-allen-ck Date: Tue May 7 16:32:15 2024 +0100 update changelog commit 76466e407dd773bdafc5ad6c56f4ad75814c3a9c Author: tim-allen-ck Date: Tue May 7 16:28:55 2024 +0100 update changelog commit 9b3b98e07da0264543ccc456c0328cb348bd01da Author: tim-allen-ck Date: Fri Apr 12 09:27:52 2024 +0100 changelog update commit d199c777bf5a2c908c6532e11517579562888b6c Author: Tim Allen Date: Fri Apr 12 09:01:26 2024 +0100 Update Resource processor Ubuntu Image (#3902) * Update clean_validation_envs.yml * update * update BRANCH_LAST_ACTIVITY_IN_HOURS_FOR_STOP: 8 * update core resource processor image * remove clean env * update version * update changelog commit c4d84045ed8eba4cfc192caca19adcec3dc063d1 Author: tim-allen-ck Date: Thu Apr 11 12:18:36 2024 +0100 update readme and changelog commit 81dd79b35d2d4319d87f341a51d907702599daaf Author: tim-allen-ck Date: Thu Apr 11 12:18:36 2024 +0100 update readme and changelog commit 8cecc55e38b434cd2451b99d1bd2272083edc45d Author: wojciechcloudkubed <159798789+wojciechcloudkubed@users.noreply.github.com> Date: Tue Apr 2 09:23:37 2024 +0100 Ubuntu update (#1) * personal * update ubuntu image * revert changes * update ubuntu version * update version * update offer * update sku * change offer --------- Co-authored-by: Wojciech <57405495+thewbuk@users.noreply.github.com> commit 49813bf08b0188ad3f77b1a3d5384799f9e09568 Author: Jonny Rylands Date: Wed May 1 18:22:19 2024 +0100 Remove TLS1.0/1.1 support. Resolves #3914 (#3916) commit a094c19d5708b064628f06ed7f09016fa654f733 Author: tim-allen-ck Date: Tue May 7 16:12:53 2024 +0100 doc update commit 004a9c0a15e91e1fdc08acf6a3d41b2fe88d52cd Author: tim-allen-ck Date: Tue May 7 10:27:09 2024 +0100 update script commit 8044fb7c24178bd91d3cc05d1a8aaef81b52f4d1 Author: tim-allen-ck Date: Wed May 1 15:19:48 2024 +0100 updaet commit 218aa8bdb3a8701d2bd266f249b5467a5a599994 Author: tim-allen-ck Date: Wed May 1 15:19:40 2024 +0100 update commit 0ac060f9829df37738c9794f7af22f77d0aa4786 Author: tim-allen-ck Date: Tue Apr 30 15:44:47 2024 +0100 update commit 0486933a37a5e2b5f2354d57a970a8bed9c564f5 Author: tim-allen-ck Date: Tue Apr 30 12:43:46 2024 +0100 update vm config commit c9f0749da41b446b27d9ad3d380cade03a6f5688 Author: tim-allen-ck Date: Mon Apr 29 18:11:50 2024 +0100 Prevent screen timeout commit 7c2db7f5973300312bbfcb6a54dfc77fd4423de9 Author: tim-allen-ck Date: Mon Apr 29 18:09:49 2024 +0100 updates commit 8d6cf1d47966a173f7e65e98c2f6bbe423a824d8 Author: tim-allen-ck Date: Mon Apr 29 17:16:38 2024 +0100 update commit 3ecdec77319417d1346f36dc3dc3975946458f10 Author: tim-allen-ck Date: Mon Apr 29 12:21:28 2024 +0100 update commit eb59085ada8f20ffc4fdc536cca1251166abc909 Author: tim-allen-ck Date: Mon Apr 29 12:19:33 2024 +0100 nexus update commit 915c6bcd464459a7ab81e073cee1ffc2d14f5038 Author: tim-allen-ck Date: Mon Apr 29 10:24:45 2024 +0100 updste commit 2345db24f5779921d84dd5d4233e6569ada7e995 Author: tim-allen-ck Date: Mon Apr 29 10:24:36 2024 +0100 update proxy url commit 6b454a37d82c60f22c4ab82e510ac39f43d3d57f Author: tim-allen-ck Date: Mon Apr 29 10:03:44 2024 +0100 update commit 2ce801bddfc1e4eb54633bfdfdc4ee3bd88249f1 Author: tim-allen-ck Date: Mon Apr 29 09:48:20 2024 +0100 add in r studio download commit 3b83b4c13c6bc5d5c886c0a47f1e897c8cbf65c6 Author: tim-allen-ck Date: Mon Apr 29 09:46:11 2024 +0100 add in snapcraft to nexus commit dfb6b7bae1ac0a585f53c99de85761d64a9b38a5 Author: tim-allen-ck Date: Fri Apr 26 16:55:45 2024 +0100 spelling commit f896ce314a54f85dd3e2246de29f596c312161d1 Author: tim-allen-ck Date: Fri Apr 26 16:08:41 2024 +0100 update version commit fd540af3ffa5392c14f62001d9494bf912b556aa Author: tim-allen-ck Date: Fri Apr 26 16:08:32 2024 +0100 clean up script commit 1f8456f5a001959677435169230a921e79f77f13 Author: tim-allen-ck Date: Fri Apr 26 14:27:31 2024 +0100 update commit 89e65eb693ce2d7a3cc2c8177ace28ba41d46013 Author: tim-allen-ck Date: Fri Apr 26 14:27:23 2024 +0100 update commit ae4cb0475f7affc8174a40431683565706f9112a Author: tim-allen-ck Date: Fri Apr 26 14:22:13 2024 +0100 update commit c33e0330ced874a540e7c1bcc9bfbdadbcdb4799 Author: tim-allen-ck Date: Fri Apr 26 14:10:46 2024 +0100 update commit 2e290e159c3cc62f6941b751876c727cb65c1709 Author: tim-allen-ck Date: Fri Apr 26 14:03:41 2024 +0100 update commit 2c16b604446cdb1f92cd3e202a10e5f62d64fc29 Author: tim-allen-ck Date: Fri Apr 26 13:57:50 2024 +0100 update commit 757d565276d9c88204d3acf4174fedbf9f19c410 Author: tim-allen-ck Date: Fri Apr 26 12:18:28 2024 +0100 update commit 977b487e64b419089e5c7a7361c1c079e1443183 Author: tim-allen-ck Date: Fri Apr 26 11:45:21 2024 +0100 update commit 572c27cbbc70b825170b5b71ea0fe93e5a43fbad Author: tim-allen-ck Date: Fri Apr 26 11:45:12 2024 +0100 update commit dc7a6c522a0874639c25158b3de463a2ec50155b Author: tim-allen-ck Date: Fri Apr 26 11:39:38 2024 +0100 add in extensions commit e46c5bbbac67f710f6f2852a5f8f7191adf93c4a Author: tim-allen-ck Date: Fri Apr 26 11:34:57 2024 +0100 add sleeps commit fa1572001fc79e72e464539ad356c197c7f43bc7 Author: tim-allen-ck Date: Fri Apr 26 11:33:44 2024 +0100 update commit 893cf8daa33a231bb33026602cdc89a4da7a52ce Author: tim-allen-ck Date: Fri Apr 26 10:20:12 2024 +0100 update commit 42223aa4b81d773e1c08e9a5e270e61668d00eb8 Author: tim-allen-ck Date: Fri Apr 26 10:16:27 2024 +0100 commit commit 0a7b1e87ed65924d3a6319e3fcd523f7e67376f5 Author: tim-allen-ck Date: Fri Apr 26 10:16:19 2024 +0100 update commit 6ce77b00e52add974f4be049043aee2e86c0079a Author: tim-allen-ck Date: Fri Apr 26 09:43:49 2024 +0100 update commit f1d68da0cdcf8c2e61a6c71c2c625fa21f06e31c Author: tim-allen-ck Date: Thu Apr 25 17:58:40 2024 +0100 update commit 060b6fd5d0e611323047615122950f76188b1f75 Author: tim-allen-ck Date: Thu Apr 25 16:17:09 2024 +0100 vm update commit c4e70942407a5134bd6b7bb04e8a900dc8790787 Author: tim-allen-ck Date: Thu Apr 25 14:20:05 2024 +0100 update commit 760f783fef6b6eaaaff8bb6e0d500723286937c2 Author: tim-allen-ck Date: Tue Apr 23 16:58:05 2024 +0100 updat commit 943e07b9d5eb50a6a2925080bdbbd8a457477b9c Author: tim-allen-ck Date: Tue Apr 23 15:16:03 2024 +0100 add in ms download and other apps commit 7a4d250d3b9ed12624b0c7e1481fce93285ba9ff Author: tim-allen-ck Date: Thu Apr 18 09:57:54 2024 +0100 update linux commit 770e4c76dbcb4225cb76fc3d03dd27f8ff03c99c Author: tim-allen-ck Date: Tue Apr 16 15:31:25 2024 +0100 fix linting commit 4354ca0917935d14c282d38ba896a7a90d08f9e8 Author: tim-allen-ck Date: Tue Apr 16 14:06:49 2024 +0100 format commit 6980ecbb832e2e46578953e46b7ab91f57e3a980 Author: tim-allen-ck Date: Mon Apr 15 16:16:50 2024 +0100 update commit a3e5492f79a52eccd634f5591f865e791d07633f Author: tim-allen-ck Date: Mon Apr 15 16:16:38 2024 +0100 update commit f9d9ffcd4ae7f54e88f3e242c2e7fbd22ded53f1 Author: tim-allen-ck Date: Mon Apr 15 14:44:27 2024 +0100 update commit d5a40452e5c226afe78805d9cd9fcb34818da279 Author: tim-allen-ck Date: Mon Apr 15 14:39:17 2024 +0100 update commit aa4713ca58eba12cc3033b66893cb87ff011bd0a Author: tim-allen-ck Date: Mon Apr 15 12:08:41 2024 +0100 update image version commit 2082559750d01e06032396be3c222d100e7671a1 Author: tim-allen-ck Date: Mon Apr 15 09:28:08 2024 +0100 update to gen2 commit cd1a4dbf2fdbfda70c493880f3be4fde3a1590d8 Author: tim-allen-ck Date: Fri Apr 12 16:49:59 2024 +0100 updaet vm config commit eff70504b880de8645e2d5e6ca3db4e849cccb0d Author: tim-allen-ck Date: Fri Apr 12 16:00:41 2024 +0100 edit commit ba9ae5088cdb902953381c9f3909a10d19eca617 Author: tim-allen-ck Date: Fri Apr 12 15:10:09 2024 +0100 update commit 81801f8914d1fae57a024c40d30e74849cb2358f Author: tim-allen-ck Date: Fri Apr 12 14:36:17 2024 +0100 update version commit 86909a3b8a8bbe9b6a6b253761c29d0dd5e7049d Author: tim-allen-ck Date: Fri Apr 12 12:50:34 2024 +0100 vm-config commit c5ce11b550e29c13881bc2ada49c18893ae1c716 Author: tim-allen-ck Date: Fri Apr 12 10:43:48 2024 +0100 update config commit b1bb5c96ba6eb753ae082a4efd45f22b2282f45f Merge: 9a28c420 cb59c992 Author: Tim Allen Date: Fri Apr 12 09:32:38 2024 +0100 Merge branch 'main' into ubuntu-update commit 9a28c42075148a4a58ab2ecde2db3ca1d15b9d3e Author: tim-allen-ck Date: Fri Apr 12 09:31:47 2024 +0100 reset commit 4a2036bc4c897754f91d19824e01505f81f48197 Author: tim-allen-ck Date: Fri Apr 12 09:29:53 2024 +0100 update resource proccesor commit e1939430b31c13ea1183924c91554100061d162d Author: tim-allen-ck Date: Fri Apr 12 09:27:52 2024 +0100 changelog update commit e8ba5fda9f058b0f94135848f8f898083ecb552d Author: tim-allen-ck Date: Thu Apr 11 12:18:36 2024 +0100 update readme and changelog commit f3b4efb385019cf67acdd2115386d0ce94a16d42 Author: Tim Allen Date: Fri Apr 12 09:01:26 2024 +0100 Update Resource processor Ubuntu Image (#3902) * Update clean_validation_envs.yml * update * update BRANCH_LAST_ACTIVITY_IN_HOURS_FOR_STOP: 8 * update core resource processor image * remove clean env * update version * update changelog commit 85cdb983a17297e853c199c0c0ba1bc06b989c50 Author: tim-allen-ck Date: Thu Apr 11 12:18:36 2024 +0100 update readme and changelog commit b17bfabd8aac12a5ac1709e8dcd973afbd993f21 Author: wojciechcloudkubed <159798789+wojciechcloudkubed@users.noreply.github.com> Date: Tue Apr 2 09:23:37 2024 +0100 Ubuntu update (#1) * personal * update ubuntu image * revert changes * update ubuntu version * update version * update offer * update sku * change offer --------- Co-authored-by: Wojciech <57405495+thewbuk@users.noreply.github.com> commit d8fa5d412184c821361b623233c79d3b8f238242 Author: Tim Allen Date: Fri Apr 12 09:01:26 2024 +0100 Update Resource processor Ubuntu Image (#3902) * Update clean_validation_envs.yml * update * update BRANCH_LAST_ACTIVITY_IN_HOURS_FOR_STOP: 8 * update core resource processor image * remove clean env * update version * update changelog commit 5e2cdb52f04d0b4d18dee8f287f2a2e0672cfb7b Author: tim-allen-ck Date: Thu Apr 11 12:18:36 2024 +0100 update readme and changelog commit 9af4f05a2bedfb54b769bc11ef81bbc607680801 Author: wojciechcloudkubed <159798789+wojciechcloudkubed@users.noreply.github.com> Date: Tue Apr 2 09:23:37 2024 +0100 Ubuntu update (#1) * personal * update ubuntu image * revert changes * update ubuntu version * update version * update offer * update sku * change offer --------- Co-authored-by: Wojciech <57405495+thewbuk@users.noreply.github.com> commit aa4b9487467420435cac009441f19bbb8f265f02 Author: Tim Allen Date: Fri Apr 12 09:01:26 2024 +0100 Update Resource processor Ubuntu Image (#3902) * Update clean_validation_envs.yml * update * update BRANCH_LAST_ACTIVITY_IN_HOURS_FOR_STOP: 8 * update core resource processor image * remove clean env * update version * update changelog commit 39aa2846941ac02dac76ae8b546d58470c018983 Author: tim-allen-ck Date: Fri Apr 12 09:12:48 2024 +0100 resolving comments commit cb59c99233575b096207e6afc288af9da7ee0256 Author: Tim Allen Date: Fri Apr 12 09:01:26 2024 +0100 Update Resource processor Ubuntu Image (#3902) * Update clean_validation_envs.yml * update * update BRANCH_LAST_ACTIVITY_IN_HOURS_FOR_STOP: 8 * update core resource processor image * remove clean env * update version * update changelog commit e06dbcd284b42231261f09d2d9078446119af706 Author: tim-allen-ck Date: Thu Apr 11 19:57:14 2024 +0100 moby-tini || true commit c08a2b78f600b73ad6e1ea6771f00ceac806897b Author: tim-allen-ck Date: Thu Apr 11 17:02:01 2024 +0100 update version commit 104939002386bb1c70eb22873cc5f00b40facffe Author: tim-allen-ck Date: Thu Apr 11 17:01:21 2024 +0100 remove moby-tini commit ce4dc82ba377fc28ee4f55be2968618a42178347 Author: tim-allen-ck Date: Thu Apr 11 15:53:12 2024 +0100 update version commit 7a43e653d840cc436cc0754aa7bf9493b5222306 Author: tim-allen-ck Date: Thu Apr 11 15:52:58 2024 +0100 update vm config commit 7db0e5fdcb0c2f16224ca86224df96fbe1ad1e76 Author: tim-allen-ck Date: Thu Apr 11 14:46:09 2024 +0100 update ds install_ui: true commit 8ff7f69abeb8e50c3b301b1023a6155d665335da Author: tim-allen-ck Date: Thu Apr 11 14:08:22 2024 +0100 update script commit be7212b684ac32f0df27ea3e3e1198c6d1aeeb5b Author: tim-allen-ck Date: Thu Apr 11 13:40:29 2024 +0100 update version commit 3a30d23cd81eedaefabd5291dcbb2fe0cab526ba Author: tim-allen-ck Date: Thu Apr 11 13:40:18 2024 +0100 ds install_ui: false commit a3d9109ed4736348238b54ad4ceb0be4fa2145d2 Author: tim-allen-ck Date: Thu Apr 11 12:18:36 2024 +0100 update readme and changelog commit 875f2f454ddce9ffbab8e490fc91b25df59789e3 Author: wojciechcloudkubed <159798789+wojciechcloudkubed@users.noreply.github.com> Date: Tue Apr 2 09:23:37 2024 +0100 Ubuntu update (#1) * personal * update ubuntu image * revert changes * update ubuntu version * update version * update offer * update sku * change offer --------- Co-authored-by: Wojciech <57405495+thewbuk@users.noreply.github.com> commit 9fc272b93a7211867339ba6b9f64a0a88afbba6e Merge: 3a9eecbf bc2f2332 Author: Tim Allen Date: Thu Apr 11 12:12:57 2024 +0100 Merge branch 'main' into ubuntu-update commit 3a9eecbf08be075a14a2875cfa97cd21073b4258 Author: tim-allen-ck Date: Thu Apr 11 12:12:16 2024 +0100 testing commit 3b7522eebb4674fd60c1afdeca40fc60e727b36a Author: tim-allen-ck Date: Thu Apr 11 11:49:49 2024 +0100 version for guac commit d75e442ffca717e05abb8a4cf2453ac0691ec59f Author: tim-allen-ck Date: Thu Apr 11 11:34:15 2024 +0100 update to gen2 commit d4a57a331763ce86f57bda17204212a1f0af5633 Author: tim-allen-ck Date: Thu Apr 11 11:28:21 2024 +0100 update Readme for user resources commit af50b399b90dbffca77c1e113ac66c755c5f502d Author: tim-allen-ck Date: Thu Apr 11 11:12:46 2024 +0100 update apt-get commit bc414b75addc05fd5560bfbe14bd9d512e235c9b Author: tim-allen-ck Date: Thu Apr 11 11:07:43 2024 +0100 update config commit bc2f233216727f2586c7e79cdd4ca0a12d4dfbbe Author: wojciechcloudkubed <159798789+wojciechcloudkubed@users.noreply.github.com> Date: Thu Apr 11 09:50:09 2024 +0100 Update "Azure AD" references to "Microsoft Entra ID" (#3873) * rename Azure AD to Microsoft Entra Workforce ID * update Azure Active Directory to Microsoft Entra Workforce ID * replace * update version * change stale version * update from stale * update version * update readme * Microsoft Entra Workforce ID -> Microsoft Entra ID * AAD -> Microsoft Entra ID * Delete .devcontainer/devcontainer.json * Revert "Delete .devcontainer/devcontainer.json" This reverts commit 5dd6d5c2656c5304bf4adf6bb38e1a20735bbc8a. * revert code changes * remove double names * update version * go back version * api update version * revert for linting * revert test linting * fix linting * roll back linting * increase line length * fix linting * fix formatting * fix lintin 3 * update urls * update aad urls --------- Co-authored-by: Tim Allen commit a09af34ee572e166f5498825ef98450e3af9ced1 Author: tim-allen-ck Date: Wed Apr 10 16:44:01 2024 +0100 update apt-source-list commit 271c7e0fc3ebc2c108caf99d4669f182cc4a11a6 Author: tim-allen-ck Date: Wed Apr 10 15:57:32 2024 +0100 update pypi source commit 1ea11594ac3efe1f6dfcf49a975ba8b287c329cf Author: tim-allen-ck Date: Wed Apr 10 15:53:40 2024 +0100 update commit d1beb038d67b9f1e0dba1f0be9bfb18bf25e9b38 Author: tim-allen-ck Date: Wed Apr 10 15:51:51 2024 +0100 updaye commit 9c2211b70ae50930df09ed681e61553728254cb0 Author: tim-allen-ck Date: Wed Apr 10 15:31:17 2024 +0100 update core commit c7ebc5b9330846d5c10ac0194442c3075eeb6c1d Author: tim-allen-ck Date: Wed Apr 10 15:29:00 2024 +0100 update linux vms commit 18df98cfca0445f76378f12c552f97d3353f6954 Author: tim-allen-ck Date: Wed Apr 10 15:27:42 2024 +0100 update version commit 19316a16ee519157748753867b2f5e8d7d553178 Author: tim-allen-ck Date: Wed Apr 10 14:03:08 2024 +0100 update install UI commit 47c81826b5a4902fbf01d86004c422e7bfecd42f Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Apr 9 19:39:14 2024 +0300 Bump the npm_and_yarn group in /ui/app with 3 updates (#3891) * Bump the npm_and_yarn group in /ui/app with 3 updates Bumps the npm_and_yarn group in /ui/app with 3 updates: [express](https://github.com/expressjs/express), [follow-redirects](https://github.com/follow-redirects/follow-redirects) and [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware). Updates `express` from 4.18.3 to 4.19.2 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.18.3...4.19.2) Updates `follow-redirects` from 1.15.5 to 1.15.6 - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6) Updates `webpack-dev-middleware` from 5.3.3 to 5.3.4 - [Release notes](https://github.com/webpack/webpack-dev-middleware/releases) - [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v5.3.3...v5.3.4) --- updated-dependencies: - dependency-name: express dependency-type: indirect dependency-group: npm_and_yarn-security-group - dependency-name: follow-redirects dependency-type: indirect dependency-group: npm_and_yarn-security-group - dependency-name: webpack-dev-middleware dependency-type: indirect dependency-group: npm_and_yarn-security-group ... Signed-off-by: dependabot[bot] * update ui version --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tim Allen commit 072cfdc24936ea65194152d6eb5fe39c6485d55c Author: tim-allen-ck Date: Tue Apr 9 17:26:28 2024 +0100 add in microsoft-apt/ubuntu/20.04 to source-list commit 30ecfa2401c2096237c02c336fccd47f90e606ed Author: tim-allen-ck Date: Tue Apr 9 14:55:25 2024 +0100 add in image to enum commit 33d14bee981e529928dcd8d21018555d69a1d9dc Author: tim-allen-ck Date: Tue Apr 9 14:33:52 2024 +0100 update image options commit 7aa64ba948609526b283c8142ab3d2e3d9581bf2 Author: tim-allen-ck Date: Tue Apr 9 12:09:38 2024 +0100 update commit ea63ebfaf4e838cf85988cd2cf53109a1acc35cd Author: Tim Allen Date: Tue Apr 9 06:37:40 2024 +0100 Feature/GitHub actions update (#3897) * Update clean_validation_envs.yml * azure login (#19) Co-authored-by: Wojciech <57405495+thewbuk@users.noreply.github.com> * GitHub actions update (#22) * azure login * reset cron * update action versions --------- Co-authored-by: wojciechcloudkubed <159798789+wojciechcloudkubed@users.noreply.github.com> * change conclusion action * add in teams --------- Co-authored-by: wojciechcloudkubed <159798789+wojciechcloudkubed@users.noreply.github.com> commit de141651ad9fb9f58e7b78e383edf263eaa549d1 Author: Tim Allen Date: Fri Apr 5 12:42:03 2024 +0100 Documentation Pipeline Fix (#3898) add in permissions to pipeline commit c92494e384362121d489380559e91c46cd6edf82 Merge: 27167496 086be330 Author: Tim Allen Date: Thu Apr 4 16:54:43 2024 +0100 Merge branch 'main' into ubuntu-update commit 27167496ec361294dcfe851bed55a30541594416 Author: wojciechcloudkubed <159798789+wojciechcloudkubed@users.noreply.github.com> Date: Tue Apr 2 09:23:37 2024 +0100 Ubuntu update (#1) * personal * update ubuntu image * revert changes * update ubuntu version * update version * update offer * update sku * change offer --------- Co-authored-by: Wojciech <57405495+thewbuk@users.noreply.github.com> * update env yaml * update bash * update linting * update docs * comment fixes * update * update nexus sku * Update docs/tre-templates/user-resources/guacamole-linux-vm.md Co-authored-by: Marcus Robinson * update docs * docs --------- Co-authored-by: Marcus Robinson --- CHANGELOG.md | 5 +- docs/tre-templates/shared-services/nexus.md | 19 +++ docs/tre-templates/user-resources/custom.md | 62 +++++++++ .../user-resources/guacamole-linux-vm.md | 10 ++ e2e_tests/test_performance.py | 2 +- .../sonatype-nexus-vm/porter.yaml | 2 +- .../scripts/nexus_realms_config.json | 5 +- .../microsoft_download_conf.json | 32 +++++ .../r_studio_download_conf.json | 32 +++++ .../nexus_repos_config/snapcraft_conf.json | 32 +++++ .../sonatype-nexus-vm/terraform/locals.tf | 2 +- .../sonatype-nexus-vm/terraform/vm.tf | 1 + .../guacamole/user_resources/README.md | 20 +-- .../guacamole-azure-linuxvm/porter.yaml | 20 +-- .../template_schema.json | 3 +- .../terraform/apt_sources_config.yml | 4 +- .../terraform/get_apt_keys.sh | 4 + .../terraform/linuxvm.tf | 3 + .../terraform/locals.tf | 2 +- .../terraform/pypi_sources_config.sh | 2 +- .../terraform/vm_config.sh | 124 +++++++++++++++--- 21 files changed, 330 insertions(+), 56 deletions(-) create mode 100644 docs/tre-templates/user-resources/custom.md create mode 100644 templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/microsoft_download_conf.json create mode 100644 templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/r_studio_download_conf.json create mode 100644 templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/snapcraft_conf.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 64cdb8bd18..5aa6fe9888 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,11 @@ FEATURES: ENHANCEMENTS: BUG FIXES: +* Update Guacomole Linux VM Images to Ubuntu 22.04 LTS. Part of ([#3523](https://github.com/microsoft/AzureTRE/issues/3523)) +* Update Nexus Shared Service with new proxies. Part of ([#3523](https://github.com/microsoft/AzureTRE/issues/3523)) * Update to Resource Processor Image, now using Ubuntu 22.04 (jammy). Part of ([#3523](https://github.com/microsoft/AzureTRE/issues/3523)) -* Remove TLS1.0/1.1 support from Application Gateway +* Remove TLS1.0/1.1 support from Application Gateway ([#3914](https://github.com/microsoft/AzureTRE/issues/3914)) +* GitHub Actions version updates. ([#3847](https://github.com/microsoft/AzureTRE/issues/3847)) COMPONENTS: diff --git a/docs/tre-templates/shared-services/nexus.md b/docs/tre-templates/shared-services/nexus.md index 5869ae9693..3717f986e8 100644 --- a/docs/tre-templates/shared-services/nexus.md +++ b/docs/tre-templates/shared-services/nexus.md @@ -87,10 +87,12 @@ Nexus Shared Service requires access to resources outside of the Azure TRE VNET. | Ubuntu Security Packages | apt | [http://security.ubuntu.com/ubuntu/] | `https://nexus-{TRE_ID}.{LOCATION}.cloudapp.azure.com/repository/ubuntu-security/` | Provide access to Ubuntu Security apt packages on Ubuntu systems. | | Almalinux | yum | [https://repo.almalinux.org] | `https://nexus-{TRE_ID}.{LOCATION}.cloudapp.azure.com/repository/almalinux` | Install Almalinux packages | | R-Proxy | r | [https://cran.r-project.org/] | `https://nexus-{TRE_ID}.{LOCATION}.cloudapp.azure.com/repository/r-proxy` | Provide access to CRAN packages for R | +| R-Studio Download | raw | [https://download1.rstudio.org] | `https://nexus-{TRE_ID}.{LOCATION}.cloudapp.azure.com/repository/r-studio-download` | Provide access to download R Studio | | Fedora Project | yum | [https://download-ib01.fedoraproject.org] | `https://nexus-{TRE_ID}.{LOCATION}.cloudapp.azure.com/repository/fedoraproject` | Install Fedora Project Linux packages | | Microsoft Apt | apt | [https://packages.microsoft.com] | `https://nexus-{TRE_ID}.{LOCATION}.cloudapp.azure.com/repository/microsoft-apt` | Provide access to Microsoft Apt packages | | Microsoft Keys | raw | [https://packages.microsoft.com/keys/] | `https://nexus-{TRE_ID}.{LOCATION}.cloudapp.azure.com/repository/microsoft-keys` | Provide access to Microsoft keys | | Microsoft Yum | yum | [https://packages.microsoft.com/yumrepos] | `https://nexus-{TRE_ID}.{LOCATION}.cloudapp.azure.com/repository/microsoft-yum` | Provide access to Microsoft Yum packages | +| Microsoft Download | raw | [https://download.microsoft.com/download] | `https://nexus-{TRE_ID}.{LOCATION}.cloudapp.azure.com/repository/microsoft-download` | Provide access to Microsoft Downloads | ### Migrate from an existing V1 Nexus service (hosted on App Service) @@ -111,3 +113,20 @@ If you still have an existing Nexus installation based on App Service (from the The Nexus service checks Key Vault regularly for the latest certificate matching the name you passed on deploy (`nexus-ssl` by default). When approaching expiry, you can either provide an updated certificate into the TRE core KeyVault (with the name you specified when installing Nexus) if you brought your own, or if you used the certs shared service to generate one, just call the `renew` custom action on that service. This will generate a new certificate and persist it to the Key Vault, replacing the expired one. + +## Updating to v3.0.0 +The newest version of Nexus is a significant update for the service. +As a result, a new installation of Nexus will be necessary. + +We are currently in the process of developing an upgrade path for upcoming releases. + +## Using Docker Hub +When using Docker with a VM, the image URL should be constructed as follows: {NEXUS_URL}:{port}/docker-image + +```bash +sudo docker pull {NEXUS_URL}:8083/hello-world +``` + +the default port out of the box is 8083 + +Nexus will also need "Anonymous Access" set to "Enable". This can be done by logging into the Nexus Portal with the Admin user and following the prompts. diff --git a/docs/tre-templates/user-resources/custom.md b/docs/tre-templates/user-resources/custom.md new file mode 100644 index 0000000000..dfdfb136bd --- /dev/null +++ b/docs/tre-templates/user-resources/custom.md @@ -0,0 +1,62 @@ +# Guacamole User Resources + +- linuxvm - a Linux-based virtual machine +- windowsvm - A Windows-based virtual machine + +## Customising the user resources + +The `guacamole-azure-linuxvm` and `guacamole-azure-windowsvm` folders follow a consistent layout. +To update one of these templates (or to create a new template based on these folders) to use different image details or VM sizes, there are a few files that need to be updated: + +| File | Description | +| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `porter.yaml` | This file describes the template and the name should be updated when creating a template based on the folder.
This file also contains a `custom` data section that describes the VM properties.
Additionally, the version needs to be updated to deploy an updated version | +| `template_schema.json` | This file controls the validation applied to the template, for example specifying the valid options for fields such as size and image | + +### Configuration + +In `porter.yaml`, the `custom` section contains a couple of sub-sections (shown below) + +```yaml +custom: + vm_sizes: + "2 CPU | 8GB RAM": Standard_D2s_v5 + "4 CPU | 16GB RAM": Standard_D4s_v5 + "8 CPU | 32GB RAM": Standard_D8s_v5 + "16 CPU | 64GB RAM": Standard_D16s_v5 + image_options: + "Ubuntu 22.04 LTS": + source_image_reference: + publisher: canonical + offer: 0001-com-ubuntu-server-jammy + sku: 22_04-lts-gen2 + version: latest + apt_sku: 22.04 + install_ui: true + conda_config: false + # "Custom Image From Gallery": + # source_image_name: your-image + # install_ui: true + # conda_config: true +``` + +The `vm_sizes` section is a map of a custom SKU description to the SKU identifier. + +The `image_options` section defined the possible image choices for the template (note that the name of the image used here needs to be included in the corresponding enum in `template_schema.json`). + +Within the image definition in `image_options` there are a few properties that can be specified: + +| Name | Description | +| ------------------------ | -------------------------------------------------------------------------------------------------------- | +| `source_image_name` | Specify VM image to use by name (see notes below for identifying the image gallery containing the image) | +| `source_image_reference` | Specify VM image to use by `publisher`, `offer`, `sku` & `version` (e.g. for Azure Marketplace images) | +| `install_ui` | (Linux only) Set `true` to install desktop environment | +| `conda_config` | Set true to configure conda | + +When specifying images using `source_image_name`, the image must be stored in an [image gallery](https://learn.microsoft.com/en-us/azure/virtual-machines/azure-compute-gallery). +To enable re-using built user resource templates across environments where the image may vary, the image gallery is configured via the `RP_BUNDLE_VALUES` environment variable when deploying the TRE. +The `RP_BUNDLE_VALUES` variable is a JSON object, and the `image_gallery_id` property within it identifies the image gallery that contains the images specified by `source_image_name`: + +```bash +RP_BUNDLE_VALUES='{"image_gallery_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups//providers/Microsoft.Compute/galleries/"} +``` diff --git a/docs/tre-templates/user-resources/guacamole-linux-vm.md b/docs/tre-templates/user-resources/guacamole-linux-vm.md index 8cf7b55906..31c08f55a0 100644 --- a/docs/tre-templates/user-resources/guacamole-linux-vm.md +++ b/docs/tre-templates/user-resources/guacamole-linux-vm.md @@ -7,3 +7,13 @@ It blocks all inbound and outbound traffic to the internet and allows only RDP c - [A base workspace bundle installed](../workspaces/base.md) - [A guacamole workspace service bundle installed](../workspace-services/guacamole.md) +- [A Nexus shared service has been deployed](../shared-services/nexus.md) + +## Notes + +- Nexus is a prerequisite of installing the Linux VMs given the additional commands in the bootstrap scripts. +- In production we recommend using VM images to avoid transient issues downloading and installing packages. The included user resource templates for VMs with bootstrap scripts should only be used for trial/demonstration purposes. More info can be found [here](./custom.md). +- Snap (app store for linux via [snapcraft.io](https://snapcraft.io)) hasn't been configured to work via the nexus proxy + +## Using Custom Images +For custom image usage, visit this [page](./custom.md). diff --git a/e2e_tests/test_performance.py b/e2e_tests/test_performance.py index 9f284fc235..6c6d836d9d 100644 --- a/e2e_tests/test_performance.py +++ b/e2e_tests/test_performance.py @@ -106,7 +106,7 @@ async def test_bulk_updates_to_ensure_each_resource_updated_in_series(verify) -> "properties": { "display_name": "Perf test VM", "description": "", - "os_image": "Ubuntu 18.04" + "os_image": "Ubuntu 22.04 LTS" } } diff --git a/templates/shared_services/sonatype-nexus-vm/porter.yaml b/templates/shared_services/sonatype-nexus-vm/porter.yaml index 307bee19bc..f46a419468 100644 --- a/templates/shared_services/sonatype-nexus-vm/porter.yaml +++ b/templates/shared_services/sonatype-nexus-vm/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-shared-service-sonatype-nexus -version: 2.8.13 +version: 3.0.0 description: "A Sonatype Nexus shared service" dockerfile: Dockerfile.tmpl registry: azuretre diff --git a/templates/shared_services/sonatype-nexus-vm/scripts/nexus_realms_config.json b/templates/shared_services/sonatype-nexus-vm/scripts/nexus_realms_config.json index 51fa1053e0..eeb2530e36 100644 --- a/templates/shared_services/sonatype-nexus-vm/scripts/nexus_realms_config.json +++ b/templates/shared_services/sonatype-nexus-vm/scripts/nexus_realms_config.json @@ -1,5 +1,4 @@ [ - "NexusAuthenticatingRealm", - "NexusAuthorizingRealm", - "DockerToken" + "DockerToken", + "NexusAuthenticatingRealm" ] diff --git a/templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/microsoft_download_conf.json b/templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/microsoft_download_conf.json new file mode 100644 index 0000000000..a153c626a9 --- /dev/null +++ b/templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/microsoft_download_conf.json @@ -0,0 +1,32 @@ +{ + "name": "microsoft-download", + "online": true, + "storage": { + "blobStoreName": "default", + "strictContentTypeValidation": true, + "write_policy": "ALLOW" + }, + "proxy": { + "remoteUrl": "https://download.microsoft.com/download", + "contentMaxAge": 1440, + "metadataMaxAge": 1440 + }, + "negativeCache": { + "enabled": true, + "timeToLive": 1440 + }, + "httpClient": { + "blocked": false, + "autoBlock": false, + "connection": { + "retries": 0, + "userAgentSuffix": "string", + "timeout": 60, + "enableCircularRedirects": false, + "enableCookies": false, + "useTrustStore": false + } + }, + "baseType": "raw", + "repoType": "proxy" + } \ No newline at end of file diff --git a/templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/r_studio_download_conf.json b/templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/r_studio_download_conf.json new file mode 100644 index 0000000000..264deeeb36 --- /dev/null +++ b/templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/r_studio_download_conf.json @@ -0,0 +1,32 @@ +{ + "name": "r-studio-download", + "online": true, + "storage": { + "blobStoreName": "default", + "strictContentTypeValidation": true, + "write_policy": "ALLOW" + }, + "proxy": { + "remoteUrl": "https://download1.rstudio.org", + "contentMaxAge": 1440, + "metadataMaxAge": 1440 + }, + "negativeCache": { + "enabled": true, + "timeToLive": 1440 + }, + "httpClient": { + "blocked": false, + "autoBlock": false, + "connection": { + "retries": 0, + "userAgentSuffix": "string", + "timeout": 60, + "enableCircularRedirects": false, + "enableCookies": false, + "useTrustStore": false + } + }, + "baseType": "raw", + "repoType": "proxy" + } \ No newline at end of file diff --git a/templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/snapcraft_conf.json b/templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/snapcraft_conf.json new file mode 100644 index 0000000000..33019c0a48 --- /dev/null +++ b/templates/shared_services/sonatype-nexus-vm/scripts/nexus_repos_config/snapcraft_conf.json @@ -0,0 +1,32 @@ +{ + "name": "snapcraft", + "online": true, + "storage": { + "blobStoreName": "default", + "strictContentTypeValidation": true, + "write_policy": "ALLOW" + }, + "proxy": { + "remoteUrl": "https://snapcraftcontent.com", + "contentMaxAge": 1440, + "metadataMaxAge": 1440 + }, + "negativeCache": { + "enabled": true, + "timeToLive": 1440 + }, + "httpClient": { + "blocked": false, + "autoBlock": false, + "connection": { + "retries": 0, + "userAgentSuffix": "string", + "timeout": 60, + "enableCircularRedirects": false, + "enableCookies": false, + "useTrustStore": false + } + }, + "baseType": "raw", + "repoType": "proxy" + } \ No newline at end of file diff --git a/templates/shared_services/sonatype-nexus-vm/terraform/locals.tf b/templates/shared_services/sonatype-nexus-vm/terraform/locals.tf index c0484c712f..67cae90039 100644 --- a/templates/shared_services/sonatype-nexus-vm/terraform/locals.tf +++ b/templates/shared_services/sonatype-nexus-vm/terraform/locals.tf @@ -1,7 +1,7 @@ locals { core_vnet = "vnet-${var.tre_id}" core_resource_group_name = "rg-${var.tre_id}" - nexus_allowed_fqdns = "pypi.org,*.pypi.org,files.pythonhosted.org,security.ubuntu.com,archive.ubuntu.com,keyserver.ubuntu.com,repo.anaconda.com,*.docker.com,*.docker.io,conda.anaconda.org,azure.archive.ubuntu.com,packages.microsoft.com,repo.almalinux.org,download-ib01.fedoraproject.org,cran.r-project.org,cloud.r-project.org" + nexus_allowed_fqdns = "pypi.org,*.pypi.org,files.pythonhosted.org,security.ubuntu.com,archive.ubuntu.com,keyserver.ubuntu.com,repo.anaconda.com,*.docker.com,*.docker.io,conda.anaconda.org,azure.archive.ubuntu.com,packages.microsoft.com,repo.almalinux.org,download-ib01.fedoraproject.org,cran.r-project.org,cloud.r-project.org,download1.rstudio.org,*.snapcraftcontent.com,download.microsoft.com" nexus_allowed_fqdns_list = distinct(compact(split(",", replace(local.nexus_allowed_fqdns, " ", "")))) workspace_vm_allowed_fqdns = "r3.o.lencr.org,x1.c.lencr.org" workspace_vm_allowed_fqdns_list = distinct(compact(split(",", replace(local.workspace_vm_allowed_fqdns, " ", "")))) diff --git a/templates/shared_services/sonatype-nexus-vm/terraform/vm.tf b/templates/shared_services/sonatype-nexus-vm/terraform/vm.tf index 27a6a3d04f..79dfa04472 100644 --- a/templates/shared_services/sonatype-nexus-vm/terraform/vm.tf +++ b/templates/shared_services/sonatype-nexus-vm/terraform/vm.tf @@ -83,6 +83,7 @@ resource "azurerm_user_assigned_identity" "nexus_msi" { location = data.azurerm_resource_group.rg.location resource_group_name = local.core_resource_group_name tags = local.tre_shared_service_tags + lifecycle { ignore_changes = [tags] } } diff --git a/templates/workspace_services/guacamole/user_resources/README.md b/templates/workspace_services/guacamole/user_resources/README.md index c553e1673a..623098ad42 100644 --- a/templates/workspace_services/guacamole/user_resources/README.md +++ b/templates/workspace_services/guacamole/user_resources/README.md @@ -2,10 +2,9 @@ This folder contains user resources that can be deployed with the Guacamole workspace service: -- linuxvm - a Linux-based virtual machine (expects an Ubuntu 18.04-based VM) +- linuxvm - a Linux-based virtual machine - windowsvm - A Windows-based virtual machine - ## Customising the user resources The `guacamole-azure-linuxvm` and `guacamole-azure-windowsvm` folders follow a consistent layout. @@ -29,22 +28,15 @@ custom: "8 CPU | 32GB RAM": Standard_D8s_v5 "16 CPU | 64GB RAM": Standard_D16s_v5 image_options: - "Ubuntu 18.04": + "Ubuntu 22.04 LTS": source_image_reference: publisher: canonical - offer: ubuntuserver - sku: 18_04-lts-gen2 + offer: 0001-com-ubuntu-server-jammy + sku: 22_04-lts-gen2 version: latest + apt_sku: 22.04 install_ui: true conda_config: false - "Ubuntu 18.04 Data Science VM": - source_image_reference: - publisher: microsoft-dsvm - offer: ubuntu-1804 - sku: 1804-gen2 - version: latest - install_ui: false - conda_config: true # "Custom Image From Gallery": # source_image_name: your-image # install_ui: true @@ -68,8 +60,6 @@ When specifying images using `source_image_name`, the image must be stored in an To enable re-using built user resource templates across environments where the image may vary, the image gallery is configured via the `RP_BUNDLE_VALUES` environment variable when deploying the TRE. The `RP_BUNDLE_VALUES` variable is a JSON object, and the `image_gallery_id` property within it identifies the image gallery that contains the images specified by `source_image_name`: - ```bash RP_BUNDLE_VALUES='{"image_gallery_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups//providers/Microsoft.Compute/galleries/"} ``` - diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml index f36a668258..cbd074d962 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-linuxvm -version: 0.6.9 +version: 1.0.0 description: "An Azure TRE User Resource Template for Guacamole (Linux)" dockerfile: Dockerfile.tmpl registry: azuretre @@ -14,29 +14,21 @@ custom: "8 CPU | 32GB RAM": Standard_D8s_v5 "16 CPU | 64GB RAM": Standard_D16s_v5 image_options: - "Ubuntu 18.04": + "Ubuntu 22.04 LTS": source_image_reference: publisher: canonical - offer: ubuntuserver - sku: 18_04-lts-gen2 + offer: 0001-com-ubuntu-server-jammy + sku: 22_04-lts-gen2 version: latest + apt_sku: 22.04 install_ui: true conda_config: false - "Ubuntu 18.04 Data Science VM": - source_image_reference: - publisher: microsoft-dsvm - offer: ubuntu-1804 - sku: 1804-gen2 - version: latest - install_ui: false - conda_config: true # For information on using custom images, see README.me in the guacamole/user-resources folder # "Custom Image From Gallery": # source_image_name: your-image # install_ui: true # conda_config: true - credentials: - name: azure_tenant_id env: ARM_TENANT_ID @@ -91,7 +83,7 @@ parameters: default: "public" - name: os_image type: string - default: "Ubuntu 18.04 Data Science VM" + default: "Ubuntu 22.04 LTS" - name: vm_size type: string default: "2 CPU | 8GB RAM" diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json index 9c7aec15a3..fc0bad231b 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json @@ -16,8 +16,7 @@ "title": "Linux image", "description": "Select Linux image to use for VM", "enum": [ - "Ubuntu 18.04", - "Ubuntu 18.04 Data Science VM" + "Ubuntu 22.04 LTS" ] }, "vm_size": { diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/apt_sources_config.yml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/apt_sources_config.yml index 22b3418d5b..35b5b5857b 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/apt_sources_config.yml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/apt_sources_config.yml @@ -14,6 +14,8 @@ apt: deb [trusted=yes] $PRIMARY $RELEASE main restricted universe multiverse deb [trusted=yes] $PRIMARY $RELEASE-updates main restricted universe multiverse deb [trusted=yes] $SECURITY $RELEASE main restricted universe multiverse - deb [signed-by=/etc/apt/trusted.gpg.d/microsoft.gpg] ${nexus_proxy_url}/repository/microsoft-apt/ubuntu/18.04/prod $RELEASE main + deb [signed-by=/etc/apt/trusted.gpg.d/microsoft.gpg] ${nexus_proxy_url}/repository/microsoft-apt/ubuntu/${apt_sku}/prod $RELEASE main deb [signed-by=/etc/apt/trusted.gpg.d/microsoft.gpg] ${nexus_proxy_url}/repository/microsoft-apt/repos/edge stable main + deb [signed-by=/etc/apt/trusted.gpg.d/microsoft.gpg] ${nexus_proxy_url}/repository/microsoft-apt/repos/vscode stable main + deb [signed-by=/etc/apt/trusted.gpg.d/microsoft.gpg] ${nexus_proxy_url}/repository/microsoft-apt/repos/azure-cli $RELEASE main deb [signed-by=/etc/apt/trusted.gpg.d/docker-archive-keyring.gpg] ${nexus_proxy_url}/repository/docker/ $RELEASE stable diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/get_apt_keys.sh b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/get_apt_keys.sh index 5849eaede3..6e69009525 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/get_apt_keys.sh +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/get_apt_keys.sh @@ -6,6 +6,10 @@ set -o nounset # Uncomment this line to see each command for debugging (careful: this will show secrets!) # set -o xtrace +#remove key if they already exist +sudo rm -f /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg || true +sudo rm -f /etc/apt/trusted.gpg.d/microsoft.gpg || true + # Get Docker Public key from Nexus curl -fsSL "${NEXUS_PROXY_URL}"/repository/docker-public-key/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/linuxvm.tf b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/linuxvm.tf index 247c4f77e0..8172ec77bb 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/linuxvm.tf +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/linuxvm.tf @@ -110,6 +110,8 @@ data "template_file" "vm_config" { FILESHARE_NAME = var.shared_storage_access ? data.azurerm_storage_share.shared_storage[0].name : "" NEXUS_PROXY_URL = local.nexus_proxy_url CONDA_CONFIG = local.selected_image.conda_config ? 1 : 0 + VM_USER = random_string.username.result + APT_SKU = replace(local.apt_sku, ".", "") } } @@ -131,6 +133,7 @@ data "template_file" "apt_sources_config" { template = file("${path.module}/apt_sources_config.yml") vars = { nexus_proxy_url = local.nexus_proxy_url + apt_sku = local.apt_sku } } diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/locals.tf b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/locals.tf index 43a6d5982b..e0281269fd 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/locals.tf +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/locals.tf @@ -15,7 +15,6 @@ locals { tre_user_resource_id = var.tre_resource_id } nexus_proxy_url = "https://nexus-${data.azurerm_public_ip.app_gateway_ip.fqdn}" - # Load VM SKU/image details from porter.yaml porter_yaml = yamldecode(file("${path.module}/../porter.yaml")) vm_sizes = local.porter_yaml["custom"]["vm_sizes"] @@ -26,4 +25,5 @@ locals { # selected_image_source_refs is an array to enable easy use of a dynamic block selected_image_source_refs = lookup(local.selected_image, "source_image_reference", null) == null ? [] : [local.selected_image.source_image_reference] selected_image_source_id = lookup(local.selected_image, "source_image_name", null) == null ? null : "${var.image_gallery_id}/images/${local.selected_image.source_image_name}" + apt_sku = local.selected_image_source_refs[0]["apt_sku"] } diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/pypi_sources_config.sh b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/pypi_sources_config.sh index 6d70862655..9380cbc9e1 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/pypi_sources_config.sh +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/pypi_sources_config.sh @@ -1,5 +1,5 @@ #!/bin/bash -sudo tee /etc/pip.conf > dev/null <<'EOF' +sudo tee /etc/pip.conf > /dev/null <<'EOF' [global] index = ${nexus_proxy_url}/repository/pypi/pypi index-url = ${nexus_proxy_url}/repository/pypi/simple diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/vm_config.sh b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/vm_config.sh index 7db5f89b82..71d7317545 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/vm_config.sh +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/vm_config.sh @@ -2,32 +2,94 @@ set -o errexit set -o pipefail -# set -o nounset +set -o nounset # Uncomment this line to see each command for debugging (careful: this will show secrets!) -# set -o xtrace +set -o xtrace # Remove apt sources not included in sources.list file sudo rm -f /etc/apt/sources.list.d/* # Update apt packages from configured Nexus sources -sudo apt-get update - -# Install xrdp so Guacamole can connect via RDP -sudo apt-get install xrdp -y +echo "init_vm.sh: START" +sudo apt update || true +sudo apt upgrade -y +sudo apt install -y gnupg2 software-properties-common apt-transport-https wget dirmngr gdebi-core +sudo apt-get update || true + +## Desktop +echo "init_vm.sh: Desktop" +sudo systemctl start gdm3 || true +DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true dpkg-reconfigure gdm3 || true +sudo apt install -y xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils +echo /usr/sbin/gdm3 > /etc/X11/default-display-manager + +## Install xrdp so Guacamole can connect via RDP +echo "init_vm.sh: xrdp" +sudo apt install -y xrdp xorgxrdp xfce4-session sudo adduser xrdp ssl-cert +sudo -u "${VM_USER}" -i bash -c 'echo xfce4-session > ~/.xsession' +sudo -u "${VM_USER}" -i bash -c 'echo xset s off >> ~/.xsession' +sudo -u "${VM_USER}" -i bash -c 'echo xset -dpms >> ~/.xsession' -# Install desktop environment if image doesn't have one already -if [ "${INSTALL_UI}" -eq 1 ]; then - sudo apt-get install xorg xfce4 xfce4-goodies dbus-x11 x11-xserver-utils -y - echo xfce4-session > ~/.xsession -fi +# Make sure xrdp service starts up with the system +sudo systemctl enable xrdp +sudo service xrdp restart + +## Python 3.8 and Jupyter +sudo apt install -y jupyter-notebook microsoft-edge-dev + +## VS Code +echo "init_vm.sh: VS Code" +sudo apt install -y code +sudo apt install -y gvfs-bin || true + +echo "init_vm.sh: Folders" +sudo mkdir -p /opt/vscode/user-data +sudo mkdir -p /opt/vscode/extensions + +# echo "init_vm.sh: azure-cli" +sudo apt install azure-cli -y + +# TODO: need to look at proxy extentions +## VSCode Extensions +# echo "init_vm.sh: VSCode extensions" +# code --extensions-dir="/opt/vscode/extensions" --user-data-dir="/opt/vscode/user-data" --install-extension ms-python.python +# code --extensions-dir="/opt/vscode/extensions" --user-data-dir="/opt/vscode/user-data" --install-extension REditorSupport.r +# code --extensions-dir="/opt/vscode/extensions" --user-data-dir="/opt/vscode/user-data" --install-extension RDebugger.r-debugger + +# Azure Storage Explorer +sudo apt install gnome-keyring dotnet-sdk-7.0 -y +wget -q "${NEXUS_PROXY_URL}"/repository/microsoft-download/A/E/3/AE32C485-B62B-4437-92F7-8B6B2C48CB40/StorageExplorer-linux-x64.tar.gz -P /tmp +sudo mkdir /opt/storage-explorer +sudo tar xvf /tmp/StorageExplorer-linux-x64.tar.gz -C /opt/storage-explorer +sudo chmod +x /opt/storage-explorer/* + +sudo tee /usr/share/applications/storage-explorer.desktop << END +[Desktop Entry] +Name=Storage Explorer +Comment=Azure Storage Explorer +Exec=/opt/storage-explorer/StorageExplorer +Icon=/opt/storage-explorer/resources/app/out/app/icon.png +Terminal=false +Type=Application +StartupNotify=false +StartupWMClass=Code +Categories=Development; +END + +## R +echo "init_vm.sh: R Setup" +sudo apt install -y r-base + +# RStudio Desktop +echo "init_vm.sh: RStudio" +wget "${NEXUS_PROXY_URL}"/repository/r-studio-download/electron/jammy/amd64/rstudio-2023.12.1-402-amd64.deb -P /tmp/2204 +wget "${NEXUS_PROXY_URL}"/repository/r-studio-download/electron/focal/amd64/rstudio-2023.12.1-402-amd64.deb -P /tmp/2004 +sudo gdebi --non-interactive /tmp/"${APT_SKU}"/rstudio-2023.12.1-402-amd64.deb # Fix for blank screen on DSVM (/sh -> /bash due to conflict with profile.d scripts) sudo sed -i 's|!/bin/sh|!/bin/bash|g' /etc/xrdp/startwm.sh -# Make sure xrdp service starts up with the system -sudo systemctl enable xrdp - if [ "${SHARED_STORAGE_ACCESS}" -eq 1 ]; then # Install required packages sudo apt-get install autofs -y @@ -75,6 +137,7 @@ fi ### Anaconda Config if [ "${CONDA_CONFIG}" -eq 1 ]; then + echo "init_vm.sh: Anaconda" export PATH="/anaconda/condabin":$PATH export PATH="/anaconda/bin":$PATH export PATH="/anaconda/envs/py38_default/bin":$PATH @@ -85,11 +148,42 @@ if [ "${CONDA_CONFIG}" -eq 1 ]; then fi # Docker install and config +sudo apt-get remove -y moby-tini || true +sudo apt-get install -y r-base-core sudo apt-get install -y ca-certificates curl gnupg lsb-release -sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin jq +sudo apt-get install -y docker-compose-plugin docker-ce-cli containerd.io jq +sudo apt-get install -y docker-ce jq -n --arg proxy "${NEXUS_PROXY_URL}:8083" '{"registry-mirrors": [$proxy]}' > /etc/docker/daemon.json sudo systemctl daemon-reload sudo systemctl restart docker # R config sudo echo -e "local({\n r <- getOption(\"repos\")\n r[\"Nexus\"] <- \"""${NEXUS_PROXY_URL}\"/repository/r-proxy/\"\n options(repos = r)\n})" | sudo tee /etc/R/Rprofile.site + +# Jupiter Notebook Config +sudo sed -i -e 's/Terminal=true/Terminal=false/g' /usr/share/applications/jupyter-notebook.desktop + +# Default Browser +sudo update-alternatives --config x-www-browser + +## Cleanup +echo "init_vm.sh: Cleanup" +sudo shutdown -r now + +# Prevent screen timeout +echo "init_vm.sh: Preventing Timeout" +sudo touch /home/"${VM_USER}"/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml +sudo chmod 664 /home/"${VM_USER}"/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml +sudo chown "${VM_USER}":"${VM_USER}" /home/"${VM_USER}"/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml +sudo tee /home/"${VM_USER}"/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml << END + + + + + + + + + + +END