k8sgpt
k8sgpt copied to clipboard
[Bug]: --with-doc flag not working
Checklist
- [X] I've searched for similar issues and couldn't find anything matching
- [X] I've included steps to reproduce the behavior
Affected Components
- [X] K8sGPT (CLI)
- [ ] K8sGPT Operator
K8sGPT Version
No response
Kubernetes Version
No response
Host OS and its Version
Ubunto 2204
Steps to reproduce
-
Run
k8sgpt analyze --explain --with-doc
-
The output did not have any link or URL .
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
@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))
}
}
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:
- configure the openapi schema parser https://github.com/k8sgpt-ai/k8sgpt/blob/main/pkg/analyzer/cronjob.go#L33
- perse the schema when needed https://github.com/k8sgpt-ai/k8sgpt/blob/main/pkg/analyzer/cronjob.go#L56
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:
- always add a kubernetesDoc value to "not available"; replaced by the real value if found
- update the documentation to say that nothing is displayed if not found
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.
@AlexsJones Can I work on this issue?