Skip to content

Commit 310f106

Browse files
committed
Add tests for EKS Pod Identity
1 parent 627e023 commit 310f106

File tree

5 files changed

+551
-17
lines changed

5 files changed

+551
-17
lines changed
Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
apiVersion: tekton.dev/v1beta1
2+
kind: Pipeline
3+
metadata:
4+
name: awscli-eks-cl2loadtest-with-pod-identity
5+
namespace: scalability
6+
spec:
7+
params:
8+
- name: cluster-name
9+
- name: endpoint
10+
default: https://api.beta.us-west-2.wesley.amazonaws.com
11+
- name: desired-nodes
12+
default: "1000"
13+
- name: cl2-eks-pod-identity-pods
14+
default: "5000"
15+
- name: cl2-default-qps
16+
default: "500"
17+
- name: cl2-default-burst
18+
default: "1000"
19+
- name: cl2-uniform-qps
20+
default: "500"
21+
- name: namespace-prefix
22+
default: "default"
23+
- name: namespaces
24+
default: "1"
25+
- name: results-bucket
26+
- name: slack-hook
27+
- name: slack-message
28+
- name: vpc-cfn-url
29+
- name: ng-cfn-url
30+
default: "https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/eks_node_group_launch_template.json"
31+
type: string
32+
- name: kubernetes-version
33+
default: "1.31"
34+
- name: amp-workspace-id
35+
default: ""
36+
- name: service-role-cfn-url
37+
default: "https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/eks_service_role.json"
38+
- name: node-role-cfn-url
39+
default: "https://raw.githubusercontent.com/awslabs/kubernetes-iteration-toolkit/main/tests/assets/eks_node_role.json"
40+
tasks:
41+
- name: slack-notification
42+
params:
43+
- name: slack-hook
44+
value: $(params.slack-hook)
45+
- name: slack-message
46+
value: "$(params.slack-message) job kicked off"
47+
taskRef:
48+
kind: Task
49+
name: slack-notification
50+
- name: awscli-vpc-create
51+
params:
52+
- name: stack-name
53+
value: $(params.cluster-name)
54+
- name: vpc-cfn-url
55+
value: "$(params.vpc-cfn-url)"
56+
taskRef:
57+
kind: Task
58+
name: awscli-vpc-create
59+
- name: create-cluster-service-role
60+
params:
61+
- name: stack-name
62+
value: $(params.cluster-name)-service-role
63+
- name: role-cfn-url
64+
value: $(params.service-role-cfn-url)
65+
- name: role-name
66+
value: "$(params.cluster-name)-service-role"
67+
taskRef:
68+
kind: Task
69+
name: awscli-role-create
70+
- name: create-cluster-node-role
71+
params:
72+
- name: stack-name
73+
value: $(params.cluster-name)-node-role
74+
- name: role-cfn-url
75+
value: $(params.node-role-cfn-url)
76+
- name: role-name
77+
value: "$(params.cluster-name)-node-role"
78+
taskRef:
79+
kind: Task
80+
name: awscli-role-create
81+
- name: create-eks-cluster
82+
params:
83+
- name: cluster-name
84+
value: $(params.cluster-name)
85+
- name: service-role-name
86+
value: "$(params.cluster-name)-service-role"
87+
- name: endpoint
88+
value: $(params.endpoint)
89+
- name: vpc-stack-name
90+
value: $(params.cluster-name)
91+
- name: kubernetes-version
92+
value: "$(params.kubernetes-version)"
93+
runAfter:
94+
- create-cluster-node-role
95+
- create-cluster-service-role
96+
- awscli-vpc-create
97+
taskRef:
98+
kind: Task
99+
name: awscli-eks-cluster-create-with-vpc-stack
100+
workspaces:
101+
- name: config
102+
workspace: config
103+
- name: create-cfn-launch-template
104+
params:
105+
- name: cluster-name
106+
value: $(params.cluster-name)
107+
- name: stack-name
108+
value: $(params.cluster-name)-launch-template
109+
- name: kubernetes-version
110+
value: "$(params.kubernetes-version)"
111+
- name: ng-cfn-url
112+
value: "$(params.ng-cfn-url)"
113+
- name: endpoint
114+
value: $(params.endpoint)
115+
runAfter:
116+
- create-eks-cluster
117+
taskRef:
118+
kind: Task
119+
name: awscli-eks-cfn-launch-template
120+
workspaces:
121+
- name: config
122+
workspace: config
123+
- name: create-mng-monitoring-nodes
124+
params:
125+
- name: cluster-name
126+
value: $(params.cluster-name)
127+
- name: host-cluster-node-role-name
128+
value: "$(params.cluster-name)-node-role"
129+
- name: endpoint
130+
value: $(params.endpoint)
131+
- name: desired-nodes
132+
value: "1"
133+
- name: max-nodes
134+
value: "1"
135+
- name: host-instance-types
136+
value: "m5.4xlarge"
137+
- name: host-taints
138+
value: "key=monitoring,value=true,effect=NO_SCHEDULE"
139+
- name: nodegroup-prefix
140+
value: "monitoring-"
141+
runAfter:
142+
- create-cfn-launch-template
143+
taskRef:
144+
kind: Task
145+
name: awscli-eks-nodegroup-create
146+
workspaces:
147+
- name: config
148+
workspace: config
149+
- name: install-fluentbit-addon
150+
params:
151+
- name: cluster-name
152+
value: $(params.cluster-name)
153+
runAfter:
154+
- create-mng-monitoring-nodes
155+
taskRef:
156+
kind: Task
157+
name: eks-addon-fluentbit
158+
workspaces:
159+
- name: config
160+
workspace: config
161+
- name: create-mng-nodes
162+
params:
163+
- name: cluster-name
164+
value: $(params.cluster-name)
165+
- name: desired-nodes
166+
value: $(params.desired-nodes)
167+
- name: host-cluster-node-role-name
168+
value: "$(params.cluster-name)-node-role"
169+
- name: endpoint
170+
value: $(params.endpoint)
171+
runAfter:
172+
- install-fluentbit-addon
173+
taskRef:
174+
kind: Task
175+
name: awscli-eks-nodegroup-create
176+
workspaces:
177+
- name: config
178+
workspace: config
179+
- name: create-pod-identity-association
180+
params:
181+
- name: cluster-name
182+
value: $(params.cluster-name)
183+
- name: endpoint
184+
value: $(params.endpoint)
185+
- name: namespace-prefix
186+
value: $(params.namespace-prefix)
187+
- name: namespaces
188+
value: $(params.namespaces)
189+
runAfter:
190+
- create-mng-nodes
191+
taskRef:
192+
kind: Task
193+
name: awscli-eks-pia-create
194+
workspaces:
195+
- name: config
196+
workspace: config
197+
- name: generate
198+
params:
199+
- name: cl2-eks-pod-identity-pods
200+
value: $(params.cl2-eks-pod-identity-pods)
201+
- name: cl2-default-qps
202+
value: $(params.cl2-default-qps)
203+
- name: cl2-default-burst
204+
value: $(params.cl2-default-burst)
205+
- name: cl2-uniform-qps
206+
value: $(params.cl2-uniform-qps)
207+
- name: results-bucket
208+
value: $(params.results-bucket)
209+
- name: nodes
210+
value: $(params.desired-nodes)
211+
- name: cluster-name
212+
value: $(params.cluster-name)
213+
- name: namespace-prefix
214+
value: $(params.namespace-prefix)
215+
- name: namespaces
216+
value: $(params.namespaces)
217+
- name: amp-workspace-id
218+
value: '$(params.amp-workspace-id)'
219+
runAfter:
220+
- create-pod-identity-association
221+
taskRef:
222+
kind: Task
223+
name: load-pod-identity
224+
workspaces:
225+
- name: source
226+
workspace: source
227+
- name: results
228+
workspace: results
229+
- name: config
230+
workspace: config
231+
- name: cw-metrics
232+
params:
233+
- name: dimensions
234+
value: $(params.desired-nodes)
235+
- name: value
236+
value: $(tasks.generate.results.datapoint)
237+
- name: namespace
238+
value: $(params.kubernetes-version)
239+
runAfter:
240+
- generate
241+
taskRef:
242+
kind: Task
243+
name: cloudwatch
244+
finally:
245+
- name: teardown
246+
retries: 10 # To deal with throttling during deletion
247+
params:
248+
- name: cluster-name
249+
value: $(params.cluster-name)
250+
- name: endpoint
251+
value: $(params.endpoint)
252+
- name: namespaces
253+
value: $(params.namespaces)
254+
- name: slack-hook
255+
value: $(params.slack-hook)
256+
- name: slack-message
257+
value: "$(params.slack-message) job completed"
258+
- name: service-role-stack-name
259+
value: $(params.cluster-name)-service-role
260+
- name: node-role-stack-name
261+
value: $(params.cluster-name)-node-role
262+
- name: launch-template-stack-name
263+
value: $(params.cluster-name)-launch-template
264+
taskRef:
265+
kind: Task
266+
name: awscli-eks-cluster-teardown
267+
workspaces:
268+
- name: source
269+
- name: results
270+
- name: config

0 commit comments

Comments
 (0)