Install integrations
On this page
Install integrations in Kubernetes
You can install integrations in Kubernetes either via the Helm chart or by building a custom image.
Via the Kelm chart
In a production environment, using Kubernetes, you can configure which components to install through the values.yml file. Here, you can specify the following:
-
Custom packages and versions
-
Package feeds
-
Authentication details
-
Alternative installer images
Consider the following example:
cluedin:
components:
image: '' # name of the container to use as an installer - defaults to 'cluedin
# nuget-installer'
packages: [] # list of extra NuGet packages to install in server (name or name/version pairs,
# version should be in a supported NuGet version format)
sources: {} # NuGet sources to use
At pod startup time, the packages are passed from an init container to the CluedIn container.
Configure packages
Packages must be listed using their full package ID with an optional version. If you provide a version, you can use floating versions, which are resolved at startup.
In the provided example, the following is installed:
-
The latest version of
CluedIn.Crawling.HubSpot. -
The latest
3.0.0pre-release or full-release version ofCluedIn.Provider.HubSpot.
cluedin:
components:
packages:
- name: CluedIn.Crawling.HubSpot
- name: CluedIn.Provider.HubSpot
version: 3.0.0-*
Configure sources
Packages can be resolved from one or more NuGet feeds. Each feed is defined under sources and may include optional authentication details.
cluedin:
components:
sources:
nuget:
url: https://api.nuget.org/v3/index.json
custom:
url: https://myorg.myget.org/F/customfeed/api/v3/index.json
user: OrgUser
pass: OrgPass
Via a custom image
You can build a custom Docker image that contains the integration packages. This approach ensures that the packages and assets are already included in the init container, so they do not need to be downloaded at runtime.
-
Create a
packages.txtfile with the list of integrations to be installed. You can specify versions after the package name.CluedIn.Crawling.HubSpot CluedIn.Provider.HubSpot 3.0.0-* - Create a standard nuget.config file that defines the feeds to use. The public
nuget.orgfeed is included by default.<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="custom" value="https://myorg.myget.org/F/customfeed/api/v3/index.json" /> </packageSources> </configuration> -
Use the following Dockerfile to build your image. If one or more feeds require credentials, expose an
ARGand anENVnamedNUGETCRED_<feedname>so credentials can be passed to the install script.FROM cluedin/nuget-installer as base # If your feed requires passing credentials ARG CUSTOMCRED ENV NUGETCRED_CUSTOM=$CUSTOMCRED COPY . ./packages RUN ./Install-Packages.ps1 FROM alpine as final COPY --from=base ./components ./tmp/components ENTRYPOINT ["sh", "-c", "false | cp $(ls -d /tmp/components/*/) -r ./components 2>/dev/null"] -
Validate your custom image.
# Build the image > docker build -t my/cluedin-installer . # OR build the image with creds - pass aregument as pipe delimited user|password > docker build -t my/cluedin-installer --build-arg CUSTOMCRED='user|pass' . # Mount components folder which is where the integration components would be placed > docker run --rm -it -v '.:/components' my/cluedin-installer - In
values.yml, configure your custom image for component installation.cluedin: components: image: 'my/cluedin-installer'