Installation
Let's discover how to install Kadras Engineering Platform on a local Kubernetes cluster with kind.
Prerequisites
Ensure you have the following tools installed in your local environment:
Then, create a local Kubernetes cluster with kind.
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: kadras
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 80
hostPort: 80
protocol: TCP
- containerPort: 443
hostPort: 443
protocol: TCP
EOF
Alternatively, you can use k3d to create a local Kubernetes cluster.
k3d cluster create kadras-local \
--image rancher/k3s:v1.35.2-k3s1 \
--k3s-arg "--disable=traefik@server:0" \
-p "80:80@loadbalancer" \
-p "443:443@loadbalancer"
Deploy Carvel kapp-controller
The platform relies on the Kubernetes-native package management capabilities offered by Carvel kapp-controller. You can install it with Carvel kapp (recommended choice) or kubectl.
kapp deploy -a kapp-controller -y \
-f https://github.com/carvel-dev/kapp-controller/releases/latest/download/release.yml
Add the Kadras Repository
Add the Kadras repository to make the platform packages available to the cluster.
kctrl package repository add -r kadras-packages \
--url ghcr.io/kadras-io/kadras-packages:0.32.0 \
-n kadras-system --create-namespace
Configure the Platform
The installation of the Kadras Engineering Platform can be configured via YAML. Create a values.yml file with any configuration you need for the platform. The following is a minimal configuration example for a local environment.
platform:
ingress:
domain: 127.0.0.1.sslip.io
contour:
envoy:
service:
type: NodePort
The Ingress is configured with the special domain 127.0.0.1.sslip.io which will resolve to your localhost and be accessible via the kind cluster.
Install the Platform
Reference the values.yml file you created in the previous step and install the Kadras Engineering Platform.
kctrl package install -i engineering-platform \
-p engineering-platform.packages.kadras.io \
-v 0.32.0 \
-n kadras-system \
--values-file values.yml
Verify the Installation
Verify that all the platform components have been installed and properly reconciled.
kctrl package installed list -n kadras-system
You should see something like this:
Name Package Name Package Version Status
cert-manager cert-manager.packages.kadras.io 1.20.0 Reconcile succeeded
contour contour.packages.kadras.io 1.33.2 Reconcile succeeded
engineering-platform engineering-platform.packages.kadras.io 0.30.0 Reconcile succeeded
flux flux.packages.kadras.io 2.8.2 Reconcile succeeded
knative-serving knative-serving.packages.kadras.io 1.21.1 Reconcile succeeded
rbac-configurer rbac-configurer.packages.kadras.io 0.2.1 Reconcile succeeded
secretgen-controller secretgen-controller.packages.kadras.io 0.20.1 Reconcile succeeded
workspace-provisioner workspace-provisioner.packages.kadras.io 0.4.0 Reconcile succeeded