Closed anthr76 closed 2 years ago
We may not need to create individual component charts as they will be very similar and mostly duplicate, I think it is also fair to say they are unlikely to be deployed on their own?
Using dependency aliasing we could do something along these line (only client_api is shown, similar concept for other components):
# Chart.yaml
dependencies:
- name: common
...
alias: client_api
condition: dendrite.polylithEnabled
# values.yaml
client_api:
image:
repository: matrixdotorg/dendrite-polylith
tag: "v0.5.1"
service:
main:
ports:
http:
enabled: false
internal:
enabled: true
port: 7771
config:
# Move the config from .Values.dendrite.components.client_api for better readability
dendrite:
polylithEnabled: true
# templates/common.yaml
{{- if .Values.dendrite.polylithEnabled }}
{{- include "common.values.setup" .Subcharts.client_api -}}
...
{{- else }}
{{- include "common.values.setup" . }}
{{- end }}
...
{{- if .Values.dendrite.polylithEnabled }}
{{- include "common.all" .Subcharts.client_api -}}
...
{{- else }}
{{- include "common.all" . }}
{{- end }}
Indeed dependency aliasing seems like a better solution and something I learned about. We should move forward with that approach.
Details
Helm chart name: Dendrite
Describe the solution you'd like: A dendrite deployment using k8s-at-home library charts
There has been discussions among @S7evink, and @Jonnobrow I about support dendrite in a polylith deployment model. This issue should track it's progress. The current contigency plan is to add each component as a dependency to the current dendrite deployment.
Progress is being made here and if you'd like to be added as a contributor to help complete the dendrite polylith chart please contact me via discord or matrix via: anthr76#1885 anthr76:mozilla.org
A rough outline of what needs to happen
This chart release should be blocked until a NATs release is cut from dendrite and we should template the config around dendrite's mono config version 2
Anything else you would like to add:
Additional Information:
A chat log about efforts.