Skip to content

Commit b2f2011

Browse files
Consolidate v1 and v2 autoloader configuration deployments (#37)
* Add v2 autoloader deployment to cloudbuild.yaml * Use cbif for conditional project deployments * Remove "thirdparty" cloud build config * Update travis.yml go version, jammy distro * Exclude cmd from test coverage
1 parent e721b61 commit b2f2011

File tree

3 files changed

+109
-137
lines changed

3 files changed

+109
-137
lines changed

.travis.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
dist: jammy
12
language: go
23
go:
3-
- 1.20
4+
- "1.20"
45

56
before_install:
67
- go install -v github.com/mattn/goveralls@latest
@@ -17,4 +18,4 @@ script:
1718
after_success:
1819
# Coveralls
1920
# Upload coverage information for unit tests.
20-
- $HOME/gopath/bin/goveralls -coverprofile=_coverage.cov -service=travis-pro
21+
- $HOME/gopath/bin/goveralls '-ignore=cmd/*/*.go' -coverprofile=_coverage.cov -service=travis-pro

cloudbuild-thirdparty.yaml

Lines changed: 0 additions & 80 deletions
This file was deleted.

cloudbuild.yaml

Lines changed: 106 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -27,74 +27,125 @@ steps:
2727
"push", "gcr.io/$PROJECT_ID/autoloader:${COMMIT_SHA}",
2828
]
2929

30-
- name: gcr.io/cloud-builders/kubectl
31-
id: "Deploy the autoloader"
32-
entrypoint: /bin/bash
30+
- name: gcr.io/$PROJECT_ID/gcloud-jsonnet-cbif:1.1
31+
id: "v1/Setup kubectl credentials for autoloader"
32+
args:
33+
- gcloud container clusters get-credentials
34+
--project="${PROJECT_ID}" --region="$_CLUSTER_REGION" "$_CLUSTER_NAME"
35+
env:
36+
- PROJECT_IN=mlab-sandbox,mlab-staging,mlab-oti
37+
38+
- name: gcr.io/$PROJECT_ID/gcloud-jsonnet-cbif:1.1
39+
id: "v1/Deploy the autoloader"
3340
args:
34-
- -c
3541
- |-
36-
sed -i -e 's/{{IMAGE_TAG}}/'${COMMIT_SHA}'/' \
37-
-e 's/{{PROJECT_ID}}/'${PROJECT_ID}'/' \
38-
-e 's/{{BQ_PROJECT}}/'${PROJECT_ID}'/' \
39-
-e 's/{{VIEW_PROJECT}}/'$_VIEW_PROJECT'/' \
40-
-e 's/{{GCS_PROJECT}}/'$_GCS_PROJECT'/' \
41-
-e 's/{{MLAB_BUCKET}}/'$_MLAB_BUCKET'/' \
42-
-e 's/{{BUCKETS}}/'$_BUCKETS'/' \
42+
sed -i -e 's/{{IMAGE_TAG}}/'${COMMIT_SHA}'/'
43+
-e 's/{{PROJECT_ID}}/'${PROJECT_ID}'/'
44+
-e 's/{{BQ_PROJECT}}/'${PROJECT_ID}'/'
45+
-e 's/{{VIEW_PROJECT}}/'$_VIEW_PROJECT'/'
46+
-e 's/{{GCS_PROJECT}}/'$_GCS_PROJECT'/'
47+
-e 's/{{MLAB_BUCKET}}/'$_MLAB_BUCKET'/'
48+
-e 's/{{BUCKETS}}/'$_BUCKETS'/'
4349
k8s/autoloader.yaml
44-
/builder/kubectl.bash apply -f k8s/autoloader.yaml
50+
- kubectl apply -f k8s/autoloader.yaml
4551
env:
46-
- CLOUDSDK_COMPUTE_REGION=$_CLUSTER_REGION
47-
- CLOUDSDK_CONTAINER_CLUSTER=$_CLUSTER_NAME
52+
- PROJECT_IN=mlab-sandbox,mlab-staging,mlab-oti
4853

