Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update install/uninstall commands (#5725)
# Description This change updates the install and uninstall commands to use the CLI framework and adds tests. These commands previously were missing tests. Additionally I removed the console output from the *shared* code path used for installation by both `rad init` and `rad install kubernetes` and moved it to the `rad install kubernetes` command directly. This was causing an issue with the interactive output shown by `rad init`. Any time we're using Bubbletea to display something, we need to prevent any other console output from going to stdout. This cleanup fixes a display bug in `rad init`. ## Auto-generated summary <!-- GitHub Copilot for docs will auto-generate a summary of the PR --> <!-- copilot:all --> ### <samp>🤖 Generated by Copilot at 42630cd</samp> ### Summary 🚀🧹🧪 <!-- 1. 🚀 - This emoji represents the new feature of installing Radius on Kubernetes using the `install` command and its subcommand `install kubernetes`. This is a major enhancement for the user experience and the functionality of the CLI. 2. 🧹 - This emoji represents the refactoring and simplification of the code, as well as the removal of unused or redundant code and fields. This is a minor improvement for the code quality and maintainability. 3. 🧪 - This emoji represents the addition of unit tests for the `install kubernetes` and `uninstall kubernetes` commands and their runners. This is a minor improvement for the code coverage and reliability. --> This pull request adds the `install` and `uninstall` commands and their subcommands for Kubernetes to the Radius CLI. It also refactors and simplifies the helm chart logic, removes unused code and files, and adds unit tests for the new commands. > _`install` command grows_ > _`uninstall` follows its steps_ > _helm charts in spring_ ### Walkthrough * Add `install` and `uninstall` commands and subcommands for different platforms ([link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-d36b7b4d04f01a6cf60c50dd9c01da8fb8c190231ea4c59cbbfbe070178b510bR48-R49), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-d36b7b4d04f01a6cf60c50dd9c01da8fb8c190231ea4c59cbbfbe070178b510bR277-R281), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-cee167b5fae6ceb091e56307a4a1a5ed10a903a67e94e9f21fbecf5424ca44e9L17-R28), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-5d15d76cfd8957139c374b9ef658dfa8e46eced4ed1da0dd058f6a2af4219267R1-R28)) * Implement and test `install kubernetes` command and runner using `helm` and `output` interfaces ([link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-969a1495c18d847fc09b31b1e6854e7be42d541513807361aaa5e9497a62e86fR1-R110), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-fe10b481ed48e3007befe842b7f4bd554a17bf5b76b39e6c863ffb068a093c78R1-R177), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-a94c29c96fb0778e35d7983669dedfa10de7111040707a3839dace9836b20d0bR185-R187), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-a94c29c96fb0778e35d7983669dedfa10de7111040707a3839dace9836b20d0bR202-R205), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-2d01644b81f03e1f0c2eecf2479214ce1fd7e1b1c1c2a9f4ed5606e345f61d3fR66-R79), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-7f93f7a0f0c6c2329155f30e6a4cc6928277acabefab4c28826cb143a23ce90eR25), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-7f93f7a0f0c6c2329155f30e6a4cc6928277acabefab4c28826cb143a23ce90eL31-L33), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-7f93f7a0f0c6c2329155f30e6a4cc6928277acabefab4c28826cb143a23ce90eL46-R44), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-7f93f7a0f0c6c2329155f30e6a4cc6928277acabefab4c28826cb143a23ce90eL90), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-7f93f7a0f0c6c2329155f30e6a4cc6928277acabefab4c28826cb143a23ce90eL97-L98), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-7f93f7a0f0c6c2329155f30e6a4cc6928277acabefab4c28826cb143a23ce90eL104-L105), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-7f93f7a0f0c6c2329155f30e6a4cc6928277acabefab4c28826cb143a23ce90eL112), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-7f93f7a0f0c6c2329155f30e6a4cc6928277acabefab4c28826cb143a23ce90eL119-R121), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-d86037fd6c18ac1d33c42f14b22694ed549f413bc6f01e486edcc069e3e50e08L31-R31), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-d86037fd6c18ac1d33c42f14b22694ed549f413bc6f01e486edcc069e3e50e08L39-L45), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-d86037fd6c18ac1d33c42f14b22694ed549f413bc6f01e486edcc069e3e50e08L69-R61), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-d86037fd6c18ac1d33c42f14b22694ed549f413bc6f01e486edcc069e3e50e08L77-L83)) * Implement and test `uninstall kubernetes` command and runner using `helm` and `output` interfaces ([link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-0c66069f452935504ded2987817c39f57ab768793748e2f8a9e6b93a3529406eR1-R90), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-33a999669eb2dcff3938070935440577bfabd65104db26e7b8e1c42b0a139a5dR1-R118), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-a94c29c96fb0778e35d7983669dedfa10de7111040707a3839dace9836b20d0bL53-L57), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-a94c29c96fb0778e35d7983669dedfa10de7111040707a3839dace9836b20d0bL64), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-a94c29c96fb0778e35d7983669dedfa10de7111040707a3839dace9836b20d0bL81-R76)) * Add flag for specifying Kubernetes context to `commonflags` package ([link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-40d092c037a2ba62ae8e3716ee0ebc4e4244023c7b030a0c855da629076a5053R110-R113)) * Delete unused files and code related to previous installation logic ([link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-6d139e6efecb729155a2ad191d25039e107f7d6677a17be5650199ae8e48c0c0), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-4fb102623b364b352cbac46bcbdeb3c9e678fe71c2ccfda9fcc4b7303eb03d68), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-ca2257e7dd0dc51444106f8b77568bfa89fc7239ffca43bb6d4154677f06442c), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-76a1681b574683b48c986dfbfd669aaf0e33e5f6094c277be1a9fd2e28f12818), [link](https://github.com/project-radius/radius/pull/5725/files?diff=unified&w=0#diff-7213cc490ab86f00c0e5f12592f33bb9aad04578bc0b9cfa37b41aebe45d8c50))
- Loading branch information