Skip to content

Commit 4f2c625

Browse files
authored
Merge pull request #321 from theJasonHelmick/roadmap
Adding roadmap - editing readme
2 parents 55fe0a5 + 9e616a4 commit 4f2c625

File tree

3 files changed

+205
-62
lines changed

3 files changed

+205
-62
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,3 +331,6 @@ ASALocalRun/
331331

332332
# MFractors (Xamarin productivity tool) working folder
333333
.mfractor/
334+
335+
# Mac os files
336+
.DS_Store

README.md

Lines changed: 111 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,79 @@
11

22
# Microsoft Azure Cloud Shell Image
33

4-
Azure Cloud Shell is a browser-based shell environment which enables Azure customers to manage and configure their Azure services. It provides a [host of tools](https://docs.microsoft.com/azure/cloud-shell/features), including Azure CLI, Azure PowerShell, Ansible, Terraform, Puppet Bolt, kubectl, and many more.
4+
Azure Cloud Shell is an interactive, authenticated, browser-accessible shell for managing Azure
5+
resources. As a web-based environment, Cloud Shell provides immediate management access to any
6+
device with a network connection. Azure Cloud Shell provides a
7+
[host of tools](https://docs.microsoft.com/azure/cloud-shell/features), including Azure CLI, Azure
8+
PowerShell, Ansible, Terraform, Puppet Bolt, kubectl, and many more.
59

6-
For more details, check out [Overview of Azure Cloud Shell](https://docs.microsoft.com/azure/cloud-shell/overview#:~:text=Features%201%20Browser-based%20shell%20experience.%20...%202%20Choice,7%20Connect%20your%20Microsoft%20Azure%20Files%20storage.%20).
10+
For more details, check out
11+
[Overview of Azure Cloud Shell](https://docs.microsoft.com/azure/cloud-shell/overview).
712

13+
## Roadmap of planned development
814

9-
# About this repository
15+
Azure Cloud Shell is continually working with customers to improve Azure resource management by
16+
focusing on the experience and tools most needed by our customers. We invite everyone to view and
17+
provide feedback to our [roadmap](./roadmap/cs-roadmap-2023.md) and future investigations. The Azure
18+
Cloud Shell team respects and enjoys engaging with our customers, please share our
19+
[roadmap](./roadmap/cs-roadmap-2023.md) and provide feedback here in
20+
[Discussions](https://github.com/Azure/CloudShell/discussions) or
21+
[Issues](https://github.com/Azure/CloudShell/issues).
1022

11-
When you connect to Azure Cloud Shell, we start a container containing a wide variety of tools, and connect your
12-
browser to a shell process running inside that container. This repository contains the Docker files used to build that image.
13-
It does _not_ contain all of the code used for the rest of the Azure Cloud Shell service. The code in this repository may not
14-
match exactly to what is running in the Cloud Shell service at any given time. The service is updated periodically and changes
15-
are gradually rolled out to different regions over time, so there may be a lag of up to 3-4 weeks between a change being made
16-
here and being reflected in all Cloud Shell regions.
23+
## About this repository
24+
25+
When you connect to Azure Cloud Shell, we start a container hosting a wide variety of tools, and
26+
27+
connect your browser to a shell process running inside that container. This repository contains the
28+
Docker files used to build that container image. It does _not_ contain the code used for the rest of
29+
30+
the Azure Cloud Shell service. The code in this repository may not match exactly to what is running
31+
in the Cloud Shell service at any given time. The service is updated periodically and changes are
32+
gradually rolled out to different regions over time.
33+
There may be a lag of up to 3-4 weeks
34+
for changes made here to be reflected in all Cloud Shell regions.
1735

1836
This repository has several uses:
1937

20-
1. **Running the Cloud Shell image locally**. If you want a curated set of up-to-date command-line tools suitable for managing an Azure environment, but you want to run the tools locally on your own computer instead of in Cloud Shell, you can build the image and run it yourself.
38+
1. **Running the Cloud Shell image locally**. If you want a curated set of up-to-date command-line
39+
tools suitable for managing an Azure environment, but you want to run the tools locally on your
40+
own computer instead of in Cloud Shell, you can build the image and run it yourself.
2141

22-
1. **Contributing to Cloud Shell.** If you would like to propose a new tool for inclusion in Cloud Shell, you can create an issue or submit a Pull Request to request the tool be added. Please ensure that the PR actually builds within GitHub Actions.
42+
1. **Contributing to Cloud Shell.** If you would like to propose a new tool for inclusion in Cloud
43+
Shell, you can create an issue or submit a Pull Request to request the tool be added. Please
44+
ensure that the PR actually builds within GitHub Actions.
2345

24-
The repository does *not* provide an out-of-the-box replacement for the Cloud Shell service. In addition to the container image here, Azure Cloud Shell consists of a user interface integrated into the portal, a web service which manages the infrastructure on which the containers run, and some additional code used inside the container to connect the shell process to the user interface via websocket.
46+
The repository does _not_ provide an out-of-the-box replacement for the Azure Cloud Shell service.
47+
Azure Cloud Shell provide a user interface integrated into the Azure portal, a web service that
48+
manages the infrastructure on which the containers run, and some additional code used inside the
49+
container to connect the shell process to the user interface via a websocket.
2550

2651
## Running the Cloud Shell image locally
2752

2853
### Differences between running locally and in Cloud Shell
2954

30-
1. **No identity endpoint**. In Cloud Shell, we provide a way to automatically obtain tokens for the user connected to the shell.
31-
We can't provide this when you run locally, so you have to authenticate explicitly before you can access Azure resources.
32-
When using AZ CLI, run `az login`; for PowerShell, run `Connect-AzAccount`.
33-
34-
2. **No cloud drive**. We don't mount the Cloud Drive from your Azure Cloud Shell, so you won't have access to files stored there.
35-
36-
3. **Root instead of cloud shell user**. In Azure Cloud Shell you always run as a regular user. When running the image locally, you run as root.
55+
1. **No identity endpoint**. In Cloud Shell, we provide a way to automatically obtain tokens for the
56+
user connected to the shell. We can't provide this when you run locally, so you have to
57+
authenticate explicitly before you can access Azure resources. When using AZ CLI, run `az login`;
58+
for PowerShell, run `Connect-AzAccount`.
3759

38-
# Contributing to Cloud Shell
60+
1. **No cloud drive**. We don't mount the Cloud Drive from your Azure Cloud Shell, so you won't have
61+
access to files stored there.
3962

63+
1. **Root instead of cloud shell user**. In Azure Cloud Shell you always run as a regular user. When
64+
running the image locally, you run as root.
4065

41-
## Understanding the base.Dockerfile and tools.Dockerfile
66+
### Understanding the base.Dockerfile and tools.Dockerfile
4267

43-
The repository contains two Dockerfile, 'base' and 'tools'. Tools is built on top of the base file, so normally you would
44-
just have one Dockerfile and rely on the container registry to cache all the layers that haven't changed. However we need
45-
to cache the base image explicitly to ensure fast startup time. So the image is split into these two files, and the tools
46-
layer starts FROM an internal repository where the base image is cached, so that we know when we need to update the base.
68+
The repository contains two Docker configuration files: `base` and `tools`. Normally you just have
69+
one Dockerfile and rely on the container registry to cache the layers that haven't changed.
70+
However, we need to cache the base image explicitly to ensure a fast startup time. Tools is built
71+
on top of the base file and starts from an internal repository where the base image is cached, so
72+
that we know when we need to update the base.
4773

48-
When building or using the image locally, you don't need to worry about that. Just build using the instructions below, and be
49-
aware that changes the the base layer will take longer to release than changes to the tools.
74+
When building or using the image locally, you don't need to worry about that. Just build using the
75+
instructions below, and be aware that changes to the base layer will take longer to release than
76+
changes to the tools.
5077

5178
| Layer | Job |
5279
| ---|---|
@@ -55,41 +82,48 @@ aware that changes the the base layer will take longer to release than changes t
5582

5683
## Building and Testing the image
5784

58-
### Required software
85+
Required software
5986

60-
* Docker
61-
* Bash terminal / Powershell
87+
- Docker
88+
- Bash terminal / Powershell
89+
90+
Building base.Dockerfile image from the root repository
6291

63-
## Building base.Dockerfile image
64-
From the root repository
6592
```bash
6693
docker build -t base_cloudshell -f linux/base.Dockerfile .
6794
```
68-
## Building tools.Dockerfile image
95+
96+
Building tools.Dockerfile image
97+
6998
```bash
7099
docker build -t tools_cloudshell --build-arg IMAGE_LOCATION=base_cloudshell -f linux/tools.Dockerfile .
71100
```
72101

73-
## Running bash in the tools.Dockerfile image
102+
Running bash in the tools.Dockerfile image
103+
74104
```bash
75105
docker run -it tools_cloudshell /bin/bash
76106
```
77107

78-
## Running pwsh in the tools.Dockerfile image
108+
Running pwsh in the tools.Dockerfile image
109+
79110
```bash
80111
docker run -it tools_cloudshell /usr/bin/pwsh
81112
```
82113

83-
## Testing the Cloud Shell image
84-
```
114+
Testing the Cloud Shell image
115+
116+
```bash
85117
docker run --volume /path/to/CloudShell/folder/tests:/tests -it tools_cloudshell /tests/test.sh
86118
```
87119

88-
For more information about bind mounts, please go onto the [Docker documentation](https://docs.docker.com/storage/bind-mounts/). We do expect all the test cases to pass if you would like your changes to be merged.
120+
For more information about bind mounts, please see the
121+
[Docker documentation](https://docs.docker.com/storage/bind-mounts/). We do expect all test cases
122+
to pass if you want your changes to be merged.
89123

90-
# Contribution Guidelines
124+
## Contribution Guidelines
91125

92-
## Types of issues
126+
### Types of issues
93127

94128
| Issue Type | Action |
95129
| ---|---|
@@ -99,16 +133,21 @@ For more information about bind mounts, please go onto the [Docker documentation
99133
| Issue with one of the packages* | Talk to package owner & create a PR on their repo. |
100134
| Issue with how package interacts with Cloud Shell | Create a Pull Request OR GitHub Issue |
101135
| Security bug | See https://www.microsoft.com/en-us/msrc/faqs-report-an-issue |
102-
| Issue with Cloud Shell in Azure Portal (can't log in, for example) | Open a [support ticket](https://docs.microsoft.com/azure/active-directory/fundamentals/active-directory-troubleshooting-support-howto#:~:text=How%20to%20open%20a%20support%20ticket%20for%20Azure,Troubleshooting%20%2B%20Support%20and%20select%20New%20support%20request.) |
136+
| Issue with Cloud Shell in Azure Portal (can't log in, for example) | Open a [support ticket](https://learn.microsoft.com/azure/active-directory/fundamentals/how-to-get-support) |
103137

104-
\* For example, if you have an issue within Azure CLI, don't open up an issue with the Cloud Shell repo, open an issue within the Azure CLI repo.
105-
Azure PowerShell is [here](https://github.com/Azure/azure-powershell/issues) and Azure CLI is [here](https://github.com/Azure/azure-cli/issues)
106138

107-
## Types of tools
139+
<sup>*</sup> For example, if you have an issue within Azure CLI, don't open up an issue in the Cloud Shell
140+
repo, open an issue within the Azure CLI repo.
108141

109-
Cloud Shell aims to provide a core set of tools for Azure and Microsoft 365 devops scenarios, but we can't include everything.
110-
If you just want to use a tool yourself, you can install most utilities into your own home directory inside Cloud Shell.
111-
You only need to update the image if you want _every_ Cloud Shell admin to have the tool available.
142+
- [Azure PowerShell issues](https://github.com/Azure/azure-powershell/issues)
143+
- [Azure CLI issues](https://github.com/Azure/azure-cli/issues)
144+
145+
### Types of tools
146+
147+
Cloud Shell aims to provide a core set of tools for Azure and Microsoft 365 devops scenarios, but we
148+
can't include everything. If you just want to use a tool yourself, you can install most utilities
149+
into your own home directory inside Cloud Shell. You only need to update the image if you want
150+
_every_ Cloud Shell admin to have the tool available.
112151

113152
For a tool to be included in Cloud Shell, it has to be:
114153

@@ -118,37 +157,47 @@ For a tool to be included in Cloud Shell, it has to be:
118157
- lightweight in terms of CPU requirements, size on disk, and memory
119158

120159
Please:
160+
121161
- support fetching tokens from Managed Identity if a tool authenticates to Azure services
122162
- add basic tests to the test suite run by GitHub Actions
123163
- consume the tools from the [Mariner package repo](https://packages.microsoft.com/cbl-mariner/2.0/)
124164

125165
In general we avoid:
126-
- alpha, beta, preview or unstable versions of software.
127-
- tools primarily useful for extensive software development, as opposed to DevOps. Consider [Visual Studio Codespaces](https://visualstudio.microsoft.com/services/visual-studio-codespaces/) for that.
166+
167+
- alpha, beta, preview or unstable versions of software.
168+
- tools primarily useful for extensive software development, as opposed to DevOps. Consider
169+
[Visual Studio Codespaces](https://visualstudio.microsoft.com/services/visual-studio-codespaces/)
170+
for that.
128171

129172
## Cloud Shell Documentation
130173

131-
Please see the [Microsoft Azure Documentation](https://github.com/MicrosoftDocs/azure-docs) for a guide to add to the Azure docs repo.
132-
The Cloud Shell documentation can be found [here](https://github.com/MicrosoftDocs/azure-docs/tree/master/articles/cloud-shell).
174+
The Cloud Shell documentation can be found at
175+
[https://learn.microsoft.com/azure/cloud-shell/overview](https://learn.microsoft.com/azure/cloud-shell/overview).
176+
If you wish to contribute to The Cloud Shell documentation, see the Microsoft Learn
177+
[Contributors Guide](https://learn.microsoft.com/contribute/).
133178

134-
# Legal
179+
## Legal
135180

136-
This project welcomes contributions and suggestions. Most contributions require you to agree to a
181+
This project welcomes contributions and suggestions. Most contributions require you to agree to a
137182
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
138-
the rights to use your contribution. For details, visit https://cla.microsoft.com.
183+
the rights to use your contribution. For details, see
184+
[https://cla.microsoft.com](https://cla.microsoft.com).
139185

140186
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
141187
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
142188
provided by the bot. You will only need to do this once across all repos using our CLA.
143189

144-
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
145-
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
146-
contact [[email protected]](mailto:[email protected]) with any additional questions or comments.
190+
This project has adopted the
191+
[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more
192+
information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
193+
contact [[email protected]](mailto:[email protected]) with any additional questions or
194+
comments.
147195

148-
# Trademarks
196+
## Trademarks
149197

150-
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
151-
trademarks or logos is subject to and must follow
198+
This project may contain trademarks or logos for projects, products, or services. Authorized use of
199+
Microsoft trademarks or logos is subject to and must follow
152200
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
153-
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
154-
Any use of third-party trademarks or logos are subject to those third-party's policies.
201+
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion
202+
or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those
203+
third-party's policies.

0 commit comments

Comments
 (0)