Install Docker in regular builder 67/92167/1
authorThanh Ha <zxiiro@gmail.com>
Sat, 15 Aug 2020 01:26:50 +0000 (21:26 -0400)
committerThanh Ha <zxiiro@gmail.com>
Sat, 15 Aug 2020 01:26:50 +0000 (21:26 -0400)
Considering that many projects are utilizing Docker now and the only
real difference between the "docker" template and the "builder"
template is whether or not they have docker installed. Let's just
consolidate the 2 image types into a single "builder" one and reduce
the number of special images we are managing.

This also configures the vm flavor packer uses to build to v2-highcpu-4
to make our packer builds faster. We used limit to the lowest size
to ensure that the smallest volume is used however considering we are
explicitly passing a vm_volume_size parameter now let's not limit
ourselves to the CPU size of our build system.

Change-Id: I116ab774b27ddedd5bf55746eb2cf067256797e0
Signed-off-by: Thanh Ha <zxiiro@gmail.com>
packer/provision/local-builder.yaml
packer/templates/builder.json [changed from symlink to file mode: 0644]

index cb56f89c443fe7fcfbe06f7337b8366038d1a817..ff9d444c3f0208b4ba2223d15ee592efb195a2ac 100644 (file)
@@ -1,5 +1,6 @@
 ---
 - import_playbook: ../common-packer/provision/baseline.yaml
+- import_playbook: ../common-packer/provision/docker.yaml
 
 - hosts: all
   become_user: root
deleted file mode 120000 (symlink)
index bd227be506197b62f37dcd7037a31763d97606f7..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../common-packer/templates/builder.json
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..fa19226a85adb5f9813cc9734ba4c22c69b2b211
--- /dev/null
@@ -0,0 +1,62 @@
+{
+  "variables": {
+    "ansible_roles_path": ".galaxy",
+    "arch": "x86_64",
+    "base_image": null,
+    "cloud_network": null,
+    "cloud_user_data": null,
+    "cloud_region": "ca-ymq-1",
+    "cloud_availability_zone": "ca-ymq-2",
+    "vm_use_block_storage": "true",
+    "vm_volume_size": "20",
+    "vm_image_disk_format": "",
+    "distro": null,
+    "flavor": "v2-highcpu-4",
+    "ssh_user": null,
+    "ssh_proxy_host": ""
+  },
+  "builders": [
+    {
+      "name": "vexxhost",
+      "image_name": "ZZCI - {{user `distro`}} - builder - {{user `arch`}} - {{isotime \"20060102-150405.000\"}}",
+      "instance_name": "{{user `distro`}}-builder-{{uuid}}",
+      "source_image_name": "{{user `base_image`}}",
+      "type": "openstack",
+      "region": "{{user `cloud_region`}}",
+      "availability_zone": "{{user `cloud_availability_zone`}}",
+      "networks": ["{{user `cloud_network`}}"],
+      "user_data_file": "{{user `cloud_user_data`}}",
+      "ssh_username": "{{user `ssh_user`}}",
+      "ssh_proxy_host": "{{user `ssh_proxy_host`}}",
+      "flavor": "{{user `flavor`}}",
+      "metadata": {
+        "ci_managed": "yes"
+      },
+      "use_blockstorage_volume": "{{user `vm_use_block_storage`}}",
+      "volume_size": "{{user `vm_volume_size`}}",
+      "image_disk_format": "{{user `vm_image_disk_format`}}"
+    }
+  ],
+  "provisioners": [
+    {
+      "type": "shell",
+      "scripts": ["common-packer/provision/install-python.sh"],
+      "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
+    },
+    {
+      "type": "shell-local",
+      "command": "./common-packer/ansible-galaxy.sh {{user `ansible_roles_path`}}"
+    },
+    {
+      "type": "ansible",
+      "playbook_file": "provision/local-builder.yaml",
+      "ansible_env_vars": [
+        "ANSIBLE_NOCOWS=1",
+        "ANSIBLE_PIPELINING=True",
+        "ANSIBLE_ROLES_PATH={{user `ansible_roles_path`}}",
+        "ANSIBLE_CALLBACK_WHITELIST=profile_tasks",
+        "ANSIBLE_STDOUT_CALLBACK=debug"
+      ]
+    }
+  ]
+}