summaryrefslogtreecommitdiff
path: root/specs/translation_check_site.rst
blob: a45becf2ca1f24b6ef8c276cfe52e4a4b885a206 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
::

  Copyright 2015 Łukasz Jernaś
  Copyright 2017 Frank Kloeker

  This work is licensed under a Creative Commons Attribution 3.0
  Unported License.
  http://creativecommons.org/licenses/by/3.0/legalcode

..

================================================
Provide a translation check site for translators
================================================

Story: https://storyboard.openstack.org/#!/story/2000267

Provide a means for translators for easily checking the translations imported
from the translation system in a production like environment.

Problem Description
===================

Translators and translation reviewers need a way to verify that translation
behaves correctly when applied to the OpenStack Dashboard and its plug-ins.
This also helps when context information is missing from a string, for example
if "Search" is a label or a button, because in some cases the translations
have to be different. Now a translator has to run their own DevStack instance,
fetch the updated translation, run the build, etc - which is cumbersome,
requires skills outside the translation ones and duplicates a lot of work
between every translation group.

Proposed Change
===============

A sample OpenStack instance should be provided to translators, which
runs the current working branch and regularly fetches updated translations.
The instance should run Horizon and every module supported by the stock
dashboard.
This could be achieved with openstack-ansible AIO.
AIO means "all in one". OpenStack components are installed in separate container
(i.e. Horizon) on a single VM. Advantages for containers are: easy to manage
(i.e. snapshot backup and recovery in case of failed updates of the horizon container).
openstack-ansible itself is reboot-save. It's not necessary to re-install
from scratch like DevStack. In the Horizon container a script is installed
to fetch the translation file periodically from the translation server via cron,
compile it and serves the new content to the dashboard. The dashboard contents
the core functionality plus core plugins. The instance should be able to spawn
pseudo VMs that are using fakevirt driver, create networks and all other
capabilities provided by Horizon, but should be firewalled off from the rest
of the world with a periodic cleanup of all resources.
There is no need for SSO integration as the only required accounts are a shared
admin and a user account, with the credentials known to the translation team.
The sync cycle of the translation files is configurable. Update mechanism for
different branches or releases of the dashboard are also configurable and done
by ansible. The installed AIO should upgraded 4 times each cycle: soft/hard
string freeze, release, stable.

Alternatives
------------
As an alternative a prebuilt VM image could be created for the translators
to run on their own workstations or cloud with a manual run of ansible
playbooks for update Horizon or sync the translation files.

Implementation
==============

Assignee(s)
-----------

Primary assignee:
 * Frank Kloeker <f.kloeker@telekom.de>

Also:
 * Clark Boylan <cboylan@sapwetik.org> (Infrastructure side)
 * Rob Cresswell <robert.cresswell@outlook.com> (PTL Horizon)
 * Andy McCrae <andy.mccrae@gmail.com> (PTL OpenStackAnsible)
 * Ian Y. Choi <ianyrchoi@gmail.com> (PTL I18n)
 * KATO Tomoyuki <kato.tomoyuki@jp.fujitsu.com> (I18n Core Team)

Gerrit Topic
------------

Use Gerrit topic "i18n-checksite" for all patches related to this spec.

.. code-block:: bash

    git-review -t i18n-checksite

Work Items
----------

* Create puppet module for creating and spawning instance
* Create firewall and networking rules, only HTTPS for the dashboard

Repositories
------------

None

Servers
-------

A new server will have to be created with sufficient resources to run all
the required components and at least a few cirrus virtual machines.

DNS Entries
-----------

There should be a new DNS entry created for easy access by the translation
teams.

Documentation
-------------

Documentation related to configuration and potential AIO debugging
for the infrastructure team in the system-config repository.

Documentation for translators who will be using this.

Security
--------

Security issues should be taken into consideration, as the dashboard
allows the creation of new networks, floating IP addresses, load balancers
and instances. However, as long as fake virt driver is used, these security
concerns disappear.

Testing
-------

A basic set of functional tests and monitoring should be set up, for example
if the environment recreation completed successfully and every service runs
correctly.


Dependencies
============

This will require extension of openstack-ansible-os_horizon