common

package
v1.9.1 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2024 License: Apache-2.0 Imports: 30 Imported by: 62

Documentation

Index

Constants

View Source
const (
	// EnvVarKubeConfig is the path to the Kubernetes configuration
	EnvVarKubeConfig = "KUBECONFIG"
	// EnvVarDebugLog is the env var to turn on the debug mode for logging
	EnvVarDebugLog = "DEBUG_LOG"
	// ENVVarPodName should be set to the name of the pod
	EnvVarPodName = "POD_NAME"
	// ENVVarLeaderElection sets the leader election mode
	EnvVarLeaderElection = "LEADER_ELECTION"
	// EnvImagePullPolicy is the env var to set container's ImagePullPolicy
	EnvImagePullPolicy = "IMAGE_PULL_POLICY"
)

Environment variables

View Source
const (
	// EnvVarEventBusConfig refers to the eventbus config env
	EnvVarEventBusConfig = "EVENTBUS_CONFIG"
	// EnvVarEventBusSubject refers to the eventbus subject env
	EnvVarEventBusSubject = "EVENTBUS_SUBJECT"
	// volumeMount path for eventbus auth file
	EventBusAuthFileMountPath = "/etc/eventbus/auth"
	// Default NATS Streaming messages max age
	STANMaxAge = "72h"
	// Default NATS Streaming max messages per channel
	STANMaxMsgs = uint64(1000000)
	// Default NATS Streaming max subscriptions per channel
	STANMaxSubs = uint64(1000)
	// Default NATS Streaming max total size of messages per channel
	STANMaxBytes = "1GB"
	// Default NATS Streaming max size of message payload
	STANMaxPayload = "1MB"
	// Default NATS Streaming RAFT heartbeat timeout
	STANRaftHeartbeatTimeout = "2s"
	// Default NATS Streaming RAFT election timeout
	STANRaftElectionTimeout = "2s"
	// Default NATS Streaming RAFT lease timeout
	STANRaftLeaseTimeout = "1s"
	// Default NATS Streaming RAFT commit timeout
	STANRaftCommitTimeout = "100ms"

	// Default EventBus name
	DefaultEventBusName = "default"

	// key of auth server secret
	JetStreamServerSecretAuthKey = "auth"
	// key of encryption server secret
	JetStreamServerSecretEncryptionKey = "encryption"
	// key of client auth secret
	JetStreamClientAuthSecretKey = "client-auth"
	// key for server private key
	JetStreamServerPrivateKeyKey = "private-key"
	// key for server TLS certificate
	JetStreamServerCertKey = "cert"
	// key for server CA certificate
	JetStreamServerCACertKey = "ca-cert"
	// key for server private key
	JetStreamClusterPrivateKeyKey = "cluster-private-key"
	// key for server TLS certificate
	JetStreamClusterCertKey = "cluster-cert"
	// key for server CA certificate
	JetStreamClusterCACertKey = "cluster-ca-cert"
	// key of nats-js.conf in the configmap
	JetStreamConfigMapKey = "nats-js"
	// Jetstream Stream name
	JetStreamStreamName = "default"
	// Default JetStream max size of message payload
	JetStreamMaxPayload = "1MB"
)

EventBus related

View Source
const (
	// EnvVarSensorObject refers to the env of based64 encoded sensor spec
	EnvVarSensorObject = "SENSOR_OBJECT"
	// SensorNamespace is used to get namespace where sensors are deployed
	SensorNamespace = "SENSOR_NAMESPACE"
	// LabelSensorName is label for sensor name
	LabelSensorName = "sensor-name"
)

Sensor constants

View Source
const (
	// EnvVarEventSourceObject refers to the env of based64 encoded eventsource spec
	EnvVarEventSourceObject = "EVENTSOURCE_OBJECT"
	// EnvVarEventSource refers to event source name
	EnvVarEventSource = "EVENT_SOURCE"
	// LabelEventSourceName is the label for a event source
	LabelEventSourceName = "eventsource-name"
)

EventSource

View Source
const (
	// LabelOwnerName is the label for resource owner name
	LabelOwnerName = "owner-name"
	// AnnotationResourceSpecHash is the annotation of a K8s resource spec hash
	AnnotationResourceSpecHash = "resource-spec-hash"
	// AnnotationLeaderElection is the annotation for leader election
	AnnotationLeaderElection = "events.argoproj.io/leader-election"
)

Miscellaneous Labels

View Source
const (
	MediaTypeJSON string = "application/json"
	MediaTypeYAML string = "application/yaml"
)

various supported media types

View Source
const (
	EventSourceMetricsPort = 7777
	SensorMetricsPort      = 7777
	ControllerMetricsPort  = 7777
	EventBusMetricsPort    = 7777
	ControllerHealthPort   = 8081
)

