diff --git a/cmd/keycloakb/keycloak_bridge.go b/cmd/keycloakb/keycloak_bridge.go index 8435f5d3a..abcaec2c3 100644 --- a/cmd/keycloakb/keycloak_bridge.go +++ b/cmd/keycloakb/keycloak_bridge.go @@ -109,6 +109,7 @@ func main() { keycloakEnabled = c.GetBool("keycloak") redisEnabled = c.GetBool("redis") sentryEnabled = c.GetBool("sentry") + jobEnabled = c.GetBool("job") pprofRouteEnabled = c.GetBool("pprof-route-enabled") // Influx @@ -231,8 +232,8 @@ func main() { } // Flaki. - var flakiClient fb_flaki.FlakiClient - { + var flakiClient fb_flaki.FlakiClient = &keycloakb.NoopFlakiClient{} + if flakiEnabled { // Set up a connection to the flaki-service. var conn *grpc.ClientConn { @@ -246,20 +247,20 @@ func main() { } flakiClient = fb_flaki.NewFlakiClient(conn) - } - // Get unique ID for this component - { - var b = flatbuffers.NewBuilder(0) - fb_flaki.FlakiRequestStart(b) - b.Finish(fb_flaki.FlakiRequestEnd(b)) + // Get unique ID for this component + { + var b = flatbuffers.NewBuilder(0) + fb_flaki.FlakiRequestStart(b) + b.Finish(fb_flaki.FlakiRequestEnd(b)) - var res, err = flakiClient.NextValidID(context.Background(), b) - if err != nil { - logger.Log("msg", "could not connect to flaki-service", "error", err) - return + var res, err = flakiClient.NextValidID(context.Background(), b) + if err != nil { + logger.Log("msg", "could not connect to flaki-service", "error", err) + return + } + ComponentID = string(res.Id()) } - ComponentID = string(res.Id()) } // Add component name, component ID and version to the logger tags. @@ -581,7 +582,7 @@ func main() { } // Jobs - { + if jobEnabled { var ctrl = controller.NewController(ComponentName, ComponentID, idgenerator.New(flakiClient, tracer), &job_lock.NoopLocker{}, controller.EnableStatusStorage(job_status.New(cockroachConn))) for _, job := range []string{"cockroach", "elasticsearch", "flaki", "influx", "jaeger", "keycloak", "redis", "sentry"} { @@ -842,6 +843,7 @@ func config(logger log.Logger) *viper.Viper { v.SetDefault("cockroach-clean-interval", "24h") // Jobs + v.SetDefault("job", false) v.SetDefault("job-flaki-health-validity", "1m") v.SetDefault("job-influx-health-validity", "1m") v.SetDefault("job-jaeger-health-validity", "1m") diff --git a/configs/keycloak_bridge.yml b/configs/keycloak_bridge.yml index 099473141..0cfc13a50 100644 --- a/configs/keycloak_bridge.yml +++ b/configs/keycloak_bridge.yml @@ -56,6 +56,7 @@ jaeger-collector-healthcheck-host-port: pprof-route-enabled: true # Jobs +job: false job-es-health-validity: 1m job-flaki-health-validity: 1m job-influx-health-validity: 1m diff --git a/internal/keycloakb/flaki.go b/internal/keycloakb/flaki.go new file mode 100644 index 000000000..e531d7460 --- /dev/null +++ b/internal/keycloakb/flaki.go @@ -0,0 +1,23 @@ +package keycloakb + +import ( + errors "github.com/pkg/errors" + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" + + fb "github.com/cloudtrust/keycloak-bridge/api/flaki/fb" + flatbuffers "github.com/google/flatbuffers/go" +) + +// NoopCockroach is a cockroach client that does nothing. +type NoopFlakiClient struct{} + +func (c NoopFlakiClient) NextID(ctx context.Context, in *flatbuffers.Builder, + opts ...grpc.CallOption) (*fb.FlakiReply, error) { + return nil, errors.New("Flaki is disabled") +} + +func (c NoopFlakiClient) NextValidID(ctx context.Context, in *flatbuffers.Builder, + opts ...grpc.CallOption) (*fb.FlakiReply, error) { + return nil, errors.New("Flaki is disabled") +}