helm chart improvements #425
No reviewers
Labels
No labels
action
check-aws
action
discussion-needed
action
for-external-contributors
action
for-newcomers
action
more-info-needed
action
need-funding
action
triage-required
kind
correctness
kind
ideas
kind
improvement
kind
performance
kind
testing
kind
usability
kind
wrong-behavior
prio
critical
prio
low
scope
admin-api
scope
background-healing
scope
build
scope
documentation
scope
k8s
scope
layout
scope
metadata
scope
ops
scope
rpc
scope
s3-api
scope
security
scope
telemetry
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Deuxfleurs/garage#425
Loading…
Reference in a new issue
No description provided.
Delete branch "patrickjahns/garage:helm-improvements"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains a couple of improvements to the helm chart:
The ability to override the (default) configuration template so that custom values can easily be injected. In the end, this simplifies the configuration in the helm chart, as it drops the need for exposing every garage configuration value into yaml.
I would also like to discuss, that some of the values we currently have in the
garage
key can now be dropped and just moved into that configuration fileSome unused variables from the
garage
configuration key (namelymetadataDir
anddataDir
) were removed and hardcoded in the configuration (as the mountpoint in the pod was hardcoded anyway)A change to the configuration will now trigger a rollout // rolling update of the pods (previously manual effort was required by restarting the pods to have configuration changes take effect)
The currently
securityContext
andpodSecurityContext
configuration lead to permissions issues on a couple of CSI drivers (tested with longhorn, openebs, openebs-lvm) as the user/group (1000/1000) of garage would not match the default permissions of the filesystem (root). By moving the configuration into the podSecurityContext and defining the default user for the group the filesystem will have when mounted, the problems are gone and this raises compatibilityPrevious errors observed:
Ability to override the init container image - this allows to now specify a different registry (and tag) for the image, so that it's not bound to dockerhub
Added the ability to easily integrate with prometheus (operator) in kubernetes. A kubernetes service exposing the admin api is created, and if wanted, users can choose to also use
ServiceMonitors
so that the prometheus operator automatically detects the garage podsTODO
a2b30bd63f
toe53693607b
Looks good, I rebased it over main so you'll have to force-pull sorry, some comments but nothing blocking, let me know what you think
@ -20,0 +22,4 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "garage.fullname" . }}-metrics
Actually this is the admin API endpoint, so maybe we should simply call that
-admin
?The initial thought here was, to keep the service definitions for admin and metrics by their own. So having two services - which can have individual configurations if need be. A thought here was, that if the user would for example expose the admin api via a LoadBalancer service, the metrics service would not be impacted.
Or adding annotations to the "admin service" i.e. for istio would not affect prometheus and vice/versa
Let me know if this changes your thoughts - or if you would like to proceed with renaming the ports
@ -20,0 +34,4 @@
- port: 3903
targetPort: 3903
protocol: TCP
name: metrics
Same as above
@ -44,1 +77,4 @@
initImage:
repository: busybox
tag: 1.28
Maybe we should target "stable" by default?
@ -148,0 +193,4 @@
serviceMonitor:
# If true, a ServiceMonitor CRD is created for a prometheus operator
# https://github.com/coreos/prometheus-operator
#
Remove newline?
As mentioned in #409 (comment) - we need to align both PRs to resolve minor conflicts and add the correct version to the helm chart
There is now also health endpoints (see: #440 ) - I would create a follow up pr to utilize them, once this is merged
Is this alive?
Conflicts with changes made in #409, can this be rebased?
94772a7c54
to50bce43f25