Getting Started
This guide walks you through installing Knodex, verifying the deployment, and deploying your first instance.
Requirements
- Kubernetes cluster (1.32+)
- KRO — or let the chart install it (see compatibility matrix below)
- kubectl configured
- Helm 3.x
Enterprise builds additionally require a PostgreSQL 16+ database for audit trails, compliance violation storage, and organization isolation. The Helm chart can provision an embedded PostgreSQL instance automatically. See PostgreSQL Configuration for details.
Version Compatibility
Each Knodex release is tested against a specific KRO version. Using a different KRO version may work but is not guaranteed.
| Knodex | KRO | Kubernetes | Helm |
|---|---|---|---|
| 0.6.x | 0.9.1 | 1.32+ | 3.x |
| 0.5.0 | 0.9.1 | 1.32+ | 3.x |
The Helm chart bundles the matching KRO version as an optional dependency. Setting kro.enabled=true installs the correct version automatically.
Install with Helm
helm install knodex oci://ghcr.io/knodex/charts/knodex \
--namespace knodex \
--create-namespace \
--set kro.enabled=true
Omit --set kro.enabled=true if KRO is already installed on your cluster.
Verify Installation
Check that all pods are running:
kubectl get pods -n knodex
Expected output (OSS):
NAME READY STATUS RESTARTS AGE
knodex-server-6f8b9c7d4-x2k9m 1/1 Running 0 2m
knodex-redis-59ddd568d9-xxxxx 1/1 Running 0 2m
For Enterprise with the embedded PostgreSQL subchart enabled:
NAME READY STATUS RESTARTS AGE
knodex-server-6f8b9c7d4-x2k9m 1/1 Running 0 2m
knodex-redis-59ddd568d9-xxxxx 1/1 Running 0 2m
knodex-postgresql-0 1/1 Running 0 2m
Verify the server is healthy:
kubectl port-forward svc/knodex-server 8080:8080 -n knodex
curl http://localhost:8080/healthz
# {"status":"healthy"}
Log In
Get the auto-generated admin password:
kubectl get secret knodex-initial-admin-password -n knodex \
-o jsonpath='{.data.password}' | base64 -d && echo
Open http://localhost:8080 and log in with username admin and the retrieved password.
Deploy a Sample RGD
Apply a sample ResourceGraphDefinition:
kubectl apply -f https://raw.githubusercontent.com/knodex/knodex/main/deploy/examples/rgds/simple-app.yaml
Verify it's active:
kubectl get rgd simple-app
NAME STATE AGE
simple-app Active 30s
The simple-app RGD has the knodex.io/catalog: "true" annotation, so it appears in the catalog automatically.
Deploy Your First Instance
- Navigate to the Catalog in the sidebar
- Select the Simple Application RGD — it accepts
appName,image(defaults tonginx:latest), andport(defaults to80) - Click Deploy, fill in
appName(e.g.,my-first-app), select a namespace - Review the YAML preview and click Submit
Monitor the instance in the Instances view. Verify with kubectl:
kubectl get simpleapps -A
Upgrading
helm upgrade knodex oci://ghcr.io/knodex/charts/knodex \
--namespace knodex \
-f values.yaml
Uninstalling
helm uninstall knodex --namespace knodex
To also remove the namespace and any persistent data:
kubectl delete namespace knodex
Deleting the namespace removes all data, including Redis state and any PostgreSQL data (audit events, compliance violations) for Enterprise deployments. Ensure you have backups if needed.
Next Steps
| Topic | Description |
|---|---|
| User Guide | Browse the catalog, deploy and manage instances |
| Administration | Configure OIDC, RBAC, and production settings |
| RGD Authoring | Write and configure ResourceGraphDefinitions |