Quick-Start
Prerequisites
- Running Kubernetes Cluster
- Container Storage Interface (CSI)
- LoadBalancer like Metallb
Required Charts for most Truecharts Charts
Install the following charts if not already installed:
Recommended Charts
- Blocky: Local DNS Resolving with k8s-gateway
- Clusterissuer: Configuring Cert-Manager
- Kubernetes-Reflector: Reflect Resources across Namespaces
- Metallb with Metallb-Config as LoadBalancer
- Snapshot-Controller: Required for Volsync
- Volsync: For Backup and Restore of PVCs
- Traefik-CRDS & Traefik: For Ingress and Reverse Proxying
Upstream Operators
Truecharts relies on multiple Charts for functionality like Postgres Databases and Metrics. Therefore we require certain Charts to be installed. Below you will find example configurations for most of them:
Cert-Manager
Cert-Manager is used together with our clusterissuer to create SSL certificates for ingress. The chart installation can be found here.
Example configuration:
crds: enabled: truedns01RecursiveNameservers: "1.1.1.1:53,1.0.0.1:53"dns01RecursiveNameserversOnly: falseenableCertificateOwnerRef: true
Cloudnative-PG
Cloudnative-PG is used for Postgres databases in many of our charts. The chart can be found here.
Example configuration:
crds: create: true
Prometheus
Kube-promotheus-stack is used for metrics. The chart can be found here.
As we provide our own grafana with included dashboard. We recommend to disable grafana and add a few tweaks in the kube-prometheus-stack:
grafana: enabled: false forceDeployDashboards: true defaultDashboardsEnabled: true forceDeployDatasources: truecrds: enabled: true upgradeJob: enabled: true forceConflicts: truecleanPrometheusOperatorObjectNames: truealertmanager: enabled: falsekubeProxy: enabled: falsekubeEtcd: service: selector: component: kube-apiserver # etcd runs on control plane nodesprometheus: prometheusSpec: podMonitorSelectorNilUsesHelmValues: false probeSelectorNilUsesHelmValues: false ruleSelectorNilUsesHelmValues: false scrapeConfigSelectorNilUsesHelmValues: false serviceMonitorSelectorNilUsesHelmValues: false enableAdminAPI: true walCompression: true enableFeatures: - memory-snapshot-on-shutdown retention: 14d retentionSize: 50GB resources: requests: cpu: 100m limits: memory: 2000Mi
We generally advice to run the full kube-prometheus-stack but as it is quite resource intensive you can run the minimum requirement which only requires to add the CRDs. This can be done like this:
crds: enabled: true upgradeJob: enabled: true forceConflicts: trueprometheusOperator: enabled: false## Everything down here, explicitly disables everything except CRDs and grafana dashboardsglobal: rbac: create: falsedefaultRules: create: falsewindowsMonitoring: enabled: falseprometheus-windows-exporter: prometheus: monitor: enabled: falsealertmanager: enabled: falsegrafana: enabled: false forceDeployDashboards: true defaultDashboardsEnabled: true forceDeployDatasources: truekubernetesServiceMonitors: enabled: truekubeApiServer: enabled: falsekubelet: enabled: falsekubeControllerManager: enabled: falsecoreDns: enabled: falsekubeDns: enabled: falsekubeEtcd: enabled: falsekubeScheduler: enabled: falsekubeProxy: enabled: falsekubeStateMetrics: enabled: falsenodeExporter: enabled: falseprometheus: enabled: falsethanosRuler: enabled: false