Skip to main content

Platform Base requirements

Platform Base installs into an existing Kubernetes cluster. Check the following before you install it.

Cluster​

  • A running Kubernetes cluster and kubectl access with cluster-admin rights. Platform Base installs CRDs and cluster-scoped resources.
  • Platform Base is validated against three consecutive Kubernetes minor versions, listed in vendor/github.com/RocketPadPlatforms/base/test/integration/k8s-versions.json in your repository. The rendered manifests are checked against them and an end-to-end test on a kind cluster converges every Application on each of them.
note

The default observability profile (small) did not fit on a node with 2 vCPU and about 7 GB of memory in the end-to-end test: the loki Application never became healthy. The test uses the singleNode profile, shrinks the Loki caches and the Mimir ingester further, and turns Kafka off. The singleNode profile alone requests 700m CPU and 6Gi memory for the Mimir ingester. These numbers are indicative, size the nodes for your own load. See Configure observability to choose a profile.

LoadBalancer​

Traefik is the ingress controller and its Service has the type LoadBalancer. The cluster needs a LoadBalancer implementation (a cloud provider, MetalLB or similar). Without one the Service never gets an address and Argo CD does not report the traefik Application as healthy.

Default IngressClass​

Traefik creates an IngressClass and marks it as the default. The Ingresses of Platform Base do not set ingressClassName, so they depend on that default. Do not install a second default IngressClass.

DNS​

Create DNS records for the hostnames Platform Base serves. They all point to the address of the Traefik LoadBalancer Service:

HostnameServes
argocd.<baseDomain>Argo CD
grafana.<baseDomain>Grafana
iam.<baseDomain>Keycloak

<baseDomain> is the first entry of baseDomains. A wildcard record (*.<baseDomain>) covers these hostnames and the optional loki.<baseDomain> and mimir.<baseDomain>, see the hostnames reference.

Git repository​

Argo CD reads your cluster configuration and the vendored Platform Base from a Git repository. It needs network access to that repository, and credentials if the repository is private.

Workstation tools​

  • vendir to fetch Platform Base into your repository.
  • jsonnet (go-jsonnet) to render the bootstrap.
  • kubectl to apply the bootstrap.

Mandatory configuration​

baseDomains is the only mandatory option. Argo CD, Grafana, Keycloak and the optional Loki and Mimir endpoints derive their hostnames from it.