forked from GoogleCloudPlatform/professional-services
-
Notifications
You must be signed in to change notification settings - Fork 6
/
labeltester.jinja
86 lines (82 loc) · 2.74 KB
/
labeltester.jinja
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
{#
Copyright 2017 Google Inc.
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.
#}
{% set ID = env['deployment'] + '-' + env['name'] %}
{% set SUBNET = true if properties["subnet"] else false %}
resources:
{% for i in ['xvde', 'xvdf'] -%}
- name: {{ID}}-{{i}}
type: compute.v1.disk
properties:
zone: {{ properties["zone"] }}
sizeGb: 10
type: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/zones/{{ properties["zone"] }}/diskTypes/pd-ssd
{% endfor %}
- name: {{ID}}
type: compute.v1.instance
properties:
zone: {{ properties['zone'] }}
machineType: zones/{{ properties['zone'] }}/machineTypes/{{ properties["machineType"] }}
metadata:
items:
- key: startup-script
value: |
#!/bin/bash -e
apt-get update
apt-get -y install python-pip
pip install --upgrade google-api-python-client requests
cat > labelmaker.py <<EOF
{{ imports["labelmaker.py"]|indent(12) }}
EOF
chmod +x labelmaker.py
## Valid json please
## Only lowercase characters a-z, numbers 0-9 and dashes allowed
cat <<EOF > /tmp/labels.json
{
"go": "bears",
"looks-like-tag": ""
}
EOF
./labelmaker.py /tmp/labels.json
disks:
- deviceName: boot
boot: true
autoDelete: true
initializeParams:
diskSizeGb: 10
sourceImage: {{ properties["sourceImage" ] }}
{% for i in ['xvde', 'xvdf'] -%}
- deviceName: {{i}}
autoDelete: true
source: $(ref.{{ID}}-{{i}}.selfLink)
{% endfor %}
- deviceName: xvdg
autoDelete: true
type: SCRATCH
initializeParams:
diskType: zones/{{ properties["zone"] }}/diskTypes/local-ssd
networkInterfaces:
- name: {{ ID }}-eth0
network: {{ properties["network"] }}
{% if SUBNET %}
subnetwork: {{ properties["subnet"] }}
{% endif %}
accessConfigs:
- name: eth0
type: ONE_TO_ONE_NAT
serviceAccounts:
- email: {{ properties["serviceAccount"] }}
scopes:
- "https://www.googleapis.com/auth/cloud-platform"
tags:
items:
- {{ env['name'] }}