forked from meshery/meshery
-
Notifications
You must be signed in to change notification settings - Fork 0
140 lines (124 loc) · 4.77 KB
/
mesheryctl-e2e.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
name: Meshery End-to-End Tests with mesheryctl
on:
workflow_dispatch:
inputs:
profile_name:
description: "performance profile to use"
required: true
profile_filename:
description: "test configuration file"
required: false
patternfile_url:
description: "URL of the pattern file"
required: false
patternfile_name:
description: "name of the pattern file"
required: false
# scheduled to run at the 43rd minute of every 12th hour
schedule:
- cron: '43 */24 * * *'
jobs:
manual-test:
name: Manual e2e Test
runs-on: ubuntu-22.04
if: ${{ github.event_name == 'workflow_dispatch' }}
strategy:
fail-fast: false
matrix:
k8s_version: ['v1.29.2', 'v1.28.7', 'v1.27.11']
platform: ['docker', 'kubernetes']
steps:
- name: Setup Kubernetes
uses: manusa/[email protected]
with:
minikube version: 'v1.32.0'
kubernetes version: ${{ matrix.k8s_version }}
driver: docker
- name: Run minikube tunnel
run: |
echo 'Running minikube tunnel'
minikube tunnel &> /dev/null &
shell: bash
- name: Get Date
id: date
run: echo "date=date +'%Y-%m-%d-%H.%M.%S'" >> $GITHUB_OUTPUT
- name: Checkout Code
uses: actions/checkout@master
- name: Run Performance Tests
uses: layer5io/meshery-smp-action@master
with:
provider_token: ${{ secrets.PROVIDER_TOKEN }}
platform: ${{ matrix.platform }}
profile_name: ${{ github.event.inputs.profile_name }}
profile_filename: ${{ github.event.inputs.profile_filename }}
test_name: '${{ steps.date.outputs.date }}'
- name: Deploy Service Mesh
run: |
cat ~/auth.json
echo | mesheryctl mesh deploy meshery-istio --namespace istio-system -t ~/auth.json ISTIO
sleep 50
shell: '/bin/bash {0}'
- name: Apply Pattern
uses: layer5io/meshery-service-mesh-patterns-action@master
with:
provider_token: ${{ secrets.PROVIDER_TOKEN }}
platform: ${{ matrix.platform }}
pattern_url: ${{ github.event.inputs.pattern_url }}
pattern_file: ${{ github.event.inputs.pattern_file }}
scheduled-test:
name: Scheduled e2e Test
runs-on: ubuntu-22.04
if: ${{ github.event_name == 'schedule' && github.repository == 'meshery/meshery' }}
strategy:
fail-fast: false
matrix:
k8s_version: ['v1.29.2', 'v1.28.7', 'v1.27.11']
platform: ['docker', 'kubernetes']
steps:
- name: Setup Kubernetes
uses: manusa/[email protected]
with:
minikube version: 'v1.32.0'
kubernetes version: ${{ matrix.k8s_version }}
driver: docker
- name: Run minikube tunnel
run: |
echo 'Running minikube tunnel'
minikube tunnel &> /dev/null &
shell: bash
- name: Get Date
id: date
run: echo "date=(date +'%Y-%m-%d-%H.%M.%S')" >> $GITHUB_OUTPUT
- name: Checkout Code
uses: actions/checkout@master
- name: Run Performance Tests
uses: layer5io/meshery-smp-action@master
with:
provider_token: ${{ secrets.PROVIDER_TOKEN }}
platform: ${{ matrix.platform }}
profile_name: integration-e2e-workflow
profile_filename: integration-test-config.yaml
test_name: '${{ steps.date.outputs.date }}'
- name: Deploy Service Mesh
run: |
echo | mesheryctl mesh deploy meshery-istio --namespace istio-system -t ~/auth.json ISTIO
sleep 50
shell: '/bin/bash {0}'
- name: Apply BookInfo Pattern
uses: layer5io/mesheryctl-service-mesh-patterns-action@master
with:
provider_token: ${{ secrets.PROVIDER_TOKEN }}
platform: ${{ matrix.platform }}
pattern_url: https://raw.githubusercontent.com/service-mesh-patterns/service-mesh-patterns/master/samples/bookInfoPattern.yaml
- name: Apply Circuit Breaker Pattern
uses: layer5io/mesheryctl-service-mesh-patterns-action@master
with:
provider_token: ${{ secrets.PROVIDER_TOKEN }}
platform: ${{ matrix.platform }}
pattern_url: https://raw.githubusercontent.com/service-mesh-patterns/service-mesh-patterns/master/samples/servicemeshcon-na-2021/circuitbreaker.yaml
- name: Load "Serve An LLM With Multiple GPUs In GKE" design
uses: layer5io/mesheryctl-service-mesh-patterns-action@master
with:
provider_token: ${{ secrets.PROVIDER_TOKEN }}
platform: ${{ matrix.platform }}
pattern_url: https://meshery.layer5.io/api/content/patterns/9d3b33bf-eaf6-4d06-9dd6-64aa725ab383