introduce metadata gateway

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
This commit is contained in:
Jörn Friedrich Dreyer
2022-04-29 18:50:21 +02:00
committed by Ralf Haferkamp
parent 54ad9c3a87
commit 416c966dbc
5 changed files with 95 additions and 17 deletions
@@ -55,10 +55,10 @@ func DefaultConfig() *config.Config {
},
Metadata: config.Metadata{
GatewayAddress: "127.0.0.1:9142",
GatewayAddress: "127.0.0.1:9215",
StorageAddress: "127.0.0.1:9215",
ServiceUserID: "95cb8724-03b2-11eb-a0a6-c33ef8ef53ad",
ServiceUserIDP: "https://localhost:9200",
ServiceUserIDP: "internal",
MachineAuthAPIKey: "change-me-please",
},
}
@@ -125,16 +125,83 @@ func storageMetadataFromStruct(c *cli.Context, cfg *config.Config) map[string]in
},
"shared": map[string]interface{}{
"jwt_secret": cfg.JWTSecret,
"gatewaysvc": cfg.GatewayEndpoint,
"gatewaysvc": cfg.GRPC.Addr,
"skip_user_groups_in_token": cfg.SkipUserGroupsInToken,
},
"grpc": map[string]interface{}{
"network": cfg.GRPC.Protocol,
"address": cfg.GRPC.Addr,
"interceptors": map[string]interface{}{
"log": map[string]interface{}{},
},
//"interceptors": map[string]interface{}{
// "log": map[string]interface{}{},
//},
"services": map[string]interface{}{
"gateway": map[string]interface{}{
// registries are located on the gateway
"authregistrysvc": cfg.GRPC.Addr,
"storageregistrysvc": cfg.GRPC.Addr,
// user metadata is located on the users services
"userprovidersvc": cfg.GRPC.Addr,
"groupprovidersvc": cfg.GRPC.Addr,
"permissionssvc": cfg.GRPC.Addr,
// other
"disable_home_creation_on_login": true,
//"datagateway": cfg.Reva.StorageMetadata.HTTPAddr, // needs to start with a protocol
"transfer_shared_secret": cfg.TransferSecret,
"transfer_expires": cfg.TransferExpires,
//"home_mapping": cfg.Reva.Gateway.HomeMapping,
//"etag_cache_ttl": cfg.Reva.Gateway.EtagCacheTTL,
},
"userprovider": map[string]interface{}{
"driver": "memory",
"drivers": map[string]interface{}{
"memory": map[string]interface{}{
"users": map[string]interface{}{
"serviceuser": map[string]interface{}{
"id": map[string]interface{}{
"opaqueId": "95cb8724-03b2-11eb-a0a6-c33ef8ef53ad",
"idp": "internal",
"type": 1, // user.UserType_USER_TYPE_PRIMARY
},
"username": "serviceuser",
// "secret": // TODO should not have a secret
"mail": "admin@example.org",
"display_name": "System User",
},
},
},
},
},
"authregistry": map[string]interface{}{
"driver": "static",
"drivers": map[string]interface{}{
"static": map[string]interface{}{
"rules": map[string]interface{}{
"machine": cfg.GRPC.Addr,
},
},
},
},
"authprovider": map[string]interface{}{
"auth_manager": "machine",
"auth_managers": map[string]interface{}{
"machine": map[string]interface{}{
"api_key": cfg.MachineAuthAPIKey,
"gateway_addr": cfg.GRPC.Addr,
},
},
},
"storageregistry": map[string]interface{}{
"driver": "static",
"drivers": map[string]interface{}{
"static": map[string]interface{}{
"rules": map[string]interface{}{
"/": map[string]interface{}{
"address": cfg.GRPC.Addr,
},
},
},
},
},
"storageprovider": map[string]interface{}{
"driver": cfg.Driver,
"drivers": config.MetadataDrivers(cfg),
@@ -25,7 +25,10 @@ type Config struct {
Drivers Drivers `yaml:"drivers"`
DataServerURL string
TempFolder string
DataProviderInsecure bool `env:"OCIS_INSECURE;STORAGE_METADATA_DATAPROVIDER_INSECURE"`
TransferSecret string `yaml:"transfer_secret" env:"STORAGE_METADATA_TRANSFER_SECRET"`
TransferExpires int `yaml:"transfer_expires" env:"STORAGE_METADATA_TRANSFER_EXPIRES"`
DataProviderInsecure bool `env:"OCIS_INSECURE;STORAGE_METADATA_DATAPROVIDER_INSECURE"`
MachineAuthAPIKey string `yaml:"machine_auth_api_key" env:"OCIS_MACHINE_AUTH_API_KEY;STORAGE_METADATA_MACHINE_AUTH_API_KEY"`
}
type Tracing struct {
Enabled bool `yaml:"enabled" env:"OCIS_TRACING_ENABLED;STORAGE_METADATA_TRACING_ENABLED" desc:"Activates tracing."`
@@ -24,6 +24,11 @@ func DefaultConfig() *config.Config {
Pprof: false,
Zpages: false,
},
Logging: &config.Logging{
Level: "debug",
Pretty: true,
Color: true,
},
GRPC: config.GRPCConfig{
Addr: "127.0.0.1:9215",
Protocol: "tcp",
@@ -35,11 +40,14 @@ func DefaultConfig() *config.Config {
Service: config.Service{
Name: "storage-metadata",
},
GatewayEndpoint: "127.0.0.1:9142",
JWTSecret: "Pive-Fumkiu4",
TempFolder: filepath.Join(defaults.BaseDataPath(), "tmp", "metadata"),
DataServerURL: "http://localhost:9216/data",
Driver: "ocis",
GatewayEndpoint: "127.0.0.1:9215", // metadata is a self contained reva instance
JWTSecret: "Pive-Fumkiu4",
TempFolder: filepath.Join(defaults.BaseDataPath(), "tmp", "metadata"),
DataServerURL: "http://localhost:9216/data",
TransferSecret: "replace-me-with-a-transfer-secret-for-metadata",
TransferExpires: 24 * 60 * 60,
MachineAuthAPIKey: "change-me-please",
Driver: "ocis",
Drivers: config.Drivers{
EOS: config.EOSDriver{
Root: "/eos/dockertest/reva",
@@ -59,7 +67,7 @@ func DefaultConfig() *config.Config {
SecProtocol: "",
Keytab: "",
SingleUsername: "",
GatewaySVC: "127.0.0.1:9142",
GatewaySVC: "127.0.0.1:9215",
},
Local: config.LocalDriver{
Root: filepath.Join(defaults.BaseDataPath(), "storage", "local", "metadata"),
@@ -71,12 +79,12 @@ func DefaultConfig() *config.Config {
Root: filepath.Join(defaults.BaseDataPath(), "storage", "metadata"),
UserLayout: "{{.Id.OpaqueId}}",
Region: "default",
PermissionsEndpoint: "127.0.0.1:9191",
PermissionsEndpoint: "127.0.0.1:9191", // fixme
},
OCIS: config.OCISDriver{
Root: filepath.Join(defaults.BaseDataPath(), "storage", "metadata"),
UserLayout: "{{.Id.OpaqueId}}",
PermissionsEndpoint: "127.0.0.1:9191",
PermissionsEndpoint: "127.0.0.1:9191", // fixme
},
},
}
@@ -339,9 +339,9 @@ func DefaultConfig() *config.Config {
GRPCAddr: "127.0.0.1:9150",
Services: []string{"usershareprovider", "publicshareprovider"},
},
CS3ProviderAddr: "127.0.0.1:9215",
CS3ProviderAddr: "127.0.0.1:9215", // metadata storage
CS3ServiceUser: "95cb8724-03b2-11eb-a0a6-c33ef8ef53ad",
CS3ServiceUserIdp: "https://localhost:9200",
CS3ServiceUserIdp: "internal",
UserDriver: "json",
UserJSONFile: path.Join(defaults.BaseDataPath(), "storage", "shares.json"),
UserSQLUsername: "",