Skip to content

Commit 7f81710

Browse files
authored
Migrate CI from AWS queues to Google Kubernetes Engine queues (#1333)
* Migrate CI from AWS queues to Google Kubernetes Engine queues - Add necessary k8s plugin config to the pipeline for use with GKE + Buildkite's agent-stack-k8s helm stack - Remove docker agent tag filter - Install bk agent in Dockerfile for use in the code coverage step - Add comment on source of buildkite-agent installation commands - Add comment on yq explode usage to the top of pipeline.yml
1 parent 3ca6328 commit 7f81710

File tree

3 files changed

+105
-34
lines changed

3 files changed

+105
-34
lines changed

Diff for: .buildkite/pipeline.yml

+95-33
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,155 @@
1+
# `yq 'explode(.)' .buildkite/pipeline.yml` to view expanded anchors/aliases
2+
container:
3+
kubernetes: &kubernetes
4+
gitEnvFrom:
5+
- secretRef:
6+
name: oss-github-ssh-credentials
7+
sidecars:
8+
- image: us-west1-docker.pkg.dev/ci-compute/buildkite-images/buildkite-dind:v1
9+
volumeMounts:
10+
- mountPath: /var/run/
11+
name: docker-sock
12+
securityContext:
13+
privileged: true
14+
allowPrivilegeEscalation: true
15+
mirrorVolumeMounts: true # CRITICAL: this must be at the same indentation level as sidecars
16+
podSpec: &podSpec
17+
containers:
18+
- &commandContainer
19+
image: us-west1-docker.pkg.dev/ci-compute/buildkite-images/buildkite-command-container:v2
20+
command:
21+
- |-
22+
echo "Command step was not overridden."
23+
exit 1
24+
volumeMounts:
25+
- mountPath: /var/run/
26+
name: docker-sock
27+
resources:
28+
requests:
29+
cpu: 7500m
30+
memory: 28G
31+
volumes:
32+
- name: docker-sock
33+
emptyDir: {}
34+
35+
agents:
36+
queue: "buildkite-gcp"
137
steps:
238
- label: "fossa analyze"
3-
agents:
4-
queue: "init"
5-
docker: "*"
639
command: ".buildkite/scripts/fossa.sh"
740

841
- label: ":golang: unit-test"
9-
agents:
10-
queue: "workers"
11-
docker: "*"
12-
commands:
13-
- "make unit_test"
14-
- ".buildkite/scripts/gen_coverage_metadata.sh .build/metadata.txt"
1542
artifact_paths:
1643
- ".build/*/coverage/*.out"
1744
- ".build/cover.out"
1845
- ".build/metadata.txt"
1946
plugins:
47+
- kubernetes:
48+
<<: *kubernetes
49+
podSpec:
50+
<<: *podSpec
51+
containers:
52+
- <<: *commandContainer
53+
command:
54+
- |-
55+
make unit_test
56+
.buildkite/scripts/gen_coverage_metadata.sh .build/metadata.txt
2057
- docker-compose#v3.0.0:
2158
run: unit-test
2259
config: docker/buildkite/docker-compose.yml
2360

2461
- label: ":golangci-lint: validate code is clean"
25-
agents:
26-
queue: "workers"
27-
docker: "*"
28-
command: "./scripts/golint.sh"
2962
artifact_paths: [ ]
3063
retry:
3164
automatic:
32-
limit: 1
65+
limit: 2
3366
plugins:
67+
- kubernetes:
68+
<<: *kubernetes
69+
podSpec:
70+
<<: *podSpec
71+
containers:
72+
- <<: *commandContainer
73+
command:
74+
- |-
75+
./scripts/golint.sh
3476
- docker-compose#v3.0.0:
3577
run: unit-test
3678
config: docker/buildkite/docker-compose.yml
3779

3880
- label: ":golang: integration-test-sticky-off"
39-
agents:
40-
queue: "workers"
41-
docker: "*"
42-
command: "make integ_test_sticky_off"
4381
artifact_paths:
4482
- ".build/*/coverage/*.out"
4583
retry:
4684
automatic:
47-
limit: 1
85+
limit: 2
4886
plugins:
87+
- kubernetes:
88+
<<: *kubernetes
89+
podSpec:
90+
<<: *podSpec
91+
containers:
92+
- <<: *commandContainer
93+
command:
94+
- |-
95+
make integ_test_sticky_off
4996
- docker-compose#v3.0.0:
5097
run: integ-test
5198
config: docker/buildkite/docker-compose.yml
5299

53100
- label: ":golang: integration-test-sticky-on"
54-
agents:
55-
queue: "workers"
56-
docker: "*"
57-
command: "make integ_test_sticky_on"
58101
artifact_paths:
59102
- ".build/*/coverage/*.out"
60103
retry:
61104
automatic:
62-
limit: 1
105+
limit: 2
63106
plugins:
107+
- kubernetes:
108+
<<: *kubernetes
109+
podSpec:
110+
<<: *podSpec
111+
containers:
112+
- <<: *commandContainer
113+
command:
114+
- |-
115+
make integ_test_sticky_on
64116
- docker-compose#v3.0.0:
65117
run: integ-test
66118
config: docker/buildkite/docker-compose.yml
67119

68120
- label: ":golang: integration-test-grpc-adapter"
69-
agents:
70-
queue: "workers"
71-
docker: "*"
72-
command: "make integ_test_grpc"
73121
artifact_paths:
74122
- ".build/*/coverage/*.out"
75123
retry:
76124
automatic:
77-
limit: 1
125+
limit: 2
78126
plugins:
127+
- kubernetes:
128+
<<: *kubernetes
129+
podSpec:
130+
<<: *podSpec
131+
containers:
132+
- <<: *commandContainer
133+
command:
134+
- |-
135+
make integ_test_grpc
79136
- docker-compose#v3.0.0:
80137
run: integ-test-grpc
81138
config: docker/buildkite/docker-compose.yml
82139

83140
- wait
84141

85142
- label: ":golang: code-coverage"
86-
agents:
87-
queue: "workers"
88-
docker: "*"
89-
command: ".buildkite/scripts/gocov.sh"
90143
plugins:
144+
- kubernetes:
145+
<<: *kubernetes
146+
podSpec:
147+
<<: *podSpec
148+
containers:
149+
- <<: *commandContainer
150+
command:
151+
- |-
152+
.buildkite/scripts/gocov.sh
91153
- docker-compose#v3.0.0:
92154
run: coverage-report
93155
config: docker/buildkite/docker-compose.yml

Diff for: docker/buildkite/Dockerfile

+10
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,13 @@ ADD go.mod go.sum /go/src/go.uber.org/cadence/
88
# allow git-status and similar to work
99
RUN git config --global --add safe.directory /go/src/go.uber.org/cadence
1010
RUN GO111MODULE=on go mod download
11+
12+
# Install Buildkite agent
13+
# https://buildkite.com/docs/agent/v3/ubuntu
14+
RUN apt-get install -y apt-transport-https dirmngr curl
15+
RUN curl -fsSL https://keys.openpgp.org/vks/v1/by-fingerprint/32A37959C2FA5C3C99EFBC32A79206696452D198 | \
16+
gpg --dearmor -o /usr/share/keyrings/buildkite-agent-archive-keyring.gpg
17+
RUN echo \
18+
"deb [signed-by=/usr/share/keyrings/buildkite-agent-archive-keyring.gpg] https://apt.buildkite.com/buildkite-agent stable main" | \
19+
tee /etc/apt/sources.list.d/buildkite-agent.list
20+
RUN apt-get update && apt-get install -yy --no-install-recommends buildkite-agent

Diff for: docker/buildkite/docker-compose.yml

-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ services:
116116
- "GO111MODULE=on"
117117
volumes:
118118
- ../../:/go/src/go.uber.org/cadence
119-
- /usr/bin/buildkite-agent:/usr/bin/buildkite-agent
120119

121120
networks:
122121
services-network:

0 commit comments

Comments
 (0)