Skip to content

Commit 308c65d

Browse files
committed
Refactor
1 parent 92e9bb9 commit 308c65d

6 files changed

+125
-100
lines changed

.gitlab-ci.yml

+102-67
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@ variables:
77
BUILD_DEMO_REGISTRY: 172597598159.dkr.ecr.us-east-1.amazonaws.com/otel-demo
88
BUILD_SANDBOX_REGISTRY: 601427279990.dkr.ecr.us-east-1.amazonaws.com/otel-demo
99
stages:
10-
- build
10+
- build-push
1111
- prod-deploy
1212
- staging-deploy
13-
# =======================================================================
14-
# Build and deploy the images used for CI
15-
# =======================================================================
16-
.build-ci-image: &build-ci-image
17-
stage: build
13+
14+
# BUILD AND PUSH IMAGES
15+
.build-push-ci-image: &build-push-ci-image
16+
stage: build-push
1817
tags: ["runner:docker"]
1918
image: $CI_IMAGE
2019
script:
@@ -27,98 +26,98 @@ stages:
2726
- if [[ $CI_COMMIT_REF_NAME == "prod" ]]; then
2827
docker push $BUILD_DEMO_REGISTRY:$TAG;
2928
fi
30-
build-ci-image-accountingservice:
31-
!!merge <<: *build-ci-image
29+
build-push-ci-image-accountingservice:
30+
!!merge <<: *build-push-ci-image
3231
variables:
3332
DOCKERFILE: src/accountingservice/Dockerfile
3433
IMAGE_TAG_SUFFIX: accountingservice
3534
CONTEXT: .
36-
build-ci-image-adservice:
37-
!!merge <<: *build-ci-image
35+
build-push-ci-image-adservice:
36+
!!merge <<: *build-push-ci-image
3837
variables:
3938
DOCKERFILE: src/adservice/Dockerfile
4039
IMAGE_TAG_SUFFIX: adservice
4140
CONTEXT: .
42-
build-ci-image-cartservice:
43-
!!merge <<: *build-ci-image
41+
build-push-ci-image-cartservice:
42+
!!merge <<: *build-push-ci-image
4443
variables:
4544
DOCKERFILE: src/cartservice/src/Dockerfile
4645
IMAGE_TAG_SUFFIX: cartservice
4746
CONTEXT: .
48-
build-ci-image-checkoutservice:
49-
!!merge <<: *build-ci-image
47+
build-push-ci-image-checkoutservice:
48+
!!merge <<: *build-push-ci-image
5049
variables:
5150
DOCKERFILE: src/checkoutservice/Dockerfile
5251
IMAGE_TAG_SUFFIX: checkoutservice
5352
CONTEXT: .
54-
build-ci-image-currencyservice:
55-
!!merge <<: *build-ci-image
53+
build-push-ci-image-currencyservice:
54+
!!merge <<: *build-push-ci-image
5655
variables:
5756
DOCKERFILE: src/currencyservice/Dockerfile
5857
IMAGE_TAG_SUFFIX: currencyservice
5958
CONTEXT: src/currencyservice
60-
build-ci-image-emailservice:
61-
!!merge <<: *build-ci-image
59+
build-push-ci-image-emailservice:
60+
!!merge <<: *build-push-ci-image
6261
variables:
6362
DOCKERFILE: src/emailservice/Dockerfile
6463
IMAGE_TAG_SUFFIX: emailservice
6564
CONTEXT: src/emailservice
66-
build-ci-image-frauddetectionservice:
67-
!!merge <<: *build-ci-image
65+
build-push-ci-image-frauddetectionservice:
66+
!!merge <<: *build-push-ci-image
6867
variables:
6968
DOCKERFILE: src/frauddetectionservice/Dockerfile
7069
IMAGE_TAG_SUFFIX: frauddetectionservice
7170
CONTEXT: .
72-
build-ci-image-frontend:
73-
!!merge <<: *build-ci-image
71+
build-push-ci-image-frontend:
72+
!!merge <<: *build-push-ci-image
7473
variables:
7574
DOCKERFILE: src/frontend/Dockerfile
7675
IMAGE_TAG_SUFFIX: frontend
7776
CONTEXT: .
78-
build-ci-image-frontendproxy:
79-
!!merge <<: *build-ci-image
77+
build-push-ci-image-frontendproxy:
78+
!!merge <<: *build-push-ci-image
8079
variables:
8180
DOCKERFILE: src/frontendproxy/Dockerfile
8281
IMAGE_TAG_SUFFIX: frontendproxy
8382
CONTEXT: .
84-
build-ci-image-imageprovider:
85-
!!merge <<: *build-ci-image
83+
build-push-ci-image-imageprovider:
84+
!!merge <<: *build-push-ci-image
8685
variables:
8786
DOCKERFILE: src/imageprovider/Dockerfile
8887
IMAGE_TAG_SUFFIX: imageprovider
8988
CONTEXT: .
90-
build-ci-image-loadgenerator:
91-
!!merge <<: *build-ci-image
89+
build-push-ci-image-loadgenerator:
90+
!!merge <<: *build-push-ci-image
9291
variables:
9392
DOCKERFILE: src/loadgenerator/Dockerfile
9493
IMAGE_TAG_SUFFIX: loadgenerator
9594
CONTEXT: .
96-
build-ci-image-paymentservice:
97-
!!merge <<: *build-ci-image
95+
build-push-ci-image-paymentservice:
96+
!!merge <<: *build-push-ci-image
9897
variables:
9998
DOCKERFILE: src/paymentservice/Dockerfile
10099
IMAGE_TAG_SUFFIX: paymentservice
101100
CONTEXT: .
102-
build-ci-image-productcatalogservice:
103-
!!merge <<: *build-ci-image
101+
build-push-ci-image-productcatalogservice:
102+
!!merge <<: *build-push-ci-image
104103
variables:
105104
DOCKERFILE: src/productcatalogservice/Dockerfile
106105
IMAGE_TAG_SUFFIX: productcatalogservice
107106
CONTEXT: .
108-
build-ci-image-quoteservice:
109-
!!merge <<: *build-ci-image
107+
build-push-ci-image-quoteservice:
108+
!!merge <<: *build-push-ci-image
110109
variables:
111110
DOCKERFILE: src/quoteservice/Dockerfile
112111
IMAGE_TAG_SUFFIX: quoteservice
113112
CONTEXT: .
114-
build-ci-image-recommendationservice:
115-
!!merge <<: *build-ci-image
113+
build-push-ci-image-recommendationservice:
114+
!!merge <<: *build-push-ci-image
116115
variables:
117116
DOCKERFILE: src/recommendationservice/Dockerfile
118117
IMAGE_TAG_SUFFIX: recommendationservice
119118
CONTEXT: .
120-
build-ci-image-shippingservice:
121-
stage: build
119+
build-push-ci-image-shippingservice:
120+
stage: build-push
122121
tags: ["runner:docker"]
123122
image: $CI_IMAGE
124123
script:
@@ -131,18 +130,20 @@ build-ci-image-shippingservice:
131130
DOCKERFILE: src/shippingservice/Dockerfile
132131
IMAGE_TAG_SUFFIX: shippingservice
133132
CONTEXT: .
134-
build-ci-image-kafka:
135-
!!merge <<: *build-ci-image
133+
build-push-ci-image-kafka:
134+
!!merge <<: *build-push-ci-image
136135
variables:
137136
DOCKERFILE: src/kafka/Dockerfile
138137
IMAGE_TAG_SUFFIX: kafka
139138
CONTEXT: .
140-
build-ci-image-orderproducer:
141-
!!merge <<: *build-ci-image
139+
build-push-ci-image-orderproducer:
140+
!!merge <<: *build-push-ci-image
142141
variables:
143142
DOCKERFILE: src/orderproducerservice/Dockerfile
144143
IMAGE_TAG_SUFFIX: orderproducer
145144
CONTEXT: .
145+
146+
# PROD DEPLOY DEMO / AGENT
146147
.prod-deploy: &prod-deploy
147148
stage: prod-deploy
148149
tags: ["runner:docker", "size:large"]
@@ -161,6 +162,8 @@ build-ci-image-orderproducer:
161162
# # For debugging
162163
# - aws sts get-caller-identity
163164
- bash $SCRIPT $CLUSTER_NAME $CLUSTER_ARN $REGION $NAMESPACE
165+
166+
# Demo env:otel
164167
prod-deploy-otel-demo-eks:
165168
!!merge <<: *prod-deploy
166169
variables:
@@ -169,6 +172,11 @@ prod-deploy-otel-demo-eks:
169172
CLUSTER_ARN: arn:aws:eks:us-east-1:172597598159:cluster/prod-eks-otel-a-us-east-1
170173
REGION: us-east-1
171174
NAMESPACE: otel
175+
ZOOKEEPER_DEPLOYMENT: deployment.yaml
176+
ORDERPRODUCER_DEPLOYMENT: deployment.yaml
177+
REGISTRY: $BUILD_DEMO_REGISTRY
178+
179+
# Demo env:otel-ingest
172180
prod-deploy-otel-ingest-demo-eks:
173181
!!merge <<: *prod-deploy
174182
variables:
@@ -177,6 +185,11 @@ prod-deploy-otel-ingest-demo-eks:
177185
CLUSTER_ARN: arn:aws:eks:us-east-1:172597598159:cluster/prod-eks-otel-ingest-a-usea-1
178186
REGION: us-east-1
179187
NAMESPACE: otel-ingest
188+
ZOOKEEPER_DEPLOYMENT: deployment.yaml
189+
ORDERPRODUCER_DEPLOYMENT: deployment.yaml
190+
REGISTRY: $BUILD_DEMO_REGISTRY
191+
192+
# Agent env:otel-ingest
180193
prod-deploy-otel-ingest-agent-eks:
181194
!!merge <<: *prod-deploy
182195
variables:
@@ -188,6 +201,8 @@ prod-deploy-otel-ingest-agent-eks:
188201
VALUES: ./ci/datadog-agent-values-prod.yaml
189202
RELEASE_NAME: datadog-agent
190203
DD_VALUES: ./ci/datadog-agent-ddvalues-prod.yaml
204+
205+
# STAGING DEPLOY DEMO / AGENT
191206
.staging-deploy: &staging-deploy
192207
stage: staging-deploy
193208
tags: ["runner:docker", "size:large"]
@@ -212,34 +227,76 @@ staging-deploy-otel-demo-eks:
212227
!!merge <<: *staging-deploy
213228
variables:
214229
NAMESPACE: otel-staging
215-
VALUES: ./ci/values-staging.yaml
230+
VALUES:
216231
NODE_GROUP: ng-3
217232
SCRIPT: ./ci/scripts/ci-deploy-demo-staging.sh
218233
CLUSTER_NAME: dd-otel
219234
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
220235
REGION: us-east-1
236+
ZOOKEEPER_DEPLOYMENT: deployment-staging.yaml
237+
ORDERPRODUCER_DEPLOYMENT: deployment-staging.yaml
238+
REGISTRY: $BUILD_SANDBOX_REGISTRY
239+
221240
# Demo env:otel-ingest-staging
222241
staging-deploy-otel-ingest-demo-eks:
223242
!!merge <<: *staging-deploy
224243
variables:
225244
NAMESPACE: otel-ingest-staging
226-
VALUES: ./ci/values-ingest-staging.yaml
245+
VALUES:
227246
NODE_GROUP: ng-4
228247
SCRIPT: ./ci/scripts/ci-deploy-demo-staging.sh
229248
CLUSTER_NAME: dd-otel
230249
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
231250
REGION: us-east-1
251+
ZOOKEEPER_DEPLOYMENT: deployment-staging.yaml
252+
ORDERPRODUCER_DEPLOYMENT: deployment-staging.yaml
253+
REGISTRY: $BUILD_SANDBOX_REGISTRY
254+
255+
# Demo env:otel-gateway
256+
staging-deploy-gateway-demo-eks:
257+
!!merge <<: *staging-deploy
258+
variables:
259+
NAMESPACE: otel-gateway
260+
VALUES: ./ci/values-gateway.yaml
261+
NODE_GROUP: ng-5
262+
SCRIPT: ./ci/scripts/ci-deploy-demo-staging.sh
263+
CLUSTER_NAME: dd-otel
264+
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
265+
REGION: us-east-1
266+
ZOOKEEPER_DEPLOYMENT: deployment-staging.yaml
267+
ORDERPRODUCER_DEPLOYMENT: deployment-staging.yaml
268+
REGISTRY: $BUILD_SANDBOX_REGISTRY
269+
270+
# Demo env:otel-ds-gateway
271+
staging-deploy-ds-gateway-demo-eks:
272+
!!merge <<: *staging-deploy
273+
variables:
274+
NAMESPACE: otel-ds-gateway
275+
VALUES:
276+
NODE_GROUP: ng-6
277+
SCRIPT: ./ci/scripts/ci-deploy-demo-staging.sh
278+
CLUSTER_NAME: dd-otel
279+
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
280+
REGION: us-east-1
281+
ZOOKEEPER_DEPLOYMENT: deployment-staging.yaml
282+
ORDERPRODUCER_DEPLOYMENT: deployment-staging.yaml
283+
REGISTRY: $BUILD_SANDBOX_REGISTRY
284+
232285
# Demo env:dd-ingest-staging
233286
staging-deploy-dd-ingest-demo-eks:
234287
!!merge <<: *staging-deploy
235288
variables:
236289
NAMESPACE: dd-ingest-staging
237-
VALUES: ./ci/values-dd-ingest-staging.yaml
290+
VALUES:
238291
NODE_GROUP: ng-7
239292
SCRIPT: ./ci/scripts/ci-deploy-demo-staging.sh
240293
CLUSTER_NAME: dd-otel
241294
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
242295
REGION: us-east-1
296+
ZOOKEEPER_DEPLOYMENT: deployment-staging.yaml
297+
ORDERPRODUCER_DEPLOYMENT: deployment-staging.yaml
298+
REGISTRY: $BUILD_SANDBOX_REGISTRY
299+
243300
# Agent env:otel-ingest-staging
244301
staging-deploy-otel-ingest-agent-eks:
245302
!!merge <<: *staging-deploy
@@ -264,25 +321,3 @@ staging-deploy-dd-ingest-agent-eks:
264321
VALUES: ./ci/datadog-agent-values-dd-staging.yaml
265322
DD_VALUES: ./ci/datadog-agent-values-dd.yaml
266323
RELEASE_NAME: datadog-agent-dd
267-
# Demo env:otel-gateway
268-
staging-deploy-gateway-demo-eks:
269-
!!merge <<: *staging-deploy
270-
variables:
271-
NAMESPACE: otel-gateway
272-
VALUES: ./ci/values-gateway.yaml
273-
NODE_GROUP: ng-5
274-
SCRIPT: ./ci/scripts/ci-deploy-demo-staging.sh
275-
CLUSTER_NAME: dd-otel
276-
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
277-
REGION: us-east-1
278-
# Demo env:otel-ds-gateway
279-
staging-deploy-ds-gateway-demo-eks:
280-
!!merge <<: *staging-deploy
281-
variables:
282-
NAMESPACE: otel-ds-gateway
283-
VALUES: ./ci/values-ds-gateway.yaml
284-
NODE_GROUP: ng-6
285-
SCRIPT: ./ci/scripts/ci-deploy-demo-staging.sh
286-
CLUSTER_NAME: dd-otel
287-
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
288-
REGION: us-east-1