49-
# The "hourly" job runs every 3 hours and loads the data for the last day.
50-
- name: gcr.io/cloud-builders/kubectl
51-
id: "Deploy hourly job"
52-
entrypoint: /bin/bash
54+
- name: gcr.io/$PROJECT_ID/gcloud-jsonnet-cbif:1.1
55+
id: "v1/Deploy cron jobs"
5356
args:
54-
- -c
57+
# The "hourly" job runs every 3 hours and loads the data for the last day.
58+
- cp k8s/autoloader-cronjob.yaml.template autoloader-hourly-cronjob.yaml
5559
- |-
56-
sed -e 's/{{FREQUENCY}}/hourly/' \
57-
-e 's/{{CRON_SCHEDULE}}/0 *\/3 * * */' \
58-
-e 's/{{VERSION}}/v1/' \
59-
-e 's/{{LOAD_PERIOD}}/daily/' \
60-
k8s/autoloader-cronjob.yaml.template > autoloader-hourly-cronjob.yaml
61-
/builder/kubectl.bash apply -f autoloader-hourly-cronjob.yaml
60+
sed -i -e 's/{{FREQUENCY}}/hourly/'
61+
-e 's/{{CRON_SCHEDULE}}/0 *\/3 * * */'
62+
-e 's/{{VERSION}}/v1/'
63+
-e 's/{{LOAD_PERIOD}}/daily/'
64+
autoloader-hourly-cronjob.yaml
65+
# The "weekly" job runs once per month and loads the data from the last month
66+
# to the last day.
67+
- cp k8s/autoloader-cronjob.yaml.template autoloader-weekly-cronjob.yaml
68+
- |-
69+
sed -i -e 's/{{FREQUENCY}}/weekly/'
70+
-e 's/{{CRON_SCHEDULE}}/0 0 * * 0/'
71+
-e 's/{{VERSION}}/v1/'
72+
-e 's/{{LOAD_PERIOD}}/monthly/'
73+
autoloader-weekly-cronjob.yaml
74+
# The "monthly" job runs once per month and loads the data from the beginning of
75+
# the archive to the last month.
76+
- cp k8s/autoloader-cronjob.yaml.template autoloader-monthly-cronjob.yaml
77+
- |-
78+
sed -i -e 's/{{FREQUENCY}}/monthly/'
79+
-e 's/{{CRON_SCHEDULE}}/0 0 1 * */'
80+
-e 's/{{VERSION}}/v1/'
81+
-e 's/{{LOAD_PERIOD}}/annually/'
82+
autoloader-monthly-cronjob.yaml
83+
# Apply
84+
- kubectl apply -f autoloader-hourly-cronjob.yaml
85+
- kubectl apply -f autoloader-weekly-cronjob.yaml
86+
- kubectl apply -f autoloader-monthly-cronjob.yaml
6287
env:
63-
- CLOUDSDK_COMPUTE_REGION=$_CLUSTER_REGION
64-
- CLOUDSDK_CONTAINER_CLUSTER=$_CLUSTER_NAME
88+
- PROJECT_IN=mlab-sandbox,mlab-staging,mlab-oti
6589

66-
# The "weekly" job runs once per month and loads the data from the last month
67-
# to the last day.
68-
- name: gcr.io/cloud-builders/kubectl
69-
id: "Deploy weekly job"
70-
entrypoint: /bin/bash
90+
###################
91+
## Autoloader v2
92+
###################
93+
- name: gcr.io/$PROJECT_ID/gcloud-jsonnet-cbif:1.1
94+
id: "v2/Setup kubectl credentials for autoloader"
95+
args:
96+
- gcloud container clusters get-credentials
97+
--project="${PROJECT_ID}" --region="$_CLUSTER_REGION" "autojoin"
98+
env:
99+
- PROJECT_IN=mlab-sandbox,mlab-staging,mlab-autojoin
100+
101+
- name: gcr.io/$PROJECT_ID/gcloud-jsonnet-cbif:1.1
102+
id: "v2/Deploy the autoloader"
71103
args:
72-
- -c
73104
- |-
74-
sed -e 's/{{FREQUENCY}}/weekly/' \
75-
-e 's/{{CRON_SCHEDULE}}/0 0 * * 0/' \
76-
-e 's/{{VERSION}}/v1/' \
77-
-e 's/{{LOAD_PERIOD}}/monthly/' \
78-
k8s/autoloader-cronjob.yaml.template > autoloader-weekly-cronjob.yaml
79-
/builder/kubectl.bash apply -f autoloader-weekly-cronjob.yaml
105+
sed -i -e 's/{{IMAGE_TAG}}/'${COMMIT_SHA}'/'
106+
-e 's/{{PROJECT_ID}}/'${PROJECT_ID}'/'
107+
-e 's/{{BQ_PROJECT}}/'${PROJECT_ID}'/'
108+
-e 's/{{VIEW_PROJECT}}/'$_VIEW_PROJECT'/'
109+
-e 's/{{GCS_PROJECT}}/'$_GCS_PROJECT'/'
110+
-e 's/{{MLAB_BUCKET}}/'$_MLAB_BUCKET'/'
111+
-e 's/{{BUCKETS}}/'$_BUCKETS'/'
112+
k8s/autoloader.yaml
113+
- kubectl apply -f k8s/autoloader.yaml
80114
env:
81-
- CLOUDSDK_COMPUTE_REGION=$_CLUSTER_REGION
82-
- CLOUDSDK_CONTAINER_CLUSTER=$_CLUSTER_NAME
115+
- PROJECT_IN=mlab-sandbox,mlab-staging,mlab-autojoin
83116

