From 79a8bf48bb4227c0717a81893415e7e8cfe7b80f Mon Sep 17 00:00:00 2001 From: Tarhone <38377034+tianputao@users.noreply.github.com> Date: Sun, 21 Jan 2024 19:15:27 +0800 Subject: [PATCH 01/13] Create auzre login action --- .github/workflows/main.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..31c9d83 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,22 @@ +on: [push] + +name: Run Azure Login With a Service Principal Secret + +jobs: + + build-and-deploy: + runs-on: ubuntu-latest + steps: + + - uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + environment: 'AzureChinaCloud' + + - name: Azure CLI script + uses: azure/CLI@v1 + with: + azcliversion: latest + inlineScript: | + az account show + From 2a9ec391bc27f2ec45ab829803e4e1206b57a5ff Mon Sep 17 00:00:00 2001 From: Tarhone Date: Sun, 21 Jan 2024 17:38:22 +0000 Subject: [PATCH 02/13] update dockerfile for GPG, and workflow --- .github/workflows/build-and-deploy.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy.yaml b/.github/workflows/build-and-deploy.yaml index 5d71253..754c776 100644 --- a/.github/workflows/build-and-deploy.yaml +++ b/.github/workflows/build-and-deploy.yaml @@ -98,6 +98,7 @@ jobs: uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} + environment: 'AzureChinaCloud' - name: Deploy bicep uses: azure/CLI@v1 @@ -116,4 +117,4 @@ jobs: containerRegistry=${{ env.REGISTRY }} \ containerRegistryUsername=${{ github.actor }} \ containerRegistryPassword=${{ secrets.GITHUB_TOKEN }} \ - deployApim=false + deployApim=true From a042d998af1ff798232134873d60ffb69832e8c6 Mon Sep 17 00:00:00 2001 From: Tarhone Date: Sun, 21 Jan 2024 17:45:18 +0000 Subject: [PATCH 03/13] update for deploy --- .devcontainer/Dockerfile | 13 +++++++++++-- .github/workflows/build-and-deploy.yaml | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index e9b9338..41c77c8 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -4,7 +4,7 @@ FROM mcr.microsoft.com/vscode/devcontainers/dotnet:0-${VARIANT} RUN su vscode -c "umask 0002 && dotnet tool install -g Microsoft.Tye --version \"0.10.0-alpha.21420.1\" 2>&1" # [Choice] Go version -ARG GO_VERSION="1.17" +ARG GO_VERSION="1.18" RUN if [ "${GO_VERSION}" != "none" ]; then wget https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz -P /tmp && sudo tar -xzf /tmp/go${GO_VERSION}.linux-amd64.tar.gz -C /usr/local/ 2>&1 && echo "export PATH=/usr/local/go/bin:${PATH}" | sudo tee /etc/profile.d/go.sh; fi RUN GOBIN=/tmp/ /usr/local/go/bin/go install github.com/go-delve/delve/cmd/dlv@master && mv /tmp/dlv $GOPATH/bin/dlv-dap @@ -33,7 +33,16 @@ ARG USERNAME=vscode # Install needed packages and setup non-root user. Use a separate RUN statement to add your # own dependencies. A user of "automatic" attempts to reuse an user ID if one already exists. COPY library-scripts/docker-in-docker-debian.sh /tmp/library-scripts/ -RUN apt-get update \ +# Update Yarn GPG key +# RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - +# RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor -o /usr/share/keyrings/yarn-archive-keyring.gpg --batch +# RUN sudo apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com +RUN if [ -f /usr/share/keyrings/yarn-keyring.gpg ]; then sudo rm /usr/share/keyrings/yarn-keyring.gpg; fi +RUN export YARNKEY=yarn-keyring.gpg \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmour -o /usr/share/keyrings/$YARNKEY --batch \ + && echo "deb [signed-by=/usr/share/keyrings/$YARNKEY] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list + +RUN apt-get update \ && apt-get install python3-pip -y \ # Use Docker script from script library to set things up && /bin/bash /tmp/library-scripts/docker-in-docker-debian.sh "${ENABLE_NONROOT_DOCKER}" "${USERNAME}" "${USE_MOBY}" "${DOCKER_VERSION}" diff --git a/.github/workflows/build-and-deploy.yaml b/.github/workflows/build-and-deploy.yaml index 754c776..112c163 100644 --- a/.github/workflows/build-and-deploy.yaml +++ b/.github/workflows/build-and-deploy.yaml @@ -104,7 +104,7 @@ jobs: uses: azure/CLI@v1 with: inlineScript: | - az group create -g ${{ secrets.RESOURCE_GROUP }} -l canadacentral + az group create -g ${{ secrets.RESOURCE_GROUP }} -l chinanorth3 az deployment group create -g ${{ secrets.RESOURCE_GROUP }} -f ./deploy/main.bicep \ -p \ minReplicas=0 \ From a72d9d8a684948e54af74ed682848d904bd3de84 Mon Sep 17 00:00:00 2001 From: Tarhone Date: Sun, 21 Jan 2024 17:59:49 +0000 Subject: [PATCH 04/13] update for deploy --- deploy/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/main.bicep b/deploy/main.bicep index e6aa879..cafb1da 100644 --- a/deploy/main.bicep +++ b/deploy/main.bicep @@ -87,7 +87,7 @@ module pythonService 'container-http.bicep' = { } } -resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2022-01-01-preview' = { +resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2023-11-02-preview' = { name: '${environmentName}/orders' dependsOn: [ environment From 0aba22c90b4dd6a5b961d2b1976ab90cf7e37358 Mon Sep 17 00:00:00 2001 From: Tarhone Date: Mon, 22 Jan 2024 01:40:27 +0000 Subject: [PATCH 05/13] update for deploy --- deploy/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/main.bicep b/deploy/main.bicep index cafb1da..e6aa879 100644 --- a/deploy/main.bicep +++ b/deploy/main.bicep @@ -87,7 +87,7 @@ module pythonService 'container-http.bicep' = { } } -resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2023-11-02-preview' = { +resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2022-01-01-preview' = { name: '${environmentName}/orders' dependsOn: [ environment From 4cc2b4d41e7e2f721d95d5f872e70b319c8d51dd Mon Sep 17 00:00:00 2001 From: Tarhone Date: Mon, 22 Jan 2024 02:08:12 +0000 Subject: [PATCH 06/13] update for deploy --- deploy/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/main.bicep b/deploy/main.bicep index e6aa879..f71806d 100644 --- a/deploy/main.bicep +++ b/deploy/main.bicep @@ -87,7 +87,7 @@ module pythonService 'container-http.bicep' = { } } -resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2022-01-01-preview' = { +resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2023-04-01-preview' = { name: '${environmentName}/orders' dependsOn: [ environment From 10e3c6149b8b91622590ebc9ceb20ee7ebbbf613 Mon Sep 17 00:00:00 2001 From: Tarhone Date: Mon, 22 Jan 2024 02:55:13 +0000 Subject: [PATCH 07/13] update for deploy --- deploy/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/main.bicep b/deploy/main.bicep index f71806d..561df02 100644 --- a/deploy/main.bicep +++ b/deploy/main.bicep @@ -87,7 +87,7 @@ module pythonService 'container-http.bicep' = { } } -resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2023-04-01-preview' = { +resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2023-08-01-preview' = { name: '${environmentName}/orders' dependsOn: [ environment From c5f81d9c5a90abfda07d52800722b3d98f83375e Mon Sep 17 00:00:00 2001 From: Tarhone Date: Mon, 22 Jan 2024 03:28:41 +0000 Subject: [PATCH 08/13] update for deploy --- deploy/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/main.bicep b/deploy/main.bicep index 561df02..2e91fbf 100644 --- a/deploy/main.bicep +++ b/deploy/main.bicep @@ -87,7 +87,7 @@ module pythonService 'container-http.bicep' = { } } -resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2023-08-01-preview' = { +resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2023-03-01-preview' = { name: '${environmentName}/orders' dependsOn: [ environment From 8b47f2cff2e8f454bca2690add9b951ca201feae Mon Sep 17 00:00:00 2001 From: Tarhone Date: Mon, 22 Jan 2024 03:37:21 +0000 Subject: [PATCH 09/13] update for deploy --- deploy/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/main.bicep b/deploy/main.bicep index 2e91fbf..8989186 100644 --- a/deploy/main.bicep +++ b/deploy/main.bicep @@ -87,7 +87,7 @@ module pythonService 'container-http.bicep' = { } } -resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2023-03-01-preview' = { +resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2022-03-01' = { name: '${environmentName}/orders' dependsOn: [ environment From 14089bb586ff0e95abf093345dcdead8ff89014e Mon Sep 17 00:00:00 2001 From: Tarhone Date: Mon, 22 Jan 2024 03:53:20 +0000 Subject: [PATCH 10/13] update for deploy --- deploy/api-management-api.bicep | 8 ++++---- deploy/main.bicep | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deploy/api-management-api.bicep b/deploy/api-management-api.bicep index 781a2e5..86fbcf6 100644 --- a/deploy/api-management-api.bicep +++ b/deploy/api-management-api.bicep @@ -38,12 +38,12 @@ var productsSet = [ ] //we refer to exisitng APIM instance. This may even be in a different resoruce group -resource apiManagementService 'Microsoft.ApiManagement/service@2020-12-01' existing = { +resource apiManagementService 'Microsoft.ApiManagement/service@2022-09-01-preview' existing = { name: apimInstanceName } //establish one or many products to an existing APIM instance -resource ProductRecords 'Microsoft.ApiManagement/service/products@2020-12-01' = [for product in productsSet: { +resource ProductRecords 'Microsoft.ApiManagement/service/products@2022-09-01-preview' = [for product in productsSet: { parent: apiManagementService name: product.productName properties: { @@ -58,7 +58,7 @@ resource ProductRecords 'Microsoft.ApiManagement/service/products@2020-12-01' = }] //publish the API endpint to APIM -resource storeAPI 'Microsoft.ApiManagement/service/apis@2020-12-01' = { +resource storeAPI 'Microsoft.ApiManagement/service/apis@2022-09-01-preview' = { parent: apiManagementService name: apiName properties: { @@ -69,7 +69,7 @@ resource storeAPI 'Microsoft.ApiManagement/service/apis@2020-12-01' = { } //attach API to product(s) -resource attachAPIToProducts 'Microsoft.ApiManagement/service/products/apis@2020-12-01' = [for (product, i) in productsSet: { +resource attachAPIToProducts 'Microsoft.ApiManagement/service/products/apis@2022-09-01-preview' = [for (product, i) in productsSet: { parent: ProductRecords[i] name: storeAPI.name }] diff --git a/deploy/main.bicep b/deploy/main.bicep index 8989186..f71806d 100644 --- a/deploy/main.bicep +++ b/deploy/main.bicep @@ -87,7 +87,7 @@ module pythonService 'container-http.bicep' = { } } -resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2022-03-01' = { +resource stateDaprComponent 'Microsoft.App/managedEnvironments/daprComponents@2023-04-01-preview' = { name: '${environmentName}/orders' dependsOn: [ environment From ed73a6f2f34cd6014514cf7e5afefc3c73d8624e Mon Sep 17 00:00:00 2001 From: Tarhone Date: Mon, 22 Jan 2024 04:54:05 +0000 Subject: [PATCH 11/13] update for deploy --- deploy/api-management-api.bicep | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy/api-management-api.bicep b/deploy/api-management-api.bicep index 86fbcf6..2858d91 100644 --- a/deploy/api-management-api.bicep +++ b/deploy/api-management-api.bicep @@ -38,12 +38,12 @@ var productsSet = [ ] //we refer to exisitng APIM instance. This may even be in a different resoruce group -resource apiManagementService 'Microsoft.ApiManagement/service@2022-09-01-preview' existing = { +resource apiManagementService 'Microsoft.ApiManagement/service@2022-04-01-preview' existing = { name: apimInstanceName } //establish one or many products to an existing APIM instance -resource ProductRecords 'Microsoft.ApiManagement/service/products@2022-09-01-preview' = [for product in productsSet: { +resource ProductRecords 'Microsoft.ApiManagement/service/products@2022-04-01-preview' = [for product in productsSet: { parent: apiManagementService name: product.productName properties: { @@ -58,7 +58,7 @@ resource ProductRecords 'Microsoft.ApiManagement/service/products@2022-09-01-pre }] //publish the API endpint to APIM -resource storeAPI 'Microsoft.ApiManagement/service/apis@2022-09-01-preview' = { +resource storeAPI 'Microsoft.ApiManagement/service/apis@2022-04-01-preview' = { parent: apiManagementService name: apiName properties: { @@ -69,7 +69,7 @@ resource storeAPI 'Microsoft.ApiManagement/service/apis@2022-09-01-preview' = { } //attach API to product(s) -resource attachAPIToProducts 'Microsoft.ApiManagement/service/products/apis@2022-09-01-preview' = [for (product, i) in productsSet: { +resource attachAPIToProducts 'Microsoft.ApiManagement/service/products/apis@2022-04-01-preview' = [for (product, i) in productsSet: { parent: ProductRecords[i] name: storeAPI.name }] From 2a8180eb4704aee2ef10990412d1b86737f2c3aa Mon Sep 17 00:00:00 2001 From: Tarhone Date: Mon, 22 Jan 2024 07:48:34 +0000 Subject: [PATCH 12/13] update --- deploy/api-management-api.bicep | 9 +++++---- deploy/main.bicep | 1 + node-service/package-lock.json | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/deploy/api-management-api.bicep b/deploy/api-management-api.bicep index 2858d91..5458d9b 100644 --- a/deploy/api-management-api.bicep +++ b/deploy/api-management-api.bicep @@ -4,6 +4,7 @@ targetScope = 'resourceGroup' //required parameters param apimInstanceName string // need to be provided since it is existing param apiName string +param sku string = 'Standard' //needed and default value param apiEndPointURL string = 'http://petstore.swagger.io/v2/swagger.json' @@ -38,12 +39,12 @@ var productsSet = [ ] //we refer to exisitng APIM instance. This may even be in a different resoruce group -resource apiManagementService 'Microsoft.ApiManagement/service@2022-04-01-preview' existing = { +resource apiManagementService 'Microsoft.ApiManagement/service@2020-12-01' existing = { name: apimInstanceName } //establish one or many products to an existing APIM instance -resource ProductRecords 'Microsoft.ApiManagement/service/products@2022-04-01-preview' = [for product in productsSet: { +resource ProductRecords 'Microsoft.ApiManagement/service/products@2020-12-01' = [for product in productsSet: { parent: apiManagementService name: product.productName properties: { @@ -58,7 +59,7 @@ resource ProductRecords 'Microsoft.ApiManagement/service/products@2022-04-01-pre }] //publish the API endpint to APIM -resource storeAPI 'Microsoft.ApiManagement/service/apis@2022-04-01-preview' = { +resource storeAPI 'Microsoft.ApiManagement/service/apis@2020-12-01' = { parent: apiManagementService name: apiName properties: { @@ -69,7 +70,7 @@ resource storeAPI 'Microsoft.ApiManagement/service/apis@2022-04-01-preview' = { } //attach API to product(s) -resource attachAPIToProducts 'Microsoft.ApiManagement/service/products/apis@2022-04-01-preview' = [for (product, i) in productsSet: { +resource attachAPIToProducts 'Microsoft.ApiManagement/service/products/apis@2020-12-01' = [for (product, i) in productsSet: { parent: ProductRecords[i] name: storeAPI.name }] diff --git a/deploy/main.bicep b/deploy/main.bicep index f71806d..e01cfcd 100644 --- a/deploy/main.bicep +++ b/deploy/main.bicep @@ -54,6 +54,7 @@ module apim 'api-management.bicep' = if (deployApim) { publisherName: 'Contoso Store' publisherEmail: 'demo@example.com' apimLocation: location + sku: 'Standard' } } diff --git a/node-service/package-lock.json b/node-service/package-lock.json index fdce345..ed9d21f 100644 --- a/node-service/package-lock.json +++ b/node-service/package-lock.json @@ -1145,4 +1145,4 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" } } -} +} \ No newline at end of file From e1ea8ca734af23861c8b3da815268561bb9a4f9f Mon Sep 17 00:00:00 2001 From: Tarhone Date: Mon, 22 Jan 2024 10:42:40 +0000 Subject: [PATCH 13/13] change public registry --- deploy/api-management-api.bicep | 1 - deploy/main.bicep | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/deploy/api-management-api.bicep b/deploy/api-management-api.bicep index 5458d9b..781a2e5 100644 --- a/deploy/api-management-api.bicep +++ b/deploy/api-management-api.bicep @@ -4,7 +4,6 @@ targetScope = 'resourceGroup' //required parameters param apimInstanceName string // need to be provided since it is existing param apiName string -param sku string = 'Standard' //needed and default value param apiEndPointURL string = 'http://petstore.swagger.io/v2/swagger.json' diff --git a/deploy/main.bicep b/deploy/main.bicep index e01cfcd..99f1489 100644 --- a/deploy/main.bicep +++ b/deploy/main.bicep @@ -17,7 +17,7 @@ var goServiceAppName = 'go-app' param apimName string = 'store-api-mgmt-${uniqueString(resourceGroup().id)}' param deployApim bool = true -param isPrivateRegistry bool = true +param isPrivateRegistry bool = false param containerRegistry string param containerRegistryUsername string = 'testUser'