Metrics releated

Variables

View Source
var (
	SecretKeySelectorType    = reflect.TypeOf(&corev1.SecretKeySelector{})
	ConfigMapKeySelectorType = reflect.TypeOf(&corev1.ConfigMapKeySelector{})
)
View Source
var (
	DefaultBackoff = apicommon.Backoff{
		Steps:    5,
		Duration: &defaultDuration,
		Factor:   &defaultFactor,
		Jitter:   &defaultJitter,
	}
)
View Source
var (
	ErrNilEventSource = fmt.Errorf("event source can't be nil")
)

Functions

func Convert2WaitBackoff added in v1.3.0

func Convert2WaitBackoff(backoff *apicommon.Backoff) (*wait.Backoff, error)

Convert2WaitBackoff converts to a wait backoff option

func DoWithRetry added in v1.7.3

func DoWithRetry(backoff *apicommon.Backoff, f func() error) error

func ElementsMatch added in v1.6.0

func ElementsMatch(first []string, second []string) bool

ElementsMatch returns true if the two provided string slices contain the same elements while avoiding duplications. WARN: this method avoids duplications.

func ErrEventSourceTypeMismatch added in v0.13.0

func ErrEventSourceTypeMismatch(eventSourceType string) string

func FormatEndpoint added in v0.13.0

func FormatEndpoint(endpoint string) string

FormatEndpoint returns a formatted api endpoint

func FormattedURL added in v0.13.0

func FormattedURL(url, endpoint string) string

FormattedURL returns a formatted url

func GenerateConfigMapVolumeSpecs added in v1.0.0

func GenerateConfigMapVolumeSpecs(selector *v1.ConfigMapKeySelector) (v1.Volume, v1.VolumeMount)

GenerateConfigMapVolumeSpecs builds a "volume" and "volumeMount"spec with a configMapKeySelector

func GenerateEnvFromConfigMapSpec added in v0.17.0

func GenerateEnvFromConfigMapSpec(selector *v1.ConfigMapKeySelector) v1.EnvFromSource

GenerateEnvFromConfigMapSpec builds a "envFrom" spec with a configMapKeySelector

func GenerateEnvFromSecretSpec added in v0.17.0

func GenerateEnvFromSecretSpec(selector *v1.SecretKeySelector) v1.EnvFromSource

GenerateEnvFromSecretSpec builds a "envFrom" spec with a secretKeySelector

func GenerateSecretVolumeSpecs added in v1.0.0

func GenerateSecretVolumeSpecs(selector *v1.SecretKeySelector) (v1.Volume, v1.VolumeMount)

GenerateSecretVolumeSpecs builds a "volume" and "volumeMount"spec with a secretKeySelector

func GetClientConfig

func GetClientConfig(kubeconfig string) (*rest.Config, error)

GetClientConfig return rest config, if path not specified, assume in cluster config

func GetConfigMapFromVolume added in v1.0.0

func GetConfigMapFromVolume(selector *v1.ConfigMapKeySelector) (string, error)

GetConfigMapFromVolume retrieves the value of mounted config map volume "/argo-events/config/${configMapRef.name}/${configMapRef.key}" is expected to be the file path

func GetConfigMapVolumePath added in v1.0.0

func GetConfigMapVolumePath(selector *v1.ConfigMapKeySelector) (string, error)

GetConfigMapVolumePath returns the path of the mounted configmap

func GetEnvFromConfigMap added in v0.17.0

func GetEnvFromConfigMap(selector *v1.ConfigMapKeySelector) (string, bool)

GetEnvFromConfigMap retrieves the value of envFrom.configMapRef "${configMapRef.name}_" is expected to be defined as "prefix"

func GetEnvFromSecret added in v0.17.0

func GetEnvFromSecret(selector *v1.SecretKeySelector) (string, bool)

GetEnvFromSecret retrieves the value of envFrom.secretRef "${secretRef.name}_" is expected to be defined as "prefix"

func GetImagePullPolicy added in v1.6.0

func GetImagePullPolicy() v1.PullPolicy

func GetObjectHash added in v0.8.2

func GetObjectHash(obj metav1.Object) (string, error)

GetObjectHash returns hash of a given object

func GetSaramaConfigFromYAMLString added in v1.7.2

func GetSaramaConfigFromYAMLString(yaml string) (*sarama.Config, error)

GetSaramaConfigFromYAMLString parse yaml string to sarama.config. Note: All the time.Duration config can not be correctly decoded because it does not implement the decode function.

func GetSecretFromVolume added in v1.0.0