84-
# The "monthly" job runs once per month and loads the data from the beginning of
85-
# the archive to the last month.
86-
- name: gcr.io/cloud-builders/kubectl
87-
id: "Deploy monthly job"
88-
entrypoint: /bin/bash
117+
- name: gcr.io/$PROJECT_ID/gcloud-jsonnet-cbif:1.1
118+
id: "v2/Deploy cron jobs"
89119
args:
90-
- -c
120+
# The "hourly" job runs every 3 hours and loads the data for the last day.
121+
- cp k8s/autoloader-cronjob.yaml.template autoloader-hourly-cronjob.yaml
122+
- |-
123+
sed -i -e 's/{{FREQUENCY}}/hourly/'
124+
-e 's/{{CRON_SCHEDULE}}/0 *\/3 * * */'
125+
-e 's/{{VERSION}}/v2/'
126+
-e 's/{{LOAD_PERIOD}}/daily/'
127+
autoloader-hourly-cronjob.yaml
128+
# The "weekly" job runs once per month and loads the data from the last month
129+
# to the last day.
130+
- cp k8s/autoloader-cronjob.yaml.template autoloader-weekly-cronjob.yaml
131+
- |-
132+
sed -i -e 's/{{FREQUENCY}}/weekly/'
133+
-e 's/{{CRON_SCHEDULE}}/0 0 * * 0/'
134+
-e 's/{{VERSION}}/v2/'
135+
-e 's/{{LOAD_PERIOD}}/monthly/'
136+
autoloader-weekly-cronjob.yaml
137+
# The "monthly" job runs once per month and loads the data from the beginning of
138+
# the archive to the last month.
139+
- cp k8s/autoloader-cronjob.yaml.template autoloader-monthly-cronjob.yaml
91140
- |-
92-
sed -e 's/{{FREQUENCY}}/monthly/' \
93-
-e 's/{{CRON_SCHEDULE}}/0 0 1 * */' \
94-
-e 's/{{VERSION}}/v1/' \
95-
-e 's/{{LOAD_PERIOD}}/annually/' \
96-
k8s/autoloader-cronjob.yaml.template > autoloader-monthly-cronjob.yaml
97-
/builder/kubectl.bash apply -f autoloader-monthly-cronjob.yaml
141+
sed -i -e 's/{{FREQUENCY}}/monthly/'
142+
-e 's/{{CRON_SCHEDULE}}/0 0 1 * */'
143+
-e 's/{{VERSION}}/v2/'
144+
-e 's/{{LOAD_PERIOD}}/annually/'
145+
autoloader-monthly-cronjob.yaml
146+
# Apply
147+
- kubectl apply -f autoloader-hourly-cronjob.yaml
148+
- kubectl apply -f autoloader-weekly-cronjob.yaml
149+
- kubectl apply -f autoloader-monthly-cronjob.yaml
98150
env:
99-
- CLOUDSDK_COMPUTE_REGION=$_CLUSTER_REGION
100-
- CLOUDSDK_CONTAINER_CLUSTER=$_CLUSTER_NAME
151+
- PROJECT_IN=mlab-sandbox,mlab-staging,mlab-autojoin

0 commit comments

Comments
 (0)