This commit is contained in:
Chris Kruining 2024-11-28 07:18:53 +01:00
parent 501daf7a91
commit e917ab12ed
No known key found for this signature in database
GPG key ID: EB894A3560CCCAD2
7 changed files with 133 additions and 125 deletions

View file

@ -1,4 +1,6 @@
import { Context } from 'types.bicep'
import { Context } from 'br/Tricep:types:latest'
import { with_name } from 'br/Tricep:common/context:latest'
import { container_app_environment, container_app, container, with_app_logs, with_auto_scaling, with_environment } from 'br/Tricep:recommended/app/container-app:latest'
targetScope = 'resourceGroup'
@ -6,12 +8,14 @@ param context Context
param version string
@secure()
param registryUrl string
param customerId string
param sharedKey string
var appName = 'app'
resource environment 'Microsoft.App/managedEnvironments@2024-03-01' = {
name: 'cea-${context.locationAbbreviation}-${context.environment}-${context.projectName}'
location: context.location
var environmentConfig = container_app_environment(with_name(context, 'app'), [
with_app_logs(customerId, sharedKey)
{
properties: {
appLogsConfiguration: {
destination: 'azure-monitor'
@ -28,16 +32,21 @@ resource environment 'Microsoft.App/managedEnvironments@2024-03-01' = {
}
}
}
resource app 'Microsoft.App/containerApps@2024-03-01' = {
name: 'ca-${context.locationAbbreviation}-${context.environment}-${context.projectName}-app'
location: context.location
identity: {
type: 'SystemAssigned'
])
var appConfig = container_app(
with_name(context, 'app'),
[
container('${context.project}-${appName}', '${registryUrl}/${context.project}-${appName}:${version}')
],
[
with_environment(environment.id)
with_auto_scaling(0, 1, {
ruleName: {
concurrentRequests: '10'
}
})
{
properties: {
environmentId: environment.id
configuration: {
activeRevisionsMode: 'Single'
@ -63,6 +72,7 @@ resource app 'Microsoft.App/containerApps@2024-03-01' = {
maxAge: 0
}
}
registries: [
{
identity: 'system'
@ -70,32 +80,20 @@ resource app 'Microsoft.App/containerApps@2024-03-01' = {
}
]
}
}
}
]
)
template: {
containers: [
{
image: '${registryUrl}/${context.projectName}-${appName}:${version}'
name: '${context.projectName}-${appName}'
resources: {
cpu: json('0.25')
memory: '0.5Gi'
}
}
]
scale: {
minReplicas: 1
maxReplicas: 2
rules: [
{
name: 'http-rule'
http: {
metadata: {
concurrentRequests: '50'
}
}
}
]
}
}
resource environment 'Microsoft.App/managedEnvironments@2024-03-01' = {
name: environmentConfig.name
location: environmentConfig.location
properties: environmentConfig.properties
}
resource app 'Microsoft.App/containerApps@2024-03-01' = {
name: appConfig.name
location: appConfig.location
identity: appConfig.identity
properties: appConfig.properties
}

View file

@ -7,5 +7,12 @@
"resourceTypedParamsAndOutputs": true,
"sourceMapping": true,
"symbolicNameCodegen": true
},
"moduleAliases": {
"br": {
"Tricep": {
"registry": "acreuwprdtricep.azurecr.io"
}
}
}
}

View file

@ -1,8 +1,8 @@
import { Context } from 'types.bicep'
import { create_context } from 'br/Tricep:common/context:latest'
import { resource_group } from 'br/Tricep:recommended/resources/resource-group:latest'
targetScope = 'subscription'
param locationAbbreviation string
param location string
param environment string
param projectName string
@ -11,17 +11,22 @@ param version string
param registryUrl string
param deployedAt string = utcNow('yyyyMMdd')
var context = {
locationAbbreviation: locationAbbreviation
var context = create_context({
name: ''
project: projectName
nameConventionTemplate: '$type-$env-$loc-$project-$name'
location: location
environment: environment
projectName: projectName
deployedAt: deployedAt
}
tenant: tenant()
tags: {}
})
var resourceGroupConfig = resource_group(context, [])
resource calqueResourceGroup 'Microsoft.Resources/resourceGroups@2024-07-01' = {
name: 'rg-${locationAbbreviation}-${environment}-${projectName}'
location: location
name: resourceGroupConfig.name
location: resourceGroupConfig.location
}
module monitoring 'monitoring.bicep' = {

View file

@ -1,11 +1,17 @@
import { Context } from 'types.bicep'
import { Context } from 'br/Tricep:types:latest'
import { with_managed_identity } from 'br/Tricep:common/identity:latest'
import { log_analytics } from 'br/Tricep:recommended/operational-insights/log-analytics:latest'
targetScope = 'resourceGroup'
param context Context
// resource monitoring 'Microsoft.___/___@___' = {
// name: '___-${context.locationAbbreviation}-${context.environment}-${context.projectName}'
// location: context.location
// properties: {}
// }
var logAnalyticsConfig = log_analytics(context, [
with_managed_identity()
])
resource monitoring 'Microsoft.OperationalInsights/workspaces@2023-09-01' = {
name: logAnalyticsConfig.name
location: logAnalyticsConfig.location
properties: logAnalyticsConfig.properties
}

View file

@ -1,6 +1,5 @@
using '../main.bicep'
param locationAbbreviation = 'euw'
param location = 'westeurope'
param environment = 'prd'
param projectName = 'calque'

View file

@ -1,18 +1,14 @@
import { Context } from 'types.bicep'
import { Context } from 'br/Tricep:types:latest'
import { with_managed_identity } from 'br/Tricep:common/identity:latest'
import { container_registry } from 'br/Tricep:recommended/container-registry/container-registry:latest'
targetScope = 'resourceGroup'
param context Context
resource registry 'Microsoft.ContainerRegistry/registries@2023-07-01' = {
name: 'acr${context.locationAbbreviation}${context.environment}${context.projectName}'
location: context.location
sku: {
name: 'Basic'
}
identity: {
type: 'SystemAssigned'
}
var registryConfig = container_registry(context, [
with_managed_identity()
{
properties: {
adminUserEnabled: true
dataEndpointEnabled: false
@ -21,3 +17,12 @@ resource registry 'Microsoft.ContainerRegistry/registries@2023-07-01' = {
}
}
}
])
resource registry 'Microsoft.ContainerRegistry/registries@2023-07-01' = {
name: registryConfig.name
location: registryConfig.location
sku: registryConfig.sku
identity: registryConfig.identity
properties: registryConfig.properties
}

View file

@ -1,12 +0,0 @@
@export()
type Context = {
@minLength(2)
locationAbbreviation: string
@minLength(2)
location: string
@minLength(3)
environment: string
@minLength(2)
projectName: string
deployedAt: string
}