From ea3f5be9c252396a74b323db55d789073cac0cd3 Mon Sep 17 00:00:00 2001 From: Tobias Urdin Date: Wed, 26 Jun 2019 14:01:24 +0200 Subject: [PATCH] Use PDK to build puppet module The puppet module command is deprecated and is replaced by using the PDK [1] [2]. The difference between the two commands is only the output in the pkg directory. The old puppet module command will create a folder and a tarball with the module. $ls pkg/ openstack-openstacklib-14.1.0/ openstack-openstacklib-14.1.0.tar.gz While the PDK will only create the tarball in the pkg folder. This should be no problem since I can't find anywhere were we are using the generated folder in the pkg folder. This is part 2 in the series, it makes the actual change. Depends-On: https://review.opendev.org/667589 Depends-On: https://review.opendev.org/667595 Needed-By: https://review.opendev.org/627554 Needed-By: https://review.opendev.org/627566 Change-Id: Id40ff665e92606455ef6b544f11394db2201c8b9 --- roles/build-puppet-module/README.rst | 10 ++++++++-- roles/build-puppet-module/tasks/main.yaml | 12 +++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/roles/build-puppet-module/README.rst b/roles/build-puppet-module/README.rst index edf50c5e4..ec3a6dacb 100644 --- a/roles/build-puppet-module/README.rst +++ b/roles/build-puppet-module/README.rst @@ -1,5 +1,11 @@ -An ansible role to build a Puppet module. This role assumes that Puppet is -already installed on the target system (either manually or using bindep). +An Ansible role to build a Puppet module using the Puppet +Development Kit (PDK). + +.. note:: + + This role requires installed Ruby, Ruby development and build tools + (gcc/g++ and make) packages, they can be installed using the + :zuul:role:`install-pdk-dependencies` role. **Role Variables** diff --git a/roles/build-puppet-module/tasks/main.yaml b/roles/build-puppet-module/tasks/main.yaml index a8188696c..4fd62dfbf 100644 --- a/roles/build-puppet-module/tasks/main.yaml +++ b/roles/build-puppet-module/tasks/main.yaml @@ -1,4 +1,14 @@ +- name: Find out ruby gem user directory + command: ruby -e 'puts Gem.user_dir' + register: gem_user_dir + +- name: Install pdk gem + gem: + name: pdk + - name: Build puppet module - command: puppet module build . + command: pdk build --force args: chdir: "{{ puppet_module_chdir }}" + environment: + PATH: "{{ gem_user_dir.stdout }}/bin:{{ ansible_env.PATH }}"