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

GitHub workflow implementation #276

Merged
merged 62 commits into from
May 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
7890ada
update .gitignore
skeeler May 3, 2022
d9615b3
show-vars
skeeler May 3, 2022
397302e
update
skeeler May 3, 2022
28c2c59
update
skeeler May 3, 2022
9436735
update
skeeler May 3, 2022
92877c3
update
skeeler May 3, 2022
f977008
update
skeeler May 4, 2022
81a8ad9
update
skeeler May 4, 2022
ef5fdc5
update
skeeler May 4, 2022
eea9479
update
skeeler May 4, 2022
5c360a3
update
skeeler May 4, 2022
3a26921
update
skeeler May 4, 2022
74d0cc3
update
skeeler May 4, 2022
eff2e0e
update
skeeler May 4, 2022
a282159
update
skeeler May 4, 2022
575bff5
update
skeeler May 4, 2022
59bfbf9
update
skeeler May 4, 2022
a54dce5
update
skeeler May 4, 2022
634003b
update
skeeler May 4, 2022
20e1b3b
update
skeeler May 4, 2022
c3ee857
update
skeeler May 4, 2022
d46764f
update
skeeler May 5, 2022
2917acf
update
skeeler May 5, 2022
c188e2d
update
skeeler May 5, 2022
d63ff3a
workflow manual test
skeeler May 5, 2022
3a4c7b4
re-title workflows
skeeler May 5, 2022
18ce703
fix workflow ids
skeeler May 5, 2022
c7d5733
Deploy subscription ids parameter name
skeeler May 6, 2022
7a53031
Use repo-branch config and add everything flow
skeeler May 6, 2022
15d2c88
add temporary fw creds
skeeler May 6, 2022
33a2cce
fix config to match schema
skeeler May 6, 2022
4715827
Break out everything into discrete steps
skeeler May 6, 2022
fb9166c
GitHub workflow readme
skeeler May 6, 2022
82cd9e9
Delete logging.parameters.json
skeeler May 6, 2022
1273dc3
Delete azure-firewall-policy.parameters.json
skeeler May 6, 2022
4782240
Delete hub-network.parameters.json
skeeler May 6, 2022
57474df
Delete hub-network.parameters.json
skeeler May 6, 2022
a3f5495
Delete aef2d8e7-284e-4855-942b-6afc0469d1d5_generic-subscription_cana…
skeeler May 6, 2022
a250b94
Delete CanadaPubSecALZ-skeeler-actions.yml
skeeler May 6, 2022
31f15b2
add secret dependency
skeeler May 6, 2022
c291c09
Merge branch 'skeeler-actions' of https://github.com/devopsincanada/C…
skeeler May 6, 2022
297b9e7
Add fetch NVA username password from secrets
skeeler May 7, 2022
80752fa
Update readme
skeeler May 7, 2022
9bc702b
fix quotes
skeeler May 7, 2022
8c1ba58
fix syntax error
skeeler May 7, 2022
adb2843
add context
skeeler May 7, 2022
601ac50
touch up workflow definitions
skeeler May 7, 2022
f0f8953
debug msg
skeeler May 7, 2022
ef66169
remove diagnostic output
skeeler May 7, 2022
ec4670e
add second subscription for testing
skeeler May 8, 2022
fbde79a
fix subnet range
skeeler May 8, 2022
2cd6d0a
Naming consistency, Roles instead of Custom Roles
skeeler May 8, 2022
2358843
Delete logging.parameters.json
skeeler May 8, 2022
8b9ee07
Delete azure-firewall-policy.parameters.json
skeeler May 8, 2022
870f015
Delete hub-network.parameters.json
skeeler May 8, 2022
c13d60b
Delete hub-network.parameters.json
skeeler May 8, 2022
cffe62f
Delete aef2d8e7-284e-4855-942b-6afc0469d1d5_generic-subscription_cana…
skeeler May 8, 2022
2518ac5
Delete b30af792-1ec0-4a75-be1d-9aa4163ac626_generic-subscription_cana…
skeeler May 8, 2022
3c2eba4
Delete CanadaPubSecALZ-skeeler-actions.yml
skeeler May 8, 2022
d4797f5
remove config archive
skeeler May 8, 2022
fc206ea
Merge branch 'skeeler-actions' of https://github.com/devopsincanada/C…
skeeler May 8, 2022
77643c9
block zip files at root
skeeler May 8, 2022
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
106 changes: 106 additions & 0 deletions .github/workflows/0-everything.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
#
# THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# ----------------------------------------------------------------------------------

name: 0 - Everything
SenthuranSivananthan marked this conversation as resolved.
Show resolved Hide resolved

on:
workflow_dispatch:
inputs:
hubNetworkType:
type: choice
description: "Select the hub network type"
required: true
options:
- "HubNetworkWithNVA"
- "HubNetworkWithAzureFirewall"
default: "HubNetworkWithAzureFirewall"
subscriptionIds:
type: string
description: The subscription ID(s) to use for the deployment.
required: true

defaults:
run:
shell: pwsh
working-directory: scripts/deployments

jobs:
everything:
name: Everything (${{github.event.inputs.hubNetworkType}})
runs-on: ubuntu-latest
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Required modules
run: |
Install-Module Az -Force
Install-Module powershell-yaml -Force

- name: Deploy Management Groups
run: |
./RunWorkflows.ps1 `
-DeployManagementGroups `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}

- name: Deploy Roles
run: |
./RunWorkflows.ps1 `
-DeployRoles `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}

- name: Deploy Logging
run: |
./RunWorkflows.ps1 `
-DeployLogging `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}

