KOP Recipes - K8sGPT Operator - Rafay Product Documentation
Configure
In this section, you will create a standardized cluster blueprint with the k8sgpt add-on. You can then reuse this blueprint with all your clusters.
Step 1: Create Namespace
In this step, you will create a namespace for the K8sGPT Operator.
Navigate to a project in your Org
Select Infrastructure -> Namespaces
Click New Namespace
Enter the name kube-system
Select wizard for the type
Click Save
Click Discard Changes & Exit
Note: The k8sgpt operator prefers to be deployed into the "kube-system" namespace. This namespace is a privileged namespace on Kubernetes clusters.
Step 2: Create Repository
In this step, you will create a repository in your project so that the controller can retrieve the K8sGPT Operator Helm chart automatically. This allows you to update the add-on to new versions of the K8sGPT operator as and when they are made available.
Select Integrations -> Repositories
Click New Repository
Enter the name k8sgpt
Select Helm for the type
Click Create
Enter https://charts.k8sgpt.ai/ for the endpoint
Click Save
Optionally, you can click on the validate button on the repo to confirm connectivity.
Step 3: Create K8sGPT Operator Addon
In this step, you will create a custom add-on for the K8sGPT Operator that will pull the Helm chart from the previously created repository. This add-on will be added to a custom cluster blueprint in a later step.
Select Infrastructure -> Add-Ons
Click New Add-On -> Create New Add-On
Enter the name k8sgpt-operator
Select Helm 3 for the type
Select Pull files from repository
Select Helm for the repository type
Select kube-system for the namespace
Click Create
Click New Version
Enter a version name
Select the previously created repository
Enter k8sgpt-operator for the chart name
Enter 0.0.11 for the chart version
Click Save Changes
Step 4: Create K8sGPT Configuration Addon
In this step, you will create a custom add-on for the K8sGPT configuration. This add-on will be added to a custom cluster blueprint in a later step.
Note: This configuration contains setting such as the ML model type, whether you are using OpenAI or a local LLM etc.
- Save the below YAML to a file named k8sgpt-config.yaml
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample
namespace: kube-system
spec:
model: gpt-3.5-turbo
backend: openai
noCache: false
version: v0.3.0
enableAI: true
secret:
name: k8sgpt-sample-secret
key: openai-api-key
Select Infrastructure -> Add-Ons
Click New Add-On -> Create New Add-On
Enter the name k8sgpt-configuration
Select K8s YAML for the type
Select Upload files manually
Select kube-system for the namespace
Click Create
Click New Version
Enter a version name
Click Upload and select the previously saved k8sgpt-config.yaml file
Click Save Changes
Step 5: Create K8sGPT Secret
In this step, you will create a Kubernetes secret for K8sGPT which contains the OpenAI API token. This token allows K8sGPT to communicate with your OpenAI account.
- Update the below command with your OpenAI API token
kubectl create secret generic k8sgpt-sample-secret --from-literal=openai-api-key=<OPENAI_TOKEN> -n kube-system
- Execute the updated command on the cluster
Step 6: Create Blueprint
In this step, you will create a custom cluster blueprint that contains the K8sGPT Operator add-on and the K8SGPT configuration add-on that were previously created. The cluster blueprint can be applied to one or multiple clusters.
Select Infrastructure -> Blueprints
Click New Blueprint
Enter the name k8sgpt
Click Save
Enter a version name
Select Minimal for the base blueprint
In the add-ons section, click Configure Add-Ons
Click the + symbol next to the previously created add-ons to add them to the blueprint
Click Save Changes
Click Save Changes
Step 7: Apply Blueprint
In this step, you will apply the previously created cluster blueprint to an existing cluster. The blueprint will deploy the K8sGPT add-ons to the cluster.
- Select Infrastructure -> Clusters
- Click the gear icon on the cluster card -> Update Blueprint
- Select the previously created K8sGPT blueprint and version
- Click Save and Publish
The controller will publish and reconcile the blueprint on the target cluster. This can take a few seconds to complete.
Next Step
At this point, you have done everything required to get K8sGPT configured and operational on your cluster. In the next step, we will test if K8sGPT can detect and identify issues with problematic workloads.