common

package
v0.8.1-beta.6 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2024 License: AGPL-3.0 Imports: 18 Imported by: 1

Documentation

Overview

Package common provides types and utils shared by all KubeBlocks components: KubeBlocks Core, KBCLI, Lorry etc. will promote to pkg/common when stable.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CoverStringToInterfaceBySchemaType added in v0.8.0

func CoverStringToInterfaceBySchemaType(openAPIV3Schema *apiextensionsv1.JSONSchemaProps, input map[string]string) (map[string]interface{}, error)

func Expand

func Expand(input string, mapping func(string) string) string

Expand replaces variable references in the input string according to the expansion spec using the given mapping function to resolve the values of variables.

func GetFieldRef added in v0.8.0

func GetFieldRef(pod *corev1.Pod, from *corev1.EnvVarSource) (string, error)

GetFieldRef returns the value of the supplied path in the given object

func IsCompactMode added in v0.8.0

func IsCompactMode(annotations map[string]string) bool

IsCompactMode tells whether there is a reconciliation compact mode key in the 'annotations'.

func MappingFuncFor

func MappingFuncFor(context ...map[string]string) func(string) string

MappingFuncFor returns a mapping function for use with Expand that implements the expansion semantics defined in the expansion spec; it returns the input string wrapped in the expansion syntax if no mapping for the input is found.

func SafeAddInt added in v0.8.0

func SafeAddInt(a, b int) int

func ToCamelCase added in v0.8.0

func ToCamelCase(input string) string

ToCamelCase transforms k8s resource Name with camel case, for examples: - make-food to MakeFood - make.food to MakeFood

func ValidateDataWithSchema added in v0.8.0

func ValidateDataWithSchema(openAPIV3Schema *apiextensionsv1.JSONSchemaProps, data interface{}) error

ValidateDataWithSchema validates if the data is valid with the jsonSchema.

Types

type BuiltinHandler

type BuiltinHandler string

BuiltinHandler defines builtin role probe handler name.

const (
	MySQLHandler    BuiltinHandler = "mysql"
	PostgresHandler BuiltinHandler = "postgres"
	MongoDBHandler  BuiltinHandler = "mongodb"
	RedisHandler    BuiltinHandler = "redis"
	ETCDHandler     BuiltinHandler = "etcd"
	KafkaHandler    BuiltinHandler = "kafka"
	WeSQLHandler    BuiltinHandler = "wesql"
)

type GlobalRoleSnapshot

type GlobalRoleSnapshot struct {
	Version          string            `json:"term,omitempty"`
	PodRoleNamePairs []PodRoleNamePair `json:"PodRoleNamePairs,omitempty"`
}

GlobalRoleSnapshot defines a global(leader) perspective of all pods role. KB provides two role probe methods: per-pod level role probe and retrieving all node roles from the leader node. The latter is referred to as the global role snapshot. This data structure is used to represent a snapshot of global role information. The snapshot contains two types of information: the mapping relationship between all node names and role names, and the version of the snapshot. The purpose of the snapshot version is to ensure that only role information that is more up-to-date than the current role information on the Pod Label will be updated. This resolves the issue of role information disorder in scenarios such as KB upgrades or exceptions causing restarts, network partitioning leading to split-brain situations, node crashes, and similar occurrences.

type PodRoleNamePair

type PodRoleNamePair struct {
	PodName  string `json:"podName,omitempty"`
	RoleName string `json:"roleName,omitempty"`
}

PodRoleNamePair defines a pod name and role name pair.

Jump to

Keyboard shortcuts

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