Skip to content

Commit

Permalink
feat!: migrate api to grpc (#386)
Browse files Browse the repository at this point in the history
* feat: migrate api to grpc

Signed-off-by: Matthis Holleville <matthish29@gmail.com>

* feat: use status.Code instead grpc.Code in log

Signed-off-by: Matthis Holleville <matthish29@gmail.com>

---------

Signed-off-by: Matthis Holleville <matthish29@gmail.com>
Co-authored-by: Alex Jones <alexsimonjones@gmail.com>
  • Loading branch information
matthisholleville and AlexsJones committed May 9, 2023
1 parent b6b0612 commit 9998e76
Show file tree
Hide file tree
Showing 6 changed files with 768 additions and 125 deletions.
43 changes: 32 additions & 11 deletions cmd/serve/serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ import (
k8sgptserver "github.com/k8sgpt-ai/k8sgpt/pkg/server"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"go.uber.org/zap"
)

var (
port string
backend string
port string
metricsPort string
backend string
)

var ServeCmd = &cobra.Command{
Expand Down Expand Up @@ -90,23 +92,42 @@ var ServeCmd = &cobra.Command{
os.Exit(1)
}

server := k8sgptserver.Config{
Backend: aiProvider.Name,
Port: port,
Token: aiProvider.Password,
}

err = server.Serve()
logger, err := zap.NewProduction()
if err != nil {
color.Red("Error: %v", err)
color.Red("failed to create logger: %v", err)
os.Exit(1)
}
// override the default backend if a flag is provided
defer logger.Sync()

server := k8sgptserver.Config{
Backend: aiProvider.Name,
Port: port,
MetricsPort: metricsPort,
Token: aiProvider.Password,
Logger: logger,
}
go func() {
if err := server.ServeMetrics(); err != nil {
color.Red("Error: %v", err)
os.Exit(1)
}
}()

go func() {
if err := server.Serve(); err != nil {
color.Red("Error: %v", err)
os.Exit(1)
}
}()

// Wait for both servers to exit
select {}
},
}

func init() {
// add flag for backend
ServeCmd.Flags().StringVarP(&port, "port", "p", "8080", "Port to run the server on")
ServeCmd.Flags().StringVarP(&metricsPort, "metrics-port", "", "8081", "Port to run the metrics-server on")
ServeCmd.Flags().StringVarP(&backend, "backend", "b", "openai", "Backend AI provider")
}
7 changes: 6 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ require (

require github.com/adrg/xdg v0.4.0

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-20230506120742-576a6b5d0a86.4
)

require (
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 // indirect
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
Expand Down Expand Up @@ -153,7 +158,7 @@ require (
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect
google.golang.org/grpc v1.54.0 // indirect
google.golang.org/grpc v1.54.0
google.golang.org/protobuf v1.30.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
Expand Down
Loading

0 comments on commit 9998e76

Please sign in to comment.