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

Remove nuxeo Helm chart dependencies

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: helm-chart-2.0.2
    • Component/s: Helm Chart
    • Upgrade notes:
      Hide

      In the new version of the chart, 2.0.0, the dependencies have been removed.

      As a first step, we provide a simple way to install nuxeo and the external services separately, using their respective chart, with a shell script. Later on, we’ll use Helmfile, see NXBT-3445.

      Along with this change, we’ve done a number of improvements:

      • Handle cloud provider configuration for binary storage.
      • Improve service and ingress configuration.
      • Allow to configure nodeSelector, affinity and tolerations.
      • Allow to mount extra volumes.
      • Allow to mount extra secrets.
      • Allow to merge several sets of custom properties from multiple values files.

      See the default values.yaml file for all the (breaking) changes.

      In the Nuxeo Platform pipeline, we're now using the Helm 3 command line to install:

      • The nuxeo chart for preview.
      • The external service charts for unit tests.

      Regarding the fact of progressively getting out of Jenkins X, we've also:

      • Limited usage of the jx command line, relying only on helm3.
      • Removed the dependency to Jenkins X's exposecontroller chart, relying on the nuxeo chart's ingress.
      Show
      In the new version of the chart,  2.0.0 , the dependencies have been removed. As a first step, we provide a simple way to install nuxeo and the external services separately, using their respective chart, with a  shell script . Later on, we’ll use  Helmfile , see NXBT-3445 . Along with this change, we’ve done a number of improvements: Handle cloud provider configuration for binary storage. Improve service and ingress configuration. Allow to configure nodeSelector, affinity and tolerations. Allow to mount extra volumes. Allow to mount extra secrets. Allow to merge several sets of custom properties from multiple values files. See the default values.yaml file for all the (breaking) changes. In the Nuxeo Platform pipeline , we're now using the Helm 3 command line to install: The nuxeo chart for preview. The external service charts for unit tests. Regarding the fact of progressively getting out of Jenkins X, we've also: Limited usage of the  jx  command line, relying only on helm3 . Removed the dependency to Jenkins X's exposecontroller chart, relying on the nuxeo chart's ingress.
    • Sprint:
      nxplatform #22, nxplatform #23
    • Story Points:
      1

      Description

      Currently, the nuxeo Helm chart has dependencies on the following charts:

      • mongodb
      • postgresql
      • elasticsearch
      • kafka
      • redis

      See the latest 1.2.0 tag.

      This is a problem for several reasons:

      • For the multi-tenant use case, if we want to install multiple releases of the nuxeo chart pointing to mutualised external services. For instance, having a single MongoDB deployment with one database per nuxeo tenant and a single Elasticsearch cluster with a set of indexes per nuxeo tenant. With the nuxeo chart as an umbrella chart, it's tricky: we first need to install the chart once by disabling nuxeo and enabling the services, then the other way around: enable nuxeo and disable the services, for each tenant.
      • Enabling/disabling the external services is tricky: we need to use tags when the chart is deployed directly, but nuxeo.mongodb.deploy when the chart is deployed as a dependency of another chart...
      • The chart is tightly coupled with the dependent charts:
        • It makes it hard to maintain, having to maintain a set of recommended "production-like" values.
        • It doesn't seem to be the responsibility of the nuxeo chart to provide some values to configure the external services themselves. Moreover, it seems that in many cases, people will want to use cloud providers: typically MongoDB Atlas.

      Let's get rid of these dependencies, and provide a simple way to install nuxeo and the external services separately, using their respective chart.
      As a first step, this can be done with a shell script, then we can use helmfile.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                3 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 - 1 week, 1 day, 1 hour
                  1w 1d 1h