mirror of
https://github.com/k8sgpt-ai/k8sgpt.git
synced 2025-04-27 19:15:24 +00:00
* fix(deps): update module github.com/aws/aws-sdk-go to v1.44.267 (#451) Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * feat: get official field doc Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * feat: use schema from server Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * feat: add configuration api route (#459) * feat: add configuration api route Signed-off-by: Matthis Holleville <matthish29@gmail.com> * feat: rename cache methods Signed-off-by: Matthis Holleville <matthish29@gmail.com> --------- Signed-off-by: Matthis Holleville <matthish29@gmail.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * fix(deps): update module github.com/aws/aws-sdk-go to v1.44.269 (#458) Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * fix: updated list.go to handle k8sgpt cache list crashing issue (#455) * Update list.go Signed-off-by: Krishna Dutt Panchagnula <krishnadutt123@gmail.com> * fix: updated list.go to handle k8sgpt cache list crashing issue Signed-off-by: Krishna Dutt Panchagnula <krishnadutt123@gmail.com> --------- Signed-off-by: Krishna Dutt Panchagnula <krishnadutt123@gmail.com> Co-authored-by: Alex Jones <alexsimonjones@gmail.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * chore(main): release 0.3.5 (#452) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * chore(deps): update google-github-actions/release-please-action digest to 51ee8ae (#464) Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * fix: name of sa reference in deployment (#468) Signed-off-by: Johannes Kleinlercher <johannes@kleinlercher.at> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * fix(deps): update module github.com/aws/aws-sdk-go to v1.44.270 (#465) Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * fix: typo (#463) Signed-off-by: Rakshit Gondwal <rakshitgondwal3@gmail.com> Co-authored-by: Thomas Schuetz <38893055+thschue@users.noreply.github.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * fix(deps): update module github.com/aws/aws-sdk-go to v1.44.271 (#469) Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * fix(deps): update module github.com/aws/aws-sdk-go to v1.44.269 (#458) Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module github.com/aws/aws-sdk-go to v1.44.270 (#465) Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * fix(deps): update module github.com/aws/aws-sdk-go to v1.44.271 (#469) Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * feat: Add with-doc flag to enable/disable kubernetes doc Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * use fmt.Sprintf in apireference.go Signed-off-by: David Sabatie <david.sabatie@notrenet.com> * add --with-doc to readme Signed-off-by: David Sabatie <david.sabatie@notrenet.com> --------- Signed-off-by: Renovate Bot <bot@renovateapp.com> Signed-off-by: David Sabatie <david.sabatie@notrenet.com> Signed-off-by: Matthis Holleville <matthish29@gmail.com> Signed-off-by: Krishna Dutt Panchagnula <krishnadutt123@gmail.com> Signed-off-by: Johannes Kleinlercher <johannes@kleinlercher.at> Signed-off-by: Rakshit Gondwal <rakshitgondwal3@gmail.com> Signed-off-by: golgoth31 <golgoth31@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Matthis <99146727+matthisholleville@users.noreply.github.com> Co-authored-by: Krishna Dutt Panchagnula <krishnadutt123@gmail.com> Co-authored-by: Alex Jones <alexsimonjones@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Johannes Kleinlercher <johannes@kleinlercher.at> Co-authored-by: Rakshit Gondwal <98955085+rakshitgondwal@users.noreply.github.com> Co-authored-by: Thomas Schuetz <38893055+thschue@users.noreply.github.com>
71 lines
2.3 KiB
Go
71 lines
2.3 KiB
Go
package kubernetes
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
openapi_v2 "github.com/google/gnostic/openapiv2"
|
|
)
|
|
|
|
func (k *K8sApiReference) GetApiDocV2(field string) string {
|
|
startPoint := ""
|
|
// the path must be formated like "path1.path2.path3"
|
|
paths := strings.Split(field, ".")
|
|
group := strings.Split(k.ApiVersion.Group, ".")
|
|
definitions := k.OpenapiSchema.GetDefinitions().GetAdditionalProperties()
|
|
|
|
// extract the startpoint by searching the highest leaf corresponding to the requested group qnd kind
|
|
for _, prop := range definitions {
|
|
if strings.HasSuffix(prop.GetName(), fmt.Sprintf("%s.%s.%s", group[0], k.ApiVersion.Version, k.Kind)) {
|
|
startPoint = prop.GetName()
|
|
|
|
break
|
|
}
|
|
}
|
|
|
|
// recursively parse the definitions to find the description of the latest part of the given path
|
|
description := k.recursePath(definitions, startPoint, paths)
|
|
|
|
return description
|
|
}
|
|
|
|
func (k *K8sApiReference) recursePath(definitions []*openapi_v2.NamedSchema, leaf string, paths []string) string {
|
|
description := ""
|
|
|
|
for _, prop := range definitions {
|
|
// search the requested leaf
|
|
if prop.GetName() == leaf {
|
|
for _, addProp := range prop.GetValue().GetProperties().GetAdditionalProperties() {
|
|
// search the additional property of the leaf corresponding the current path
|
|
if addProp.GetName() == paths[0] {
|
|
// the last path or the path is string, we get the description and we go out
|
|
if len(paths) == 1 || addProp.GetValue().GetType().String() == "value:\"string\"" {
|
|
// extract the path description as we are at the end of the paths
|
|
description = addProp.GetValue().Description
|
|
} else {
|
|
// the path is an object, we extract the xref
|
|
if addProp.GetValue().GetXRef() != "" {
|
|
splitRef := strings.Split(addProp.GetValue().GetXRef(), "/")
|
|
reducedPaths := paths[1:]
|
|
description = k.recursePath(definitions, splitRef[len(splitRef)-1], reducedPaths)
|
|
}
|
|
|
|
// the path is an array, we take the first xref from the items
|
|
if len(addProp.GetValue().GetItems().GetSchema()) == 1 {
|
|
splitRef := strings.Split(addProp.GetValue().GetItems().GetSchema()[0].GetXRef(), "/")
|
|
reducedPaths := paths[1:]
|
|
description = k.recursePath(definitions, splitRef[len(splitRef)-1], reducedPaths)
|
|
}
|
|
}
|
|
|
|
break
|
|
}
|
|
}
|
|
|
|
break
|
|
}
|
|
}
|
|
|
|
return description
|
|
}
|