Setup with Helm Charts
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__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__platformClientId
alueFrom:
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