Commit 5755b94709905fe79beea6e52aeb5661319e3dd7
Exists in
master
and in
79 other branches
Merge branch 'colab_config'
This merge makes the necessary changes for updated colab packages for SPB release 4
Showing
17 changed files
with
228 additions
and
106 deletions
Show diff stats
.gitignore
cookbooks/colab/recipes/default.rb
... | ... | @@ -11,13 +11,12 @@ if node['platform'] == 'centos' |
11 | 11 | end |
12 | 12 | end |
13 | 13 | |
14 | -# FIXME should not be needed; colab should depend on the right version of | |
15 | -# colab-deps | |
16 | -package 'colab-deps' do | |
14 | +package 'colab' do | |
17 | 15 | action :upgrade |
16 | + notifies :restart, 'service[colab]' | |
18 | 17 | end |
19 | 18 | |
20 | -package 'colab' do | |
19 | +package 'colab-spb-theme' do | |
21 | 20 | action :upgrade |
22 | 21 | notifies :restart, 'service[colab]' |
23 | 22 | end |
... | ... | @@ -44,7 +43,7 @@ execute 'secret-key' do |
44 | 43 | f = '/etc/colab/secret.key' |
45 | 44 | command "openssl rand -hex 32 -out #{f} && chown root:colab #{f} && chmod 0640 #{f}" |
46 | 45 | not_if { File.exists?(f) } |
47 | - notifies :create, 'template[/etc/colab/settings.yaml]' | |
46 | + notifies :create, 'template[/etc/colab/settings.d/00-custom_settings.py]' | |
48 | 47 | end |
49 | 48 | |
50 | 49 | template '/etc/sysconfig/colab' do |
... | ... | @@ -54,20 +53,21 @@ template '/etc/sysconfig/colab' do |
54 | 53 | notifies :restart, 'service[colab]' |
55 | 54 | end |
56 | 55 | |
57 | -template '/etc/colab/settings.yaml' do | |
56 | +template '/etc/colab/settings.d/00-custom_settings.py' do | |
58 | 57 | owner 'root' |
59 | 58 | group 'colab' |
60 | 59 | mode 0640 |
61 | 60 | notifies :restart, 'service[colab]' |
62 | 61 | end |
63 | 62 | |
64 | -template '/etc/colab/settings.d/00-database.yaml' do | |
63 | +template '/etc/colab/settings.d/01-database.py' do | |
65 | 64 | owner 'root' |
66 | 65 | group 'colab' |
67 | 66 | mode 0640 |
68 | 67 | notifies :restart, 'service[colab]' |
69 | 68 | end |
70 | 69 | |
70 | +# Creating a gitlab admin user | |
71 | 71 | template '/tmp/admin-gitlab.json' do |
72 | 72 | |
73 | 73 | password = SecureRandom.random_number.to_s |
... | ... | @@ -96,12 +96,40 @@ execute 'create-admin-token-gitlab' do |
96 | 96 | user 'git' |
97 | 97 | end |
98 | 98 | |
99 | -template '/etc/colab/settings.d/01-apps.yaml' do | |
99 | +# Adding settings.d files | |
100 | +template '/etc/colab/settings.d/02-logging.py' do | |
100 | 101 | owner 'root' |
101 | 102 | group 'colab' |
102 | 103 | mode 0640 |
103 | 104 | notifies :restart, 'service[colab]' |
105 | +end | |
104 | 106 | |
107 | +template '/etc/colab/settings.d/03-sentry.py' do | |
108 | + owner 'root' | |
109 | + group 'colab' | |
110 | + mode 0640 | |
111 | + notifies :restart, 'service[colab]' | |
112 | +end | |
113 | + | |
114 | +template '/etc/colab/settings.d/04-memcached.py' do | |
115 | + owner 'root' | |
116 | + group 'colab' | |
117 | + mode 0640 | |
118 | + notifies :restart, 'service[colab]' | |
119 | +end | |
120 | + | |
121 | +template '/etc/colab/settings.d/05-celery.py' do | |
122 | + owner 'root' | |
123 | + group 'colab' | |
124 | + mode 0640 | |
125 | + notifies :restart, 'service[colab]' | |
126 | +end | |
127 | + | |
128 | +# Adding plugins for colab | |
129 | +template '/etc/colab/plugins.d/gitlab.py' do | |
130 | + owner 'root' | |
131 | + group 'colab' | |
132 | + mode 0640 | |
105 | 133 | get_private_token = lambda do |
106 | 134 | Dir.chdir '/usr/lib/gitlab' do |
107 | 135 | `sudo -u git RAILS_ENV=production bundle exec rails runner \"puts User.find_by_name(\'admin-gitlab\').private_token\"`.strip |
... | ... | @@ -111,22 +139,34 @@ template '/etc/colab/settings.d/01-apps.yaml' do |
111 | 139 | variables( |
112 | 140 | :get_private_token => get_private_token |
113 | 141 | ) |
142 | + | |
143 | + notifies :restart, 'service[colab]' | |
114 | 144 | end |
115 | 145 | |
116 | -template '/etc/colab/settings.d/02-logging.yaml' do | |
117 | - owner 'root' | |
118 | - group 'colab' | |
119 | - mode 0640 | |
146 | +template '/etc/colab/plugins.d/noosfero.py' do | |
147 | + owner 'root' | |
148 | + group 'colab' | |
149 | + mode 0640 | |
120 | 150 | notifies :restart, 'service[colab]' |
121 | 151 | end |
122 | 152 | |
123 | -template '/etc/colab/settings.d/03-sentry.yaml' do | |
124 | - owner 'root' | |
125 | - group 'colab' | |
126 | - mode 0640 | |
153 | +template '/etc/colab/plugins.d/spb.py' do | |
154 | + owner 'root' | |
155 | + group 'colab' | |
156 | + mode 0640 | |
157 | + notifies :restart, 'service[colab]' | |
158 | +end | |
159 | + | |
160 | +template '/etc/colab/plugins.d/raven.py' do | |
161 | + owner 'root' | |
162 | + group 'colab' | |
163 | + mode 0640 | |
127 | 164 | notifies :restart, 'service[colab]' |
128 | 165 | end |
129 | 166 | |
167 | +execute 'colab-admin migrate' | |
168 | + | |
169 | +# Static files | |
130 | 170 | directory '/var/lib/colab-assets/spb/' do |
131 | 171 | owner 'root' |
132 | 172 | group 'root' | ... | ... |
... | ... | @@ -0,0 +1,37 @@ |
1 | +## Set to false in production | |
2 | +DEBUG = False | |
3 | +TEMPLATE_DEBUG = False | |
4 | + | |
5 | +## System admins | |
6 | +ADMINS = [ | |
7 | +<%- node['config']['admins'].each do |admin| %> | |
8 | + ("<%= admin[0] %>", "<%= admin[1] %>"), | |
9 | +<% end %> | |
10 | +] | |
11 | + | |
12 | +MANAGERS = ADMINS | |
13 | + | |
14 | +# general Django settings | |
15 | +DEFAULT_FROM_EMAIL = '<%= node['config']['colab_from_address'] %>' | |
16 | + | |
17 | +# colab-specific | |
18 | +COLAB_FROM_ADDRESS = '<%= node['config']['colab_from_address'] %>' | |
19 | +SERVER_EMAIL = '<%= node['config']['server_email'] %>' | |
20 | + | |
21 | +EMAIL_HOST = "localhost" | |
22 | +EMAIL_PORT = 25 | |
23 | +EMAIL_SUBJECT_PREFIX = "<%= node['config']['email_subject_prefix'] %>" | |
24 | + | |
25 | +SECRET_KEY = "<%= File.read('/etc/colab/secret.key').strip %>" | |
26 | + | |
27 | +SITE_URL = "<%= node['config']['site_url'] %>" | |
28 | + | |
29 | +ALLOWED_HOSTS = ["<%= node['config']['external_hostname'] %>"] | |
30 | + | |
31 | +## Disable indexing | |
32 | +ROBOTS_NOINDEX = False | |
33 | + | |
34 | +## Set URL of Colab home | |
35 | +COLAB_HOME_URL = '/social' | |
36 | + | |
37 | +GOOGLE_ANALYTICS_TRACKING_ID = "<%= node['config']['google_analytics_id'] %>" | ... | ... |
cookbooks/colab/templates/00-database.yaml.erb
cookbooks/colab/templates/01-apps.yaml.erb
... | ... | @@ -0,0 +1,26 @@ |
1 | +LOGGING = { | |
2 | + 'loggers': { | |
3 | + 'revproxy': { | |
4 | + 'handlers': ['file'], | |
5 | + 'level': 'ERROR'}, | |
6 | + 'django': { | |
7 | + 'handlers': ['file'], | |
8 | + 'level': 'DEBUG'}, | |
9 | + }, | |
10 | + 'version': 1, 'formatters': { | |
11 | + 'verbose': { | |
12 | + 'format': '%(asctime)s (%(name)s) %(levelname)s: %(message)s' | |
13 | + } | |
14 | + }, | |
15 | + 'disable_existing_loggers': True, 'handlers': { | |
16 | + 'file': { | |
17 | + 'level': 'DEBUG', | |
18 | + 'interval': 24, | |
19 | + 'backupCount': 7, | |
20 | + 'encoding': 'UTF-8', | |
21 | + 'formatter': 'verbose', | |
22 | + 'class': 'logging.handlers.TimedRotatingFileHandler', | |
23 | + 'filename': '/var/log/colab/colab.log' | |
24 | + } | |
25 | + } | |
26 | +} | ... | ... |
cookbooks/colab/templates/02-logging.yaml.erb
... | ... | @@ -1,28 +0,0 @@ |
1 | -LOGGING: | |
2 | - version: 1 | |
3 | - disable_existing_loggers: True | |
4 | - | |
5 | - formatters: | |
6 | - verbose: | |
7 | - format: '%(asctime)s (%(name)s) %(levelname)s: %(message)s' | |
8 | - | |
9 | - handlers: | |
10 | - file: | |
11 | - level: DEBUG | |
12 | - class: logging.handlers.TimedRotatingFileHandler | |
13 | - filename: /var/log/colab/colab.log | |
14 | - interval: 24 # 24 hours | |
15 | - backupCount: 7 # keep last 7 backups | |
16 | - encoding: UTF-8 | |
17 | - formatter: verbose | |
18 | - | |
19 | - loggers: | |
20 | - django: | |
21 | - handlers: | |
22 | - - file | |
23 | - level: DEBUG | |
24 | - | |
25 | - revproxy: | |
26 | - handlers: | |
27 | - - file | |
28 | - level: ERROR |
... | ... | @@ -0,0 +1 @@ |
1 | +RAVEN_DSN = "<%= node['config']['raven_dsn'] %>" | ... | ... |
cookbooks/colab/templates/03-sentry.yaml.erb
... | ... | @@ -0,0 +1,39 @@ |
1 | +from django.utils.translation import ugettext_lazy as _ | |
2 | +from colab.plugins.utils.menu import colab_url_factory | |
3 | + | |
4 | +# Gitlab plugin - Put this in plugins.d/gitlab.py to actiate ## | |
5 | + | |
6 | +name = 'colab_gitlab' | |
7 | +verbose_name = 'Gitlab Plugin' | |
8 | + | |
9 | +upstream = 'http://<%= node['peers']['integration'] %>:81/gitlab/' | |
10 | + | |
11 | +private_token = '<%= @get_private_token.call %>' | |
12 | + | |
13 | +urls = { | |
14 | + 'include': 'colab_gitlab.urls', | |
15 | + 'namespace': 'gitlab', # TODO: do not allow to change namespace | |
16 | + 'prefix': '^gitlab/', | |
17 | +} | |
18 | + | |
19 | +menu_title = _('Development') | |
20 | + | |
21 | +url = colab_url_factory('gitlab') | |
22 | + | |
23 | +menu_urls = ( | |
24 | + url(display=_('Public Projects'), viewname='gitlab', | |
25 | + kwargs={'path': 'public/projects'}, auth=False), | |
26 | + url(display=_('Profile'), viewname='gitlab', | |
27 | + kwargs={'path': 'profile'}, auth=True), | |
28 | + url(display=_('New Project'), viewname='gitlab', | |
29 | + kwargs={'path': 'projects/new'}, auth=True), | |
30 | + url(display=_('Projects'), viewname='gitlab', | |
31 | + kwargs={'path': 'dashboard/projects'}, auth=True), | |
32 | + url(display=_('Groups'), viewname='gitlab', | |
33 | + kwargs={'path': 'profile/groups'}, auth=True), | |
34 | + url(display=_('Issues'), viewname='gitlab', | |
35 | + kwargs={'path': 'dashboard/issues'}, auth=True), | |
36 | + url(display=_('Merge Requests'), viewname='gitlab', | |
37 | + kwargs={'path': 'merge_requests'}, auth=True), | |
38 | + | |
39 | +) | ... | ... |
... | ... | @@ -0,0 +1,33 @@ |
1 | +from django.utils.translation import ugettext_lazy as _ | |
2 | +from colab.plugins.utils.menu import colab_url_factory | |
3 | + | |
4 | +# Noosfero plugin - Put this in plugins.d/noosfero.py to actiate ## | |
5 | +# from django.utils.translation import ugettext_lazy as _ | |
6 | +# from colab.plugins.utils.menu import colab_url_factory | |
7 | + | |
8 | +name = 'colab_noosfero' | |
9 | +verbose_name = 'Noosfero Plugin' | |
10 | + | |
11 | +upstream = 'http://<%= node['peers']['social'] %>:80/social/' | |
12 | + | |
13 | +urls = { | |
14 | + 'include': 'colab_noosfero.urls', | |
15 | + 'namespace': 'noosfero', # TODO: do not allow to change namespace | |
16 | + 'prefix': '^social/', | |
17 | +} | |
18 | + | |
19 | +menu_title = _('Social') | |
20 | + | |
21 | +url = colab_url_factory('noosfero') | |
22 | + | |
23 | +menu_urls = ( | |
24 | + url(display=_('Users'), viewname='noosfero', | |
25 | + kwargs={'path': 'search/people'}, auth=False), | |
26 | + url(display=_('Communities'), viewname='noosfero', | |
27 | + kwargs={'path': 'search/communities'}, auth=False), | |
28 | + url(display=_('Profile'), viewname='noosfero', | |
29 | + kwargs={'path': 'profile/~/'}, auth=True), | |
30 | + url(display=_('Control Panel'), viewname='noosfero', | |
31 | + kwargs={'path': 'myprofile/~/'}, auth=True), | |
32 | + | |
33 | +) | ... | ... |
cookbooks/colab/templates/settings.yaml.erb
... | ... | @@ -1,47 +0,0 @@ |
1 | - | |
2 | -## Set to false in production | |
3 | -DEBUG: false | |
4 | -TEMPLATE_DEBUG: false | |
5 | - | |
6 | -## System admins | |
7 | -ADMINS: &admin | |
8 | -<%- node['config']['admins'].each do |admin| %> | |
9 | - - | |
10 | - <%- admin.each do |item| %> | |
11 | - - <%= item %> | |
12 | - <%- end %> | |
13 | -<% end %> | |
14 | - | |
15 | -MANAGERS: *admin | |
16 | - | |
17 | -# general Django settings | |
18 | -DEFAULT_FROM_EMAIL: '<%= node['config']['colab_from_address'] %>' | |
19 | - | |
20 | -# colab-specific | |
21 | -COLAB_FROM_ADDRESS: '<%= node['config']['colab_from_address'] %>' | |
22 | -SERVER_EMAIL: '<%= node['config']['server_email'] %>' | |
23 | - | |
24 | -EMAIL_HOST: localhost | |
25 | -EMAIL_PORT: 25 | |
26 | -EMAIL_SUBJECT_PREFIX: <%= node['config']['email_subject_prefix'] %> | |
27 | - | |
28 | -SECRET_KEY: <%= File.read('/etc/colab/secret.key').strip %> | |
29 | - | |
30 | -SITE_URL: <%= node['config']['site_url'] %> | |
31 | -BROWSERID_AUDIENCES: | |
32 | - - <%= node['config']['site_url'].sub('http:', 'https:') %> | |
33 | - - <%= node['config']['site_url'].sub('https:', 'http:') %> | |
34 | - | |
35 | -ALLOWED_HOSTS: | |
36 | - - <%= node['config']['external_hostname'] %> | |
37 | - | |
38 | -## Disable indexing | |
39 | -ROBOTS_NOINDEX: false | |
40 | - | |
41 | -## Disable planet | |
42 | -FEEDZILLA_ENABLED: false | |
43 | - | |
44 | -## Set URL of Colab home | |
45 | -COLAB_HOME_URL: '/social' | |
46 | - | |
47 | -GOOGLE_ANALYTICS_TRACKING_ID: '<%= node['config']['google_analytics_id'] %>' |
... | ... | @@ -0,0 +1,15 @@ |
1 | +from django.utils.translation import ugettext_lazy as _ | |
2 | +from colab.plugins.utils.menu import colab_url_factory | |
3 | + | |
4 | +name = "colab_spb" | |
5 | +verbose_name = "SPB Plugin" | |
6 | + | |
7 | +middlewares = ['colab_spb.middleware.ForceLangMiddleware'] | |
8 | + | |
9 | +urls = { | |
10 | + "include":"colab_spb.urls", | |
11 | + "prefix": '^spb/', | |
12 | + "namespace":"colab_spb" | |
13 | + } | |
14 | + | |
15 | +url = colab_url_factory('colab_spb') | ... | ... |