登录
首页 >  Golang >  Go问答

生成Kubernetes的有效标签值

来源:stackoverflow

时间:2024-02-06 17:00:25 239浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《生成Kubernetes的有效标签值》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

Kubernetes 中的标签值需要有效。

参见 IsValidLabelValue()

例如,我从提供商的 REST-API 收到的输入,我想将其写入标签:Dedicated Server 1U

有没有办法通过 Go 从任意字符串生成有效标签?


正确答案


您可以使用一个函数来执行此操作,例如:

func generatelabel(input string) string {
    input = strings.replace(input, " ", "-", -1)
    return "api-label=" + input
}
  • 该函数将接收到的字符串中的空格替换为“-”
  • 您可以将密钥更改为您喜欢的任何字符串。
  • 您还可以添加正则表达式检查以确保生成的值符合标签约束。 (这取决于是否从 api 接收到任何特殊字符)

要接受字符串,即使存在不需要的字符,请检查以下内容:

package main

import (
        "regexp"
        "strings"
        "fmt"
)

func generateLabel(input string) string {
    input = strings.Replace(input, " ", "-", -1)
    re := regexp.MustCompile("[^a-zA-Z0-9-]")
    input = re.ReplaceAllString(input, "")

    re = regexp.MustCompile("^[^a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?$")
    input = re.ReplaceAllString(input, "")

    return "api-label=" + input
}

func main() {
    label := generateLabel("Dedicated Server 1U")
    fmt.Println(label) // Output: "api-label=Dedicated-Server-1U"

    label1 := generateLabel("Dedicated&test")
    fmt.Println(label1) // Output: "api-label=Dedicatedtest"

    label2 := generateLabel("Dedicated,test##&(*!great")
    fmt.Println(label2) // Output: "api-label=Dedicatedtestgreat"
}

以上就是《生成Kubernetes的有效标签值》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>