utils

package
v0.26.2 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2026 License: MIT Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GetRestConfigByClusterID func(clusterID string) *rest.Config

GetRestConfigByClusterID 中文函数注释:可选注入的解析器,根据 ClusterID 返回对应的 RestConfig。 通过在外部(service 包)设置该回调,避免 utils 包直接依赖具体的集群服务,便于 lease、leader 等模块复用。

Functions

func AesDecrypt added in v0.0.47

func AesDecrypt(ciphertextBase64 string) ([]byte, error)

AesDecrypt 解密

func AesEncrypt added in v0.0.47

func AesEncrypt(data []byte) ([]byte, error)

AesEncrypt 加密

func AllIn added in v0.0.75

func AllIn(a, b []string) bool

AllIn 判断A数组中的元素,是否都在B数组中 a := []string{"apple", "banana"} b := []string{"apple", "banana", "cherry"}

fmt.Println(AllIn(a, b)) // true

a2 := []string{"apple", "kiwi"} fmt.Println(AllIn(a2, b)) // false

func AnyIn added in v0.0.128

func AnyIn(a, b []string) bool

AnyIn 判断A数组中的元素,是否有任意一个存在于B数组中 a := []string{"apple", "kiwi"} b := []string{"apple", "banana", "cherry"}

fmt.Println(AnyIn(a, b)) // true,因为"apple"在b中

a2 := []string{"grape", "kiwi"} fmt.Println(AnyIn(a2, b)) // false,因为没有元素在b中

func BoolPtr

func BoolPtr(b bool) *bool

func CleanANSISequences added in v0.0.47

func CleanANSISequences(input string) string

func ClearCacheByKey added in v0.0.117

func ClearCacheByKey(cache *ristretto.Cache[string, any], cacheKey string)

ClearCacheByKey 清空指定key的缓存

func CompareVersions added in v0.0.51

func CompareVersions(v1, v2 string) bool

CompareVersions 函数用于比较两个版本号的大小 Example:

sort.Slice(versions, func(i, j int) bool {
		return utils.CompareVersions(versions[i], versions[j])
	})

func DecodeBase64

func DecodeBase64(encoded string) (string, error)

DecodeBase64 解密 Base64 编码的字符串

func DeepCopy

func DeepCopy[T any](src T) (T, error)

DeepCopy 函数接受任何类型的参数并返回其深复制的副本

func DelayStartSchedule added in v0.0.20

func DelayStartSchedule(delaySeconds int) string

延迟启动DelayStartSchedule 设置一次性任务的执行时间,例如 5 秒后执行 返回 cron 表达式

func DetectNamespace added in v0.0.185

func DetectNamespace() string

DetectNamespace 中文函数注释:自动检测当前运行的命名空间;InCluster 读取 SA 文件,否则返回 default。

func EncodeBase64

func EncodeBase64(str string) string

func ExpandHomePath added in v0.0.50

func ExpandHomePath(path string) (string, error)

ExpandHomePath 处理路径中的 ~ 符号,将其展开为用户主目录

func ExtractNumbers added in v0.0.51

func ExtractNumbers(version string) (int, error)

ExtractNumbers 函数用于从版本号中提取数字并转换为整数

func GenerateInstanceID added in v0.0.185

func GenerateInstanceID() string

GenerateInstanceID 生成当前实例的唯一身份标识,规则为 hostname-随机3位。

func GetClientSet added in v0.0.185

func GetClientSet(clusterID string) (*kubernetes.Clientset, bool, error)

GetClientSet 中文函数注释:获取 Kubernetes ClientSet。 优先顺序: 1. 指定 ClusterID(外部集群) 2. InCluster 配置 3. 本地 KUBECONFIG 或 ~/.kube/config 返回值第二个布尔含义:是否存在可用集群(用于决定是否进行选举/租约相关操作)。

func GetContextWithAdmin added in v0.0.75

func GetContextWithAdmin() context.Context

GetContextWithAdmin 返回一个包含平台管理员角色信息的新上下文对象。

func GetContextWithAdminFromCtx added in v0.0.187

func GetContextWithAdminFromCtx(ctx context.Context) context.Context

GetContextWithAdminFromCtx 返回一个包含平台管理员角色信息的新上下文对象。

func GetImageNameAndTag added in v0.0.25

func GetImageNameAndTag(imageName string) (string, string)

获取镜像名称及Tag

func GetJWTClaims added in v0.0.73

func GetJWTClaims(c *response.Context, jwtTokenSecret string) (jwt.MapClaims, error)

GetJWTClaims 从 Gin 上下文的请求头或查询参数中提取并解析 JWT,返回其 claims。 若未提供 Token、Token 无效或 claims 解析失败,则返回相应错误。

func GetJwtMapClaimsFromToken added in v0.0.102

func GetJwtMapClaimsFromToken(authToken string, jwtTokenSecret string) (jwt.MapClaims, error)

GetJwtMapClaimsFromToken 解析并验证给定的 JWT token 字符串,返回其中的 claims。 如果 token 缺失、无效或 claims 解析失败,则返回相应错误。

