Documentation
¶
Index ¶
- Variables
- func FindConnection(ctx Context, name, namespace string) (*models.Connection, error)
- func FindConnectionByURL(ctx Context, connectionString string) (*models.Connection, error)
- func GetConfigMapFromCache(ctx Context, namespace, name, key string) (string, error)
- func GetConnection(ctx Context, name, namespace string) (*models.Connection, error)
- func GetEnvStringFromCache(ctx Context, env string, namespace string) (string, error)
- func GetEnvValueFromCache(ctx Context, input types.EnvVar, namespace string) (value string, err error)
- func GetHelmValueFromCache(ctx Context, namespace, releaseName, key string) (string, error)
- func GetHelmValuesFromCache(ctx Context, namespace, releaseName string) (map[string]any, error)
- func GetSecretFromCache(ctx Context, namespace, name, key string) (string, error)
- func GetServiceAccountTokenFromCache(ctx Context, namespace, serviceAccount string) (string, error)
- func HydrateConnection(ctx Context, connection *models.Connection) (*models.Connection, error)
- func HydrateConnectionByURL(ctx Context, connectionString string) (*models.Connection, error)
- func IsValidConnectionURL(connectionString string) bool
- func Objects(k gocontext.Context) []any
- func UpdateProperties(ctx Context, props map[string]string) error
- func UpdateProperty(ctx Context, key, value string) error
- type AnnotationsAccessor
- type Context
- func (k Context) ClearCache()
- func (k Context) ConnectionString() string
- func (k Context) Counter(name string, labels ...string) Counter
- func (k Context) DB() *gorm.DB
- func (k Context) Fast(name ...string) Context
- func (k Context) FastDB(name ...string) *gorm.DB
- func (k Context) Gauge(name string, labels ...string) Gauge
- func (k Context) GetAnnotations() map[string]string
- func (k Context) GetConfigMapFromCache(namespace, name, key string) (string, error)
- func (ctx Context) GetConnection(name, namespace string) (*models.Connection, error)
- func (k Context) GetEnvStringFromCache(env string, namespace string) (string, error)
- func (k Context) GetEnvValueFromCache(input types.EnvVar, namespace string) (string, error)
- func (k Context) GetLabels() map[string]string
- func (k Context) GetLoggingContext() map[string]any
- func (k Context) GetName() string
- func (k Context) GetNamespace() string
- func (k Context) GetObjectMeta() metav1.ObjectMeta
- func (k Context) GetSecretFromCache(namespace, name, key string) (string, error)
- func (k Context) Histogram(name string, buckets []float64, labels ...string) Histogram
- func (k Context) HydrateConnection(connection *models.Connection) (*models.Connection, error)
- func (k Context) HydrateConnectionByURL(connectionString string) (*models.Connection, error)
- func (k Context) IsTracing() bool
- func (k Context) KubeAuthFingerprint() string
- func (k Context) Kubernetes() (*dutyKubernetes.Client, error)
- func (k Context) KubernetesConnection() KubernetesConnection
- func (k Context) LocalKubernetes(kubeconfigPaths ...string) (*dutyKubernetes.Client, error)
- func (ctx Context) Lookup(namespace string) *EnvVarSourceBuilder
- func (k Context) NewStructTemplater(vals map[string]any, requiredTag string, funcs map[string]any) gomplate.StructTemplater
- func (k Context) Objects() []any
- func (k Context) Oops(tags ...string) oops.OopsErrorBuilder
- func (k Context) Pool() *pgxpool.Pool
- func (k Context) Properties() Properties
- func (k Context) RunTemplate(t gomplate.Template, env map[string]any) (string, error)
- func (k Context) RunTemplateBool(t gomplate.Template, env map[string]any) (bool, error)
- func (k Context) StartSpan(name string) (Context, trace.Span)
- func (k Context) String() string
- func (k Context) Subject() string
- func (k Context) Topology() any
- func (k Context) Transaction(fn func(ctx Context, span trace.Span) error, opts ...any) error
- func (k Context) Verbose() logger.Logger
- func (k Context) WithAnyValue(key, val any) Context
- func (k Context) WithAppendObject(object any) Context
- func (k Context) WithConnectionString(connectionString string) Context
- func (k Context) WithDB(db *gorm.DB, pool *pgxpool.Pool) Context
- func (k Context) WithDBLogLevel(level any) Context
- func (k Context) WithDBLogger(name string, baseLevel any) Context
- func (k Context) WithDeadline(deadline time.Time) (Context, gocontext.CancelFunc)
- func (k Context) WithDebug() Context
- func (k Context) WithKubernetes(conn KubernetesConnection) Context
- func (k Context) WithLocalKubernetes(client *dutyKubernetes.Client) Context
- func (k Context) WithLoggingValues(args ...interface{}) Context
- func (k Context) WithName(name string) Context
- func (k Context) WithNamespace(namespace string) Context
- func (k Context) WithObject(object ...any) Context
- func (k Context) WithSubject(subject string) Context
- func (k Context) WithTimeout(timeout time.Duration) (Context, gocontext.CancelFunc)
- func (k Context) WithTopology(topology any) Context
- func (k Context) WithTrace() Context
- func (k Context) WithValue(key, val any) Context
- func (k Context) WithoutName() Context
- func (k Context) WithoutTracing() Context
- func (k Context) Wrap(ctx gocontext.Context) Context
- func (k Context) WrapEcho(c echo.Context) Context
- type ContextAccessor
- type ContextAccessor2
- type Counter
- type EnvVarSourceBuilder
- func (b *EnvVarSourceBuilder) GetString() (string, error)
- func (b *EnvVarSourceBuilder) MustGetString() string
- func (b *EnvVarSourceBuilder) WithConfigMapKeyRef(name, key string) *EnvVarSourceBuilder
- func (b *EnvVarSourceBuilder) WithHelmRef(name, key string) *EnvVarSourceBuilder
- func (b *EnvVarSourceBuilder) WithSecretKeyRef(name, key string) *EnvVarSourceBuilder
- func (b *EnvVarSourceBuilder) WithServiceAccount(name string) *EnvVarSourceBuilder
- type Gauge
- type Gormable
- type Histogram
- type KubernetesClient
- type KubernetesConnection
- type LabelsAccessor
- type NameAccessor
- type NamespaceAccess
- type PKAccessor
- type Poolable
- type Properties
- func (p Properties) Duration(key string, def time.Duration) time.Duration
- func (p Properties) Int(key string, def int) int
- func (p Properties) Off(key string, def bool) bool
- func (p Properties) On(def bool, keys ...string) bool
- func (p Properties) String(key string, def string) string
- func (p Properties) SupportedProperties() map[string]PropertyType
- type PropertyType
Constants ¶
This section is empty.
Variables ¶
var (
ErrNotFound = errors.New("NOT_FOUND")
)
var LatencyBuckets = []float64{ float64(10 * time.Millisecond), float64(100 * time.Millisecond), float64(500 * time.Millisecond), float64(1 * time.Second), float64(10 * time.Second), }
var LongLatencyBuckets = []float64{ float64(1 * time.Second), float64(10 * time.Second), float64(100 * time.Second), float64(1000 * time.Second), }
var MetricsLogLevel = 5
var ShortLatencyBuckets = []float64{ float64(10 * time.Millisecond), float64(100 * time.Millisecond), float64(500 * time.Millisecond), }
var TemplateFuncs = make(map[string]func(Context) any)
Functions ¶
func FindConnection ¶
func FindConnection(ctx Context, name, namespace string) (*models.Connection, error)
FindConnection returns the connection with the given type and name
func FindConnectionByURL ¶
func FindConnectionByURL(ctx Context, connectionString string) (*models.Connection, error)
FindConnectionByURL retrieves a connection from the given connection string. The connection string is expected to be in one of the following forms:
- connection://<namespace>/<name> or connection://<name>
- the UUID of the connection.
func GetConfigMapFromCache ¶
func GetConnection ¶
func GetConnection(ctx Context, name, namespace string) (*models.Connection, error)
func GetEnvStringFromCache ¶
func GetEnvValueFromCache ¶
func GetHelmValueFromCache ¶
func GetHelmValuesFromCache ¶ added in v0.1.1
func GetSecretFromCache ¶
func HydrateConnection ¶
func HydrateConnection(ctx Context, connection *models.Connection) (*models.Connection, error)
Create a cache with a default expiration time of 5 minutes, and which purges expired items every 10 minutes var connectionCache = cache.New(5*time.Minute, 10*time.Minute)
func HydrateConnectionByURL ¶
func HydrateConnectionByURL(ctx Context, connectionString string) (*models.Connection, error)
HydrateConnectionByURL retrieves a connection from the given connection string. The connection string is expected to be in one of the following forms:
- connection://<namespace>/<name> or connection://<name>
- the UUID of the connection.
func IsValidConnectionURL ¶
func UpdateProperty ¶
Types ¶
type AnnotationsAccessor ¶
type Context ¶
func New ¶
func New(opts ...commons.ContextOptions) Context
func NewContext ¶
func NewContext(baseCtx gocontext.Context, opts ...commons.ContextOptions) Context
func (Context) ClearCache ¶
func (k Context) ClearCache()
func (Context) ConnectionString ¶
ConnectionString returns the connection string for the database
func (Context) FastDB ¶
FastDB returns a db suitable for high-performance usage, with limited logging and tracing
func (Context) GetAnnotations ¶
func (Context) GetConfigMapFromCache ¶
func (Context) GetConnection ¶
func (ctx Context) GetConnection(name, namespace string) (*models.Connection, error)
func (Context) GetEnvStringFromCache ¶
func (Context) GetEnvValueFromCache ¶
func (Context) GetLoggingContext ¶
func (Context) GetNamespace ¶
func (Context) GetObjectMeta ¶
func (k Context) GetObjectMeta() metav1.ObjectMeta
func (Context) GetSecretFromCache ¶
func (Context) HydrateConnection ¶
func (k Context) HydrateConnection(connection *models.Connection) (*models.Connection, error)
func (Context) HydrateConnectionByURL ¶
func (k Context) HydrateConnectionByURL(connectionString string) (*models.Connection, error)
func (Context) KubeAuthFingerprint ¶
KubeAuthFingerprint generates a unique SHA-256 hash to identify the Kubernetes API server and client authentication details from the REST configuration.
func (Context) Kubernetes ¶
func (k Context) Kubernetes() (*dutyKubernetes.Client, error)
func (Context) KubernetesConnection ¶
func (k Context) KubernetesConnection() KubernetesConnection
func (Context) LocalKubernetes ¶
func (k Context) LocalKubernetes(kubeconfigPaths ...string) (*dutyKubernetes.Client, error)
func (Context) Lookup ¶
func (ctx Context) Lookup(namespace string) *EnvVarSourceBuilder
func (Context) NewStructTemplater ¶
func (Context) Properties ¶
func (k Context) Properties() Properties
Properties returns a cached map of properties
func (Context) RunTemplate ¶
func (Context) RunTemplateBool ¶
func (Context) Transaction ¶
func (Context) WithAnyValue ¶
// Deprecated: use WithValue
func (Context) WithAppendObject ¶
func (Context) WithConnectionString ¶
WithConnectionString sets the connection string for the database
func (Context) WithDBLogLevel ¶
Changes the minimum log level for db statements
func (Context) WithDBLogger ¶
Returns a new named logger, the default db log level starts at INFO for DDL and then increases to TRACE1 depending on the query type and rows returned set a baseLevel at Debug, will increase all the levels by 1
func (Context) WithDeadline ¶
func (Context) WithKubernetes ¶
func (k Context) WithKubernetes(conn KubernetesConnection) Context
func (Context) WithLocalKubernetes ¶
func (k Context) WithLocalKubernetes(client *dutyKubernetes.Client) Context
func (Context) WithLoggingValues ¶
func (Context) WithNamespace ¶
func (Context) WithObject ¶
Order the objects from parent -> child
func (Context) WithTimeout ¶
func (Context) WithTopology ¶
func (Context) WithoutName ¶
func (Context) WithoutTracing ¶
type ContextAccessor ¶
type ContextAccessor2 ¶
type Counter ¶
type Counter struct {
Context Context
Name string
Labels map[string]string
Counter *prometheus.CounterVec
}
type EnvVarSourceBuilder ¶
type EnvVarSourceBuilder struct {
// contains filtered or unexported fields
}
func (*EnvVarSourceBuilder) GetString ¶
func (b *EnvVarSourceBuilder) GetString() (string, error)
func (*EnvVarSourceBuilder) MustGetString ¶
func (b *EnvVarSourceBuilder) MustGetString() string
func (*EnvVarSourceBuilder) WithConfigMapKeyRef ¶
func (b *EnvVarSourceBuilder) WithConfigMapKeyRef(name, key string) *EnvVarSourceBuilder
func (*EnvVarSourceBuilder) WithHelmRef ¶
func (b *EnvVarSourceBuilder) WithHelmRef(name, key string) *EnvVarSourceBuilder
func (*EnvVarSourceBuilder) WithSecretKeyRef ¶
func (b *EnvVarSourceBuilder) WithSecretKeyRef(name, key string) *EnvVarSourceBuilder
func (*EnvVarSourceBuilder) WithServiceAccount ¶
func (b *EnvVarSourceBuilder) WithServiceAccount(name string) *EnvVarSourceBuilder
type Gauge ¶
type Histogram ¶
type Histogram struct {
Context Context
Name string
Histogram *prometheus.HistogramVec
Labels map[string]string
}
type KubernetesClient ¶
type KubernetesClient struct {
*dutyKubernetes.Client
Connection KubernetesConnection
// contains filtered or unexported fields
}
func NewKubernetesClient ¶
func NewKubernetesClient(ctx Context, conn KubernetesConnection) (*KubernetesClient, error)
func (KubernetesClient) HasExpired ¶
func (c KubernetesClient) HasExpired() bool
func (*KubernetesClient) Refresh ¶
func (c *KubernetesClient) Refresh(ctx Context) (*rest.Config, error)
func (*KubernetesClient) SetExpiry ¶
func (c *KubernetesClient) SetExpiry(def time.Duration)
func (*KubernetesClient) SetLogger ¶
func (c *KubernetesClient) SetLogger(log logger.Logger)
type KubernetesConnection ¶
type LabelsAccessor ¶
type NameAccessor ¶
type NameAccessor interface {
GetName() string
}
type NamespaceAccess ¶
type NamespaceAccess interface {
GetNamespace() string
}
type PKAccessor ¶
type PKAccessor interface {
PK() string
}
type Properties ¶
func (Properties) Off ¶
func (p Properties) Off(key string, def bool) bool
Returns true if the property is false|disabled|off, if there is no property it defaults to true
func (Properties) On ¶
func (p Properties) On(def bool, keys ...string) bool
Returns true if the property is true|enabled|on, if there is no property it defaults to true
func (Properties) SupportedProperties ¶
func (p Properties) SupportedProperties() map[string]PropertyType