- name: Deploy Policy
run: |
./RunWorkflows.ps1 `
-DeployPolicy `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}

- name: Deploy Hub Network with Azure Firewall
if: github.event.inputs.hubNetworkType == 'HubNetworkWithAzureFirewall'
run: |
./RunWorkflows.ps1 `
-Deploy${{github.event.inputs.hubNetworkType}} `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}

- name: Deploy Hub Network with NVA
if: github.event.inputs.hubNetworkType == 'HubNetworkWithNVA'
run: |
./RunWorkflows.ps1 `
-Deploy${{github.event.inputs.hubNetworkType}} `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF} `
-NvaUsername '${{secrets.NVA_USERNAME}}' `
-NvaPassword '${{secrets.NVA_PASSWORD}}'

- name: Deploy Subscriptions
if: github.event.inputs.subscriptionIds != ''
run: |
./RunWorkflows.ps1 `
-DeploySubscriptionIds ${{github.event.inputs.subscriptionIds}} `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}
39 changes: 39 additions & 0 deletions .github/workflows/1-management-groups.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
#
# THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# ----------------------------------------------------------------------------------

name: 1 - Management Groups

on: workflow_dispatch

defaults:
run:
shell: pwsh
working-directory: scripts/deployments

jobs:
management-groups:
name: Management Groups
runs-on: ubuntu-latest
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Required modules
run: |
Install-Module Az -Force
Install-Module powershell-yaml -Force

- name: Deploy Management Groups
run: |
./RunWorkflows.ps1 `
-DeployManagementGroups `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}
39 changes: 39 additions & 0 deletions .github/workflows/2-roles.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
#
# THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# ----------------------------------------------------------------------------------

name: 2 - Roles

on: workflow_dispatch

defaults:
run:
shell: pwsh
working-directory: scripts/deployments

jobs:
roles:
name: Roles
runs-on: ubuntu-latest
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Required modules
run: |
Install-Module Az -Force
Install-Module powershell-yaml -Force

- name: Deploy Roles
run: |
./RunWorkflows.ps1 `
-DeployRoles `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}
39 changes: 39 additions & 0 deletions .github/workflows/3-logging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
#
# THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# ----------------------------------------------------------------------------------

name: 3 - Logging

on: workflow_dispatch

defaults:
run:
shell: pwsh
working-directory: scripts/deployments

jobs:
logging:
name: Logging
runs-on: ubuntu-latest
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Required modules
run: |
Install-Module Az -Force
Install-Module powershell-yaml -Force

- name: Deploy Logging
run: |
./RunWorkflows.ps1 `
-DeployLogging `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}
39 changes: 39 additions & 0 deletions .github/workflows/4-policy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
#
# THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# ----------------------------------------------------------------------------------

name: 4 - Policy

on: workflow_dispatch

defaults:
run:
shell: pwsh
working-directory: scripts/deployments

jobs:
policy:
name: Policy
runs-on: ubuntu-latest
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Required modules
run: |
Install-Module Az -Force
Install-Module powershell-yaml -Force

- name: Deploy Policy
run: |
./RunWorkflows.ps1 `
-DeployPolicy `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}
39 changes: 39 additions & 0 deletions .github/workflows/5-hub-network-with-azure-firewall.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
#
# THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# ----------------------------------------------------------------------------------

name: 5 - Hub Network with Azure Firewall

on: workflow_dispatch

defaults:
run:
shell: pwsh
working-directory: scripts/deployments

jobs:
hub-network-with-azure-firewall:
name: Hub Network with Azure Firewall
runs-on: ubuntu-latest
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Required modules
run: |
Install-Module Az -Force
Install-Module powershell-yaml -Force

- name: Deploy Hub Network with Azure Firewall
run: |
./RunWorkflows.ps1 `
-DeployHubNetworkWithAzureFirewall `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}
41 changes: 41 additions & 0 deletions .github/workflows/5-hub-network-with-nva.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
#
# THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# ----------------------------------------------------------------------------------

name: 5 - Hub Network with NVA

on: workflow_dispatch

defaults:
run:
shell: pwsh
working-directory: scripts/deployments

jobs:
hub-network-with-nva:
name: Hub Network with NVA
runs-on: ubuntu-latest
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Required modules
run: |
Install-Module Az -Force
Install-Module powershell-yaml -Force

- name: Deploy Hub Network with NVA
run: |
./RunWorkflows.ps1 `
SenthuranSivananthan marked this conversation as resolved.
Show resolved Hide resolved
-DeployHubNetworkWithNVA `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF} `
-NvaUsername '${{secrets.NVA_USERNAME}}' `
-NvaPassword '${{secrets.NVA_PASSWORD}}'
45 changes: 45 additions & 0 deletions .github/workflows/6-subscriptions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
#
# THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# ----------------------------------------------------------------------------------

name: 6 - Subscriptions

on:
workflow_dispatch:
inputs:
subscriptionIds:
type: string
description: The subscription ID(s) to use for the deployment.
required: true

defaults:
run:
shell: pwsh
working-directory: scripts/deployments

jobs:
subscriptions:
name: Subscriptions
runs-on: ubuntu-latest
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Required modules
run: |
Install-Module Az -Force
Install-Module powershell-yaml -Force

- name: Deploy Subscriptions
run: |
./RunWorkflows.ps1 `
-DeploySubscriptionIds ${{github.event.inputs.subscriptionIds}} `
-LoginServicePrincipalJson '${{secrets.ALZ_CREDENTIALS}}' `
-GitHubRepo ${env:GITHUB_REPOSITORY} `
-GitHubRef ${env:GITHUB_REF}
Loading