From c0b9861333b0ace7442e521d6fac9137043fb3d9 Mon Sep 17 00:00:00 2001 From: Alexey Khivin Date: Mon, 16 May 2016 16:23:08 +0300 Subject: [PATCH] [Gerrit] Switch to local project config Change-Id: Ic8cb91b14a3e35f199119491dce6a320fbc41c3e --- .../Gerrit/package/Classes/Gerrit.yaml | 22 +++++++++++++++---- .../package/Resources/DeployGerrit.template | 14 +++++++++--- .../scripts/create_projects_periodic.sh | 8 +++++++ .../Resources/scripts/deploy_gerrit.sh | 9 ++++++++ .../Gerrit/package/Resources/scripts/site.pp | 16 +++++++++++--- 5 files changed, 59 insertions(+), 10 deletions(-) create mode 100644 murano-apps/Gerrit/package/Resources/scripts/create_projects_periodic.sh diff --git a/murano-apps/Gerrit/package/Classes/Gerrit.yaml b/murano-apps/Gerrit/package/Classes/Gerrit.yaml index dde7e5a..150e2d0 100644 --- a/murano-apps/Gerrit/package/Classes/Gerrit.yaml +++ b/murano-apps/Gerrit/package/Classes/Gerrit.yaml @@ -68,11 +68,9 @@ Methods: - $.createConfiguration() - - $resources: new(sys:Resources) - - $template: $resources.yaml('DeployGerrit.template') + - $._execDeployGerrit() + - $._reInitProjectConfig() - - $._environment.reporter.report($this, 'Deploying Gerrit...') - - $.instance.agent.call($template, $resources) - $._environment.reporter.report($this, 'Gerrit is deployed.') - $.setAttr(deployed, true) @@ -135,7 +133,23 @@ Methods: - $.instance.setHieraValue( 'swift_store_user', 'swift_store_user') - $.instance.setHieraValue( 'swift_store_key', 'swift_store_key') - $.instance.setHieraValue( 'jeepyb_project_file', '/etc/project-config/gerrit/projects.yaml') + - $.instance.setHieraValue( 'project_config_config_dir', '/etc/project-config-init/') + + getProjectConfigRepo: + Body: + - Return: !yaql "format('https://{0}/open-paas/project-config', $this.instance.ipAddresses[0])" + + # Switch to newly created project-config repo + _reInitProjectConfig: + Body: - $.instance.setHieraValue( 'project_config_config_dir', '/etc/project-config/') + - $.instance.setHieraValue( 'project_config_repo', $.getProjectConfigRepo()) + + _execDeployGerrit: + Body: + - $resources: new(sys:Resources) + - $template: $resources.yaml('DeployGerrit.template') + - $.instance.agent.call($template, $resources) #NOTE: this method doesn't work without ldap createAccount: diff --git a/murano-apps/Gerrit/package/Resources/DeployGerrit.template b/murano-apps/Gerrit/package/Resources/DeployGerrit.template index d7b611c..5c3cdd5 100644 --- a/murano-apps/Gerrit/package/Resources/DeployGerrit.template +++ b/murano-apps/Gerrit/package/Resources/DeployGerrit.template @@ -5,14 +5,22 @@ Name: Deploy Gerrit Parameters: Body: | - deploy() + deploy_gerrit() Scripts: - deploy: + deploy_gerrit: Type: Application Version: 1.0.0 EntryPoint: deploy_gerrit.sh - Files: ['gen_ssl_cert.sh', 'gen_rsa_key.sh', 'database.pp', 'site.pp', 'create_projects.pp', 'gerrit_gitconfig.erb'] + Files: [ + 'gen_ssl_cert.sh', + 'gen_rsa_key.sh', + 'database.pp', + 'site.pp', + 'create_projects.pp', + 'gerrit_gitconfig.erb', + 'create_projects_periodic.sh' + ] Options: captureStdout: false captureStderr: true diff --git a/murano-apps/Gerrit/package/Resources/scripts/create_projects_periodic.sh b/murano-apps/Gerrit/package/Resources/scripts/create_projects_periodic.sh new file mode 100644 index 0000000..f635433 --- /dev/null +++ b/murano-apps/Gerrit/package/Resources/scripts/create_projects_periodic.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +CONF_DIR="/etc/ci-cd" + +rm -rf /etc/project-config +GIT_SSL_NO_VERIFY=true /usr/bin/puppet apply ${CONF_DIR}/gerrit.pp + +/usr/local/bin/manage-projects diff --git a/murano-apps/Gerrit/package/Resources/scripts/deploy_gerrit.sh b/murano-apps/Gerrit/package/Resources/scripts/deploy_gerrit.sh index 9789a69..752eb07 100644 --- a/murano-apps/Gerrit/package/Resources/scripts/deploy_gerrit.sh +++ b/murano-apps/Gerrit/package/Resources/scripts/deploy_gerrit.sh @@ -1,5 +1,8 @@ #!/bin/bash +CONF_DIR="/etc/ci-cd" +EXECUTABLES_DIR="/usr/local/bin" + logger Install dev packages apt-get update && apt-get install -y build-essential libssl-dev libffi-dev python-dev @@ -18,6 +21,12 @@ logger Database puppet puppet apply database.pp logger Gerrit puppet +# store to add cron task later +mkdir -p ${CONF_DIR} +cp site.pp ${CONF_DIR}/gerrit.pp +cp create_projects_periodic.sh ${EXECUTABLES_DIR}/create_projects_periodic.sh +chmod +x ${EXECUTABLES_DIR}/create_projects_periodic.sh + puppet apply site.pp logger Projects puppet diff --git a/murano-apps/Gerrit/package/Resources/scripts/site.pp b/murano-apps/Gerrit/package/Resources/scripts/site.pp index 4cff4fe..b4de5a2 100644 --- a/murano-apps/Gerrit/package/Resources/scripts/site.pp +++ b/murano-apps/Gerrit/package/Resources/scripts/site.pp @@ -75,10 +75,9 @@ node default { swift_username => hiera('swift_store_user', 'username'), swift_password => hiera('swift_store_key'), replication_force_update => true, - replication => [ - ], + replication => [], require => [ - Class['project_config'], + Class['project_config'], ], } gerrit::plugin { 'javamelody': @@ -88,6 +87,17 @@ node default { ensure => absent, } + cron { "puppet": + user => 'root', + ensure => present, + command => "/usr/local/bin/create_projects_periodic.sh", + hour => '*', + minute => '*/5', + require => [ + Class['openstack_project::gerrit'], + ], + } + # exec { "/usr/xpg4/bin/id >/tmp/puppet-id-test 2>&1", # user => "puppet", #