Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-29190

Add notion of profile in Nuxeo

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 10.10-HF29, 11.1
    • Component/s: CI/CD, Configuration
    • Upgrade notes:
      Hide

      We introduce the notion of profile in Nuxeo. These profiles are meant to be used to configure Nuxeo. Currently, they act as a templates with some differences.

      Profiles are configured through NUXEO_PROFILES environment variable, whereas templates are configured through nuxeo.conf.

      As said, profiles are currently Nuxeo templates, and they are deployed after templates defined in nuxeo.conf.

      For example, if we have nuxeo.templates=mongodb,mongodb-audit in nuxeo.conf and we define a NUXEO_PROFILES=perf, we get:

      $ NUXEO_PROFILES=perf bash nuxeoctl console
      Nuxeo home:          /opt/nuxeo-server-tomcat-11.1-SNAPSHOT
      Nuxeo configuration: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/bin/nuxeo.conf
      Nuxeo profiles:      perf
      Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/common-base
      Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/common
      Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/default
      Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/mongodb
      Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/mongodb-audit
      Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/perf
      

      We can see that the perf profile is deployed after the template parameter value.

      Show
      We introduce the notion of profile in Nuxeo. These profiles are meant to be used to configure Nuxeo. Currently, they act as a templates with some differences. Profiles are configured through NUXEO_PROFILES environment variable, whereas templates are configured through nuxeo.conf . As said, profiles are currently Nuxeo templates, and they are deployed after templates defined in nuxeo.conf . For example, if we have nuxeo.templates=mongodb,mongodb-audit in nuxeo.conf and we define a NUXEO_PROFILES=perf , we get: $ NUXEO_PROFILES=perf bash nuxeoctl console Nuxeo home: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT Nuxeo configuration: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/bin/nuxeo.conf Nuxeo profiles: perf Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/common-base Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/common Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/ default Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/mongodb Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/mongodb-audit Include template: /opt/nuxeo-server-tomcat-11.1-SNAPSHOT/templates/perf We can see that the perf profile is deployed after the template parameter value.
    • Team:
      PLATFORM
    • Sprint:
      nxplatform 11.1.37, nxplatform #11
    • Story Points:
      2

      Description

      Context

      We want to have specific nodes in a Nuxeo Cluster, such as portal, worker, or importer nodes.
      Having specific nodes help to scale the right part of Nuxeo depending on usage. For example, importer nodes may be used only during a fraction of the day/week.

      Another interesting point is to have some default configuration to apply depending on the documents Nuxeo handles, for instance, we could provide a configuration for cases such as a large repository.

      Nuxeo Templates could be used to provide such configuration, but this is not a sustainable solution because Nuxeo Templates configuration value is not an immutable value (could be changed by MP installation) and forces the Ops to know the list of templates the installation requires, a list which can change between each deployment.

      Request

      We want to add the profile notion in Nuxeo. This will allow us to enable/load a set of configurations in Nuxeo.

      Profiles share a lot with templates, otherwise, the main differences are:

      Profiles Templates
      List is immutable List can be changed by MP installation
      List definition is taken from OS environment (NUXEO_PROFILES) List definition is taken from nuxeo.conf
      List is not persisted List is persisted in nuxeo.conf

      That's why in a first step we're going to leverage the template mechanism to bring profile support.
      Nuxeo Configuration generation will be done as today + we will load the list of submitted profiles (if any) as templates, after the loading of nuxeo.templates.

      With this, we will be able to load profile (aka a template, aka set of configuration properties + nxftl).

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 4 hours
                  4h

                    PagerDuty

                    Error rendering 'com.pagerduty.jira-server-plugin:PagerDuty'. Please contact your Jira administrators.