@ -0,0 +1,50 @@ | |||||
name: Deploy basket-api | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["basket-api"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: basket-api | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy catalog-api | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["catalog-api"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: catalog-api | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy identity-api | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["identity-api"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: identity-api | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy mobileshoppingagg | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["mobileshoppingagg"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: mobileshoppingagg | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy ordering-api | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["ordering-api"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: ordering-api | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy ordering-backgroundtasks | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["ordering-backgroundtasks"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: ordering-backgroundtasks | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy ordering-signalrhub | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["ordering-signalrhub"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: ordering-signalrhub | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy payment-api | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["payment-api"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: payment-api | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy webhooks-api | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["webhooks-api"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: webhooks-api | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy webmvc | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["webmvc"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: webmvc | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy webshoppingagg | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["webshoppingagg"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: webshoppingagg | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy webspa | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["webspa"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: webspa | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,50 @@ | |||||
name: Deploy webstatus | |||||
on: | |||||
workflow_dispatch: | |||||
repository_dispatch: | |||||
types: | |||||
- deploy | |||||
workflow_run: | |||||
workflows: ["webstatus"] | |||||
branches: [dev] | |||||
types: [completed] | |||||
env: | |||||
chart: webstatus | |||||
namespace: eshop | |||||
app-name: eshop | |||||
chart-root: deploy/k8s/helm | |||||
jobs: | |||||
DeployToK8s: | |||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' || github.event.workflow_run.conclusion == 'success' }} | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v1 | |||||
- uses: azure/login@v1 | |||||
with: | |||||
creds: ${{ secrets.AZURE_CREDENTIALS }} | |||||
- uses: azure/aks-set-context@v1 | |||||
name: Set AKS context | |||||
with: | |||||
creds: '${{ secrets.AZURE_CREDENTIALS }}' | |||||
cluster-name: ${{ secrets.CLUSTER_NAME }} | |||||
resource-group: ${{ secrets.RESOURCE_GROUP }} | |||||
- name: Set branch name as env variable | |||||
run: | | |||||
currentbranch=$(echo ${GITHUB_REF##*/}) | |||||
echo "running on $currentbranch" | |||||
echo "BRANCH=$currentbranch" >> $GITHUB_ENV | |||||
shell: bash | |||||
- name: Deploy chart | |||||
run: | | |||||
./deploy-chart.sh -c ${{ env.chart }} --dns aks --aks-name ${{ secrets.CLUSTER_NAME }} --aks-rg ${{ secrets.RESOURCE_GROUP }} -r ${{ secrets.REGISTRY_HOST }} -t $TAG --namespace ${{ env.namespace }} --acr-connected | |||||
env: | |||||
TAG: ${{ env.BRANCH }} | |||||
working-directory: ${{ env.chart-root }} |
@ -0,0 +1,199 @@ | |||||
#!/usr/bin/env bash | |||||
# http://redsymbol.net/articles/unofficial-bash-strict-mode | |||||
set -euo pipefail | |||||
usage() | |||||
{ | |||||
cat <<END | |||||
deploy.sh: deploys the $app_name application to a Kubernetes cluster using Helm. | |||||
Parameters: | |||||
--aks-name <AKS cluster name> | |||||
The name of the AKS cluster. Required when the registry (using the -r parameter) is set to "aks". | |||||
--aks-rg <AKS resource group> | |||||
The resource group for the AKS cluster. Required when the registry (using the -r parameter) is set to "aks". | |||||
-c | --chart <name of chart> | |||||
The name of the chart to upgrade (or install) | |||||
-d | --dns <dns or ip address> | --dns aks | |||||
Specifies the external DNS/ IP address of the Kubernetes cluster. | |||||
If 'aks' is set as value, the DNS value is retrieved from the AKS. --aks-name and --aks-rg are needed. | |||||
When --use-local-k8s is specified the external DNS is automatically set to localhost. | |||||
-h | --help | |||||
Displays this help text and exits the script. | |||||
-n | --app-name <the name of the app> | |||||
Specifies the name of the application (default: eshop). | |||||
--namespace <namespace name> | |||||
Specifies the namespace name to deploy the app. If it doesn't exists it will be created (default: eshop). | |||||
-p | --docker-password <docker password> | |||||
The Docker password used to logon to the custom registry, supplied using the -r parameter. | |||||
-r | --registry <container registry> | |||||
Specifies the container registry to use (required), e.g. myregistry.azurecr.io. | |||||
--skip-clean | |||||
Do not clean the Kubernetes helm chart. Default is to clean the chart. | |||||
-t | --tag <docker image tag> | |||||
The tag used for the newly created docker images. Default: latest. | |||||
-u | --docker-username <docker username> | |||||
The Docker username used to logon to the custom registry, supplied using the -r parameter. | |||||
--use-local-k8s | |||||
Deploy to a locally installed Kubernetes (default: false). | |||||
It is assumed that the Kubernetes cluster has been granted access to the container registry. | |||||
If using AKS and ACR see link for more info: | |||||
https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auth-aks | |||||
WARNING! THE SCRIPT WILL COMPLETELY DESTROY ALL DEPLOYMENTS AND SERVICES VISIBLE | |||||
FROM THE CURRENT CONFIGURATION CONTEXT AND NAMESPACE. | |||||
It is recommended that you check your selected namespace, 'eshop' by default, is already in use. | |||||
Every deployment and service done in the namespace will be deleted. | |||||
For more information see https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ | |||||
END | |||||
} | |||||
acr_connected='' | |||||
app_name='eshop' | |||||
aks_name='' | |||||
aks_rg='' | |||||
chart='' | |||||
clean='yes' | |||||
container_registry='' | |||||
docker_password='' | |||||
docker_username='' | |||||
dns='' | |||||
image_tag='latest' | |||||
skip_infrastructure='' | |||||
use_local_k8s='' | |||||
namespace='eshop' | |||||
while [[ $# -gt 0 ]]; do | |||||
case "$1" in | |||||
--acr-connected ) | |||||
acr_connected='yes'; shift ;; | |||||
--aks-name ) | |||||
aks_name="$2"; shift 2;; | |||||
--aks-rg ) | |||||
aks_rg="$2"; shift 2;; | |||||
-c | --chart ) | |||||
chart="$2"; shift 2;; | |||||
-d | --dns ) | |||||
dns="$2"; shift 2;; | |||||
-h | --help ) | |||||
usage; exit 1 ;; | |||||
-n | --app-name ) | |||||
app_name="$2"; shift 2;; | |||||
-p | --docker-password ) | |||||
docker_password="$2"; shift 2;; | |||||
-r | --registry ) | |||||
container_registry="$2"; shift 2;; | |||||
--skip-clean ) | |||||
clean=''; shift ;; | |||||
--image-build ) | |||||
build_images='yes'; shift ;; | |||||
--image-push ) | |||||
push_images='yes'; shift ;; | |||||
--skip-infrastructure ) | |||||
skip_infrastructure='yes'; shift ;; | |||||
-t | --tag ) | |||||
image_tag="$2"; shift 2;; | |||||
-u | --docker-username ) | |||||
docker_username="$2"; shift 2;; | |||||
--use-local-k8s ) | |||||
use_local_k8s='yes'; shift ;; | |||||
--namespace ) | |||||
namespace="$2"; shift 2;; | |||||
*) | |||||
echo "Unknown option $1" | |||||
usage; exit 2 ;; | |||||
esac | |||||
done | |||||
export TAG=$image_tag | |||||
use_custom_registry='' | |||||
if [[ -n $container_registry ]] && [[ -z $acr_connected ]]; then | |||||
echo "################ Log into custom registry $container_registry ##################" | |||||
use_custom_registry='yes' | |||||
if [[ -z $docker_username ]] || [[ -z $docker_password ]]; then | |||||
echo "Error: Must use -u (--docker-username) AND -p (--docker-password) if specifying custom registry" | |||||
exit 1 | |||||
fi | |||||
docker login -u $docker_username -p $docker_password $container_registry | |||||
fi | |||||
ingress_values_file="ingress_values.yaml" | |||||
if [[ $use_local_k8s ]]; then | |||||
ingress_values_file="ingress_values_dockerk8s.yaml" | |||||
dns="localhost" | |||||
fi | |||||
if [[ $dns == "aks" ]]; then | |||||
echo "#################### Begin AKS discovery based on the --dns aks setting. ####################" | |||||
if [[ -z $aks_name ]] || [[ -z $aks_rg ]]; then | |||||
echo "Error: When using -dns aks, MUST set -aksName and -aksRg too." | |||||
echo '' | |||||
usage | |||||
exit 1 | |||||
fi | |||||
echo "Getting AKS cluster $aks_name AKS (in resource group $aks_rg)" | |||||
# JMESPath queries are case sensitive and httpapplicationrouting can be lowercase sometimes | |||||
jmespath_dnsqueries=(\ | |||||
addonProfiles.httpApplicationRouting.config.HTTPApplicationRoutingZoneName \ | |||||
addonProfiles.httpapplicationrouting.config.HTTPApplicationRoutingZoneName \ | |||||
) | |||||
for q in "${jmespath_dnsqueries[@]}" | |||||
do | |||||
dns="$(az aks show -n $aks_name -g $aks_rg --query $q -o tsv)" | |||||
if [[ -n $dns ]]; then break; fi | |||||
done | |||||
if [[ -z $dns ]]; then | |||||
echo "Error: when getting DNS of AKS $aks_name (in resource group $aks_rg). Please ensure AKS has httpRouting enabled AND Azure CLI is logged in and is of version 2.0.37 or higher." | |||||
exit 1 | |||||
fi | |||||
echo "DNS base found is $dns. Will use $aks_name.$dns for the app!" | |||||
dns="$aks_name.$dns" | |||||
fi | |||||
# Initialization & check commands | |||||
if [[ -z $dns ]]; then | |||||
echo "No DNS specified. Ingress resources will be bound to public IP." | |||||
fi | |||||
previous_install='' | |||||
if [[ -z $(helm ls -q --namespace $namespace | grep "$app_name-$chart") ]]; then | |||||
echo "No previous release found" | |||||
else | |||||
previous_install='yes' | |||||
fi | |||||
if [[ $clean ]] && [[ $previous_install ]]; then | |||||
echo "Cleaning previous helm releases..." | |||||
helm uninstall "$app_name-$chart" --namespace $namespace | |||||
echo "Previous release deleted" | |||||
waitsecs=5; while [ $waitsecs -gt 0 ]; do echo -ne "$waitsecs\033[0K\r"; sleep 1; : $((waitsecs--)); done | |||||
previous_install='' | |||||
fi | |||||
echo "#################### Begin $app_name $chart installation using Helm ####################" | |||||
if [[ $use_custom_registry ]] || [[ $acr_connected ]]; then | |||||
if [[ -z $acr_connected ]]; then | |||||
if [[ -z $previous_install ]]; then | |||||
helm upgrade --install "$app_name-$chart" --namespace $namespace --set "ingress.hosts={$dns}" --set inf.registry.server=$container_registry --set inf.registry.login=$docker_username --set inf.registry.pwd=$docker_password --set inf.registry.secretName=eshop-docker-scret --values app.yaml --values inf.yaml --values $ingress_values_file --set app.name=$app_name --set inf.k8s.dns=$dns --set image.tag=$image_tag --set image.pullPolicy=Always $chart | |||||
else | |||||
helm upgrade --install "$app_name-$chart" --namespace $namespace --set "ingress.hosts={$dns}" --values app.yaml --values inf.yaml --values $ingress_values_file --set app.name=$app_name --set inf.k8s.dns=$dns --set image.tag=$image_tag --set image.pullPolicy=Always $chart | |||||
fi | |||||
elif [[ $chart != "eshop-common" ]]; then | |||||
# ACR is already connected, so we don't need username/password | |||||
if [[ -z $previous_install ]]; then | |||||
helm install "$app_name-$chart" --namespace $namespace --set "ingress.hosts={$dns}" --set inf.registry.server=$container_registry --values app.yaml --values inf.yaml --values $ingress_values_file --set app.name=$app_name --set inf.k8s.dns=$dns --set image.tag=$image_tag --set image.pullPolicy=Always $chart | |||||
else | |||||
# don't set the image repo since it's already set | |||||
helm upgrade "$app_name-$chart" --namespace $namespace --set "ingress.hosts={$dns}" --values app.yaml --values inf.yaml --values $ingress_values_file --set app.name=$app_name --set inf.k8s.dns=$dns --set image.tag=$image_tag --set image.pullPolicy=Always $chart | |||||
fi | |||||
fi | |||||
elif [[ $chart != "eshop-common" ]]; then # eshop-common is ignored when no secret must be deployed | |||||
helm upgrade --install "$app_name-$chart" --namespace $namespace --set "ingress.hosts={$dns}" --values app.yaml --values inf.yaml --values $ingress_values_file --set app.name=$app_name --set inf.k8s.dns=$dns --set image.tag=$image_tag --set image.pullPolicy=Always $chart | |||||
fi | |||||
echo "FINISHED: Helm chart installed." |