Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an Azure Portal Form UI #577

Merged
merged 32 commits into from
Dec 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
4242aab
select subscriptions from form
glennmusa Nov 12, 2021
23f6511
update tooltip on hub sub
glennmusa Nov 12, 2021
46384b9
update deploymentDetailsText
glennmusa Nov 12, 2021
546405a
add json formatter
glennmusa Nov 12, 2021
84d3b67
add compliance networking remote access blades
glennmusa Nov 30, 2021
b1289c7
add blade titles
glennmusa Dec 1, 2021
eca1e78
add helpful labels
glennmusa Dec 1, 2021
b173964
firewall subnet size regex
glennmusa Dec 1, 2021
33107f8
add sections for hub and spokes
glennmusa Dec 1, 2021
26ebb37
update validation
glennmusa Dec 1, 2021
211b9f3
Merge branch 'main' into glenn/formUi
glennmusa Dec 9, 2021
69ceaa2
make it a wizard
glennmusa Dec 9, 2021
4e4b69f
rename to resourcePrefix and resourceSuffix, remove storage account A…
glennmusa Dec 9, 2021
ef9f657
add outputs
glennmusa Dec 9, 2021
490913d
add the relevant subscription id to the storage account seed
glennmusa Dec 9, 2021
8d72aef
add a temporary deploy to azure button
glennmusa Dec 9, 2021
61bcd13
put the outputs in the right place
glennmusa Dec 9, 2021
7ca9338
tidying up the dummy readme
glennmusa Dec 9, 2021
38f1932
remove subscriptionResourceId from outputs
glennmusa Dec 9, 2021
2ead932
remove outputs entirely
glennmusa Dec 9, 2021
c817f78
Merge branch 'main' into glenn/formUi
glennmusa Dec 15, 2021
8913782
revert mlz.bicep
glennmusa Dec 15, 2021
23effe7
get subscription ids
glennmusa Dec 15, 2021
505632d
windows password output
glennmusa Dec 15, 2021
65e006d
consistent CIDR ranges
glennmusa Dec 15, 2021
afdc18e
update default bastion subnet
glennmusa Dec 15, 2021
36cf740
add the deploy to azure button to the root readme
glennmusa Dec 15, 2021
ac950df
update docs to include deploy to azure buttons
glennmusa Dec 15, 2021
dd4d96c
GitHub Action: Build Bicep to JSON
invalid-email-address Dec 15, 2021
a59bafd
use dev test prod as suffix
glennmusa Dec 15, 2021
511057b
Merge remote-tracking branch 'origin/glenn/formUi' into glenn/formUi
glennmusa Dec 15, 2021
33a8c98
fix markdown lint error
glennmusa Dec 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
"davidanson.vscode-markdownlint",
"github.vscode-pull-request-github",
"timonwong.shellcheck",
"ms-azuretools.vscode-bicep"
"ms-azuretools.vscode-bicep",
"bierner.markdown-preview-github-styles"
],

// Additional args to pass to the 'docker run' command
Expand Down
9 changes: 8 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,17 @@
"[terraform]": {
"editor.formatOnSave": true
},
"[json]": {
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.detectIndentation": false
},
"shellcheck.enableQuickFix": true,
"markdownlint.config": {
"default": true,
"MD013": { "line_length": 400 },
"MD013": {
"line_length": 400
},
"MD029": false
},
"terminal.integrated.scrollback": 10000
Expand Down
74 changes: 56 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
# Mission LZ

Mission Landing Zone is a highly opinionated template which IT oversight organizations can use to create a cloud management system to deploy Azure environments for their teams. It addresses a narrowly scoped, specific need for an SCCA compliant hub and spoke infrastructure.
## What is Mission Landing Zone?

Mission LZ is:
Mission Landing Zone is a highly opinionated Infrastructure-as-Code (IaC) template which IT oversight organizations can use to create a cloud management system to deploy Azure environments for their teams.

- Designed for US Gov mission customers​
It addresses a narrowly scoped, specific need for an SCCA compliant hub and spoke infrastructure.

Mission Landing Zone is:

