---
title: 'Pelorus exporters deployment types'
---
Pelorus exporters deployment types
===
## Preface
[Pelorus](https://pelorus.readthedocs.io/en/latest/) installation is performed using [Helm3](https://github.com/helm/helm/releases).
During deployment **configuration** file e.g. `my-values.yaml` may be passed to the helm CLI command. The configuration file determines from where the pelorus exporters will get installed. Each exporter instance may be deployed from different GIT repository/branch or/and from different podman image.
```
helm install pelorus charts/pelorus --namespace pelorus --values my-values.yaml
```
Currently the configuration file have two options to control from where the exporter will be built and deployed, those are **source_ref** and **source_url**:
```
exporters:
instances:
- app_name: deploytime-exporter
exporter_type: deploytime
source_ref: refs/pull/467/head
source_url: https://github.com/konveyor/pelorus.git
env_from_configmaps:
- pelorus-config
- deploytime-config
```
By default those values may be skipped and [defaults](https://github.com/konveyor/pelorus/blob/master/charts/pelorus/charts/exporters/templates/_buildconfig.yaml#L20-L21) to:
```
source_ref: <latest pelorus release tag> # v1.5.0
source_url: https://github.com/konveyor/pelorus.git
```
## Problem
With the work to change the deployment from GIT source to podman registry images we need to agree on the default deployment type, when user includes mixture of exporter configuration options, let's examine the following example:
```
exporters:
instances:
- app_name: deploytime-exporter
exporter_type: deploytime
image_name: "quay.io/migi/committime-exporter:stable"
image_tag: v1.6.0
source_ref: configmap_vs_secret
source_url: https://github.com/mpryc/pelorus.git
env_from_configmaps:
- pelorus-config
- deploytime-config
```
Of course it is extreme situation where user entered configuration options that are in contradiction to each other, such as **image_name** that contains the image tag and different **image_tag** or **source_url** which tells to install exporter from the source, however **image_name** is also provided telling the exporter should be deployed from quay.io image.
We should decide how to handle such cases.
## Possible solutions
Here is the table matrix which we will have resolution depending on the options provided.
**+** - option provided
Empty columns, we do not care about those, because the provided ones determines the installation types or errors during helm operation.
| image_name with tag | image_name without tag | image_tag | source_ref | source_url | RESOLUTION | Allowed |
| -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| | | | | | Use "stable" tag and default image | Y |
| + | | | | | Use provided image that contains provided tag | Y |
| + | | + | | | Fail with Helm info | N |
| + | | | + | | Fail with Helm info | N |
| + | | | | + | Fail with Helm info | N |
| | + | | | | Use provided image with default "stable" tag | Y |
| | + | + | | | Use provided image with provided tag | Y |
| | + | | + | | Fail with Helm info | N |
| | + | | | + | Fail with Helm info | N |
| | | | + | + | GIT deploy with provided URL and provided ref | Y |
| | | | | + | GIT deploy with provided URL and default ref | Y |
| | | | + | | GIT deploy with default URL and provided ref | Y |
| | | + | | + | Fail with Helm info | N |
| | | + | + | | Fail with Helm info | N |
###### tags: `Pelorus`