Skip to content

1. xApp Helm Chart In-Depth

The way we package and deploy our xApp is using Helm. Therefore, we created the xApp Helm Chart to accompany our xApp. Editing the Helm chart is done as any other Helm chart. Most of the fields in the values.yaml file are auto-generated and prebuilt.

Please note that the xApp Helm chart is packaged with the source code, which is available as a .zip file in the Releases section. You can find the Helm chart in the example folder of the xApp Framework after downloading and extracting the source code from the releases:

https://github.com/accelleran-ext/xapp-framework-package.

1.1 Version control

The version of the xApp is configured in the Chart.yaml file in the /helm_chart/xapp folder. Here we have two version fields: i) version and ii) appVersion. The first one corresponds to the version of the xApp Helm Chart, while the second one is the version of the xApp Core Docker image.

1.2 xApp Core Docker image to use

Which Docker image of the xApp Core is used when deploying the xApp Helm Chart is defined in the values.yaml file under the ‘image.repository’ field. You can specify a local Docker image or a remote Docker repository. The ‘_image.tag” _field can also be used to override the version of the xApp Core Docker image that is defined by the appVersion field in the Chart.yaml.

1.3 How to add another microservice helm chart to the xApp

Adding another microservice helm chart to your xApp requires some Helm knowledge. We try to create a simple guide here as a starting point. We will add InfluxDB to our xApp.

  1. Add the InfluxDB Helm Chart to the xApp

    This is done by editing the Chart.yaml file in the /helm_chart/xapp folder. Under the ‘dependencies’ field. add the following:

dependencies:
  - name: xapp-redis
    condition: xapp-redis.enabled
    version: 0.2.0
    repository: https://accelleran.github.io/helm-charts/
  - name: influxdb
    condition: influxdb.enabled
    version: 4.8.5
    repository: https://github.com/influxdata/influxdb

Give the Helm Chart ‘name’, set the conditions for it to be installed under ‘condition’, choose the ‘version’ of the helm chart to be installed and finally give the Helm Chart repository where the Helm Chart is located.

  1. Next, edit the values.yaml file to enable editing the new Helm Charts specific configuration:
influxdb:
  # Enable/disable installation of InfluxDB
  enabled: true

  setDefaultUser:
    enabled: true
    user:
      username: admin
      password: admin

Here, make sure to use the ‘name’ used in the Chart.yaml file. Note that here we create the ‘enabled’ option, which is the ;condition; statement in the Chart.yaml. The rest of the fields are InfluxDB specific fields which come from its own Helm Chart. Therefore, you can pick any config option from the InfluxDB Helm charts’ values.yaml and incorporate it in the xApp values.yaml file this way.

  1. Optionally add some of the InfluxDB specific configuration options as xApp Configuration so that you can access them in the xApp Core. You can add them to the xapp_metadata.json file, which will allow you to also set their default values, enable editing them from the dRAX Dashboard and also provide visual widgets for those configuration options.
"config_options": [
        ...
        {
            "name": "influxdb_username",
            "description": "InfluxDB User name",
            "default": "admin",
            "jsonSchemaOptions": {
                "type": "string"
            },
            "uiSchemaOptions": {}
        },
        ...
]
  1. To change their value on deployment, you can edit the xappConfig field in the values.yaml of the xApp Helm chart:
xappConfig:
  ...
  influxdb_username: root
  ...