[IMP] server_environment: readme fragments
This commit is contained in:
parent
ca116964ca
commit
55e5ff330f
|
|
@ -0,0 +1,89 @@
|
|||
To configure this module, you need to edit the main configuration file
|
||||
of your instance, and add a directive called ``running_env``. Commonly
|
||||
used values are 'dev', 'test', 'production'::
|
||||
|
||||
[options]
|
||||
running_env=dev
|
||||
|
||||
Values associated to keys containing 'passw' are only displayed in the 'dev'
|
||||
environment.
|
||||
|
||||
You have several possibilities to set configuration values:
|
||||
|
||||
server_environment_files
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can edit the settings you need in the ``server_environment_files`` addon. The
|
||||
``server_environment_files_sample`` can be used as an example:
|
||||
|
||||
* values common to all / most environments can be stored in the
|
||||
``default/`` directory using the .ini file syntax;
|
||||
* each environment you need to define is stored in its own directory
|
||||
and can override or extend default values;
|
||||
* you can override or extend values in the main configuration
|
||||
file of your instance;
|
||||
|
||||
Environment variable
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can define configuration in the environment variable ``SERVER_ENV_CONFIG``
|
||||
and/or ``SERVER_ENV_CONFIG_SECRET``. The 2 variables are handled the exact same
|
||||
way, this is only a convenience for the deployment where you can isolate the
|
||||
secrets in a different, encrypted, file. They are multi-line environment variables
|
||||
in the same configparser format than the files.
|
||||
If you used options in ``server_environment_files``, the options set in the
|
||||
environment variable override them.
|
||||
|
||||
The options in the environment variable are not dependent of ``running_env``,
|
||||
the content of the variable must be set accordingly to the running environment.
|
||||
|
||||
Example of setup:
|
||||
|
||||
A public file, containing that will contain public variables::
|
||||
|
||||
# These variables are not odoo standard variables,
|
||||
# they are there to represent what your file could look like
|
||||
export WORKERS='8'
|
||||
export MAX_CRON_THREADS='1'
|
||||
export LOG_LEVEL=info
|
||||
export LOG_HANDLER=":INFO"
|
||||
export DB_MAXCONN=5
|
||||
|
||||
# server environment options
|
||||
export SERVER_ENV_CONFIG="
|
||||
[storage_backend.my-sftp]
|
||||
sftp_server=10.10.10.10
|
||||
sftp_login=foo
|
||||
sftp_port=22200
|
||||
directory_path=Odoo
|
||||
"
|
||||
|
||||
A second file which is encrypted and contains secrets::
|
||||
|
||||
# This variable is not an odoo standard variable,
|
||||
# it is there to represent what your file could look like
|
||||
export DB_PASSWORD='xxxxxxxxx'
|
||||
# server environment options
|
||||
export SERVER_ENV_CONFIG_SECRET="
|
||||
[storage_backend.my-sftp]
|
||||
sftp_password=xxxxxxxxx
|
||||
"
|
||||
|
||||
Default values
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
When using the ``server.env.mixin`` mixin, for each env-computed field, a
|
||||
companion field ``<field>_env_default`` is created. This field is not
|
||||
environment-dependent. It's a fallback value used when no key is set in
|
||||
configuration files / environment variable.
|
||||
|
||||
When the default field is used, the field is made editable on Odoo.
|
||||
|
||||
Note: empty environment keys always take precedence over default fields
|
||||
|
||||
|
||||
Keychain integration
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Read the documentation of the class `models/server_env_mixin.py
|
||||
<models/server_env_mixin.py>`_.
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
* Alexandre Fayolle <alexandre.fayolle@camptocamp.com>
|
||||
* Daniel Reis <dgreis@sapo.pt>
|
||||
* Florent Xicluna <florent.xicluna@gmail.com>
|
||||
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
|
||||
* Holger Brunn <hbrunn@therp.nl>
|
||||
* Joël Grand-Guillaume <joel.grandguillaume@camptocamp.com>
|
||||
* Nicolas Bessi <nicolas.bessi@camptocamp.com>
|
||||
* Wingo
|
||||
* Yannick Vaucher <yannick.vaucher@camptocamp.com>
|
||||
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
This module provides a way to define an environment in the main Odoo
|
||||
configuration file and to read some configurations from files
|
||||
depending on the configured environment: you define the environment in
|
||||
the main configuration file, and the values for the various possible
|
||||
environments are stored in the ``server_environment_files`` companion
|
||||
module.
|
||||
|
||||
The ``server_environment_files`` module is optional, the values can be set using
|
||||
an environment variable with a fallback on default values in the database.
|
||||
|
||||
The configuration read from the files are visible under the Configuration
|
||||
menu. If you are not in the 'dev' environment you will not be able to
|
||||
see the values contained in the defined secret keys
|
||||
(by default : '*passw*', '*key*', '*secret*' and '*token*').
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
By itself, this module does little. See for instance the
|
||||
``mail_environment`` addon which depends on this one to allow configuring
|
||||
the incoming and outgoing mail servers depending on the environment.
|
||||
|
||||
You can store your configuration values in a companion module called
|
||||
``server_environment_files``. You can copy and customize the provided
|
||||
``server_environment_files_sample`` module for this purpose. Alternatively, you
|
||||
can provide them in environment variables ``SERVER_ENV_CONFIG`` and
|
||||
``SERVER_ENV_CONFIG_SECRET``.
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
* it is not possible to set the environment from the command line. A
|
||||
configuration file must be used.
|
||||
* the module does not allow to set low level attributes such as database server, etc.
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
You can include a mixin in your model and configure the env-computed fields
|
||||
by an override of ``_server_env_fields``.
|
||||
|
||||
::
|
||||
|
||||
class StorageBackend(models.Model):
|
||||
_name = "storage.backend"
|
||||
_inherit = ["storage.backend", "server.env.mixin"]
|
||||
|
||||
@property
|
||||
def _server_env_fields(self):
|
||||
return {"directory_path": {}}
|
||||
|
||||
Read the documentation of the class and methods in `models/server_env_mixin.py
|
||||
<models/server_env_mixin.py>`__.
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
* Alexandre Fayolle <alexandre.fayolle@camptocamp.com>
|
||||
* Daniel Reis <dgreis@sapo.pt>
|
||||
* Florent Xicluna <florent.xicluna@gmail.com>
|
||||
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
|
||||
* Holger Brunn <hbrunn@therp.nl>
|
||||
* Joël Grand-Guillaume <joel.grandguillaume@camptocamp.com>
|
||||
* Nicolas Bessi <nicolas.bessi@camptocamp.com>
|
||||
* Wingo
|
||||
* Yannick Vaucher <yannick.vaucher@camptocamp.com>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
This is an example module to be used for
|
||||
`server_environment_files`. Check that module's README for more
|
||||
information.
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Do not install this module as is. Copy it to a directory in your
|
||||
addons-path and rename it to
|
||||
`server_environment_files`, then edit the various configurations.
|
||||
|
||||
This module is not testable on runbot (see above).
|
||||
Loading…
Reference in New Issue