Versions

The available Helm chart versions can be found on ArtifactHUB or in the GitHub Container Registry.

We provide a new Helm chart version for each new Connector release and each Helm chart will deploy the Connector in the chart’s version. (Helm chart version 3.2.1 deploys Connector version 3.2.1) You can override the Connector version by setting the image.tag value in the Helm chart.

Configuration

The Helm chart can be configured using a yaml file or the command line. The following table lists the configurable parameters of the Helm chart and their default values.

You can also query the available options using the command line: helm show values oci://ghcr.io/nmshd/connector-helm-chart --version <version>

Parameter Description Default
image.pullPolicy The image’s PullPolicy "IfNotPresent"
image.tag The image’s tag. Available tags The version of the Helm chart.
config The configuration of the Connector in yaml or json format. Configuration options {}
     
pod.securityContext SecurityContext for the pod. {}
pod.nodeSelector NodeSelector for the pod. {}
pod.tolerations Tolerations for the pod. []
pod.affinity Affinity for the pod. {}
     
pod.connector.environment A list of environment variables for the Connector container. Can be used for configuring secrets. []
pod.connector.securityContext SecurityContext for the Connector container. {}
pod.connector.resources Resources for the Connector container. {}
pod.connector.containerPort The port the Connector is listening on. Must be the same as infrastructure.httpServer.port in the config. 80
     
pod.ferretdb.enabled Enables / disables the FerretDB sidecar. false
pod.ferretdb.image The image used to deploy the FerretDB sidecar. Can be ferretdb ferretdb-dev or all-in-one "ferretdb"
pod.ferretdb.tag The tag used to deploy the FerretDB sidecar. "latest"
pod.ferretdb.environment A list of environment variables for the FerretDB container. Can be used for configuring secrets. []
pod.ferretdb.securityContext SecurityContext for the FerretDB container. {}
pod.ferretdb.resources Resources for the FerretDB container. {}
     
service.type The ServiceType of the service. "ClusterIP"
service.port The port of the service. 80

Example Configuration

The following example shows how to configure the Helm chart.

config:
  debug: true
  modules:
    coreHttpApi:
      docs:
        enabled: true

pod:
  connector:
    environment:
      - name: database__connectionString
        valueFrom:
          secretKeyRef:
            name: db-connection-string
            key: VALUE

      - name: transportLibrary__baseUrl
        value: https://backbone.example.com
      - name: transportLibrary__platformClientId
        value: test
      - name: transportLibrary__platformClientSecret
        valueFrom:
          secretKeyRef:
            name: platform-client-secret
            key: VALUE

      - name: infrastructure__httpServer__apiKey
        valueFrom:
          secretKeyRef:
            name: api-key
            key: VALUE

If you prefer json over yaml for the config section the following example is equivalent to the yaml example above.

config: { "modules": { "coreHttpApi": { "docs": { "enabled": false } } } }
# ...

Installation

Create a file named values.yaml with the desired configuration and run the following command to install the Helm chart.

helm install <installationName> oci://ghcr.io/nmshd/connector-helm-chart --version <version> -f values.yaml

Installation with FerretDB all-in-one

The Helm chart can be configured to deploy a FerretDB all-in-one instance as a sidecar. This image does not provide persistence, therefore this is useful e.g. for testing purposes or for a quick start.

config:
  debug: true
  modules:
    coreHttpApi:
      docs:
        enabled: true
  database:
    connectionString: "mongodb://localhost:27017"

pod:
  connector:
    environment:
      - name: transportLibrary__baseUrl
        valueFrom:
          secretKeyRef:
            name: base-url
            key: VALUE
      - name: transportLibrary__platformClientId
        valueFrom:
          secretKeyRef:
            name: platform-client-id
            key: VALUE
      - name: transportLibrary__platformClientSecret
        valueFrom:
          secretKeyRef:
            name: platform-client-secret
            key: VALUE

      - name: infrastructure__httpServer__apiKey
        valueFrom:
          secretKeyRef:
            name: api-key
            key: VALUE

  ferretdb:
    enabled: true
    image: all-in-one