cmd

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 13, 2023 License: MIT Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Execute

func Execute(options *Options, webContent embed.FS) error

Execute is the entry point for start main server command

Types

type Options

type Options struct {
	Listen     string `` /* 130-byte string literal not displayed */
	HostName   string `long:"hostname" env:"RA_HOST_NAME" default:"localhost" description:"Main hostname of service" json:"hostname" yaml:"hostname"`
	Port       int    `long:"port" env:"RA_PORT" description:"Main web-service port. Default:80" default:"80" json:"port" yaml:"port"`
	ConfigPath string `long:"config-file" env:"RA_CONFIG_FILE" description:"Path to config file"`

	Registry RegistryGroup `group:"registry" namespace:"registry" env-namespace:"RA_REGISTRY" json:"registry" yaml:"registry"`

	Auth struct {
		TokenSecret string `long:"token-secret" env:"TOKEN_SECRET" description:"Main secret for auth token sign" json:"token_secret" yaml:"token_secret"`
		IssuerName  string `` //
		/* 126-byte string literal not displayed */
		TokenDuration  string `long:"jwt-ttl" env:"JWT_TTL" default:"1h" description:"Define JWT expired timeout" json:"jwt_ttl" yaml:"jwt_ttl"`
		CookieDuration string `` /* 129-byte string literal not displayed */
	} `group:"auth" namespace:"auth" env-namespace:"RA_AUTH" json:"auth" yaml:"auth"`

	Logger struct {
		StdOut     bool   `long:"stdout" env:"STDOUT" description:"enable stdout logging" json:"stdout" yaml:"stdout"`
		Enabled    bool   `long:"enabled" env:"ENABLED" description:"enable access and error rotated logs" json:"enabled" yaml:"enabled"`
		FileName   string `long:"file" env:"FILE"  default:"access.log" description:"location of access log" json:"filename" yaml:"filename"`
		MaxSize    string `long:"max-size" env:"SIZE" default:"10M" description:"maximum size before it gets rotated" json:"max_size"  yaml:"max_size"`
		MaxBackups int    `` /* 139-byte string literal not displayed */
	} `group:"logger" namespace:"logger" env-namespace:"RA_LOGGER" json:"logger" yaml:"logger"`

	SSL struct {
		Type string `` // nolint
		/* 157-byte string literal not displayed */
		Cert          string   `long:"cert" env:"CERT" description:"path to cert.pem file" json:"cert" yaml:"cert"`
		Key           string   `long:"key" env:"KEY" description:"path to key.pem file" json:"key" yaml:"key"`
		ACMELocation  string   `` /* 171-byte string literal not displayed */
		ACMEEmail     string   `` /* 126-byte string literal not displayed */
		Port          int      `long:"port" env:"PORT" description:"Main web-service secure SSL port. Default:443" default:"443" json:"port" yaml:"port"`
		RedirHTTPPort int      `` /* 167-byte string literal not displayed */
		FQDNs         []string `long:"fqdn" env:"ACME_FQDN" env-delim:"," description:"FQDN(s) for ACME certificates" json:"acme_fqdns" yaml:"acme_fqdns"`
	} `group:"ssl" namespace:"ssl" env-namespace:"RA_SSL" json:"ssl" yaml:"ssl"`

	Store StoreGroup `group:"store" namespace:"store" env-namespace:"RA_STORE" json:"store" yaml:"store"`
	Debug bool       `long:"debug" env:"RA_DEBUG" description:"enable the debug mode" json:"debug" yaml:"debug"`
	// contains filtered or unexported fields
}

Options the main parameters for the service

func ParseArgs

func ParseArgs() (*Options, error)

ParseArgs calls flag parser for passing set of extra options defined for all commands

type RegistryGroup

type RegistryGroup struct {
	Host                     string `long:"host" env:"HOST" required:"true" description:"Main host or address to docker registry service" json:"host" yaml:"host"`
	Port                     uint   `long:"port" env:"PORT" description:"Port which registry accept requests. Default:5000" default:"5000" json:"port" yaml:"port"`
	AuthType                 string `` /* 215-byte string literal not displayed */
	Login                    string `` /* 142-byte string literal not displayed */
	Password                 string `` /* 154-byte string literal not displayed */
	Htpasswd                 string `` /* 128-byte string literal not displayed */
	InsecureConnection       bool   `` /* 142-byte string literal not displayed */
	Service                  string `long:"service" env:"SERVICE" description:"A service name which defined in registry settings" json:"service" yaml:"service"`
	Issuer                   string `long:"issuer" env:"ISSUER" description:"A token issuer name which defined in registry settings" json:"issuer" yaml:"issuer"`
	TokenTTL                 int64  `` /* 150-byte string literal not displayed */
	GarbageCollectorInterval int64  `` /* 181-byte string literal not displayed */
	Certs                    struct {
		Path      string   `` /* 177-byte string literal not displayed */
		Key       string   `` /* 154-byte string literal not displayed */
		PublicKey string   `` /* 181-byte string literal not displayed */
		CARoot    string   `` /* 157-byte string literal not displayed */
		FQDNs     []string `long:"fqdn" env:"FQDN" env-delim:"," description:"FQDN(s) for registry certificates" json:"fqdns" yaml:"fqdns"`
		IP        string   `long:"ip" env:"IP" description:"Address which appends to certificate SAN (Subject Alternative Name)" json:"ip" yaml:"ip"`
		HTTPSCert string   `` /* 153-byte string literal not displayed */
	} `group:"certs" namespace:"certs" env-namespace:"CERTS" json:"certs" yaml:"certs"`
}

RegistryGroup main setting for connection to private registry instance

type StoreGroup

type StoreGroup struct {
	Type          string `long:"type" env:"DB_TYPE" description:"type of storage" choice:"embed" default:"embed" json:"type" yaml:"type"` // nolint
	AdminPassword string ``                                                                                                               /* 181-byte string literal not displayed */
	Embed         struct {
		Path string `long:"path" env:"DB_PATH" default:"./data.db" description:"Parent directory for the sqlite files" json:"path" yaml:"path"`
	} `group:"embed" namespace:"embed" env-namespace:"EMBED" json:"embed" yaml:"embed"`
}

StoreGroup options which defined main storage instance Type implement as options for add support for different storage

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL