```
## Install Operator package
+### Build docker images
+#### collectd-operator
+```bash
+cd $DA_WORKING_DIR/../microservices/collectd-operator
+
+## Note: The image tag and respository in the Collectd-operator helm charts needs to match the IMAGE_NAME
+IMAGE_NAME=dcr.cluster.local:32644/collectd-operator:latest
+./build/build_image.sh $IMAGE_NAME
+```
+#### visualization-operator
+```bash
+cd $DA_WORKING_DIR/../microservices/visualization-operator
+
+## Note: The image tag and respository in the Visualization-operator helm charts needs to match the IMAGE_NAME
+IMAGE_NAME=dcr.cluster.local:32644/visualization-operator:latest
+./build/build_image.sh $IMAGE_NAME
+```
+
+### Install the Operator Package
```bash
cd $DA_WORKING_DIR/operator
helm install -n operator . -f values.yaml --namespace=operator
5. Edit the values.yaml and change the image repository and tag using
COLLECTD_IMAGE_NAME appropriately.
6. Place the collectd.conf in
- $DA_WORKING_DIR/collection/charts/collectd/resources/config
+ $DA_WORKING_DIR/collection/charts/collectd/resources
7. cd $DA_WORKING_DIR/collection
8. helm install -n cp . -f values.yaml --namespace=edge1
cp13-prometheus-prometheus NodePort 10.43.26.155 <none> 9090:30090/TCP
prometheus-operated ClusterIP None <none> 9090/TCP
```
+#### Configure Collectd Plugins
+1. Using the sample [collectdglobal.yaml](microservices/collectd-operator/examples/collectd/collectdglobal.yaml), Configure the CollectdGlobal CR
+2. If there are additional Types.db files to update, Copy the additional types.db files to resources folder.
+3. Create a ConfigMap to load the types.db and update the configMap with name of the ConfigMap created.
+4. Create and configure the required CollectdPlugin CRs. Use these samples as a reference [cpu_collectdplugin_cr.yaml](microservices/collectd-operator/examples/collectd/cpu_collectdplugin_cr.yaml), [prometheus_collectdplugin_cr.yaml](microservices/collectd-operator/examples/collectd/prometheus_collectdplugin_cr.yaml).
+4. Use the same namespace where the collection package was installed.
+5. Assuming it is edge1, create the config resources that are applicable. Apply the following commands in the same order.
+```yaml
+# Note:
+## 1. Create Configmap is optional and required only if additional types.db file needs to be mounted.
+## 2. Add/Remove --from-file accordingly. Use the correct file name based on the context.
+kubectl create configmap typesdb-configmap --from-file ./resource/[FILE_NAME1] --from-file ./resource/[FILE_NAME2]
+kubectl create -f edge1 collectdglobal.yaml
+kubectl create -f edge1 [PLUGIN_NAME1]_collectdplugin_cr.yaml
+kubectl create -f edge1 [PLUGIN_NAME2]_collectdplugin_cr.yaml
+kubectl create -f edge1 [PLUGIN_NAME3]_collectdplugin_cr.yaml
+...
+```
+#### Configure Grafana Datasources
+Using the sample [prometheus_grafanadatasource_cr.yaml](microservices/visualization-operator/examples/grafana/prometheus_grafanadatasource_cr.yaml), Configure the GrafanaDataSource CR by running the command below
+```yaml
+kubectl create -f [DATASOURCE_NAME]_grafanadatasource_cr.yaml
+...
+```
## Install Minio Model repository
* Prerequisite: Dynamic storage provisioner needs to be enabled. Either rook-ceph ($DA_WORKING_DIR/00-init) or another alternate provisioner needs to be enabled.