[P1BIGROCKS-1358] Big Bang Affinity & Anti Affinity Reconciliation 1
[P1BIGROCKS-1358](https://jira.il2.dso.mil/browse/P1BIGROCKS-1358)
## Purpose:
- Ensure all packages respect Affinity/Anti Affinity
- Ensure all packages document how each package handles Affinity/Anti Affinity
- verify Affinity/Anti Affinity hooks are available and exposed
- If Affinity/Anti Affinity is already built in, do not need to test; for packages with no upstream Helm Chart or packages in which we are adding affinity/Anti affinity, testing is required
## Recommended Implementation
This recommended implementation respects the relationship of Big Bang to the packages it consumes: Big Bang is the downstream consumer of it's upstream package dependencies.
```
# package values.yaml
affinity: {}
nodeSelector: {}
# package templates (straight spec passthrough with yaml validation)
...
{{- if .Values.nodeSelector }}
nodeSelector:
{{- toYaml .Values.nodeSelector | nindent 8 }}
{{- end }}
{{- if .Values.affinity }}
affinity:
{{- toYaml .Values.affinity | nindent 8 }}
{{- end }}
...
```
The downstream consumer (bigbang) should be unaware of the available affinities' values, but users _should_ be able to override it as they would with any other `values: {}`:
```
# bigbang setters (bigbang values.yaml)
...
istio:
values:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/e2e-az-name
operator: In
values:
- e2e-az1
- e2e-az2
...
```
## Packages:
- [x] Istio Operator
- [x] Istio Controlplane
- [x] Monitoring
- [x] ECK Operator
- [x] Elasticsearch Kibana
- [x] Fluentbit
- [x] OPA Gatekeeper
- [x] ArgoCD
- [x] Cluster Auditor
- [x] KeyCloak
- [x] Twistlock
- [x] Anchore Enterprise
- [x] Authservice
- [x] GitLab
- [x] GitLab Runner
- [x] Sonarqube
- [x] Mattermost
- [x] Mattermost Operator
- [x] MinIO
- [x] MinIO Operator
- [x] Velero
epic