Skip to main content

Installing Krateo PlatformOps on kind

Basic Installation

Installing Krateo with default configuration is quick and easy.

You will need:

  • Helm: These instructions were tested with v3.13.1.
  • A Kubernetes cluster.
note

Krateo PlatformOps installer is a flexible workflow engine that executes sequential steps. The installer-chart is a helper that provider already baked configurations for Krateo PlatformOps. It is however possible to implement a custom installer. Please check all the possible values supported by the chart.

If you have any Docker-compatible container runtime installed (including native Docker, Docker Desktop, or OrbStack), you can easily launch a disposable cluster just for this quickstart using kind.

Krateo PlatformOps is exposed via NodePort by default:

helm repo add krateo https://charts.krateo.io
helm repo update krateo

kind create cluster --wait 120s --image kindest/node:v1.30.4 --config - <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: krateo-quickstart
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
extraPortMappings:
- containerPort: 80
hostPort: 80
protocol: TCP
- containerPort: 443
hostPort: 443
protocol: TCP
- role: worker
extraPortMappings:
- containerPort: 30080 # Krateo Portal
hostPort: 30080
- containerPort: 30081 # Krateo BFF
hostPort: 30081
- containerPort: 30082 # Krateo AuthN Service
hostPort: 30082
- containerPort: 30083 # Krateo EventSSE
hostPort: 30083
- containerPort: 30084 # Krateo Terminal Server
hostPort: 30084
- containerPort: 30085 # Krateo Resource Tree Handler
hostPort: 30085
- containerPort: 30086 # Krateo FireworksApp Frontend
hostPort: 30086
- containerPort: 31443 # vCluster API Server Port
hostPort: 31443
networking:
# By default the API server listens on a random open port.
# You may choose a specific port but probably don't need to in most cases.
# Using a random port makes it easier to spin up multiple clusters.
apiServerPort: 6443
EOF

helm upgrade installer installer \
--repo https://charts.krateo.io \
--namespace krateo-system \
--create-namespace \
--install \
--version 2.3.0 \
--wait
info

While this option is a bit more complex than using Docker Desktop or OrbStack directly, it offers the advantage of being fully-disposable. If your cluster reaches a state you are dissatisfied with, you can simply destroy it and launch a new one.

Wait for Krateo PlatformOps to be up&running:

kubectl wait krateoplatformops krateo --for condition=Ready=True --namespace krateo-system --timeout=300s

At the end of this process:

  • The Krateo Composable Portal will be accessible at localhost:30080.
  • The admin user password can be retrieved with the following command:
kubectl get secret admin-password  -n krateo-system -o jsonpath="{.data.password}" | base64 -d
info

The installer by default deploys a composable-portal-basic with examples to immediately start to play with Krateo PlatformOps. The chart is available here: https://github.com/krateoplatformops/composable-portal-basic.