Skip to content

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:


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: true
dns01RecursiveNameservers: "1.1.1.1:53,1.0.0.1:53"
dns01RecursiveNameserversOnly: false
enableCertificateOwnerRef: 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: true
crds:
enabled: true
upgradeJob:
enabled: true
forceConflicts: true
cleanPrometheusOperatorObjectNames: true
alertmanager:
enabled: false
kubeProxy:
enabled: false
kubeEtcd:
service:
selector:
component: kube-apiserver # etcd runs on control plane nodes
prometheus:
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: true
prometheusOperator:
enabled: false
## Everything down here, explicitly disables everything except CRDs and grafana dashboards
global:
rbac:
create: false
defaultRules:
create: false
windowsMonitoring:
enabled: false
prometheus-windows-exporter:
prometheus:
monitor:
enabled: false
alertmanager:
enabled: false
grafana:
enabled: false
forceDeployDashboards: true
defaultDashboardsEnabled: true
forceDeployDatasources: true
kubernetesServiceMonitors:
enabled: true
kubeApiServer:
enabled: false
kubelet:
enabled: false
kubeControllerManager:
enabled: false
coreDns:
enabled: false
kubeDns:
enabled: false
kubeEtcd:
enabled: false
kubeScheduler:
enabled: false
kubeProxy:
enabled: false
kubeStateMetrics:
enabled: false
nodeExporter:
enabled: false
prometheus:
enabled: false
thanosRuler:
enabled: false