Skip to content

Commit 54b4bba

Browse files
authored
refactor: deploy Istio in ambient mode (#385)
--------- Signed-off-by: Gerard Vanloo <[email protected]>
1 parent aba153f commit 54b4bba

File tree

23 files changed

+474
-131
lines changed

23 files changed

+474
-131
lines changed

sre/dev/remote_cluster/roles/kops/tasks/create_cluster.yaml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
- name: Create cluster ({{ cluster_name }})
2+
- name: Create cluster configuration ({{ cluster_name }})
33
ansible.builtin.command:
44
argv:
55
- kops
@@ -31,6 +31,21 @@
3131
register: kops_create_output
3232
changed_when: kops_create_output.rc == 0
3333

34+
- name: Apply Cilium changes to configuration
35+
ansible.builtin.command:
36+
argv:
37+
- kops
38+
- edit
39+
- cluster
40+
- --name
41+
- "{{ cluster_name }}"
42+
- --state
43+
- "{{ kops_state_store }}"
44+
- --set
45+
- spec.networking.cilium.cniExclusive=false
46+
register: kops_edit_output
47+
changed_when: kops_edit_output.rc == 0
48+
3449
- name: Build cluster ({{ cluster_name }})
3550
ansible.builtin.command:
3651
argv:

sre/dev/remote_cluster/roles/kops/tasks/create_stack_async.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,38 @@
170170
jid: "{{ item.ansible_job_id }}"
171171
loop: "{{ kops_async_create_results.results }}"
172172

173+
- name: Apply Cilium changes to configuration
174+
ansible.builtin.command:
175+
argv:
176+
- kops
177+
- edit
178+
- cluster
179+
- --name
180+
- "{{ item }}"
181+
- --state
182+
- "{{ kops_state_store }}"
183+
- --set
184+
- spec.networking.cilium.cniExclusive=false
185+
async: 600
186+
loop: "{{ stack_cluster_names }}"
187+
poll: 0
188+
register: kops_async_edit_results
189+
190+
- name: Wait for asynchronous operations to complete
191+
ansible.builtin.async_status:
192+
jid: "{{ item.ansible_job_id }}"
193+
loop: "{{ kops_async_edit_results.results }}"
194+
register: kops_async_edit_poll_results
195+
until: kops_async_edit_poll_results.finished
196+
delay: 60
197+
retries: 10
198+
199+
- name: Clean up ansychronous operations
200+
ansible.builtin.async_status:
201+
mode: cleanup
202+
jid: "{{ item.ansible_job_id }}"
203+
loop: "{{ kops_async_edit_poll_results.results }}"
204+
173205
- name: Asynchronously build kOps clusters
174206
ansible.builtin.command:
175207
argv:

sre/requirements.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ collections:
1010
- name: community.aws
1111
version: 10.0.0
1212
- name: community.general
13-
version: 11.4.0
13+
version: 11.4.1
1414
- name: kubernetes.core
15-
version: 6.1.0
15+
version: 6.2.0

sre/roles/applications/tasks/install_otel_demo.yaml

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
openshift.io/sa.scc.uid-range: 1/2000
2424
openshift.io/sa.scc.supplemental-groups: 1/1000
2525
labels:
26-
istio-injection: enabled
26+
istio.io/dataplane-mode: ambient
2727
it-bench/monitoring: "true"
2828
state: present
2929

@@ -75,7 +75,7 @@
7575
cpu: 15m
7676
memory: 80Mi
7777
limits:
78-
cpu: 30m
78+
cpu: 50m
7979
memory: 150Mi
8080
ad:
8181
podAnnotations:
@@ -94,64 +94,64 @@
9494
replicas: "{{ configuration.cart.replicas }}"
9595
resources:
9696
requests:
97-
cpu: 15m
97+
cpu: 20m
9898
memory: 55Mi
9999
limits:
100-
cpu: 30m
100+
cpu: 50m
101101
memory: 110Mi
102102
checkout:
103103
podAnnotations:
104104
openshift.io/required-scc: restricted-v2
105105
replicas: "{{ configuration.checkout.replicas }}"
106106
resources:
107107
requests:
108-
cpu: 7m
108+
cpu: 20m
109109
memory: 17Mi
110110
limits:
111-
cpu: 15m
111+
cpu: 50m
112112
memory: 40Mi
113113
currency:
114114
podAnnotations:
115115
openshift.io/required-scc: restricted-v2
116116
replicas: "{{ configuration.currency.replicas }}"
117117
resources:
118118
requests:
119-
cpu: 4m
119+
cpu: 10m
120120
memory: 4Mi
121121
limits:
122-
cpu: 10m
122+
cpu: 20m
123123
memory: 10Mi
124124
email:
125125
podAnnotations:
126126
openshift.io/required-scc: restricted-v2
127127
replicas: "{{ configuration.email.replicas }}"
128128
resources:
129129
requests:
130-
cpu: 4m
130+
cpu: 10m
131131
memory: 50Mi
132132
limits:
133-
cpu: 10m
133+
cpu: 30m
134134
memory: 100Mi
135135
flagd:
136136
podAnnotations:
137137
openshift.io/required-scc: restricted-v2
138138
resources:
139139
requests:
140-
cpu: 2m
140+
cpu: 10m
141141
memory: 30Mi
142142
limits:
143-
cpu: 10m
143+
cpu: 20m
144144
memory: 60Mi
145145
fraud-detection:
146146
podAnnotations:
147147
openshift.io/required-scc: restricted-v2
148148
replicas: "{{ configuration.fraud_detection.replicas }}"
149149
resources:
150150
requests:
151-
cpu: 15m
151+
cpu: 20m
152152
memory: 200Mi
153153
limits:
154-
cpu: 50m
154+
cpu: 75m
155155
memory: 400Mi
156156
frontend:
157157
podAnnotations:
@@ -195,7 +195,7 @@
195195
replicas: "{{ configuration.kafka.replicas }}"
196196
resources:
197197
requests:
198-
cpu: 25m
198+
cpu: 50m
199199
memory: 300Mi
200200
limits:
201201
cpu: 400m
@@ -234,7 +234,7 @@
234234
replicas: "{{ configuration.postgres.replicas }}"
235235
resources:
236236
requests:
237-
cpu: 25m
237+
cpu: 10m
238238
memory: 50Mi
239239
limits:
240240
cpu: 50m
@@ -245,10 +245,10 @@
245245
replicas: "{{ configuration.product_catalog.replicas }}"
246246
resources:
247247
requests:
248-
cpu: 7m
248+
cpu: 15m
249249
memory: 15Mi
250250
limits:
251-
cpu: 15m
251+
cpu: 50m
252252
memory: 30Mi
253253
quote:
254254
podAnnotations:
@@ -270,7 +270,7 @@
270270
cpu: 15m
271271
memory: 40Mi
272272
limits:
273-
cpu: 30m
273+
cpu: 50m
274274
memory: 80Mi
275275
shipping:
276276
podAnnotations:
@@ -289,7 +289,7 @@
289289
replicas: "{{ configuration.valkey_cart.replicas }}"
290290
resources:
291291
requests:
292-
cpu: 2m
292+
cpu: 5m
293293
memory: 4Mi
294294
limits:
295295
cpu: 10m
@@ -354,10 +354,10 @@
354354
protocol: TCP
355355
resources:
356356
requests:
357-
cpu: 50m
357+
cpu: 75m
358358
memory: 150Mi
359359
limits:
360-
cpu: 100m
360+
cpu: 150m
361361
memory: 300Mi
362362
prometheus:
363363
enabled: false

sre/roles/tools/defaults/main/helm_releases.yaml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@ tools_helm_releases:
1212
ingress:
1313
name: ingress-nginx
1414
namespace: ingress-nginx
15-
istio_base:
16-
name: istio-base
17-
namespace: istio-base
18-
istio_control_plane:
19-
name: istio-control
20-
namespace: istio-control
15+
istio:
16+
components:
17+
base: istio-base
18+
cni_node_agent: istio-cni
19+
istiod_control_plane: istiod
20+
ztunnel: ztunnel
21+
namespace: istio-system
2122
istio_gateway:
22-
name: istio-gateway
23-
namespace: istio-gateway
23+
name: istio-ingress
24+
namespace: istio-ingress
2425
kubernetes_metrics_server:
2526
name: metrics-server
2627
namespace: metrics-server

sre/roles/tools/defaults/main/instances.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ tools_instances:
55
namespace: clickhouse
66
opentelemetry_collectors:
77
names:
8+
istio: istio
89
jaeger: jaeger
910
kubernetes_events: kubenetes-events
1011
namespace: opentelemetry-collectors
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
# This definition has been left purposely incomplete. This allows
3+
# Dependabot to track the image. The full definition is provided in the
4+
# template version of this object.
5+
6+
apiVersion: opentelemetry.io/v1beta1
7+
kind: OpenTelemetryCollector
8+
metadata:
9+
name: istio
10+
spec:
11+
image: quay.io/it-bench/opentelemetry-collector:1.0.0

sre/roles/tools/tasks/install.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
helm_release: "{{ tools_helm_releases.clickhouse_operator }}"
2525
instance: "{{ tools_instances.clickhouse }}"
2626
when:
27-
- tools_required.clickhouse or tools_required.opentelemetry
27+
- tools_required.clickhouse or tools_required.opentelemetry or tools_required.istio
2828

2929
- name: Import OpenSearch installation tasks
3030
ansible.builtin.import_tasks:
@@ -38,7 +38,7 @@
3838
ansible.builtin.import_tasks:
3939
file: install_opentelemetry.yaml
4040
when:
41-
- tools_required.opentelemetry or tools_required.jaeger
41+
- tools_required.opentelemetry or tools_required.jaeger or tools_required.istio
4242

4343
- name: Import OpenCost installation tasks
4444
ansible.builtin.import_tasks:

0 commit comments

Comments
 (0)