# Helm Chart Installation Guide with customization

This guide provides the step-by-step instructions for installing FRINX Machine on a Kubernetes cluster using Helm charts with customization via helm dependency values.

# Prerequisites

  • Cluster: Make sure that you cluster is running.
  • Helm: Make sure that Helm is installed. Follow the Helm installation guide if necessary.

# Step 1: Add the FRINX Helm Repository

Add the FRINX Helm repository and update the repository list:

helm repo add frinx https://FRINXio.github.io/helm-charts
helm repo update

# Step 2: Install Operators and CRDs

Install FRINX Machine operators and custom resource definitions (CRDs):

helm install -n frinx --create-namespace frinx-machine-operators frinx/frinx-machine-operators

Verify the installation by checking the pods in the frinx namespace:

kubectl get pods -n frinx

You should see output similar to:

NAME                                                       READY   STATUS    RESTARTS   AGE
arango-frinx-machine-operators-operator-6dfdff75bd-cnwmp   1/1     Running   0          25s
arango-frinx-machine-operators-operator-6dfdff75bd-k8kqp   1/1     Running   0          25s
frinx-machine-operators-cloudnative-pg-d9566444c-85w8g     1/1     Running   0          25s

# Step 3: Create Docker Registry Secret

Please complete this step before continue

Create docker regitry secret
../../docker-registry-secret/

# Step 4: Customize FRINX Machine

To customize the deployment of FRINX Machine, you need to create a folder that will contain the necessary Helm chart files: Chart.yaml and values.yaml. This folder will serve as the root for your customized Helm chart, with FRINX Machine as a dependency.

# Create the Chart Configuration

  1. Create the Chart.yaml file:

This file contains the metadata for your Helm chart and specifies FRINX Machine as a dependency.

# Chart.yaml
apiVersion: v2
name: frinx-machine
description: Kubernetes deployment of FRINX-machine
icon: https://avatars.githubusercontent.com/u/23452093?s=200&v=4
type: application
version: 6.2.0
maintainers:
  - name: FRINX
dependencies:
  - name: frinx-machine
    repository: https://FRINXio.github.io/helm-charts
    version: 10.0.1

This configuration sets up the basic information about the Helm chart and defines FRINX Machine as a dependency, pulling it from the specified repository.

  1. Check Dependency Chart Details:

For mapping the Helm chart release to the product release and more details on the FRINX Machine Helm chart, refer to the FRINX Machine Helm chart documentation on Artifact Hub.

# Customize the Values

  1. Create the values.yaml file:

    This file contains custom configurations for the FRINX Machine subcharts. Customization options are based on the documentation of each subchart, which can be found on Artifact Hub.

# values.yaml
frinx-machine:
  krakend:
    nginx:
      ingress:
        hostname: krakend.127.0.0.1.nip.io

  uniconfig:
    image:
      repository: "frinxio/uniconfig"

  performance-monitor:
    image:
      repository: "frinxio/performance-monitor"
  • krakend.nginx.ingress.hostname: Configures the Ingress settings for the KrakenD API Gateway.

  • uniconfig: Specifies the Docker image repository for the Uniconfig component.

  • performance-monitor: Specifies the Docker image repository for the Performance Monitor component.

# Customize Subcharts

  1. Subchart Customization:

    For more detailed customization possibilities, refer to the documentation for each dependency Helm chart version. This will provide information on all configurable parameters and how to adjust them to suit your deployment needs.

By following these steps, you can effectively customize the deployment of FRINX Machine using Helm. Ensure you refer to the individual subchart documentation on Artifact Hub for specific configuration options and further customization.

# Step 5: Install FRINX Machine

Install the FRINX Machine using Helm:

helm dependency update
helm install -n frinx frinx-machine . -f values.yaml

Verify the installation by checking the pods in the frinx namespace:

kubectl get pods -n frinx 

You should see output similar to:

NAME                                                       READY   STATUS    RESTARTS   AGE
arango-frinx-machine-operators-operator-6dfdff75bd-h6mxb   1/1     Running   0          21m
arango-frinx-machine-operators-operator-6dfdff75bd-xh9x6   1/1     Running   0          21m
arangodb-sngl-yxxouifa-e0f232                              1/1     Running   0          11m
conductor-server-6757754659-tss78                          2/2     Running   0          19m
device-induction-56fdd555b8-j646n                          1/1     Running   0          19m
frinx-frontend-7c596b6bfc-qgthp                            2/2     Running   0          19m
frinx-machine-operators-cloudnative-pg-d9566444c-fgp5w     1/1     Running   0          21m
grafana-64986657b8-zzc5x                                   1/1     Running   0          19m
influxdb-0                                                 1/1     Running   0          19m
inventory-57994dcd85-9v2f9                                 1/1     Running   0          19m
kafka-controller-0                                         1/1     Running   0          19m
krakend-85bb6cd88b-6ldg7                                   2/2     Running   0          19m
loki-0                                                     1/1     Running   0          19m
performance-monitor-f6885b4dc-4wrfp                        1/1     Running   0          19m
postgresql-1                                               1/1     Running   0          11m
postgresql-2                                               1/1     Running   0          11m
promtail-zfmkn                                             1/1     Running   0          19m
resource-manager-d98d6866b-w5d6x                           1/1     Running   0          19m
swagger-ui-5b9fc85b99-8tzdd                                1/1     Running   0          19m
telegraf-ds-drsh7                                          1/1     Running   0          19m
timescale-db-0                                             1/1     Running   0          19m
topology-discovery-6d8c975876-gqg79                        2/2     Running   0          19m
uc-zone-lb-9cd56dd7-x82tz                                  1/1     Running   0          19m
uniconfig-controller-75d945f9c5-lggdb                      1/1     Running   0          12m
uniconfig-postgresql-1                                     1/1     Running   0          12m
uniconfig-postgresql-2                                     1/1     Running   0          12m

# Step 6: Access the UI

Visit Frinx Machine page in your browser on https://krakend.127.0.0.1.nip.io/frinxui