{"id":13645583,"url":"https://github.com/k8sgpt-ai/k8sgpt-operator","last_synced_at":"2026-01-29T00:11:09.976Z","repository":{"id":154164207,"uuid":"622134207","full_name":"k8sgpt-ai/k8sgpt-operator","owner":"k8sgpt-ai","description":"Automatic SRE Superpowers within your Kubernetes cluster","archived":false,"fork":false,"pushed_at":"2026-01-26T22:27:08.000Z","size":3433,"stargazers_count":425,"open_issues_count":67,"forks_count":129,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-27T09:39:26.417Z","etag":null,"topics":["devops","kubernetes","openai","sre","tooling"],"latest_commit_sha":null,"homepage":"https://k8sgpt.ai","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/k8sgpt-ai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-04-01T08:11:57.000Z","updated_at":"2026-01-22T01:57:25.000Z","dependencies_parsed_at":"2023-10-16T10:35:33.128Z","dependency_job_id":"3cc809d6-714b-41ba-a77d-84e33180c6d5","html_url":"https://github.com/k8sgpt-ai/k8sgpt-operator","commit_stats":null,"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/k8sgpt-ai/k8sgpt-operator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k8sgpt-ai%2Fk8sgpt-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k8sgpt-ai%2Fk8sgpt-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k8sgpt-ai%2Fk8sgpt-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k8sgpt-ai%2Fk8sgpt-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/k8sgpt-ai","download_url":"https://codeload.github.com/k8sgpt-ai/k8sgpt-operator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k8sgpt-ai%2Fk8sgpt-operator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28857094,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T22:56:21.783Z","status":"ssl_error","status_checked_at":"2026-01-28T22:56:00.861Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devops","kubernetes","openai","sre","tooling"],"created_at":"2024-08-02T01:02:37.815Z","updated_at":"2026-01-29T00:11:09.970Z","avatar_url":"https://github.com/k8sgpt-ai.png","language":"Go","funding_links":[],"categories":["Openai","Go"],"sub_categories":[],"readme":"\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./images/banner-white.png\" width=\"600px;\"\u003e\n  \u003cimg alt=\"Text changing depending on mode. Light: 'So light!' Dark: 'So dark!'\" src=\"./images/banner-black.png\" width=\"600px;\"\u003e\n\u003c/picture\u003e\n\u003cbr/\u003e\n\n[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/k8sgpt)](https://artifacthub.io/packages/search?repo=k8sgpt)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fk8sgpt-ai%2Fk8sgpt-operator.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fk8sgpt-ai%2Fk8sgpt-operator?ref=badge_shield)\n\n---\nThis Operator is designed to enable [K8sGPT](https://github.com/k8sgpt-ai/k8sgpt/) within a Kubernetes cluster.\nIt will allow you to create a custom resource that defines the behaviour and scope of a managed K8sGPT workload. Analysis and outputs will also be configurable to enable integration into existing workflows.\n\n\u003cimg src=\"images/demo2.gif\" width=\"600px;\"/\u003e\n\n## Installation\n\n```\nhelm repo add k8sgpt https://charts.k8sgpt.ai/\nhelm repo update\nhelm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace\n```\n\n## Run the example\n\n1. Install the operator from the [Installation](#installation) section.\n\n2. Create secret:\n\n```sh\nkubectl create secret generic k8sgpt-sample-secret --from-literal=openai-api-key=$OPENAI_TOKEN -n k8sgpt-operator-system\n```\n\n3. Apply the K8sGPT configuration object:\n\n```sh\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    enabled: true\n    model: gpt-4o-mini\n    backend: openai\n    secret:\n      name: k8sgpt-sample-secret\n      key: openai-api-key\n    # backOff:\n    #  enabled: false\n    #  maxRetries: 5\n    # anonymized: false\n    # language: english\n    # proxyEndpoint: https://10.255.30.150 # use proxyEndpoint to setup backend through an HTTP/HTTPS proxy\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  version: v0.4.1\n  #integrations:\n  # trivy:\n  #  enabled: true\n  #  namespace: trivy-system\n  # filters:\n  #   - Ingress\n  # sink:\n  #   type: slack\n  #   webhook: \u003cwebhook-url\u003e # use the sink secret if you want to keep your webhook url private\n  #   secret:\n  #     name: slack-webhook\n  #     key: url\n  #extraOptions:\n  #   backstage:\n  #     enabled: true\nEOF\n```\n\n4. Once the custom resource has been applied the K8sGPT-deployment will be installed and\n   you will be able to see the Results objects of the analysis after some minutes (if there are any issues in your cluster):\n\n```bash\n❯ kubectl get results -n k8sgpt-operator-system -o json | jq .\n{\n  \"apiVersion\": \"v1\",\n  \"items\": [\n    {\n      \"apiVersion\": \"core.k8sgpt.ai/v1alpha1\",\n      \"kind\": \"Result\",\n      \"spec\": {\n        \"details\": \"The error message means that the service in Kubernetes doesn't have any associated endpoints, which should have been labeled with \\\"control-plane=controller-manager\\\". \\n\\nTo solve this issue, you need to add the \\\"control-plane=controller-manager\\\" label to the endpoint that matches the service. Once the endpoint is labeled correctly, Kubernetes can associate it with the service, and the error should be resolved.\",\n```\n\n## Monitor multiple clusters\n\nThe `k8sgpt.ai` Operator allows monitoring multiple clusters by providing a `kubeconfig` value.\n\nThis feature could be fascinating if you want to embrace Platform Engineering such as running a fleet of Kubernetes clusters for multiple stakeholders.\nEspecially designed for the Cluster API-based infrastructures, `k8sgpt.ai` Operator is going to be installed in the same Cluster API management cluster:\nthis one is responsible for creating the required clusters according to the infrastructure provider for the seed clusters.\n\nOnce a Cluster API-based cluster has been provisioned a `kubeconfig` according to the naming convention `${CLUSTERNAME}-kubeconfig` will be available in the same namespace:\nthe conventional Secret data key is `value`, this can be used to instruct the `k8sgpt.ai` Operator to monitor a remote cluster without installing any resource deployed to the seed cluster.\n\n```\n$: kubectl get clusters\nNAME              PHASE         AGE   VERSION\ncapi-quickstart   Provisioned   8s    v1.28.0\n\n$: kubectl get secrets\nNAME                         TYPE     DATA   AGE\ncapi-quickstart-kubeconfig   Opaque   1      8s\n```\n\n\u003e **A security concern**\n\u003e\n\u003e If your setup requires the least privilege approach,\n\u003e a different `kubeconfig` must be provided since the Cluster API generated one is bounded to the `admin` user which has `clustr-admin` permissions.\n\nOnce you have a valid `kubeconfig`, a `k8sgpt` instance can be created as it follows.\n\n```yaml\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: capi-quickstart\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    anonymized: true\n    backend: openai\n    language: english\n    model: gpt-4o-mini\n    secret:\n      key: api_key\n      name: my_openai_secret\n  kubeconfig:\n    key: value\n    name: capi-quickstart-kubeconfig\n```\n\nOnce applied the `k8sgpt.ai` Operator will create the `k8sgpt.ai` Deployment by using the seed cluster `kubeconfig` defined in the field `/spec/kubeconfig`.\n\nThe resulting `Result` objects will be available in the same Namespace where the `k8sgpt.ai` instance has been deployed,\naccordingly labelled with the following keys:\n\n- `k8sgpts.k8sgpt.ai/name`: the `k8sgpt.ai` instance Name\n- `k8sgpts.k8sgpt.ai/namespace`: the `k8sgpt.ai` instance Namespace\n- `k8sgpts.k8sgpt.ai/backend`: the AI backend (if specified)\n\nThanks to these labels, the results can be filtered according to the specified monitored cluster,\nwithout polluting the underlying cluster with the `k8sgpt.ai` CRDs and consuming seed compute workloads,\nas well as keeping confidentiality about the AI backend driver credentials.\n\n\u003e In case of missing `/spec/kubeconfig` field, `k8sgpt.ai` Operator will track the cluster on which has been deployed:\n\u003e this is possible by mounting the provided `ServiceAccount`.\n\n## Distributed Cache\n\n\u003cdetails\u003e\n\n\u003csummary\u003eInterplex cache\u003c/summary\u003e\n\n[Interplex](https://github.com/interplex-ai/interplex.git) is a caching system designed to work over RPC and optimised for K8sGPT. This cache can be installed without any credentials in your local cluster as part of your normal helm install.\n\n1. Install K8sGPT Operator with Interplex\n\n```\nhelm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace --set interplex.enabled=true\n```\n\n2. Create the secret for your AI backend (_in this example we use OPENAI_):\n```\nkubectl create secret generic k8sgpt-sample-secret --from-literal=openai-api-key=$OPENAI_TOKEN -n k8sgpt-operator-system\n```\n\n3. Point your K8sGPT Custom resource to the interplex cache: (match the helm release name with the cache prefix e.g., myrelease-interplex-service:8084)\n\n```\n  kubectl apply -f - \u003c\u003c EOF\n  apiVersion: core.k8sgpt.ai/v1alpha1\n  kind: K8sGPT\n  metadata:\n    name: k8sgpt-sample\n    namespace: k8sgpt-operator-system\n  spec:\n    ai:\n      enabled: true\n      model: gpt-4o-mini\n      backend: openai\n      secret:\n        name: k8sgpt-sample-secret\n        key: openai-api-key\n    noCache: false\n    remoteCache:\n      interplex:\n        endpoint: release-interplex-service:8084\n    repository: ghcr.io/k8sgpt-ai/k8sgpt\n    version: v0.4.1\n  EOF\n```\n\n\u003c/details\u003e\n\n## Remote Cache\n\n\u003cdetails\u003e\n\n\u003csummary\u003eAzure Blob storage\u003c/summary\u003e\n\n1. Install the operator from the [Installation](#installation) section.\n\n2. Create secret:\n\n```sh\nkubectl create secret generic k8sgpt-sample-cache-secret --from-literal=azure_client_id=\u003cAZURE_CLIENT_ID\u003e  --from-literal=azure_tenant_id=\u003cAZURE_TENANT_ID\u003e --from-literal=azure_client_secret=\u003cAZURE_CLIENT_SECRET\u003e -n k8sgpt-\noperator-system\n```\n\n3. Apply the K8sGPT configuration object:\n\n```\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    model: gpt-4o-mini\n    backend: openai\n    enabled: true\n    secret:\n      name: k8sgpt-sample-secret\n      key: openai-api-key\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  version: v0.4.1\n  remoteCache:\n    credentials:\n      name: k8sgpt-sample-cache-secret\n    azure:\n      # Storage account must already exist\n      storageAccount: \"account_name\"\n      containerName: \"container_name\"\nEOF\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eS3\u003c/summary\u003e\n\n1. Install the operator from the [Installation](#installation) section.\n\n2. Create secret:\n\n```sh\nkubectl create secret generic k8sgpt-sample-cache-secret --from-literal=aws_access_key_id=\u003cAWS_ACCESS_KEY_ID\u003e  --from-literal=aws_secret_access_key=\u003cAWS_SECRET_ACCESS_KEY\u003e -n k8sgpt-\noperator-system\n```\n\n3. Apply the K8sGPT configuration object:\n\n```\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    model: gpt-4o-mini\n    backend: openai\n    enabled: true\n    secret:\n      name: k8sgpt-sample-secret\n      key: openai-api-key\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  version: v0.4.1\n  remoteCache:\n    credentials:\n      name: k8sgpt-sample-cache-secret\n    s3:\n      bucketName: foo\n      region: us-west-1\nEOF\n```\n\n\u003c/details\u003e\n\n## Other AI Backend Examples\n\n\u003cdetails\u003e\n\n\u003csummary\u003eAzureOpenAI\u003c/summary\u003e\n\n1. Install the operator from the [Installation](#installation) section.\n\n2. Create secret:\n\n```sh\nkubectl create secret generic k8sgpt-sample-secret --from-literal=azure-api-key=$AZURE_TOKEN -n k8sgpt-operator-system\n```\n\n3. Apply the K8sGPT configuration object:\n\n```\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    enabled: true\n    secret:\n      name: k8sgpt-sample-secret\n      key: azure-api-key\n    model: gpt-4o-mini\n    backend: azureopenai\n    baseUrl: https://k8sgpt.openai.azure.com/\n    engine: llm\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  version: v0.4.1\nEOF\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eAmazon Bedrock\u003c/summary\u003e\n\n1. Install the operator from the [Installation](#installation) section.\n\n2. When running on AWS, you have a number of ways to give permission to the managed K8sGPT workload to access Amazon Bedrock.\n\n- Grant access to Bedrock using the Kubernetes Service Account. This is the [best practices method for assigning permissions to Kubernetes Pods](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#identities-and-credentials-for-eks-pods). There are a few ways to do this:\n  - On Amazon EKS, using [EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)\n  - On Amazon EKS, using [IAM Roles for Service Accounts (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)\n  - On self-managed Kubernetes, using IAM Roles for Service Accounts (IRSA) with the [Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook)\n- Grant access to Bedrock using AWS credentials in a Kubernetes Secret. Note this goes [against AWS best practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-workloads-use-roles) and should be used with caution.\n\nTo grant access to Bedrock using a Kubernetes Service account, create an IAM role with Bedrock permissions. An example policy is included below:\n\n```\n{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": [\n        \"bedrock:InvokeModel\",\n        \"bedrock:InvokeModelWithResponseStream\"\n      ],\n      \"Resource\": \"*\"\n    }\n  ]\n}\n```\n\nTo grant access to Bedrock using AWS credentials in a Kubernetes secret you can create a secret:\n\n```sh\nkubectl create secret generic bedrock-sample-secret --from-literal=AWS_ACCESS_KEY_ID=\"$(echo $AWS_ACCESS_KEY_ID)\" --from-literal=AWS_SECRET_ACCESS_KEY=\"$(echo $AWS_SECRET_ACCESS_KEY)\" -n k8sgpt-operator-system\n```\n\n3. Apply the K8sGPT configuration object:\n\n```\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    enabled: true\n    secret:\n     name: bedrock-sample-secret\n    model: anthropic.claude-3-sonnet-20240229-v1:0\n    region: eu-west-2\n    backend: amazonbedrock\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  version: v0.4.17\nEOF\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eLocalAI\u003c/summary\u003e\n\n1. Install the operator from the [Installation](#installation) section.\n\n2. Follow the [LocalAI installation guide](https://github.com/go-skynet/helm-charts#readme) to install LocalAI. (_No OpenAI secret is required when using LocalAI_).\n\n3. Apply the K8sGPT configuration object:\n\n```sh\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-local-ai\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    enabled: true\n    model: ggml-gpt4all-j\n    backend: localai\n    baseUrl: http://local-ai.local-ai.svc.cluster.local:8080/v1\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  version: v0.4.1\nEOF\n```\n\nNote: ensure that the value of `baseUrl` is a properly constructed [DNS name](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#services) for the LocalAI Service. It should take the form: `http://local-ai.\u003cnamespace_local_ai_was_installed_in\u003e.svc.cluster.local:8080/v1`.\n\n1. Same as step 4. in the example above.\n\n\u003c/details\u003e\n\n## K8sGPT Configuration Options\n\n\u003cdetails\u003e\n\n\u003csummary\u003eAnalysis Interval\u003c/summary\u003e\nYou can configure the interval between K8sGPT operator reconciliations by setting the `analysis.interval` field in the K8sGPT custom resource. This allows you to control how frequently the operator performs analysis of your cluster.\n\nThe interval should be specified in a format that can be parsed by Go's time.ParseDuration function (e.g., \"30s\", \"1m\", \"2h\"). If not specified, the default interval is 30 seconds.\n\nExample configuration:\n\n```sh\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    enabled: true\n    model: gpt-4o-mini\n    backend: openai\n    secret:\n      name: k8sgpt-sample-secret\n      key: openai-api-key\n  analysis:\n    interval: \"5m\"  # Set analysis interval to 5 minutes\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  version: v0.4.1\nEOF\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eImagePullPolicy\u003c/summary\u003e\nThe imagePullPolicy for K8SGPT container and the tag of the image affect when the kubelet attempts to pull (download) the specified image.\n\nRefer to the official Kubernetes documentation for [more details](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy). \n\nDefault: Always.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eImagePullSecrets\u003c/summary\u003e\nYou can use custom k8sgpt image by modifying `repository`, `version`, `imagePullSecrets`.\n`version` actually works as image tag.\n\n```sh\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    enabled: true\n    model: gpt-4o-mini\n    backend: openai\n    secret:\n      name: k8sgpt-sample-secret\n      key: openai-api-key\n  noCache: false\n  repository: sample.repository/k8sgpt\n  version: sample-tag\n  imagePullSecrets:\n    - name: sample-secret\nEOF\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eResources\u003c/summary\u003e\nYou can use custom k8sgpt container resource usage by `resources`.\n\n```sh\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    enabled: true\n    model: gpt-4o-mini\n    backend: openai\n    secret:\n      name: k8sgpt-sample-secret\n      key: openai-api-key\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  resources:\n    limits:\n      cpu: 10\n      memory: 512Mi\n    requests:\n      cpu: 200m\n      memory: 156Mi\nEOF\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eIAM roles for service accounts (IRSA)\u003c/summary\u003e\nFor users of IRSA, it is possible to configure the K8sGPT Custom Resource to point to the current ARN for your in cluster Service Account.\n\nSee example below\n```\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  extraOptions:\n    serviceAccountIRSA: \u003carn\u003e\n...\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003esink (integrations) \u003c/summary\u003e\n\nOptional parameters available for sink.  \n('type', 'webhook' are required parameters.)\n\n| tool        | channel | icon_url | username |\n| ----------- | ------- | -------- | -------- |\n| Slack       |         |          |          |\n| Mattermost  | ✔️      | ✔️       | ✔️       |\n| CloudEvents |         |          |          |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eFilters (Analyzers)\u003c/summary\u003e\n\nThe `filters` field allows you to specify which analyzers K8sGPT should use when scanning your cluster. By default, K8sGPT enables a set of core analyzers. You can use filters to enable additional optional analyzers or to restrict analysis to specific resource types.\n\n**Core Analyzers** (enabled by default):\n- Pod\n- Deployment\n- ReplicaSet\n- PersistentVolumeClaim\n- Service\n- Ingress\n- StatefulSet\n- Job\n- CronJob\n- Node\n- ValidatingWebhookConfiguration\n- MutatingWebhookConfiguration\n- ConfigMap\n\n**Optional Analyzers** (disabled by default):\n- HorizontalPodAutoscaler\n- PodDisruptionBudget\n- NetworkPolicy\n- Log\n- GatewayClass\n- Gateway\n- HTTPRoute\n\n**Important**: When you specify the `filters` field, it replaces the default analyzer list. To enable optional analyzers while keeping the defaults, you must explicitly list all the analyzers you want to use.\n\nExample - Enable Log and HPA analyzers along with some core analyzers:\n\n```sh\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    enabled: true\n    model: gpt-4o-mini\n    backend: openai\n    secret:\n      name: k8sgpt-sample-secret\n      key: openai-api-key\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  version: v0.4.1\n  filters:\n    - Pod\n    - Deployment\n    - Service\n    - ReplicaSet\n    - Ingress\n    - StatefulSet\n    - Job\n    - CronJob\n    - Node\n    - Log\n    - HorizontalPodAutoscaler\nEOF\n```\n\nExample - Analyze only Pods and Deployments:\n\n```sh\nkubectl apply -f - \u003c\u003c EOF\napiVersion: core.k8sgpt.ai/v1alpha1\nkind: K8sGPT\nmetadata:\n  name: k8sgpt-sample\n  namespace: k8sgpt-operator-system\nspec:\n  ai:\n    enabled: true\n    model: gpt-4o-mini\n    backend: openai\n    secret:\n      name: k8sgpt-sample-secret\n      key: openai-api-key\n  noCache: false\n  repository: ghcr.io/k8sgpt-ai/k8sgpt\n  version: v0.4.1\n  filters:\n    - Pod\n    - Deployment\nEOF\n```\n\n\u003c/details\u003e\n\n## Helm values\n\nFor details please see [here](chart/operator/values.yaml)\n\n## License\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fk8sgpt-ai%2Fk8sgpt-operator.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fk8sgpt-ai%2Fk8sgpt-operator?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk8sgpt-ai%2Fk8sgpt-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk8sgpt-ai%2Fk8sgpt-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk8sgpt-ai%2Fk8sgpt-operator/lists"}