- Designed for US Gov mission customers
- Implements [SCCA](https://docs.microsoft.com/en-us/azure/azure-government/compliance/secure-azure-computing-architecture) requirements following Microsoft's [SACA](https://aka.ms/saca) implementation guidance
- Deployable in commercial, government, and air-gapped Azure clouds
- A narrow scope for a specific common need
- A simple solution with low configuration
- Written in Terraform and Bicep
- A narrow scope for a specific common need
- A simple solution with low configuration
- Written as [Bicep](./src/bicep/README.md) and [Terraform](./src/terraform/README.md) templates

Mission Landing Zone is the right solution when:

Expand All @@ -34,23 +38,55 @@ Our intent is to enable IT Admins to use this software to:

## Quickstart

To get up and running quickly execute the following code from Azure Cloud Shell, or from wherever you have Azure CLI installed.
You can get up and running quickly by deploying Mission Landing Zone with the Azure Portal or executing some Azure CLI commands.

You must have [Owner RBAC permissions](https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#owner) to the subscription(s) you deploy Mission Landing Zone into.

### Deploy from the Azure Portal

1. Deploy Mission Landing Zone into `AzureCloud` or `AzureUsGovernment` from the Azure Portal:

<!-- markdownlint-disable MD013 -->
<!-- allow for longer lines to acommodate button links -->
| Azure Commercial | Azure Government |
| :--- | :--- |
| [![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#blade/Microsoft_Azure_CreateUIDef/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fmissionlz%2Fmain%2Fsrc%2Fbicep%2Fmlz.json/uiFormDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fmissionlz%2Fmain%2Fsrc%2Fbicep%2Fform%2Fmlz.portal.json) | [![Deploy to Azure Gov](https://aka.ms/deploytoazuregovbutton)](https://portal.azure.us/#blade/Microsoft_Azure_CreateUIDef/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fmissionlz%2Fmain%2Fsrc%2Fbicep%2Fmlz.json/uiFormDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fmissionlz%2Fmain%2Fsrc%2Fbicep%2Fform%2Fmlz.portal.json) |
<!-- markdownlint-enable MD013 -->

1. After a successful deployment, see our [examples](./src/bicep/examples/README.md) directory for how to extend the capabilities of Mission Landing Zone.

- Extend your Mission Landing Zone deployment with the templates at [src/bicep/examples](./src/bicep/examples/README.md)

### Deploy using Azure CLI

Or, you can deploy Mission Landing Zone using Azure CLI.

Don't have Azure CLI? Here's how to get started with Azure Cloud Shell in your browser: <https://docs.microsoft.com/en-us/azure/cloud-shell/overview>

```bash
git clone https://github.com/Azure/missionlz.git
az deployment sub create \
--name myMlzDeployment \
--location eastus \
--template-file ./missionlz/src/bicep/mlz.bicep
```
1. Clone the repository:

```plaintext
git clone https://github.com/Azure/missionlz.git
```

1. Deploy Mission Landing Zone with the `az deployment sub create` command:

```plaintext
az deployment sub create \
--name myMlzDeployment \
--location eastus \
--template-file ./missionlz/src/bicep/mlz.bicep
```

You'll be prompted for the one required argument `resourcePrefix` (a unique alphanumeric string 3-10 characters in length), which is used to to generate names for your resource groups and resources:
1. You'll be prompted for the one required argument `resourcePrefix` (a unique alphanumeric string without whitespaces and 3-10 characters in length), which is used to to generate names for your resource groups and resources:

```plaintext
> Please provide string value for 'resourcePrefix' (? for help): (your unique alphanumeric string 3-10 characters in length)
```
```plaintext
> Please provide string value for 'resourcePrefix' (? for help): (your unique alphanumeric string without whitespaces and 3-10 characters in length)
```

1. After a successful deployment, see our [examples](./src/bicep/examples/README.md) directory for how to extend the capabilities of Mission Landing Zone.

- Extend your Mission Landing Zone deployment with the templates at [src/bicep/examples](./src/bicep/examples/README.md)

## Scope

Expand All @@ -73,6 +109,7 @@ Mission LZ has the following scope:
Networking is set up in a hub and spoke design, separated by tiers: T0 (Identity and Authorization), T1 (Infrastructure Operations), T2 (DevSecOps and Shared Services), and multiple T3s (Workloads). Security can be configured to allow separation of duties between all tiers. Most customers will deploy each tier to a separate Azure subscription, but multiple subscriptions are not required.

<!-- markdownlint-disable MD033 -->
<!-- allow html for images so that they can be sized -->
<img src="docs/images/networking.png" alt="Mission LZ Networking" width="600" />
<!-- markdownlint-enable MD033 -->

Expand Down Expand Up @@ -103,6 +140,7 @@ See the [Projects](https://github.com/Azure/missionlz/projects) page for the rel
Here's what the repo consists of as of May 2021:

<!-- markdownlint-disable MD033 -->
<!-- allow html for images so that they can be sized -->
<img src="docs/images/missionlz_as_of_may2021.png" alt="Mission LZ as of April 2021" width="600" />
<!-- markdownlint-enable MD033 -->

Expand Down
9 changes: 9 additions & 0 deletions src/bicep/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,15 @@ After a deployment is complete, you can refer to the provisioned resources progr

- See [Reference Deployment Output](#Reference-Deployment-Output) for steps on how to use `az deployment` subcommands and JMESPath to query for specific properties.

### Azure Portal

<!-- markdownlint-disable MD013 -->
<!-- allow for longer lines to acommodate button links -->
| Azure Commercial | Azure Government |
| :--- | :--- |
| [![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#blade/Microsoft_Azure_CreateUIDef/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fmissionlz%2Fmain%2Fsrc%2Fbicep%2Fmlz.json/uiFormDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fmissionlz%2Fmain%2Fsrc%2Fbicep%2Fform%2Fmlz.portal.json) | [![Deploy to Azure Gov](https://aka.ms/deploytoazuregovbutton)](https://portal.azure.us/#blade/Microsoft_Azure_CreateUIDef/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fmissionlz%2Fmain%2Fsrc%2Fbicep%2Fmlz.json/uiFormDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fmissionlz%2Fmain%2Fsrc%2Fbicep%2Fform%2Fmlz.portal.json) |
<!-- markdownlint-enable MD013 -->

### Azure CLI

Use `az deployment sub` to deploy MLZ across 1:M subscriptions (and `az deployment sub create --help` for more information).
Expand Down
Loading