[MediaWiki-commits] [Gerrit] Labs: Allow per-host Hiera overrides via wikitech - change (operations/puppet)
Yuvipanda has submitted this change and it was merged. Change subject: Labs: Allow per-host Hiera overrides via wikitech .. Labs: Allow per-host Hiera overrides via wikitech Currently for Labs projects it is possible to override Hiera keys for example at https://wikitech.wikimedia.org/wiki/Hiera:Tools for the Tools project. Unfortunately, these overrides are project-wide and thus cannot be used to provide different data for only one host. The existing logic in the mwyaml Hiera backend maps the hierarchy defined in /etc/puppet/hiera.yaml: | :hierarchy: | - labs/%{::labsproject}/host/%{::hostname} | - labs/%{::labsproject}/common | - labs | - private/%{::labsproject} | - common | - private/common by ignoring entries not starting with labs/ and mapping both the remaining two ones to Hiera:$labsproject. This change maps the entries to their verbatim Hiera: counterparts, except chopping off /common, i. e. labs/%{::labsproject}/host/%{::hostname} gets mapped to Hiera:$labsproject/host/$hostname and labs/%{::labsproject}/common to Hiera:$labsproject. It still ignores entries not starting with labs/. Bug: T104202 Change-Id: I36cde8122d26301c6dcb61d0f16f06f7f9dd81d8 --- M modules/wmflib/lib/hiera/backend/mwyaml_backend.rb 1 file changed, 11 insertions(+), 6 deletions(-) Approvals: Yuvipanda: Verified; Looks good to me, approved diff --git a/modules/wmflib/lib/hiera/backend/mwyaml_backend.rb b/modules/wmflib/lib/hiera/backend/mwyaml_backend.rb index 74384ca..216d5a3 100644 --- a/modules/wmflib/lib/hiera/backend/mwyaml_backend.rb +++ b/modules/wmflib/lib/hiera/backend/mwyaml_backend.rb @@ -11,13 +11,18 @@ Hiera.debug(Looking up #{key}) Backend.datasources(scope, order_override) do |source| - # Small hack: - we don't want to search any datasource but the + # Small hack: We don't want to search any datasource but the # labs/%{::labsproject} hierarchy here; so we plainly exit - # in any other case - next unless source[0,5] == 'labs/' - source_arr = source.split('/') - next if source_arr[1].nil? - source = source_arr[1].capitalize + # in any other case. + next unless source.start_with?('labs/') and source.length 'labs/'.length + + # For hieradata/, the hierarchy is defined as + # labs/%{::labsproject}/host/%{::hostname} and + # labs/%{::labsproject}/common. We map the former + # verbatim to Hiera:$labsproject/host/$hostname, while the + # latter gets simplified to Hiera:$labsproject. In both + # cases, we capitalize $labsproject. + source = source['labs/'.length..-1].chomp('/common').capitalize data = @cache.read(source, Hash, {}) do |content| YAML.load(content) -- To view, visit https://gerrit.wikimedia.org/r/233184 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I36cde8122d26301c6dcb61d0f16f06f7f9dd81d8 Gerrit-PatchSet: 2 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Tim Landscheidt t...@tim-landscheidt.de Gerrit-Reviewer: Giuseppe Lavagetto glavage...@wikimedia.org Gerrit-Reviewer: Merlijn van Deen valhall...@arctus.nl Gerrit-Reviewer: Tim Landscheidt t...@tim-landscheidt.de Gerrit-Reviewer: Yuvipanda yuvipa...@wikimedia.org Gerrit-Reviewer: jenkins-bot ___ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
[MediaWiki-commits] [Gerrit] Labs: Allow per-host Hiera overrides via wikitech - change (operations/puppet)
Tim Landscheidt has uploaded a new change for review. https://gerrit.wikimedia.org/r/233184 Change subject: Labs: Allow per-host Hiera overrides via wikitech .. Labs: Allow per-host Hiera overrides via wikitech Currently for Labs projects it is possible to override Hiera keys for example at https://wikitech.wikimedia.org/wiki/Hiera:Tools for the Tools project. Unfortunately, these overrides are project-wide and thus cannot be used to provide different data for only one host. The existing logic in the mwyaml Hiera backend maps the hierarchy defined in /etc/puppet/hiera.yaml: | :hierarchy: | - labs/%{::labsproject}/host/%{::hostname} | - labs/%{::labsproject}/common | - labs | - private/%{::labsproject} | - common | - private/common by ignoring entries not starting with labs/ and mapping both the remaining two ones to Hiera:$labsproject. This change maps the entries to their verbatim Hiera: counterparts, except chopping off /common, i. e. labs/%{::labsproject}/host/%{::hostname} gets mapped to Hiera:$labsproject/host/$hostname and labs/%{::labsproject}/common to Hiera:$labsproject. It still ignores entries not starting with labs/. Bug: T104202 Change-Id: I36cde8122d26301c6dcb61d0f16f06f7f9dd81d8 --- M modules/wmflib/lib/hiera/backend/mwyaml_backend.rb 1 file changed, 11 insertions(+), 6 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/84/233184/1 diff --git a/modules/wmflib/lib/hiera/backend/mwyaml_backend.rb b/modules/wmflib/lib/hiera/backend/mwyaml_backend.rb index 74384ca..216d5a3 100644 --- a/modules/wmflib/lib/hiera/backend/mwyaml_backend.rb +++ b/modules/wmflib/lib/hiera/backend/mwyaml_backend.rb @@ -11,13 +11,18 @@ Hiera.debug(Looking up #{key}) Backend.datasources(scope, order_override) do |source| - # Small hack: - we don't want to search any datasource but the + # Small hack: We don't want to search any datasource but the # labs/%{::labsproject} hierarchy here; so we plainly exit - # in any other case - next unless source[0,5] == 'labs/' - source_arr = source.split('/') - next if source_arr[1].nil? - source = source_arr[1].capitalize + # in any other case. + next unless source.start_with?('labs/') and source.length 'labs/'.length + + # For hieradata/, the hierarchy is defined as + # labs/%{::labsproject}/host/%{::hostname} and + # labs/%{::labsproject}/common. We map the former + # verbatim to Hiera:$labsproject/host/$hostname, while the + # latter gets simplified to Hiera:$labsproject. In both + # cases, we capitalize $labsproject. + source = source['labs/'.length..-1].chomp('/common').capitalize data = @cache.read(source, Hash, {}) do |content| YAML.load(content) -- To view, visit https://gerrit.wikimedia.org/r/233184 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I36cde8122d26301c6dcb61d0f16f06f7f9dd81d8 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Tim Landscheidt t...@tim-landscheidt.de ___ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits