Conversation
…he ASP.NET pipeline.
…s to lay the groundwork for: 1) Migrating to bicep 2) Aligning deploy approach with Corvus.Deployment 3) Hosting in Azure Container Apps If progressed, much of this work would be extracted to other/new repos.
Tidy-up corvus.deployment references
Add docker compose support
Had wrong property names, and a spurious comma. Also added in swagger endpoint.
Conflicts:
.gitignore
GitVersion.yml
Solutions/Marain.Tenancy.Cli/Marain.Tenancy.Cli.csproj
Solutions/Marain.Tenancy.Cli/packages.lock.json
Solutions/Marain.Tenancy.Client/Marain.Tenancy.Client.csproj
Solutions/Marain.Tenancy.ClientTenantProvider/Marain.Tenancy.ClientTenantProvider.csproj
Solutions/Marain.Tenancy.Host.AspNetCore/Dockerfile
Solutions/Marain.Tenancy.Host.AspNetCore/Marain.Tenancy.Host.AspNetCore.csproj
Solutions/Marain.Tenancy.Host.AspNetCore/Program.cs
Solutions/Marain.Tenancy.Host.AspNetCore/Startup.cs
Solutions/Marain.Tenancy.Host.AspNetCore/appsettings.Development.json
Solutions/Marain.Tenancy.Host.Functions/Marain.Tenancy.Host.Functions.csproj
Solutions/Marain.Tenancy.Host.Functions/packages.lock.json
Solutions/Marain.Tenancy.Hosting.AspNetCore/Marain.Tenancy.Hosting.AspNetCore.csproj
Solutions/Marain.Tenancy.Hosting.AspNetCore/Microsoft/Extensions/DependencyInjection/TenancyServiceCollectionExtensions.cs
Solutions/Marain.Tenancy.Hosting.AspNetCore/Microsoft/Extensions/DependencyInjection/TenancyStorageServiceCollectionExtensions.cs
Solutions/Marain.Tenancy.OpenApi.Service/Marain.Tenancy.OpenApi.Service.csproj
Solutions/Marain.Tenancy.Specs/Marain.Tenancy.Specs.csproj
Solutions/Marain.Tenancy.Specs/packages.lock.json
Solutions/Marain.Tenancy.sln
build.ps1
B
B
B
B
B
B
B
|
|
||
| ### Local Development | ||
|
|
||
| You need a `local.settings.json` file - use `local.settings.template.json` which you can copy or rename. |
There was a problem hiding this comment.
This is just for functions. Howard was adding an ASP.NET Core host, which uses the more straightforward appsettings.json stuff instead of the slightly idiosyncratic functions-specific local.settings.json.
In any case, this should say where this file goes.
| "RootTenantBlobStorageConfigurationOptions__AccountName": "", | ||
| "RootTenantBlobStorageConfigurationOptions__RootTenantBlobStorageConfiguration__KeyVaultName": "", | ||
| "RootTenantBlobStorageConfigurationOptions__RootTenantBlobStorageConfiguration__AccountKeySecretName": "" | ||
| ``` | ||
|
|
||
| The quickest way to get started is to put a full storage account connection string in `RootTenantBlobStorageConfigurationOptions__AccountName` | ||
|
|
||
| You can use development storage emulator: | ||
|
|
||
| ``` | ||
| "RootTenantBlobStorageConfigurationOptions__AccountName": "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;" | ||
| ``` |
There was a problem hiding this comment.
This is out of date with how things are now on main. For dev storage, this works:
"TenantCacheConfiguration__GetTenantResponseCacheControlHeaderValue": "max-age=300",
"RootBlobStorageConfiguration__ConnectionStringPlainText": "UseDevelopmentStorage=true"
So there are a couple of important changes:
- it's now all under
RootBlobStorageConfiguration, notRootTenantBlobStorageConfigurationOptions - we're now using the current corvus tenancy bits, which have removed the old weirdness in which
AccountNamewas sometimes interpretted as a connection string (and it means that if you are usingKeyVaultit looks a bit different now)
| // SP | ||
| objectId: '8ec5ab5b-89e6-4afb-90de-7a502574e9fa' |
There was a problem hiding this comment.
Which service principal is this? Is it the managed identity of the function app? If so, we want this to be determined dynamically don't we?
| @@ -0,0 +1,23 @@ | |||
| #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. | |||
There was a problem hiding this comment.
So is this just for VS's benefit? Or is this also used to build deployable artifacts?
| EndProject | ||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marain.Tenancy.OpenApi.Service", "Marain.Tenancy.OpenApi.Service\Marain.Tenancy.OpenApi.Service.csproj", "{CFD86B72-E715-4C79-A5B5-A86648617581}" | ||
| EndProject | ||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marain.Tenancy.Host.Functions", "Marain.Tenancy.Host.Functions\Marain.Tenancy.Host.Functions.csproj", "{5029BF20-64FE-438A-B8BC-DC6E1E1EAFAB}" |
There was a problem hiding this comment.
So are we dropping functions entirely as an option? (If so, the readme definitely shouldn't be discussing local.settings.json)
Conflicts: .gitignore Solutions/Marain.Tenancy.Host.AspNetCore/Marain.Tenancy.Host.AspNetCore.csproj Solutions/Marain.Tenancy.Host.AspNetCore/Program.cs Solutions/Marain.Tenancy.Host.AspNetCore/Startup.cs
Creation of the app service principal now managed via Bicep.
Added deploy script to run marain-cli
Bumped Corvus.Deployment version Force use of MSGraph in ARM deployScripts
Enabled dapr for tenancy service container app Added container app for DemoFrontEnd
…n.Tenancy into feature/dapr-erp-poc
…et/Marain.Tenancy into feature/dapr-erp-poc
(not intended to be merged in the current form)
Marain Deployment vNext Spike
This branch contains PoC deployment work that builds on some earlier work, including:
Overview
Marain.Instanceorchestrated in deploy-instance.ps1Marain.Tenancyorchestrated in deploy-tenancy.ps1Corvus.DeploymentandInvokeBuildas basis for the deployment processBuild
An initial build (using Endjin.RecommendedPractices.Build) has been setup and extended to produce a suitable container image.
Endjin.RecommendedPractices
The
erpfolder is a placeholder for elements that, if retained, could be extracted into separateEndjin.RecommendedPractices.*repositories:erp/bicep- reusable Bicep moduleserp/deploy- reusable deployment processes, equivalent to Endjin.RecommendedPractices.Build but for deploymentTesting the spike
The deployment of the Marain Instance and Marain Tenancy infrastructure & services can be run as follows:
You can also experiment with different configurations by modifying a copy of the
sample.ps1configuration script.