From d37238a2d1d686f9cb52f6f72ff763be803cc589 Mon Sep 17 00:00:00 2001 From: Samuel Cassiba Date: Wed, 11 Jul 2018 23:14:03 -0700 Subject: [PATCH] Use Chef Delivery to run verification tests Chef Delivery is the command-line interface for workflow capabilities in Chef Automate and the standard interface that Chef community cookbooks use for verification. Change-Id: I72a1775369f955901260173b061f28640055c808 Implements: blueprint deprecate-rakefiles --- .delivery/project.toml | 9 +++++++++ .zuul.yaml | 10 +++++----- playbooks/delivery.yaml | 8 ++++++++ scripts/json_check.sh | 7 +++++++ 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 .delivery/project.toml create mode 100644 playbooks/delivery.yaml create mode 100755 scripts/json_check.sh diff --git a/.delivery/project.toml b/.delivery/project.toml new file mode 100644 index 0000000..9f05010 --- /dev/null +++ b/.delivery/project.toml @@ -0,0 +1,9 @@ +[local_phases] +unit = 'berks vendor cookbooks' +lint = 'cookstyle --display-cop-names --extra-details' +syntax = "./scripts/json_check.sh" +provision = "echo skipping" +deploy = "echo skipping" +smoke = "echo skipping" +functional = "echo skipping" +cleanup = "echo skipping" diff --git a/.zuul.yaml b/.zuul.yaml index fd3501d..2ff4d1f 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,10 +1,10 @@ - job: - name: openstack-chef-repo-rake + name: openstack-chef-repo-delivery parent: base - description: Run rake tests with openstack-chef-repo + description: Run Chef Delivery tests with openstack-chef-repo required-projects: openstack/openstack-chef-repo pre-run: playbooks/pre.yaml - run: playbooks/rake.yaml + run: playbooks/delivery.yaml timeout: 2700 - job: @@ -21,11 +21,11 @@ name: openstack-chef-repo-jobs check: jobs: - - openstack-chef-repo-rake + - openstack-chef-repo-delivery - openstack-chef-repo-integration gate: jobs: - - openstack-chef-repo-rake + - openstack-chef-repo-delivery - openstack-chef-repo-integration - project: diff --git a/playbooks/delivery.yaml b/playbooks/delivery.yaml new file mode 100644 index 0000000..c361eb3 --- /dev/null +++ b/playbooks/delivery.yaml @@ -0,0 +1,8 @@ +- hosts: all + roles: + - revoke-sudo + tasks: + - name: run delivery local + shell: + cmd: chef exec delivery local all + chdir: '{{ zuul.project.src_dir }}' diff --git a/scripts/json_check.sh b/scripts/json_check.sh new file mode 100755 index 0000000..284ec4e --- /dev/null +++ b/scripts/json_check.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +# check data bags, roles, environment files sanity by loading them in +# chef-zero +for db in $(ls -d data_bags/* | cut -f2 -d'/');do knife data bag from file $db data_bags/$db/*.json -z --secret-file .chef/encrypted_data_bag_secret;done +for role in $(ls roles | grep json);do knife role from file $role -z;done +for env in $(ls environments | grep json);do knife environment from file $env -z ;done