Skip to content

Commit 2b7c24e

Browse files
committed
Add tests for EKS Pod Identity
1 parent 627e023 commit 2b7c24e

File tree

5 files changed

+504
-17
lines changed

5 files changed

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

0 commit comments

Comments
 (0)