aboutsummaryrefslogtreecommitdiffstats
path: root/deployment
diff options
context:
space:
mode:
authorColin Guthrie <colin@mageia.org>2013-08-20 21:42:52 +0000
committerColin Guthrie <colin@mageia.org>2013-08-20 21:42:52 +0000
commitd0f8559baf5bdcaab9f04aaeb2d945efdadb94e5 (patch)
tree63c62537f31fd8a78706b1337e0f440b0c5e21d0 /deployment
parent0f533467f2b813cacebcb420852b2d8045709482 (diff)
downloadpuppet-d0f8559baf5bdcaab9f04aaeb2d945efdadb94e5.tar
puppet-d0f8559baf5bdcaab9f04aaeb2d945efdadb94e5.tar.gz
puppet-d0f8559baf5bdcaab9f04aaeb2d945efdadb94e5.tar.bz2
puppet-d0f8559baf5bdcaab9f04aaeb2d945efdadb94e5.tar.xz
puppet-d0f8559baf5bdcaab9f04aaeb2d945efdadb94e5.zip
mgagit: Add repo templates to puppet rather than reply on packaged versions
This adds the repo template into puppet as this seems a more appropriate place to track what is effectively configuration. I also use this opportunity to add a repository configuration repo for 'web' and add a new repo template for it accordingly.
Diffstat (limited to 'deployment')
-rw-r--r--deployment/mgagit/manifests/init.pp41
-rw-r--r--deployment/mgagit/templates/group_owned_repo.gl28
-rw-r--r--deployment/mgagit/templates/mgagit.conf9
-rw-r--r--deployment/mgagit/templates/repodef_repo.gl7
4 files changed, 84 insertions, 1 deletions
diff --git a/deployment/mgagit/manifests/init.pp b/deployment/mgagit/manifests/init.pp
index 249cb155..f2002d94 100644
--- a/deployment/mgagit/manifests/init.pp
+++ b/deployment/mgagit/manifests/init.pp
@@ -9,6 +9,7 @@ class mgagit(
$git_homedir = "/var/lib/${git_login}"
$gitolite_dir = "${git_homedir}/.gitolite"
$gitolite_keydir = "${gitolite_dir}/keydir"
+ $gitolite_tmpldir = "/etc/mgagit/tmpl"
$gitolite_confdir = "${gitolite_dir}/conf"
$gitolite_conf = "${gitolite_confdir}/gitolite.conf"
$gitoliterc = "$git_homedir/.gitolite.rc"
@@ -40,6 +41,46 @@ class mgagit(
require => Package['mgagit'],
}
+ file { $gitolite_tmpldir:
+ ensure => directory,
+ owner => root,
+ group => root,
+ mode => '0755',
+ }
+
+ file { "$gitolite_tmpldir/group.gl":
+ ensure => 'link',
+ target => '/usr/share/mgagit/tmpl/group.gl',
+ }
+
+ file { "$gitolite_tmpldir/repodef_repo.gl":
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => '0644',
+ content => template('mgagit/repodef_repo.gl'),
+ }
+
+ $repogroup = 'packagers'
+ $repoml = 'soft'
+ file { "$gitolite_tmpldir/soft_repo.gl":
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => '0644',
+ content => template('mgagit/group_owned_repo.gl'),
+ }
+
+ $repogroup = 'web'
+ $repoml = 'atelier'
+ file { "$gitolite_tmpldir/web_repo.gl":
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => '0644',
+ content => template('mgagit/group_owned_repo.gl'),
+ }
+
file { [$gitolite_dir, $gitolite_keydir, $gitolite_confdir,
$reposconf_dir, $vhostdir]:
ensure => directory,
diff --git a/deployment/mgagit/templates/group_owned_repo.gl b/deployment/mgagit/templates/group_owned_repo.gl
new file mode 100644
index 00000000..0e5ae7c1
--- /dev/null
+++ b/deployment/mgagit/templates/group_owned_repo.gl
@@ -0,0 +1,28 @@
+[% SET maintainer = r.repos.$repo.maintainer %]
+repo [% repo %]
+ RW master$ = [% maintainer %]
+ RW distro/ = [% maintainer %]
+ RW topic/ = [% maintainer %]
+ RW refs/tags/ = [% maintainer %]
+[% IF r.repos.$repo.lockdown != 'yes' -%]
+ RW master$ = @mga-<%= @repogroup %>
+ RW distro/ = @mga-<%= @repogroup %>
+ RW topic/ = @mga-<%= @repogroup %>
+ RW refs/tags/ = @mga-<%= @repogroup %>
+[% END -%]
+ RW+ user/USER/ = @all
+ R = @all
+[% IF r.repos.$repo.noemail -%]
+ config hooks.mailinglist = ""
+[% ELSE -%]
+[% IF r.repos.$repo.mailinglist -%]
+ config hooks.mailinglist = "[% r.repos.$repo.mailinglist %]"
+[% ELSE -%]
+ config hooks.mailinglist = "<%= @repoml %>-commits@ml.mageia.org"
+[% END -%]
+[% END -%]
+ config hooks.emailprefix = "[% repo %] "
+ config gitweb.description = "[% r.repos.$repo.description %]"
+[% IF r.users.$maintainer -%]
+ config gitweb.owner = "[% r.users.$maintainer.cn.0 %] [[% maintainer %]]"
+[% END -%]
diff --git a/deployment/mgagit/templates/mgagit.conf b/deployment/mgagit/templates/mgagit.conf
index a818c93a..783f6fea 100644
--- a/deployment/mgagit/templates/mgagit.conf
+++ b/deployment/mgagit/templates/mgagit.conf
@@ -4,6 +4,7 @@ ldapserver: <%= @ldap_server %>
binddn: <%= @binddn %>
bindpwfile: <%= @bindpwfile %>
pubkey_dir: <%= @gitolite_keydir %>
+tmpl_dir: <%= @gitolite_tmpldir %>
gitolite_config: <%= @gitolite_conf %>
run_gitolite: yes
repodef_dir: <%= @reposconf_dir %>
@@ -13,8 +14,14 @@ repos_config:
repos:
- name: software
maintainer: '@mga-sysadmin'
- description: Software repositories definitions
+ description: Software repository definitions
+ - name: web
+ maintainer: '@mga-sysadmin'
+ description: Website repository definitions
- prefix: software
gl_template: soft_repo
git_url: file:///git/infrastructure/repositories/software.git
+ - prefix: web
+ gl_template: web_repo
+ git_url: file:///git/infrastructure/repositories/web.git
www_dir: <%= @vhostdir %>
diff --git a/deployment/mgagit/templates/repodef_repo.gl b/deployment/mgagit/templates/repodef_repo.gl
new file mode 100644
index 00000000..399abda5
--- /dev/null
+++ b/deployment/mgagit/templates/repodef_repo.gl
@@ -0,0 +1,7 @@
+repo [% repo %]
+ RW master$ = [% r.repos.$repo.maintainer %]
+ RW+ user/USER/ = @all
+ R = @all
+ config hooks.mailinglist = sysadmin-commits@ml.mageia.org
+ config hooks.emailprefix = [% repo %]
+ config gitweb.description = [% r.repos.$repo.description %]