ci/scripts/ci-deploy-demo-staging.sh

+23-17
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,35 @@ region=$REGION
1515
namespace=$NAMESPACE
1616
nodeGroup=$NODE_GROUP
1717
values=$VALUES
18+
zookeeper_deployment=$ZOOKEEPER_DEPLOYMENT
19+
orderproducer_deployment=$ORDERPRODUCER_DEPLOYMENT
20+
registry=$REGISTRY
1821

1922
install_demo() {
20-
# Set the namespace and release name
2123
release_name="opentelemetry-demo"
2224

23-
# Deploy zookeeper which is not a default component.
24-
sed -i "s/PLACEHOLDER_NODE_GROUP/$nodeGroup/g" ./src/zookeeperservice/deployment-staging.yaml
25-
kubectl apply -f ./src/zookeeperservice/deployment-staging.yaml -n "${namespace}"
26-
27-
# if repo already exists, helm 3+ will skip
28-
helm --debug repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
29-
30-
# --install will run `helm install` if not already present.
31-
helm --debug upgrade "${release_name}" -n "${namespace}" open-telemetry/opentelemetry-demo --install \
25+
# HELM COMMAND
26+
helm_cmd= "helm --debug upgrade ${release_name} -n ${namespace} open-telemetry/opentelemetry-demo --install \
3227
-f ./ci/values.yaml \
33-
-f $values \
3428
--set-string default.image.tag="v$CI_COMMIT_SHORT_SHA" \
35-
--set-string default.image.repository="601427279990.dkr.ecr.us-east-1.amazonaws.com/otel-demo"
36-
37-
# Deploy java order producer which is not a default component.
38-
sed -i "s/PLACEHOLDER_COMMIT_SHA/v$CI_COMMIT_SHORT_SHA/g" ./src/orderproducerservice/deployment-staging.yaml
39-
sed -i "s/PLACEHOLDER_NODE_GROUP/$nodeGroup/g" ./src/orderproducerservice/deployment-staging.yaml
40-
kubectl apply -f ./src/orderproducerservice/deployment-staging.yaml -n "${namespace}"
29+
--set-string default.image.repository=${REGISTRY}"
30+
31+
# REPLACEMENTS
32+
if [ -n "$nodegroup" ]; then
33+
sed -i "s/PLACEHOLDER_NODE_GROUP/$nodeGroup/g" ./src/zookeeperservice/${zookeeper_deployment}
34+
sed -i "s/PLACEHOLDER_NODE_GROUP/$nodeGroup/g" ./src/orderproducerservice/${orderproducer_deployment}
35+
helm_cmd+=" --set default.schedulingRules.nodeSelector.\"alpha\\.eksctl\\.io/nodegroup-name\"=${nodegroup}"
36+
fi
37+
if [ -n "$values" ]; then
38+
helm_cmd+=" -f $values"
39+
fi
40+
sed -i "s/PLACEHOLDER_COMMIT_SHA/v$CI_COMMIT_SHORT_SHA/g" ./src/orderproducerservice/${orderproducer_deployment}
41+
42+
# COMMANDS
43+
kubectl apply -f ./src/zookeeperservice/${zookeeper_deployment} -n "${namespace}"
44+
helm --debug repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
45+
eval $helm_cmd
46+
kubectl apply -f ./src/orderproducerservice/${orderproducer_deployment} -n "${namespace}"
4147
}
4248

4349
###########################################################################################################

ci/values-dd-ingest-staging.yaml

-4
This file was deleted.

ci/values-ds-gateway.yaml

-4
This file was deleted.

ci/values-ingest-staging.yaml

-4
This file was deleted.

ci/values-staging.yaml

-4
This file was deleted.

0 commit comments

Comments
 (0)