-
Notifications
You must be signed in to change notification settings - Fork 0
154 lines (152 loc) · 10.1 KB
/
develop-release-charts.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
name: Release Charts
on:
push:
branches:
- develop
repository_dispatch:
types:
- update-staging
jobs:
release:
environment: develop
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
- name: Checkout latest spec
run: |
git submodule set-branch --branch develop specs &&
git submodule update --init --recursive --remote
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Calculate new version
id: resolve_version
uses: mathieudutour/github-tag-action@v6.1
with:
dry_run: true
github_token: ${{ secrets.GITHUB_TOKEN }}
tag_prefix: 'transport-management-'
- name: Set new version
id: version
run: |
echo NEW_VERSION=$(echo ${{ steps.resolve_version.outputs.new_tag }}|sed s/transport-management-//) >> $GITHUB_ENV
- name: Update versions
run: |
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/auth/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/tyk-gateway/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/tyk-redis/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/vehicle-data-receiver/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/vehicle-management-service/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/work-planning-service/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/delivery-info-service/Chart.yaml &&
sed -i 's/version: .*/version: ${{ env.NEW_VERSION }}/g' ./charts/transport-management/charts/user-management-service/Chart.yaml &&
git add ./charts/transport-management/Chart.yaml ./charts/transport-management/charts/auth/Chart.yaml ./charts/transport-management/charts/tyk-gateway/Chart.yaml ./charts/transport-management/charts/tyk-redis/Chart.yaml ./charts/transport-management/charts/vehicle-data-receiver/Chart.yaml ./charts/transport-management/charts/vehicle-management-service/Chart.yaml ./charts/transport-management/charts/work-planning-service/Chart.yaml ./charts/transport-management/charts/delivery-info-service/Chart.yaml ./charts/transport-management/charts/user-management-service/Chart.yaml
- name: Resolve auth docker image sha
id: auth-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-transport-management-keycloak:develop &&
echo AUTH_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-transport-management-keycloak:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update auth image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.auth-tag.outputs.AUTH_IMAGE_SHA }}/g' ./charts/transport-management/charts/auth/values.yaml &&
git add ./charts/transport-management/charts/auth/values.yaml
- name: Resolve data receiver project docker image sha
id: data-receiver-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-vehicle-data-receiver:develop &&
echo DATA_RECIVER_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-vehicle-data-receiver:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update data receiver project image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.data-receiver-tag.outputs.DATA_RECIVER_IMAGE_SHA }}/g' ./charts/transport-management/charts/vehicle-data-receiver/values.yaml &&
git add ./charts/transport-management/charts/vehicle-data-receiver/values.yaml
- name: Resolve vehicle management service project docker image sha
id: vehicle-management-service-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-vehicle-management-service-api:develop &&
echo VEHICLE_MANAGEMENT_SERVICE_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-vehicle-management-service-api:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update vehicle management service image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.vehicle-management-service-tag.outputs.VEHICLE_MANAGEMENT_SERVICE_IMAGE_SHA }}/g' ./charts/transport-management/charts/vehicle-management-service/values.yaml &&
git add ./charts/transport-management/charts/vehicle-management-service/values.yaml
- name: Resolve work planning service project docker image sha
id: work-planning-service-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-work-planning-service-api:develop &&
echo WORK_PLANNING_SERVICE_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-work-planning-service-api:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update work planning service image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.work-planning-service-tag.outputs.WORK_PLANNING_SERVICE_IMAGE_SHA }}/g' ./charts/transport-management/charts/work-planning-service/values.yaml &&
git add ./charts/transport-management/charts/work-planning-service/values.yaml
- name: Resolve delivery info service project docker image sha
id: delivery-info-service-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-delivery-info-service-api:develop &&
echo DELIVERY_INFO_SERVICE_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-delivery-info-service-api:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update delivery info service image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.delivery-info-service-tag.outputs.DELIVERY_INFO_SERVICE_IMAGE_SHA }}/g' ./charts/transport-management/charts/delivery-info-service/values.yaml &&
git add ./charts/transport-management/charts/delivery-info-service/values.yaml
- name: Resolve user management service project docker image sha
id: user-management-service-tag
run: |
docker pull ghcr.io/metatavu/vp-kuljetus-user-management-service-api:develop &&
echo USER_MANAGEMENT_SERVICE_IMAGE_SHA=$(docker inspect ghcr.io/metatavu/vp-kuljetus-user-management-service-api:develop|jq '.[].RepoDigests[0]'|sed s/\"//g|sed 's/[a-z\.\/\-]*@sha256://') >> $GITHUB_OUTPUT
- name: Update user management service image version
run: |
sed -i 's/sha256: .*/sha256: ${{ steps.user-management-service-tag.outputs.USER_MANAGEMENT_SERVICE_IMAGE_SHA }}/g' ./charts/transport-management/charts/user-management-service/values.yaml &&
git add ./charts/transport-management/charts/user-management-service/values.yaml
- name: Commit changes
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git commit --allow-empty -m "Updated chart versions"
- name: Push version changes to develop
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: develop
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Update kube config
run: aws eks update-kubeconfig --name ${{ secrets.EKS_CLUSTER_NAME }} --region ${{ secrets.AWS_REGION }}
- name: Install Helm
uses: azure/setup-helm@v3
- name: Install Chart
uses: WyriHaximus/github-action-helm3@v3
with:
exec: |
echo "ingress:" > new-values.yaml &&
echo " annotations:" >> new-values.yaml &&
echo " cert-manager.io/cluster-issuer: ${{ secrets.K8S_CLUSTER_ISSUER }}" >> new-values.yaml &&
echo " ingress.kubernetes.io/force-ssl-redirect: \"true\"" >> new-values.yaml &&
echo " ingress.kubernetes.io/proxy-body-size: 150m" >> new-values.yaml &&
echo " kubernetes.io/ingress.class: nginx" >> new-values.yaml &&
echo " nginx.ingress.kubernetes.io/proxy-body-size: 150m" >> new-values.yaml &&
echo " nginx.org/client-max-body-size: 150m" >> new-values.yaml &&
echo " nginx.org/proxy-connect-timeout: 30s" >> new-values.yaml &&
echo " nginx.org/proxy-read-timeout: 30s" >> new-values.yaml &&
echo " labels:" >> new-values.yaml &&
echo " use-cloudflare-solver: \"true\"" >> new-values.yaml &&
echo " tls:" >> new-values.yaml &&
echo " secretName: ${{ secrets.K8S_TLS_SECRET_NAME }}" >> new-values.yaml &&
echo "tyk:" >> new-values.yaml &&
echo " hostname: ${{ secrets.TYK_HOSTNAME }}" >> new-values.yaml &&
echo "auth:" >> new-values.yaml &&
echo " hostname: ${{ secrets.AUTH_HOSTNAME }}" >> new-values.yaml &&
echo "vehicle-data-receiver:" >> new-values.yaml &&
echo " storage:" >> new-values.yaml &&
echo " size: ${{ secrets.K8S_DATA_RECEIVER_STORAGE_SIZE }}" >> new-values.yaml &&
echo " storageClass: ${{ secrets.K8S_DATA_RECEIVER_STORAGE_CLASS }}" >> new-values.yaml &&
helm upgrade transport-management ./charts/transport-management --namespace ${{ secrets.K8S_NAMESPACE }} -f new-values.yaml