forked from GoogleCloudPlatform/click-to-deploy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcloudbuild-k8s.yaml
129 lines (121 loc) · 4.07 KB
/
cloudbuild-k8s.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
timeout: 1800s # 30m
options:
workerPool: projects/${PROJECT_ID}/locations/us-central1/workerPools/gcb-workers-pool-e2
substitutions:
_CLUSTER_NAME: marketplace-testing
_CLUSTER_LOCATION: us-central1
steps:
- id: Pull Dev Image
name: gcr.io/cloud-builders/docker
dir: k8s
entrypoint: bash
args:
- -exc
- |
TAG="$$(cat ./MARKETPLACE_TOOLS_TAG)"
docker pull "gcr.io/cloud-marketplace-tools/k8s/dev:$$TAG"
docker tag "gcr.io/cloud-marketplace-tools/k8s/dev:$$TAG" "gcr.io/cloud-marketplace-tools/k8s/dev:local"
- id: Initialize Credentials
name: gcr.io/cloud-builders/gcloud
waitFor:
- '-'
entrypoint: bash
args:
- -exc
- |
gcloud container clusters get-credentials '${_CLUSTER_NAME}' --zone '${_CLUSTER_LOCATION}' --project '$PROJECT_ID'
mkdir -p /workspace/.kube/
cp -r $$HOME/.kube/ /workspace/
mkdir -p /workspace/.config/gcloud/
cp -r $$HOME/.config/gcloud/ /workspace/.config/
- id: Install CRDs
name: gcr.io/cloud-marketplace-tools/k8s/dev:local
waitFor:
- Initialize Credentials
- Pull Dev Image
env:
- 'KUBE_CONFIG=/workspace/.kube'
- 'GCLOUD_CONFIG=/workspace/.config/gcloud'
# Use local Docker network named cloudbuild as described here:
# https://cloud.google.com/cloud-build/docs/overview#build_configuration_and_build_steps
- 'EXTRA_DOCKER_PARAMS=--net cloudbuild'
dir: k8s/${_SOLUTION_NAME}
entrypoint: bash
args:
- -exc
- |
gcloud container clusters get-credentials '${_CLUSTER_NAME}' --zone '${_CLUSTER_LOCATION}' --project '$PROJECT_ID'
make crd/install
- id: Run diagnostic tool
name: gcr.io/cloud-marketplace-tools/k8s/dev:local
waitFor:
- Install CRDs
env:
- 'KUBE_CONFIG=/workspace/.kube'
- 'GCLOUD_CONFIG=/workspace/.config/gcloud'
# Use local Docker network named cloudbuild as described here:
# https://cloud.google.com/cloud-build/docs/overview#build_configuration_and_build_steps
- 'EXTRA_DOCKER_PARAMS=--net cloudbuild'
dir: k8s/${_SOLUTION_NAME}
args:
- make
- app/doctor
- id: Build Solution
name: gcr.io/cloud-marketplace-tools/k8s/dev:local
waitFor:
- Run diagnostic tool
env:
- 'KUBE_CONFIG=/workspace/.kube'
- 'GCLOUD_CONFIG=/workspace/.config/gcloud'
# Use local Docker network named cloudbuild as described here:
# https://cloud.google.com/cloud-build/docs/overview#build_configuration_and_build_steps
- 'EXTRA_DOCKER_PARAMS=--net cloudbuild'
dir: k8s/${_SOLUTION_NAME}
args:
- make
- -j4
- app/build
- id: Verify Solution
name: gcr.io/cloud-marketplace-tools/k8s/dev:local
waitFor:
- Build Solution
env:
- 'KUBE_CONFIG=/workspace/.kube'
- 'GCLOUD_CONFIG=/workspace/.config/gcloud'
# Use local Docker network named cloudbuild as described here:
# https://cloud.google.com/cloud-build/docs/overview#build_configuration_and_build_steps
- 'EXTRA_DOCKER_PARAMS=--net cloudbuild'
dir: k8s/${_SOLUTION_NAME}
args:
- make
- -j4
- app/verify
- id: Verify Solution Extra Configs
name: gcr.io/cloud-marketplace-tools/k8s/dev:local
waitFor:
- Build Solution
env:
- 'KUBE_CONFIG=/workspace/.kube'
- 'GCLOUD_CONFIG=/workspace/.config/gcloud'
# Use local Docker network named cloudbuild as described here:
# https://cloud.google.com/cloud-build/docs/overview#build_configuration_and_build_steps
- 'EXTRA_DOCKER_PARAMS=--net cloudbuild'
dir: k8s/${_SOLUTION_NAME}
entrypoint: bash
args:
- -exc
- |
bash <(jq -r --arg solution ${_SOLUTION_NAME} '.[$solution] | .[]? | "\(.env_vars | join(" ")) make -j4 app/verify"' ../../scripts/extra_configs.json)