refactor: move to ruby-script facts
- change enc_role_path fact to be ruby - add enc_role_tier1, enc_role_tier2 and enc_role_tier3 - add new paths to hiera.yaml
This commit is contained in:
parent
f73c16bca2
commit
1b9a4f7832
@ -9,7 +9,10 @@ hierarchy:
|
||||
- "nodes/%{trusted.certname}.yaml"
|
||||
- name: Role-specific data
|
||||
paths:
|
||||
- "%{facts.enc_role_path}.yaml"
|
||||
- "roles/%{::enc_role_tier1}.yaml"
|
||||
- "roles/${::enc_role_tier1}/%{::enc_role_tier2}.yaml"
|
||||
- "roles/${::enc_role_tier1}/%{::enc_role_tier2}/%{::enc_role_tier3}.yaml"
|
||||
- "%{::enc_role_path}.yaml"
|
||||
- name: "OS Related"
|
||||
paths:
|
||||
- "os/%{facts.os.name}/%{facts.os.name}%{facts.os.release.major}.yaml"
|
||||
|
||||
14
site/profiles/lib/facter/enc_role_path.rb
Normal file
14
site/profiles/lib/facter/enc_role_path.rb
Normal file
@ -0,0 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# create an enc_role_path fact from enc_role, to be used by hiera.yaml
|
||||
#
|
||||
# roles::infra::dns::resolver becomes roles/infra/dns/resolver
|
||||
Facter.add(:enc_role_path) do
|
||||
setcode do
|
||||
enc_role = Facter.value(:enc_role)
|
||||
if enc_role
|
||||
enc_role_path = enc_role.gsub('::', '/')
|
||||
enc_role_path
|
||||
end
|
||||
end
|
||||
end
|
||||
15
site/profiles/lib/facter/enc_role_tier1.rb
Normal file
15
site/profiles/lib/facter/enc_role_tier1.rb
Normal file
@ -0,0 +1,15 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# split the enc_role fact into different tiers
|
||||
#
|
||||
# e.g.
|
||||
# enc_role_tier2: roles::infra::dns::resolver -> infra
|
||||
Facter.add(:enc_role_tier1) do
|
||||
setcode do
|
||||
role = Facter.value(:enc_role)
|
||||
if role
|
||||
parts = role.split('::')
|
||||
parts[1] if parts.size > 1
|
||||
end
|
||||
end
|
||||
end
|
||||
14
site/profiles/lib/facter/enc_role_tier2.rb
Normal file
14
site/profiles/lib/facter/enc_role_tier2.rb
Normal file
@ -0,0 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# split the enc_role fact into different tiers
|
||||
# e.g.
|
||||
# enc_role_tier2: roles::infra::dns::resolver -> dns
|
||||
Facter.add(:enc_role_tier2) do
|
||||
setcode do
|
||||
role = Facter.value(:enc_role)
|
||||
if role
|
||||
parts = role.split('::')
|
||||
parts[2] if parts.size > 2
|
||||
end
|
||||
end
|
||||
end
|
||||
14
site/profiles/lib/facter/enc_role_tier3.rb
Normal file
14
site/profiles/lib/facter/enc_role_tier3.rb
Normal file
@ -0,0 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# split the enc_role fact into different tiers
|
||||
# e.g.
|
||||
# enc_role_tier3: roles::infra::dns::resolver -> resolver
|
||||
Facter.add(:enc_role_tier3) do
|
||||
setcode do
|
||||
role = Facter.value(:enc_role)
|
||||
if role
|
||||
parts = role.split('::')
|
||||
parts[3] if parts.size > 3
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,2 +1 @@
|
||||
enc_role=<%= @enc_role[0] %>
|
||||
enc_role_path=<%= @enc_role[0].gsub('::', '/') %>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user