Update BigBang packages with Kiali required 'app' and 'version' labels
# Reconciling App and Version Label Inconsistency When Using BigBang, Istio, and Kiali
Please see https://repo1.dso.mil/groups/big-bang/product/packages/-/epics/15#note_2410051 for recommended implementation pattern.
## Description
See Requirements section
### Istio's Recomendations
[Istio recommends](https://istio.io/latest/docs/ops/deployment/application-requirements/#:~:text=Pods%20with%20app,the%20particular%20deployment) the use of app and version labels on pods in the mesh.

Istio is able to reconcile the use of the labels `app` and `version` and/or the kubernetes recommended labels of `app.kubernetes.io/name` and `app.kubernetes.io/version`.
### Kiali's Needs
Kiali on the other hand can only be configured to use a single configurable set of these istio labels to reconcile the telemetry of the workloads.
[Kiali Documentation](https://kiali.io/docs/configuration/istio/#labels-and-resource-names) related to this.

### BigBang, Istio, Kiali, and BigBang Packages
There are many inconsistencies across BigBang Core and many of its packages when it comes to the configuring of these app and version labels on pods.
### Different Scenarios
#### The package chart defines one or both sets of these labels for App and Version in the Deployment Pod templates.
In this case, Kiali is happy because it can gather telemetry data using the istio_labels it is looking for.

Defined in the BigBang Package Chart [here](https://repo1.dso.mil/platform-one/big-bang/apps/core/argocd/-/blob/main/chart/templates/argocd-application-controller/deployment.yaml#L28) and [here](https://repo1.dso.mil/platform-one/big-bang/apps/core/argocd/-/blob/main/chart/templates/_helpers.tpl#L194)
#### The package chart does NOT define one or both of the desired istio_labels
In this case, we see the following ***Missing App*** or ***Missing Version*** error in our Kiali dashboard

***In some cases, we can configure additional pod labels to satisfy the need for these labels if the upstream chart doesn't do it by default. Take these ArgoCD redis-bb workloads for example.***
We are able to add the following pod labels to our argocd configuration to create the version label for the redis-bb pods and set it to the image tag that is used for those pods.
```yaml
redis-bb:
master:
podLabels:
app.kubernetes.io/version: "{{ .Values.image.tag }}"
replica:
podLabels:
app.kubernetes.io/version: "{{ .Values.image.tag }}"
```
This works because the BigBang Redis chart templates can properly interpret that label [here](https://repo1.dso.mil/platform-one/big-bang/apps/application-utilities/redis/-/blob/main/chart/templates/master/application.yaml#L35).
Once this is configured, our ArgoCD redis-bb pods now contain a valid version label. Although, "valid" is a strong term. Should it be the chart version? image tag? something else? I've seen variations.

***Charts Without Dynamic Extra Label Values***
Some helm charts (e.g. Jaeger) have an `extraLabels` value, but only support literal string values (it's consumed by `toYaml`), and we would need the `version` label value to be set dynamically. In cases like this, the fix isn't possible via supplying different input values to the helm chart; it would require changing the chart itself, e.g. via implementing a new helper function in a tpl file.


### Additional Inconsistencies In BigBang Packages
Note: Most if not all these inconsistencies are inherited by BigBang from the upstream open source chart.
- Some Deployment templates have these labels, while not including them in the spec template.
- Some charts define the labels `app` and `version` only vs `app.kubernetes.io/name` and `app.kubernetes.io/version`
- This is valid in istio only land, but kiali can only handle a single pair of labels representing this data.
## Requirements/Scope
`app` and `version` labels must be set on pods created by all `Deployment`, `StatefulSet` and `DaemonSet` objects that present as workloads within Kiali. `app` label needs to align with how the traces show in Jaeger, so the link from Kiali will be valid. `version` label should be from `.Chart.AppVersion`.
https://kiali.dev.bigbang.mil/kiali/console/workloads
Please see https://repo1.dso.mil/groups/big-bang/product/packages/-/epics/15#note_2410051 for recommended implementation pattern.
## Out of Scope
## Duration
Estimate 4 sprints
## Team
Service Mesh
## Epic Team Members
- @wyatt.fry (LEAD)
- @kylegalloway-seed
- @fkqs
- @lgomez2
- @ronwerth
## Dependencies
None
## Risks
Potential complexity/required chart updates in some cases.
## Acceptance Criteria
See Requirements section
## Related Issues and/or Epics
N/A
epic