app

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ForcedDurationForDebugLevel = 30 * time.Minute
	ProxyJsonLogKey             = "proxyJsonLog"
)

ForcedDurationForDebugLevel - force expiration for debug level.

Variables

View Source
var (
	AppName         = "shell-operator"
	AppDescription  = "Run your custom cluster-wide scripts in reaction to Kubernetes events or on schedule."
	AppStartMessage = "shell-operator"
)
View Source
var (
	HooksDir = "hooks"
	TempDir  = "/tmp/shell-operator"
)
View Source
var (
	Namespace             = ""
	ListenAddress         = "0.0.0.0"
	ListenPort            = "9115"
	HookMetricsListenPort = ""
)
View Source
var (
	KubeContext = ""
	KubeConfig  = ""
	KubeServer  = ""
)
View Source
var (
	KubeClientQpsDefault   = "5" // DefaultQPS from k8s.io/client-go/rest/config.go
	KubeClientQps          float32
	KubeClientBurstDefault = "10" // DefaultBurst from k8s.io/client-go/rest/config.go
	KubeClientBurst        int
)
View Source
var (
	ObjectPatcherKubeClientQpsDefault     = "5" // DefaultQPS from k8s.io/client-go/rest/config.go
	ObjectPatcherKubeClientQps            float32
	ObjectPatcherKubeClientBurstDefault   = "10" // DefaultBurst from k8s.io/client-go/rest/config.go
	ObjectPatcherKubeClientBurst          int
	ObjectPatcherKubeClientTimeoutDefault = "10s"
	ObjectPatcherKubeClientTimeout        time.Duration
)
View Source
var (
	LogLevel         = "info"
	LogNoTime        = false
	LogType          = "text"
	LogProxyHookJSON = false
)

Use info level with timestamps and a text output by default

View Source
var CommonFlagsInfo = map[string]FlagInfo{
	"hooks-dir": {
		"hooks-dir",
		"A path to a hooks file structure. Can be set with $SHELL_OPERATOR_HOOKS_DIR.",
		"SHELL_OPERATOR_HOOKS_DIR",
		true,
	},
	"tmp-dir": {
		"tmp-dir",
		"A path to store temporary files with data for hooks. Can be set with $SHELL_OPERATOR_TMP_DIR.",
		"SHELL_OPERATOR_TMP_DIR",
		true,
	},
	"listen-address": {
		"listen-address",
		"Address to use to serve metrics to Prometheus. Can be set with $SHELL_OPERATOR_LISTEN_ADDRESS.",
		"SHELL_OPERATOR_LISTEN_ADDRESS",
		true,
	},
	"listen-port": {
		"listen-port",
		"Port to use to serve metrics to Prometheus. Can be set with $SHELL_OPERATOR_LISTEN_PORT.",
		"SHELL_OPERATOR_LISTEN_PORT",
		true,
	},
	"prometheus-metrics-prefix": {
		"prometheus-metrics-prefix",
		"Prefix for Prometheus metrics. Can be set with $SHELL_OPERATOR_PROMETHEUS_METRICS_PREFIX.",
		"SHELL_OPERATOR_PROMETHEUS_METRICS_PREFIX",
		true,
	},
	"hook-metrics-listen-port": {
		"hook-metrics-listen-port",
		"Port to use to serve hooks’ custom metrics to Prometheus. Can be set with $SHELL_OPERATOR_HOOK_METRICS_LISTEN_PORT. Equal to listen-port if empty.",
		"SHELL_OPERATOR_HOOK_METRICS_LISTEN_PORT",
		true,
	},
	"namespace": {
		"namespace",
		"A namespace of a shell-operator. Used to setup validating webhooks. Can be set with $SHELL_OPERATOR_NAMESPACE.",
		"SHELL_OPERATOR_NAMESPACE",
		true,
	},
}
View Source
var ConversionWebhookSettings = &conversion.WebhookSettings{
	Settings: server.Settings{
		ServerCertPath: "/conversion-certs/tls.crt",
		ServerKeyPath:  "/conversion-certs/tls.key",
		ClientCAPaths:  nil,
		ServiceName:    "shell-operator-conversion-svc",
		ListenAddr:     "0.0.0.0",
		ListenPort:     "9681",
	},
	CAPath: "/conversion-certs/ca.crt",
}
View Source
var DebugHttpServerAddr = ""
View Source
var DebugKeepTmpFiles = "no"
View Source
var DebugKubernetesAPI = false
View Source
var DebugUnixSocket = "/var/run/shell-operator/debug.socket"
View Source
var JqLibraryPath = ""
View Source
var PrometheusMetricsPrefix = "shell_operator_"
View Source
var ValidatingWebhookSettings = &admission.WebhookSettings{
	Settings: server.Settings{
		ServerCertPath: "/validating-certs/tls.crt",
		ServerKeyPath:  "/validating-certs/tls.key",
		ClientCAPaths:  nil,
		ServiceName:    "shell-operator-validating-svc",
		ListenAddr:     "0.0.0.0",
		ListenPort:     "9680",
	},
	CAPath:            "/validating-certs/ca.crt",
	ConfigurationName: "shell-operator-hooks",
}
View Source
var Version = "v1.2.0-dev"

Functions

func CommandWithDefaultUsageTemplate

func CommandWithDefaultUsageTemplate(kpApp *kingpin.Application, name, help string) *kingpin.CmdClause

CommandWithDefaultUsageTemplate is used to workaround an absence of per-command usage templates

func DefineConversionWebhookFlags

func DefineConversionWebhookFlags(cmd *kingpin.CmdClause)

DefineConversionWebhookFlags defines flags for ConversionWebhook server.

func DefineDebugFlags

func DefineDebugFlags(kpApp *kingpin.Application, cmd *kingpin.CmdClause)

DefineDebugFlags init global command line flags for debug.

func DefineDebugUnixSocketFlag

func DefineDebugUnixSocketFlag(cmd *kingpin.CmdClause)

func DefineJqFlags

func DefineJqFlags(cmd *kingpin.CmdClause)

DefineJqFlags set flag for jq library

func DefineKubeClientFlags

func DefineKubeClientFlags(cmd *kingpin.CmdClause)

func DefineLoggingFlags

func DefineLoggingFlags(cmd *kingpin.CmdClause)

DefineLoggingFlags defines flags for logger settings.

func DefineStartCommandFlags

func DefineStartCommandFlags(kpApp *kingpin.Application, cmd *kingpin.CmdClause)

DefineStartCommandFlags set shell-operator flags for cmd

func DefineValidatingWebhookFlags

func DefineValidatingWebhookFlags(cmd *kingpin.CmdClause)

DefineValidatingWebhookFlags defines flags for ValidatingWebhook server.

func OperatorUsageTemplate

func OperatorUsageTemplate(appName string) string

func SetupLogging

func SetupLogging(runtimeConfig *config.Config)

SetupLogging sets logger formatter and level.

Types

type FlagInfo

type FlagInfo struct {
	Name   string
	Help   string
	Envar  string
	Define bool
}

type ProxyJsonWrapperFormatter

type ProxyJsonWrapperFormatter struct {
	WrappedFormatter log.Formatter
}

func (*ProxyJsonWrapperFormatter) Format

func (f *ProxyJsonWrapperFormatter) Format(entry *log.Entry) ([]byte, error)

Jump to

Keyboard shortcuts

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