grafana/pkg/components/loki/lokigrpc/tenant.go
Joan López de la Franca Beltran afef0c926c
Loki: Push support for multi-tenancy mode (#60866)
* Loki: Add multitenancy support for the HTTP client

* Loki: Support to push with multitenancy mode

* Apply feedback suggestions
2023-01-23 16:24:22 +01:00

31 lines
600 B
Go

package lokigrpc
import (
"context"
"errors"
"google.golang.org/grpc/metadata"
)
const (
lowerOrgIDHeaderName = "x-scope-orgid"
)
var (
ErrDifferentOrgIDPresent = errors.New("different org ID already present")
ErrTooManyOrgIDs = errors.New("multiple org IDs present")
)
func injectOrgID(ctx context.Context, tenantID string) context.Context {
md, ok := metadata.FromOutgoingContext(ctx)
if ok {
md = md.Copy()
} else {
md = metadata.New(map[string]string{})
}
md[lowerOrgIDHeaderName] = []string{tenantID}
newCtx := metadata.NewOutgoingContext(ctx, md)
return newCtx
}