Documentation ¶
Overview ¶
Package profile is for specific profiles @todo this package is the definition of cruft and should be rewritten in a more elegant way
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Client = &Profile{ Name: "client", Setup: func(ctx *cli.Context) error { return nil }, }
Client profile is for any entrypoint that behaves as a client
View Source
var Dev = &Profile{ Name: "dev", Setup: func(ctx *cli.Context) error { auth.DefaultAuth = mAuthNoop.NewAuth() runtime.DefaultRuntime = mRuntimeLocal.NewRuntime() store.DefaultStore = mStoreMemory.NewStore() config.DefaultConfig, _ = mConfigEnv.NewConfig() var err error events.DefaultStream, err = mEventStream.NewStream() if err != nil { logger.Fatalf("Error configuring stream for simple profile: %v", err) } SetupBroker(mBrokerMemory.NewBroker()) SetupRegistry(mRegistryNoop.NewRegistry()) return nil }, }
Dev profile to run service in simple config
View Source
var Develop = &Profile{ Name: "develop", Setup: func(ctx *cli.Context) error { auth.DefaultAuth = mAuthJwt.NewAuth() store.DefaultStore = mStoreMemory.NewStore() SetupBroker(redisBroker.NewBroker(broker.Addrs(ctx.String("broker_address")))) SetupRegistry(etcd.NewRegistry(registry.Addrs(ctx.String("registry_address")))) SetupJWT(ctx) SetupConfigSecretKey(ctx) if !metrics.IsSet() { prometheusReporter, err := prometheus.New() if err != nil { logger.Fatalf("Error configuring prometheus: %v", err) } metrics.SetDefaultMetricsReporter(prometheusReporter) } var err error if ctx.Args().Get(1) == "events" { events.DefaultStream, err = redisstream.NewStream(redisStreamOpts(ctx)...) if err != nil { logger.Fatalf("Error configuring stream: %v", err) } events.DefaultStore = mEventStore.NewStore( mEventStore.WithStore(store.DefaultStore), ) } if ctx.Args().Get(1) == "runtime" || ctx.Args().Get(1) == "store" { store.DefaultBlobStore, err = mStoreFile.NewBlobStore() if err != nil { logger.Fatalf("Error configuring file blob store: %v", err) } } model.DefaultModel = model.NewModel( model.WithStore(store.DefaultStore), ) reporterAddress := os.Getenv("MICRO_TRACING_REPORTER_ADDRESS") if len(reporterAddress) == 0 { reporterAddress = jaeger.DefaultReporterAddress } tracingServiceName := ctx.Args().Get(1) if len(tracingServiceName) == 0 { tracingServiceName = "Micro" } openTracer, _, err := jaeger.New( opentelemetry.WithServiceName(tracingServiceName), opentelemetry.WithSamplingRate(1), opentelemetry.WithTraceReporterAddress(reporterAddress), ) if err != nil { logger.Fatalf("Error configuring opentracing: %v", err) } opentelemetry.DefaultOpenTracer = openTracer opentracing.SetGlobalTracer(openTracer) runtime.DefaultRuntime = mRuntimeLocal.NewRuntime() return nil }, }
develop profile to run in dev env
View Source
var Kubernetes = &Profile{ Name: "kubernetes", Setup: func(ctx *cli.Context) (err error) { auth.DefaultAuth = mAuthNJwt.NewAuth() SetupJWT(ctx) runtime.DefaultRuntime = mRuntimeK8s.NewRuntime() build.DefaultBuilder, err = golang.NewBuilder() if err != nil { logger.Fatalf("Error configuring golang builder: %v", err) } events.DefaultStream, err = memStream.NewStream() if err != nil { logger.Fatalf("Error configuring stream: %v", err) } store.DefaultStore = mStoreFile.NewStore(mStoreFile.WithDir("/store")) store.DefaultBlobStore, err = mStoreFile.NewBlobStore(mStoreFile.WithDir("/store/blob")) if err != nil { logger.Fatalf("Error configuring file blob store: %v", err) } model.DefaultModel = model.NewModel( model.WithStore(store.DefaultStore), ) if ctx.Args().Get(1) == "registry" { SetupRegistry(mRegistryMem.NewRegistry()) } if ctx.Args().Get(1) == "broker" { SetupBroker(mBrokerMen.NewBroker()) } config.DefaultConfig, err = mConfigStore.NewConfig(store.DefaultStore, "") if err != nil { logger.Fatalf("Error configuring config: %v", err) } SetupConfigSecretKey(ctx) router.DefaultRouter = mRouterK8s.NewRouter() client.DefaultClient.Init(client.Router(router.DefaultRouter)) tracingServiceName := ctx.Args().Get(1) if len(tracingServiceName) == 0 { tracingServiceName = "Micro" } openTracer, _, err := jaeger.New( opentelemetry.WithServiceName(tracingServiceName), opentelemetry.WithTraceReporterAddress("localhost:6831"), ) if err != nil { logger.Fatalf("Error configuring opentracing: %v", err) } opentelemetry.DefaultOpenTracer = openTracer return nil }, }
Kubernetes profile to run on kubernetes with zero deps. Designed for use with the micro helm chart
View Source
var Local = &Profile{ Name: "local", Setup: func(ctx *cli.Context) error { client.DefaultClient = mClientGrpc.NewClient() server.DefaultServer = mServerGrpc.NewServer() auth.DefaultAuth = mAuthNJwt.NewAuth() store.DefaultStore = mStoreFile.NewStore(mStoreFile.WithDir(filepath.Join(uUser.Dir, "server", "store"))) SetupConfigSecretKey(ctx) config.DefaultConfig, _ = mConfigStore.NewConfig(store.DefaultStore, "") SetupJWT(ctx) SetupRegistry(mRegistryMem.NewRegistry()) SetupBroker(mBrokerMen.NewBroker()) model.DefaultModel = model.NewModel( model.WithStore(store.DefaultStore), ) runtime.DefaultRuntime = mRuntimeLocal.NewRuntime() var err error events.DefaultStream, err = memStream.NewStream() if err != nil { logger.Fatalf("Error configuring stream: %v", err) } events.DefaultStore = mEventStore.NewStore( mEventStore.WithStore(store.DefaultStore), ) store.DefaultBlobStore, err = mStoreFile.NewBlobStore() if err != nil { logger.Fatalf("Error configuring file blob store: %v", err) } return nil }, }
Local profile to run as a single process
View Source
var Server = &Profile{ Name: "server", Setup: func(ctx *cli.Context) error { auth.DefaultAuth = mAuthNJwt.NewAuth() store.DefaultStore = mStoreFile.NewStore(mStoreFile.WithDir(filepath.Join(uUser.Dir, "server", "store"))) SetupConfigSecretKey(ctx) config.DefaultConfig, _ = mConfigStore.NewConfig(store.DefaultStore, "") SetupJWT(ctx) if ctx.Args().Get(1) == "registry" { SetupRegistry(mRegistryMem.NewRegistry()) } else { registry.DefaultRegistry.Init( registry.Addrs("localhost:8000"), ) SetupRegistry(registry.DefaultRegistry) } if ctx.Args().Get(1) == "broker" { SetupBroker(mBrokerMen.NewBroker()) } else { broker.DefaultBroker.Init( broker.Addrs("localhost:8003"), ) SetupBroker(broker.DefaultBroker) } model.DefaultModel = model.NewModel( model.WithStore(store.DefaultStore), ) runtime.DefaultRuntime = mRuntimeLocal.NewRuntime() var err error events.DefaultStream, err = memStream.NewStream() if err != nil { logger.Fatalf("Error configuring stream: %v", err) } events.DefaultStore = mEventStore.NewStore( mEventStore.WithStore(store.DefaultStore), ) store.DefaultBlobStore, err = mStoreFile.NewBlobStore() if err != nil { logger.Fatalf("Error configuring file blob store: %v", err) } tracingServiceName := ctx.Args().Get(1) if len(tracingServiceName) == 0 { tracingServiceName = "Micro" } openTracer, _, err := jaeger.New( opentelemetry.WithServiceName(tracingServiceName), opentelemetry.WithSamplingRate(1), ) if err != nil { logger.Fatalf("Error configuring opentracing: %v", err) } opentelemetry.DefaultOpenTracer = openTracer return nil }, }
View Source
var Service = &Profile{ Name: "service", Setup: func(ctx *cli.Context) error { return nil }, }
Service is the default for any services run
View Source
var Simple = &Profile{ Name: "simple", Setup: func(ctx *cli.Context) error { auth.DefaultAuth = mAuthNoop.NewAuth() store.DefaultStore = mStoreMemory.NewStore() config.DefaultConfig, _ = mConfigEnv.NewConfig() var err error events.DefaultStream, err = mEventStream.NewStream() if err != nil { logger.Fatalf("Error configuring stream for simple profile: %v", err) } SetupBroker(mBrokerMemory.NewBroker()) SetupRegistry(mRegistryNoop.NewRegistry()) SetupJWT(ctx) SetupConfigSecretKey(ctx) if ctx.Args().Get(1) == "events" { events.DefaultStream, err = redisstream.NewStream(redisStreamOpts(ctx)...) if err != nil { logger.Fatalf("Error configuring stream: %v", err) } events.DefaultStore = mEventStore.NewStore( mEventStore.WithStore(store.DefaultStore), ) } if ctx.Args().Get(1) == "runtime" || ctx.Args().Get(1) == "store" { store.DefaultBlobStore, err = mStoreFile.NewBlobStore() if err != nil { logger.Fatalf("Error configuring file blob store: %v", err) } } model.DefaultModel = model.NewModel(model.WithStore(store.DefaultStore)) runtime.DefaultRuntime = mRuntimeLocal.NewRuntime() return nil }, }
Simple profile to run service in simple config
View Source
var Test = &Profile{ Name: "test", Setup: func(ctx *cli.Context) error { auth.DefaultAuth = mAuthNoop.NewAuth() store.DefaultStore = mStoreMem.NewStore() store.DefaultBlobStore, _ = mStoreFile.NewBlobStore() config.DefaultConfig, _ = mConfigStore.NewConfig(store.DefaultStore, "") SetupRegistry(mRegistryMem.NewRegistry()) model.DefaultModel = model.NewModel( model.WithStore(store.DefaultStore), ) return nil }, }
Test profile is used for the go test suite
Functions ¶
func SetupConfigSecretKey ¶
func SetupConfigSecretKey(ctx *cli.Context)
func SetupJWT ¶
func SetupJWT(ctx *cli.Context)
SetupJWT configures the default internal system rules
func SetupRegistry ¶
SetupRegistry configures the registry
Types ¶
Click to show internal directories.
Click to hide internal directories.