Skip to content

Commit 7a3c700

Browse files
committed
Add tests for EKS Pod Identity
1 parent 2180bca commit 7a3c700

File tree

6 files changed

+876
-17
lines changed

6 files changed

+876
-17
lines changed
Lines changed: 325 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,325 @@
1+
apiVersion: tekton.dev/v1
2+
kind: Pipeline
3+
metadata:
4+
name: awscli-eks-cl2loadtest-with-addons-slos
5+
namespace: scalability
6+
spec:
7+
finally:
8+
- name: teardown
9+
params:
10+
- name: cluster-name
11+
value: $(params.cluster-name)
12+
- name: endpoint
13+
value: $(params.endpoint)
14+
- name: slack-hook
15+
value: $(params.slack-hook)
16+
- name: slack-message
17+
value: $(params.slack-message) job completed
18+
- name: service-role-stack-name
19+
value: $(params.cluster-name)-service-role
20+
- name: node-role-stack-name
21+
value: $(params.cluster-name)-node-role
22+
- name: launch-template-stack-name
23+
value: $(params.cluster-name)-launch-template
24+
- name: namespace-count
25+
value: $(params.namespace-count)
26+
retries: 10
27+
taskRef:
28+
kind: Task
29+
name: awscli-eks-cluster-teardown
30+
params:
31+
- name: cluster-name
32+
type: string
33+
- name: endpoint
34+
type: string
35+
- name: desired-nodes
36+
type: string
37+
- name: pods-per-node
38+
type: string
39+
- name: nodes-per-namespace
40+
type: string
41+
- name: cl2-load-test-throughput
42+
type: string
43+
- name: results-bucket
44+
type: string
45+
- default: "<Replace with Slack hook arn>"
46+
name: slack-hook
47+
type: string
48+
- name: slack-message
49+
type: string
50+
- name: amp-workspace-id
51+
type: string
52+
- name: vpc-cfn-url
53+
default: "https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/amazon-eks-vpc.json"
54+
type: string
55+
- name: ng-cfn-url
56+
default: "https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/eks_node_group_launch_template.json"
57+
type: string
58+
- name: kubernetes-version
59+
type: string
60+
- default: https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/eks_service_role.json
61+
name: service-role-cfn-url
62+
type: string
63+
- default: https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/eks_node_role.json
64+
name: node-role-cfn-url
65+
type: string
66+
- name: namespace-prefix
67+
default: "default"
68+
description: "The prefix of namespaces for EKS Pod Identity test."
69+
- name: namespace-count
70+
default: "1"
71+
description: "The number of namespaces for EKS Pod Identity test."
72+
- name: pia-trust-policy-url
73+
default: "https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/eks-pod-identity/pia-trust-policy.json"
74+
type: string
75+
- name: pia-test-config-url
76+
default: "https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/eks-pod-identity/eks-pod-identity/config.yaml"
77+
- name: pia-test-pod-spec-url
78+
default: "https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/eks-pod-identity/eks-pod-identity/pod-default.yaml"
79+
- name: cl2-eks-pod-identity-pods
80+
default: "5000"
81+
- name: cl2-default-qps
82+
default: "200"
83+
- name: cl2-default-burst
84+
default: "400"
85+
- name: cl2-uniform-qps
86+
default: "200"
87+
- name: timeout-pia-pod-creation
88+
default: "10m"
89+
tasks:
90+
- name: slack-notification
91+
params:
92+
- name: slack-hook
93+
value: $(params.slack-hook)
94+
- name: slack-message
95+
value: $(params.slack-message) job kicked off
96+
taskRef:
97+
kind: Task
98+
name: slack-notification
99+
- name: create-cluster-service-role
100+
params:
101+
- name: stack-name
102+
value: $(params.cluster-name)-service-role
103+
- name: role-cfn-url
104+
value: $(params.service-role-cfn-url)
105+
- name: role-name
106+
value: $(params.cluster-name)-service-role
107+
runAfter:
108+
- slack-notification
109+
taskRef:
110+
kind: Task
111+
name: awscli-role-create
112+
- name: awscli-vpc-create
113+
params:
114+
- name: stack-name
115+
value: $(params.cluster-name)
116+
- name: vpc-cfn-url
117+
value: $(params.vpc-cfn-url)
118+
taskRef:
119+
kind: Task
120+
name: awscli-vpc-create
121+
- name: create-cluster-node-role
122+
params:
123+
- name: stack-name
124+
value: $(params.cluster-name)-node-role
125+
- name: role-cfn-url
126+
value: $(params.node-role-cfn-url)
127+
- name: role-name
128+
value: $(params.cluster-name)-node-role
129+
runAfter:
130+
- slack-notification
131+
taskRef:
132+
kind: Task
133+
name: awscli-role-create
134+
- name: create-eks-cluster
135+
params:
136+
- name: cluster-name
137+
value: $(params.cluster-name)
138+
- name: service-role-name
139+
value: $(params.cluster-name)-service-role
140+
- name: endpoint
141+
value: $(params.endpoint)
142+
- name: vpc-stack-name
143+
value: $(params.cluster-name)
144+
- name: kubernetes-version
145+
value: $(params.kubernetes-version)
146+
retries: 3
147+
runAfter:
148+
- create-cluster-node-role
149+
- create-cluster-service-role
150+
- awscli-vpc-create
151+
taskRef:
152+
kind: Task
153+
name: awscli-eks-cluster-create-with-vpc-stack
154+
workspaces:
155+
- name: config
156+
workspace: config
157+
- name: create-launch-template
158+
params:
159+
- name: cluster-name
160+
value: $(params.cluster-name)
161+
- name: stack-name
162+
value: $(params.cluster-name)-launch-template
163+
- name: kubernetes-version
164+
value: "$(params.kubernetes-version)"
165+
- name: ng-cfn-url
166+
value: "$(params.ng-cfn-url)"
167+
- name: endpoint
168+
value: $(params.endpoint)
169+
runAfter:
170+
- create-eks-cluster
171+
taskRef:
172+
kind: Task
173+
name: awscli-eks-cfn-launch-template
174+
workspaces:
175+
- name: config
176+
workspace: config
177+
- name: create-mng-monitoring-nodes
178+
params:
179+
- name: cluster-name
180+
value: $(params.cluster-name)
181+
- name: host-cluster-node-role-name
182+
value: $(params.cluster-name)-node-role
183+
- name: endpoint
184+
value: $(params.endpoint)
185+
- name: desired-nodes
186+
value: "1"
187+
- name: max-nodes
188+
value: "1"
189+
- name: host-instance-types
190+
value: "m5.12xlarge m5.16xlarge r5.12xlarge r5.16xlarge c5.12xlarge c5.18xlarge"
191+
- name: host-taints
192+
value: key=monitoring,value=true,effect=NO_SCHEDULE
193+
- name: nodegroup-prefix
194+
value: monitoring-
195+
runAfter:
196+
- create-launch-template
197+
taskRef:
198+
kind: Task
199+
name: awscli-eks-nodegroup-create
200+
workspaces:
201+
- name: config
202+
workspace: config
203+
- name: create-mng-nodes
204+
params:
205+
- name: cluster-name
206+
value: $(params.cluster-name)
207+
- name: desired-nodes
208+
value: $(params.desired-nodes)
209+
- name: host-cluster-node-role-name
210+
value: $(params.cluster-name)-node-role
211+
- name: endpoint
212+
value: $(params.endpoint)
213+
runAfter:
214+
- create-mng-monitoring-nodes
215+
taskRef:
216+
kind: Task
217+
name: awscli-eks-nodegroup-create
218+
workspaces:
219+
- name: config
220+
workspace: config
221+
- name: create-pod-identity-association
222+
params:
223+
- name: cluster-name
224+
value: $(params.cluster-name)
225+
- name: endpoint
226+
value: $(params.endpoint)
227+
- name: namespace-prefix
228+
value: $(params.namespace-prefix)
229+
- name: namespace-count
230+
value: $(params.namespace-count)
231+
- name: pia-trust-policy-url
232+
value: $(params.pia-trust-policy-url)
233+
runAfter:
234+
- create-mng-nodes
235+
taskRef:
236+
kind: Task
237+
name: awscli-eks-pia-create
238+
workspaces:
239+
- name: config
240+
workspace: config
241+
- name: generate-eks-pod-identity
242+
params:
243+
- name: cl2-eks-pod-identity-pods
244+
value: $(params.cl2-eks-pod-identity-pods)
245+
- name: cl2-default-qps
246+
value: $(params.cl2-default-qps)
247+
- name: cl2-default-burst
248+
value: $(params.cl2-default-burst)
249+
- name: cl2-uniform-qps
250+
value: $(params.cl2-uniform-qps)
251+
- name: results-bucket
252+
value: $(params.results-bucket)
253+
- name: nodes
254+
value: $(params.desired-nodes)
255+
- name: cluster-name
256+
value: $(params.cluster-name)
257+
- name: namespace-prefix
258+
value: $(params.namespace-prefix)
259+
- name: namespace-count
260+
value: $(params.namespace-count)
261+
- name: pia-test-config-url
262+
value: $(params.pia-test-config-url)
263+
- name: pia-test-pod-spec-url
264+
value: $(params.pia-test-pod-spec-url)
265+
- name: timeout-pia-pod-creation
266+
value: $(params.timeout-pia-pod-creation)
267+
- name: amp-workspace-id
268+
value: '$(params.amp-workspace-id)'
269+
runAfter:
270+
- create-pod-identity-association
271+
taskRef:
272+
kind: Task
273+
name: load-pod-identity
274+
workspaces:
275+
- name: source
276+
workspace: source
277+
- name: results
278+
workspace: results
279+
- name: config
280+
workspace: config
281+
- name: generate
282+
params:
283+
- name: cluster-name
284+
value: $(params.cluster-name)
285+
- name: pods-per-node
286+
value: $(params.pods-per-node)
287+
- name: nodes-per-namespace
288+
value: $(params.nodes-per-namespace)
289+
- name: cl2-load-test-throughput
290+
value: $(params.cl2-load-test-throughput)
291+
- name: results-bucket
292+
value: $(params.results-bucket)
293+
- name: nodes
294+
value: $(params.desired-nodes)
295+
- name: amp-workspace-id
296+
value: $(params.amp-workspace-id)
297+
runAfter:
298+
- generate-eks-pod-identity
299+
taskRef:
300+
kind: Task
301+
name: load-slos
302+
workspaces:
303+
- name: source
304+
workspace: source
305+
- name: results
306+
workspace: results
307+
- name: config
308+
workspace: config
309+
- name: cw-metrics
310+
params:
311+
- name: dimensions
312+
value: $(params.desired-nodes)
313+
- name: value
314+
value: $(tasks.generate.results.datapoint)
315+
- name: namespace
316+
value: $(params.kubernetes-version)
317+
runAfter:
318+
- generate-eks-pod-identity
319+
taskRef:
320+
kind: Task
321+
name: cloudwatch
322+
workspaces:
323+
- name: source
324+
- name: results
325+
- name: config

0 commit comments

Comments
 (0)