-
Notifications
You must be signed in to change notification settings - Fork 21
/
packer.json.tmpl
185 lines (185 loc) · 6.59 KB
/
packer.json.tmpl
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
{
"variables": {
"ansible_extra_vars": "",
"build_timestamp": "{{timestamp}}",
"vm_name": "konvoy-ova-{{user `build_name`}}{{user `build_name_extra`}}-{{user `kubernetes_full_version` }}-{{user `build_timestamp`}}",
"cluster": "",
"datastore": "",
"folder": "",
"cpu": "4",
"memory": "8192",
"firmware": "bios",
"cpu_cores": "1",
"disk_size": "20480",
"existing_ansible_ssh_args": "{{env `ANSIBLE_SSH_ARGS`}}",
"ssh_password": "builder",
"ssh_timeout": "60m",
"ssh_username": "builder",
"export_manifest": "none",
"guest_os_type": null,
"ib_version": "{{env `IB_VERSION`}}",
"vsphere_username": "{{env `VSPHERE_USERNAME`}}",
"vsphere_password": "{{env `VSPHERE_PASSWORD`}}",
"vcenter_server": "{{env `VSPHERE_SERVER`}}",
"vsphere_guest_os_type": null,
"insecure_connection": "false",
"linked_clone": "true",
"manifest_output": "manifest.json",
"distribution": "",
"distribution_version": "",
"kubernetes_full_version": "",
"ssh_bastion_host": "{{ user `ssh_bastion_host`}}",
"ssh_bastion_username": "{{ user `ssh_bastion_username`}}",
"ssh_bastion_password": "{{ user `ssh_bastion_password`}}",
"ssh_bastion_private_key_file": "{{ user `ssh_bastion_private_key_file` }}",
"build_name_extra": ""
},
"builders": [
{
"name": "vsphere-clone",
"type": "vsphere-clone",
"CPUs": "{{user `cpu`}}",
"RAM": "{{user `memory`}}",
"cluster": "{{user `cluster`}}",
"communicator": "ssh",
"cpu_cores": "{{user `cpu_cores`}}",
"datacenter": "{{user `datacenter`}}",
"datastore": "{{user `datastore`}}",
"folder": "{{user `folder`}}",
"host": "{{user `host`}}",
"insecure_connection": "{{user `insecure_connection`}}",
"linked_clone": "{{user `linked_clone`}}",
"network": "{{user `network`}}",
"password": "{{user `vsphere_password`}}",
"ssh_password": "{{user `ssh_password`}}",
"ssh_timeout": "4h",
"ssh_username": "{{user `ssh_username`}}",
"ssh_key_exchange_algorithms": [
"curve25519-sha256@libssh.org",
"ecdh-sha2-nistp256",
"ecdh-sha2-nistp384",
"ecdh-sha2-nistp521",
"diffie-hellman-group14-sha1",
"diffie-hellman-group1-sha1"
],
"template": "{{user `template`}}",
"username": "{{user `vsphere_username`}}",
"vcenter_server": "{{user `vcenter_server`}}",
((- if not .DryRun ))
"create_snapshot": "true",
"convert_to_template": "true",
((- end ))
"ssh_bastion_host": "{{ user `ssh_bastion_host` }}",
"ssh_bastion_username": "{{ user `ssh_bastion_username` }}",
"ssh_bastion_password": "{{ user `ssh_bastion_password` }}",
"ssh_bastion_private_key_file": "{{ user `ssh_bastion_private_key_file` }}",
"vm_name": "{{user `vm_name`}}"
}
],
"post-processors": [
{
"name": "packer-manifest",
"type": "manifest",
"custom_data": {
"build_date": "{{isotime}}",
"build_name": "{{user `build_name`}}",
"build_timestamp": "{{user `build_timestamp`}}",
"build_type": "node",
"containerd_version": "{{user `containerd_version`}}",
"custom_role": "{{user `custom_role`}}",
"disk_size": "{{user `disk_size`}}",
"distro_arch": "{{ user `distro_arch` }}",
"distro_name": "{{ user `distro_name` }}",
"distro_version": "{{ user `distro_version` }}",
"firmware": "{{user `firmware`}}",
"guest_os_type": "{{user `guest_os_type`}}",
"ib_version": "{{user `ib_version`}}",
"kubernetes_cni_semver": "{{user `kubernetes_cni_semver`}}",
"kubernetes_semver": "{{user `kubernetes_semver`}}",
"kubernetes_source_type": "{{user `kubernetes_source_type`}}",
"kubernetes_typed_version": "{{user `kubernetes_typed_version`}}",
"os_name": "{{user `os_display_name`}}",
"vsphere_guest_os_type": "{{user `vsphere_guest_os_type`}}"
},
"output": "{{user `manifest_output`}}",
"strip_path": true
}
((- if .DryRun ))
,{
"type": "shell-local",
"environment_vars":[
"GOVC_URL={{user `vcenter_server`}}",
"GOVC_USERNAME={{user `vsphere_username`}}",
"GOVC_PASSWORD={{user `vsphere_password`}}"
],
"inline": [
"echo 'destroying VM {{user `vm_name`}}' && govc vm.destroy {{user `vm_name`}}"
]
}
((- end ))
],
"provisioners":[
{
"type": "ansible",
"playbook_file": "./ansible/provision.yaml",
"user": "{{user `ssh_username`}}",
"ansible_env_vars": [
"ANSIBLE_SSH_ARGS='{{user `existing_ansible_ssh_args`}} -o IdentitiesOnly=yes -o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa'",
"ANSIBLE_REMOTE_TEMP='/tmp/.ansible/'"
],
"extra_arguments": [
"--extra-vars",
"{{ user `ansible_extra_vars` }}"
]
},
{
"type": "shell",
"inline": [
"mkdir -p /tmp/.goss-dir"
]
},
{
"type": "file",
"source": "/usr/local/bin/goss",
"destination": "/tmp/.goss-dir/goss",
"direction": "upload",
"max_retries": 10
},
{
"arch": "{{user `goss_arch`}}",
"format": "{{user `goss_format`}}",
"format_options": "{{user `goss_format_options`}}",
"goss_file": "{{user `goss_entry_file`}}",
"inspect": "{{user `goss_inspect_mode`}}",
"skip_install": true,
"download_path": "/tmp/.goss-dir/goss",
"type": "goss",
"tests": [
"{{user `goss_tests_dir`}}"
],
"url": "{{user `goss_url`}}",
"use_sudo": true,
"vars_file": "{{user `goss_vars_file`}}",
"vars_inline": {
"ARCH": "amd64",
"OS": "{{user `distribution` | lower}}",
"PROVIDER": "vsphere"
},
"vars_env": {
"HTTP_PROXY": "{{user `http_proxy`}}",
"http_proxy": "{{user `http_proxy`}}",
"HTTPS_PROXY": "{{user `https_proxy`}}",
"https_proxy": "{{user `https_proxy`}}",
"NO_PROXY": "{{user `no_proxy`}}",
"no_proxy": "{{user `no_proxy`}}"
},
"version": "{{user `goss_version`}}"
},
{
"type": "shell",
"inline": [
"rm -r /tmp/.goss-dir"
]
}
]
}