summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Phelps <jphelps@linuxfoundation.org>2018-04-17 09:23:15 -0500
committerJeremy Phelps <jphelps@linuxfoundation.org>2018-05-21 07:03:55 -0500
commitf7d8c959dcba759f2143bf134c753e07a05a95f6 (patch)
treeceba3fb32fc663a2147dbee98701dd1074bf0529
parentaa7d36d2f292488257a92043174690a6db221ef3 (diff)
Add helm and kubernetes build image
Change-Id: I852052abd33bbcdfb0a3b5a95fbc6f02d86113e6 Issue-ID: CIMAN-155 Signed-off-by: Jeremy Phelps <jphelps@linuxfoundation.org>
-rw-r--r--jjb/ci-management/ci-management-packer-jobs.yaml18
-rw-r--r--packer/provision/helm.yaml39
-rw-r--r--packer/templates/helm.json64
3 files changed, 121 insertions, 0 deletions
diff --git a/jjb/ci-management/ci-management-packer-jobs.yaml b/jjb/ci-management/ci-management-packer-jobs.yaml
index f78186112..055ae1b67 100644
--- a/jjb/ci-management/ci-management-packer-jobs.yaml
+++ b/jjb/ci-management/ci-management-packer-jobs.yaml
@@ -69,3 +69,21 @@
- centos-7
- ubuntu-16.04
templates: redis
+
+- project:
+ name: packer-helm-jobs
+ jobs:
+ - gerrit-packer-merge
+
+ project: ci-management
+ project-name: ci-management
+ branch: master
+ archive-artifacts: '**/*.log'
+
+ build-node: centos7-builder-2c-1g
+
+ platforms:
+ - centos-7
+ - ubuntu-16.04
+ templates: helm
+
diff --git a/packer/provision/helm.yaml b/packer/provision/helm.yaml
new file mode 100644
index 000000000..68291114e
--- /dev/null
+++ b/packer/provision/helm.yaml
@@ -0,0 +1,39 @@
+---
+- import_playbook: ../common-packer/provision/baseline.yaml
+
+- hosts: all
+ become_user: root
+ become_method: sudo
+
+ vars:
+ kubectl_version: 1.8.6
+ helm_version: 2.6.1
+
+ tasks:
+ - name: 'Install kubectl {{kubectl_version}}'
+ get_url:
+ url: https://storage.googleapis.com/kubernetes-release/release/v{{kubectl_version}}/bin/linux/amd64/kubectl
+ dest: /usr/local/bin/kubectl
+ mode: 0775
+ become: yes
+
+ - name: 'Install Helm {{helm_version}}'
+ block:
+ - name: 'Fetch tar.gz'
+ get_url:
+ url: http://storage.googleapis.com/kubernetes-helm/helm-v{{helm_version}}-linux-amd64.tar.gz
+ dest: /tmp/helm-v{{helm_version}}-linux-amd64.tar.gz
+ - name: 'Unarchive'
+ unarchive:
+ src: /tmp/helm-v{{helm_version}}-linux-amd64.tar.gz
+ dest: /tmp
+ remote_src: true
+ become: yes
+ - name: 'Move helm to /usr/local/bin and set as executable'
+ command: 'mv /tmp/linux-amd64/helm /usr/local/bin/helm'
+ become: yes
+ - name: 'Check helm.'
+ command: 'which helm'
+ - name: 'Check kubectl.'
+ command: 'which kubectl'
+
diff --git a/packer/templates/helm.json b/packer/templates/helm.json
new file mode 100644
index 000000000..b34ce9f83
--- /dev/null
+++ b/packer/templates/helm.json
@@ -0,0 +1,64 @@
+{
+ "variables": {
+ "ansible_roles_path": ".galaxy",
+ "base_image": null,
+ "distro": null,
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
+ "cloud_user_data": null,
+ "ssh_user": null,
+ "ssh_proxy_host": ""
+ },
+ "builders": [
+ {
+ "name": "vexxhost",
+ "image_name": "ZZCI - {{user `distro`}} - helm - {{isotime \"20060102-1504\"}}",
+ "source_image_name": "{{user `base_image`}}",
+ "type": "openstack",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "domain_name": "Default",
+ "region": "ca-ymq-1",
+ "availability_zone": "ca-ymq-2",
+ "networks": [
+ "{{user `cloud_network`}}"
+ ],
+ "user_data_file": "{{user `cloud_user_data`}}",
+ "ssh_username": "{{user `ssh_user`}}",
+ "ssh_proxy_host": "{{user `ssh_proxy_host`}}",
+ "flavor": "v1-standard-1",
+ "metadata": {
+ "ci_managed": "yes"
+ }
+ }
+ ],
+ "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/helm.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"
+ ]
+ }
+ ]
+}