From: Dileep Ranganathan Date: Fri, 6 Dec 2019 01:20:25 +0000 (-0800) Subject: Add helm build image X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ci-management.git;a=commitdiff_plain;h=dd0fc7ff33defd9b6084470aa2251a98d775a0b7 Add helm build image Added helm build image Signed-off-by: Dileep Ranganathan Change-Id: I238b96c4f9af04f08efeec8717b89b3f5dd4e639 --- diff --git a/jjb/ci-management/ci-packer.yaml b/jjb/ci-management/ci-packer.yaml index 2f00039..97dbbf3 100644 --- a/jjb/ci-management/ci-packer.yaml +++ b/jjb/ci-management/ci-packer.yaml @@ -41,3 +41,18 @@ - ubuntu-16.04 - ubuntu-18.04 - ubuntu-18.04-arm64 + +- project: + name: packer-helm-jobs + jobs: + - gerrit-packer-merge + + packer-version: 1.4.2 + project: ci-management + project-name: ci-management + build-node: centos7-builder-2c-1g + build-timeout: 90 + + platforms: + - ubuntu-18.04 + templates: helm \ No newline at end of file diff --git a/packer/provision/helm.yaml b/packer/provision/helm.yaml new file mode 100644 index 0000000..0518fbf --- /dev/null +++ b/packer/provision/helm.yaml @@ -0,0 +1,60 @@ +--- +- import_playbook: ../common-packer/provision/docker.yaml + +- hosts: all + become_user: root + become_method: sudo + + vars: + golang_version: 1.13.5 + helm_version: 2.16.1 + kubectl_version: 1.16.3 + + tasks: + - name: 'Install GoLang {{golang_version}}' + block: + - name: 'Fetch golang {{golang_version}} to /tmp/go{{golang_version}}.linux-amd64.tar.gz' + get_url: + url: 'https://storage.googleapis.com/golang/go{{golang_version}}.linux-amd64.tar.gz' + dest: '/tmp/go{{golang_version}}.linux-amd64.tar.gz' + checksum: '{{golang_checksum}}' + - name: 'Install golang {{golang_version}} to /usr/local' + unarchive: + src: '/tmp/go{{golang_version}}.linux-amd64.tar.gz' + dest: /usr/local + remote_src: true + become: true + - name: Create symbolic link to go bin + file: + src: "/usr/local/go/bin/go" + dest: "/usr/bin/go" + state: link + become: true + + - 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: https://get.helm.sh/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 0000000..020bb0a --- /dev/null +++ b/packer/templates/helm.json @@ -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": "30", + "vm_image_disk_format": "", + "distro": null, + "flavor": "v1-standard-1", + "ssh_user": null, + "ssh_proxy_host": "" + }, + "builders": [ + { + "name": "vexxhost", + "image_name": "ZZCI - {{user `distro`}} - helm - {{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/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" + ] + } + ] +}