--- 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`