Skip to content

Commit dbcdab5

Browse files
committed
Add trivial r10k integration point.
Installation and configuration of `r10k` is out of scope. This merely provides a simple way to use it with the git repo workflow.
1 parent 9421bd4 commit dbcdab5

File tree

4 files changed

+37
-0
lines changed

4 files changed

+37
-0
lines changed

manifests/init.pp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,10 @@
241241
#
242242
# $server_git_repo_user:: Git repository user
243243
#
244+
# $server_git_repo_r10k:: Git repository contains Puppetfile for r10k
245+
#
246+
# $server_git_repo_gen_types:: Generate types for environment isolation
247+
#
244248
# $server_git_branch_map:: Git branch to puppet env mapping for the
245249
# default post receive hook
246250
#
@@ -659,6 +663,8 @@
659663
Array[String] $server_cipher_suites = $puppet::params::server_cipher_suites,
660664
Integer[0] $server_connect_timeout = $puppet::params::server_connect_timeout,
661665
Boolean $server_git_repo = $puppet::params::server_git_repo,
666+
Boolean $server_git_repo_r10k = $puppet::params::server_git_repo_r10k,
667+
Boolean $server_git_repo_gen_types = $puppet::params::server_git_repo_gen_types,
662668
Boolean $server_default_manifest = $puppet::params::server_default_manifest,
663669
Stdlib::Absolutepath $server_default_manifest_path = $puppet::params::server_default_manifest_path,
664670
String $server_default_manifest_content = $puppet::params::server_default_manifest_content,

manifests/params.pp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,10 @@
255255
$server_git_repo_user = $user
256256
# group of the repository
257257
$server_git_repo_group = $user
258+
# check repositories for r10k modules
259+
$server_git_repo_r10k = false
260+
# generate environment specific types
261+
$server_git_repo_gen_types = false
258262
# Override these if you need your own hooks
259263
$server_post_hook_content = 'puppet/server/post-receive.erb'
260264
$server_post_hook_name = 'post-receive'

manifests/server.pp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@
8888
#
8989
# $git_repo_user:: Git repository user
9090
#
91+
# $git_repo_r10k:: Git repository contains Puppetfile for r10k
92+
#
93+
# $git_repo_gen_types:: Generate types for environment isolation
94+
#
9195
# $git_branch_map:: Git branch to puppet env mapping for the
9296
# default post receive hook
9397
#
@@ -375,6 +379,8 @@
375379
Integer[0] $connect_timeout = $puppet::server_connect_timeout,
376380
Integer[0] $web_idle_timeout = $puppet::server_web_idle_timeout,
377381
Boolean $git_repo = $puppet::server_git_repo,
382+
Boolean $git_repo_r10k = $puppet::server_git_repo_r10k,
383+
Boolean $git_repo_gen_types = $puppet::server_git_repo_gen_types,
378384
Boolean $default_manifest = $puppet::server_default_manifest,
379385
Stdlib::Absolutepath $default_manifest_path = $puppet::server_default_manifest_path,
380386
String $default_manifest_content = $puppet::server_default_manifest_content,

templates/server/post-receive.erb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,33 @@ $stdin.each_line do |line|
111111
end
112112
do_cmd("git submodule sync")
113113
do_cmd("git submodule update --init --recursive")
114+
<% if @git_repo_r10k -%>
115+
if File.exists? 'Puppetfile'
116+
puts("Installing modules from r10k")
117+
do_cmd("r10k puppetfile install")
118+
end
119+
<% end -%>
120+
<% if @git_repo_gen_types -%>
121+
puts("Generating types for #{environment_name})"
122+
do_cmd("puppet generate types --environment #{environment_name}"
123+
<% end -%>
114124
end
115125
else
116126
# Instantiate a new environment from the current repository.
117127
118128
puts "Creating new environment #{environment_name}"
119129
do_cmd("git clone --recursive #{SOURCE_REPOSITORY} #{environment_path} --branch #{branchname}")
130+
<% if @git_repo_r10k -%>
131+
Dir.chdir environment_path
132+
if File.exists? 'Puppetfile'
133+
puts("Installing modules from r10k")
134+
do_cmd("r10k puppetfile install")
135+
end
136+
<% end -%>
137+
<% if @git_repo_gen_types -%>
138+
puts("Generating types for #{environment_name})"
139+
do_cmd("puppet generate types --environment #{environment_name}"
140+
<% end -%>
120141
end
121142
end
122143
end

0 commit comments

Comments
 (0)