# 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/](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**  
```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

```bash
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.
