Documentation ¶
Index ¶
- Constants
- func CopyMap[K comparable, V any](mapArg map[K]V) map[K]V
- func CopyMapOfMap[K comparable, K2 any, V map[K]K2](mapArg map[K]V) map[K]V
- func EqualSliceByIDFunc[T any](a, b []T, id func(x T) string) bool
- func EqualSliceStringsWithoutOrder(a, b []string) bool
- func GetBoolValue(dataValue, dataName string) (result bool, err error)
- func GetK8sLogger() *logger
- func GetLogger() *logger
- func GetPodPrefix(podName string) (prefix string, err error)
- func Hash(input []byte) string
- func HomeDir() string
- func ParseInt(data string) (v int64, err error)
- func ParseSize(size string) (*int64, error)
- func ParseTime(data string) (*int64, error)
- func PointerDefaultValueIfNil[T any](arg *T) T
- func PointerIfNotDefault[T comparable](arg T) *T
- func Ptr[V any](v V) *V
- func PtrInt64(value int64) *int64
- func PtrString(value string) *string
- type Errors
- type LogLevel
- type LogLevelValue
- type Logger
- type NamespaceValue
- type OSArgs
- type Pair
Constants ¶
const ( LogTypeShort = log.LstdFlags LogType = log.LstdFlags | log.Lshortfile )
const (
LogFieldTransactionID = "transactionID"
)
Variables ¶
This section is empty.
Functions ¶
func CopyMap ¶ added in v1.10.0
func CopyMap[K comparable, V any](mapArg map[K]V) map[K]V
func CopyMapOfMap ¶ added in v1.10.0
func CopyMapOfMap[K comparable, K2 any, V map[K]K2](mapArg map[K]V) map[K]V
func EqualSliceByIDFunc ¶ added in v1.10.0
EqualSliceByIDFunc checks equality of two slices. No duplication check.
func GetBoolValue ¶
func GetK8sLogger ¶ added in v1.11.0
func GetK8sLogger() *logger
func GetPodPrefix ¶
func PointerDefaultValueIfNil ¶ added in v1.10.0
func PointerDefaultValueIfNil[T any](arg *T) T
func PointerIfNotDefault ¶ added in v1.11.0
func PointerIfNotDefault[T comparable](arg T) *T
PointerIfNotDefault returns a pointer to the argument if it's not a default value for type T
Types ¶
type LogLevelValue ¶
type LogLevelValue struct {
LogLevel LogLevel
}
LogLevel used to automatically distinct namespace/name string
func (*LogLevelValue) UnmarshalFlag ¶
func (n *LogLevelValue) UnmarshalFlag(value string) error
UnmarshalFlag Unmarshal flag
type Logger ¶
type Logger interface { Print(args ...interface{}) // always print regardless of Log level Trace(args ...interface{}) // used for heavy duty output everything, not recommended for production Debug(args ...interface{}) // used to have detailed output of application flow Info(args ...interface{}) Warning(args ...interface{}) Error(args ...interface{}) Err(args ...interface{}) []error Panic(args ...interface{}) Printf(format string, args ...interface{}) // similar to fmt.SPrintf function Tracef(format string, args ...interface{}) // similar to fmt.SPrintf function Debugf(format string, args ...interface{}) // similar to fmt.SPrintf function Infof(format string, args ...interface{}) // similar to fmt.SPrintf function Warningf(format string, args ...interface{}) // similar to fmt.SPrintf function Errorf(format string, args ...interface{}) // similar to fmt.SPrintf function Panicf(format string, args ...interface{}) // similar to fmt.SPrintf function SetLevel(level LogLevel) ShowFilename(show bool) WithField(key string, value interface{}) ResetFields() }
Logger provides functions to writing log messages level can be defined only as `trace`, `debug`, `info`, `warning`, `error` error and panic are always printed, panic also exits application.
if nil is sent, it won't be printed. This is useful for printing errors only if they exist.
```
if err != nil { logger.Error(err) }
``` can be shortened to ``` logger.Error(err) ```
type NamespaceValue ¶
type NamespaceValue struct {
Namespace, Name string
}
NamespaceValue used to automatically distinct namespace/name string
func (NamespaceValue) MarshalFlag ¶
func (n NamespaceValue) MarshalFlag() (string, error)
MarshalFlag Marshals flag
func (NamespaceValue) String ¶
func (n NamespaceValue) String() string
func (*NamespaceValue) UnmarshalFlag ¶
func (n *NamespaceValue) UnmarshalFlag(value string) error
UnmarshalFlag Unmarshal flag
type OSArgs ¶
type OSArgs struct { ConfigMapPatternFiles NamespaceValue `` /* 137-byte string literal not displayed */ ConfigMapTCPServices NamespaceValue `long:"configmap-tcp-services" description:"configmap used to define tcp services" default:""` DefaultBackendService NamespaceValue `` /* 131-byte string literal not displayed */ ConfigMapErrorFiles NamespaceValue `` /* 127-byte string literal not displayed */ DefaultCertificate NamespaceValue `long:"default-ssl-certificate" default:"" description:"secret name of the certificate"` ConfigMap NamespaceValue `long:"configmap" description:"configmap designated for HAProxy" default:""` IPV6BindAddr string `long:"ipv6-bind-address" default:"::" description:"IPv6 address the Ingress Controller listens on (if enabled)"` GatewayControllerName string `long:"gateway-controller-name" description:"sets the controller name of gatewayclass managed by the controller"` IPV4BindAddr string `long:"ipv4-bind-address" default:"0.0.0.0" description:"IPv4 address the Ingress Controller listens on (if enabled)"` RuntimeDir string `long:"runtime-dir" description:"path to HAProxy runtime directory. NOTE: works only in External mode"` IngressClass string `long:"ingress.class" default:"" description:"ingress.class to monitor in multiple controllers environment"` PublishService string `` /* 205-byte string literal not displayed */ CfgDir string `long:"config-dir" description:"path to HAProxy configuration directory. NOTE: works only in External mode"` Program string `long:"program" description:"path to HAProxy program. NOTE: works only with External mode"` KubeConfig string `long:"kubeconfig" default:"" description:"combined with -e. location of kube config file"` Version []bool `short:"v" long:"version" description:"version"` NamespaceWhitelist []string `long:"namespace-whitelist" description:"whitelisted namespaces"` NamespaceBlacklist []string `long:"namespace-blacklist" description:"blacklisted namespaces"` Help []bool `short:"h" long:"help" description:"show this help message"` LocalPeerPort int64 `long:"localpeer-port" default:"10000" description:"port to listen on for local peer"` StatsBindPort int64 `long:"stats-bind-port" default:"1024" description:"port to listen on for stats page"` DefaultBackendPort int `long:"default-backend-port" description:"port to use for default service" default:"6061"` ChannelSize int64 `` /* 172-byte string literal not displayed */ ControllerPort int `long:"controller-port" description:"port to listen on for controller data: prometheus, pprof" default:"6060"` HTTPBindPort int64 `long:"http-bind-port" default:"8080" description:"port to listen on for HTTP traffic"` HTTPSBindPort int64 `long:"https-bind-port" default:"8443" description:"port to listen on for HTTPS traffic"` SyncPeriod time.Duration `long:"sync-period" default:"5s" description:"Sets the period at which the controller syncs HAProxy configuration file"` CacheResyncPeriod time.Duration `` /* 147-byte string literal not displayed */ HealthzBindPort int64 `long:"healthz-bind-port" default:"1042" description:"port to listen on for probes"` LogLevel LogLevelValue `long:"log" default:"info" description:"level of log messages you can see"` DisableIPV4 bool `long:"disable-ipv4" description:"toggle to disable the IPv4 protocol from all frontends"` External bool `short:"e" long:"external" description:"use as external Ingress Controller (out of k8s cluster)"` Test bool `short:"t" description:"simulate running HAProxy"` EmptyIngressClass bool `` /* 175-byte string literal not displayed */ DisableServiceExternalName bool `long:"disable-service-external-name" description:"disable forwarding to ExternalName Services due to CVE-2021-25740"` UseWiths6Overlay bool `long:"with-s6-overlay" description:"use s6 overlay to start/stpop/reload HAProxy"` DisableHTTPS bool `long:"disable-https" description:"toggle to disable the HTTPs frontend"` PprofEnabled bool `long:"pprof" short:"p" description:"enable pprof"` PrometheusEnabled bool `long:"prometheus" description:"enable prometheus of IC data"` DisableHTTP bool `long:"disable-http" description:"toggle to disable the HTTP frontend"` DisableIPV6 bool `long:"disable-ipv6" description:"toggle to disable the IPv6 protocol from all frontends"` DisableConfigSnippets string `` /* 156-byte string literal not displayed */ UseWithPebble bool `long:"with-pebble" description:"use pebble to start/stop/reload HAProxy"` JobCheckCRD bool `long:"job-check-crd" description:"does not execute IC, but adds/updates CRDs"` DisableQuic bool `long:"disable-quic" description:"disable quic protocol in http frontend bindings"` QuicAnnouncePort int64 `long:"quic-announce-port" description:"sets the port in the alt-svc header"` QuicBindPort int64 `long:"quic-bind-port" description:"sets the binding port for quic in HTTPS frontend"` }
OSArgs contains arguments that can be sent to controller