separate reva services

update config

add desktop client with all localhost ports

split flagsets

add user docs

update readme

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
This commit is contained in:
Jörn Friedrich Dreyer
2020-01-16 21:53:43 +01:00
parent 6cc46af428
commit 25a68c9321
43 changed files with 5578 additions and 1306 deletions
+171 -26
View File
@@ -15,33 +15,179 @@ type Debug struct {
Zpages bool
}
type HTTP struct {
Network string
Addr string
Root string // TODO do we need the http root path
}
type GRPC struct {
Network string
Addr string
type Gateway struct {
Port
CommitShareToStorageGrant bool
}
// Reva defines the available reva configuration.
type Reva struct {
type Port struct {
// MaxCPUs can be a number or a percentage
MaxCPUs string
LogLevel string
// Network can be tcp, udp or unix
HTTP HTTP
GRPC GRPC
JWTSecret string
// Used to pass in configs from the ocis repo, multiple reva instances can be started with this
Configs map[string]interface{}
Network string
// Addr to listen on, hostname:port (0.0.0.0:9999 for all interfaces) or socket (/var/run/reva/sock)
Addr string
// Protocol can be grpc or http
Protocol string
// URL is used by the gateway and registries (eg http://localhost:9100 or https://cloud.example.com)
URL string
// DebugAddr for the debug endpoint to bind to
DebugAddr string
// Services can be used to give a list of services that should be started on this port
Services string
// used to store the parsed services
servicesList []string
// Config can be used to configure the reva instance.
// Services and Protocol will be ignored if this is used
Config map[string]interface{}
}
type Users struct {
Port
Driver string
JSON string
}
type PathWrapperContext struct {
Prefix string
}
type StoragePort struct {
Port
Driver string
PathWrapper string
PathWrapperContext PathWrapperContext
MountPath string
MountID string
ExposeDataServer bool
DataServerURL string
// TODO checksums ... figure out what that is supposed to do
// for HTTP ports with only one http service
Prefix string
TempFolder string
}
type StorageConfig struct {
EOS StorageEOS
Local StorageLocal
OwnCloud StorageOwnCloud
S3 StorageS3
// TODO checksums ... figure out what that is supposed to do
}
type StorageEOS struct {
// Namespace for metadata operations
Namespace string
// Location of the eos binary.
// Default is /usr/bin/eos.
EosBinary string
// Location of the xrdcopy binary.
// Default is /usr/bin/xrdcopy.
XrdcopyBinary string
// URL of the Master EOS MGM.
// Default is root://eos-example.org
MasterURL string
// URL of the Slave EOS MGM.
// Default is root://eos-example.org
SlaveURL string
// Location on the local fs where to store reads.
// Defaults to os.TempDir()
CacheDirectory string
// Enables logging of the commands executed
// Defaults to false
EnableLogging bool
// ShowHiddenSysFiles shows internal EOS files like
// .sys.v# and .sys.a# files.
ShowHiddenSysFiles bool
// ForceSingleUserMode will force connections to EOS to use SingleUsername
ForceSingleUserMode bool
// UseKeyTabAuth changes will authenticate requests by using an EOS keytab.
UseKeytab bool
// SecProtocol specifies the xrootd security protocol to use between the server and EOS.
SecProtocol string
// Keytab specifies the location of the keytab to use to authenticate to EOS.
Keytab string
// SingleUsername is the username to use when SingleUserMode is enabled
SingleUsername string
}
type StorageLocal struct {
Root string
}
type StorageOwnCloud struct {
Datadirectory string
}
type StorageS3 struct {
Region string
AccessKey string
SecretKey string
Endpoint string
Bucket string
Prefix string
}
type OIDC struct {
Issuer string
Insecure bool
IDClaim string
}
type LDAP struct {
Hostname string
Port int
BaseDN string
UserFilter string
GroupFilter string
BindDN string
BindPassword string
IDP string
Schema LDAPSchema
}
type LDAPSchema struct {
UID string
Mail string
DisplayName string
CN string
}
// AuthProvider defines the available authprovider configuration.
type AuthProvider struct {
Provider string
Insecure bool
// Reva defines the available reva configuration.
type Reva struct {
// JWTSecret used to sign jwt tokens between services
JWTSecret string
TransferSecret string
TransferExpires int
OIDC OIDC
LDAP LDAP
Storages StorageConfig
// Ports are used configure which services to start on which port
Frontend Port
Gateway Gateway
Users Users
AuthBasic Port
AuthBearer Port
Sharing Port
StorageRoot StoragePort
StorageHome StoragePort
StorageHomeData StoragePort
StorageEOS StoragePort
StorageEOSData StoragePort
StorageOC StoragePort
StorageOCData StoragePort
StorageS3 StoragePort
StorageS3Data StoragePort
StorageWND StoragePort
StorageWNDData StoragePort
StorageCustom StoragePort
StorageCustomData StoragePort
// Configs can be used to configure the reva instance.
// Services and Ports will be ignored if this is used
Configs map[string]interface{}
}
// Tracing defines the available tracing configuration.
@@ -60,13 +206,12 @@ type Asset struct {
// Config combines all available configuration parts.
type Config struct {
File string
Log Log
Debug Debug
Reva Reva
AuthProvider AuthProvider
Tracing Tracing
Asset Asset
File string
Log Log
Debug Debug
Reva Reva
Tracing Tracing
Asset Asset
}
// New initializes a new configuration with or without defaults.