mirror of
https://github.com/k8sgpt-ai/k8sgpt.git
synced 2026-01-29 21:49:18 +00:00
* feat: fix the custom-analysis printing (#1195) Signed-off-by: Alex Jones <alexsimonjones@gmail.com> Signed-off-by: JuHyung-Son <sonju0427@gmail.com> * feat: add label selector Signed-off-by: JuHyung-Son <sonju0427@gmail.com> * feat: add label selector on analyzers Signed-off-by: JuHyung-Son <sonju0427@gmail.com> * chore(deps): pin goreleaser/goreleaser-action action to 286f3b1 (#1171) Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: JuHyung-Son <sonju0427@gmail.com> * fix(deps): update module buf.build/gen/go/k8sgpt-ai/k8sgpt/grpc/go to v1.4.0-20240715142657-3785f0a44aae.2 (#1196) Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: JuHyung-Son <sonju0427@gmail.com> * chore(deps): update actions/upload-artifact digest to 0b2256b (#1175) Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: JuHyung-Son <sonju0427@gmail.com> * chore: update proto pkg version Signed-off-by: JuHyung-Son <sonju0427@gmail.com> * chore: fix typo Signed-off-by: JuHyung-Son <sonju0427@gmail.com> * feat: add label string to LabelSelector util func Signed-off-by: JuHyung-Son <sonju0427@gmail.com> * feat: add test using 2 label selector Signed-off-by: JuHyung-Son <sonju0427@gmail.com> --------- Signed-off-by: Alex Jones <alexsimonjones@gmail.com> Signed-off-by: JuHyung-Son <sonju0427@gmail.com> Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: JuHyung Son <sonju0427@gmail.com> Co-authored-by: Alex Jones <alexsimonjones@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
package server
|
|
|
|
import (
|
|
"context"
|
|
json "encoding/json"
|
|
|
|
schemav1 "buf.build/gen/go/k8sgpt-ai/k8sgpt/protocolbuffers/go/schema/v1"
|
|
"github.com/k8sgpt-ai/k8sgpt/pkg/analysis"
|
|
)
|
|
|
|
func (h *handler) Analyze(ctx context.Context, i *schemav1.AnalyzeRequest) (
|
|
*schemav1.AnalyzeResponse,
|
|
error,
|
|
) {
|
|
if i.Output == "" {
|
|
i.Output = "json"
|
|
}
|
|
|
|
if int(i.MaxConcurrency) == 0 {
|
|
i.MaxConcurrency = 10
|
|
}
|
|
|
|
config, err := analysis.NewAnalysis(
|
|
i.Backend,
|
|
i.Language,
|
|
i.Filters,
|
|
i.Namespace,
|
|
i.LabelSelector,
|
|
i.Nocache,
|
|
i.Explain,
|
|
int(i.MaxConcurrency),
|
|
false, // Kubernetes Doc disabled in server mode
|
|
false, // Interactive mode disabled in server mode
|
|
[]string{}, //TODO: add custom http headers in server mode
|
|
)
|
|
config.Context = ctx // Replace context for correct timeouts.
|
|
if err != nil {
|
|
return &schemav1.AnalyzeResponse{}, err
|
|
}
|
|
defer config.Close()
|
|
|
|
config.RunAnalysis()
|
|
|
|
if i.Explain {
|
|
err := config.GetAIResults(i.Output, i.Anonymize)
|
|
if err != nil {
|
|
return &schemav1.AnalyzeResponse{}, err
|
|
}
|
|
}
|
|
|
|
out, err := config.PrintOutput(i.Output)
|
|
if err != nil {
|
|
return &schemav1.AnalyzeResponse{}, err
|
|
}
|
|
var obj schemav1.AnalyzeResponse
|
|
|
|
err = json.Unmarshal(out, &obj)
|
|
if err != nil {
|
|
return &schemav1.AnalyzeResponse{}, err
|
|
}
|
|
|
|
return &obj, nil
|
|
}
|