From e6f31aa6a8d88bc0b0b0f7ae44a8dad1b16d6a50 Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Thu, 24 Aug 2017 10:07:23 -0600 Subject: Enable config for docker daemon debug Exposes a way to configure the docker daemon with debug enabled. Change-Id: I654a70c8bb7753679be83d78ca653ed44c3a7395 Related-Bug: #1710533 (cherry picked from commit 44b90c9a79146139cbcbe7f560bd1df667cca780) --- manifests/profile/base/docker.pp | 20 ++++++++++++++------ spec/classes/tripleo_profile_base_docker_spec.rb | 24 +++++++++++++++++++++++- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/manifests/profile/base/docker.pp b/manifests/profile/base/docker.pp index 8cb4cdd..73731ad 100644 --- a/manifests/profile/base/docker.pp +++ b/manifests/profile/base/docker.pp @@ -44,6 +44,10 @@ # [*step*] # step defaults to hiera('step') # +# [*debug*] +# Boolean. Value to configure docker daemon's debug configuration. +# Defaults to false +# # DEPRECATED PARAMETERS # # [*insecure_registry_address*] @@ -62,11 +66,12 @@ # class tripleo::profile::base::docker ( $insecure_registries = undef, - $registry_mirror = false, - $docker_options = '--log-driver=journald --signature-verification=false --iptables=false', - $configure_storage = true, - $storage_options = '-s overlay2', - $step = Integer(hiera('step')), + $registry_mirror = false, + $docker_options = '--log-driver=journald --signature-verification=false --iptables=false', + $configure_storage = true, + $storage_options = '-s overlay2', + $step = Integer(hiera('step')), + $debug = false, # DEPRECATED PARAMETERS $insecure_registry_address = undef, $docker_namespace = undef, @@ -133,6 +138,9 @@ class tripleo::profile::base::docker ( $mirror_changes = [ 'rm dict/entry[. = "registry-mirrors"]', ] } + $debug_changes = ['set dict/entry[. = "debug"] "debug"', + "set dict/entry[. = \"debug\"]/const \"${debug}\"",] + file { '/etc/docker/daemon.json': ensure => 'present', content => '{}', @@ -144,7 +152,7 @@ class tripleo::profile::base::docker ( augeas { 'docker-daemon.json': lens => 'Json.lns', incl => '/etc/docker/daemon.json', - changes => $mirror_changes, + changes => concat($mirror_changes, $debug_changes), subscribe => Package['docker'], notify => Service['docker'], require => File['/etc/docker/daemon.json'], diff --git a/spec/classes/tripleo_profile_base_docker_spec.rb b/spec/classes/tripleo_profile_base_docker_spec.rb index 146d784..328948e 100644 --- a/spec/classes/tripleo_profile_base_docker_spec.rb +++ b/spec/classes/tripleo_profile_base_docker_spec.rb @@ -82,10 +82,32 @@ describe 'tripleo::profile::base::docker' do it { is_expected.to contain_package('docker') } it { is_expected.to contain_service('docker') } it { - is_expected.to contain_augeas('docker-daemon.json').with_changes(['set dict/entry[. = "registry-mirrors"] "registry-mirrors', "set dict/entry[. = \"registry-mirrors\"]/array/string \"http://foo/bar\""]) + is_expected.to contain_augeas('docker-daemon.json').with_changes( + ['set dict/entry[. = "registry-mirrors"] "registry-mirrors', + "set dict/entry[. = \"registry-mirrors\"]/array/string \"http://foo/bar\"", + 'set dict/entry[. = "debug"] "debug"', + "set dict/entry[. = \"debug\"]/const \"false\""]) } end + context 'with step 1 and docker debug' do + let(:params) { { + :step => 1, + :debug => true, + } } + + it { is_expected.to contain_class('tripleo::profile::base::docker') } + it { is_expected.to contain_package('docker') } + it { is_expected.to contain_service('docker') } + it { + is_expected.to contain_augeas('docker-daemon.json').with_changes( + ['rm dict/entry[. = "registry-mirrors"]', + 'set dict/entry[. = "debug"] "debug"', + "set dict/entry[. = \"debug\"]/const \"true\""]) + } + end + + context 'with step 1 and docker_options configured' do let(:params) { { :docker_options => '--log-driver=syslog', -- cgit 1.2.3-korg