@param authToken 需要解析的 JWT token 字符串,可带有 "Bearer " 前缀。 @param jwtTokenSecret 用于验证 token 的密钥。 @return jwt.MapClaims 解析出的 JWT claims。 @return error 解析或验证失败时返回的错误。

func GetLocalIPs added in v0.0.30

func GetLocalIPs() ([]string, error)

获取本机所有 IPv4 地址

func GetOrSetCache added in v0.0.117

func GetOrSetCache[T any](cache *ristretto.Cache[string, any], cacheKey string, ttl time.Duration, queryFunc func() (T, error)) (T, error)

func GetUsernameFromToken added in v0.0.102

func GetUsernameFromToken(authToken string, jwtTokenSecret string) (string, error)

GetUsernameFromToken 从JWT令牌字符串中解析并返回用户名。 如果令牌无效或未包含用户名字段,则返回错误。

func Int32Ptr

func Int32Ptr(i int32) *int32

func Int64Ptr

func Int64Ptr(i int64) *int64

func IsDecimal added in v0.0.60

func IsDecimal(s string) bool

IsDecimal 检查字符串是否为小数 如果字符串包含小数点且小数点后有数字,则返回true

func IsTextFile

func IsTextFile(ob []byte) (bool, error)

func MaskString added in v0.0.14

func MaskString(input string, visibleLength int) string

MaskString 用于将字符串的前n个字符显示出来,后面的部分用 * 替代

func MustDecodeBase64

func MustDecodeBase64(encoded string) string

func ParseCertificate added in v0.0.134

func ParseCertificate(data []byte) (*x509.Certificate, error)

ParseCertificate 判断证书类型 进行解析

func ParseVersion added in v0.0.51

func ParseVersion(version string) []int

ParseVersion 函数用于将版本号字符串解析为数字切片

func RandInt added in v0.0.106

func RandInt(min, max int) int

RandInt generates a random number between min and max

func RandNDigitInt

func RandNDigitInt(n int) int

RandNDigitInt generates a random number with n digits

func RandNLengthString

func RandNLengthString(n int) string

RandNLengthString generates a random string of specified length using the default charset

func RemoveEmptyLines added in v0.0.51

func RemoveEmptyLines(lines []string) []string

RemoveEmptyLines 删除字符串切片中的空行

func SanitizeFileName

func SanitizeFileName(filename string) string

SanitizeFileName 去除文件名中的非法字符,并替换为下划线 '_'

func SortByLastTimestamp added in v0.0.3

func SortByLastTimestamp(items []*unstructured.Unstructured) []*unstructured.Unstructured

func SplitAndTrim added in v0.0.130

func SplitAndTrim(s, sep string) []string

SplitAndTrim 拆分字符串并去除每项前后空白

func ToInt

func ToInt(s string) int

func ToInt32 added in v0.0.9

func ToInt32(s string) int32

func ToInt64

func ToInt64(str string) int64

func ToInt64Slice

func ToInt64Slice(ids string) []int64

func ToIntDefault

func ToIntDefault(s string, i int) int

func ToIntSlice

func ToIntSlice(ids string) []int

ToIntSlice 将逗号分隔的数字字符串转换为 []int 切片

func ToJSON

func ToJSON(v any) string

ToJSON 将任意结构体转换为格式化的 JSON 字符串

func ToJSONCompact added in v0.0.187

func ToJSONCompact(v any) string

ToJSONCompact 将任意结构体转换为紧凑的 JSON 字符串 用于机器处理场景,输出不进行格式美化,尽可能减少字符数。

func ToUInt

func ToUInt(s string) uint

func TruncateString

func TruncateString(s string, length int) string

func UintPtr added in v0.0.129

func UintPtr(i uint) *uint

func UpdateImageName

func UpdateImageName(imageName string, imagePrefix string) string

UpdateImageName 检查镜像名称是否包含前缀,只能是harbor.power.sd.k9s.space 是否已harbor.power.sd.k9s.space开头,是,没问题。 否,检查是否有其他前缀,删除,替换为harbor.power.sd.k9s.space 没有,增加harbor.power.sd.k9s.space前缀 检查镜像名称是否已以指定前缀开头

func UrlSafeBase64Decode added in v0.0.91

func UrlSafeBase64Decode(s string) (string, error)

func UrlSafeBase64Encode added in v0.0.185

func UrlSafeBase64Encode(s string) string

Types

type LabelsManager

type LabelsManager struct {
	Labels map[string]string
}

LabelsManager 结构体,包含共享标签

func NewLabelsManager

func NewLabelsManager(labels map[string]string) *LabelsManager

NewLabelsManager 构造函数,初始化并返回一个 LabelsManager

func (*LabelsManager) AddCustomLabel

func (lm *LabelsManager) AddCustomLabel(meta *metav1.ObjectMeta, key, value string)

AddCustomLabel 动态添加用户指定的标签

func (*LabelsManager) AddLabels

func (lm *LabelsManager) AddLabels(meta *metav1.ObjectMeta)

AddLabels 给任意 Kubernetes 资源对象添加共享标签

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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