k8sgpt-ai / k8sgpt

Giving Kubernetes Superpowers to everyone
http://k8sgpt.ai
Apache License 2.0
5.63k stars 651 forks source link

[Bug]: --with-doc flag not working #816

Open pavneeta opened 9 months ago

pavneeta commented 9 months ago

Checklist

Affected Components

K8sGPT Version

No response

Kubernetes Version

No response

Host OS and its Version

Ubunto 2204

Steps to reproduce

  1. Run k8sgpt analyze --explain --with-doc

  2. The output did not have any link or URL .

    image

Expected behaviour

There should be a complete or short URl of the k8s docs being referenced for the recommendation or error message.

Actual behaviour

No link provided in the response

Additional Information

No response

AlexsJones commented 9 months ago

@golgoth31 if I am correct, this actually just checks to see if there is an error from OpenAPIschema right? Do we think there needs to be some more work done to clarify what this command really does?

    // we get the openapi schema from the server only if required by the flag "with-doc"
    openapiSchema := &openapi_v2.Document{}
    if a.WithDoc {
        var openApiErr error

        openapiSchema, openApiErr = a.Client.Client.Discovery().OpenAPISchema()
        if openApiErr != nil {
            a.Errors = append(a.Errors, fmt.Sprintf("[KubernetesDoc] %s", openApiErr))
        }
    }
golgoth31 commented 9 months ago

Hi @AlexsJones , The command you mention is the command to extract the full openapi schema from the target kubernetes cluster only if requested by the "with-doc" flag.

Unfortunatly, this is not used if not requested by an analyser. For exemple, the cronjob analyser:

If the nothing is found or the schema not parsed, the kubernetesDoc string is empty and the output is not shown https://github.com/k8sgpt-ai/k8sgpt/blob/main/pkg/analysis/output.go#L81

We have multiple ways to fix this:

In a first run, I can add all the missing openapi parsing requests to the known objects.

Do you have any guide lines for the analysers writing, if yes, we schould add this part.

VaibhavMalik4187 commented 8 months ago

@AlexsJones Can I work on this issue?