func GetSecretFromVolume(selector *v1.SecretKeySelector) (string, error)

GetSecretFromVolume retrieves the value of mounted secret volume "/argo-events/secrets/${secretRef.name}/${secretRef.key}" is expected to be the file path

func GetSecretValue added in v0.14.0

func GetSecretValue(ctx context.Context, client kubernetes.Interface, namespace string, selector *v1.SecretKeySelector) (string, error)

GetSecretValue retrieves the secret value from the secret in namespace with name and key

func GetSecretVolumePath added in v1.0.0

func GetSecretVolumePath(selector *v1.SecretKeySelector) (string, error)

GetSecretVolumePath returns the path of the mounted secret

func GetTLSConfig added in v0.14.0

func GetTLSConfig(config *apicommon.TLSConfig) (*tls.Config, error)

GetTLSConfig returns a tls configuration for given cert and key or skips the certs if InsecureSkipVerify is true.

func Hasher added in v0.8.2

func Hasher(value string) string

Hasher hashes a string

func IsRetryableKubeAPIError

func IsRetryableKubeAPIError(err error) bool

IsRetryableKubeAPIError returns if the error is a retryable kubernetes error

func MustHash added in v1.7.0

func MustHash(v interface{}) string

func MustJSON added in v1.7.0

func MustJSON(in interface{}) string

func MustUnJSON added in v1.7.0

func MustUnJSON(v interface{}, in interface{})

MustUnJSON unmarshalls JSON or panics. v - must be []byte or string in - must be a pointer.

func ParseExclusionDates

func ParseExclusionDates(vals []string) ([]time.Time, error)

ParseExclusionDates parses the exclusion dates from the vals string according to RFC 5545

func ParseTime added in v0.17.0

func ParseTime(t string, baseDate time.Time) (time.Time, error)

ParseTime parses time string in "HH:MM:SS" format into time.Time, which date is same as baseDate in UTC.

func PrevCronTime added in v1.6.0

func PrevCronTime(cronSpec string, parser cronlib.Parser, t time.Time) (time.Time, error)

For a given cron specification, return the previous activation time If no time can be found to satisfy the schedule, return the zero time.

func RandomString added in v1.7.0

func RandomString(length int) string

generate a random string with given length

func SendErrorResponse

func SendErrorResponse(writer http.ResponseWriter, response string)

SendErrorResponse sends http error response

func SendInternalErrorResponse added in v0.8.3

func SendInternalErrorResponse(writer http.ResponseWriter, response string)

SendInternalErrorResponse sends http internal error response

func SendResponse added in v1.0.0

func SendResponse(writer http.ResponseWriter, statusCode int, response string)

SendResponse sends http response with given status code

func SendSuccessResponse

func SendSuccessResponse(writer http.ResponseWriter, response string)

SendSuccessResponse sends http success response

func SliceContains added in v1.6.0

func SliceContains(strSlice []string, targetStr string) bool

SliceContains checks if a string slice contains a specific string

func StructToMap added in v1.7.0

func StructToMap(obj interface{}, output map[string]interface{}) error

func VolumesFromSecretsOrConfigMaps added in v1.0.0

func VolumesFromSecretsOrConfigMaps(t reflect.Type, objs ...interface{}) ([]v1.Volume, []v1.VolumeMount)

VolumesFromSecretsOrConfigMaps builds volumes and volumeMounts spec based on the obj and its children's secretKeyselector or configMapKeySelector

Types

type StringKeyedMap added in v1.9.0

type StringKeyedMap[T any] struct {
	// contains filtered or unexported fields
}

Concurrent Safe String keyed map

func NewStringKeyedMap added in v1.9.0

func NewStringKeyedMap[T any]() StringKeyedMap[T]

func (*StringKeyedMap[T]) Delete added in v1.9.0

func (sm *StringKeyedMap[T]) Delete(key string)

func (*StringKeyedMap[T]) Load added in v1.9.0

func (sm *StringKeyedMap[T]) Load(key string) (T, bool)

func (*StringKeyedMap[T]) Store added in v1.9.0

func (sm *StringKeyedMap[T]) Store(key string, item T)

type XDGSCRAMClient added in v1.7.2

type XDGSCRAMClient struct {
	*scram.Client
	*scram.ClientConversation
	scram.HashGeneratorFcn
}

func (*XDGSCRAMClient) Begin added in v1.7.2

func (x *XDGSCRAMClient) Begin(userName, password, authzID string) (err error)

func (*XDGSCRAMClient) Done added in v1.7.2

func (x *XDGSCRAMClient) Done() bool

func (*XDGSCRAMClient) Step added in v1.7.2

func (x *XDGSCRAMClient) Step(challenge string) (response string, err error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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