Connect Your Kubernetes Cluster to Autokitteh
This guide helps you expose your Kubernetes API securely and create a non-expiring kubeconfig file in JSON format for use with Autokitteh.
This guide is intended for Autokitteh self-hosted/local version only.
Prerequisites
- A running Kubernetes cluster (e.g. Minikube)
kubectl
installed and configured
Step-by-Step Instructions
Step 1: Create a Kubernetes Service Account
kubectl create serviceaccount autokitteh
Step 2: Grant Permissions (Cluster-Wide)
kubectl create clusterrolebinding autokitteh-access-binding \
--clusterrole=cluster-admin \
--serviceaccount=default:autokitteh
Note: You can replace cluster-admin
with a custom role for limited access.
Step 3: Create a Non-Expiring Token
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: autokitteh-token
annotations:
kubernetes.io/service-account.name: "autokitteh"
type: kubernetes.io/service-account-token
EOF
Then wait a few seconds and extract the token:
kubectl get secret autokitteh-token -o jsonpath="{.data.token}" | base64 --decode
Copy and save the token for use in the config file.
Step 4: Get Your Kubernetes API Server Address
First, get your local API server URL (including the port):
kubectl config view --minify -o jsonpath="{.clusters[0].cluster.server}"
Copy the what shown in the terminal, such as:
https://127.0.0.1:64742
Step 5: Create the kubeconfig as JSON
Create a file called k8s-api-config.json
and paste the following, replacing the placeholders:
{
"apiVersion": "v1",
"kind": "Config",
"current-context": "autokitteh-context",
"clusters": [
{
"name": "autokitteh-cluster",
"cluster": {
"server": "https://REPLACE_WITH_URL",
"insecure-skip-tls-verify": true
}
}
],
"users": [
{
"name": "autokitteh-user",
"user": {
"token": "REPLACE_WITH_YOUR_TOKEN"
}
}
],
"contexts": [
{
"name": "autokitteh-context",
"context": {
"cluster": "autokitteh-cluster",
"user": "autokitteh-user",
"namespace": "default"
}
}
]
}
Make sure to:
- Replace
https://REPLACE_WITH_URL
with your actual URL from the previous step - Replace
REPLACE_WITH_YOUR_TOKEN
with the actual token from Step 3
Step 6: Create the Autokitteh connection
- Create a Kubernetes connection in the Autokitteh UI (web platform)
- Copy the full contents of
k8s-api-config.json
and paste it in theconfig_file
field - Paste it into the connection variable field labeled
K8s Config File
More Info
For web platform use (not local), you can follow this CNCF guide to expose your Kubernetes API, but this is not safe for production: https://www.cncf.io/blog/2025/03/12/expose-the-kubernetes-api-and-access-it-anywhere/