Skip to content

Commit

Permalink
Add trivial r10k integration point.
Browse files Browse the repository at this point in the history
Installation and configuration of `r10k` is out of scope.
This merely provides a simple way to use it with the git repo workflow.
  • Loading branch information
jcpunk committed Jan 10, 2023
1 parent 9421bd4 commit c161b55
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 1 deletion.
6 changes: 6 additions & 0 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,10 @@
#
# $server_git_repo_user:: Git repository user
#
# $server_git_repo_r10k:: Git repository contains Puppetfile for r10k
#
# $server_git_repo_gen_types:: Generate types for environment isolation
#
# $server_git_branch_map:: Git branch to puppet env mapping for the
# default post receive hook
#
Expand Down Expand Up @@ -659,6 +663,8 @@
Array[String] $server_cipher_suites = $puppet::params::server_cipher_suites,
Integer[0] $server_connect_timeout = $puppet::params::server_connect_timeout,
Boolean $server_git_repo = $puppet::params::server_git_repo,
Boolean $server_git_repo_r10k = $puppet::params::server_git_repo_r10k,
Boolean $server_git_repo_gen_types = $puppet::params::server_git_repo_gen_types,
Boolean $server_default_manifest = $puppet::params::server_default_manifest,
Stdlib::Absolutepath $server_default_manifest_path = $puppet::params::server_default_manifest_path,
String $server_default_manifest_content = $puppet::params::server_default_manifest_content,
Expand Down
4 changes: 4 additions & 0 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,10 @@
$server_git_repo_user = $user
# group of the repository
$server_git_repo_group = $user
# check repositories for r10k modules
$server_git_repo_r10k = false
# generate environment specific types
$server_git_repo_gen_types = false
# Override these if you need your own hooks
$server_post_hook_content = 'puppet/server/post-receive.erb'
$server_post_hook_name = 'post-receive'
Expand Down
6 changes: 6 additions & 0 deletions manifests/server.pp
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@
#
# $git_repo_user:: Git repository user
#
# $git_repo_r10k:: Git repository contains Puppetfile for r10k
#
# $git_repo_gen_types:: Generate types for environment isolation
#
# $git_branch_map:: Git branch to puppet env mapping for the
# default post receive hook
#
Expand Down Expand Up @@ -375,6 +379,8 @@
Integer[0] $connect_timeout = $puppet::server_connect_timeout,
Integer[0] $web_idle_timeout = $puppet::server_web_idle_timeout,
Boolean $git_repo = $puppet::server_git_repo,
Boolean $git_repo_r10k = $puppet::server_git_repo_r10k,
Boolean $git_repo_gen_types = $puppet::server_git_repo_gen_types,
Boolean $default_manifest = $puppet::server_default_manifest,
Stdlib::Absolutepath $default_manifest_path = $puppet::server_default_manifest_path,
String $default_manifest_content = $puppet::server_default_manifest_content,
Expand Down
23 changes: 22 additions & 1 deletion templates/server/post-receive.erb
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ $stdin.each_line do |line|
Dir.chdir environment_path
do_cmd("git fetch --all")
do_cmd("git reset --hard 'origin/#{branchname}'")
if File.exists? "#{environment_path}/.gitmodules"
if File.exist? "#{environment_path}/.gitmodules"
# ensure that we remove deleted sub modules too
do_cmd("git status --short").split("\n").each do |file|
# ?? old_submodule/
Expand All @@ -111,12 +111,33 @@ $stdin.each_line do |line|
end
do_cmd("git submodule sync")
do_cmd("git submodule update --init --recursive")
<% if @git_repo_r10k -%>
if File.exist? 'Puppetfile'
puts("Installing modules using r10k")
do_cmd("r10k puppetfile install")
end
<% end -%>
<% if @git_repo_gen_types -%>
puts("Generating types for #{environment_name})"
do_cmd("puppet generate types --environment #{environment_name}"
<% end -%>
end
else
# Instantiate a new environment from the current repository.

puts "Creating new environment #{environment_name}"
do_cmd("git clone --recursive #{SOURCE_REPOSITORY} #{environment_path} --branch #{branchname}")
<% if @git_repo_r10k -%>
Dir.chdir environment_path
if File.exist? 'Puppetfile'
puts("Installing modules using r10k")
do_cmd("r10k puppetfile install")
end
<% end -%>
<% if @git_repo_gen_types -%>
puts("Generating types for #{environment_name})"
do_cmd("puppet generate types --environment #{environment_name}"
<% end -%>
end
end
end

0 comments on commit c161b55

Please sign in to comment.