From 6c41ac5f49bf32a62efbe68d44a719a6e72bc28b Mon Sep 17 00:00:00 2001 From: Matthis <99146727+matthisholleville@users.noreply.github.com> Date: Sun, 14 May 2023 11:50:17 +0200 Subject: [PATCH] feat: add filters parameter to client API (#96) * feat: add filters parameter to client API The commit introduces a new feature to the client API by adding the filters parameter. This enhancement allows clients to specify filters during API calls, enabling more specific analysis based on the provided filters. This feature improves the flexibility and customization options available to clients using the API. Signed-off-by: Matthis Holleville * feat: update yaml example Signed-off-by: Matthis Holleville --------- Signed-off-by: Matthis Holleville --- README.md | 2 ++ api/v1alpha1/k8sgpt_types.go | 1 + api/v1alpha1/zz_generated.deepcopy.go | 5 +++++ config/crd/bases/core.k8sgpt.ai_k8sgpts.yaml | 4 ++++ go.mod | 4 ++-- go.sum | 10 +++++----- pkg/client/client.go | 1 + 7 files changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4ae0f129..3904547c 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,8 @@ spec: noCache: false version: v0.3.0 enableAI: true + # filters: + # - Ingress secret: name: k8sgpt-sample-secret key: openai-api-key diff --git a/api/v1alpha1/k8sgpt_types.go b/api/v1alpha1/k8sgpt_types.go index 927dbcaa..83ea91a9 100644 --- a/api/v1alpha1/k8sgpt_types.go +++ b/api/v1alpha1/k8sgpt_types.go @@ -41,6 +41,7 @@ type K8sGPTSpec struct { Version string `json:"version,omitempty"` EnableAI bool `json:"enableAI,omitempty"` NoCache bool `json:"noCache,omitempty"` + Filters []string `json:"filters,omitempty"` } // K8sGPTStatus defines the observed state of K8sGPT diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index b835b7e3..526af2ec 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -112,6 +112,11 @@ func (in *K8sGPTSpec) DeepCopyInto(out *K8sGPTSpec) { *out = new(SecretRef) **out = **in } + if in.Filters != nil { + in, out := &in.Filters, &out.Filters + *out = make([]string, len(*in)) + copy(*out, *in) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new K8sGPTSpec. diff --git a/config/crd/bases/core.k8sgpt.ai_k8sgpts.yaml b/config/crd/bases/core.k8sgpt.ai_k8sgpts.yaml index be105be5..bf82acce 100644 --- a/config/crd/bases/core.k8sgpt.ai_k8sgpts.yaml +++ b/config/crd/bases/core.k8sgpt.ai_k8sgpts.yaml @@ -48,6 +48,10 @@ spec: type: boolean engine: type: string + filters: + items: + type: string + type: array model: default: gpt-3.5-turbo type: string diff --git a/go.mod b/go.mod index e3f2c91c..9b44a651 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module github.com/k8sgpt-ai/k8sgpt-operator go 1.19 require ( - buf.build/gen/go/k8sgpt-ai/k8sgpt/grpc/go v1.3.0-20230506120742-576a6b5d0a86.1 - buf.build/gen/go/k8sgpt-ai/k8sgpt/protocolbuffers/go v1.28.1-20230510140658-54288a50e81c.4 + buf.build/gen/go/k8sgpt-ai/k8sgpt/grpc/go v1.3.0-20230514071713-3d78cb8bbc06.1 + buf.build/gen/go/k8sgpt-ai/k8sgpt/protocolbuffers/go v1.30.0-20230514071713-3d78cb8bbc06.1 github.com/onsi/ginkgo/v2 v2.9.4 github.com/onsi/gomega v1.27.6 github.com/prometheus/client_golang v1.15.1 diff --git a/go.sum b/go.sum index 21174019..3c4a0902 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,8 @@ -buf.build/gen/go/k8sgpt-ai/k8sgpt/grpc/go v1.3.0-20230506120742-576a6b5d0a86.1 h1:PQaEhu0fgP6BP2WciRwe9ol9ChEyO7U/lCiHYlwYxRM= -buf.build/gen/go/k8sgpt-ai/k8sgpt/grpc/go v1.3.0-20230506120742-576a6b5d0a86.1/go.mod h1:hNUyDnPCFDSlQTEVED8xxZV0WXRcElFSM+LLLbP7zCQ= -buf.build/gen/go/k8sgpt-ai/k8sgpt/protocolbuffers/go v1.28.1-20230506120742-576a6b5d0a86.4/go.mod h1:i/s4ALHwKvjA1oGNKpoHg0FpEOTbufoOm/NdTE6YQAE= -buf.build/gen/go/k8sgpt-ai/k8sgpt/protocolbuffers/go v1.28.1-20230510140658-54288a50e81c.4 h1:gcv6/jWv+qlehnaqHIjppNqQiHojZDDvs+NOGkxAUq8= -buf.build/gen/go/k8sgpt-ai/k8sgpt/protocolbuffers/go v1.28.1-20230510140658-54288a50e81c.4/go.mod h1:i/s4ALHwKvjA1oGNKpoHg0FpEOTbufoOm/NdTE6YQAE= +buf.build/gen/go/k8sgpt-ai/k8sgpt/grpc/go v1.3.0-20230514071713-3d78cb8bbc06.1 h1:uu6has8/9E3yVp77PJ/uDsgqhJemqvdfxPFv+pwhQ8M= +buf.build/gen/go/k8sgpt-ai/k8sgpt/grpc/go v1.3.0-20230514071713-3d78cb8bbc06.1/go.mod h1:P+Ze553ll8pj8fJatVJw077ODiymvZXai4uayYu7e7M= +buf.build/gen/go/k8sgpt-ai/k8sgpt/protocolbuffers/go v1.28.1-20230514071713-3d78cb8bbc06.4/go.mod h1:i/s4ALHwKvjA1oGNKpoHg0FpEOTbufoOm/NdTE6YQAE= +buf.build/gen/go/k8sgpt-ai/k8sgpt/protocolbuffers/go v1.30.0-20230514071713-3d78cb8bbc06.1 h1:V43+hDZXo4WaGqGZjNfaL8ZcAEvhusckIC/JBD/msz0= +buf.build/gen/go/k8sgpt-ai/k8sgpt/protocolbuffers/go v1.30.0-20230514071713-3d78cb8bbc06.1/go.mod h1:karV92RruD5davytOQq20lDyAqBnai8ajNolo98nu94= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= diff --git a/pkg/client/client.go b/pkg/client/client.go index 51dfb98d..09f0796a 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -51,6 +51,7 @@ func (c *Client) ProcessAnalysis(deployment v1.Deployment, config *v1alpha1.K8sG Explain: config.Spec.EnableAI, Nocache: config.Spec.NoCache, Backend: config.Spec.Backend, + Filters: config.Spec.Filters, } res, err := client.Analyze(context.Background(), req)