Merge pull request #1 from dotnet-architecture/dev
Update Fork March 2021
This commit is contained in:
commit
1360cf87d2
92
.github/workflows/basket-api.yml
vendored
Normal file
92
.github/workflows/basket-api.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: basket-api
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Basket/**
|
||||
- .github/workflows/basket-api.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Basket/**
|
||||
- .github/workflows/basket-api.yml
|
||||
env:
|
||||
SERVICE: basket-api
|
||||
IMAGE: basket.api
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
92
.github/workflows/catalog-api.yml
vendored
Normal file
92
.github/workflows/catalog-api.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: catalog-api
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Catalog/**
|
||||
- .github/workflows/catalog-api.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Catalog/**
|
||||
- .github/workflows/catalog-api.yml
|
||||
env:
|
||||
SERVICE: catalog-api
|
||||
IMAGE: catalog.api
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
92
.github/workflows/identity-api.yml
vendored
Normal file
92
.github/workflows/identity-api.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: identity-api
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Identity/**
|
||||
- .github/workflows/identity-api.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Identity/**
|
||||
- .github/workflows/identity-api.yml
|
||||
env:
|
||||
SERVICE: identity-api
|
||||
IMAGE: identity.api
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
90
.github/workflows/mobileshoppingagg.yml
vendored
Normal file
90
.github/workflows/mobileshoppingagg.yml
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
name: mobileshoppingagg
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/ApiGateways/Mobile.Bff.Shopping/aggregator/**
|
||||
- .github/workflows/mobileshoppingagg.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/ApiGateways/Mobile.Bff.Shopping/aggregator/**
|
||||
- .github/workflows/mobileshoppingagg.yml
|
||||
env:
|
||||
SERVICE: mobileshoppingagg
|
||||
IMAGE: mobileshoppingagg
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
92
.github/workflows/ordering-api.yml
vendored
Normal file
92
.github/workflows/ordering-api.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: ordering-api
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Ordering/**
|
||||
- .github/workflows/ordering-api.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Ordering/**
|
||||
- .github/workflows/ordering-api.yml
|
||||
env:
|
||||
SERVICE: ordering-api
|
||||
IMAGE: ordering.api
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
92
.github/workflows/ordering-backgroundtasks.yml
vendored
Normal file
92
.github/workflows/ordering-backgroundtasks.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: ordering-backgroundtasks
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Ordering/**
|
||||
- .github/workflows/ordering-backgroundtasks.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Ordering/**
|
||||
- .github/workflows/ordering-backgroundtasks.yml
|
||||
env:
|
||||
SERVICE: ordering-backgroundtasks
|
||||
IMAGE: ordering.backgroundtasks
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
92
.github/workflows/ordering-signalrhub.yml
vendored
Normal file
92
.github/workflows/ordering-signalrhub.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: ordering-signalrhub
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Ordering/**
|
||||
- .github/workflows/ordering-signalrhub.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Ordering/**
|
||||
- .github/workflows/ordering-signalrhub.yml
|
||||
env:
|
||||
SERVICE: ordering-signalrhub
|
||||
IMAGE: ordering.signalrhub
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
92
.github/workflows/payment-api.yml
vendored
Normal file
92
.github/workflows/payment-api.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: payment-api
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Payment/**
|
||||
- .github/workflows/payment-api.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Payment/**
|
||||
- .github/workflows/payment-api.yml
|
||||
env:
|
||||
SERVICE: payment-api
|
||||
IMAGE: payment.api
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
92
.github/workflows/webhooks-api.yml
vendored
Normal file
92
.github/workflows/webhooks-api.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: webhooks-api
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Webhooks/**
|
||||
- .github/workflows/webhooks-api.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Services/Webhooks/**
|
||||
- .github/workflows/webhooks-api.yml
|
||||
env:
|
||||
SERVICE: webhooks-api
|
||||
IMAGE: webhooks.api
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
92
.github/workflows/webhooks-client.yml
vendored
Normal file
92
.github/workflows/webhooks-client.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: webhooks-client
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Web/WebhookClient/**
|
||||
- .github/workflows/webhooks-client.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Web/WebhookClient/**
|
||||
- .github/workflows/webhooks-client.yml
|
||||
env:
|
||||
SERVICE: webhooks-client
|
||||
IMAGE: webhooks.client
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
93
.github/workflows/webmvc.yml
vendored
Normal file
93
.github/workflows/webmvc.yml
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
name: webmvc
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Web/WebMVC/**
|
||||
- .github/workflows/webmvc.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
paths:
|
||||
|
||||
- src/BuildingBlocks/**
|
||||
- src/Web/WebMVC/**
|
||||
- .github/workflows/webmvc.yml
|
||||
|
||||
env:
|
||||
SERVICE: webmvc
|
||||
IMAGE: webmvc
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
90
.github/workflows/webshoppingagg.yml
vendored
Normal file
90
.github/workflows/webshoppingagg.yml
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
name: webshoppingagg
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/ApiGateways/Web.Bff.Shopping/aggregator/**
|
||||
- .github/workflows/webshoppingagg.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/ApiGateways/Web.Bff.Shopping/aggregator/**
|
||||
- .github/workflows/webshoppingagg.yml
|
||||
env:
|
||||
SERVICE: webshoppingagg
|
||||
IMAGE: webshoppingagg
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
92
.github/workflows/webspa.yml
vendored
Normal file
92
.github/workflows/webspa.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: webspa
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Web/WebSPA/**
|
||||
- .github/workflows/webspa.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Web/WebSPA/**
|
||||
- .github/workflows/webspa.yml
|
||||
env:
|
||||
SERVICE: webspa
|
||||
IMAGE: webspa
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
93
.github/workflows/webstatus.yml
vendored
Normal file
93
.github/workflows/webstatus.yml
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
name: webstatus
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Web/WebStatus/**
|
||||
- .github/workflows/webstatus.yml
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
paths:
|
||||
- src/BuildingBlocks/**
|
||||
- src/Web/WebStatus/**
|
||||
- .github/workflows/webstatus.yml
|
||||
|
||||
env:
|
||||
SERVICE: webstatus
|
||||
IMAGE: webstatus
|
||||
|
||||
jobs:
|
||||
|
||||
BuildContainersForPR_Linux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
BuildLinux:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
steps:
|
||||
- name: 'Checkout Github Action'
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Enable experimental features for the Docker daemon and CLI
|
||||
run: |
|
||||
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
|
||||
mkdir -p ~/.docker
|
||||
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
|
||||
sudo service docker restart
|
||||
docker version -f '{{.Client.Experimental}}'
|
||||
docker version -f '{{.Server.Experimental}}'
|
||||
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Set branch name as env variable
|
||||
run: |
|
||||
currentbranch=$(echo ${GITHUB_REF##*/})
|
||||
echo "running on $currentbranch"
|
||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Compose build ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose build ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Compose push ${{ env.SERVICE }}
|
||||
run: sudo -E docker-compose push ${{ env.SERVICE }}
|
||||
working-directory: ./src
|
||||
shell: bash
|
||||
env:
|
||||
TAG: ${{ env.BRANCH }}
|
||||
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
|
||||
- name: Create multiarch manifest
|
||||
run: |
|
||||
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
|
||||
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
|
||||
shell: bash
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,6 +1,10 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
## Local history files
|
||||
.history/
|
||||
.vshistory/
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
This repo is a reference and learning resource and everyone is invited to contribute, however not all PRs will be accepted into the main branch (**`dev`**).
|
||||
|
||||
There's a general development strategy that's driven by @CESARDELATORRE, who chooses, or defines criteria for choosing, the issues to include in the codebase, given a bunch of constraints and other guidelines.
|
||||
There's a general development strategy that's driven by @CESARDELATORRE/@nishanil, who chooses, or defines criteria for choosing, the issues to include in the codebase, given a bunch of constraints and other guidelines.
|
||||
|
||||
However you can always get in touch with him, if you want to implement some general-interest feature in your repo and have it referenced from the [documentation](https://docs.microsoft.com/dotnet/standard/microservices-architecture/) or the [Microservices eBook](https://aka.ms/microservicesebook/).
|
||||
|
||||
@ -47,15 +47,14 @@ All contributions must be submitted as a [Pull Request (PR)](https://help.github
|
||||
The main branches are **`dev`** and **`master`**:
|
||||
|
||||
- **`dev`**: Contains the latest code **and it is the branch actively developed**.
|
||||
**All PRs must be against `dev` branch to be considered**. This branch is developed using .NET Core 2.x
|
||||
**All PRs must be against `dev` branch to be considered**. This branch is developed using `.NET 5`
|
||||
|
||||
- **`master`**: Synced from time to time from **`dev`**. It contains "stable" code.
|
||||
(**Keep in mind "stable" does not mean PRODUCTION-READY!**)
|
||||
- **`main`**: Synced from time to time from **`dev`**. It contains "stable" code.This branch contains changes specific to `.NET Core 3.1` (**Keep in mind "stable" does not mean PRODUCTION-READY!**)
|
||||
|
||||
- Any other branch is considered temporary and could be deleted at any time. Do not submit any PR to them!
|
||||
|
||||
## DISCLAIMER - This is not a PRODUCTION-READY TEMPLATE for microservices
|
||||
eShopOnContainers is a reference application to **showcase architectural patterns** for developing microservices applications on .NET Core. **IT IS NOT A PRODUCTION-READY TEMPLATE** to start real-world application. In fact, the application is in a **permanent beta state**, as it’s also used to test new potentially interesting technologies as they show up.
|
||||
eShopOnContainers is a reference application to **showcase architectural patterns** for developing microservices applications on .NET 5. **IT IS NOT A PRODUCTION-READY TEMPLATE** to start real-world application. In fact, the application is in a **permanent beta state**, as it’s also used to test new potentially interesting technologies as they show up.
|
||||
|
||||
Since this is a learning resource, some design decisions have favored simplicity to convey a pattern, over production-grade robustness.
|
||||
|
||||
|
22
README.md
22
README.md
@ -8,18 +8,16 @@ Sample .NET Core reference application, powered by Microsoft, based on a simplif
|
||||
|
||||

|
||||
|
||||
## Azure DevOps - Build Status
|
||||
## Build Status (GitHub Actions)
|
||||
|
||||
| Image | Status | Image | Status |
|
||||
| ------------- | ------------- | ------------- | ------------- |
|
||||
| Api Gateway (base) | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=201&branchName=dev) | Shopping Aggregator (Web) | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=206&branchName=dev) |
|
||||
| Basket API | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=199&branchName=dev) | Shopping Aggregator (Mobile) | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=204&branchName=dev) |
|
||||
| Catalog API | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=197&branchName=dev) | Web Client (MVC) | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=209&branchName=dev) |
|
||||
|Identity API | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=200&branchName=dev) | Web Client (SPA) | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=210&branchName=dev) |
|
||||
| Location API | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=202&branchName=dev) | Web Status (Health) | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=211&branchName=dev) |
|
||||
| Marketing API | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=203&branchName=dev) | Webhooks API | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=207&branchName=dev) |
|
||||
| Ordering API | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=198&branchName=dev) | Webhooks Client | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=208&branchName=dev) |
|
||||
| Payment API | [](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=205&branchName=dev) | | |
|
||||
| Web Status | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Awebstatus) | Shopping Aggregator (Web) | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Awebshoppingagg) |
|
||||
| Basket API | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Abasket-api) | Shopping Aggregator (Mobile) | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Amobileshoppingagg) |
|
||||
| Catalog API | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Acatalog-api) | Web Client (MVC) | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Awebmvc) |
|
||||
|Identity API | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Aidentity-api) | Web Client (SPA) | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Awebspa) |
|
||||
| Ordering API | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Aordering-api) | Webhooks Client | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Awebhooks-client) |
|
||||
| Payment API | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Apayment-api) | Ordering SignalR | [](https://github.com/dotnet-architecture/eShopOnContainers/actions?query=workflow%3Aordering-signalrhub) | |
|
||||
|
||||
_**Dev** branch contains the latest **beta** code and their images are tagged with `:linux-dev` in our [Docker Hub](https://hub.docker.com/u/eshop)_
|
||||
|
||||
@ -72,9 +70,9 @@ In the future more features will be implemented in the advanced scenario.
|
||||
**NEWS / ANNOUNCEMENTS**
|
||||
Do you want to be up-to-date on .NET Architecture guidance and reference apps like eShopOnContainers? --> Subscribe by "WATCHING" this new GitHub repo: https://github.com/dotnet-architecture/News
|
||||
|
||||
## Updated for .NET Core 3.1 (LTS)
|
||||
## Updated for .NET 5
|
||||
|
||||
eShopOnContainers is updated to .NET Core 3.1 "wave" of technologies. Not just compilation but also new recommended code in EF Core, ASP.NET Core, and other new related versions with several significant changes.
|
||||
eShopOnContainers is updated to .NET 5 "wave" of technologies. Not just compilation but also new recommended code in EF Core, ASP.NET Core, and other new related versions with several significant changes.
|
||||
|
||||
**See more details in the [Release notes](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Release-notes) wiki page**.
|
||||
|
||||
@ -86,7 +84,7 @@ eShopOnContainers is updated to .NET Core 3.1 "wave" of technologies. Not just
|
||||
|
||||
### Architecture overview
|
||||
|
||||
This reference application is cross-platform at the server and client side, thanks to .NET Core services capable of running on Linux or Windows containers depending on your Docker host, and to Xamarin for mobile apps running on Android, iOS or Windows/UWP plus any browser for the client web apps.
|
||||
This reference application is cross-platform at the server and client side, thanks to .NET 5 services capable of running on Linux or Windows containers depending on your Docker host, and to Xamarin for mobile apps running on Android, iOS or Windows/UWP plus any browser for the client web apps.
|
||||
The architecture proposes a microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and implementing different approaches within each microservice (simple CRUD vs. DDD/CQRS patterns) using Http as the communication protocol between the client apps and the microservices and supports asynchronous communication for data updates propagation across multiple services based on Integration Events and an Event Bus (a light message broker, to choose between RabbitMQ or Azure Service Bus, underneath) plus other features defined at the [roadmap](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Roadmap).
|
||||
|
||||

|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
Following are the most important branches:
|
||||
|
||||
- `dev`: Contains the latest code **and it is the branch actively developed**. Note that **all PRs must be against `dev` branch to be considered**. This branch is developed using .NET Core 2.0
|
||||
- `master`: Synced time to time from dev. It contains "stable" code, although not the latest one. We plan to do periodic merges from `dev` to `master`, but we are not doing it right now.
|
||||
- `dev`: Contains the latest code **and it is the branch actively developed**. Note that **all PRs must be against the `dev` branch to be considered**. This branch is developed using `.NET 5`
|
||||
- `main`: Synced time to time from `dev`.It contains "stable" code, although not the latest one. Right now, this branch contains changes specific to `.NET Core 3.1`
|
||||
|
||||
Any other branch is considered temporary and could be deleted at any time. Do not do any PR to them!
|
||||
Any other branch is considered temporary and could be deleted at any time. Do not submit any PR against them!
|
||||
|
||||
Thanks!
|
||||
|
@ -14,12 +14,10 @@ $services = @(
|
||||
@{ Name="eshopidentity"; Image="eshop/identity.api"; File="src/Services/Identity/Identity.API/Dockerfile" },
|
||||
@{ Name="eshopordering"; Image="eshop/ordering.api"; File="src/Services/Ordering/Ordering.API/Dockerfile" },
|
||||
@{ Name="eshoporderingbg"; Image="eshop/ordering.backgroundtasks"; File="src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile" },
|
||||
@{ Name="eshopmarketing"; Image="eshop/marketing.api"; File="src/Services/Marketing/Marketing.API/Dockerfile" },
|
||||
@{ Name="eshopwebspa"; Image="eshop/webspa"; File="src/Web/WebSPA/Dockerfile" },
|
||||
@{ Name="eshopwebmvc"; Image="eshop/webmvc"; File="src/Web/WebMVC/Dockerfile" },
|
||||
@{ Name="eshopwebstatus"; Image="eshop/webstatus"; File="src/Web/WebStatus/Dockerfile" },
|
||||
@{ Name="eshoppayment"; Image="eshop/payment.api"; File="src/Services/Payment/Payment.API/Dockerfile" },
|
||||
@{ Name="eshoplocations"; Image="eshop/locations.api"; File="src/Services/Location/Locations.API/Dockerfile" },
|
||||
@{ Name="eshopocelotapigw"; Image="eshop/ocelotapigw"; File="src/ApiGateways/ApiGw-Base/Dockerfile" },
|
||||
@{ Name="eshopmobileshoppingagg"; Image="eshop/mobileshoppingagg"; File="src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile" },
|
||||
@{ Name="eshopwebshoppingagg"; Image="eshop/webshoppingagg"; File="src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile" },
|
||||
|
@ -1,32 +0,0 @@
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/ApiGateways/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/apigws/*
|
||||
- deploy/k8s/helm/apigwmm/*
|
||||
- deploy/k8s/helm/apigwms/*
|
||||
- deploy/k8s/helm/apigwwm/*
|
||||
- deploy/k8s/helm/apigwws/*
|
||||
exclude:
|
||||
- src/ApiGateways/Mobile.Bff.Shopping/aggregator/*
|
||||
- src/ApiGateways/Web.Bff.Shopping/aggregator/*
|
||||
jobs:
|
||||
- job: PublishCharts
|
||||
condition: ne('$(Build.Reason)', 'PullRequest')
|
||||
pool:
|
||||
vmImage: 'ubuntu-16.04'
|
||||
steps:
|
||||
- task: CopyFiles@2
|
||||
inputs:
|
||||
sourceFolder: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
targetFolder: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- task: PublishBuildArtifacts@1
|
||||
inputs:
|
||||
pathtoPublish: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
artifactName: helm
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Services/Basket/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/basket-api/*
|
||||
- deploy/k8s/helm/basket-api/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: basket-api
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: basket.api
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,94 +0,0 @@
|
||||
parameters:
|
||||
services: ''
|
||||
registryEndpoint: ''
|
||||
helmfrom: ''
|
||||
helmto: ''
|
||||
|
||||
jobs:
|
||||
- job: BuildContainersForPR_Linux
|
||||
condition: eq('${{ variables['Build.Reason'] }}', 'PullRequest')
|
||||
pool:
|
||||
vmImage: 'ubuntu-16.04'
|
||||
steps:
|
||||
- bash: docker-compose -f src/docker-compose.yml build ${{ parameters.services }}
|
||||
displayName: Compose build ${{ parameters.services }}
|
||||
env:
|
||||
TAG: ${{ variables['Build.SourceBranchName'] }}
|
||||
- job: BuildContainersForPR_Windows
|
||||
condition: False
|
||||
# condition: eq('${{ variables['Build.Reason'] }}', 'PullRequest')
|
||||
pool:
|
||||
vmImage: 'windows-2019'
|
||||
steps:
|
||||
- bash: docker-compose f src/docker-compose.yml build ${{ parameters.services }}
|
||||
displayName: Compose build ${{ parameters.services }}
|
||||
env:
|
||||
TAG: ${{ variables['Build.SourceBranchName'] }}
|
||||
PLATFORM: win
|
||||
NODE_IMAGE: stefanscherer/node-windows:10
|
||||
- job: BuildLinux
|
||||
condition: ne('${{ variables['Build.Reason'] }}', 'PullRequest')
|
||||
pool:
|
||||
vmImage: 'ubuntu-16.04'
|
||||
steps:
|
||||
- task: DockerCompose@0
|
||||
displayName: Compose build ${{ parameters.services }}
|
||||
inputs:
|
||||
dockerComposeCommand: 'build ${{ parameters.services }}'
|
||||
containerregistrytype: Container Registry
|
||||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
|
||||
dockerComposeFile: src/docker-compose.yml
|
||||
qualifyImageNames: true
|
||||
projectName: ""
|
||||
dockerComposeFileArgs: |
|
||||
TAG=${{ variables['Build.SourceBranchName'] }}
|
||||
- task: DockerCompose@0
|
||||
displayName: Compose push ${{ parameters.images }}
|
||||
inputs:
|
||||
dockerComposeCommand: 'push ${{ parameters.services }}'
|
||||
containerregistrytype: Container Registry
|
||||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
|
||||
dockerComposeFile: src/docker-compose.yml
|
||||
qualifyImageNames: true
|
||||
projectName: ""
|
||||
dockerComposeFileArgs: |
|
||||
TAG=${{ variables['Build.SourceBranchName'] }}
|
||||
- task: CopyFiles@2
|
||||
inputs:
|
||||
sourceFolder: ${{ parameters.helmfrom }}
|
||||
targetFolder: ${{ parameters.helmto }}
|
||||
- task: PublishBuildArtifacts@1
|
||||
inputs:
|
||||
pathtoPublish: ${{ parameters.helmto }}
|
||||
artifactName: helm
|
||||
- job: BuildWindows
|
||||
condition: False
|
||||
# condition: ne('${{ variables['Build.Reason'] }}', 'PullRequest')
|
||||
pool:
|
||||
vmImage: 'windows-2019'
|
||||
steps:
|
||||
- task: DockerCompose@0
|
||||
displayName: Compose build ${{ parameters.services }}
|
||||
inputs:
|
||||
dockerComposeCommand: 'build ${{ parameters.services }}'
|
||||
containerregistrytype: Container Registry
|
||||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
|
||||
dockerComposeFile: src/docker-compose.yml
|
||||
qualifyImageNames: true
|
||||
projectName: ""
|
||||
dockerComposeFileArgs: |
|
||||
TAG=${{ variables['Build.SourceBranchName'] }}
|
||||
PLATFORM=win
|
||||
NODE_IMAGE=stefanscherer/node-windows:10
|
||||
- task: DockerCompose@0
|
||||
displayName: Compose push ${{ parameters.services }}
|
||||
inputs:
|
||||
dockerComposeCommand: 'push ${{ parameters.services }}'
|
||||
containerregistrytype: Container Registry
|
||||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
|
||||
dockerComposeFile: src/docker-compose.yml
|
||||
qualifyImageNames: true
|
||||
projectName: ""
|
||||
dockerComposeFileArgs: |
|
||||
TAG=${{ variables['Build.SourceBranchName'] }}
|
||||
PLATFORM=win
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Services/Catalog/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/catalog-api/*
|
||||
- deploy/k8s/helm/catalog-api/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: catalog-api
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: catalog.api
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Services/Identity/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/identity-api/*
|
||||
- deploy/k8s/helm/identity-api/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: identity-api
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: identity.api
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,28 +0,0 @@
|
||||
pool:
|
||||
vmImage: 'ubuntu-16.04'
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/infrastructure/*
|
||||
- deploy/k8s/helm/basket-data/*
|
||||
- deploy/k8s/helm/keystore-data/*
|
||||
- deploy/k8s/helm/nosql-data/*
|
||||
- deploy/k8s/helm/rabbitmq/*
|
||||
- deploy/k8s/helm/sql-data/*
|
||||
steps:
|
||||
- task: CopyFiles@2
|
||||
inputs:
|
||||
sourceFolder: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
targetFolder: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- task: PublishBuildArtifacts@1
|
||||
inputs:
|
||||
pathtoPublish: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
artifactName: helm
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Services/Location/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/location-api/*
|
||||
- deploy/k8s/helm/locations-api/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: locations-api
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: locations.api
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Services/Marketing/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/marketing-api/*
|
||||
- deploy/k8s/helm/marketing-api/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: marketing-api
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: marketing.api
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/ApiGateways/Mobile.Bff.Shopping/aggregator/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/mobile-shopping-agg/*
|
||||
- deploy/k8s/helm/mobileshoppingagg/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: mobileshoppingagg
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: mobileshoppingagg
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
|
@ -1,33 +0,0 @@
|
||||
parameters:
|
||||
image: ''
|
||||
branch: ''
|
||||
registry: 'eshop'
|
||||
registryEndpoint: ''
|
||||
|
||||
jobs:
|
||||
- job: manifest
|
||||
condition: and(succeeded(),ne('${{ variables['Build.Reason'] }}', 'PullRequest'))
|
||||
dependsOn:
|
||||
# - BuildWindows
|
||||
- BuildLinux
|
||||
pool:
|
||||
vmImage: 'Ubuntu 16.04'
|
||||
steps:
|
||||
- task: Docker@1
|
||||
displayName: Docker Login
|
||||
inputs:
|
||||
command: login
|
||||
containerregistrytype: 'Container Registry'
|
||||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
|
||||
# Disabled windows deploy
|
||||
# docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:${{ parameters.branch }} ${{ parameters.registry }}/${{ parameters.image }}:linux-${{ parameters.branch }} ${{ parameters.registry }}/${{ parameters.image }}:win-${{ parameters.branch }}
|
||||
# docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:latest ${{ parameters.registry }}/${{ parameters.image }}:linux-latest ${{ parameters.registry }}/${{ parameters.image }}:win-latest
|
||||
- bash: |
|
||||
mkdir -p ~/.docker
|
||||
sed '$ s/.$//' $DOCKER_CONFIG/config.json > ~/.docker/config.json
|
||||
echo ',"experimental": "enabled" }' >> ~/.docker/config.json
|
||||
docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:${{ parameters.branch }} ${{ parameters.registry }}/${{ parameters.image }}:linux-${{ parameters.branch }}
|
||||
docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:latest ${{ parameters.registry }}/${{ parameters.image }}:linux-latest
|
||||
docker --config ~/.docker manifest push ${{ parameters.registry }}/${{ parameters.image }}:${{ parameters.branch }}
|
||||
docker --config ~/.docker manifest push ${{ parameters.registry }}/${{ parameters.image }}:latest
|
||||
displayName: Create multiarch manifest
|
@ -1,29 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Services/Ordering/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/ordering-api/*
|
||||
- deploy/k8s/helm/ordering-api/*
|
||||
- deploy/k8s/helm/ordering-backgroundtasks/*
|
||||
- deploy/k8s/helm/ordering-signalrhub/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: ordering-api
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: ordering.api
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Services/Payment/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/payment-api/*
|
||||
- deploy/k8s/helm/payment-api/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: payment-api
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: payment.api
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,5 +0,0 @@
|
||||
# Azure DevOps build definitions
|
||||
|
||||
This folder contains the Azure DevOps build definitions in YAML format. Each folder contains one `azure-pipelines.yml` that contains the build definition for one microservice (usually a Docker image, but some microservices generates more than one Docker image).
|
||||
|
||||
For more information about YAML builds read the [Azure DevOps documentation](https://docs.microsoft.com/azure/devops/pipelines/get-started-yaml?view=azure-devops).
|
@ -1,26 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/ApiGateways/Web.Bff.Shopping/aggregator/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/web-shopping-agg/*
|
||||
- deploy/k8s/helm/webshoppingagg/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: webshoppingagg
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: webshoppingagg
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Services/Webhooks/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/webhooks-api/*
|
||||
- deploy/k8s/helm/webhooks-api/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: webhooks-api
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: webhooks.api
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Web/WebhookClient/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/webhooks-client/*
|
||||
- deploy/k8s/helm/webhooks-web/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: webhooks-client
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: webhooks.client
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Web/WebMVC/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/webmvc/*
|
||||
- deploy/k8s/helm/webmvc/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: webmvc
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: webmvc
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Web/WebSPA/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/webspa/*
|
||||
- deploy/k8s/helm/webspa/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: webspa
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: webspa
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -1,27 +0,0 @@
|
||||
variables:
|
||||
registryEndpoint: eshop-registry
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- dev
|
||||
paths:
|
||||
include:
|
||||
- src/BuildingBlocks/*
|
||||
- src/Web/WebStatus/*
|
||||
- build/azure-devops/buildimages.yml
|
||||
- build/azure-devops/multiarch.yml
|
||||
- build/azure-devops/webstatus/*
|
||||
- deploy/k8s/helm/webstatus/*
|
||||
jobs:
|
||||
- template: ../buildimages.yaml
|
||||
parameters:
|
||||
services: webstatus
|
||||
registryEndpoint: $(registryEndpoint)
|
||||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm
|
||||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm
|
||||
- template: ../multiarch.yaml
|
||||
parameters:
|
||||
image: webstatus
|
||||
branch: $(Build.SourceBranchName)
|
||||
registryEndpoint: $(registryEndpoint)
|
@ -12,7 +12,7 @@ Write-Host "Tags used are linux-master, win-master, linux-dev, win-dev, linux-la
|
||||
Write-Host "Multiarch images tags will be master, dev, latest" -ForegroundColor Yellow
|
||||
|
||||
|
||||
$services = "identity.api", "basket.api", "catalog.api", "ordering.api", "ordering.backgroundtasks", "marketing.api", "payment.api", "locations.api", "webhooks.api", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub", "webstatus", "webspa", "webmvc", "webhooks.client"
|
||||
$services = "identity.api", "basket.api", "catalog.api", "ordering.api", "ordering.backgroundtasks", "payment.api", "webhooks.api", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub", "webstatus", "webspa", "webmvc", "webhooks.client"
|
||||
|
||||
foreach ($svc in $services) {
|
||||
Write-Host "Creating manifest for $svc and tags :latest, :master, and :dev"
|
||||
|
@ -14,8 +14,6 @@
|
||||
"BasketSubscriptionName": "Basket",
|
||||
"CatalogSubscriptionName": "Catalog",
|
||||
"OrderingSubscriptionName": "Ordering",
|
||||
"LocationsSubscriptionName": "Locations",
|
||||
"MarketingSubscriptionName": "Marketing",
|
||||
"GracePeriodSubscriptionName": "GracePeriod",
|
||||
"PaymentSubscriptionName": "Payment",
|
||||
"location": "[resourceGroup().location]",
|
||||
@ -135,46 +133,6 @@
|
||||
"entityAvailabilityStatus": "Available"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion": "[variables('sbVersion')]",
|
||||
"name": "[variables('LocationsSubscriptionName')]",
|
||||
"type": "Subscriptions",
|
||||
"dependsOn": [
|
||||
"[variables('serviceBusTopicName')]"
|
||||
],
|
||||
"properties": {
|
||||
"lockDuration": "00:00:30",
|
||||
"requiresSession": false,
|
||||
"defaultMessageTimeToLive": "14.00:00:00",
|
||||
"deadLetteringOnMessageExpiration": true,
|
||||
"deadLetteringOnFilterEvaluationExceptions": true,
|
||||
"maxDeliveryCount": 10,
|
||||
"enableBatchedOperations": false,
|
||||
"status": "Active",
|
||||
"autoDeleteOnIdle": "10675199.02:48:05.4775807",
|
||||
"entityAvailabilityStatus": "Available"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion": "[variables('sbVersion')]",
|
||||
"name": "[variables('MarketingSubscriptionName')]",
|
||||
"type": "Subscriptions",
|
||||
"dependsOn": [
|
||||
"[variables('serviceBusTopicName')]"
|
||||
],
|
||||
"properties": {
|
||||
"lockDuration": "00:00:30",
|
||||
"requiresSession": false,
|
||||
"defaultMessageTimeToLive": "14.00:00:00",
|
||||
"deadLetteringOnMessageExpiration": true,
|
||||
"deadLetteringOnFilterEvaluationExceptions": true,
|
||||
"maxDeliveryCount": 10,
|
||||
"enableBatchedOperations": false,
|
||||
"status": "Active",
|
||||
"autoDeleteOnIdle": "10675199.02:48:05.4775807",
|
||||
"entityAvailabilityStatus": "Available"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion": "[variables('sbVersion')]",
|
||||
"name": "[variables('GracePeriodSubscriptionName')]",
|
||||
|
@ -73,22 +73,7 @@
|
||||
"dependsOn": [
|
||||
"[concat('Microsoft.Sql/servers/', variables('sql_server_name'))]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "databases",
|
||||
"name": "[parameters('sql_server').dbs.marketing]",
|
||||
"apiVersion": "2014-04-01-preview",
|
||||
"location": "[resourceGroup().location]",
|
||||
"properties": {
|
||||
"edition": "Standard",
|
||||
"collation": "SQL_Latin1_General_CP1_CI_AS",
|
||||
"maxSizeBytes": "1073741824",
|
||||
"requestedServiceObjectiveName": "S1"
|
||||
},
|
||||
"dependsOn": [
|
||||
"[concat('Microsoft.Sql/servers/', variables('sql_server_name'))]"
|
||||
]
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "firewallrules",
|
||||
"name": "AllowAllWindowsAzureIps",
|
||||
|
@ -8,8 +8,7 @@
|
||||
"dbs": {
|
||||
"ordering": "orderingdb",
|
||||
"identity": "identitydb",
|
||||
"catalog": "catalogdb",
|
||||
"marketing": "marketingdb"
|
||||
"catalog": "catalogdb"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1,94 +0,0 @@
|
||||
{
|
||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"marketingstorage": {
|
||||
"type": "string"
|
||||
},
|
||||
"profileName" : {
|
||||
"type": "string"
|
||||
},
|
||||
"endpointName" : {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"variables": {
|
||||
"marketingstorage": "[concat(parameters('marketingstorage'), uniqueString(resourceGroup().id))]",
|
||||
"endpointName": "[concat(parameters('endpointName'), uniqueString(resourceGroup().id))]",
|
||||
"profileName": "[parameters('profileName')]"
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"type": "Microsoft.Storage/storageAccounts",
|
||||
"name": "[variables('marketingstorage')]",
|
||||
"apiVersion": "2016-01-01",
|
||||
"location": "[resourceGroup().location]",
|
||||
"tags": {
|
||||
"displayName": "[variables('marketingstorage')]"
|
||||
},
|
||||
"sku": {
|
||||
"name": "Standard_LRS"
|
||||
},
|
||||
"kind": "Storage"
|
||||
},
|
||||
{
|
||||
"name": "[variables('profileName')]",
|
||||
"type": "Microsoft.Cdn/profiles",
|
||||
"location": "[resourceGroup().location]",
|
||||
"apiVersion": "2016-04-02",
|
||||
"tags": {
|
||||
"displayName": "[variables('profileName')]"
|
||||
},
|
||||
"sku": {
|
||||
"name": "Standard_Verizon"
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"apiVersion": "2016-04-02",
|
||||
"name": "[variables('endpointName')]",
|
||||
"type": "endpoints",
|
||||
"dependsOn": [
|
||||
"[variables('profileName')]",
|
||||
"[variables('marketingstorage')]"
|
||||
],
|
||||
"location": "[resourceGroup().location]",
|
||||
"tags": {
|
||||
"displayName": "[variables('endpointName')]"
|
||||
},
|
||||
"properties": {
|
||||
"originHostHeader": "[replace(replace(reference(resourceId('Microsoft.Storage/storageAccounts', variables('marketingstorage')),'2015-06-15' ).primaryEndpoints.blob,'https://',''),'/','')]",
|
||||
"isHttpAllowed": true,
|
||||
"isHttpsAllowed": true,
|
||||
"queryStringCachingBehavior": "IgnoreQueryString",
|
||||
"contentTypesToCompress": [
|
||||
"text/plain",
|
||||
"text/html",
|
||||
"text/css",
|
||||
"application/x-javascript",
|
||||
"text/javascript"
|
||||
],
|
||||
"isCompressionEnabled": "True",
|
||||
"origins": [
|
||||
{
|
||||
"name": "origin1",
|
||||
"properties": {
|
||||
"hostName": "[replace(replace(reference(resourceId('Microsoft.Storage/storageAccounts', variables('marketingstorage')),'2015-06-15' ).primaryEndpoints.blob,'https://',''),'/','')]"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outputs": {
|
||||
"hostName": {
|
||||
"type": "string",
|
||||
"value": "[reference(resourceId('Microsoft.cdn/profiles/endpoints', variables('profileName'), variables('endpointName'))).hostName]"
|
||||
},
|
||||
"originHostHeader": {
|
||||
"type": "string",
|
||||
"value": "[reference(resourceId('Microsoft.cdn/profiles/endpoints', variables('profileName'), variables('endpointName'))).originHostHeader]"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
{
|
||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"marketingstorage": {
|
||||
"value": "marketing"
|
||||
},
|
||||
"profileName":{
|
||||
"value": "eshopmarketing"
|
||||
},
|
||||
"endpointName":{
|
||||
"value": "marketing-endpoint"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
# Deploying Marketing Storage
|
||||
|
||||
The ARM template `deploystorage.json` and its parameter file (`deploystorage.parameters.json`) are used to deploy following resources:
|
||||
|
||||
1. One Storage Account
|
||||
2. One CDN profile
|
||||
3. One Endpoint
|
||||
|
||||
## Editing deploystorage.parameters.json file
|
||||
|
||||
You can edit the `deploystorage.parameters.json` file to set your values, but is not needed. The only parameters that can
|
||||
be set are:
|
||||
|
||||
1. `marketingstorage` is a string that is used to create the storage account name. ARM script creates unique values by appending a unique string to this parameter value, so you can leave the default value.
|
||||
|
||||
2. `profileName` is a string that is used to create the CDN profile name.
|
||||
|
||||
3. `endpointName` is a string that is used to create the storage endpoint name. ARM script creates unique values by appending a unique string to this parameter value, so you can leave the default value.
|
||||
|
||||
## Deploy the template
|
||||
|
||||
Once parameter file is edited you can deploy it using [create-resources script](../../readme.md).
|
||||
|
||||
i. e. if you are in windows, to deploy a Storage account in a new resourcegroup located in westus, go to `deploy\az` folder and type:
|
||||
|
||||
```
|
||||
create-resources.cmd storage\marketing\deploystorage newResourceGroup -c westus
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -22,8 +22,6 @@ Using `docker-machine` is the recommended way to create a VM with docker install
|
||||
3. [Deploying Redis Cache](az/redis/readme.md)
|
||||
4. [Deploying Cosmosdb](az/cosmos/readme.md)
|
||||
5. [Deploying Catalog Storage](az/storage/catalog/readme.md)
|
||||
6. [Deploying Marketing Storage](az/storage/marketing/readme.md)
|
||||
7. [Deploying Marketing Azure functions](az/azurefunctions/readme.md)
|
||||
|
||||
|
||||
|
||||
|
@ -1,21 +0,0 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
@ -1,5 +0,0 @@
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
name: apigwmm
|
||||
version: 0.1.0
|
@ -1,75 +0,0 @@
|
||||
admin:
|
||||
access_log_path: "/dev/null"
|
||||
address:
|
||||
socket_address:
|
||||
address: 0.0.0.0
|
||||
port_value: 8001
|
||||
static_resources:
|
||||
listeners:
|
||||
- address:
|
||||
socket_address:
|
||||
address: 0.0.0.0
|
||||
port_value: 80
|
||||
filter_chains:
|
||||
- filters:
|
||||
- name: envoy.http_connection_manager
|
||||
config:
|
||||
codec_type: auto
|
||||
stat_prefix: ingress_http
|
||||
route_config:
|
||||
name: eshop_backend_route
|
||||
virtual_hosts:
|
||||
- name: eshop_backend
|
||||
domains:
|
||||
- "*"
|
||||
routes:
|
||||
- name: "m-short"
|
||||
match:
|
||||
prefix: "/m/"
|
||||
route:
|
||||
auto_host_rewrite: true
|
||||
prefix_rewrite: "/marketing-api/"
|
||||
cluster: marketing
|
||||
- name: "m-long"
|
||||
match:
|
||||
prefix: "/marketing-api/"
|
||||
route:
|
||||
auto_host_rewrite: true
|
||||
cluster: marketing
|
||||
http_filters:
|
||||
- name: envoy.router
|
||||
access_log:
|
||||
- name: envoy.file_access_log
|
||||
filter:
|
||||
not_health_check_filter: {}
|
||||
config:
|
||||
json_format:
|
||||
time: "%START_TIME%"
|
||||
protocol: "%PROTOCOL%"
|
||||
duration: "%DURATION%"
|
||||
request_method: "%REQ(:METHOD)%"
|
||||
request_host: "%REQ(HOST)%"
|
||||
path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%"
|
||||
response_flags: "%RESPONSE_FLAGS%"
|
||||
route_name: "%ROUTE_NAME%"
|
||||
upstream_host: "%UPSTREAM_HOST%"
|
||||
upstream_cluster: "%UPSTREAM_CLUSTER%"
|
||||
upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%"
|
||||
path: "/tmp/access.log"
|
||||
clusters:
|
||||
- name: marketing
|
||||
connect_timeout: 0.25s
|
||||
type: logical_dns
|
||||
lb_policy: round_robin
|
||||
hosts:
|
||||
- socket_address:
|
||||
address: marketing-api
|
||||
port_value: 80
|
||||
- name: locations
|
||||
connect_timeout: 0.25s
|
||||
type: logical_dns
|
||||
lb_policy: round_robin
|
||||
hosts:
|
||||
- socket_address:
|
||||
address: locations-api
|
||||
port_value: 80
|
@ -1,2 +0,0 @@
|
||||
eShop API Gateway for Mobile Marketing services installed
|
||||
----------------------------------------------------------
|
@ -1,32 +0,0 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "apigwmm.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "apigwmm.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "apigwmm.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
@ -1,52 +0,0 @@
|
||||
{{- define "suffix-name" -}}
|
||||
{{- if .Values.app.name -}}
|
||||
{{- .Values.app.name -}}
|
||||
{{- else -}}
|
||||
{{- .Release.Name -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "sql-name" -}}
|
||||
{{- if .Values.inf.sql.host -}}
|
||||
{{- .Values.inf.sql.host -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "sql-data" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mongo-name" -}}
|
||||
{{- if .Values.inf.mongo.host -}}
|
||||
{{- .Values.inf.mongo.host -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "nosql-data" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "url-of" -}}
|
||||
{{- $name := first .}}
|
||||
{{- $ctx := last .}}
|
||||
{{- if eq $name "" -}}
|
||||
{{- $ctx.Values.inf.k8s.dns -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s" $ctx.Values.inf.k8s.dns $name -}} {{/*Value is just <dns>/<name> */}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
|
||||
{{- define "pathBase" -}}
|
||||
{{- if .Values.inf.k8s.suffix -}}
|
||||
{{- $suffix := include "suffix-name" . -}}
|
||||
{{- printf "%s-%s" .Values.pathBase $suffix -}}
|
||||
{{- else -}}
|
||||
{{- .Values.pathBase -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "fqdn-image" -}}
|
||||
{{- if .Values.inf.registry -}}
|
||||
{{- printf "%s/%s" .Values.inf.registry.server .Values.image.repository -}}
|
||||
{{- else -}}
|
||||
{{- .Values.image.repository -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@ -1,110 +0,0 @@
|
||||
{{- $name := include "apigwmm.fullname" . -}}
|
||||
{{- $cfgname := printf "%s-%s" "cfg" $name -}}
|
||||
{{- $envoycfgname := printf "%s-%s" "envoy" $name -}}
|
||||
apiVersion: apps/v1beta2
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "apigwmm.fullname" . }}
|
||||
labels:
|
||||
ufo: {{ $cfgname}}
|
||||
app: {{ template "apigwmm.name" . }}
|
||||
chart: {{ template "apigwmm.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "apigwmm.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "apigwmm.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
{{ if .Values.inf.mesh.enabled -}}
|
||||
annotations:
|
||||
linkerd.io/inject: enabled
|
||||
{{- end }}
|
||||
spec:
|
||||
{{ if .Values.inf.registry -}}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.inf.registry.secretName }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: {{ $envoycfgname }}
|
||||
items:
|
||||
- key: envoy.yaml
|
||||
path: envoy.yaml
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
{{ if .Values.probes -}}
|
||||
{{- if .Values.probes.liveness -}}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
port: {{ .Values.probes.liveness.port }}
|
||||
path: {{ .Values.probes.liveness.path }}
|
||||
initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.probes.liveness.periodSeconds }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.probes -}}
|
||||
{{- if .Values.probes.readiness }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
port: {{ .Values.probes.readiness.port }}
|
||||
path: {{ .Values.probes.readiness.path }}
|
||||
initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.probes.readiness.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
image: "{{ template "fqdn-image" . }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: IfNotPresent
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: {{ .Values.envoy.configPath }}
|
||||
env:
|
||||
- name: PATH_BASE
|
||||
value: {{ include "pathBase" . }}
|
||||
- name: k8sname
|
||||
value: {{ .Values.clusterName }}
|
||||
{{- if .Values.env.values -}}
|
||||
{{- range .Values.env.values }}
|
||||
- name: {{ .name }}
|
||||
value: {{ .value | quote }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.env.configmap -}}
|
||||
{{- range .Values.env.configmap }}
|
||||
- name: {{ .name }}
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: {{ $cfgname }}
|
||||
key: {{ .key }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
- name: admin
|
||||
containerPort: 8001
|
||||
protocol: TCP
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 12 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
|
@ -1,14 +0,0 @@
|
||||
{{- $name := include "apigwmm.fullname" . -}}
|
||||
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: "envoy-{{ $name }}"
|
||||
labels:
|
||||
app: {{ template "apigwmm.name" . }}
|
||||
chart: {{ template "apigwmm.chart" .}}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
data:
|
||||
{{ (.Files.Glob "envoy.yaml").AsConfig | indent 2 }}
|
||||
|
@ -1,46 +0,0 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $ingressPath := include "pathBase" . -}}
|
||||
{{- $serviceName := .Values.app.svc.mobilemarketingapigw -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ template "apigwmm.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "apigwmm.name" . }}
|
||||
chart: {{ template "apigwmm.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if and .Values.inf.tls.enabled .Values.inf.tls.issuer }}
|
||||
cert-manager.io/issuer: {{ .Values.inf.tls.issuer }}
|
||||
{{- end }}
|
||||
{{- if .Values.inf.mesh.enabled }}
|
||||
{{- with .Values.ingress.mesh.annotations }}
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ . }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ $ingressPath }}
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: http
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -1,23 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ .Values.app.svc.mobilemarketingapigw }}
|
||||
labels:
|
||||
app: {{ template "apigwmm.name" . }}
|
||||
chart: {{ template "apigwmm.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
- port: {{ .Values.service.adminPort }}
|
||||
targetPort: admin
|
||||
protocol: TCP
|
||||
name: admin
|
||||
selector:
|
||||
app: {{ template "apigwmm.name" . }}
|
||||
release: {{ .Release.Name }}
|
@ -1,45 +0,0 @@
|
||||
replicaCount: 1
|
||||
clusterName: eshop-aks
|
||||
pathBase: /mobilemarketingapigw
|
||||
|
||||
image:
|
||||
repository: envoyproxy/envoy
|
||||
tag: v1.11.1
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
adminPort: 8001
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/rewrite-target: "/"
|
||||
ingress.kubernetes.io/rewrite-target: "/"
|
||||
tls: []
|
||||
|
||||
resources: {}
|
||||
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
env: {}
|
||||
|
||||
envoy:
|
||||
configPath: /etc/envoy
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
path: /ready
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 15
|
||||
port: 8001
|
||||
readiness:
|
||||
path: /ready
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 60
|
||||
port: 8001
|
@ -1,21 +0,0 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
@ -1,5 +0,0 @@
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
name: apigwwm
|
||||
version: 0.1.0
|
@ -1,75 +0,0 @@
|
||||
admin:
|
||||
access_log_path: "/dev/null"
|
||||
address:
|
||||
socket_address:
|
||||
address: 0.0.0.0
|
||||
port_value: 8001
|
||||
static_resources:
|
||||
listeners:
|
||||
- address:
|
||||
socket_address:
|
||||
address: 0.0.0.0
|
||||
port_value: 80
|
||||
filter_chains:
|
||||
- filters:
|
||||
- name: envoy.http_connection_manager
|
||||
config:
|
||||
codec_type: auto
|
||||
stat_prefix: ingress_http
|
||||
route_config:
|
||||
name: eshop_backend_route
|
||||
virtual_hosts:
|
||||
- name: eshop_backend
|
||||
domains:
|
||||
- "*"
|
||||
routes:
|
||||
- name: "m-short"
|
||||
match:
|
||||
prefix: "/m/"
|
||||
route:
|
||||
auto_host_rewrite: true
|
||||
prefix_rewrite: "/marketing-api/"
|
||||
cluster: marketing
|
||||
- name: "m-long"
|
||||
match:
|
||||
prefix: "/marketing-api/"
|
||||
route:
|
||||
auto_host_rewrite: true
|
||||
cluster: marketing
|
||||
http_filters:
|
||||
- name: envoy.router
|
||||
access_log:
|
||||
- name: envoy.file_access_log
|
||||
filter:
|
||||
not_health_check_filter: {}
|
||||
config:
|
||||
json_format:
|
||||
time: "%START_TIME%"
|
||||
protocol: "%PROTOCOL%"
|
||||
duration: "%DURATION%"
|
||||
request_method: "%REQ(:METHOD)%"
|
||||
request_host: "%REQ(HOST)%"
|
||||
path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%"
|
||||
response_flags: "%RESPONSE_FLAGS%"
|
||||
route_name: "%ROUTE_NAME%"
|
||||
upstream_host: "%UPSTREAM_HOST%"
|
||||
upstream_cluster: "%UPSTREAM_CLUSTER%"
|
||||
upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%"
|
||||
path: "/tmp/access.log"
|
||||
clusters:
|
||||
- name: marketing
|
||||
connect_timeout: 0.25s
|
||||
type: strict_dns
|
||||
lb_policy: round_robin
|
||||
hosts:
|
||||
- socket_address:
|
||||
address: marketing-api
|
||||
port_value: 80
|
||||
- name: locations
|
||||
connect_timeout: 0.25s
|
||||
type: strict_dns
|
||||
lb_policy: round_robin
|
||||
hosts:
|
||||
- socket_address:
|
||||
address: locations-api
|
||||
port_value: 80
|
@ -1,2 +0,0 @@
|
||||
eShop API Gateway for Web Marketing services installed
|
||||
------------------------------------------------------
|
@ -1,32 +0,0 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "apigwwm.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "apigwwm.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "apigwwm.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
@ -1,52 +0,0 @@
|
||||
{{- define "suffix-name" -}}
|
||||
{{- if .Values.app.name -}}
|
||||
{{- .Values.app.name -}}
|
||||
{{- else -}}
|
||||
{{- .Release.Name -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "sql-name" -}}
|
||||
{{- if .Values.inf.sql.host -}}
|
||||
{{- .Values.inf.sql.host -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "sql-data" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mongo-name" -}}
|
||||
{{- if .Values.inf.mongo.host -}}
|
||||
{{- .Values.inf.mongo.host -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "nosql-data" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "url-of" -}}
|
||||
{{- $name := first .}}
|
||||
{{- $ctx := last .}}
|
||||
{{- if eq $name "" -}}
|
||||
{{- $ctx.Values.inf.k8s.dns -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s" $ctx.Values.inf.k8s.dns $name -}} {{/*Value is just <dns>/<name> */}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
|
||||
{{- define "pathBase" -}}
|
||||
{{- if .Values.inf.k8s.suffix -}}
|
||||
{{- $suffix := include "suffix-name" . -}}
|
||||
{{- printf "%s-%s" .Values.pathBase $suffix -}}
|
||||
{{- else -}}
|
||||
{{- .Values.pathBase -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "fqdn-image" -}}
|
||||
{{- if .Values.inf.registry -}}
|
||||
{{- printf "%s/%s" .Values.inf.registry.server .Values.image.repository -}}
|
||||
{{- else -}}
|
||||
{{- .Values.image.repository -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@ -1,110 +0,0 @@
|
||||
{{- $name := include "apigwwm.fullname" . -}}
|
||||
{{- $cfgname := printf "%s-%s" "cfg" $name -}}
|
||||
{{- $envoycfgname := printf "%s-%s" "envoy" $name -}}
|
||||
apiVersion: apps/v1beta2
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "apigwwm.fullname" . }}
|
||||
labels:
|
||||
ufo: {{ $cfgname}}
|
||||
app: {{ template "apigwwm.name" . }}
|
||||
chart: {{ template "apigwwm.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "apigwwm.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "apigwwm.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
{{ if .Values.inf.mesh.enabled -}}
|
||||
annotations:
|
||||
linkerd.io/inject: enabled
|
||||
{{- end }}
|
||||
spec:
|
||||
{{ if .Values.inf.registry -}}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.inf.registry.secretName }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: {{ $envoycfgname }}
|
||||
items:
|
||||
- key: envoy.yaml
|
||||
path: envoy.yaml
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
{{ if .Values.probes -}}
|
||||
{{- if .Values.probes.liveness -}}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
port: {{ .Values.probes.liveness.port }}
|
||||
path: {{ .Values.probes.liveness.path }}
|
||||
initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.probes.liveness.periodSeconds }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.probes -}}
|
||||
{{- if .Values.probes.readiness }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
port: {{ .Values.probes.readiness.port }}
|
||||
path: {{ .Values.probes.readiness.path }}
|
||||
initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.probes.readiness.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
image: "{{ template "fqdn-image" . }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: IfNotPresent
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: {{ .Values.envoy.configPath }}
|
||||
env:
|
||||
- name: PATH_BASE
|
||||
value: {{ include "pathBase" . }}
|
||||
- name: k8sname
|
||||
value: {{ .Values.clusterName }}
|
||||
{{- if .Values.env.values -}}
|
||||
{{- range .Values.env.values }}
|
||||
- name: {{ .name }}
|
||||
value: {{ .value | quote }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.env.configmap -}}
|
||||
{{- range .Values.env.configmap }}
|
||||
- name: {{ .name }}
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: {{ $cfgname }}
|
||||
key: {{ .key }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
- name: admin
|
||||
containerPort: 8001
|
||||
protocol: TCP
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 12 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
|
@ -1,14 +0,0 @@
|
||||
{{- $name := include "apigwwm.fullname" . -}}
|
||||
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: "envoy-{{ $name }}"
|
||||
labels:
|
||||
app: {{ template "apigwwm.name" . }}
|
||||
chart: {{ template "apigwwm.chart" .}}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
data:
|
||||
{{ (.Files.Glob "envoy.yaml").AsConfig | indent 2 -}}
|
||||
|
@ -1,47 +0,0 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $ingressPath := include "pathBase" . -}}
|
||||
{{- $serviceName := .Values.app.svc.webmarketingapigw -}}
|
||||
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ template "apigwwm.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "apigwwm.name" . }}
|
||||
chart: {{ template "apigwwm.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if and .Values.inf.tls.enabled .Values.inf.tls.issuer }}
|
||||
cert-manager.io/issuer: {{ .Values.inf.tls.issuer }}
|
||||
{{- end }}
|
||||
{{- if .Values.inf.mesh.enabled }}
|
||||
{{- with .Values.ingress.mesh.annotations }}
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ . }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ $ingressPath }}
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: http
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -1,23 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ .Values.app.svc.webmarketingapigw }}
|
||||
labels:
|
||||
app: {{ template "apigwwm.name" . }}
|
||||
chart: {{ template "apigwwm.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
- port: {{ .Values.service.adminPort }}
|
||||
targetPort: admin
|
||||
protocol: TCP
|
||||
name: admin
|
||||
selector:
|
||||
app: {{ template "apigwwm.name" . }}
|
||||
release: {{ .Release.Name }}
|
@ -1,46 +0,0 @@
|
||||
replicaCount: 1
|
||||
clusterName: eshop-aks
|
||||
pathBase: /webmarketingapigw
|
||||
|
||||
image:
|
||||
repository: envoyproxy/envoy
|
||||
tag: v1.11.1
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
adminPort: 8001
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/rewrite-target: "/"
|
||||
ingress.kubernetes.io/rewrite-target: "/"
|
||||
tls: []
|
||||
|
||||
resources: {}
|
||||
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
# env defines the environment variables that will be declared in the pod
|
||||
env: {}
|
||||
|
||||
envoy:
|
||||
configPath: /etc/envoy
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
path: /ready
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 15
|
||||
port: 8001
|
||||
readiness:
|
||||
path: /ready
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 60
|
||||
port: 8001
|
@ -13,14 +13,10 @@ app: # app global settings
|
||||
spa: "" # ingress entry for web spa
|
||||
status: webstatus # ingress entry for web status
|
||||
webshoppingapigw: webshoppingapigw # ingress entry for web shopping Agw
|
||||
webmarketingapigw: webmarketingapigw # ingress entry for web mkg Agw
|
||||
mobilemarketingapigw: mobilemarketingapigw # ingress entry for mobile mkg Agw
|
||||
mobileshoppingapigw: mobileshoppingapigw # ingress entry for mobile shopping Agw
|
||||
webshoppingagg: webshoppingagg # ingress entry for web shopping aggregator
|
||||
mobileshoppingagg: mobileshoppingagg # ingress entry for mobile shopping aggregator
|
||||
payment: payment-api # ingress entry for payment api
|
||||
locations: locations-api # ingress entry for locations api
|
||||
marketing: marketing-api # ingress entry for marketing api
|
||||
webhooks: webhooks-api # ingress entry for webhooks api
|
||||
webhooksweb: webhooks-web # ingress entry for webhooks web demo client
|
||||
svc:
|
||||
@ -34,13 +30,9 @@ app: # app global settings
|
||||
spa: webspa # service name for web spa
|
||||
status: webstatus # service name for web status
|
||||
webshoppingapigw: webshoppingapigw # service name for web shopping Agw
|
||||
webmarketingapigw: webmarketingapigw # service name for web mkg Agw
|
||||
mobilemarketingapigw: mobilemarketingapigw # service name for mobile mkg Agw
|
||||
mobileshoppingapigw: mobileshoppingapigw # service name for mobile shopping Agw
|
||||
webshoppingagg: webshoppingagg # service name for web shopping aggregator
|
||||
mobileshoppingagg: mobileshoppingagg # service name for mobile shopping aggregator
|
||||
payment: payment-api # service name for payment api
|
||||
locations: locations-api # service name for locations api
|
||||
marketing: marketing-api # service name for marketing ap
|
||||
webhooks: webhooks-api # service name for webhooks api
|
||||
webhooksweb: webhooks-client # service name for webhooks web
|
||||
|
@ -12,7 +12,6 @@ metadata:
|
||||
data:
|
||||
basket__ConnectionString: {{ .Values.inf.redis.basket.constr }}
|
||||
urls__IdentityUrl: http://{{ .Values.app.svc.identity }}
|
||||
basket__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
|
||||
all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
|
||||
all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
|
||||
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
|
@ -36,8 +36,6 @@ env:
|
||||
key: all__UseAzureServiceBus
|
||||
- name: IdentityUrl
|
||||
key: urls__IdentityUrl
|
||||
- name: UseLoadTest
|
||||
key: basket__EnableLoadTest
|
||||
# values define environment variables with a fixed value (no configmap involved) (name is name of var, and value is its value)
|
||||
values:
|
||||
- name: OrchestratorType
|
||||
|
@ -113,7 +113,7 @@ if (-not [string]::IsNullOrEmpty($registry)) {
|
||||
Write-Host "Begin eShopOnContainers installation using Helm" -ForegroundColor Green
|
||||
|
||||
$infras = ("sql-data", "nosql-data", "rabbitmq", "keystore-data", "basket-data")
|
||||
$charts = ("eshop-common", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-backgroundtasks","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web")
|
||||
$charts = ("eshop-common", "basket-api","catalog-api", "identity-api", "mobileshoppingagg","ordering-api","ordering-backgroundtasks","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web")
|
||||
$gateways = ("apigwmm", "apigwms", "apigwwm", "apigwws")
|
||||
|
||||
if ($deployInfrastructure) {
|
||||
|
@ -142,7 +142,7 @@ fi
|
||||
|
||||
if [[ $push_images ]]; then
|
||||
echo "#################### Pushing images to the container registry ####################"
|
||||
services=(basket.api catalog.api identity.api ordering.api marketing.api payment.api locations.api webmvc webspa webstatus)
|
||||
services=(basket.api catalog.api identity.api ordering.api payment.api webmvc webspa webstatus)
|
||||
|
||||
if [[ -z "$(docker image ls -q --filter=reference=eshop/$service:$image_tag)" ]]; then
|
||||
image_tag=linux-$image_tag
|
||||
@ -209,7 +209,7 @@ fi
|
||||
|
||||
echo "#################### Begin $app_name installation using Helm ####################"
|
||||
infras=(sql-data nosql-data rabbitmq keystore-data basket-data)
|
||||
charts=(eshop-common apigwmm apigwms apigwwm apigwws basket-api catalog-api identity-api locations-api marketing-api mobileshoppingagg ordering-api ordering-backgroundtasks ordering-signalrhub payment-api webmvc webshoppingagg webspa webstatus webhooks-api webhooks-web)
|
||||
charts=(eshop-common apigwms apigwws basket-api catalog-api identity-api mobileshoppingagg ordering-api ordering-backgroundtasks ordering-signalrhub payment-api webmvc webshoppingagg webspa webstatus webhooks-api webhooks-web)
|
||||
|
||||
if [[ !$skip_infrastructure ]]; then
|
||||
for infra in "${infras[@]}"
|
||||
|
@ -2,8 +2,6 @@
|
||||
{{- $sqlsrv := include "sql-name" . -}}
|
||||
{{- $mvc_url := include "url-of" (list .Values.app.ingress.entries.mvc .) -}}
|
||||
{{- $spa_url := include "url-of" (list .Values.app.ingress.entries.spa .) -}}
|
||||
{{- $locations_url := include "url-of" (list .Values.app.ingress.entries.locations .) -}}
|
||||
{{- $marketing_url := include "url-of" (list .Values.app.ingress.entries.marketing .) -}}
|
||||
{{- $basket_url := include "url-of" (list .Values.app.ingress.entries.basket .) -}}
|
||||
{{- $ordering_url := include "url-of" (list .Values.app.ingress.entries.ordering .) -}}
|
||||
{{- $mobileshoppingagg := include "url-of" (list .Values.app.ingress.entries.mobileshoppingagg .) -}}
|
||||
@ -27,8 +25,6 @@ data:
|
||||
all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
|
||||
mvc_e: http://{{ $mvc_url }}
|
||||
spa_e: http://{{ $spa_url }}
|
||||
locations_e: http://{{ $locations_url }}
|
||||
marketing_e: http://{{ $marketing_url }}
|
||||
basket_e: http://{{ $basket_url }}
|
||||
ordering_e: http://{{ $ordering_url }}
|
||||
mobileshoppingagg_e: http://{{ $mobileshoppingagg }}
|
||||
|
@ -40,10 +40,6 @@ env:
|
||||
key: mvc_e
|
||||
- name: SpaClient
|
||||
key: spa_e
|
||||
- name: LocationApiClient
|
||||
key: locations_e
|
||||
- name: MarketingApiClient
|
||||
key: marketing_e
|
||||
- name: BasketApiClient
|
||||
key: basket_e
|
||||
- name: OrderingApiClient
|
||||
|
@ -19,16 +19,8 @@ inf:
|
||||
db: OrderingDb # Ordering API SQL db name
|
||||
identity:
|
||||
db: IdentityDb # Ordering API SQL db name
|
||||
marketing:
|
||||
db: MarketingDb # Marketing API SQL db name
|
||||
webhooks:
|
||||
db: WebhooksDb # Webhooks DB
|
||||
mongo:
|
||||
# host: my-nosql-data # Uncomment to use specify custom mongo host. By default nosql-data is used
|
||||
locations:
|
||||
database: LocationsDb
|
||||
marketing:
|
||||
database: MarketingDb
|
||||
redis: # inf.redis defines the redis' connection strings
|
||||
basket:
|
||||
svc: basket-data # Name of k8s svc for basket redis
|
||||
@ -46,7 +38,6 @@ inf:
|
||||
dns: "" # k8s external DNS. This value or ip value MUST BE PROVIDED
|
||||
local: false # True when deploying on "local K8s" provided by Docker Desktop.
|
||||
misc: # inf.misc contains miscellaneous configuration related to infrastructure
|
||||
useLoadTest: false # If running under loading test or not
|
||||
useAzureStorage: false # If catalog api uses azure storage or not
|
||||
# registry: # Uncomment "registry" to specify registry secret
|
||||
# secretName: # secretName is the name of the secret inside k8s
|
||||
|
@ -1,21 +0,0 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
@ -1,5 +0,0 @@
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
name: locations-api
|
||||
version: 0.1.0
|
@ -1,9 +0,0 @@
|
||||
eShop Locations API installed.
|
||||
------------------------------
|
||||
|
||||
This API is not directly exposed outside cluster. If need to access it use:
|
||||
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "locations-api.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:80
|
||||
|
@ -1,32 +0,0 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "locations-api.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "locations-api.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "locations-api.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
@ -1,52 +0,0 @@
|
||||
{{- define "suffix-name" -}}
|
||||
{{- if .Values.app.name -}}
|
||||
{{- .Values.app.name -}}
|
||||
{{- else -}}
|
||||
{{- .Release.Name -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "sql-name" -}}
|
||||
{{- if .Values.inf.sql.host -}}
|
||||
{{- .Values.inf.sql.host -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "sql-data" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mongo-name" -}}
|
||||
{{- if .Values.inf.mongo.host -}}
|
||||
{{- .Values.inf.mongo.host -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "nosql-data" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "url-of" -}}
|
||||
{{- $name := first .}}
|
||||
{{- $ctx := last .}}
|
||||
{{- if eq $name "" -}}
|
||||
{{- $ctx.Values.inf.k8s.dns -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s" $ctx.Values.inf.k8s.dns $name -}} {{/*Value is just <dns>/<name> */}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
|
||||
{{- define "pathBase" -}}
|
||||
{{- if .Values.inf.k8s.suffix -}}
|
||||
{{- $suffix := include "suffix-name" . -}}
|
||||
{{- printf "%s-%s" .Values.pathBase $suffix -}}
|
||||
{{- else -}}
|
||||
{{- .Values.pathBase -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "fqdn-image" -}}
|
||||
{{- if .Values.inf.registry -}}
|
||||
{{- printf "%s/%s" .Values.inf.registry.server .Values.image.repository -}}
|
||||
{{- else -}}
|
||||
{{- .Values.image.repository -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@ -1,22 +0,0 @@
|
||||
{{- $name := include "locations-api.fullname" . -}}
|
||||
{{- $identity := include "url-of" (list .Values.app.ingress.entries.identity .) -}}
|
||||
{{- $mongo := include "mongo-name" . -}}
|
||||
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: "cfg-{{ $name }}"
|
||||
labels:
|
||||
app: {{ template "locations-api.name" . }}
|
||||
chart: {{ template "locations-api.chart" .}}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
data:
|
||||
all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
|
||||
all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
|
||||
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
|
||||
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
|
||||
internalurls__IdentityUrl: http://{{ .Values.app.svc.identity }}
|
||||
urls__IdentityUrl: {{ $identity }}
|
||||
locations__ConnectionString: mongodb://{{ $mongo }}
|
||||
locations__Database: {{ .Values.inf.mongo.locations.database }}
|
@ -1,96 +0,0 @@
|
||||
{{- $name := include "locations-api.fullname" . -}}
|
||||
{{- $cfgname := printf "%s-%s" "cfg" $name -}}
|
||||
apiVersion: apps/v1beta2
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "locations-api.fullname" . }}
|
||||
labels:
|
||||
ufo: {{ $cfgname}}
|
||||
app: {{ template "locations-api.name" . }}
|
||||
chart: {{ template "locations-api.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "locations-api.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "locations-api.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
{{ if .Values.inf.mesh.enabled -}}
|
||||
annotations:
|
||||
linkerd.io/inject: enabled
|
||||
{{- end }}
|
||||
spec:
|
||||
{{ if .Values.inf.registry -}}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.inf.registry.secretName }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
{{ if .Values.probes -}}
|
||||
{{- if .Values.probes.liveness -}}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
port: {{ .Values.probes.liveness.port }}
|
||||
path: {{ .Values.probes.liveness.path }}
|
||||
initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.probes.liveness.periodSeconds }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.probes -}}
|
||||
{{- if .Values.probes.readiness }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
port: {{ .Values.probes.readiness.port }}
|
||||
path: {{ .Values.probes.readiness.path }}
|
||||
initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.probes.readiness.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
image: "{{ template "fqdn-image" . }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
- name: PATH_BASE
|
||||
value: {{ include "pathBase" . }}
|
||||
- name: k8sname
|
||||
value: {{ .Values.clusterName }}
|
||||
{{- if .Values.env.values -}}
|
||||
{{- range .Values.env.values }}
|
||||
- name: {{ .name }}
|
||||
value: {{ .value | quote }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.env.configmap -}}
|
||||
{{- range .Values.env.configmap }}
|
||||
- name: {{ .name }}
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: {{ $cfgname }}
|
||||
key: {{ .key }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 12 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
|
@ -1,19 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ .Values.app.svc.locations }}
|
||||
labels:
|
||||
app: {{ template "locations-api.name" . }}
|
||||
chart: {{ template "locations-api.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app: {{ template "locations-api.name" . }}
|
||||
release: {{ .Release.Name }}
|
@ -1,66 +0,0 @@
|
||||
replicaCount: 1
|
||||
clusterName: eshop-aks
|
||||
pathBase: /locations-api
|
||||
|
||||
image:
|
||||
repository: eshop/locations.api
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
tls: []
|
||||
|
||||
resources: {}
|
||||
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
# env defines the environment variables that will be declared in the pod
|
||||
env:
|
||||
urls:
|
||||
# configmap declares variables which value is taken from the config map defined in template configmap.yaml (name is name of var and key the key in configmap).
|
||||
configmap:
|
||||
- name: ApplicationInsights__InstrumentationKey
|
||||
key: all__InstrumentationKey
|
||||
- name: EventBusConnection
|
||||
key: all__EventBusConnection
|
||||
- name: AzureServiceBusEnabled
|
||||
key: all__UseAzureServiceBus
|
||||
- name: UseLoadTest
|
||||
key: all_EnableLoadTest
|
||||
- name: IdentityUrl
|
||||
key: internalurls__IdentityUrl
|
||||
- name: IdentityUrlExternal
|
||||
key: urls__IdentityUrl
|
||||
- name: ConnectionString
|
||||
key: locations__ConnectionString
|
||||
- name: Database
|
||||
key: locations__Database
|
||||
# values define environment variables with a fixed value (no configmap involved) (name is name of var, and value is its value)
|
||||
values:
|
||||
- name: ASPNETCORE_ENVIRONMENT
|
||||
value: Development
|
||||
- name: OrchestratorType
|
||||
value: 'K8S'
|
||||
probes:
|
||||
liveness:
|
||||
path: /liveness
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 15
|
||||
port: 80
|
||||
readiness:
|
||||
path: /hc
|
||||
timeoutSeconds: 5
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
port: 80
|
@ -1,21 +0,0 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
@ -1,5 +0,0 @@
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
name: marketing-api
|
||||
version: 0.1.0
|
@ -1,9 +0,0 @@
|
||||
eShop Marketing API installed.
|
||||
------------------------------
|
||||
|
||||
This API is not directly exposed outside cluster. If need to access it use:
|
||||
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "marketing-api.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:80
|
||||
|
@ -1,32 +0,0 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "marketing-api.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "marketing-api.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "marketing-api.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
@ -1,60 +0,0 @@
|
||||
{{- define "suffix-name" -}}
|
||||
{{- if .Values.app.name -}}
|
||||
{{- .Values.app.name -}}
|
||||
{{- else -}}
|
||||
{{- .Release.Name -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "sql-name" -}}
|
||||
{{- if .Values.inf.sql.host -}}
|
||||
{{- .Values.inf.sql.host -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "sql-data" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mongo-name" -}}
|
||||
{{- if .Values.inf.mongo.host -}}
|
||||
{{- .Values.inf.mongo.host -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "nosql-data" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "url-of" -}}
|
||||
{{- $name := first .}}
|
||||
{{- $ctx := last .}}
|
||||
{{- if eq $name "" -}}
|
||||
{{- $ctx.Values.inf.k8s.dns -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s" $ctx.Values.inf.k8s.dns $name -}} {{/*Value is just <dns>/<name> */}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
|
||||
{{- define "pathBase" -}}
|
||||
{{- if .Values.inf.k8s.suffix -}}
|
||||
{{- $suffix := include "suffix-name" . -}}
|
||||
{{- printf "%s-%s" .Values.pathBase $suffix -}}
|
||||
{{- else -}}
|
||||
{{- .Values.pathBase -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "fqdn-image" -}}
|
||||
{{- if .Values.inf.registry -}}
|
||||
{{- printf "%s/%s" .Values.inf.registry.server .Values.image.repository -}}
|
||||
{{- else -}}
|
||||
{{- .Values.image.repository -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "protocol" -}}
|
||||
{{- if .Values.inf.tls.enabled -}}
|
||||
{{- printf "%s" "https" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "http" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@ -1,27 +0,0 @@
|
||||
{{- $name := include "marketing-api.fullname" . -}}
|
||||
{{- $identity := include "url-of" (list .Values.app.ingress.entries.identity .) -}}
|
||||
{{- $webshoppingapigw := include "url-of" (list .Values.app.ingress.entries.webshoppingapigw .) -}}
|
||||
{{- $mongo := include "mongo-name" . -}}
|
||||
{{- $sqlsrv := include "sql-name" . -}}
|
||||
{{- $protocol := include "protocol" . -}}
|
||||
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: "cfg-{{ $name }}"
|
||||
labels:
|
||||
app: {{ template "marketing-api.name" . }}
|
||||
chart: {{ template "marketing-api.chart" .}}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
data:
|
||||
all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
|
||||
all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
|
||||
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
|
||||
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
|
||||
internalurls__IdentityUrl: http://{{ .Values.app.svc.identity }}
|
||||
urls__IdentityUrl: {{ $protocol }}://{{ $identity }}
|
||||
marketing__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.marketing.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }};
|
||||
marketing__MongoConnectionString: mongodb://{{ $mongo }}
|
||||
marketing__MongoDatabase: {{ .Values.inf.mongo.marketing.database }}
|
||||
marketing__PicBaseUrl: {{ $protocol }}://{{ $webshoppingapigw }}/c/api/v1/catalog/items/[0]/pic/
|
@ -1,96 +0,0 @@
|
||||
{{- $name := include "marketing-api.fullname" . -}}
|
||||
{{- $cfgname := printf "%s-%s" "cfg" $name -}}
|
||||
apiVersion: apps/v1beta2
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "marketing-api.fullname" . }}
|
||||
labels:
|
||||
ufo: {{ $cfgname}}
|
||||
app: {{ template "marketing-api.name" . }}
|
||||
chart: {{ template "marketing-api.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "marketing-api.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "marketing-api.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
{{ if .Values.inf.mesh.enabled -}}
|
||||
annotations:
|
||||
linkerd.io/inject: enabled
|
||||
{{- end }}
|
||||
spec:
|
||||
{{ if .Values.inf.registry -}}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.inf.registry.secretName }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
{{ if .Values.probes -}}
|
||||
{{- if .Values.probes.liveness -}}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
port: {{ .Values.probes.liveness.port }}
|
||||
path: {{ .Values.probes.liveness.path }}
|
||||
initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.probes.liveness.periodSeconds }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.probes -}}
|
||||
{{- if .Values.probes.readiness }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
port: {{ .Values.probes.readiness.port }}
|
||||
path: {{ .Values.probes.readiness.path }}
|
||||
initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.probes.readiness.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
image: "{{ template "fqdn-image" . }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
- name: PATH_BASE
|
||||
value: {{ include "pathBase" . }}
|
||||
- name: k8sname
|
||||
value: {{ .Values.clusterName }}
|
||||
{{- if .Values.env.values -}}
|
||||
{{- range .Values.env.values }}
|
||||
- name: {{ .name }}
|
||||
value: {{ .value | quote }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.env.configmap -}}
|
||||
{{- range .Values.env.configmap }}
|
||||
- name: {{ .name }}
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: {{ $cfgname }}
|
||||
key: {{ .key }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 12 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
|
@ -1,19 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ .Values.app.svc.marketing }}
|
||||
labels:
|
||||
app: {{ template "marketing-api.name" . }}
|
||||
chart: {{ template "marketing-api.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app: {{ template "marketing-api.name" . }}
|
||||
release: {{ .Release.Name }}
|
@ -1,70 +0,0 @@
|
||||
replicaCount: 1
|
||||
clusterName: eshop-aks
|
||||
pathBase: /marketing-api
|
||||
|
||||
image:
|
||||
repository: eshop/marketing.api
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
tls: []
|
||||
|
||||
resources: {}
|
||||
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
# env defines the environment variables that will be declared in the pod
|
||||
env:
|
||||
urls:
|
||||
# configmap declares variables which value is taken from the config map defined in template configmap.yaml (name is name of var and key the key in configmap).
|
||||
configmap:
|
||||
- name: ApplicationInsights__InstrumentationKey
|
||||
key: all__InstrumentationKey
|
||||
- name: EventBusConnection
|
||||
key: all__EventBusConnection
|
||||
- name: AzureServiceBusEnabled
|
||||
key: all__UseAzureServiceBus
|
||||
- name: UseLoadTest
|
||||
key: all_EnableLoadTest
|
||||
- name: IdentityUrl
|
||||
key: internalurls__IdentityUrl
|
||||
- name: IdentityUrlExternal
|
||||
key: urls__IdentityUrl
|
||||
- name: ConnectionString
|
||||
key: marketing__ConnectionString
|
||||
- name: MongoConnectionString
|
||||
key: marketing__MongoConnectionString
|
||||
- name: MongoDatabase
|
||||
key: marketing__MongoDatabase
|
||||
- name: PicBaseUrl
|
||||
key: marketing__PicBaseUrl
|
||||
# values define environment variables with a fixed value (no configmap involved) (name is name of var, and value is its value)
|
||||
values:
|
||||
- name: ASPNETCORE_ENVIRONMENT
|
||||
value: Development
|
||||
- name: OrchestratorType
|
||||
value: 'K8S'
|
||||
probes:
|
||||
liveness:
|
||||
path: /liveness
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 15
|
||||
port: 80
|
||||
readiness:
|
||||
path: /hc
|
||||
timeoutSeconds: 5
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
port: 80
|
@ -1,4 +1,4 @@
|
||||
eShop Mobile Marketing Aggregator is installed
|
||||
eShop Mobile Shopping Aggregator is installed
|
||||
----------------------------------------------
|
||||
|
||||
This API is not directly exposed outside cluster. If need to access it use:
|
||||
|
@ -11,7 +11,6 @@ metadata:
|
||||
heritage: {{ .Release.Service }}
|
||||
data:
|
||||
all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
|
||||
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
|
||||
mobileshoppingagg__keystore: {{ .Values.inf.redis.keystore.constr }}
|
||||
internalurls__basket: http://{{ .Values.app.svc.basket }}
|
||||
internalurls__catalog: http://{{ .Values.app.svc.catalog }}
|
||||
@ -21,9 +20,7 @@ data:
|
||||
internalurls__catalog__hc: http://{{ .Values.app.svc.catalog }}/hc
|
||||
internalurls__identity__hc: http://{{ .Values.app.svc.identity }}/hc
|
||||
internalurls__ordering__hc: http://{{ .Values.app.svc.ordering }}/hc
|
||||
internalurls__marketing__hc: http://{{ .Values.app.svc.marketing }}/hc
|
||||
internalurls__payment__hc: http://{{ .Values.app.svc.payment }}/hc
|
||||
internalurls__location__hc: http://{{ .Values.app.svc.locations }}/hc
|
||||
internalurls__grpcBasket: "http://{{ .Values.app.svc.basket }}:{{ .Values.service.grpcPort }}"
|
||||
internalurls__grpcCatalog: "http://{{ .Values.app.svc.catalog }}:{{ .Values.service.grpcPort }}"
|
||||
internalurls__grpcOrdering: "http://{{ .Values.app.svc.ordering }}:{{ .Values.service.grpcPort }}"
|
||||
|
@ -49,12 +49,8 @@ env:
|
||||
key: internalurls__identity__hc
|
||||
- name: OrderingUrlHC
|
||||
key: internalurls__ordering__hc
|
||||
- name: MarketingUrlHC
|
||||
key: internalurls__marketing__hc
|
||||
- name: PaymentUrlHC
|
||||
key: internalurls__payment__hc
|
||||
- name: LocationUrlHC
|
||||
key: internalurls__location__hc
|
||||
- name: urls__grpcBasket
|
||||
key: internalurls__grpcBasket
|
||||
- name: urls__grpcCatalog
|
||||
|
@ -12,7 +12,6 @@ metadata:
|
||||
heritage: {{ .Release.Service }}
|
||||
data:
|
||||
ordering__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.ordering.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }};
|
||||
ordering__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
|
||||
urls__IdentityUrl: http://{{ .Values.app.svc.identity }}
|
||||
all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
|
||||
all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
|
||||
|
@ -41,8 +41,6 @@ env:
|
||||
key: all__EventBusConnection
|
||||
- name: AzureServiceBusEnabled
|
||||
key: all__UseAzureServiceBus
|
||||
- name: UseLoadTest
|
||||
key: ordering__EnableLoadTest
|
||||
- name: IdentityUrl
|
||||
key: urls__IdentityUrl
|
||||
# values define environment variables with a fixed value (no configmap involved) (name is name of var, and value is its value)
|
||||
|
@ -13,7 +13,6 @@ metadata:
|
||||
heritage: {{ .Release.Service }}
|
||||
data:
|
||||
ordering__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.ordering.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }};
|
||||
ordering__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
|
||||
all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
|
||||
all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
|
||||
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user