From 8347b74ace1758952d61da9a7d6b3f91ce8edddb Mon Sep 17 00:00:00 2001 From: "James E. Blair" <jeblair@hp.com> Date: Thu, 18 Sep 2014 13:05:06 -0700 Subject: [PATCH] Switch zuul and zuul-dev to project-config Start using the project-config repo for Zuul. Stop managing /etc/zuul/layout in the zuul module itself in favor of the project_config module. Change-Id: I46ddb22c53783c0cffa665959f708b0568abd25f --- manifests/site.pp | 2 ++ .../openstack_project/manifests/zuul_dev.pp | 24 ++++++------- .../openstack_project/manifests/zuul_prod.pp | 22 +++++------- modules/project_config/manifests/init.pp | 35 +++++++++++++++++++ modules/zuul/manifests/init.pp | 5 --- modules/zuul/manifests/server.pp | 14 ++++++++ 6 files changed, 71 insertions(+), 31 deletions(-) create mode 100644 modules/project_config/manifests/init.pp diff --git a/manifests/site.pp b/manifests/site.pp index 56c038c4f7..91c558853c 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -464,6 +464,7 @@ node 'nodepool.openstack.org' { # Node-OS: precise node 'zuul.openstack.org' { class { 'openstack_project::zuul_prod': + project_config_repo => 'https://git.openstack.org/openstack-infra/project-config', gerrit_server => 'review.openstack.org', gerrit_user => 'jenkins', gerrit_ssh_host_key => hiera('gerrit_ssh_rsa_pubkey_contents', 'XXX'), @@ -549,6 +550,7 @@ node 'zm04.openstack.org' { # Node-OS: precise node 'zuul-dev.openstack.org' { class { 'openstack_project::zuul_dev': + project_config_repo => 'https://git.openstack.org/openstack-infra/project-config', gerrit_server => 'review-dev.openstack.org', gerrit_user => 'zuul-dev', zuul_ssh_private_key => hiera('zuul_dev_ssh_private_key_contents', 'XXX'), diff --git a/modules/openstack_project/manifests/zuul_dev.pp b/modules/openstack_project/manifests/zuul_dev.pp index a83acd9467..0999c9291f 100644 --- a/modules/openstack_project/manifests/zuul_dev.pp +++ b/modules/openstack_project/manifests/zuul_dev.pp @@ -12,6 +12,7 @@ class openstack_project::zuul_dev( $sysadmins = [], $statsd_host = '', $gearman_workers = [], + $project_config_repo = '', ) { realize ( @@ -28,6 +29,11 @@ class openstack_project::zuul_dev( sysadmins => $sysadmins, } + class { 'project_config': + url => $project_config_repo, + base => 'dev/', + } + class { '::zuul': vhost_name => $vhost_name, gearman_server => $gearman_server, @@ -43,7 +49,11 @@ class openstack_project::zuul_dev( git_name => 'OpenStack Jenkins', } - class { '::zuul::server': } + class { '::zuul::server': + layout_dir => $::project_config::zuul_layout_dir, + require => $::project_config::config_dir, + } + class { '::zuul::merger': } if $gerrit_ssh_host_key != '' { @@ -65,18 +75,6 @@ class openstack_project::zuul_dev( } } - file { '/etc/zuul/layout/layout.yaml': - ensure => present, - source => 'puppet:///modules/openstack_project/zuul/layout-dev.yaml', - notify => Exec['zuul-reload'], - } - - file { '/etc/zuul/layout/openstack_functions.py': - ensure => present, - source => 'puppet:///modules/openstack_project/zuul/openstack_functions.py', - notify => Exec['zuul-reload'], - } - file { '/etc/zuul/logging.conf': ensure => present, source => 'puppet:///modules/openstack_project/zuul/logging.conf', diff --git a/modules/openstack_project/manifests/zuul_prod.pp b/modules/openstack_project/manifests/zuul_prod.pp index 9671963a97..6ce7c02b70 100644 --- a/modules/openstack_project/manifests/zuul_prod.pp +++ b/modules/openstack_project/manifests/zuul_prod.pp @@ -20,6 +20,7 @@ class openstack_project::zuul_prod( $sysadmins = [], $statsd_host = '', $gearman_workers = [], + $project_config_repo = '', ) { # Turn a list of hostnames into a list of iptables rules $iptables_rules = regsubst ($gearman_workers, '^(.*)$', '-m state --state NEW -m tcp -p tcp --dport 4730 -s \1 -j ACCEPT') @@ -31,6 +32,10 @@ class openstack_project::zuul_prod( sysadmins => $sysadmins, } + class { 'project_config': + url => $project_config_repo, + } + class { '::zuul': vhost_name => $vhost_name, gearman_server => $gearman_server, @@ -54,7 +59,10 @@ class openstack_project::zuul_prod( swift_default_logserver_prefix => $swift_default_logserver_prefix, } - class { '::zuul::server': } + class { '::zuul::server': + layout_dir => $::project_config::zuul_layout_dir, + require => $::project_config::config_dir, + } if $gerrit_ssh_host_key != '' { file { '/home/zuul/.ssh': @@ -75,18 +83,6 @@ class openstack_project::zuul_prod( } } - file { '/etc/zuul/layout/layout.yaml': - ensure => present, - source => 'puppet:///modules/openstack_project/zuul/layout.yaml', - notify => Exec['zuul-reload'], - } - - file { '/etc/zuul/layout/openstack_functions.py': - ensure => present, - source => 'puppet:///modules/openstack_project/zuul/openstack_functions.py', - notify => Exec['zuul-reload'], - } - file { '/etc/zuul/logging.conf': ensure => present, source => 'puppet:///modules/openstack_project/zuul/logging.conf', diff --git a/modules/project_config/manifests/init.pp b/modules/project_config/manifests/init.pp new file mode 100644 index 0000000000..1f440bd152 --- /dev/null +++ b/modules/project_config/manifests/init.pp @@ -0,0 +1,35 @@ +# Copyright 2014 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# Class: project_config +# + +class project_config( + $url = '', + $base = '', +) { + + $config_dir = Vcsrepo['/etc/project-config'] + + if (!defined($config_dir)) { + vcsrepo { '/etc/project-config': + ensure => latest, + provider => git, + revision => 'master', + source => $url, + } + } + + $zuul_layout_dir = "/etc/project-config/${base}zuul" +} diff --git a/modules/zuul/manifests/init.pp b/modules/zuul/manifests/init.pp index 8b2b5ec837..59bcd3f6b7 100644 --- a/modules/zuul/manifests/init.pp +++ b/modules/zuul/manifests/init.pp @@ -146,11 +146,6 @@ class zuul ( ensure => directory, } - file { '/etc/zuul/layout': - ensure => directory, - require => File['/etc/zuul'], - } - # TODO: We should put in notify either Service['zuul'] or Exec['zuul-reload'] # at some point, but that still has some problems. file { '/etc/zuul/zuul.conf': diff --git a/modules/zuul/manifests/server.pp b/modules/zuul/manifests/server.pp index c0c8f4ed3a..c744b97c31 100644 --- a/modules/zuul/manifests/server.pp +++ b/modules/zuul/manifests/server.pp @@ -16,6 +16,7 @@ # == Class: zuul::server # class zuul::server ( + $layout_dir = '', ) { service { 'zuul': name => 'zuul', @@ -30,6 +31,19 @@ class zuul::server ( refreshonly => true, } + file { '/etc/zuul/layout': + ensure => directory, + owner => 'root', + group => 'root', + mode => '0755', + recurse => true, + purge => true, + force => true, + source => $layout_dir, + require => File['/etc/zuul'], + notify => Exec['zuul-reload'], + } + include logrotate logrotate::file { 'zuul.log': log => '/var/log/zuul/zuul.log',