Skip to content

Commit c76d938

Browse files
[Rollout] Production rollout 2024-10-17 (#4064)
2 parents c5a5181 + df35cbe commit c76d938

File tree

88 files changed

+1322
-1729
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+1322
-1729
lines changed

.vault-config/product-construction-int.yaml

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,7 @@ storageLocation:
44
subscription: e6b5f9f5-0ca4-4351-879b-014d78400ec2
55
name: ProductConstructionInt
66

7-
references:
8-
helixkv:
9-
type: azure-key-vault
10-
parameters:
11-
subscription: a4fc5514-21a9-4296-bfaf-5c7ee7fa35d1
12-
name: helixkv
13-
14-
engkeyvault:
15-
type: azure-key-vault
16-
parameters:
17-
subscription: a4fc5514-21a9-4296-bfaf-5c7ee7fa35d1
18-
name: engkeyvault
19-
207
secrets:
21-
BotAccount-dotnet-bot-repo-PAT:
22-
type: github-access-token
23-
parameters:
24-
gitHubBotAccountSecret:
25-
location: engkeyvault
26-
name: BotAccount-dotnet-bot
27-
gitHubBotAccountName: dotnet-bot
28-
298
github:
309
type: github-app-secret
3110
parameters:
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
storageLocation:
2+
type: azure-key-vault
3+
parameters:
4+
subscription: fbd6122a-9ad3-42e4-976e-bccb82486856
5+
name: ProductConstructionProd
6+
7+
references:
8+
engkeyvault:
9+
type: azure-key-vault
10+
parameters:
11+
subscription: a4fc5514-21a9-4296-bfaf-5c7ee7fa35d1
12+
name: engkeyvault
13+
14+
secrets:
15+
BotAccount-dotnet-bot-repo-PAT:
16+
type: github-access-token
17+
parameters:
18+
gitHubBotAccountSecret:
19+
location: engkeyvault
20+
name: BotAccount-dotnet-bot
21+
gitHubBotAccountName: dotnet-bot
22+
23+
github:
24+
type: github-app-secret
25+
parameters:
26+
hasPrivateKey: true
27+
hasWebhookSecret: false
28+
hasOAuthSecret: true

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
<PackageVersion Include="FluentAssertions" Version="6.12.0" />
3838
<PackageVersion Include="FluentValidation.AspNetCore" Version="8.6.2" />
3939
<PackageVersion Include="Humanizer.Core" Version="2.14.1" />
40-
<PackageVersion Include="LibGit2Sharp" Version="0.27.2" />
40+
<PackageVersion Include="LibGit2Sharp" Version="0.30.0" />
4141
<PackageVersion Include="Microsoft.ApplicationInsights" Version="2.22.0" />
4242
<PackageVersion Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
4343
<PackageVersion Include="Microsoft.AspNetCore.ApiPagination" Version="$(MicrosoftAspNetCoreApiPaginationVersion)" />

NuGet.config

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
33
<packageSources>
44
<clear />
@@ -213,4 +213,5 @@
213213
<package pattern="sn" />
214214
</packageSource>
215215
</packageSourceMapping>
216+
<disabledPackageSources />
216217
</configuration>

azure-pipelines-product-construction-service.yml

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ trigger:
33
branches:
44
include:
55
- main
6+
- production
67

78
pr:
89
branches:
@@ -47,10 +48,35 @@ variables:
4748
value: "Darc: Maestro Staging"
4849
- name: MaestroAppId
4950
value: $(MaestroStagingAppClientId)
50-
- ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
51+
- name: redisConnectionString
52+
value: "product-construction-service-redis-int.redis.cache.windows.net:6380,ssl=true"
53+
- ${{ else }}:
54+
- name: subscriptionId
55+
value: fbd6122a-9ad3-42e4-976e-bccb82486856
56+
- name: containerappName
57+
value: product-construction-prod
58+
- name: containerjobNames
59+
value: sub-triggerer-twicedaily-prod,sub-triggerer-daily-prod,sub-triggerer-weekly-prod,longest-path-updater-job-prod,feed-cleaner-prod
60+
- name: containerRegistryName
61+
value: productconstructionprod
62+
- name: containerappEnvironmentName
63+
value: product-construction-service-env-prod
64+
- name: containerappWorkspaceName
65+
value: product-construction-service-workspace-prod
66+
- name: dockerRegistryUrl
67+
value: productconstructionprod.azurecr.io
68+
- name: serviceConnectionName
69+
value: ProductConstructionServiceDeploymentProd
70+
- name: authServiceConnection
71+
value: "Darc: Maestro Production"
72+
- name: MaestroAppId
73+
value: $(MaestroAppClientId)
74+
- name: redisConnectionString
75+
value: "product-construction-service-redis-prod.redis.cache.windows.net,ssl=true"
76+
- ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
5177
- name: devBranchSuffix
5278
value:
53-
- ${{ else }}:
79+
- ${{ else }}:
5480
- name: devBranchSuffix
5581
value: -dev
5682

@@ -199,7 +225,7 @@ stages:
199225
--azCliPath "$(azCliPath)" `
200226
--isCi true `
201227
--entraAppId $(MaestroAppId) `
202-
--redisConnectionString "product-construction-service-redis-int.redis.cache.windows.net:6380,ssl=true"
228+
--redisConnectionString $(redisConnectionString)
203229
displayName: Deploy container app
204230

205231
- task: AzureCLI@2

eng/Version.Details.xml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,29 +91,29 @@
9191
</Dependency>
9292
</ProductDependencies>
9393
<ToolsetDependencies>
94-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24475.3">
94+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24508.1">
9595
<Uri>https://github.com/dotnet/arcade</Uri>
96-
<Sha>69abe6b2063083c0b35fc3a5b16cb2bdbaf5e8b0</Sha>
96+
<Sha>e5b13e054339e41d422212a0ecaf24fec20cb5a1</Sha>
9797
</Dependency>
98-
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.24475.3">
98+
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.24508.1">
9999
<Uri>https://github.com/dotnet/arcade</Uri>
100-
<Sha>69abe6b2063083c0b35fc3a5b16cb2bdbaf5e8b0</Sha>
100+
<Sha>e5b13e054339e41d422212a0ecaf24fec20cb5a1</Sha>
101101
</Dependency>
102-
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.24475.3">
102+
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.24508.1">
103103
<Uri>https://github.com/dotnet/arcade</Uri>
104-
<Sha>69abe6b2063083c0b35fc3a5b16cb2bdbaf5e8b0</Sha>
104+
<Sha>e5b13e054339e41d422212a0ecaf24fec20cb5a1</Sha>
105105
</Dependency>
106-
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.24475.3">
106+
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.24508.1">
107107
<Uri>https://github.com/dotnet/arcade</Uri>
108-
<Sha>69abe6b2063083c0b35fc3a5b16cb2bdbaf5e8b0</Sha>
108+
<Sha>e5b13e054339e41d422212a0ecaf24fec20cb5a1</Sha>
109109
</Dependency>
110-
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.24475.3">
110+
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.24508.1">
111111
<Uri>https://github.com/dotnet/arcade</Uri>
112-
<Sha>69abe6b2063083c0b35fc3a5b16cb2bdbaf5e8b0</Sha>
112+
<Sha>e5b13e054339e41d422212a0ecaf24fec20cb5a1</Sha>
113113
</Dependency>
114-
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.24475.3">
114+
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.24508.1">
115115
<Uri>https://github.com/dotnet/arcade</Uri>
116-
<Sha>69abe6b2063083c0b35fc3a5b16cb2bdbaf5e8b0</Sha>
116+
<Sha>e5b13e054339e41d422212a0ecaf24fec20cb5a1</Sha>
117117
</Dependency>
118118
<Dependency Name="Microsoft.DncEng.SecretManager" Version="1.1.0-beta.24474.1">
119119
<Uri>https://github.com/dotnet/dnceng</Uri>

eng/Versions.props

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
<UsingToolNetFrameworkReferenceAssemblies>true</UsingToolNetFrameworkReferenceAssemblies>
1010
<MicrosoftNetFrameworkReferenceAssembliesVersion>1.0.0-preview.1</MicrosoftNetFrameworkReferenceAssembliesVersion>
1111
<!-- Libs -->
12-
<MicrosoftDotNetSignToolVersion>8.0.0-beta.24475.3</MicrosoftDotNetSignToolVersion>
13-
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.24475.3</MicrosoftDotNetBuildTasksFeedVersion>
14-
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.24475.3</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
15-
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.24475.3</MicrosoftDotNetGitIssueManagerVersion>
16-
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.24475.3</MicrosoftDotNetVersionToolsVersion>
12+
<MicrosoftDotNetSignToolVersion>8.0.0-beta.24508.1</MicrosoftDotNetSignToolVersion>
13+
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.24508.1</MicrosoftDotNetBuildTasksFeedVersion>
14+
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.24508.1</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
15+
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.24508.1</MicrosoftDotNetGitIssueManagerVersion>
16+
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.24508.1</MicrosoftDotNetVersionToolsVersion>
1717
<MicrosoftNetTestSdkVersion>17.4.1</MicrosoftNetTestSdkVersion>
1818
<MicrosoftDotNetInternalLoggingVersion>1.1.0-beta.24376.1</MicrosoftDotNetInternalLoggingVersion>
1919
<MicrosoftAspNetCoreApiPaginationVersion>1.1.0-beta.24376.1</MicrosoftAspNetCoreApiPaginationVersion>

eng/common/tools.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -892,7 +892,7 @@ function IsWindowsPlatform() {
892892
}
893893

894894
function Get-Darc($version) {
895-
$darcPath = "$TempDir\darc\$(New-Guid)"
895+
$darcPath = "$TempDir\darc\$([guid]::NewGuid())"
896896
if ($version -ne $null) {
897897
& $PSScriptRoot\darc-init.ps1 -toolpath $darcPath -darcVersion $version | Out-Host
898898
} else {

eng/service-templates/ProductConstructionService/container-environment.bicep

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ param containerEnvironmentName string
44
param productConstructionServiceSubnetId string
55
param infrastructureResourceGroupName string
66
param applicationInsightsName string
7+
param containerAppsManagedEnvironmentsContributor string
8+
param deploymentIdentityPrincipalId string
79

810
resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = {
911
name: logAnalyticsName
@@ -57,5 +59,15 @@ resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = {
5759
}
5860
}
5961

62+
resource deploymentSubscriptionTriggererContributor 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
63+
scope: containerEnvironment
64+
name: guid(subscription().id, resourceGroup().id, containerAppsManagedEnvironmentsContributor)
65+
properties: {
66+
roleDefinitionId: containerAppsManagedEnvironmentsContributor
67+
principalType: 'ServicePrincipal'
68+
principalId: deploymentIdentityPrincipalId
69+
}
70+
}
71+
6072
output applicationInsightsConnectionString string = applicationInsights.properties.ConnectionString
6173
output containerEnvironmentId string = containerEnvironment.id

eng/service-templates/ProductConstructionService/managed-identities.bicep

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ param pcsIdentityName string
44
param subscriptionTriggererIdentityName string
55
param longestBuildPathUpdaterIdentityName string
66
param feedCleanerIdentityName string
7+
param contributorRole string
78

89
resource deploymentIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = {
910
name: deploymentIdentityName
@@ -30,6 +31,16 @@ resource feedCleanerIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2
3031
location: location
3132
}
3233

34+
resource pcsIdentityContributorRole 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
35+
scope: pcsIdentity
36+
name: guid(subscription().id, resourceGroup().id, contributorRole)
37+
properties: {
38+
roleDefinitionId: contributorRole
39+
principalType: 'ServicePrincipal'
40+
principalId: deploymentIdentity.properties.principalId
41+
}
42+
}
43+
3344
output pcsIdentityPrincipalId string = pcsIdentity.properties.principalId
3445
output pcsIdentityId string = pcsIdentity.id
3546
output deploymentIdentityPrincipalId string = deploymentIdentity.properties.principalId
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
using 'provision.bicep'
2+
3+
param location = 'westus2'
4+
5+
param containerRegistryName = 'productconstructionprod'
6+
7+
param containerCpuCoreCount = '1.0'
8+
9+
param containerMemory = '2Gi'
10+
11+
param aspnetcoreEnvironment = 'Production'
12+
13+
param applicationInsightsName = 'product-construction-service-ai-prod'
14+
15+
param keyVaultName = 'ProductConstructionProd'
16+
17+
param azureCacheRedisName = 'product-construction-service-redis-prod'
18+
19+
param logAnalyticsName = 'product-construction-service-workspace-prod'
20+
21+
param containerEnvironmentName = 'product-construction-service-env-prod'
22+
23+
param productConstructionServiceName = 'product-construction-prod'
24+
25+
param storageAccountName = 'productconstructionprod'
26+
27+
param pcsIdentityName = 'ProductConstructionServiceProd'
28+
29+
param deploymentIdentityName = 'ProductConstructionServiceDeploymentProd'
30+
31+
param containerImageName = 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest'
32+
33+
param virtualNetworkName = 'product-construction-service-vnet-prod'
34+
35+
param productConstructionServiceSubnetName = 'product-construction-service-subnet'
36+
37+
param subscriptionTriggererIdentityName = 'SubscriptionTriggererProd'
38+
39+
param subscriptionTriggererWeeklyJobName = 'sub-triggerer-weekly-prod'
40+
41+
param subscriptionTriggererTwiceDailyJobName = 'sub-triggerer-twicedaily-prod'
42+
43+
param subscriptionTriggererDailyJobName = 'sub-triggerer-daily-prod'
44+
45+
param longestBuildPathUpdaterIdentityName = 'LongestBuildPathUpdaterProd'
46+
47+
param longestBuildPathUpdaterJobName = 'longest-path-updater-job-prod'
48+
49+
param feedCleanerJobName = 'feed-cleaner-prod'
50+
51+
param feedCleanerIdentityName = 'FeedCleanerProd'
52+
53+
param networkSecurityGroupName = 'product-construction-service-nsg-prod'
54+
55+
param infrastructureResourceGroupName = 'product-construction-service-ip-prod'

0 commit comments

Comments
 (0)